diff --git a/actionagent/app/assets/builds/action_agent.js b/actionagent/app/assets/builds/action_agent.js index 4dffc0ff..7dca9e97 100644 --- a/actionagent/app/assets/builds/action_agent.js +++ b/actionagent/app/assets/builds/action_agent.js @@ -1,68 +1,68 @@ -var aj=Object.create;var wy=Object.defineProperty;var ij=Object.getOwnPropertyDescriptor;var oj=Object.getOwnPropertyNames;var lj=Object.getPrototypeOf,sj=Object.prototype.hasOwnProperty;var wr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),uj=(e,t)=>{for(var r in t)wy(e,r,{get:t[r],enumerable:!0})},cj=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of oj(t))!sj.call(e,a)&&a!==r&&wy(e,a,{get:()=>t[a],enumerable:!(n=ij(t,a))||n.enumerable});return e};var J=(e,t,r)=>(r=e!=null?aj(lj(e)):{},cj(t||!e||!e.__esModule?wy(r,"default",{value:e,enumerable:!0}):r,e));var oA=wr(De=>{"use strict";var Ny=Symbol.for("react.transitional.element"),dj=Symbol.for("react.portal"),fj=Symbol.for("react.fragment"),pj=Symbol.for("react.strict_mode"),mj=Symbol.for("react.profiler"),vj=Symbol.for("react.consumer"),hj=Symbol.for("react.context"),gj=Symbol.for("react.forward_ref"),yj=Symbol.for("react.suspense"),xj=Symbol.for("react.memo"),eA=Symbol.for("react.lazy"),bj=Symbol.for("react.activity"),ZS=Symbol.iterator;function wj(e){return e===null||typeof e!="object"?null:(e=ZS&&e[ZS]||e["@@iterator"],typeof e=="function"?e:null)}var tA={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},rA=Object.assign,nA={};function Ul(e,t,r){this.props=e,this.context=t,this.refs=nA,this.updater=r||tA}Ul.prototype.isReactComponent={};Ul.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ul.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function aA(){}aA.prototype=Ul.prototype;function Cy(e,t,r){this.props=e,this.context=t,this.refs=nA,this.updater=r||tA}var _y=Cy.prototype=new aA;_y.constructor=Cy;rA(_y,Ul.prototype);_y.isPureReactComponent=!0;var QS=Array.isArray;function Ay(){}var dt={H:null,A:null,T:null,S:null},iA=Object.prototype.hasOwnProperty;function Ey(e,t,r){var n=r.ref;return{$$typeof:Ny,type:e,key:t,ref:n!==void 0?n:null,props:r}}function Sj(e,t){return Ey(e.type,t,e.props)}function Oy(e){return typeof e=="object"&&e!==null&&e.$$typeof===Ny}function Aj(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var JS=/\/+/g;function Sy(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Aj(""+e.key):t.toString(36)}function Nj(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Ay,Ay):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Bl(e,t,r,n,a){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(i){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case Ny:case dj:o=!0;break;case eA:return o=e._init,Bl(o(e._payload),t,r,n,a)}}if(o)return a=a(e),o=n===""?"."+Sy(e,0):n,QS(a)?(r="",o!=null&&(r=o.replace(JS,"$&/")+"/"),Bl(a,t,r,"",function(u){return u})):a!=null&&(Oy(a)&&(a=Sj(a,r+(a.key==null||e&&e.key===a.key?"":(""+a.key).replace(JS,"$&/")+"/")+o)),t.push(a)),1;o=0;var l=n===""?".":n+":";if(QS(e))for(var s=0;s{"use strict";lA.exports=oA()});var gA=wr(xt=>{"use strict";function Dy(e,t){var r=e.length;e.push(t);e:for(;0>>1,a=e[n];if(0>>1;nYf(l,r))sYf(u,l)?(e[n]=u,e[s]=r,n=s):(e[n]=l,e[o]=r,n=o);else if(sYf(u,r))e[n]=u,e[s]=r,n=s;else break e}}return t}function Yf(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}xt.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(sA=performance,xt.unstable_now=function(){return sA.now()}):(ky=Date,uA=ky.now(),xt.unstable_now=function(){return ky.now()-uA});var sA,ky,uA,ja=[],Ni=[],Ej=1,Nn=null,Sr=3,Py=!1,rc=!1,nc=!1,jy=!1,fA=typeof setTimeout=="function"?setTimeout:null,pA=typeof clearTimeout=="function"?clearTimeout:null,cA=typeof setImmediate<"u"?setImmediate:null;function qf(e){for(var t=ca(Ni);t!==null;){if(t.callback===null)Wf(Ni);else if(t.startTime<=e)Wf(Ni),t.sortIndex=t.expirationTime,Dy(ja,t);else break;t=ca(Ni)}}function Iy(e){if(nc=!1,qf(e),!rc)if(ca(ja)!==null)rc=!0,Hl||(Hl=!0,$l());else{var t=ca(Ni);t!==null&&zy(Iy,t.startTime-e)}}var Hl=!1,ac=-1,mA=5,vA=-1;function hA(){return jy?!0:!(xt.unstable_now()-vAe&&hA());){var n=Nn.callback;if(typeof n=="function"){Nn.callback=null,Sr=Nn.priorityLevel;var a=n(Nn.expirationTime<=e);if(e=xt.unstable_now(),typeof a=="function"){Nn.callback=a,qf(e),t=!0;break t}Nn===ca(ja)&&Wf(ja),qf(e)}else Wf(ja);Nn=ca(ja)}if(Nn!==null)t=!0;else{var i=ca(Ni);i!==null&&zy(Iy,i.startTime-e),t=!1}}break e}finally{Nn=null,Sr=r,Py=!1}t=void 0}}finally{t?$l():Hl=!1}}}var $l;typeof cA=="function"?$l=function(){cA(Ty)}:typeof MessageChannel<"u"?(My=new MessageChannel,dA=My.port2,My.port1.onmessage=Ty,$l=function(){dA.postMessage(null)}):$l=function(){fA(Ty,0)};var My,dA;function zy(e,t){ac=fA(function(){e(xt.unstable_now())},t)}xt.unstable_IdlePriority=5;xt.unstable_ImmediatePriority=1;xt.unstable_LowPriority=4;xt.unstable_NormalPriority=3;xt.unstable_Profiling=null;xt.unstable_UserBlockingPriority=2;xt.unstable_cancelCallback=function(e){e.callback=null};xt.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,Dy(Ni,e),ca(ja)===null&&e===ca(Ni)&&(nc?(pA(ac),ac=-1):nc=!0,zy(Iy,r-n))):(e.sortIndex=a,Dy(ja,e),rc||Py||(rc=!0,Hl||(Hl=!0,$l()))),e};xt.unstable_shouldYield=hA;xt.unstable_wrapCallback=function(e){var t=Sr;return function(){var r=Sr;Sr=t;try{return e.apply(this,arguments)}finally{Sr=r}}}});var xA=wr((vQ,yA)=>{"use strict";yA.exports=gA()});var wA=wr(Ir=>{"use strict";var Oj=R();function bA(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function SA(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(SA)}catch(e){console.error(e)}}SA(),AA.exports=wA()});var I_=wr(xm=>{"use strict";var Jt=xA(),XN=R(),Mj=Gf();function ne(e){var t="https://react.dev/errors/"+e;if(1Gl||(e.current=w0[Gl],w0[Gl]=null,Gl--)}function ut(e,t){Gl++,w0[Gl]=e.current,e.current=t}var ma=va(null),Mc=va(null),Li=va(null),Op=va(null);function kp(e,t){switch(ut(Li,t),ut(Mc,e),ut(ma,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?DN(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=DN(t),e=w_(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}sr(ma),ut(ma,e)}function fs(){sr(ma),sr(Mc),sr(Li)}function S0(e){e.memoizedState!==null&&ut(Op,e);var t=ma.current,r=w_(t,e.type);t!==r&&(ut(Mc,e),ut(ma,r))}function Tp(e){Mc.current===e&&(sr(ma),sr(Mc)),Op.current===e&&(sr(Op),Vc._currentValue=_o)}var Ly,_A;function So(e){if(Ly===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);Ly=t&&t[1]||"",_A=-1()=>(t||e((t={exports:{}}).exports,t),t.exports),yj=(e,t)=>{for(var r in t)Cy(e,r,{get:t[r],enumerable:!0})},xj=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of gj(t))!hj.call(e,a)&&a!==r&&Cy(e,a,{get:()=>t[a],enumerable:!(n=mj(t,a))||n.enumerable});return e};var Q=(e,t,r)=>(r=e!=null?pj(vj(e)):{},xj(t||!e||!e.__esModule?Cy(r,"default",{value:e,enumerable:!0}):r,e));var fA=Ar(je=>{"use strict";var Ey=Symbol.for("react.transitional.element"),bj=Symbol.for("react.portal"),wj=Symbol.for("react.fragment"),Sj=Symbol.for("react.strict_mode"),Aj=Symbol.for("react.profiler"),Nj=Symbol.for("react.consumer"),Cj=Symbol.for("react.context"),_j=Symbol.for("react.forward_ref"),kj=Symbol.for("react.suspense"),Ej=Symbol.for("react.memo"),oA=Symbol.for("react.lazy"),Oj=Symbol.for("react.activity"),rA=Symbol.iterator;function Tj(e){return e===null||typeof e!="object"?null:(e=rA&&e[rA]||e["@@iterator"],typeof e=="function"?e:null)}var lA={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sA=Object.assign,uA={};function Hl(e,t,r){this.props=e,this.context=t,this.refs=uA,this.updater=r||lA}Hl.prototype.isReactComponent={};Hl.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Hl.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function cA(){}cA.prototype=Hl.prototype;function Oy(e,t,r){this.props=e,this.context=t,this.refs=uA,this.updater=r||lA}var Ty=Oy.prototype=new cA;Ty.constructor=Oy;sA(Ty,Hl.prototype);Ty.isPureReactComponent=!0;var nA=Array.isArray;function ky(){}var pt={H:null,A:null,T:null,S:null},dA=Object.prototype.hasOwnProperty;function My(e,t,r){var n=r.ref;return{$$typeof:Ey,type:e,key:t,ref:n!==void 0?n:null,props:r}}function Mj(e,t){return My(e.type,t,e.props)}function Dy(e){return typeof e=="object"&&e!==null&&e.$$typeof===Ey}function Dj(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var aA=/\/+/g;function _y(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Dj(""+e.key):t.toString(36)}function Pj(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(ky,ky):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Ul(e,t,r,n,a){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(i){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case Ey:case bj:o=!0;break;case oA:return o=e._init,Ul(o(e._payload),t,r,n,a)}}if(o)return a=a(e),o=n===""?"."+_y(e,0):n,nA(a)?(r="",o!=null&&(r=o.replace(aA,"$&/")+"/"),Ul(a,t,r,"",function(u){return u})):a!=null&&(Dy(a)&&(a=Mj(a,r+(a.key==null||e&&e.key===a.key?"":(""+a.key).replace(aA,"$&/")+"/")+o)),t.push(a)),1;o=0;var l=n===""?".":n+":";if(nA(e))for(var s=0;s{"use strict";pA.exports=fA()});var AA=Ar(wt=>{"use strict";function zy(e,t){var r=e.length;e.push(t);e:for(;0>>1,a=e[n];if(0>>1;nGf(l,r))sGf(u,l)?(e[n]=u,e[s]=r,n=s):(e[n]=l,e[o]=r,n=o);else if(sGf(u,r))e[n]=u,e[s]=r,n=s;else break e}}return t}function Gf(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}wt.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(mA=performance,wt.unstable_now=function(){return mA.now()}):(Py=Date,gA=Py.now(),wt.unstable_now=function(){return Py.now()-gA});var mA,Py,gA,za=[],_i=[],zj=1,_n=null,Nr=3,Ly=!1,ac=!1,ic=!1,By=!1,yA=typeof setTimeout=="function"?setTimeout:null,xA=typeof clearTimeout=="function"?clearTimeout:null,vA=typeof setImmediate<"u"?setImmediate:null;function Xf(e){for(var t=fa(_i);t!==null;){if(t.callback===null)Zf(_i);else if(t.startTime<=e)Zf(_i),t.sortIndex=t.expirationTime,zy(za,t);else break;t=fa(_i)}}function $y(e){if(ic=!1,Xf(e),!ac)if(fa(za)!==null)ac=!0,Fl||(Fl=!0,Vl());else{var t=fa(_i);t!==null&&Uy($y,t.startTime-e)}}var Fl=!1,oc=-1,bA=5,wA=-1;function SA(){return By?!0:!(wt.unstable_now()-wAe&&SA());){var n=_n.callback;if(typeof n=="function"){_n.callback=null,Nr=_n.priorityLevel;var a=n(_n.expirationTime<=e);if(e=wt.unstable_now(),typeof a=="function"){_n.callback=a,Xf(e),t=!0;break t}_n===fa(za)&&Zf(za),Xf(e)}else Zf(za);_n=fa(za)}if(_n!==null)t=!0;else{var i=fa(_i);i!==null&&Uy($y,i.startTime-e),t=!1}}break e}finally{_n=null,Nr=r,Ly=!1}t=void 0}}finally{t?Vl():Fl=!1}}}var Vl;typeof vA=="function"?Vl=function(){vA(jy)}:typeof MessageChannel<"u"?(Iy=new MessageChannel,hA=Iy.port2,Iy.port1.onmessage=jy,Vl=function(){hA.postMessage(null)}):Vl=function(){yA(jy,0)};var Iy,hA;function Uy(e,t){oc=yA(function(){e(wt.unstable_now())},t)}wt.unstable_IdlePriority=5;wt.unstable_ImmediatePriority=1;wt.unstable_LowPriority=4;wt.unstable_NormalPriority=3;wt.unstable_Profiling=null;wt.unstable_UserBlockingPriority=2;wt.unstable_cancelCallback=function(e){e.callback=null};wt.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,zy(_i,e),fa(za)===null&&e===fa(_i)&&(ic?(xA(oc),oc=-1):ic=!0,Uy($y,r-n))):(e.sortIndex=a,zy(za,e),ac||Ly||(ac=!0,Fl||(Fl=!0,Vl()))),e};wt.unstable_shouldYield=SA;wt.unstable_wrapCallback=function(e){var t=Nr;return function(){var r=Nr;Nr=t;try{return e.apply(this,arguments)}finally{Nr=r}}}});var CA=Ar((DQ,NA)=>{"use strict";NA.exports=AA()});var kA=Ar(Lr=>{"use strict";var Lj=R();function _A(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function EA(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(EA)}catch(e){console.error(e)}}EA(),OA.exports=kA()});var H_=Ar(Am=>{"use strict";var tr=CA(),tN=R(),Uj=Jf();function ne(e){var t="https://react.dev/errors/"+e;if(1Zl||(e.current=C0[Zl],C0[Zl]=null,Zl--)}function dt(e,t){Zl++,C0[Zl]=e.current,e.current=t}var va=ha(null),Pc=ha(null),$i=ha(null),Dp=ha(null);function Pp(e,t){switch(dt($i,t),dt(Pc,e),dt(va,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?B5(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=B5(t),e=k_(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}cr(va),dt(va,e)}function ms(){cr(va),cr(Pc),cr($i)}function _0(e){e.memoizedState!==null&&dt(Dp,e);var t=va.current,r=k_(t,e.type);t!==r&&(dt(Pc,e),dt(va,r))}function jp(e){Pc.current===e&&(cr(va),cr(Pc)),Dp.current===e&&(cr(Dp),Wc._currentValue=Eo)}var Hy,DA;function No(e){if(Hy===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);Hy=t&&t[1]||"",DA=-1)":-1a||s[n]!==u[a]){var c=` -`+s[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=a);break}}}finally{By=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?So(r):""}function zj(e,t){switch(e.tag){case 26:case 27:case 5:return So(e.type);case 16:return So("Lazy");case 13:return e.child!==t&&t!==null?So("Suspense Fallback"):So("Suspense");case 19:return So("SuspenseList");case 0:case 15:return Uy(e.type,!1);case 11:return Uy(e.type.render,!1);case 1:return Uy(e.type,!0);case 31:return So("Activity");default:return""}}function EA(e){try{var t="",r=null;do t+=zj(e,r),r=e,e=e.return;while(e);return t}catch(n){return` +`+s[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=a);break}}}finally{Vy=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?No(r):""}function qj(e,t){switch(e.tag){case 26:case 27:case 5:return No(e.type);case 16:return No("Lazy");case 13:return e.child!==t&&t!==null?No("Suspense Fallback"):No("Suspense");case 19:return No("SuspenseList");case 0:case 15:return Fy(e.type,!1);case 11:return Fy(e.type.render,!1);case 1:return Fy(e.type,!0);case 31:return No("Activity");default:return""}}function PA(e){try{var t="",r=null;do t+=qj(e,r),r=e,e=e.return;while(e);return t}catch(n){return` Error generating stack: `+n.message+` -`+n.stack}}var A0=Object.prototype.hasOwnProperty,px=Jt.unstable_scheduleCallback,$y=Jt.unstable_cancelCallback,Lj=Jt.unstable_shouldYield,Bj=Jt.unstable_requestPaint,ln=Jt.unstable_now,Uj=Jt.unstable_getCurrentPriorityLevel,r5=Jt.unstable_ImmediatePriority,n5=Jt.unstable_UserBlockingPriority,Mp=Jt.unstable_NormalPriority,$j=Jt.unstable_LowPriority,a5=Jt.unstable_IdlePriority,Hj=Jt.log,Vj=Jt.unstable_setDisableYieldValue,Wc=null,sn=null;function Di(e){if(typeof Hj=="function"&&Vj(e),sn&&typeof sn.setStrictMode=="function")try{sn.setStrictMode(Wc,e)}catch{}}var un=Math.clz32?Math.clz32:qj,Fj=Math.log,Yj=Math.LN2;function qj(e){return e>>>=0,e===0?32:31-(Fj(e)/Yj|0)|0}var Zf=256,Qf=262144,Jf=4194304;function Ao(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function nm(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var a=0,i=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var l=n&134217727;return l!==0?(n=l&~i,n!==0?a=Ao(n):(o&=l,o!==0?a=Ao(o):r||(r=l&~e,r!==0&&(a=Ao(r))))):(l=n&~i,l!==0?a=Ao(l):o!==0?a=Ao(o):r||(r=n&~e,r!==0&&(a=Ao(r)))),a===0?0:t!==0&&t!==a&&(t&i)===0&&(i=a&-a,r=t&-t,i>=r||i===32&&(r&4194048)!==0)?t:a}function Kc(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Wj(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function i5(){var e=Jf;return Jf<<=1,(Jf&62914560)===0&&(Jf=4194304),e}function Hy(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Gc(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Kj(e,t,r,n,a,i){var o=e.pendingLanes;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=r,e.entangledLanes&=r,e.errorRecoveryDisabledLanes&=r,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(r=o&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Rj=/[\n"\\]/g;function kn(e){return e.replace(Rj,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function _0(e,t,r,n,a,i,o,l){e.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.type=o:e.removeAttribute("type"),t!=null?o==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+_n(t)):e.value!==""+_n(t)&&(e.value=""+_n(t)):o!=="submit"&&o!=="reset"||e.removeAttribute("value"),t!=null?E0(e,o,_n(t)):r!=null?E0(e,o,_n(r)):n!=null&&e.removeAttribute("value"),a==null&&i!=null&&(e.defaultChecked=!!i),a!=null&&(e.checked=a&&typeof a!="function"&&typeof a!="symbol"),l!=null&&typeof l!="function"&&typeof l!="symbol"&&typeof l!="boolean"?e.name=""+_n(l):e.removeAttribute("name")}function m5(e,t,r,n,a,i,o,l){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||r!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){C0(e);return}r=r!=null?""+_n(r):"",t=t!=null?""+_n(t):r,l||t===e.value||(e.value=t),e.defaultValue=t}n=n??a,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=l?e.checked:!!n,e.defaultChecked=!!n,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.name=o),C0(e)}function E0(e,t,r){t==="number"&&Dp(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function os(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),k0=!1;if(Ga)try{Vl={},Object.defineProperty(Vl,"passive",{get:function(){k0=!0}}),window.addEventListener("test",Vl,Vl),window.removeEventListener("test",Vl,Vl)}catch{k0=!1}var Vl,Pi=null,xx=null,vp=null;function x5(){if(vp)return vp;var e,t=xx,r=t.length,n,a="value"in Pi?Pi.value:Pi.textContent,i=a.length;for(e=0;e=yc),BA=" ",UA=!1;function w5(e,t){switch(e){case"keyup":return EI.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function S5(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ql=!1;function kI(e,t){switch(e){case"compositionend":return S5(t);case"keypress":return t.which!==32?null:(UA=!0,BA);case"textInput":return e=t.data,e===BA&&UA?null:e;default:return null}}function TI(e,t){if(Ql)return e==="compositionend"||!wx&&w5(e,t)?(e=x5(),vp=xx=Pi=null,Ql=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=FA(r)}}function _5(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?_5(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function E5(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Dp(e.document);t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Dp(e.document)}return t}function Sx(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var BI=Ga&&"documentMode"in document&&11>=document.documentMode,Jl=null,T0=null,bc=null,M0=!1;function qA(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;M0||Jl==null||Jl!==Dp(n)||(n=Jl,"selectionStart"in n&&Sx(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),bc&&jc(bc,n)||(bc=n,n=Zp(T0,"onSelect"),0>=o,a-=o,da=1<<32-un(t)+a|r<_?(I=T,T=null):I=T.sibling;var z=f(m,T,x[_],w);if(z===null){T===null&&(T=I);break}e&&T&&z.alternate===null&&t(m,T),h=i(z,h,_),C===null?E=z:C.sibling=z,C=z,T=I}if(_===x.length)return r(m,T),Ve&&$a(m,_),E;if(T===null){for(;__?(I=T,T=null):I=T.sibling;var B=f(m,T,z.value,w);if(B===null){T===null&&(T=I);break}e&&T&&B.alternate===null&&t(m,T),h=i(B,h,_),C===null?E=B:C.sibling=B,C=B,T=I}if(z.done)return r(m,T),Ve&&$a(m,_),E;if(T===null){for(;!z.done;_++,z=x.next())z=d(m,z.value,w),z!==null&&(h=i(z,h,_),C===null?E=z:C.sibling=z,C=z);return Ve&&$a(m,_),E}for(T=n(T);!z.done;_++,z=x.next())z=p(T,m,_,z.value,w),z!==null&&(e&&z.alternate!==null&&T.delete(z.key===null?_:z.key),h=i(z,h,_),C===null?E=z:C.sibling=z,C=z);return e&&T.forEach(function($){return t(m,$)}),Ve&&$a(m,_),E}function b(m,h,x,w){if(typeof x=="object"&&x!==null&&x.type===Kl&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Xf:e:{for(var E=x.key;h!==null;){if(h.key===E){if(E=x.type,E===Kl){if(h.tag===7){r(m,h.sibling),w=a(h,x.props.children),w.return=m,m=w;break e}}else if(h.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===_i&&No(E)===h.type){r(m,h.sibling),w=a(h,x.props),sc(w,x),w.return=m,m=w;break e}r(m,h);break}else t(m,h);h=h.sibling}x.type===Kl?(w=Eo(x.props.children,m.mode,w,x.key),w.return=m,m=w):(w=gp(x.type,x.key,x.props,null,m.mode,w),sc(w,x),w.return=m,m=w)}return o(m);case pc:e:{for(E=x.key;h!==null;){if(h.key===E)if(h.tag===4&&h.stateNode.containerInfo===x.containerInfo&&h.stateNode.implementation===x.implementation){r(m,h.sibling),w=a(h,x.children||[]),w.return=m,m=w;break e}else{r(m,h);break}else t(m,h);h=h.sibling}w=Xy(x,m.mode,w),w.return=m,m=w}return o(m);case _i:return x=No(x),b(m,h,x,w)}if(mc(x))return v(m,h,x,w);if(oc(x)){if(E=oc(x),typeof E!="function")throw Error(ne(150));return x=E.call(x),g(m,h,x,w)}if(typeof x.then=="function")return b(m,h,ap(x),w);if(x.$$typeof===Va)return b(m,h,np(m,x),w);ip(m,x)}return typeof x=="string"&&x!==""||typeof x=="number"||typeof x=="bigint"?(x=""+x,h!==null&&h.tag===6?(r(m,h.sibling),w=a(h,x),w.return=m,m=w):(r(m,h),w=Gy(x,m.mode,w),w.return=m,m=w),o(m)):r(m,h)}return function(m,h,x,w){try{Lc=0;var E=b(m,h,x,w);return us=null,E}catch(T){if(T===_s||T===um)throw T;var C=an(29,T,null,m.mode);return C.lanes=w,C.return=m,C}}}var Po=V5(!0),F5=V5(!1),Ei=!1;function Mx(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function B0(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ui(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function $i(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Xe&2)!==0){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,t=jp(e),j5(e,null,r),t}return sm(e,n,t,r),jp(e)}function Sc(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,l5(e,r)}}function Qy(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var o={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};i===null?a=i=o:i=i.next=o,r=r.next}while(r!==null);i===null?a=i=t:i=i.next=t}else a=i=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:n.shared,callbacks:n.callbacks},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}var U0=!1;function Ac(){if(U0){var e=ss;if(e!==null)throw e}}function Nc(e,t,r,n){U0=!1;var a=e.updateQueue;Ei=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var s=l,u=s.next;s.next=null,o===null?i=u:o.next=u,o=s;var c=e.alternate;c!==null&&(c=c.updateQueue,l=c.lastBaseUpdate,l!==o&&(l===null?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(i!==null){var d=a.baseState;o=0,c=u=s=null,l=i;do{var f=l.lane&-536870913,p=f!==l.lane;if(p?($e&f)===f:(n&f)===f){f!==0&&f===vs&&(U0=!0),c!==null&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var v=e,g=l;f=t;var b=r;switch(g.tag){case 1:if(v=g.payload,typeof v=="function"){d=v.call(b,d,f);break e}d=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=g.payload,f=typeof v=="function"?v.call(b,d,f):v,f==null)break e;d=mt({},d,f);break e;case 2:Ei=!0}}f=l.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=a.callbacks,p===null?a.callbacks=[f]:p.push(f))}else p={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},c===null?(u=c=p,s=d):c=c.next=p,o|=f;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;p=l,l=p.next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}while(!0);c===null&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,i===null&&(a.shared.lanes=0),Xi|=o,e.lanes=o,e.memoizedState=d}}function Y5(e,t){if(typeof e!="function")throw Error(ne(191,e));e.call(t)}function q5(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;ei?i:8;var o=Ee.T,l={};Ee.T=l,Yx(e,!1,t,r);try{var s=a(),u=Ee.S;if(u!==null&&u(l,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var c=KI(s,n);Cc(e,t,c,cn(e))}else Cc(e,t,n,cn(e))}catch(d){Cc(e,t,{then:function(){},status:"rejected",reason:d},cn())}finally{Ze.p=i,o!==null&&l.types!==null&&(o.types=l.types),Ee.T=o}}function RI(){}function Y0(e,t,r,n){if(e.tag!==5)throw Error(ne(476));var a=hC(e).queue;vC(e,a,t,_o,r===null?RI:function(){return gC(e),r(n)})}function hC(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:_o,baseState:_o,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Za,lastRenderedState:_o},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Za,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function gC(e){var t=hC(e);t.next===null&&(t=e.alternate.memoizedState),Cc(e,t.next.queue,{},cn())}function Fx(){return vr(Vc)}function yC(){return zt().memoizedState}function xC(){return zt().memoizedState}function e7(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=cn();e=Ui(r);var n=$i(t,e,r);n!==null&&(qr(n,t,r),Sc(n,t,r)),t={cache:Ox()},e.payload=t;return}t=t.return}}function t7(e,t,r){var n=cn();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},pm(e)?wC(t,r):(r=Nx(e,t,r,n),r!==null&&(qr(r,e,n),SC(r,t,n)))}function bC(e,t,r){var n=cn();Cc(e,t,r,n)}function Cc(e,t,r,n){var a={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(pm(e))wC(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,r);if(a.hasEagerState=!0,a.eagerState=l,dn(l,o))return sm(e,t,a,0),ot===null&&lm(),!1}catch{}if(r=Nx(e,t,a,n),r!==null)return qr(r,e,n),SC(r,t,n),!0}return!1}function Yx(e,t,r,n){if(n={lane:2,revertLane:Rx(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},pm(e)){if(t)throw Error(ne(479))}else t=Nx(e,r,n,2),t!==null&&qr(t,e,2)}function pm(e){var t=e.alternate;return e===Pe||t!==null&&t===Pe}function wC(e,t){cs=$p=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function SC(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,l5(e,r)}}var Uc={readContext:vr,use:dm,useCallback:Et,useContext:Et,useEffect:Et,useImperativeHandle:Et,useLayoutEffect:Et,useInsertionEffect:Et,useMemo:Et,useReducer:Et,useRef:Et,useState:Et,useDebugValue:Et,useDeferredValue:Et,useTransition:Et,useSyncExternalStore:Et,useId:Et,useHostTransitionStatus:Et,useFormState:Et,useActionState:Et,useOptimistic:Et,useMemoCache:Et,useCacheRefresh:Et};Uc.useEffectEvent=Et;var AC={readContext:vr,use:dm,useCallback:function(e,t){return zr().memoizedState=[e,t===void 0?null:t],e},useContext:vr,useEffect:oN,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,bp(4194308,4,cC.bind(null,t,e),r)},useLayoutEffect:function(e,t){return bp(4194308,4,e,t)},useInsertionEffect:function(e,t){bp(4,2,e,t)},useMemo:function(e,t){var r=zr();t=t===void 0?null:t;var n=e();if(jo){Di(!0);try{e()}finally{Di(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=zr();if(r!==void 0){var a=r(t);if(jo){Di(!0);try{r(t)}finally{Di(!1)}}}else a=t;return n.memoizedState=n.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},n.queue=e,e=e.dispatch=t7.bind(null,Pe,e),[n.memoizedState,e]},useRef:function(e){var t=zr();return e={current:e},t.memoizedState=e},useState:function(e){e=V0(e);var t=e.queue,r=bC.bind(null,Pe,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:Hx,useDeferredValue:function(e,t){var r=zr();return Vx(r,e,t)},useTransition:function(){var e=V0(!1);return e=vC.bind(null,Pe,e.queue,!0,!1),zr().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=Pe,a=zr();if(Ve){if(r===void 0)throw Error(ne(407));r=r()}else{if(r=t(),ot===null)throw Error(ne(349));($e&127)!==0||Z5(n,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,oN(J5.bind(null,n,i,e),[e]),n.flags|=2048,gs(9,{destroy:void 0},Q5.bind(null,n,i,r,t),null),r},useId:function(){var e=zr(),t=ot.identifierPrefix;if(Ve){var r=fa,n=da;r=(n&~(1<<32-un(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=Hp++,0<\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof n.is=="string"?o.createElement("select",{is:n.is}):o.createElement("select"),n.multiple?i.multiple=!0:n.size&&(i.size=n.size);break;default:i=typeof n.is=="string"?o.createElement(a,{is:n.is}):o.createElement(a)}}i[pr]=t,i[Wr]=n;e:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)i.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;o.sibling===null;){if(o.return===null||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=i;e:switch(hr(i,a,n),a){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&za(t)}}return ft(t),i0(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&za(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(ne(166));if(e=Li.current,Fl(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,a=mr,a!==null)switch(a.tag){case 27:case 5:n=a.memoizedProps}e[pr]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||b_(e.nodeValue,r)),e||Ki(t,!0)}else e=Qp(e).createTextNode(n),e[pr]=t,t.stateNode=e}return ft(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=Fl(t),r!==null){if(e===null){if(!n)throw Error(ne(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(ne(557));e[pr]=t}else Mo(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ft(t),e=!1}else r=Zy(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(nn(t),t):(nn(t),null);if((t.flags&128)!==0)throw Error(ne(558))}return ft(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Fl(t),n!==null&&n.dehydrated!==null){if(e===null){if(!a)throw Error(ne(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(ne(317));a[pr]=t}else Mo(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ft(t),a=!1}else a=Zy(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(nn(t),t):(nn(t),null)}return nn(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,a=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(a=n.alternate.memoizedState.cachePool.pool),i=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(i=n.memoizedState.cachePool.pool),i!==a&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),op(t,t.updateQueue),ft(t),null);case 4:return fs(),e===null&&eb(t.stateNode.containerInfo),ft(t),null;case 10:return Wa(t.type),ft(t),null;case 19:if(sr(It),n=t.memoizedState,n===null)return ft(t),null;if(a=(t.flags&128)!==0,i=n.rendering,i===null)if(a)uc(n,!1);else{if(Ot!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=Up(e),i!==null){for(t.flags|=128,uc(n,!1),e=i.updateQueue,t.updateQueue=e,op(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)I5(r,e),r=r.sibling;return ut(It,It.current&1|2),Ve&&$a(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&ln()>qp&&(t.flags|=128,a=!0,uc(n,!1),t.lanes=4194304)}else{if(!a)if(e=Up(i),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,op(t,e),uc(n,!0),n.tail===null&&n.tailMode==="hidden"&&!i.alternate&&!Ve)return ft(t),null}else 2*ln()-n.renderingStartTime>qp&&r!==536870912&&(t.flags|=128,a=!0,uc(n,!1),t.lanes=4194304);n.isBackwards?(i.sibling=t.child,t.child=i):(e=n.last,e!==null?e.sibling=i:t.child=i,n.last=i)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=ln(),e.sibling=null,r=It.current,ut(It,a?r&1|2:r&1),Ve&&$a(t,n.treeForkCount),e):(ft(t),null);case 22:case 23:return nn(t),Dx(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(r&536870912)!==0&&(t.flags&128)===0&&(ft(t),t.subtreeFlags&6&&(t.flags|=8192)):ft(t),r=t.updateQueue,r!==null&&op(t,r.retryQueue),r=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(r=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==r&&(t.flags|=2048),e!==null&&sr(Oo),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Wa(Kt),ft(t),null;case 25:return null;case 30:return null}throw Error(ne(156,t.tag))}function o7(e,t){switch(Ex(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wa(Kt),fs(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Tp(t),null;case 31:if(t.memoizedState!==null){if(nn(t),t.alternate===null)throw Error(ne(340));Mo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(nn(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ne(340));Mo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return sr(It),null;case 4:return fs(),null;case 10:return Wa(t.type),null;case 22:case 23:return nn(t),Dx(),e!==null&&sr(Oo),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Wa(Kt),null;case 25:return null;default:return null}}function IC(e,t){switch(Ex(t),t.tag){case 3:Wa(Kt),fs();break;case 26:case 27:case 5:Tp(t);break;case 4:fs();break;case 31:t.memoizedState!==null&&nn(t);break;case 13:nn(t);break;case 19:sr(It);break;case 10:Wa(t.type);break;case 22:case 23:nn(t),Dx(),e!==null&&sr(Oo);break;case 24:Wa(Kt)}}function Rc(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var a=n.next;r=a;do{if((r.tag&e)===e){n=void 0;var i=r.create,o=r.inst;n=i(),o.destroy=n}r=r.next}while(r!==a)}}catch(l){tt(t,t.return,l)}}function Gi(e,t,r){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var i=a.next;n=i;do{if((n.tag&e)===e){var o=n.inst,l=o.destroy;if(l!==void 0){o.destroy=void 0,a=t;var s=r,u=l;try{u()}catch(c){tt(a,s,c)}}}n=n.next}while(n!==i)}}catch(c){tt(t,t.return,c)}}function zC(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{q5(t,r)}catch(n){tt(e,e.return,n)}}}function LC(e,t,r){r.props=Io(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){tt(e,t,n)}}function _c(e,t){try{var r=e.ref;if(r!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof r=="function"?e.refCleanup=r(n):r.current=n}}catch(a){tt(e,t,a)}}function pa(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(a){tt(e,t,a)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(a){tt(e,t,a)}else r.current=null}function BC(e){var t=e.type,r=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":r.autoFocus&&n.focus();break e;case"img":r.src?n.src=r.src:r.srcSet&&(n.srcset=r.srcSet)}}catch(a){tt(e,e.return,a)}}function o0(e,t,r){try{var n=e.stateNode;_7(n,e.type,r,t),n[Wr]=t}catch(a){tt(e,e.return,a)}}function UC(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Qi(e.type)||e.tag===4}function l0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||UC(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Qi(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function X0(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(e,t):(t=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,t.appendChild(e),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Fa));else if(n!==4&&(n===27&&Qi(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(X0(e,t,r),e=e.sibling;e!==null;)X0(e,t,r),e=e.sibling}function Yp(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(n===27&&Qi(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(Yp(e,t,r),e=e.sibling;e!==null;)Yp(e,t,r),e=e.sibling}function $C(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);hr(t,n,r),t[pr]=e,t[Wr]=r}catch(i){tt(e,e.return,i)}}var Ha=!1,Wt=!1,s0=!1,xN=typeof WeakSet=="function"?WeakSet:Set,or=null;function l7(e,t){if(e=e.containerInfo,rx=tm,e=E5(e),Sx(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var a=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var o=0,l=-1,s=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var p;d!==r||a!==0&&d.nodeType!==3||(l=o+a),d!==i||n!==0&&d.nodeType!==3||(s=o+n),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===r&&++u===a&&(l=o),f===i&&++c===n&&(s=o),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}r=l===-1||s===-1?null:{start:l,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(nx={focusedElem:e,selectionRange:r},tm=!1,or=t;or!==null;)if(t=or,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,or=e;else for(;or!==null;){switch(t=or,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(r=0;r title"))),hr(i,n,r),i[pr]=e,lr(i),n=i;break e;case"link":var o=HN("link","href",a).get(n+(r.href||""));if(o){for(var l=0;lb&&(o=b,b=g,g=o);var m=YA(l,g),h=YA(l,b);if(m&&h&&(p.rangeCount!==1||p.anchorNode!==m.node||p.anchorOffset!==m.offset||p.focusNode!==h.node||p.focusOffset!==h.offset)){var x=d.createRange();x.setStart(m.node,m.offset),p.removeAllRanges(),g>b?(p.addRange(x),p.extend(h.node,h.offset)):(x.setEnd(h.node,h.offset),p.addRange(x))}}}}for(d=[],p=l;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;lr?32:r,Ee.T=null,r=J0,J0=null;var i=Vi,o=Ka;if(Qt=0,xs=Vi=null,Ka=0,(Xe&6)!==0)throw Error(ne(331));var l=Xe;if(Xe|=4,QC(i.current),GC(i,i.current,o,r),Xe=l,ed(0,!1),sn&&typeof sn.onPostCommitFiberRoot=="function")try{sn.onPostCommitFiberRoot(Wc,i)}catch{}return!0}finally{Ze.p=a,Ee.T=n,f_(e,t)}}function AN(e,t,r){t=Tn(r,t),t=W0(e.stateNode,t,2),e=$i(e,t,2),e!==null&&(Gc(e,2),ha(e))}function tt(e,t,r){if(e.tag===3)AN(e,e,r);else for(;t!==null;){if(t.tag===3){AN(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(Hi===null||!Hi.has(n))){e=Tn(r,e),r=OC(2),n=$i(t,r,2),n!==null&&(kC(r,n,t,e),Gc(n,2),ha(n));break}}t=t.return}}function c0(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new c7;var a=new Set;n.set(t,a)}else a=n.get(t),a===void 0&&(a=new Set,n.set(t,a));a.has(r)||(Zx=!0,a.add(r),e=v7.bind(null,e,t,r),t.then(e,e))}function v7(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,ot===e&&($e&r)===r&&(Ot===4||Ot===3&&($e&62914560)===$e&&300>ln()-mm?(Xe&2)===0&&bs(e,0):Qx|=r,ys===$e&&(ys=0)),ha(e)}function m_(e,t){t===0&&(t=i5()),e=Uo(e,t),e!==null&&(Gc(e,t),ha(e))}function h7(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),m_(e,r)}function g7(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(ne(314))}n!==null&&n.delete(t),m_(e,r)}function y7(e,t){return px(e,t)}var Gp=null,Wl=null,ex=!1,Xp=!1,d0=!1,zi=0;function ha(e){e!==Wl&&e.next===null&&(Wl===null?Gp=Wl=e:Wl=Wl.next=e),Xp=!0,ex||(ex=!0,b7())}function ed(e,t){if(!d0&&Xp){d0=!0;do for(var r=!1,n=Gp;n!==null;){if(!t)if(e!==0){var a=n.pendingLanes;if(a===0)var i=0;else{var o=n.suspendedLanes,l=n.pingedLanes;i=(1<<31-un(42|e)+1)-1,i&=a&~(o&~l),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(r=!0,NN(n,i))}else i=$e,i=nm(n,n===ot?i:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(i&3)===0||Kc(n,i)||(r=!0,NN(n,i));n=n.next}while(r);d0=!1}}function x7(){v_()}function v_(){Xp=ex=!1;var e=0;zi!==0&&O7()&&(e=zi);for(var t=ln(),r=null,n=Gp;n!==null;){var a=n.next,i=h_(n,t);i===0?(n.next=null,r===null?Gp=a:r.next=a,a===null&&(Wl=r)):(r=n,(e!==0||(i&3)!==0)&&(Xp=!0)),n=a}Qt!==0&&Qt!==5||ed(e,!1),zi!==0&&(zi=0)}function h_(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes&-62914561;0l)break;var c=s.transferSize,d=s.initiatorType;c&&MN(d)&&(s=s.responseEnd,o+=c*(s"u"?null:document;function C_(e,t,r){var n=Os;if(n&&typeof t=="string"&&t){var a=kn(t);a='link[rel="'+e+'"][href="'+a+'"]',typeof r=="string"&&(a+='[crossorigin="'+r+'"]'),BN.has(a)||(BN.add(a),e={rel:e,crossOrigin:r,href:t},n.querySelector(a)===null&&(t=n.createElement("link"),hr(t,"link",e),lr(t),n.head.appendChild(t)))}}function L7(e){Ra.D(e),C_("dns-prefetch",e,null)}function B7(e,t){Ra.C(e,t),C_("preconnect",e,t)}function U7(e,t,r){Ra.L(e,t,r);var n=Os;if(n&&e&&t){var a='link[rel="preload"][as="'+kn(t)+'"]';t==="image"&&r&&r.imageSrcSet?(a+='[imagesrcset="'+kn(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(a+='[imagesizes="'+kn(r.imageSizes)+'"]')):a+='[href="'+kn(e)+'"]';var i=a;switch(t){case"style":i=ws(e);break;case"script":i=ks(e)}jn.has(i)||(e=mt({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),jn.set(i,e),n.querySelector(a)!==null||t==="style"&&n.querySelector(td(i))||t==="script"&&n.querySelector(rd(i))||(t=n.createElement("link"),hr(t,"link",e),lr(t),n.head.appendChild(t)))}}function $7(e,t){Ra.m(e,t);var r=Os;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",a='link[rel="modulepreload"][as="'+kn(n)+'"][href="'+kn(e)+'"]',i=a;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=ks(e)}if(!jn.has(i)&&(e=mt({rel:"modulepreload",href:e},t),jn.set(i,e),r.querySelector(a)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(rd(i)))return}n=r.createElement("link"),hr(n,"link",e),lr(n),r.head.appendChild(n)}}}function H7(e,t,r){Ra.S(e,t,r);var n=Os;if(n&&e){var a=is(n).hoistableStyles,i=ws(e);t=t||"default";var o=a.get(i);if(!o){var l={loading:0,preload:null};if(o=n.querySelector(td(i)))l.loading=5;else{e=mt({rel:"stylesheet",href:e,"data-precedence":t},r),(r=jn.get(i))&&tb(e,r);var s=o=n.createElement("link");lr(s),hr(s,"link",e),s._p=new Promise(function(u,c){s.onload=u,s.onerror=c}),s.addEventListener("load",function(){l.loading|=1}),s.addEventListener("error",function(){l.loading|=2}),l.loading|=4,Np(o,t,n)}o={type:"stylesheet",instance:o,count:1,state:l},a.set(i,o)}}}function V7(e,t){Ra.X(e,t);var r=Os;if(r&&e){var n=is(r).hoistableScripts,a=ks(e),i=n.get(a);i||(i=r.querySelector(rd(a)),i||(e=mt({src:e,async:!0},t),(t=jn.get(a))&&rb(e,t),i=r.createElement("script"),lr(i),hr(i,"link",e),r.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},n.set(a,i))}}function F7(e,t){Ra.M(e,t);var r=Os;if(r&&e){var n=is(r).hoistableScripts,a=ks(e),i=n.get(a);i||(i=r.querySelector(rd(a)),i||(e=mt({src:e,async:!0,type:"module"},t),(t=jn.get(a))&&rb(e,t),i=r.createElement("script"),lr(i),hr(i,"link",e),r.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},n.set(a,i))}}function UN(e,t,r,n){var a=(a=Li.current)?Jp(a):null;if(!a)throw Error(ne(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=ws(r.href),r=is(a).hoistableStyles,n=r.get(t),n||(n={type:"style",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){e=ws(r.href);var i=is(a).hoistableStyles,o=i.get(e);if(o||(a=a.ownerDocument||a,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,o),(i=a.querySelector(td(e)))&&!i._p&&(o.instance=i,o.state.loading=5),jn.has(e)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},jn.set(e,r),i||Y7(a,e,r,o.state))),t&&n===null)throw Error(ne(528,""));return o}if(t&&n!==null)throw Error(ne(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=ks(r),r=is(a).hoistableScripts,n=r.get(t),n||(n={type:"script",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(ne(444,e))}}function ws(e){return'href="'+kn(e)+'"'}function td(e){return'link[rel="stylesheet"]['+e+"]"}function __(e){return mt({},e,{"data-precedence":e.precedence,precedence:null})}function Y7(e,t,r,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),hr(t,"link",r),lr(t),e.head.appendChild(t))}function ks(e){return'[src="'+kn(e)+'"]'}function rd(e){return"script[async]"+e}function $N(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+kn(r.href)+'"]');if(n)return t.instance=n,lr(n),n;var a=mt({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),lr(n),hr(n,"style",a),Np(n,r.precedence,e),t.instance=n;case"stylesheet":a=ws(r.href);var i=e.querySelector(td(a));if(i)return t.state.loading|=4,t.instance=i,lr(i),i;n=__(r),(a=jn.get(a))&&tb(n,a),i=(e.ownerDocument||e).createElement("link"),lr(i);var o=i;return o._p=new Promise(function(l,s){o.onload=l,o.onerror=s}),hr(i,"link",n),t.state.loading|=4,Np(i,r.precedence,e),t.instance=i;case"script":return i=ks(r.src),(a=e.querySelector(rd(i)))?(t.instance=a,lr(a),a):(n=r,(a=jn.get(i))&&(n=mt({},r),rb(n,a)),e=e.ownerDocument||e,a=e.createElement("script"),lr(a),hr(a,"link",n),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(ne(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Np(n,r.precedence,e));return t.instance}function Np(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=n.length?n[n.length-1]:null,i=a,o=0;o title"):null)}function q7(e,t,r){if(r===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function E_(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function W7(e,t,r,n){if(r.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var a=ws(n.href),i=t.querySelector(td(a));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Rp.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=i,lr(i);return}i=t.ownerDocument||t,n=__(n),(a=jn.get(a))&&tb(n,a),i=i.createElement("link"),lr(i);var o=i;o._p=new Promise(function(l,s){o.onload=l,o.onerror=s}),hr(i,"link",n),r.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=Rp.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var v0=0;function K7(e,t){return e.stylesheets&&e.count===0&&_p(e,e.stylesheets),0v0?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(a)}}:null}function Rp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)_p(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var em=null;function _p(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,em=new Map,t.forEach(G7,e),em=null,Rp.call(e))}function G7(e,t){if(!(t.state.loading&4)){var r=em.get(e);if(r)var n=r.get(null);else{r=new Map,em.set(e,r);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i{"use strict";function z_(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(z_)}catch(e){console.error(e)}}z_(),L_.exports=I_()});var zE=wr(IE=>{"use strict";var Ks=R();function Bz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Uz=typeof Object.is=="function"?Object.is:Bz,$z=Ks.useState,Hz=Ks.useEffect,Vz=Ks.useLayoutEffect,Fz=Ks.useDebugValue;function Yz(e,t){var r=t(),n=$z({inst:{value:r,getSnapshot:t}}),a=n[0].inst,i=n[1];return Vz(function(){a.value=r,a.getSnapshot=t,$b(a)&&i({inst:a})},[e,r,t]),Hz(function(){return $b(a)&&i({inst:a}),e(function(){$b(a)&&i({inst:a})})},[e]),Fz(r),r}function $b(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!Uz(e,r)}catch{return!0}}function qz(e,t){return t()}var Wz=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?qz:Yz;IE.useSyncExternalStore=Ks.useSyncExternalStore!==void 0?Ks.useSyncExternalStore:Wz});var BE=wr((nte,LE)=>{"use strict";LE.exports=zE()});var $E=wr(UE=>{"use strict";var av=R(),Kz=BE();function Gz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Xz=typeof Object.is=="function"?Object.is:Gz,Zz=Kz.useSyncExternalStore,Qz=av.useRef,Jz=av.useEffect,Rz=av.useMemo,e9=av.useDebugValue;UE.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var i=Qz(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=Rz(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&o.hasValue){var v=o.value;if(a(v,p))return d=v}return d=p}if(v=d,Xz(c,p))return v;var g=n(p);return a!==void 0&&a(v,g)?(c=p,v):(c=p,d=g)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=Zz(e,i[0],i[1]);return Jz(function(){o.hasValue=!0,o.value=l},[l]),e9(l),l}});var VE=wr((ite,HE)=>{"use strict";HE.exports=$E()});var Tk=wr(kk=>{"use strict";var wd=R();function aB(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var iB=typeof Object.is=="function"?Object.is:aB,oB=wd.useSyncExternalStore,lB=wd.useRef,sB=wd.useEffect,uB=wd.useMemo,cB=wd.useDebugValue;kk.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var i=lB(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=uB(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&o.hasValue){var v=o.value;if(a(v,p))return d=v}return d=p}if(v=d,iB(c,p))return v;var g=n(p);return a!==void 0&&a(v,g)?(c=p,v):(c=p,d=g)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=oB(e,i[0],i[1]);return sB(function(){o.hasValue=!0,o.value=l},[l]),cB(l),l}});var Dk=wr((ane,Mk)=>{"use strict";Mk.exports=Tk()});var P1=wr((t3,oh)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,a="[DecimalError] ",i=a+"Invalid argument: ",o=a+"Exponent out of range: ",l=Math.floor,s=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,f=7,p=9007199254740991,v=l(p/f),g={};g.absoluteValue=g.abs=function(){var y=new this.constructor(this);return y.s&&(y.s=1),y},g.comparedTo=g.cmp=function(y){var N,O,M,A,k=this;if(y=new k.constructor(y),k.s!==y.s)return k.s||-y.s;if(k.e!==y.e)return k.e>y.e^k.s<0?1:-1;for(M=k.d.length,A=y.d.length,N=0,O=My.d[N]^k.s<0?1:-1;return M===A?0:M>A^k.s<0?1:-1},g.decimalPlaces=g.dp=function(){var y=this,N=y.d.length-1,O=(N-y.e)*f;if(N=y.d[N],N)for(;N%10==0;N/=10)O--;return O<0?0:O},g.dividedBy=g.div=function(y){return x(this,new this.constructor(y))},g.dividedToIntegerBy=g.idiv=function(y){var N=this,O=N.constructor;return z(x(N,new O(y),0,1),O.precision)},g.equals=g.eq=function(y){return!this.cmp(y)},g.exponent=function(){return E(this)},g.greaterThan=g.gt=function(y){return this.cmp(y)>0},g.greaterThanOrEqualTo=g.gte=function(y){return this.cmp(y)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(y){return this.cmp(y)<0},g.lessThanOrEqualTo=g.lte=function(y){return this.cmp(y)<1},g.logarithm=g.log=function(y){var N,O=this,M=O.constructor,A=M.precision,k=A+5;if(y===void 0)y=new M(10);else if(y=new M(y),y.s<1||y.eq(c))throw Error(a+"NaN");if(O.s<1)throw Error(a+(O.s?"NaN":"-Infinity"));return O.eq(c)?new M(0):(n=!1,N=x(_(O,k),_(y,k),k),n=!0,z(N,A))},g.minus=g.sub=function(y){var N=this;return y=new N.constructor(y),N.s==y.s?B(N,y):b(N,(y.s=-y.s,y))},g.modulo=g.mod=function(y){var N,O=this,M=O.constructor,A=M.precision;if(y=new M(y),!y.s)throw Error(a+"NaN");return O.s?(n=!1,N=x(O,y,0,1).times(y),n=!0,O.minus(N)):z(new M(O),A)},g.naturalExponential=g.exp=function(){return w(this)},g.naturalLogarithm=g.ln=function(){return _(this)},g.negated=g.neg=function(){var y=new this.constructor(this);return y.s=-y.s||0,y},g.plus=g.add=function(y){var N=this;return y=new N.constructor(y),N.s==y.s?b(N,y):B(N,(y.s=-y.s,y))},g.precision=g.sd=function(y){var N,O,M,A=this;if(y!==void 0&&y!==!!y&&y!==1&&y!==0)throw Error(i+y);if(N=E(A)+1,M=A.d.length-1,O=M*f+1,M=A.d[M],M){for(;M%10==0;M/=10)O--;for(M=A.d[0];M>=10;M/=10)O++}return y&&N>O?N:O},g.squareRoot=g.sqrt=function(){var y,N,O,M,A,k,V,G=this,Q=G.constructor;if(G.s<1){if(!G.s)return new Q(0);throw Error(a+"NaN")}for(y=E(G),n=!1,A=Math.sqrt(+G),A==0||A==1/0?(N=h(G.d),(N.length+y)%2==0&&(N+="0"),A=Math.sqrt(N),y=l((y+1)/2)-(y<0||y%2),A==1/0?N="5e"+y:(N=A.toExponential(),N=N.slice(0,N.indexOf("e")+1)+y),M=new Q(N)):M=new Q(A.toString()),O=Q.precision,A=V=O+3;;)if(k=M,M=k.plus(x(G,k,V+2)).times(.5),h(k.d).slice(0,V)===(N=h(M.d)).slice(0,V)){if(N=N.slice(V-3,V+1),A==V&&N=="4999"){if(z(k,O+1,0),k.times(k).eq(G)){M=k;break}}else if(N!="9999")break;V+=4}return n=!0,z(M,O)},g.times=g.mul=function(y){var N,O,M,A,k,V,G,Q,se,ue=this,pe=ue.constructor,Oe=ue.d,ie=(y=new pe(y)).d;if(!ue.s||!y.s)return new pe(0);for(y.s*=ue.s,O=ue.e+y.e,Q=Oe.length,se=ie.length,Q=0;){for(N=0,A=Q+M;A>M;)G=k[A]+ie[M]*Oe[A-M-1]+N,k[A--]=G%d|0,N=G/d|0;k[A]=(k[A]+N)%d|0}for(;!k[--V];)k.pop();return N?++O:k.shift(),y.d=k,y.e=O,n?z(y,pe.precision):y},g.toDecimalPlaces=g.todp=function(y,N){var O=this,M=O.constructor;return O=new M(O),y===void 0?O:(m(y,0,t),N===void 0?N=M.rounding:m(N,0,8),z(O,y+E(O)+1,N))},g.toExponential=function(y,N){var O,M=this,A=M.constructor;return y===void 0?O=$(M,!0):(m(y,0,t),N===void 0?N=A.rounding:m(N,0,8),M=z(new A(M),y+1,N),O=$(M,!0,y+1)),O},g.toFixed=function(y,N){var O,M,A=this,k=A.constructor;return y===void 0?$(A):(m(y,0,t),N===void 0?N=k.rounding:m(N,0,8),M=z(new k(A),y+E(A)+1,N),O=$(M.abs(),!1,y+E(M)+1),A.isneg()&&!A.isZero()?"-"+O:O)},g.toInteger=g.toint=function(){var y=this,N=y.constructor;return z(new N(y),E(y)+1,N.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(y){var N,O,M,A,k,V,G=this,Q=G.constructor,se=12,ue=+(y=new Q(y));if(!y.s)return new Q(c);if(G=new Q(G),!G.s){if(y.s<1)throw Error(a+"Infinity");return G}if(G.eq(c))return G;if(M=Q.precision,y.eq(c))return z(G,M);if(N=y.e,O=y.d.length-1,V=N>=O,k=G.s,V){if((O=ue<0?-ue:ue)<=p){for(A=new Q(c),N=Math.ceil(M/f+4),n=!1;O%2&&(A=A.times(G),X(A.d,N)),O=l(O/2),O!==0;)G=G.times(G),X(G.d,N);return n=!0,y.s<0?new Q(c).div(A):z(A,M)}}else if(k<0)throw Error(a+"NaN");return k=k<0&&y.d[Math.max(N,O)]&1?-1:1,G.s=1,n=!1,A=y.times(_(G,M+se)),n=!0,A=w(A),A.s=k,A},g.toPrecision=function(y,N){var O,M,A=this,k=A.constructor;return y===void 0?(O=E(A),M=$(A,O<=k.toExpNeg||O>=k.toExpPos)):(m(y,1,t),N===void 0?N=k.rounding:m(N,0,8),A=z(new k(A),y,N),O=E(A),M=$(A,y<=O||O<=k.toExpNeg,y)),M},g.toSignificantDigits=g.tosd=function(y,N){var O=this,M=O.constructor;return y===void 0?(y=M.precision,N=M.rounding):(m(y,1,t),N===void 0?N=M.rounding:m(N,0,8)),z(new M(O),y,N)},g.toString=g.valueOf=g.val=g.toJSON=function(){var y=this,N=E(y),O=y.constructor;return $(y,N<=O.toExpNeg||N>=O.toExpPos)};function b(y,N){var O,M,A,k,V,G,Q,se,ue=y.constructor,pe=ue.precision;if(!y.s||!N.s)return N.s||(N=new ue(y)),n?z(N,pe):N;if(Q=y.d,se=N.d,V=y.e,A=N.e,Q=Q.slice(),k=V-A,k){for(k<0?(M=Q,k=-k,G=se.length):(M=se,A=V,G=Q.length),V=Math.ceil(pe/f),G=V>G?V+1:G+1,k>G&&(k=G,M.length=1),M.reverse();k--;)M.push(0);M.reverse()}for(G=Q.length,k=se.length,G-k<0&&(k=G,M=se,se=Q,Q=M),O=0;k;)O=(Q[--k]=Q[k]+se[k]+O)/d|0,Q[k]%=d;for(O&&(Q.unshift(O),++A),G=Q.length;Q[--G]==0;)Q.pop();return N.d=Q,N.e=A,n?z(N,pe):N}function m(y,N,O){if(y!==~~y||yO)throw Error(i+y)}function h(y){var N,O,M,A=y.length-1,k="",V=y[0];if(A>0){for(k+=V,N=1;NV?1:-1;else for(G=Q=0;GA[G]?1:-1;break}return Q}function O(M,A,k){for(var V=0;k--;)M[k]-=V,V=M[k]1;)M.shift()}return function(M,A,k,V){var G,Q,se,ue,pe,Oe,ie,Ne,F,Y,S,P,K,j,he,ge,xe,Me,Pr=M.constructor,Vf=M.s==A.s?1:-1,ua=M.d,Yt=A.d;if(!M.s)return new Pr(M);if(!A.s)throw Error(a+"Division by zero");for(Q=M.e-A.e,xe=Yt.length,he=ua.length,ie=new Pr(Vf),Ne=ie.d=[],se=0;Yt[se]==(ua[se]||0);)++se;if(Yt[se]>(ua[se]||0)&&--Q,k==null?P=k=Pr.precision:V?P=k+(E(M)-E(A))+1:P=k,P<0)return new Pr(0);if(P=P/f+2|0,se=0,xe==1)for(ue=0,Yt=Yt[0],P++;(se1&&(Yt=y(Yt,ue),ua=y(ua,ue),xe=Yt.length,he=ua.length),j=xe,F=ua.slice(0,xe),Y=F.length;Y=d/2&&++ge;do ue=0,G=N(Yt,F,xe,Y),G<0?(S=F[0],xe!=Y&&(S=S*d+(F[1]||0)),ue=S/ge|0,ue>1?(ue>=d&&(ue=d-1),pe=y(Yt,ue),Oe=pe.length,Y=F.length,G=N(pe,F,Oe,Y),G==1&&(ue--,O(pe,xe16)throw Error(o+E(y));if(!y.s)return new ue(c);for(N==null?(n=!1,G=pe):G=N,V=new ue(.03125);y.abs().gte(.1);)y=y.times(V),se+=5;for(M=Math.log(s(2,se))/Math.LN10*2+5|0,G+=M,O=A=k=new ue(c),ue.precision=G;;){if(A=z(A.times(y),G),O=O.times(++Q),V=k.plus(x(A,O,G)),h(V.d).slice(0,G)===h(k.d).slice(0,G)){for(;se--;)k=z(k.times(k),G);return ue.precision=pe,N==null?(n=!0,z(k,pe)):k}k=V}}function E(y){for(var N=y.e*f,O=y.d[0];O>=10;O/=10)N++;return N}function C(y,N,O){if(N>y.LN10.sd())throw n=!0,O&&(y.precision=O),Error(a+"LN10 precision limit exceeded");return z(new y(y.LN10),N)}function T(y){for(var N="";y--;)N+="0";return N}function _(y,N){var O,M,A,k,V,G,Q,se,ue,pe=1,Oe=10,ie=y,Ne=ie.d,F=ie.constructor,Y=F.precision;if(ie.s<1)throw Error(a+(ie.s?"NaN":"-Infinity"));if(ie.eq(c))return new F(0);if(N==null?(n=!1,se=Y):se=N,ie.eq(10))return N==null&&(n=!0),C(F,se);if(se+=Oe,F.precision=se,O=h(Ne),M=O.charAt(0),k=E(ie),Math.abs(k)<15e14){for(;M<7&&M!=1||M==1&&O.charAt(1)>3;)ie=ie.times(y),O=h(ie.d),M=O.charAt(0),pe++;k=E(ie),M>1?(ie=new F("0."+O),k++):ie=new F(M+"."+O.slice(1))}else return Q=C(F,se+2,Y).times(k+""),ie=_(new F(M+"."+O.slice(1)),se-Oe).plus(Q),F.precision=Y,N==null?(n=!0,z(ie,Y)):ie;for(G=V=ie=x(ie.minus(c),ie.plus(c),se),ue=z(ie.times(ie),se),A=3;;){if(V=z(V.times(ue),se),Q=G.plus(x(V,new F(A),se)),h(Q.d).slice(0,se)===h(G.d).slice(0,se))return G=G.times(2),k!==0&&(G=G.plus(C(F,se+2,Y).times(k+""))),G=x(G,new F(pe),se),F.precision=Y,N==null?(n=!0,z(G,Y)):G;G=Q,A+=2}}function I(y,N){var O,M,A;for((O=N.indexOf("."))>-1&&(N=N.replace(".","")),(M=N.search(/e/i))>0?(O<0&&(O=M),O+=+N.slice(M+1),N=N.substring(0,M)):O<0&&(O=N.length),M=0;N.charCodeAt(M)===48;)++M;for(A=N.length;N.charCodeAt(A-1)===48;)--A;if(N=N.slice(M,A),N){if(A-=M,O=O-M-1,y.e=l(O/f),y.d=[],M=(O+1)%f,O<0&&(M+=f),Mv||y.e<-v))throw Error(o+O)}else y.s=0,y.e=0,y.d=[0];return y}function z(y,N,O){var M,A,k,V,G,Q,se,ue,pe=y.d;for(V=1,k=pe[0];k>=10;k/=10)V++;if(M=N-V,M<0)M+=f,A=N,se=pe[ue=0];else{if(ue=Math.ceil((M+1)/f),k=pe.length,ue>=k)return y;for(se=k=pe[ue],V=1;k>=10;k/=10)V++;M%=f,A=M-f+V}if(O!==void 0&&(k=s(10,V-A-1),G=se/k%10|0,Q=N<0||pe[ue+1]!==void 0||se%k,Q=O<4?(G||Q)&&(O==0||O==(y.s<0?3:2)):G>5||G==5&&(O==4||Q||O==6&&(M>0?A>0?se/s(10,V-A):0:pe[ue-1])%10&1||O==(y.s<0?8:7))),N<1||!pe[0])return Q?(k=E(y),pe.length=1,N=N-k-1,pe[0]=s(10,(f-N%f)%f),y.e=l(-N/f)||0):(pe.length=1,pe[0]=y.e=y.s=0),y;if(M==0?(pe.length=ue,k=1,ue--):(pe.length=ue+1,k=s(10,f-M),pe[ue]=A>0?(se/s(10,V-A)%s(10,A)|0)*k:0),Q)for(;;)if(ue==0){(pe[0]+=k)==d&&(pe[0]=1,++y.e);break}else{if(pe[ue]+=k,pe[ue]!=d)break;pe[ue--]=0,k=1}for(M=pe.length;pe[--M]===0;)pe.pop();if(n&&(y.e>v||y.e<-v))throw Error(o+E(y));return y}function B(y,N){var O,M,A,k,V,G,Q,se,ue,pe,Oe=y.constructor,ie=Oe.precision;if(!y.s||!N.s)return N.s?N.s=-N.s:N=new Oe(y),n?z(N,ie):N;if(Q=y.d,pe=N.d,M=N.e,se=y.e,Q=Q.slice(),V=se-M,V){for(ue=V<0,ue?(O=Q,V=-V,G=pe.length):(O=pe,M=se,G=Q.length),A=Math.max(Math.ceil(ie/f),G)+2,V>A&&(V=A,O.length=1),O.reverse(),A=V;A--;)O.push(0);O.reverse()}else{for(A=Q.length,G=pe.length,ue=A0;--A)Q[G++]=0;for(A=pe.length;A>V;){if(Q[--A]0?k=k.charAt(0)+"."+k.slice(1)+T(M):V>1&&(k=k.charAt(0)+"."+k.slice(1)),k=k+(A<0?"e":"e+")+A):A<0?(k="0."+T(-A-1)+k,O&&(M=O-V)>0&&(k+=T(M))):A>=V?(k+=T(A+1-V),O&&(M=O-A-1)>0&&(k=k+"."+T(M))):((M=A+1)0&&(A+1===V&&(k+="."),k+=T(M))),y.s<0?"-"+k:k}function X(y,N){if(y.length>N)return y.length=N,!0}function H(y){var N,O,M;function A(k){var V=this;if(!(V instanceof A))return new A(k);if(V.constructor=A,k instanceof A){V.s=k.s,V.e=k.e,V.d=(k=k.d)?k.slice():k;return}if(typeof k=="number"){if(k*0!==0)throw Error(i+k);if(k>0)V.s=1;else if(k<0)k=-k,V.s=-1;else{V.s=0,V.e=0,V.d=[0];return}if(k===~~k&&k<1e7){V.e=0,V.d=[k];return}return I(V,k.toString())}else if(typeof k!="string")throw Error(i+k);if(k.charCodeAt(0)===45?(k=k.slice(1),V.s=-1):V.s=1,u.test(k))I(V,k);else throw Error(i+k)}if(A.prototype=g,A.ROUND_UP=0,A.ROUND_DOWN=1,A.ROUND_CEIL=2,A.ROUND_FLOOR=3,A.ROUND_HALF_UP=4,A.ROUND_HALF_DOWN=5,A.ROUND_HALF_EVEN=6,A.ROUND_HALF_CEIL=7,A.ROUND_HALF_FLOOR=8,A.clone=H,A.config=A.set=q,y===void 0&&(y={}),y)for(M=["precision","rounding","toExpNeg","toExpPos","LN10"],N=0;N=A[N+1]&&M<=A[N+2])this[O]=M;else throw Error(i+O+": "+M);if((M=y[O="LN10"])!==void 0)if(M==Math.LN10)this[O]=new this(M);else throw Error(i+O+": "+M);return this}r=H(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof oh<"u"&&oh.exports?oh.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(t3)});var t8=wr((Tpe,_w)=>{"use strict";var WY=Object.prototype.hasOwnProperty,$r="~";function sf(){}Object.create&&(sf.prototype=Object.create(null),new sf().__proto__||($r=!1));function KY(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function e8(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var i=new KY(r,n||e,a),o=$r?$r+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],i]:e._events[o].push(i):(e._events[o]=i,e._eventsCount++),e}function Cg(e,t){--e._eventsCount===0?e._events=new sf:delete e._events[t]}function Or(){this._events=new sf,this._eventsCount=0}Or.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)WY.call(r,n)&&t.push($r?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Or.prototype.listeners=function(t){var r=$r?$r+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,o=new Array(i);aWe.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},We.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},We.default.createElement("g",{fillRule:"nonzero"},We.default.createElement("path",{d:"M421,271.3 C422.733,265.1 423.667,244.633 423.8,209.9 C423.9,173.4 423.8,142.1 423.5,140.4 C423.1,137.9 412.5,126.8 373.1,87.2 C345.6,59.7 321.7,36.3 319.8,35.3 C316.7,33.6 312.5,33.5 250,33.5 C186.5,33.5 183.3,33.6 178.2,35.4 C173.5,37.2 168.3,42.1 125.2,85.3 C69.3,141.4 75.6,134.9 73.7,138.7 C72.3,141.3 72,147.2 71.8,178.6 C71.3,243.6 71.8,276 73.4,276 C74.067,276 99.6,304.854 150,362.563 L350.015,362.563 L421,271.3 Z",fill:"#EB5555",stroke:"#000000",strokeWidth:"12"})),We.default.createElement("path",{d:"M216.5,202.5 C213.4,199.5 213.4,198.7 216.5,193.4 C223.2,182 248.2,176 264.5,181.9 C273,185 280.3,190.1 282.4,194.5 C284,197.9 284,198.3 282.5,200.6 C281.6,202 279.8,203.6 278.5,204.2 C276.4,205.1 275.4,204.7 270.1,200.8 C263,195.4 254.7,193.3 244.4,194.4 C236.1,195.3 234.3,196 228.6,200.9 C223.1,205.6 220,206.1 216.5,202.5 Z",fill:"#000000",fillRule:"nonzero"}),We.default.createElement("path",{d:"M177.8,484.5 C169.1,482.1 162,475.2 157.7,465 C156.2,461.4 151.9,446.6 148.1,432 C144.3,417.4 140.7,404.3 140.1,402.8 L139,400 L94.8,400 C70.4,400 49.5,399.7 48.2,399.4 C45.1,398.5 42.7,393.8 43.9,390.8 C45.1,387.9 49.4,383.3 54,379.9 C68.7,369.2 86.3,364.8 120,363.4 C126.067,363.2 134.065,362.921 143.995,362.563 L350.015,362.563 C367.433,363.767 377.5,364.1 377.5,364.1 C411,365.2 433.1,371.5 446.2,383.8 C453.8,390.9 455.1,394.7 451.3,399 C451,399.3 429.6,399.7 403.7,400 L356.6,400.5 L353.3,412.5 C351.5,419.1 348.2,431.3 346.1,439.5 C339.9,463 336.7,470.5 329.4,477.5 C322.9,483.8 315.7,486.3 305.5,485.8 C298.1,485.4 296.1,484.7 280.5,477.8 C271.2,473.7 261.7,469.7 259.5,468.9 C250.9,466.1 238.1,467.9 224.9,473.8 C197.3,486.1 189.8,487.8 177.8,484.5 Z",stroke:"#000000",strokeWidth:"11",fill:"#000000",fillRule:"nonzero"}),We.default.createElement("g",{transform:"translate(75.105, 196.182)"},We.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),We.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),We.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),We.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),We.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),We.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),We.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),We.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),We.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},We.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},We.default.createElement("path",{d:"M346.895,99.881 L335.287,108.67 L292.495,108.67 L211.805,108.67 C194.861,92.394 186.922,84.257 187.99,84.257 C188.99,84.257 187.689,77.518 187.99,71.118 C188.99,54.518 196.996,38.618 211.805,23.818 C219.711,15.918 222.813,13.518 230.118,10.018 C242.025,4.118 250.431,1.818 262.839,1.118 C274.147,0.518 285.354,2.218 295.561,6.018 C308.67,10.918 327.482,26.818 335.287,39.618 C342.092,50.918 346.895,65.818 346.895,76.018 C346.895,82.818 346.895,90.772 346.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),We.default.createElement("path",{d:"M158.895,99.881 L147.295,108.67 L104.531,108.67 L23.895,108.67 C6.961,92.394 -0.972,84.257 0.095,84.257 C1.095,84.257 -0.205,77.518 0.095,71.118 C1.095,54.518 9.095,38.618 23.895,23.818 C31.795,15.918 34.895,13.518 42.195,10.018 C54.095,4.118 62.495,1.818 74.895,1.118 C86.195,0.518 97.395,2.218 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 C158.895,82.818 158.895,90.772 158.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),We.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},We.default.createElement("path",{d:"M187.895,73.418 C187.895,60.818 195.095,43.418 205.495,30.818 C213.379,21.259 220.29,15.351 230.066,10.615 C233.275,8.66 236.386,7.08 239.229,6.018 C246.892,3.165 255.119,1.496 263.529,1.095 C267.063,0.859 270.58,0.912 274.131,1.261 C285.374,2.105 293.475,4.47 304.672,10.018 C311.734,13.402 314.868,15.757 322.213,23.049 L322.795,23.618 C326.306,27.085 329.397,30.586 332.082,34.15 L332.148,34.235 C341.116,45.994 346.03,58.349 346.8,71.118 C346.957,74.467 346.676,77.909 346.515,80.429 C346.693,80.646 346.917,80.701 347.195,80.618 C347.366,80.542 348.039,80.501 349.213,80.495 L349.775,80.495 C352.888,80.507 358.769,80.715 367.418,81.118 C374.646,86.469 378.26,91.703 378.26,96.818 C378.26,101.933 374.646,107.042 367.418,112.146 L15.403,112.146 L-20.38,113.348 C-27.807,110.322 -31.52,105.629 -31.52,99.27 C-31.52,92.911 -27.807,88.087 -20.38,84.798 C-13.63,84.605 -8.537,84.463 -5.101,84.373 C-5.115,84.296 -5.084,84.257 -5.01,84.257 C-4.01,84.257 -5.311,77.518 -5.01,71.118 C-4.01,54.518 3.996,38.618 18.805,23.818 C26.711,15.918 29.813,13.518 37.118,10.018 C49.025,4.118 57.431,1.818 69.839,1.118 C72.166,0.994 74.489,0.968 76.8,1.038 C76.165,1.058 75.53,1.084 74.895,1.118 C62.495,1.818 54.095,4.118 42.195,10.018 C34.895,13.518 31.795,15.918 23.895,23.818 C9.095,38.618 1.095,54.518 0.095,71.118 C-0.205,77.518 1.095,84.257 0.095,84.257 C-0.4,84.257 -2.131,84.296 -5.101,84.373 C-4.938,85.42 3.031,93.518 18.805,108.67 L142.287,108.67 L153.895,99.881 L153.895,76.018 C153.895,65.818 149.092,50.918 142.287,39.618 C134.482,26.818 115.67,10.918 102.561,6.018 C94.455,3 85.717,1.307 76.8,1.038 C87.451,0.716 97.968,2.432 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 L158.895,80.418 L164.995,80.418 C168.395,80.118 174.995,79.818 179.495,79.818 L187.895,79.818 L187.895,99.881 L199.502,108.67 L322.984,108.67 C339.929,92.394 347.867,84.257 346.8,84.257 C346.323,84.257 346.369,82.725 346.515,80.429 C346.051,79.868 345.895,78.223 345.895,75.118 C345.895,59.873 341.479,46.625 332.082,34.15 L331.696,33.647 C329.117,30.321 326.212,27.043 322.984,23.818 C322.722,23.556 322.465,23.299 322.213,23.049 C316.441,17.437 312.579,14.708 306.095,11.418 C294.424,5.583 284.144,2.245 274.131,1.261 C273.417,1.207 272.691,1.16 271.95,1.118 C269.132,0.968 266.321,0.962 263.529,1.095 C257.389,1.506 251.198,2.792 244.695,4.918 C239.073,6.731 234.301,8.563 230.066,10.615 C218.478,17.668 205.615,29.594 199.502,39.618 C192.698,50.917 187.895,65.817 187.895,76.017 L187.895,73.418 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000"})),We.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},We.default.createElement("path",{d:"M12.837,35.288 C13.137,33.988 14.437,31.888 15.637,30.788 L17.837,28.788 L15.637,26.788 C14.437,25.688 13.137,23.588 12.837,22.288 C12.037,19.088 10.637,19.088 9.437,22.188 C8.937,23.488 7.537,25.588 6.237,26.788 C4.037,28.788 4.037,28.988 5.737,29.988 C6.837,30.488 8.237,32.488 9.037,34.388 C10.737,38.388 11.937,38.688 12.837,35.288 Z M29.237,33.088 C30.137,29.688 31.837,27.088 34.937,24.088 L39.337,19.888 L36.337,17.788 C33.437,15.588 28.437,7.288 28.437,4.288 C28.437,2.188 26.537,2.388 25.837,4.588 C23.937,10.388 21.637,14.388 18.337,17.188 L14.537,20.388 L17.337,22.088 C19.837,23.588 24.337,30.988 25.837,36.088 C26.737,39.088 27.937,37.988 29.237,33.088 Z M10.937,12.488 L13.037,9.288 L10.937,6.088 C8.837,2.788 7.437,1.888 7.437,3.988 C7.437,4.588 6.537,6.088 5.437,7.288 L3.437,9.488 L5.437,11.288 C6.537,12.288 7.437,13.688 7.437,14.488 C7.437,16.688 8.837,15.888 10.937,12.488 Z"}),We.default.createElement("path",{d:"M203.437,36.388 C203.437,35.588 204.637,33.588 206.037,31.888 L208.637,28.788 L206.037,25.688 C204.637,23.988 203.437,21.988 203.437,21.188 C203.437,18.588 201.437,19.788 200.037,23.188 C199.237,25.088 197.837,27.088 196.737,27.688 C195.037,28.688 195.037,28.788 197.037,30.188 C198.237,30.988 199.737,33.088 200.437,34.788 C201.737,37.888 203.437,38.788 203.437,36.388 Z M220.837,32.588 C221.937,29.288 224.237,25.788 226.737,23.388 C229.737,20.488 230.537,19.288 229.437,18.988 C226.637,17.988 222.437,12.588 220.737,7.688 C219.737,4.988 218.737,2.788 218.337,2.788 C218.037,2.788 216.737,5.288 215.537,8.288 C214.337,11.288 211.737,15.088 209.837,16.688 C205.937,20.188 205.637,21.388 208.437,22.288 C210.937,23.088 214.737,28.788 216.437,34.088 C217.037,36.088 217.937,37.788 218.237,37.788 C218.637,37.788 219.837,35.388 220.837,32.588 Z M201.137,14.088 C201.437,13.088 202.437,11.488 203.337,10.488 C204.337,9.288 204.537,8.388 203.837,7.988 C203.237,7.588 202.237,6.288 201.537,5.088 C200.137,2.388 198.837,2.188 198.037,4.588 C197.737,5.488 196.937,6.988 196.337,7.888 C195.337,9.288 195.437,9.888 196.737,11.288 C197.637,12.188 198.437,13.588 198.437,14.388 C198.437,16.388 200.337,16.188 201.137,14.088 Z"}))));function wt({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:a="",hat:i,hatAccessory:o,heldItem:l,theme:s,customColors:u}){return We.default.createElement("div",{className:`inline-flex flex-col items-center ${a}`},n&&t.length>0&&We.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Ho[c];return d?We.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),We.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500",width:e,height:e,role:"img","aria-label":"Active Agent mascot"},We.default.createElement("title",null,"ActiveAgent"),We.default.createElement(rz,null)),n&&r.length>0&&We.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=Vo[c];return d?We.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var Gr=J(R());var Jn=J(R()),U_=(0,Jn.createContext)();function $_({children:e}){let[t,r]=(0,Jn.useState)(()=>{let a=localStorage.getItem("dashboard-theme");return a?a==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches});(0,Jn.useEffect)(()=>{localStorage.setItem("dashboard-theme",t?"dark":"light")},[t]),(0,Jn.useEffect)(()=>{let a=window.matchMedia("(prefers-color-scheme: dark)"),i=o=>{localStorage.getItem("dashboard-theme")||r(o.matches)};return a.addEventListener("change",i),()=>a.removeEventListener("change",i)},[]);let n=()=>r(!t);return Jn.default.createElement(U_.Provider,{value:{darkMode:t,toggleDarkMode:n}},e)}function it(){let e=(0,Jn.useContext)(U_);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function Ms({name:e,subtitle:t,badge:r,accentColor:n,stats:a=[],footer:i,onClick:o,actions:l}){let{darkMode:s}=it(),[u,c]=Gr.default.useState(!1),d={cardBg:s?"rgba(255,255,255,0.05)":"#ffffff",border:s?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:s?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:s?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:s?"#f9fafb":"#111827",textSecondary:s?"#9ca3af":"#6b7280",textMuted:s?"#6b7280":"#9ca3af"},f=p=>p==="good"?s?"#4ade80":"#16a34a":p==="warn"?s?"#facc15":"#ca8a04":p==="bad"?s?"#f87171":"#dc2626":p==="muted"?d.textMuted:d.textPrimary;return Gr.default.createElement("div",{"data-testid":"agent-card","data-agent-name":typeof e=="string"?e:void 0,onClick:o,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:o?"button":void 0,tabIndex:o?0:void 0,onKeyDown:p=>{o&&(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),o(p))},style:{background:d.cardBg,borderTop:`1px solid ${u?d.borderHover:d.border}`,borderRight:`1px solid ${u?d.borderHover:d.border}`,borderBottom:`1px solid ${u?d.borderHover:d.border}`,borderLeft:n?`4px solid ${n}`:`1px solid ${u?d.borderHover:d.border}`,borderRadius:"12px",padding:"16px",cursor:o?"pointer":"default",transition:"border-color 0.15s ease, box-shadow 0.15s ease",boxShadow:u&&o?"0 4px 16px rgba(0,0,0,0.08)":"none",display:"flex",flexDirection:"column",gap:"12px"}},Gr.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},Gr.default.createElement("div",{style:{minWidth:0}},Gr.default.createElement("div",{style:{fontWeight:600,fontSize:"15px",color:u&&o?"#ef4444":d.textPrimary,transition:"color 0.15s ease",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e},e),t&&Gr.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&Gr.default.createElement("div",{style:{flexShrink:0}},r)),a.length>0&&Gr.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},a.map(p=>Gr.default.createElement("div",{key:p.label,title:p.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},Gr.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:f(p.tone)}},p.value),Gr.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},p.label)))),i&&Gr.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},i),l&&Gr.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},l))}function lb(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var nz=[{value:"recent",label:"Recently updated"},{value:"popular",label:"Most runs"},{value:"longest",label:"Longest average"},{value:"cost",label:"Highest cost"},{value:"tokens",label:"Most tokens"}];function sb({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:a,onDuplicate:i,onDelete:o,onRefresh:l,sort:s="recent",onSortChange:u,isLoading:c}){let[d,f]=(0,Se.useState)(""),[p,v]=(0,Se.useState)(""),[g,b]=(0,Se.useState)(""),m=e.filter(_=>{let I=!d||_.name.toLowerCase().includes(d.toLowerCase())||_.description?.toLowerCase().includes(d.toLowerCase()),z=!p||_.provider===p,B=!g||_.status===g;return I&&z&&B}),h=_=>{let I=new Date(_),B=new Date-I,$=Math.floor(B/(1e3*60*60*24));return $===0?"Today":$===1?"Yesterday":$<7?`${$} days ago`:I.toLocaleDateString()},x=_=>{switch(_){case"active":return"bg-green-100 text-green-700";case"draft":return"bg-yellow-100 text-yellow-700";case"archived":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},w=_=>_==null?"\u2014":_<1e3?`${Math.round(_)}ms`:`${(_/1e3).toFixed(1)}s`,E=_=>_==null?"\u2014":_>=1e6?`${(_/1e6).toFixed(1)}M`:_>=1e3?`${(_/1e3).toFixed(1)}k`:`${_}`,C=_=>_==null?"\u2014":_>0&&_<.01?"<$0.01":`$${_.toFixed(2)}`,T=_=>{if(!_)return"\u2014";let I=Math.floor((new Date-new Date(_))/(1e3*60*60*24));return I<=0?"Today":I<30?`${I}d ago`:new Date(_).toLocaleDateString()};return Se.default.createElement("div",{className:"space-y-6"},Se.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},Se.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},Se.default.createElement("div",{className:"relative flex-1 max-w-md"},Se.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:_=>f(_.target.value),className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),Se.default.createElement("svg",{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"}))),Se.default.createElement("select",{value:p,onChange:_=>v(_.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Se.default.createElement("option",{value:""},"All Providers"),t.providers?.map(_=>Se.default.createElement("option",{key:_,value:_},_.charAt(0).toUpperCase()+_.slice(1)))),Se.default.createElement("select",{value:g,onChange:_=>b(_.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Se.default.createElement("option",{value:""},"All Status"),Se.default.createElement("option",{value:"active"},"Active"),Se.default.createElement("option",{value:"draft"},"Draft"),Se.default.createElement("option",{value:"archived"},"Archived")),Se.default.createElement("select",{value:s,onChange:_=>u?.(_.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500",title:"Rank agents by their scorecard"},nz.map(_=>Se.default.createElement("option",{key:_.value,value:_.value},_.label)))),Se.default.createElement("div",{className:"flex items-center space-x-3"},Se.default.createElement("button",{onClick:l,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},Se.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))),Se.default.createElement("button",{onClick:a,className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors"},Se.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),Se.default.createElement("span",null,"Browse Templates")),Se.default.createElement("button",{onClick:n,className:"flex items-center space-x-2 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},Se.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Se.default.createElement("span",null,"New Agent")))),m.length>0?Se.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},m.map(_=>{let I=_.stats||{},z=I.run_sources||[],B=z.length?`Counted from ${z.map($=>$==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return Se.default.createElement(Ms,{key:_.id,name:_.name,subtitle:_.description||"No description",badge:Se.default.createElement("span",{className:`px-2 py-0.5 text-xs font-medium rounded-full ${x(_.status)}`},_.status),onClick:()=>r(_),stats:[{label:`Runs ${I.window_days||30}d`,value:I.runs??0,title:B},{label:"Success",value:I.success_rate!=null?`${Math.round(I.success_rate)}%`:"\u2014",tone:lb(I.success_rate!=null?I.success_rate/100:null)},{label:"Avg time",value:w(I.avg_duration_ms)},{label:I.eval_samples_evaluated?`Eval ${I.eval_samples_passed}/${I.eval_samples_evaluated}`:"Eval",title:I.eval_samples_evaluated?`Latest evaluation: ${I.eval_samples_passed} of ${I.eval_samples_evaluated} samples passed`:void 0,value:I.eval_score!=null?`${Math.round(I.eval_score*100)}%`:"\u2014",tone:lb(I.eval_score)},{label:"Tokens",value:E(I.tokens)},{label:"Cost",value:C(I.cost),title:"Estimated from token counts at each model's published rates",tone:I.cost==null?"muted":void 0}],footer:Se.default.createElement(Se.default.Fragment,null,Se.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},Se.default.createElement("span",{style:{padding:"2px 6px",borderRadius:"4px",background:"rgba(128,128,128,0.15)",whiteSpace:"nowrap",flexShrink:0}},_.provider),Se.default.createElement("span",{title:_.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},_.model)),Se.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${h(_.updatedAt||_.updated_at)}`},I.last_run_at?`Last run ${T(I.last_run_at)}`:`Updated ${h(_.updatedAt||_.updated_at)}`)),actions:Se.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},Se.default.createElement("button",{onClick:$=>{$.stopPropagation(),i(_.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),Se.default.createElement("button",{onClick:$=>{$.stopPropagation(),o(_.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):Se.default.createElement("div",{className:"text-center py-16"},Se.default.createElement("div",{className:"inline-block mb-4"},Se.default.createElement(wt,{size:100})),Se.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),Se.default.createElement("p",{className:"text-gray-500 mb-6"},e.length===0?"Create your first AI agent to get started":"Try adjusting your search or filters"),e.length===0&&Se.default.createElement("div",{className:"flex items-center justify-center space-x-4"},Se.default.createElement("button",{onClick:a,className:"inline-flex items-center space-x-2 px-6 py-3 border-2 border-red-500 text-red-600 rounded-lg hover:bg-red-50 transition-colors"},Se.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),Se.default.createElement("span",null,"Browse Templates")),Se.default.createElement("span",{className:"text-gray-400"},"or"),Se.default.createElement("button",{onClick:n,className:"inline-flex items-center space-x-2 px-6 py-3 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},Se.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Se.default.createElement("span",null,"Create From Scratch")))))}var oe=J(R());var Rt={chevronRight:">",chevronDown:"v",chevronUp:"^",arrow:"->",arrowLeft:"<-",pipe:"|",corner:"+",branch:"|-",success:"[+]",error:"[!]",warning:"[?]",info:"[i]",pending:"[ ]",active:"[*]",add:"+",remove:"-",edit:"*",view:"@",run:">",stop:"x",refresh:"~",trace:"->",span:"|",metric:"#",log:">",agent:"@",action:"#",time:":",cost:"$",tokens:"T",memory:"M",nav:{agents:"@",newAgent:"+",demo:">",traces:"->",metrics:"#",evaluations:"=",interactions:"<>",benchmarks:"%%",replay:"[>]",docs:"?",github:"*"},spans:{root:">",prompt:"*",generate:"|>",llm:">>",thinking:"..",tool:"[]",response:"<|"}};var _e={mono:"'SF Mono', 'Fira Code', 'Consolas', monospace",sizes:{xs:"10px",sm:"11px",base:"13px",md:"14px",lg:"16px",xl:"20px",xxl:"24px"},weights:{normal:400,medium:500,semibold:600,bold:700}};var Ds={openai:["gpt-5.1","gpt-5","gpt-5-mini","gpt-5-nano"],anthropic:["claude-opus-5","claude-fable-5","claude-sonnet-5","claude-opus-4-8","claude-haiku-4-5"],ollama:["qwen3:8b","llama3.2","mistral","gemma3"],openrouter:["anthropic/claude-sonnet-4.5","openai/gpt-5.1","meta-llama/llama-3.3-70b-instruct"]};async function bm(e){try{let t=await fetch(`/api/provider_models?provider=${encodeURIComponent(e)}`);if(t.ok){let r=await t.json();if(Array.isArray(r.models)&&r.models.length>0)return r.models}}catch{}return Ds[e]||[]}var wm=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}];function ub({meta:e,onSave:t,onCancel:r,isLoading:n}){let[a,i]=(0,oe.useState)(0),[o,l]=(0,oe.useState)(Ds),[s,u]=(0,oe.useState)({name:"",description:"",provider:"openai",model:Ds.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],model_config:{temperature:.7}});(0,oe.useEffect)(()=>{let g=!1;return bm(s.provider).then(b=>{g||b.length===0||(l(m=>({...m,[s.provider]:b})),u(m=>b.includes(m.model)?m:{...m,model:b[0]}))}),()=>{g=!0}},[s.provider]);let c=(g,b)=>{u(m=>({...m,[g]:b}))},d=(g,b)=>{u(m=>{let h=m[g]||[],x=h.includes(b)?h.filter(w=>w!==b):[...h,b];return{...m,[g]:x}})},f=g=>{if(c("preset_type",g),Ts[g]){let b=Ts[g];c("instruction_sets",[...b.instructions]),c("tools",[...b.tools])}},p=()=>{switch(a){case 0:return s.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},v=()=>{t(s)};return oe.default.createElement("div",{className:"max-w-4xl mx-auto"},oe.default.createElement("div",{className:"mb-8"},oe.default.createElement("div",{className:"flex items-center justify-between"},wm.map((g,b)=>oe.default.createElement("div",{key:g.id,className:"flex items-center"},oe.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${bi(a-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},a===0?"Cancel":"Back"),oe.default.createElement("button",{onClick:a===wm.length-1?v:()=>i(a+1),disabled:!p()||n,className:`px-6 py-2 rounded-lg transition-colors ${p()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},a===wm.length-1?"Create Agent":"Continue")))}function az({formData:e,updateField:t,providerModels:r}){return oe.default.createElement("div",{className:"space-y-6"},oe.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),oe.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),oe.default.createElement("div",{className:"space-y-4"},oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),oe.default.createElement("input",{type:"text",value:e.name,onChange:n=>t("name",n.target.value),placeholder:"My Awesome Agent",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"})),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),oe.default.createElement("textarea",{value:e.description,onChange:n=>t("description",n.target.value),placeholder:"What does this agent do?",rows:3,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"})),oe.default.createElement("div",{className:"grid grid-cols-2 gap-4"},oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),oe.default.createElement("select",{value:e.provider,onChange:n=>{t("provider",n.target.value),t("model",r[n.target.value][0])},className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Object.keys(r).map(n=>oe.default.createElement("option",{key:n,value:n},n.charAt(0).toUpperCase()+n.slice(1))))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),oe.default.createElement("select",{value:e.model,onChange:n=>t("model",n.target.value),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},r[e.provider].map(n=>oe.default.createElement("option",{key:n,value:n},n))))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),oe.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:n=>t("model_config",{...e.model_config,temperature:parseFloat(n.target.value)}),className:"w-full accent-red-500"}),oe.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},oe.default.createElement("span",null,"Precise"),oe.default.createElement("span",null,"Creative")))))}function iz({formData:e,meta:t,toggleArrayItem:r,updateField:n,selectPreset:a}){let i=Object.keys(Ts),o=Object.keys(Ho),l=Object.keys(Vo);return oe.default.createElement("div",{className:"space-y-6"},oe.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),oe.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),oe.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},oe.default.createElement("div",{className:"flex flex-col items-center"},oe.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(s=>{let u=Ho[s];return u?oe.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})),oe.default.createElement(wt,{size:120}),oe.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(s=>{let u=Vo[s];return u?oe.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),oe.default.createElement("div",{className:"flex flex-wrap gap-2"},i.map(s=>oe.default.createElement("button",{key:s,onClick:()=>a(s),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===s?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},oe.default.createElement("span",{className:"capitalize"},s.replace(/([A-Z])/g," $1").trim()))))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},oe.default.createElement("strong",null,"Instructions"),oe.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),oe.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map(s=>{let u=Ho[s];return oe.default.createElement("button",{key:s,onClick:()=>r("instruction_sets",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},oe.default.createElement("span",null,u.emoji),oe.default.createElement("span",null,u.label))}))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},oe.default.createElement("strong",null,"Tools"),oe.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"MCPs and integrations")),oe.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(s=>{let u=Vo[s];return oe.default.createElement("button",{key:s,onClick:()=>r("tools",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.tools.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},oe.default.createElement("span",null,u.emoji),oe.default.createElement("span",null,u.label))}))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),oe.default.createElement("textarea",{value:e.instructions,onChange:s=>n("instructions",s.target.value),placeholder:"You are a helpful AI assistant that...",rows:4,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent font-mono text-sm"})))}function oz({formData:e}){return oe.default.createElement("div",{className:"space-y-6"},oe.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),oe.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),oe.default.createElement("div",{className:"grid grid-cols-2 gap-8"},oe.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},oe.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(t=>{let r=Ho[t];return r?oe.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),oe.default.createElement(wt,{size:100}),oe.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(t=>{let r=Vo[t];return r?oe.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),oe.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),oe.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),oe.default.createElement("div",{className:"space-y-4"},oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),oe.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),oe.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),oe.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(t=>{let r=Ho[t];return r?oe.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},r.emoji," ",r.label):null}):oe.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),oe.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(t=>{let r=Vo[t];return r?oe.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r.emoji," ",r.label):null}):oe.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),oe.default.createElement("pre",{className:"mt-2 p-4 bg-gray-50 rounded-lg text-sm text-gray-700 whitespace-pre-wrap font-mono"},e.instructions)))}var Z=J(R());var Ps=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",borderStrong:e?"rgba(255,255,255,0.2)":"#d1d5db",mutedBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",textPrimary:e?"#ffffff":"#111827",textCell:e?"rgba(255,255,255,0.75)":"#4b5563",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:e?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:e?"rgba(255,255,255,0.2)":"#d1d5db",trackBg:e?"rgba(255,255,255,0.1)":"#f3f4f6"}),Rn="#ef4444";var D=J(R());var Sm=J(R()),q_=J(R());function H_(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{var r=e.children,n=e.width,a=e.height,i=e.viewBox,o=e.className,l=e.style,s=e.title,u=e.desc,c=dz(e,cz),d=i||{width:n,height:a,x:0,y:0},f=Te("recharts-surface",o);return Sm.createElement("svg",fb({},Lt(c),{className:f,width:n,height:a,style:l,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),Sm.createElement("title",null,s),Sm.createElement("desc",null,u),r)});var Am=J(R());var pz=["children","className"];function mb(){return mb=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,a=mz(e,pz),i=Te("recharts-layer",n);return Am.createElement("g",mb({className:i},Lt(a),{ref:t}),r)});function Nm(e){return e==="__proto__"}var hz=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function Cm(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:hz.test(e);default:return!1}}function js(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function vb(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(vb).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function Is(e){if(Array.isArray(e))return e.map(js);if(typeof e=="symbol")return[e];e=vb(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",i="",o=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:yz,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function tr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var l=r[o-1];return typeof l=="string"?a+l+i:l!==void 0?a+ga(l)+i:a+i},"")}var rr=e=>e===0?0:e>0?1:-1,Ar=e=>typeof e=="number"&&e!=+e,ei=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,me=e=>(typeof e=="number"||e instanceof Number)&&!Ar(e),Lr=e=>me(e)||typeof e=="string",xz=0,ti=e=>{var t=++xz;return"".concat(e||"").concat(t)},In=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!me(t)&&typeof t!="string")return n;var i;if(ei(t)){if(r==null)return n;var o=t.indexOf("%");i=r*parseFloat(t.slice(0,o))/100}else i=+t;return Ar(i)&&(i=n),a&&r!=null&&i>r&&(i=r),i},hb=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):pn(n,t))===r)}var St=e=>e===null||typeof e>"u",zs=e=>St(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function nr(e){return e!=null}function ea(){}function ad(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function W_(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ya(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,a=n===void 0?0:n,i=e.parentViewBox,o=e.clamp,l=ad(t),s=l.x,u=l.y,c=l.height,d=l.upperWidth,f=l.lowerWidth,p=s,v=s+(d-f)/2,g=(p+v)/2,b=(d+f)/2,m=p+d/2,h=c>=0?1:-1,x=h*a,w=h>0?"end":"start",E=h>0?"start":"end",C=d>=0?1:-1,T=C*a,_=C>0?"end":"start",I=C>0?"start":"end",z=i;if(r==="top"){var B={x:p+d/2,y:u-x,horizontalAnchor:"middle",verticalAnchor:w};return o&&z&&(B.height=Math.max(u-z.y,0),B.width=d),B}if(r==="bottom"){var $={x:v+f/2,y:u+c+x,horizontalAnchor:"middle",verticalAnchor:E};return o&&z&&($.height=Math.max(z.y+z.height-(u+c),0),$.width=f),$}if(r==="left"){var X={x:g-T,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"};return o&&z&&(X.width=Math.max(X.x-z.x,0),X.height=c),X}if(r==="right"){var H={x:g+b+T,y:u+c/2,horizontalAnchor:I,verticalAnchor:"middle"};return o&&z&&(H.width=Math.max(z.x+z.width-H.x,0),H.height=c),H}var q=o&&z?{width:b,height:c}:{};return r==="insideLeft"?ya({x:g+T,y:u+c/2,horizontalAnchor:I,verticalAnchor:"middle"},q):r==="insideRight"?ya({x:g+b-T,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"},q):r==="insideTop"?ya({x:p+d/2,y:u+x,horizontalAnchor:"middle",verticalAnchor:E},q):r==="insideBottom"?ya({x:v+f/2,y:u+c-x,horizontalAnchor:"middle",verticalAnchor:w},q):r==="insideTopLeft"?ya({x:p+T,y:u+x,horizontalAnchor:I,verticalAnchor:E},q):r==="insideTopRight"?ya({x:p+d-T,y:u+x,horizontalAnchor:_,verticalAnchor:E},q):r==="insideBottomLeft"?ya({x:v+T,y:u+c-x,horizontalAnchor:I,verticalAnchor:w},q):r==="insideBottomRight"?ya({x:v+f-T,y:u+c-x,horizontalAnchor:_,verticalAnchor:w},q):r&&typeof r=="object"&&(me(r.x)||ei(r.x))&&(me(r.y)||ei(r.y))?ya({x:s+In(r.x,b),y:u+In(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},q):ya({x:m,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},q)},Az=["top","left","right","bottom"];function G_(e){return e==null?!1:typeof e=="object"?!0:Az.includes(e)}var gb=J(R()),X_=(0,gb.createContext)(null);function vt(e){return function(){return e}}var yb=Math.PI,xb=2*yb,Fo=1e-6,Nz=xb-Fo;function Z_(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Z_;let r=10**t;return function(n){this._+=n[0];for(let a=1,i=n.length;aFo)if(!(Math.abs(d*s-u*c)>Fo)||!i)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-o,v=a-l,g=s*s+u*u,b=p*p+v*v,m=Math.sqrt(g),h=Math.sqrt(f),x=i*Math.tan((yb-Math.acos((g+f-b)/(2*m*h)))/2),w=x/h,E=x/m;Math.abs(w-1)>Fo&&this._append`L${t+w*c},${r+w*d}`,this._append`A${i},${i},0,0,${+(d*p>c*v)},${this._x1=t+E*s},${this._y1=r+E*u}`}}arc(t,r,n,a,i,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(a),s=n*Math.sin(a),u=t+l,c=r+s,d=1^o,f=o?a-i:i-a;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Fo||Math.abs(this._y1-c)>Fo)&&this._append`L${u},${c}`,n&&(f<0&&(f=f%xb+xb),f>Nz?this._append`A${n},${n},0,1,${d},${t-l},${r-s}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:f>Fo&&this._append`A${n},${n},0,${+(f>=yb)},${d},${this._x1=t+n*Math.cos(i)},${this._y1=r+n*Math.sin(i)}`)}rect(t,r,n,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+a}h${-n}Z`}toString(){return this._}};function Q_(){return new Yo}Q_.prototype=Yo.prototype;function Em(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Yo(t)}var AJ=Array.prototype.slice;function Ls(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function J_(e){this._context=e}J_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Ri(e){return new J_(e)}function Om(e){return e[0]}function km(e){return e[1]}function id(e,t){var r=vt(!0),n=null,a=Ri,i=null,o=Em(l);e=typeof e=="function"?e:e===void 0?Om:vt(e),t=typeof t=="function"?t:t===void 0?km:vt(t);function l(s){var u,c=(s=Ls(s)).length,d,f=!1,p;for(n==null&&(i=a(p=o())),u=0;u<=c;++u)!(u=p;--v)l.point(x[v],w[v]);l.lineEnd(),l.areaEnd()}m&&(x[f]=+e(b,f,d),w[f]=+t(b,f,d),l.point(n?+n(b,f,d):x[f],r?+r(b,f,d):w[f]))}if(h)return l=null,h+""||null}function c(){return id().defined(a).curve(o).context(i)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:vt(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:vt(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:vt(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:vt(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:vt(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:vt(+d),u):r},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(r)},u.lineX1=function(){return c().x(n).y(t)},u.defined=function(d){return arguments.length?(a=typeof d=="function"?d:vt(!!d),u):a},u.curve=function(d){return arguments.length?(o=d,i!=null&&(l=o(i)),u):o},u.context=function(d){return arguments.length?(d==null?i=l=null:l=o(i=d),u):i},u}var Tm=class{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}};function bb(e){return new Tm(e,!0)}function wb(e){return new Tm(e,!1)}function Us(){}function $s(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function R_(e){this._context=e}R_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:$s(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:$s(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Sb(e){return new R_(e)}function eE(e){this._context=e}eE.prototype={areaStart:Us,areaEnd:Us,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:$s(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Ab(e){return new eE(e)}function tE(e){this._context=e}tE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:$s(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Nb(e){return new tE(e)}function rE(e){this._context=e}rE.prototype={areaStart:Us,areaEnd:Us,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function Cb(e){return new rE(e)}function nE(e){return e<0?-1:1}function aE(e,t,r){var n=e._x1-e._x0,a=t-e._x1,i=(e._y1-e._y0)/(n||a<0&&-0),o=(r-e._y1)/(a||n<0&&-0),l=(i*a+o*n)/(n+a);return(nE(i)+nE(o))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs(l))||0}function iE(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function _b(e,t,r){var n=e._x0,a=e._y0,i=e._x1,o=e._y1,l=(i-n)/3;e._context.bezierCurveTo(n+l,a+l*t,i-l,o-l*r,i,o)}function Mm(e){this._context=e}Mm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:_b(this,this._t0,iE(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,_b(this,iE(this,r=aE(this,e,t)),r);break;default:_b(this,this._t0,r=aE(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function oE(e){this._context=new lE(e)}(oE.prototype=Object.create(Mm.prototype)).point=function(e,t){Mm.prototype.point.call(this,t,e)};function lE(e){this._context=e}lE.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,a,i){this._context.bezierCurveTo(t,e,n,r,i,a)}};function Eb(e){return new Mm(e)}function Ob(e){return new oE(e)}function uE(e){this._context=e}uE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=sE(e),a=sE(t),i=0,o=1;o=0;--t)a[t]=(o[t]-a[t+1])/i[t];for(i[r-1]=(e[r]+a[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function Tb(e){return new Dm(e,.5)}function Mb(e){return new Dm(e,0)}function Db(e){return new Dm(e,1)}function mn(e,t){if((o=e.length)>1)for(var r=1,n,a,i=e[t[0]],o,l=i.length;r=0;)r[t]=t;return r}function _z(e,t){return e[t]}function Ez(e){let t=[];return t.key=e,t}function Pb(){var e=vt([]),t=Hs,r=mn,n=_z;function a(i){var o=Array.from(e.apply(this,arguments),Ez),l,s=o.length,u=-1,c;for(let d of i)for(l=0,++u;l0){for(var r,n,a=0,i=e[0].length,o;a0){for(var r=0,n=e[t[0]],a,i=n.length;r0)||!((i=(a=e[t[0]]).length)>0))){for(var r=0,n=1,a,i,o;n"radius"in e&&"startAngle"in e&&"endAngle"in e,Vs=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,cE.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(a=>{nd(a)&&typeof r[a]=="function"&&(n[a]=t||(i=>r[a](r,i)))}),n},Oz=(e,t,r)=>n=>(e(t,r,n),null),dE=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(a=>{var i=e[a];nd(a)&&typeof i=="function"&&(n||(n={}),n[a]=Oz(i,t,r))}),n};function fE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function kz(e){for(var t=1;t(o[l]===void 0&&n[l]!==void 0&&(o[l]=n[l]),o),r);return i}function pE(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function ri(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var Im="[object RegExp]",Fs="[object String]",Ys="[object Number]",qs="[object Boolean]",zm="[object Arguments]",Lm="[object Symbol]",Bm="[object Date]",Um="[object Map]",$m="[object Set]",Hm="[object Array]",gE="[object Function]",Vm="[object ArrayBuffer]",Ws="[object Object]",yE="[object Error]",Fm="[object DataView]",Ym="[object Uint8Array]",qm="[object Uint8ClampedArray]",Wm="[object Uint16Array]",Km="[object Uint32Array]",xE="[object BigUint64Array]",Gm="[object Int8Array]",Xm="[object Int16Array]",Zm="[object Int32Array]",bE="[object BigInt64Array]",Qm="[object Float32Array]",Jm="[object Float64Array]";var Lb=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function sd(e){return typeof Lb.Buffer<"u"&&Lb.Buffer.isBuffer(e)}function wE(e,t){return eo(e,void 0,e,new Map,t)}function eo(e,t,r,n=new Map,a=void 0){let i=a?.(e,t,r,n);if(i!==void 0)return i;if(od(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let o=new Array(e.length);n.set(e,o);for(let l=0;l{}):Bb(e,t,function n(a,i,o,l,s,u){let c=r(a,i,o,l,s,u);return c!==void 0?!!c:Bb(a,i,n,u,!1)},new Map,!0)}function Bb(e,t,r,n,a=!1){if(t===e)return!0;switch(typeof t){case"object":return jz(e,t,r,n);case"function":return Object.keys(t).length>0?Bb(e,{...t},r,n,a):to(e,t);default:return Rm(e)?a?typeof t=="string"?t==="":!0:to(e,t):to(e,t)}}function jz(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return AE(e,t,r,n);if(t instanceof Map)return Iz(e,t,r,n);if(t instanceof Set)return zz(e,t,r,n);let a=Object.keys(t);if(e==null||od(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let i=0;i{})}function NE(e){return e=SE(e),t=>ev(t,e)}function CE(e,t){return wE(e,(r,n,a,i)=>{let o=t?.(r,n,a,i);if(o!==void 0)return o;if(typeof e=="object"){if(ri(e)==="[object Object]"&&typeof e.constructor!="function"){let l={};return i.set(e,l),Ln(l,e,a,i),l}switch(Object.prototype.toString.call(e)){case Ys:case Fs:case qs:{let l=new e.constructor(e?.valueOf());return Ln(l,e),l}case zm:{let l={};return Ln(l,e),l.length=e.length,l[Symbol.iterator]=e[Symbol.iterator],l}default:return}}})}function _E(e){return CE(e)}var Lz=/^(?:0|[1-9]\d*)$/;function tv(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function rv(e){return e!=null&&typeof e!="function"&&ME(e.length)}function DE(e){return typeof e=="object"&&e!==null}function PE(e){return DE(e)&&rv(e)}function nv(e,t=jm){return PE(e)?pE(Array.from(e),mE(TE(t),1)):[]}function jE(e,t,r){return t===!0?nv(e,r):typeof t=="function"?nv(e,t):e}var YE=J(VE()),cd=J(R());var FE=J(R()),ud=(0,FE.createContext)(null);var t9=e=>e,Le=()=>{var e=(0,cd.useContext)(ud);return e?e.store.dispatch:t9},iv=()=>{},r9=()=>iv,n9=(e,t)=>e===t;function ye(e){var t=(0,cd.useContext)(ud),r=(0,cd.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:iv,[t,e]);return(0,YE.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:r9,t?t.store.getState:iv,t?t.store.getState:iv,r,n9)}function a9(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function i9(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){let r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var qE=e=>Array.isArray(e)?e:[e];function o9(e){let t=Array.isArray(e[0])?e[0]:e;return i9(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function l9(e,t){let r=[],{length:n}=e;for(let a=0;atypeof WeakRef>"u"?s9:WeakRef,KE=u9(),c9=0,WE=1;function ov(){return{s:c9,v:void 0,o:null,p:null}}function d9(e){return e instanceof KE?e.deref():e}function GE(e,t={}){let r=ov(),{resultEqualityCheck:n}=t,a,i=0;function o(){let l=r,{length:s}=arguments;for(let d=0,f=s;d{r=ov(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function f9(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...a)=>{let i=0,o=0,l,s={},u=a.pop();typeof u=="object"&&(s=u,u=a.pop()),a9(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...s},{memoize:d,memoizeOptions:f=[],argsMemoize:p=GE,argsMemoizeOptions:v=[]}=c,g=qE(f),b=qE(v),m=o9(a),h=d(function(){return i++,u.apply(null,arguments)},...g),x=!0,w=p(function(){o++;let C=l9(m,arguments);return l=h.apply(null,C),l},...b);return Object.assign(w,{resultFunc:u,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>l,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:d,argsMemoize:p})};return Object.assign(n,{withTypes:()=>n}),n}var W=f9(GE);function XE(e,t=1){let r=[],n=Math.floor(t),a=(i,o)=>{for(let l=0;l{if(e!==t){let n=ZE(e),a=ZE(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};function lv(e){return typeof e=="symbol"||e instanceof Symbol}var p9=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,m9=/^\w*$/;function JE(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||lv(e)?!0:typeof e=="string"&&(m9.test(e)||!p9.test(e))||t!=null&&Object.hasOwn(t,e)}function RE(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(l=>String(l));let a=(l,s)=>{let u=l;for(let c=0;cs==null||l==null?s:typeof l=="object"&&"key"in l?Object.hasOwn(s,l.key)?s[l.key]:a(s,l.path):typeof l=="function"?l(s):Array.isArray(l)?a(s,l):typeof s=="object"?s[l]:s,o=t.map(l=>(Array.isArray(l)&&l.length===1&&(l=l[0]),l==null||typeof l=="function"||Array.isArray(l)||JE(l)?l:{key:l,path:Is(l)}));return e.map(l=>({original:l,criteria:o.map(s=>i(s,l))})).slice().sort((l,s)=>{for(let u=0;ul.original)}function ni(e,...t){let r=t.length;return r>1&&dd(e,t[0],t[1])?t=[]:r>2&&dd(t[0],t[1],t[2])&&(t=[t[0]]),RE(e,XE(t),["asc"])}var Hb=e=>e.legend.settings,eO=e=>e.legend.size,v9=e=>e.legend.payload,Pte=W([v9,Hb],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?ni(n,r):n});var ai=J(R());function h9(e,t){return b9(e)||x9(e,t)||y9(e,t)||g9()}function g9(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function y9(e,t){if(e){if(typeof e=="string")return tO(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?tO(e,t):void 0}}function tO(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rsv||Math.abs(e.left-t.left)>sv||Math.abs(e.top-t.top)>sv||Math.abs(e.width-t.width)>sv}function nO(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function aO(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,ai.useState)({height:0,left:0,top:0,width:0}),r=h9(t,2),n=r[0],a=r[1],i=(0,ai.useRef)(null),o=(0,ai.useRef)(n);o.current=n;var l=(0,ai.useCallback)(s=>{if(i.current!=null&&(i.current.disconnect(),i.current=null),s!=null){var u=nO(s);if(rO(u,o.current)&&a(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=nO(s);rO(d,o.current)&&a(d)});c.observe(s),i.current=c}}},[...e]);return(0,ai.useEffect)(()=>()=>{var s;(s=i.current)===null||s===void 0||s.disconnect()},[]),[n,l]}var Sk=J(R());function gr(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var w9=typeof Symbol=="function"&&Symbol.observable||"@@observable",iO=w9,Vb=()=>Math.random().toString(36).substring(7).split("").join("."),S9={INIT:`@@redux/INIT${Vb()}`,REPLACE:`@@redux/REPLACE${Vb()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Vb()}`},uv=S9;function cv(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function Fb(e,t,r){if(typeof e!="function")throw new Error(gr(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(gr(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(gr(1));return r(Fb)(e,t)}let n=e,a=t,i=new Map,o=i,l=0,s=!1;function u(){o===i&&(o=new Map,i.forEach((b,m)=>{o.set(m,b)}))}function c(){if(s)throw new Error(gr(3));return a}function d(b){if(typeof b!="function")throw new Error(gr(4));if(s)throw new Error(gr(5));let m=!0;u();let h=l++;return o.set(h,b),function(){if(m){if(s)throw new Error(gr(6));m=!1,u(),o.delete(h),i=null}}}function f(b){if(!cv(b))throw new Error(gr(7));if(typeof b.type>"u")throw new Error(gr(8));if(typeof b.type!="string")throw new Error(gr(17));if(s)throw new Error(gr(9));try{s=!0,a=n(a,b)}finally{s=!1}return(i=o).forEach(h=>{h()}),b}function p(b){if(typeof b!="function")throw new Error(gr(10));n=b,f({type:uv.REPLACE})}function v(){let b=d;return{subscribe(m){if(typeof m!="object"||m===null)throw new Error(gr(11));function h(){let w=m;w.next&&w.next(c())}return h(),{unsubscribe:b(h)}},[iO](){return this}}}return f({type:uv.INIT}),{dispatch:f,subscribe:d,getState:c,replaceReducer:p,[iO]:v}}function A9(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:uv.INIT})>"u")throw new Error(gr(12));if(typeof r(void 0,{type:uv.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(gr(13))})}function dv(e){let t=Object.keys(e),r={};for(let o=0;o"u"){let b=s&&s.type;throw new Error(gr(14))}c[f]=g,u=u||g!==v}return u=u||n.length!==Object.keys(l).length,u?c:l}}function fd(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function oO(...e){return t=>(r,n)=>{let a=t(r,n),i=()=>{throw new Error(gr(15))},o={getState:a.getState,dispatch:(s,...u)=>i(s,...u)},l=e.map(s=>s(o));return i=fd(...l)(a.dispatch),{...a,dispatch:i}}}function Yb(e){return cv(e)&&"type"in e&&typeof e.type=="string"}var vO=Symbol.for("immer-nothing"),lO=Symbol.for("immer-draftable"),Nr=Symbol.for("immer-state");function ta(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var vn=Object,Xs=vn.getPrototypeOf,vv="constructor",wv="prototype",Gb="configurable",hv="enumerable",pv="writable",pd="value",xa=e=>!!e&&!!e[Nr];function hn(e){return e?hO(e)||Av(e)||!!e[lO]||!!e[vv]?.[lO]||Nv(e)||Cv(e):!1}var N9=vn[wv][vv].toString(),sO=new WeakMap;function hO(e){if(!e||!r1(e))return!1;let t=Xs(e);if(t===null||t===vn[wv])return!0;let r=vn.hasOwnProperty.call(t,vv)&&t[vv];if(r===Object)return!0;if(!Gs(r))return!1;let n=sO.get(r);return n===void 0&&(n=Function.toString.call(r),sO.set(r,n)),n===N9}function Sv(e,t,r=!0){hd(e)===0?(r?Reflect.ownKeys(e):vn.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function hd(e){let t=e[Nr];return t?t.type_:Av(e)?1:Nv(e)?2:Cv(e)?3:0}var qb=(e,t,r=hd(e))=>r===2?e.has(t):vn[wv].hasOwnProperty.call(e,t),Xb=(e,t,r=hd(e))=>r===2?e.get(t):e[t],gv=(e,t,r,n=hd(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function C9(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Av=Array.isArray,Nv=e=>e instanceof Map,Cv=e=>e instanceof Set,r1=e=>typeof e=="object",Gs=e=>typeof e=="function",Wb=e=>typeof e=="boolean";function _9(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var ii=e=>e.copy_||e.base_;var n1=e=>e.modified_?e.copy_:e.base_;function Zb(e,t){if(Nv(e))return new Map(e);if(Cv(e))return new Set(e);if(Av(e))return Array[wv].slice.call(e);let r=hO(e);if(t===!0||t==="class_only"&&!r){let n=vn.getOwnPropertyDescriptors(e);delete n[Nr];let a=Reflect.ownKeys(n);for(let i=0;i1&&vn.defineProperties(e,{set:fv,add:fv,clear:fv,delete:fv}),vn.freeze(e),t&&Sv(e,(r,n)=>{a1(n,!0)},!1)),e}function E9(){ta(2)}var fv={[pd]:E9};function _v(e){return e===null||!r1(e)?!0:vn.isFrozen(e)}var yv="MapSet",Qb="Patches",uO="ArrayMethods",gO={};function qo(e){let t=gO[e];return t||ta(0,e),t}var cO=e=>!!gO[e];var md,yO=()=>md,O9=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:cO(yv)?qo(yv):void 0,arrayMethodsPlugin_:cO(uO)?qo(uO):void 0});function dO(e,t){t&&(e.patchPlugin_=qo(Qb),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Jb(e){Rb(e),e.drafts_.forEach(k9),e.drafts_=null}function Rb(e){e===md&&(md=e.parent_)}var fO=e=>md=O9(md,e);function k9(e){let t=e[Nr];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function pO(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[Nr].modified_&&(Jb(t),ta(4)),hn(e)&&(e=mO(t,e));let{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(r[Nr].base_,e,t)}else e=mO(t,r);return T9(t,e,!0),Jb(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==vO?e:void 0}function mO(e,t){if(_v(t))return t;let r=t[Nr];if(!r)return xv(t,e.handledSet_,e);if(!Ev(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){let{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);wO(r,e)}return r.copy_}function T9(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&a1(t,r)}function xO(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Ev=(e,t)=>e.scope_===t,M9=[];function bO(e,t,r,n){let a=ii(e),i=e.type_;if(n!==void 0&&Xb(a,n,i)===t){gv(a,n,r,i);return}if(!e.draftLocations_){let l=e.draftLocations_=new Map;Sv(a,(s,u)=>{if(xa(u)){let c=l.get(u)||[];c.push(s),l.set(u,c)}})}let o=e.draftLocations_.get(t)??M9;for(let l of o)gv(a,l,r,i)}function D9(e,t,r){e.callbacks_.push(function(a){let i=t;if(!i||!Ev(i,a))return;a.mapSetPlugin_?.fixSetContents(i);let o=n1(i);bO(e,i.draft_??i,o,r),wO(i,a)})}function wO(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let a=n.getPath(e);a&&n.generatePatches_(e,a,t)}xO(e)}}function P9(e,t,r){let{scope_:n}=e;if(xa(r)){let a=r[Nr];Ev(a,n)&&a.callbacks_.push(function(){mv(e);let o=n1(a);bO(e,r,o,t)})}else hn(r)&&e.callbacks_.push(function(){let i=ii(e);e.type_===3?i.has(r)&&xv(r,n.handledSet_,n):Xb(i,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&xv(Xb(e.copy_,t,e.type_),n.handledSet_,n)})}function xv(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||xa(e)||t.has(e)||!hn(e)||_v(e)||(t.add(e),Sv(e,(n,a)=>{if(xa(a)){let i=a[Nr];if(Ev(i,r)){let o=n1(i);gv(e,n,o,e.type_),xO(i)}}else hn(a)&&xv(a,t,r)})),e}function j9(e,t){let r=Av(e),n={type_:r?1:0,scope_:t?t.scope_:yO(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},a=n,i=bv;r&&(a=[n],i=vd);let{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,[l,n]}var bv={get(e,t){if(t===Nr)return e;let r=e.scope_.arrayMethodsPlugin_,n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let a=ii(e);if(!qb(a,t,e.type_))return z9(e,a,t);let i=a[t];if(e.finalized_||!hn(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&_9(t))return i;if(i===Kb(e.base_,t)||I9(e,t,i)){mv(e);let o=e.type_===1?+t:t,l=t1(e.scope_,i,e,o);return e.copy_[o]=l}return i},has(e,t){return t in ii(e)},ownKeys(e){return Reflect.ownKeys(ii(e))},set(e,t,r){let n=SO(ii(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let a=Kb(ii(e),t),i=a?.[Nr];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(C9(r,a)&&(r!==void 0||qb(e.base_,t,e.type_)))return!0;mv(e),e1(e)}return e.copy_[t]===r&&(r!==void 0||qb(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),P9(e,t,r)),!0},deleteProperty(e,t){return mv(e),Kb(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),e1(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=ii(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[pv]:!0,[Gb]:e.type_!==1||t!=="length",[hv]:n[hv],[pd]:r[t]}},defineProperty(){ta(11)},getPrototypeOf(e){return Xs(e.base_)},setPrototypeOf(){ta(12)}},vd={};for(let e in bv){let t=bv[e];vd[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}vd.deleteProperty=function(e,t){return vd.set.call(this,e,t,void 0)};vd.set=function(e,t,r){return bv.set.call(this,e[0],t,r,e[0])};function Kb(e,t){let r=e[Nr];return(r?ii(r):e)[t]}function I9(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!hn(r)||r[Nr]?!1:e.baseRefs_.has(r)}function z9(e,t,r){let n=SO(t,r);return n?pd in n?n[pd]:n.get?.call(e.draft_):void 0}function SO(e,t){if(!(t in e))return;let r=Xs(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Xs(r)}}function e1(e){e.modified_||(e.modified_=!0,e.parent_&&e1(e.parent_))}function mv(e){e.copy_||(e.assigned_=new Map,e.copy_=Zb(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var L9=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Gs(t)&&!Gs(r)){let i=r;r=t;let o=this;return function(s=i,...u){return o.produce(s,c=>r.call(this,c,...u))}}Gs(r)||ta(6),n!==void 0&&!Gs(n)&&ta(7);let a;if(hn(t)){let i=fO(this),o=t1(i,t,void 0),l=!0;try{a=r(o),l=!1}finally{l?Jb(i):Rb(i)}return dO(i,n),pO(a,i)}else if(!t||!r1(t)){if(a=r(t),a===void 0&&(a=t),a===vO&&(a=void 0),this.autoFreeze_&&a1(a,!0),n){let i=[],o=[];qo(Qb).generateReplacementPatches_(t,a,{patches_:i,inversePatches_:o}),n(i,o)}return a}else ta(1,t)},this.produceWithPatches=(t,r)=>{if(Gs(t))return(o,...l)=>this.produceWithPatches(o,s=>t(s,...l));let n,a;return[this.produce(t,r,(o,l)=>{n=o,a=l}),n,a]},Wb(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Wb(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Wb(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){hn(e)||ta(8),xa(e)&&(e=yr(e));let t=fO(this),r=t1(t,e,void 0);return r[Nr].isManual_=!0,Rb(t),r}finishDraft(e,t){let r=e&&e[Nr];(!r||!r.isManual_)&&ta(9);let{scope_:n}=r;return dO(n,t),pO(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let a=t[r];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}r>-1&&(t=t.slice(r+1));let n=qo(Qb).applyPatches_;return xa(e)?n(e,t):this.produce(e,a=>n(a,t))}};function t1(e,t,r,n){let[a,i]=Nv(t)?qo(yv).proxyMap_(t,r):Cv(t)?qo(yv).proxySet_(t,r):j9(t,r);return(r?.scope_??yO()).drafts_.push(a),i.callbacks_=r?.callbacks_??[],i.key_=n,r&&n!==void 0?D9(r,i,n):i.callbacks_.push(function(s){s.mapSetPlugin_?.fixSetContents(i);let{patchPlugin_:u}=s;i.modified_&&u&&u.generatePatches_(i,[],s)}),a}function yr(e){return xa(e)||ta(10,e),AO(e)}function AO(e){if(!hn(e)||_v(e))return e;let t=e[Nr],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Zb(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Zb(e,!0);return Sv(r,(a,i)=>{gv(r,a,AO(i))},n),t&&(t.finalized_=!1),r}var B9=new L9,i1=B9.produce;var je=e=>e;function NO(e){return({dispatch:r,getState:n})=>a=>i=>typeof i=="function"?i(r,n,e):a(i)}var CO=NO(),_O=NO;var U9=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?fd:fd.apply(null,arguments)},Fte=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},$9=e=>e&&typeof e.match=="function";function Xt(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(gn(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>Yb(n)&&n.type===e,r}var jO=class gd extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,gd.prototype)}static get[Symbol.species](){return gd}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new gd(...t[0].concat(this)):new gd(...t.concat(this))}};function EO(e){return hn(e)?i1(e,()=>{}):e}function Ov(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function H9(e){return typeof e=="boolean"}var V9=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{},o=new jO;return r&&(H9(r)?o.push(CO):o.push(_O(r.extraArgument))),o},IO="RTK_autoBatch",Re=()=>e=>({payload:e,meta:{[IO]:!0}}),OO=e=>t=>{setTimeout(t,e)},F9=(e,t)=>r=>{let n=!1,a=()=>{n||(n=!0,cancelAnimationFrame(i),clearTimeout(o),r())},i=e(a),o=setTimeout(a,t)},u1=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),a=!0,i=!1,o=!1,l=new Set,s=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?F9(window.requestAnimationFrame,100):OO(10):e.type==="callback"?e.queueNotification:OO(e.timeout),u=()=>{o=!1,i&&(i=!1,l.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>a&&c(),f=n.subscribe(d);return l.add(c),()=>{f(),l.delete(c)}},dispatch(c){try{return a=!c?.meta?.[IO],i=!a,i&&(o||(o=!0,s(u))),n.dispatch(c)}finally{a=!0}}})},Y9=e=>function(r){let{autoBatch:n=!0}=r??{},a=new jO(e);return n&&a.push(u1(typeof n=="object"?n:void 0)),a};function zO(e){let t=V9(),{reducer:r=void 0,middleware:n,devTools:a=!0,duplicateMiddlewareCheck:i=!0,preloadedState:o=void 0,enhancers:l=void 0}=e||{},s;if(typeof r=="function")s=r;else if(cv(r))s=dv(r);else throw new Error(gn(1));let u;typeof n=="function"?u=n(t):u=t();let c=fd;a&&(c=U9({trace:!1,...typeof a=="object"&&a}));let d=oO(...u),f=Y9(d),p=typeof l=="function"?l(f):f(),v=c(...p);return Fb(s,o,v)}function LO(e){let t={},r=[],n,a={addCase(i,o){let l=typeof i=="string"?i:i.type;if(!l)throw new Error(gn(28));if(l in t)throw new Error(gn(29));return t[l]=o,a},addAsyncThunk(i,o){return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){return n=i,a}};return e(a),[t,r,n]}function q9(e){return typeof e=="function"}function W9(e,t){let[r,n,a]=LO(t),i;if(q9(e))i=()=>EO(e());else{let l=EO(e);i=()=>l}function o(l=i(),s){let u=[r[s.type],...n.filter(({matcher:c})=>c(s)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[a]),u.reduce((c,d)=>{if(d)if(xa(c)){let p=d(c,s);return p===void 0?c:p}else{if(hn(c))return i1(c,f=>d(f,s));{let f=d(c,s);if(f===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return f}}return c},l)}return o.getInitialState=i,o}var K9=(e,t)=>$9(e)?e.match(t):e(t);function G9(...e){return t=>e.some(r=>K9(r,t))}var X9="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",BO=(e=21)=>{let t="",r=e;for(;r--;)t+=X9[Math.random()*64|0];return t},Z9=["name","message","stack","code"],o1=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},kO=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},Q9=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of Z9)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},TO="External signal was aborted",J9=(()=>{function e(t,r,n){let a=Xt(t+"/fulfilled",(s,u,c,d)=>({payload:s,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),i=Xt(t+"/pending",(s,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:s,requestStatus:"pending"}})),o=Xt(t+"/rejected",(s,u,c,d,f)=>({payload:d,error:(n&&n.serializeError||Q9)(s||"Rejected"),meta:{...f||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:s?.name==="AbortError",condition:s?.name==="ConditionError"}}));function l(s,{signal:u}={}){return(c,d,f)=>{let p=n?.idGenerator?n.idGenerator(s):BO(),v=new AbortController,g,b;function m(x){b=x,v.abort()}u&&(u.aborted?m(TO):u.addEventListener("abort",()=>m(TO),{once:!0}));let h=(async function(){let x;try{let E=n?.condition?.(s,{getState:d,extra:f});if(eL(E)&&(E=await E),E===!1||v.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let C=new Promise((T,_)=>{g=()=>{_({name:"AbortError",message:b||"Aborted"})},v.signal.addEventListener("abort",g,{once:!0})});c(i(p,s,n?.getPendingMeta?.({requestId:p,arg:s},{getState:d,extra:f}))),x=await Promise.race([C,Promise.resolve(r(s,{dispatch:c,getState:d,extra:f,requestId:p,signal:v.signal,abort:m,rejectWithValue:((T,_)=>new o1(T,_)),fulfillWithValue:((T,_)=>new kO(T,_))})).then(T=>{if(T instanceof o1)throw T;return T instanceof kO?a(T.payload,p,s,T.meta):a(T,p,s)})])}catch(E){x=E instanceof o1?o(null,p,s,E.payload,E.meta):o(E,p,s)}finally{g&&v.signal.removeEventListener("abort",g)}return n&&!n.dispatchConditionRejection&&o.match(x)&&x.meta.condition||c(x),x})();return Object.assign(h,{abort:m,requestId:p,arg:s,unwrap(){return h.then(R9)}})}}return Object.assign(l,{pending:i,rejected:o,fulfilled:a,settled:G9(o,a),typePrefix:t})}return e.withTypes=()=>e,e})();function R9(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function eL(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var UO=Symbol.for("rtk-slice-createasyncthunk"),qte={[UO]:J9};function tL(e,t){return`${e}/${t}`}function rL({creators:e}={}){let t=e?.asyncThunk?.[UO];return function(n){let{name:a,reducerPath:i=a}=n;if(!a)throw new Error(gn(11));typeof process<"u";let o=(typeof n.reducers=="function"?n.reducers(aL()):n.reducers)||{},l=Object.keys(o),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(x,w){let E=typeof x=="string"?x:x.type;if(!E)throw new Error(gn(12));if(E in s.sliceCaseReducersByType)throw new Error(gn(13));return s.sliceCaseReducersByType[E]=w,u},addMatcher(x,w){return s.sliceMatchers.push({matcher:x,reducer:w}),u},exposeAction(x,w){return s.actionCreators[x]=w,u},exposeCaseReducer(x,w){return s.sliceCaseReducersByName[x]=w,u}};l.forEach(x=>{let w=o[x],E={reducerName:x,type:tL(a,x),createNotation:typeof n.reducers=="function"};oL(w)?sL(E,w,u,t):iL(E,w,u)});function c(){let[x={},w=[],E=void 0]=typeof n.extraReducers=="function"?LO(n.extraReducers):[n.extraReducers],C={...x,...s.sliceCaseReducersByType};return W9(n.initialState,T=>{for(let _ in C)T.addCase(_,C[_]);for(let _ of s.sliceMatchers)T.addMatcher(_.matcher,_.reducer);for(let _ of w)T.addMatcher(_.matcher,_.reducer);E&&T.addDefaultCase(E)})}let d=x=>x,f=new Map,p=new WeakMap,v;function g(x,w){return v||(v=c()),v(x,w)}function b(){return v||(v=c()),v.getInitialState()}function m(x,w=!1){function E(T){let _=T[x];return typeof _>"u"&&w&&(_=Ov(p,E,b)),_}function C(T=d){let _=Ov(f,w,()=>new WeakMap);return Ov(_,T,()=>{let I={};for(let[z,B]of Object.entries(n.selectors??{}))I[z]=nL(B,T,()=>Ov(p,T,b),w);return I})}return{reducerPath:x,getSelectors:C,get selectors(){return C(E)},selectSlice:E}}let h={name:a,reducer:g,actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:b,...m(i),injectInto(x,{reducerPath:w,...E}={}){let C=w??i;return x.inject({reducerPath:C,reducer:g},E),{...h,...m(C,!0)}}};return h}}function nL(e,t,r,n){function a(i,...o){let l=t(i);return typeof l>"u"&&n&&(l=r()),e(l,...o)}return a.unwrapped=e,a}var Ke=rL();function aL(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function iL({type:e,reducerName:t,createNotation:r},n,a){let i,o;if("reducer"in n){if(r&&!lL(n))throw new Error(gn(17));i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?Xt(e,o):Xt(e))}function oL(e){return e._reducerDefinitionType==="asyncThunk"}function lL(e){return e._reducerDefinitionType==="reducerWithPrepare"}function sL({type:e,reducerName:t},r,n,a){if(!a)throw new Error(gn(18));let{payloadCreator:i,fulfilled:o,pending:l,rejected:s,settled:u,options:c}=r,d=a(e,i,c);n.exposeAction(t,d),o&&n.addCase(d.fulfilled,o),l&&n.addCase(d.pending,l),s&&n.addCase(d.rejected,s),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:o||kv,pending:l||kv,rejected:s||kv,settled:u||kv})}function kv(){}var uL="task",$O="listener",HO="completed",c1="cancelled",cL=`task-${c1}`,dL=`task-${HO}`,l1=`${$O}-${c1}`,fL=`${$O}-${HO}`,Dv=class{constructor(e){this.code=e,this.message=`${uL} ${c1} (reason: ${e})`}code;name="TaskAbortError";message},d1=(e,t)=>{if(typeof e!="function")throw new TypeError(gn(32))},Tv=()=>{},VO=(e,t=Tv)=>(e.catch(t),e),FO=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Wo=e=>{if(e.aborted)throw new Dv(e.reason)};function YO(e,t){let r=Tv;return new Promise((n,a)=>{let i=()=>a(new Dv(e.reason));if(e.aborted){i();return}r=FO(e,i),t.finally(()=>r()).then(n,a)}).finally(()=>{r=Tv})}var pL=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof Dv?"cancelled":"rejected",error:r}}finally{t?.()}},Mv=e=>t=>VO(YO(e,t).then(r=>(Wo(e),r))),qO=e=>{let t=Mv(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Zs}=Object,MO={},Pv="listenerMiddleware",mL=(e,t)=>{let r=n=>FO(e,()=>n.abort(e.reason));return(n,a)=>{d1(n,"taskExecutor");let i=new AbortController;r(i);let o=pL(async()=>{Wo(e),Wo(i.signal);let l=await n({pause:Mv(i.signal),delay:qO(i.signal),signal:i.signal});return Wo(i.signal),l},()=>i.abort(dL));return a?.autoJoin&&t.push(o.catch(Tv)),{result:Mv(e)(o),cancel(){i.abort(cL)}}}},vL=(e,t)=>{let r=async(n,a)=>{Wo(t);let i=()=>{},l=[new Promise((s,u)=>{let c=e({predicate:n,effect:(d,f)=>{f.unsubscribe(),s([d,f.getState(),f.getOriginalState()])}});i=()=>{c(),u()}})];a!=null&&l.push(new Promise(s=>setTimeout(s,a,null)));try{let s=await YO(t,Promise.race(l));return Wo(t),s}finally{i()}};return((n,a)=>VO(r(n,a)))},WO=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:i}=e;if(t)a=Xt(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(gn(21));return d1(i,"options.listener"),{predicate:a,type:t,effect:i}},KO=Zs(e=>{let{type:t,predicate:r,effect:n}=WO(e);return{id:BO(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(gn(22))}}},{withTypes:()=>KO}),DO=(e,t)=>{let{type:r,effect:n,predicate:a}=WO(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===n)},s1=e=>{e.pending.forEach(t=>{t.abort(l1)})},hL=(e,t)=>()=>{for(let r of t.keys())s1(r);e.clear()},PO=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},GO=Zs(Xt(`${Pv}/add`),{withTypes:()=>GO}),gL=Xt(`${Pv}/removeAll`),XO=Zs(Xt(`${Pv}/remove`),{withTypes:()=>XO}),yL=(...e)=>{console.error(`${Pv}/error`,...e)},oi=(e={})=>{let t=new Map,r=new Map,n=p=>{let v=r.get(p)??0;r.set(p,v+1)},a=p=>{let v=r.get(p)??1;v===1?r.delete(p):r.set(p,v-1)},{extra:i,onError:o=yL}=e;d1(o,"onError");let l=p=>(p.unsubscribe=()=>t.delete(p.id),t.set(p.id,p),v=>{p.unsubscribe(),v?.cancelActive&&s1(p)}),s=(p=>{let v=DO(t,p)??KO(p);return l(v)});Zs(s,{withTypes:()=>s});let u=p=>{let v=DO(t,p);return v&&(v.unsubscribe(),p.cancelActive&&s1(v)),!!v};Zs(u,{withTypes:()=>u});let c=async(p,v,g,b)=>{let m=new AbortController,h=vL(s,m.signal),x=[];try{p.pending.add(m),n(p),await Promise.resolve(p.effect(v,Zs({},g,{getOriginalState:b,condition:(w,E)=>h(w,E).then(Boolean),take:h,delay:qO(m.signal),pause:Mv(m.signal),extra:i,signal:m.signal,fork:mL(m.signal,x),unsubscribe:p.unsubscribe,subscribe:()=>{t.set(p.id,p)},cancelActiveListeners:()=>{p.pending.forEach((w,E,C)=>{w!==m&&(w.abort(l1),C.delete(w))})},cancel:()=>{m.abort(l1),p.pending.delete(m)},throwIfCancelled:()=>{Wo(m.signal)}})))}catch(w){w instanceof Dv||PO(o,w,{raisedBy:"effect"})}finally{await Promise.all(x),m.abort(fL),a(p),p.pending.delete(m)}},d=hL(t,r);return{middleware:p=>v=>g=>{if(!Yb(g))return v(g);if(GO.match(g))return s(g.payload);if(gL.match(g)){d();return}if(XO.match(g))return u(g.payload);let b=p.getState(),m=()=>{if(b===MO)throw new Error(gn(23));return b},h;try{if(h=v(g),t.size>0){let x=p.getState(),w=Array.from(t.values());for(let E of w){let C=!1;try{C=E.predicate(g,x,b)}catch(T){C=!1,PO(o,T,{raisedBy:"predicate"})}C&&c(E,g,p,m)}}}finally{b=MO}return h},startListening:s,stopListening:u,clearListeners:d}};function gn(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var xL={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},ZO=Ke({name:"chartLayout",initialState:xL,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,a,i;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(a=t.payload.bottom)!==null&&a!==void 0?a:0,e.margin.left=(i=t.payload.left)!==null&&i!==void 0?i:0},setScale(e,t){e.scale=t.payload}}}),jv=ZO.actions,f1=jv.setMargin,QO=jv.setLayout,JO=jv.setChartSize,RO=jv.setScale;var ek=ZO.reducer;function Iv(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function ke(e){return Number.isFinite(e)}function Xr(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function tk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Zr(e){for(var t=1;t{if(t&&r){var n=r.width,a=r.height,i=t.align,o=t.verticalAlign,l=t.layout,s=t.position,u=t.offset,c=u===void 0?0:u;if(s!=null){if(G_(s)){if(s==="top"&&me(e.top))return Zr(Zr({},e),{},{top:e.top+(a||0)+c});if(s==="bottom"&&me(e.bottom))return Zr(Zr({},e),{},{bottom:e.bottom+(a||0)+c});if(s==="left"&&me(e.left))return Zr(Zr({},e),{},{left:e.left+(n||0)+c});if(s==="right"&&me(e.right))return Zr(Zr({},e),{},{right:e.right+(n||0)+c})}return e}if((l==="vertical"||l==="horizontal"&&o==="middle")&&i!=="center"&&me(e[i]))return Zr(Zr({},e),{},{[i]:e[i]+(n||0)});if((l==="horizontal"||l==="vertical"&&i==="center")&&o!=="middle"&&me(e[o]))return Zr(Zr({},e),{},{[o]:e[o]+(a||0)})}return e},Qr=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",p1=(e,t,r,n)=>{if(n)return e.map(l=>l.coordinate);var a,i,o=e.map(l=>(l.coordinate===t&&(a=!0),l.coordinate===r&&(i=!0),l.coordinate));return a||o.push(t),i||o.push(r),o},m1=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,a=e.type,i=e.range,o=e.scale,l=e.realScaleType,s=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,f=e.niceTicks,p=e.axisType;if(!o)return null;var v=l==="scaleBand"&&o.bandwidth?o.bandwidth()/2:2,g=(t||r)&&a==="category"&&o.bandwidth?o.bandwidth()/v:0;if(g=p==="angleAxis"&&i&&i.length>=2?rr(i[0]-i[1])*2*g:g,t&&(d||f)){var b=(d||f||[]).map((m,h)=>{var x=n?n.indexOf(m):m,w=o.map(x);return ke(w)?{coordinate:w+g,value:m,offset:g,index:h}:null}).filter(nr);return b}return s&&u?u.map((m,h)=>{var x=o.map(m);return ke(x)?{coordinate:x+g,value:m,index:h,offset:g}:null}).filter(nr):o.ticks&&!r&&c!=null?o.ticks(c).map((m,h)=>{var x=o.map(m);return ke(x)?{coordinate:x+g,value:m,index:h,offset:g}:null}).filter(nr):o.domain().map((m,h)=>{var x=o.map(m);return ke(x)?{coordinate:x+g,value:n?n[m]:m,index:h,offset:g}:null}).filter(nr)};var AL=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a=0?(u[0]=i,i+=f,u[1]=i):(u[0]=o,o+=f,u[1]=o)}}}},NL=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a=0?(s[0]=i,i+=u,s[1]=i):(s[0]=0,s[1]=0)}}}},CL={sign:AL,expand:jb,none:mn,silhouette:Ib,wiggle:zb,positive:NL},nk=(e,t,r)=>{var n,a=(n=CL[r])!==null&&n!==void 0?n:mn,i=Pb().keys(t).value((l,s)=>Number(ht(l,s,0))).order(Hs).offset(a),o=i(e);return o.forEach((l,s)=>{l.forEach((u,c)=>{var d=ht(e[c],t[s],0);Array.isArray(d)&&d.length===2&&me(d[0])&&me(d[1])&&(u[0]=d[0],u[1]=d[1])})}),o};function ak(e){return e==null?void 0:String(e)}function v1(e){var t=e.axis,r=e.ticks,n=e.bandSize,a=e.entry,i=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!St(a[t.dataKey])){var l=_m(r,"value",a[t.dataKey]);if(l)return l.coordinate+n/2}return r!=null&&r[i]?r[i].coordinate+n/2:null}var s=ht(a,St(o)?t.dataKey:o),u=t.scale.map(s);return me(u)?u:null}var _L=e=>{var t=e.flat(2).filter(me);return[Math.min(...t),Math.max(...t)]},EL=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],ik=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return EL(Object.keys(e).reduce((n,a)=>{var i=e[a];if(!i)return n;var o=i.stackedData,l=o.reduce((s,u)=>{var c=Iv(u,t,r),d=_L(c);return!ke(d[0])||!ke(d[1])?s:[Math.min(s[0],d[0]),Math.max(s[1],d[1])]},[1/0,-1/0]);return[Math.min(l[0],n[0]),Math.max(l[1],n[1])]},[1/0,-1/0]))},h1=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,g1=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Qs=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var a=ni(t,g=>g.coordinate),i=[],o=0,l=1,s=a.length;lf&&(p=Math.min(v,p));return p===1/0?0:p}return r?void 0:0};function y1(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,a=e.value,i=e.name;return Zr(Zr({},t),{},{dataKey:r,payload:n,value:a,name:i})}function x1(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var ok=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},lk=(e,t)=>t==="centric"?e.angle:e.radius;var Cr=e=>e.layout.width,_r=e=>e.layout.height,sk=e=>e.layout.scale,zv=e=>e.layout.margin;var Js=W(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Rs=W(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var uk="data-recharts-item-index",ck="data-recharts-item-id",Ko=60,yd=30;function dk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Lv(e){for(var t=1;te.brush.height;function DL(e){var t=Rs(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:Ko;return r+a}return r},0)}function PL(e){var t=Rs(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:Ko;return r+a}return r},0)}function jL(e){var t=Js(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:yd;return r+a}return r},0)}function IL(e){var t=Js(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:yd;return r+a}return r},0)}var gt=W([Cr,_r,zv,ML,DL,PL,jL,IL,Hb,eO],(e,t,r,n,a,i,o,l,s,u)=>{var c={left:(r.left||0)+a,right:(r.right||0)+i},d={top:(r.top||0)+o,bottom:(r.bottom||0)+l},f=Lv(Lv({},d),c),p=f.bottom;f.bottom+=n,f=rk(f,s,u);var v=e-f.left-f.right,g=t-f.top-f.bottom;return Lv(Lv({brushBottom:p},f),{},{width:Math.max(v,0),height:Math.max(g,0)})}),fk=W(gt,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Bv=W(Cr,_r,(e,t)=>({x:0,y:0,width:e,height:t}));var zL=J(R()),Uv=J(R()),LL=(0,Uv.createContext)(null),ct=()=>(0,Uv.useContext)(LL)!=null;var eu=e=>e.brush,Go=W([eu,gt,zv],(e,t,r)=>({height:e.height,x:me(e.x)?e.x:t.left,y:me(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:me(e.width)?e.width:t.width}));var Xo=J(R()),Zt=J(R());function pk(e,t,{signal:r,edges:n}={}){let a,i=null,o=n!=null&&n.includes("leading"),l=n==null||n.includes("trailing"),s=()=>{i!==null&&(e.apply(a,i),a=void 0,i=null)},u=()=>{l&&s(),p()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},f=()=>{c!==null&&(clearTimeout(c),c=null)},p=()=>{f(),a=void 0,i=null},v=()=>{s()},g=function(...b){if(r?.aborted)return;a=this,i=b;let m=c==null;d(),o&&m&&s()};return g.schedule=d,g.cancel=p,g.flush=v,r?.addEventListener("abort",p,{once:!0}),g}function mk(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:i}=r,o=Array(2);n&&(o[0]="leading"),a&&(o[1]="trailing");let l,s=null,u=pk(function(...f){l=e.apply(this,f),s=null},t,{edges:o}),c=function(...f){return i!=null&&(s===null&&(s=Date.now()),Date.now()-s>=i)?(l=e.apply(this,f),s=Date.now(),u.cancel(),u.schedule(),l):(u.apply(this,f),l)},d=()=>(u.flush(),l);return c.cancel=u.cancel,c.flush=d,c}function b1(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return mk(e,t,{leading:n,maxWait:t,trailing:a})}var BL=!0,tu=function(t,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;ia[o++]))}};var ra={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},w1=(e,t,r)=>{var n=r.width,a=n===void 0?ra.width:n,i=r.height,o=i===void 0?ra.height:i,l=r.aspect,s=r.maxHeight,u=ei(a)?e:Number(a),c=ei(o)?t:Number(o);return l&&l>0&&(u?c=u/l:c&&(u=c*l),s&&c!=null&&c>s&&(c=s)),{calculatedWidth:u,calculatedHeight:c}},UL={width:0,height:0,overflow:"visible"},$L={width:0,overflowX:"visible"},HL={height:0,overflowY:"visible"},VL={},vk=e=>{var t=e.width,r=e.height,n=ei(t),a=ei(r);return n&&a?UL:n?$L:a?HL:VL};function hk(e){var t=e.width,r=e.height,n=e.aspect,a=t,i=r;return a===void 0&&i===void 0?(a=ra.width,i=ra.height):a===void 0?a=n&&n>0?void 0:ra.width:i===void 0&&(i=n&&n>0?void 0:ra.height),{width:a,height:i}}var FL=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function $v(){return $v=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return eB(a)?Xo.createElement(bk.Provider,{value:a},t):null}var xd=()=>(0,Zt.useContext)(bk),tB=(0,Zt.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,a=n===void 0?ra.initialDimension:n,i=e.width,o=e.height,l=e.minWidth,s=l===void 0?ra.minWidth:l,u=e.minHeight,c=e.maxHeight,d=e.children,f=e.debounce,p=f===void 0?ra.debounce:f,v=e.id,g=e.className,b=e.onResize,m=e.style,h=m===void 0?{}:m,x=JL(e,FL),w=(0,Zt.useRef)(null),E=(0,Zt.useRef)();E.current=b,(0,Zt.useImperativeHandle)(t,()=>w.current);var C=(0,Zt.useState)({containerWidth:a.width,containerHeight:a.height}),T=KL(C,2),_=T[0],I=T[1],z=(0,Zt.useCallback)((y,N)=>{I(O=>{var M=Math.round(y),A=Math.round(N);return O.containerWidth===M&&O.containerHeight===A?O:{containerWidth:M,containerHeight:A}})},[]);(0,Zt.useEffect)(()=>{if(w.current==null||typeof ResizeObserver>"u")return ea;var y=k=>{var V,G=k[0];if(G!=null){var Q=G.contentRect,se=Q.width,ue=Q.height;z(se,ue),(V=E.current)===null||V===void 0||V.call(E,se,ue)}};p>0&&(y=b1(y,p,{trailing:!0,leading:!1}));var N=new ResizeObserver(y),O=w.current.getBoundingClientRect(),M=O.width,A=O.height;return z(M,A),N.observe(w.current),()=>{N.disconnect()}},[z,p]);var B=_.containerWidth,$=_.containerHeight;tu(!r||r>0,"The aspect(%s) must be greater than zero.",r);var X=w1(B,$,{width:i,height:o,aspect:r,maxHeight:c}),H=X.calculatedWidth,q=X.calculatedHeight;return tu(B<0||$<0||H!=null&&H>0||q!=null&&q>0,`The width(%s) and height(%s) of chart should be greater than 0, +`+n.stack}}var k0=Object.prototype.hasOwnProperty,hx=tr.unstable_scheduleCallback,Wy=tr.unstable_cancelCallback,Yj=tr.unstable_shouldYield,Kj=tr.unstable_requestPaint,un=tr.unstable_now,Gj=tr.unstable_getCurrentPriorityLevel,sN=tr.unstable_ImmediatePriority,uN=tr.unstable_UserBlockingPriority,Ip=tr.unstable_NormalPriority,Xj=tr.unstable_LowPriority,cN=tr.unstable_IdlePriority,Zj=tr.log,Qj=tr.unstable_setDisableYieldValue,Gc=null,cn=null;function ji(e){if(typeof Zj=="function"&&Qj(e),cn&&typeof cn.setStrictMode=="function")try{cn.setStrictMode(Gc,e)}catch{}}var dn=Math.clz32?Math.clz32:eI,Jj=Math.log,Rj=Math.LN2;function eI(e){return e>>>=0,e===0?32:31-(Jj(e)/Rj|0)|0}var ep=256,tp=262144,rp=4194304;function Co(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function lm(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var a=0,i=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var l=n&134217727;return l!==0?(n=l&~i,n!==0?a=Co(n):(o&=l,o!==0?a=Co(o):r||(r=l&~e,r!==0&&(a=Co(r))))):(l=n&~i,l!==0?a=Co(l):o!==0?a=Co(o):r||(r=n&~e,r!==0&&(a=Co(r)))),a===0?0:t!==0&&t!==a&&(t&i)===0&&(i=a&-a,r=t&-t,i>=r||i===32&&(r&4194048)!==0)?t:a}function Xc(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function tI(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function dN(){var e=rp;return rp<<=1,(rp&62914560)===0&&(rp=4194304),e}function qy(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Zc(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function rI(e,t,r,n,a,i){var o=e.pendingLanes;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=r,e.entangledLanes&=r,e.errorRecoveryDisabledLanes&=r,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(r=o&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var sI=/[\n"\\]/g;function Mn(e){return e.replace(sI,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function T0(e,t,r,n,a,i,o,l){e.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.type=o:e.removeAttribute("type"),t!=null?o==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+En(t)):e.value!==""+En(t)&&(e.value=""+En(t)):o!=="submit"&&o!=="reset"||e.removeAttribute("value"),t!=null?M0(e,o,En(t)):r!=null?M0(e,o,En(r)):n!=null&&e.removeAttribute("value"),a==null&&i!=null&&(e.defaultChecked=!!i),a!=null&&(e.checked=a&&typeof a!="function"&&typeof a!="symbol"),l!=null&&typeof l!="function"&&typeof l!="symbol"&&typeof l!="boolean"?e.name=""+En(l):e.removeAttribute("name")}function bN(e,t,r,n,a,i,o,l){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||r!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){O0(e);return}r=r!=null?""+En(r):"",t=t!=null?""+En(t):r,l||t===e.value||(e.value=t),e.defaultValue=t}n=n??a,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=l?e.checked:!!n,e.defaultChecked=!!n,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.name=o),O0(e)}function M0(e,t,r){t==="number"&&zp(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function ss(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),P0=!1;if(Za)try{Wl={},Object.defineProperty(Wl,"passive",{get:function(){P0=!0}}),window.addEventListener("test",Wl,Wl),window.removeEventListener("test",Wl,Wl)}catch{P0=!1}var Wl,Ii=null,Ax=null,xp=null;function CN(){if(xp)return xp;var e,t=Ax,r=t.length,n,a="value"in Ii?Ii.value:Ii.textContent,i=a.length;for(e=0;e=bc),WA=" ",qA=!1;function kN(e,t){switch(e){case"keyup":return zI.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function EN(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Rl=!1;function BI(e,t){switch(e){case"compositionend":return EN(t);case"keypress":return t.which!==32?null:(qA=!0,WA);case"textInput":return e=t.data,e===WA&&qA?null:e;default:return null}}function $I(e,t){if(Rl)return e==="compositionend"||!Cx&&kN(e,t)?(e=CN(),xp=Ax=Ii=null,Rl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=XA(r)}}function DN(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?DN(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function PN(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=zp(e.document);t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=zp(e.document)}return t}function _x(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var KI=Za&&"documentMode"in document&&11>=document.documentMode,es=null,j0=null,Sc=null,I0=!1;function QA(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;I0||es==null||es!==zp(n)||(n=es,"selectionStart"in n&&_x(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Sc&&zc(Sc,n)||(Sc=n,n=em(j0,"onSelect"),0>=o,a-=o,pa=1<<32-dn(t)+a|r<_?(M=D,D=null):M=D.sibling;var z=f(m,D,y[_],b);if(z===null){D===null&&(D=M);break}e&&D&&z.alternate===null&&t(m,D),v=i(z,v,_),N===null?k=z:N.sibling=z,N=z,D=M}if(_===y.length)return r(m,D),We&&Va(m,_),k;if(D===null){for(;__?(M=D,D=null):M=D.sibling;var $=f(m,D,z.value,b);if($===null){D===null&&(D=M);break}e&&D&&$.alternate===null&&t(m,D),v=i($,v,_),N===null?k=$:N.sibling=$,N=$,D=M}if(z.done)return r(m,D),We&&Va(m,_),k;if(D===null){for(;!z.done;_++,z=y.next())z=d(m,z.value,b),z!==null&&(v=i(z,v,_),N===null?k=z:N.sibling=z,N=z);return We&&Va(m,_),k}for(D=n(D);!z.done;_++,z=y.next())z=p(D,m,_,z.value,b),z!==null&&(e&&z.alternate!==null&&D.delete(z.key===null?_:z.key),v=i(z,v,_),N===null?k=z:N.sibling=z,N=z);return e&&D.forEach(function(U){return t(m,U)}),We&&Va(m,_),k}function x(m,v,y,b){if(typeof y=="object"&&y!==null&&y.type===Xl&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Rf:e:{for(var k=y.key;v!==null;){if(v.key===k){if(k=y.type,k===Xl){if(v.tag===7){r(m,v.sibling),b=a(v,y.props.children),b.return=m,m=b;break e}}else if(v.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Ei&&_o(k)===v.type){r(m,v.sibling),b=a(v,y.props),cc(b,y),b.return=m,m=b;break e}r(m,v);break}else t(m,v);v=v.sibling}y.type===Xl?(b=Oo(y.props.children,m.mode,b,y.key),b.return=m,m=b):(b=wp(y.type,y.key,y.props,null,m.mode,b),cc(b,y),b.return=m,m=b)}return o(m);case gc:e:{for(k=y.key;v!==null;){if(v.key===k)if(v.tag===4&&v.stateNode.containerInfo===y.containerInfo&&v.stateNode.implementation===y.implementation){r(m,v.sibling),b=a(v,y.children||[]),b.return=m,m=b;break e}else{r(m,v);break}else t(m,v);v=v.sibling}b=Ry(y,m.mode,b),b.return=m,m=b}return o(m);case Ei:return y=_o(y),x(m,v,y,b)}if(vc(y))return g(m,v,y,b);if(sc(y)){if(k=sc(y),typeof k!="function")throw Error(ne(150));return y=k.call(y),h(m,v,y,b)}if(typeof y.then=="function")return x(m,v,sp(y),b);if(y.$$typeof===Wa)return x(m,v,lp(m,y),b);up(m,y)}return typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint"?(y=""+y,v!==null&&v.tag===6?(r(m,v.sibling),b=a(v,y),b.return=m,m=b):(r(m,v),b=Jy(y,m.mode,b),b.return=m,m=b),o(m)):r(m,v)}return function(m,v,y,b){try{$c=0;var k=x(m,v,y,b);return ds=null,k}catch(D){if(D===Es||D===pm)throw D;var N=ln(29,D,null,m.mode);return N.lanes=b,N.return=m,N}}}var Io=GN(!0),XN=GN(!1),Oi=!1;function Ix(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function V0(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Hi(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Vi(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Re&2)!==0){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,t=Bp(e),UN(e,null,r),t}return fm(e,n,t,r),Bp(e)}function Nc(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,pN(e,r)}}function t0(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var o={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};i===null?a=i=o:i=i.next=o,r=r.next}while(r!==null);i===null?a=i=t:i=i.next=t}else a=i=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:n.shared,callbacks:n.callbacks},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}var F0=!1;function Cc(){if(F0){var e=cs;if(e!==null)throw e}}function _c(e,t,r,n){F0=!1;var a=e.updateQueue;Oi=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var s=l,u=s.next;s.next=null,o===null?i=u:o.next=u,o=s;var c=e.alternate;c!==null&&(c=c.updateQueue,l=c.lastBaseUpdate,l!==o&&(l===null?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(i!==null){var d=a.baseState;o=0,c=u=s=null,l=i;do{var f=l.lane&-536870913,p=f!==l.lane;if(p?(Ve&f)===f:(n&f)===f){f!==0&&f===hs&&(F0=!0),c!==null&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var g=e,h=l;f=t;var x=r;switch(h.tag){case 1:if(g=h.payload,typeof g=="function"){d=g.call(x,d,f);break e}d=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=h.payload,f=typeof g=="function"?g.call(x,d,f):g,f==null)break e;d=vt({},d,f);break e;case 2:Oi=!0}}f=l.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=a.callbacks,p===null?a.callbacks=[f]:p.push(f))}else p={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},c===null?(u=c=p,s=d):c=c.next=p,o|=f;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;p=l,l=p.next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}while(!0);c===null&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,i===null&&(a.shared.lanes=0),Qi|=o,e.lanes=o,e.memoizedState=d}}function ZN(e,t){if(typeof e!="function")throw Error(ne(191,e));e.call(t)}function QN(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;ei?i:8;var o=Oe.T,l={};Oe.T=l,Gx(e,!1,t,r);try{var s=a(),u=Oe.S;if(u!==null&&u(l,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var c=rz(s,n);kc(e,t,c,fn(e))}else kc(e,t,n,fn(e))}catch(d){kc(e,t,{then:function(){},status:"rejected",reason:d},fn())}finally{et.p=i,o!==null&&l.types!==null&&(o.types=l.types),Oe.T=o}}function sz(){}function G0(e,t,r,n){if(e.tag!==5)throw Error(ne(476));var a=SC(e).queue;wC(e,a,t,Eo,r===null?sz:function(){return AC(e),r(n)})}function SC(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Eo,baseState:Eo,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ja,lastRenderedState:Eo},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ja,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function AC(e){var t=SC(e);t.next===null&&(t=e.alternate.memoizedState),kc(e,t.next.queue,{},fn())}function Kx(){return hr(Wc)}function NC(){return Bt().memoizedState}function CC(){return Bt().memoizedState}function uz(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=fn();e=Hi(r);var n=Vi(t,e,r);n!==null&&(Kr(n,t,r),Nc(n,t,r)),t={cache:Dx()},e.payload=t;return}t=t.return}}function cz(e,t,r){var n=fn();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},hm(e)?kC(t,r):(r=Ex(e,t,r,n),r!==null&&(Kr(r,e,n),EC(r,t,n)))}function _C(e,t,r){var n=fn();kc(e,t,r,n)}function kc(e,t,r,n){var a={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(hm(e))kC(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,r);if(a.hasEagerState=!0,a.eagerState=l,pn(l,o))return fm(e,t,a,0),st===null&&dm(),!1}catch{}if(r=Ex(e,t,a,n),r!==null)return Kr(r,e,n),EC(r,t,n),!0}return!1}function Gx(e,t,r,n){if(n={lane:2,revertLane:nb(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},hm(e)){if(t)throw Error(ne(479))}else t=Ex(e,r,n,2),t!==null&&Kr(t,e,2)}function hm(e){var t=e.alternate;return e===Ie||t!==null&&t===Ie}function kC(e,t){fs=Wp=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function EC(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,pN(e,r)}}var Hc={readContext:hr,use:gm,useCallback:Ot,useContext:Ot,useEffect:Ot,useImperativeHandle:Ot,useLayoutEffect:Ot,useInsertionEffect:Ot,useMemo:Ot,useReducer:Ot,useRef:Ot,useState:Ot,useDebugValue:Ot,useDeferredValue:Ot,useTransition:Ot,useSyncExternalStore:Ot,useId:Ot,useHostTransitionStatus:Ot,useFormState:Ot,useActionState:Ot,useOptimistic:Ot,useMemoCache:Ot,useCacheRefresh:Ot};Hc.useEffectEvent=Ot;var OC={readContext:hr,use:gm,useCallback:function(e,t){return Br().memoizedState=[e,t===void 0?null:t],e},useContext:hr,useEffect:f5,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,Np(4194308,4,vC.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Np(4194308,4,e,t)},useInsertionEffect:function(e,t){Np(4,2,e,t)},useMemo:function(e,t){var r=Br();t=t===void 0?null:t;var n=e();if(zo){ji(!0);try{e()}finally{ji(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=Br();if(r!==void 0){var a=r(t);if(zo){ji(!0);try{r(t)}finally{ji(!1)}}}else a=t;return n.memoizedState=n.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},n.queue=e,e=e.dispatch=cz.bind(null,Ie,e),[n.memoizedState,e]},useRef:function(e){var t=Br();return e={current:e},t.memoizedState=e},useState:function(e){e=Y0(e);var t=e.queue,r=_C.bind(null,Ie,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:qx,useDeferredValue:function(e,t){var r=Br();return Yx(r,e,t)},useTransition:function(){var e=Y0(!1);return e=wC.bind(null,Ie,e.queue,!0,!1),Br().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=Ie,a=Br();if(We){if(r===void 0)throw Error(ne(407));r=r()}else{if(r=t(),st===null)throw Error(ne(349));(Ve&127)!==0||rC(n,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,f5(aC.bind(null,n,i,e),[e]),n.flags|=2048,xs(9,{destroy:void 0},nC.bind(null,n,i,r,t),null),r},useId:function(){var e=Br(),t=st.identifierPrefix;if(We){var r=ma,n=pa;r=(n&~(1<<32-dn(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=qp++,0<\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof n.is=="string"?o.createElement("select",{is:n.is}):o.createElement("select"),n.multiple?i.multiple=!0:n.size&&(i.size=n.size);break;default:i=typeof n.is=="string"?o.createElement(a,{is:n.is}):o.createElement(a)}}i[gr]=t,i[Gr]=n;e:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)i.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;o.sibling===null;){if(o.return===null||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=i;e:switch(yr(i,a,n),a){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&Ba(t)}}return mt(t),u0(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&Ba(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(ne(166));if(e=$i.current,ql(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,a=vr,a!==null)switch(a.tag){case 27:case 5:n=a.memoizedProps}e[gr]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||__(e.nodeValue,r)),e||Xi(t,!0)}else e=tm(e).createTextNode(n),e[gr]=t,t.stateNode=e}return mt(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=ql(t),r!==null){if(e===null){if(!n)throw Error(ne(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(ne(557));e[gr]=t}else Po(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;mt(t),e=!1}else r=e0(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(on(t),t):(on(t),null);if((t.flags&128)!==0)throw Error(ne(558))}return mt(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=ql(t),n!==null&&n.dehydrated!==null){if(e===null){if(!a)throw Error(ne(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(ne(317));a[gr]=t}else Po(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;mt(t),a=!1}else a=e0(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(on(t),t):(on(t),null)}return on(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,a=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(a=n.alternate.memoizedState.cachePool.pool),i=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(i=n.memoizedState.cachePool.pool),i!==a&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),cp(t,t.updateQueue),mt(t),null);case 4:return ms(),e===null&&ab(t.stateNode.containerInfo),mt(t),null;case 10:return Ga(t.type),mt(t),null;case 19:if(cr(Lt),n=t.memoizedState,n===null)return mt(t),null;if(a=(t.flags&128)!==0,i=n.rendering,i===null)if(a)dc(n,!1);else{if(Tt!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=Fp(e),i!==null){for(t.flags|=128,dc(n,!1),e=i.updateQueue,t.updateQueue=e,cp(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)HN(r,e),r=r.sibling;return dt(Lt,Lt.current&1|2),We&&Va(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&un()>Xp&&(t.flags|=128,a=!0,dc(n,!1),t.lanes=4194304)}else{if(!a)if(e=Fp(i),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,cp(t,e),dc(n,!0),n.tail===null&&n.tailMode==="hidden"&&!i.alternate&&!We)return mt(t),null}else 2*un()-n.renderingStartTime>Xp&&r!==536870912&&(t.flags|=128,a=!0,dc(n,!1),t.lanes=4194304);n.isBackwards?(i.sibling=t.child,t.child=i):(e=n.last,e!==null?e.sibling=i:t.child=i,n.last=i)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=un(),e.sibling=null,r=Lt.current,dt(Lt,a?r&1|2:r&1),We&&Va(t,n.treeForkCount),e):(mt(t),null);case 22:case 23:return on(t),zx(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(r&536870912)!==0&&(t.flags&128)===0&&(mt(t),t.subtreeFlags&6&&(t.flags|=8192)):mt(t),r=t.updateQueue,r!==null&&cp(t,r.retryQueue),r=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(r=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==r&&(t.flags|=2048),e!==null&&cr(To),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Ga(Zt),mt(t),null;case 25:return null;case 30:return null}throw Error(ne(156,t.tag))}function gz(e,t){switch(Mx(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ga(Zt),ms(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return jp(t),null;case 31:if(t.memoizedState!==null){if(on(t),t.alternate===null)throw Error(ne(340));Po()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(on(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ne(340));Po()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return cr(Lt),null;case 4:return ms(),null;case 10:return Ga(t.type),null;case 22:case 23:return on(t),zx(),e!==null&&cr(To),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Ga(Zt),null;case 25:return null;default:return null}}function HC(e,t){switch(Mx(t),t.tag){case 3:Ga(Zt),ms();break;case 26:case 27:case 5:jp(t);break;case 4:ms();break;case 31:t.memoizedState!==null&&on(t);break;case 13:on(t);break;case 19:cr(Lt);break;case 10:Ga(t.type);break;case 22:case 23:on(t),zx(),e!==null&&cr(To);break;case 24:Ga(Zt)}}function td(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var a=n.next;r=a;do{if((r.tag&e)===e){n=void 0;var i=r.create,o=r.inst;n=i(),o.destroy=n}r=r.next}while(r!==a)}}catch(l){at(t,t.return,l)}}function Zi(e,t,r){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var i=a.next;n=i;do{if((n.tag&e)===e){var o=n.inst,l=o.destroy;if(l!==void 0){o.destroy=void 0,a=t;var s=r,u=l;try{u()}catch(c){at(a,s,c)}}}n=n.next}while(n!==i)}}catch(c){at(t,t.return,c)}}function VC(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{QN(t,r)}catch(n){at(e,e.return,n)}}}function FC(e,t,r){r.props=Lo(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){at(e,t,n)}}function Ec(e,t){try{var r=e.ref;if(r!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof r=="function"?e.refCleanup=r(n):r.current=n}}catch(a){at(e,t,a)}}function ga(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(a){at(e,t,a)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(a){at(e,t,a)}else r.current=null}function WC(e){var t=e.type,r=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":r.autoFocus&&n.focus();break e;case"img":r.src?n.src=r.src:r.srcSet&&(n.srcset=r.srcSet)}}catch(a){at(e,e.return,a)}}function c0(e,t,r){try{var n=e.stateNode;Iz(n,e.type,r,t),n[Gr]=t}catch(a){at(e,e.return,a)}}function qC(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ri(e.type)||e.tag===4}function d0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qC(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Ri(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function R0(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(e,t):(t=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,t.appendChild(e),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=qa));else if(n!==4&&(n===27&&Ri(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(R0(e,t,r),e=e.sibling;e!==null;)R0(e,t,r),e=e.sibling}function Gp(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(n===27&&Ri(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(Gp(e,t,r),e=e.sibling;e!==null;)Gp(e,t,r),e=e.sibling}function YC(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);yr(t,n,r),t[gr]=e,t[Gr]=r}catch(i){at(e,e.return,i)}}var Fa=!1,Xt=!1,f0=!1,C5=typeof WeakSet=="function"?WeakSet:Set,sr=null;function vz(e,t){if(e=e.containerInfo,ox=im,e=PN(e),_x(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var a=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var o=0,l=-1,s=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var p;d!==r||a!==0&&d.nodeType!==3||(l=o+a),d!==i||n!==0&&d.nodeType!==3||(s=o+n),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===r&&++u===a&&(l=o),f===i&&++c===n&&(s=o),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}r=l===-1||s===-1?null:{start:l,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(lx={focusedElem:e,selectionRange:r},im=!1,sr=t;sr!==null;)if(t=sr,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,sr=e;else for(;sr!==null;){switch(t=sr,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(r=0;r title"))),yr(i,n,r),i[gr]=e,ur(i),n=i;break e;case"link":var o=K5("link","href",a).get(n+(r.href||""));if(o){for(var l=0;lx&&(o=x,x=h,h=o);var m=ZA(l,h),v=ZA(l,x);if(m&&v&&(p.rangeCount!==1||p.anchorNode!==m.node||p.anchorOffset!==m.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(m.node,m.offset),p.removeAllRanges(),h>x?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=l;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;lr?32:r,Oe.T=null,r=rx,rx=null;var i=Wi,o=Xa;if(er=0,ws=Wi=null,Xa=0,(Re&6)!==0)throw Error(ne(331));var l=Re;if(Re|=4,n_(i.current),e_(i,i.current,o,r),Re=l,rd(0,!1),cn&&typeof cn.onPostCommitFiberRoot=="function")try{cn.onPostCommitFiberRoot(Gc,i)}catch{}return!0}finally{et.p=a,Oe.T=n,y_(e,t)}}function O5(e,t,r){t=Dn(r,t),t=Z0(e.stateNode,t,2),e=Vi(e,t,2),e!==null&&(Zc(e,2),ya(e))}function at(e,t,r){if(e.tag===3)O5(e,e,r);else for(;t!==null;){if(t.tag===3){O5(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(Fi===null||!Fi.has(n))){e=Dn(r,e),r=jC(2),n=Vi(t,r,2),n!==null&&(IC(r,n,t,e),Zc(n,2),ya(n));break}}t=t.return}}function m0(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new xz;var a=new Set;n.set(t,a)}else a=n.get(t),a===void 0&&(a=new Set,n.set(t,a));a.has(r)||(eb=!0,a.add(r),e=Nz.bind(null,e,t,r),t.then(e,e))}function Nz(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,st===e&&(Ve&r)===r&&(Tt===4||Tt===3&&(Ve&62914560)===Ve&&300>un()-ym?(Re&2)===0&&Ss(e,0):tb|=r,bs===Ve&&(bs=0)),ya(e)}function b_(e,t){t===0&&(t=dN()),e=Ho(e,t),e!==null&&(Zc(e,t),ya(e))}function Cz(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),b_(e,r)}function _z(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(ne(314))}n!==null&&n.delete(t),b_(e,r)}function kz(e,t){return hx(e,t)}var Jp=null,Gl=null,ax=!1,Rp=!1,g0=!1,Bi=0;function ya(e){e!==Gl&&e.next===null&&(Gl===null?Jp=Gl=e:Gl=Gl.next=e),Rp=!0,ax||(ax=!0,Oz())}function rd(e,t){if(!g0&&Rp){g0=!0;do for(var r=!1,n=Jp;n!==null;){if(!t)if(e!==0){var a=n.pendingLanes;if(a===0)var i=0;else{var o=n.suspendedLanes,l=n.pingedLanes;i=(1<<31-dn(42|e)+1)-1,i&=a&~(o&~l),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(r=!0,T5(n,i))}else i=Ve,i=lm(n,n===st?i:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(i&3)===0||Xc(n,i)||(r=!0,T5(n,i));n=n.next}while(r);g0=!1}}function Ez(){w_()}function w_(){Rp=ax=!1;var e=0;Bi!==0&&Lz()&&(e=Bi);for(var t=un(),r=null,n=Jp;n!==null;){var a=n.next,i=S_(n,t);i===0?(n.next=null,r===null?Jp=a:r.next=a,a===null&&(Gl=r)):(r=n,(e!==0||(i&3)!==0)&&(Rp=!0)),n=a}er!==0&&er!==5||rd(e,!1),Bi!==0&&(Bi=0)}function S_(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes&-62914561;0l)break;var c=s.transferSize,d=s.initiatorType;c&&L5(d)&&(s=s.responseEnd,o+=c*(s"u"?null:document;function M_(e,t,r){var n=Ts;if(n&&typeof t=="string"&&t){var a=Mn(t);a='link[rel="'+e+'"][href="'+a+'"]',typeof r=="string"&&(a+='[crossorigin="'+r+'"]'),W5.has(a)||(W5.add(a),e={rel:e,crossOrigin:r,href:t},n.querySelector(a)===null&&(t=n.createElement("link"),yr(t,"link",e),ur(t),n.head.appendChild(t)))}}function Yz(e){ti.D(e),M_("dns-prefetch",e,null)}function Kz(e,t){ti.C(e,t),M_("preconnect",e,t)}function Gz(e,t,r){ti.L(e,t,r);var n=Ts;if(n&&e&&t){var a='link[rel="preload"][as="'+Mn(t)+'"]';t==="image"&&r&&r.imageSrcSet?(a+='[imagesrcset="'+Mn(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(a+='[imagesizes="'+Mn(r.imageSizes)+'"]')):a+='[href="'+Mn(e)+'"]';var i=a;switch(t){case"style":i=As(e);break;case"script":i=Ms(e)}zn.has(i)||(e=vt({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),zn.set(i,e),n.querySelector(a)!==null||t==="style"&&n.querySelector(nd(i))||t==="script"&&n.querySelector(ad(i))||(t=n.createElement("link"),yr(t,"link",e),ur(t),n.head.appendChild(t)))}}function Xz(e,t){ti.m(e,t);var r=Ts;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",a='link[rel="modulepreload"][as="'+Mn(n)+'"][href="'+Mn(e)+'"]',i=a;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=Ms(e)}if(!zn.has(i)&&(e=vt({rel:"modulepreload",href:e},t),zn.set(i,e),r.querySelector(a)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(ad(i)))return}n=r.createElement("link"),yr(n,"link",e),ur(n),r.head.appendChild(n)}}}function Zz(e,t,r){ti.S(e,t,r);var n=Ts;if(n&&e){var a=ls(n).hoistableStyles,i=As(e);t=t||"default";var o=a.get(i);if(!o){var l={loading:0,preload:null};if(o=n.querySelector(nd(i)))l.loading=5;else{e=vt({rel:"stylesheet",href:e,"data-precedence":t},r),(r=zn.get(i))&&ib(e,r);var s=o=n.createElement("link");ur(s),yr(s,"link",e),s._p=new Promise(function(u,c){s.onload=u,s.onerror=c}),s.addEventListener("load",function(){l.loading|=1}),s.addEventListener("error",function(){l.loading|=2}),l.loading|=4,Ep(o,t,n)}o={type:"stylesheet",instance:o,count:1,state:l},a.set(i,o)}}}function Qz(e,t){ti.X(e,t);var r=Ts;if(r&&e){var n=ls(r).hoistableScripts,a=Ms(e),i=n.get(a);i||(i=r.querySelector(ad(a)),i||(e=vt({src:e,async:!0},t),(t=zn.get(a))&&ob(e,t),i=r.createElement("script"),ur(i),yr(i,"link",e),r.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},n.set(a,i))}}function Jz(e,t){ti.M(e,t);var r=Ts;if(r&&e){var n=ls(r).hoistableScripts,a=Ms(e),i=n.get(a);i||(i=r.querySelector(ad(a)),i||(e=vt({src:e,async:!0,type:"module"},t),(t=zn.get(a))&&ob(e,t),i=r.createElement("script"),ur(i),yr(i,"link",e),r.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},n.set(a,i))}}function q5(e,t,r,n){var a=(a=$i.current)?rm(a):null;if(!a)throw Error(ne(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=As(r.href),r=ls(a).hoistableStyles,n=r.get(t),n||(n={type:"style",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){e=As(r.href);var i=ls(a).hoistableStyles,o=i.get(e);if(o||(a=a.ownerDocument||a,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,o),(i=a.querySelector(nd(e)))&&!i._p&&(o.instance=i,o.state.loading=5),zn.has(e)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},zn.set(e,r),i||Rz(a,e,r,o.state))),t&&n===null)throw Error(ne(528,""));return o}if(t&&n!==null)throw Error(ne(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ms(r),r=ls(a).hoistableScripts,n=r.get(t),n||(n={type:"script",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(ne(444,e))}}function As(e){return'href="'+Mn(e)+'"'}function nd(e){return'link[rel="stylesheet"]['+e+"]"}function D_(e){return vt({},e,{"data-precedence":e.precedence,precedence:null})}function Rz(e,t,r,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),yr(t,"link",r),ur(t),e.head.appendChild(t))}function Ms(e){return'[src="'+Mn(e)+'"]'}function ad(e){return"script[async]"+e}function Y5(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+Mn(r.href)+'"]');if(n)return t.instance=n,ur(n),n;var a=vt({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),ur(n),yr(n,"style",a),Ep(n,r.precedence,e),t.instance=n;case"stylesheet":a=As(r.href);var i=e.querySelector(nd(a));if(i)return t.state.loading|=4,t.instance=i,ur(i),i;n=D_(r),(a=zn.get(a))&&ib(n,a),i=(e.ownerDocument||e).createElement("link"),ur(i);var o=i;return o._p=new Promise(function(l,s){o.onload=l,o.onerror=s}),yr(i,"link",n),t.state.loading|=4,Ep(i,r.precedence,e),t.instance=i;case"script":return i=Ms(r.src),(a=e.querySelector(ad(i)))?(t.instance=a,ur(a),a):(n=r,(a=zn.get(i))&&(n=vt({},r),ob(n,a)),e=e.ownerDocument||e,a=e.createElement("script"),ur(a),yr(a,"link",n),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(ne(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Ep(n,r.precedence,e));return t.instance}function Ep(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=n.length?n[n.length-1]:null,i=a,o=0;o title"):null)}function e7(e,t,r){if(r===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function P_(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function t7(e,t,r,n){if(r.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var a=As(n.href),i=t.querySelector(nd(a));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=nm.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=i,ur(i);return}i=t.ownerDocument||t,n=D_(n),(a=zn.get(a))&&ib(n,a),i=i.createElement("link"),ur(i);var o=i;o._p=new Promise(function(l,s){o.onload=l,o.onerror=s}),yr(i,"link",n),r.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=nm.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var x0=0;function r7(e,t){return e.stylesheets&&e.count===0&&Tp(e,e.stylesheets),0x0?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(a)}}:null}function nm(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Tp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var am=null;function Tp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,am=new Map,t.forEach(n7,e),am=null,nm.call(e))}function n7(e,t){if(!(t.state.loading&4)){var r=am.get(e);if(r)var n=r.get(null);else{r=new Map,am.set(e,r);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i{"use strict";function V_(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(V_)}catch(e){console.error(e)}}V_(),F_.exports=H_()});var Vk=Ar(Hk=>{"use strict";var Xs=R();function K7(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var G7=typeof Object.is=="function"?Object.is:K7,X7=Xs.useState,Z7=Xs.useEffect,Q7=Xs.useLayoutEffect,J7=Xs.useDebugValue;function R7(e,t){var r=t(),n=X7({inst:{value:r,getSnapshot:t}}),a=n[0].inst,i=n[1];return Q7(function(){a.value=r,a.getSnapshot=t,Wb(a)&&i({inst:a})},[e,r,t]),Z7(function(){return Wb(a)&&i({inst:a}),e(function(){Wb(a)&&i({inst:a})})},[e]),J7(r),r}function Wb(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!G7(e,r)}catch{return!0}}function e9(e,t){return t()}var t9=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?e9:R7;Hk.useSyncExternalStore=Xs.useSyncExternalStore!==void 0?Xs.useSyncExternalStore:t9});var Wk=Ar((bte,Fk)=>{"use strict";Fk.exports=Vk()});var Yk=Ar(qk=>{"use strict";var sg=R(),r9=Wk();function n9(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var a9=typeof Object.is=="function"?Object.is:n9,i9=r9.useSyncExternalStore,o9=sg.useRef,l9=sg.useEffect,s9=sg.useMemo,u9=sg.useDebugValue;qk.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var i=o9(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=s9(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&o.hasValue){var g=o.value;if(a(g,p))return d=g}return d=p}if(g=d,a9(c,p))return g;var h=n(p);return a!==void 0&&a(g,h)?(c=p,g):(c=p,d=h)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=i9(e,i[0],i[1]);return l9(function(){o.hasValue=!0,o.value=l},[l]),u9(l),l}});var Gk=Ar((Ste,Kk)=>{"use strict";Kk.exports=Yk()});var zO=Ar(IO=>{"use strict";var Ad=R();function pB(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var mB=typeof Object.is=="function"?Object.is:pB,gB=Ad.useSyncExternalStore,vB=Ad.useRef,hB=Ad.useEffect,yB=Ad.useMemo,xB=Ad.useDebugValue;IO.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var i=vB(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=yB(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&o.hasValue){var g=o.value;if(a(g,p))return d=g}return d=p}if(g=d,mB(c,p))return g;var h=n(p);return a!==void 0&&a(g,h)?(c=p,g):(c=p,d=h)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=gB(e,i[0],i[1]);return hB(function(){o.hasValue=!0,o.value=l},[l]),xB(l),l}});var BO=Ar((wne,LO)=>{"use strict";LO.exports=zO()});var L1=Ar((l4,cv)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,a="[DecimalError] ",i=a+"Invalid argument: ",o=a+"Exponent out of range: ",l=Math.floor,s=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,f=7,p=9007199254740991,g=l(p/f),h={};h.absoluteValue=h.abs=function(){var w=new this.constructor(this);return w.s&&(w.s=1),w},h.comparedTo=h.cmp=function(w){var O,E,C,S,T=this;if(w=new T.constructor(w),T.s!==w.s)return T.s||-w.s;if(T.e!==w.e)return T.e>w.e^T.s<0?1:-1;for(C=T.d.length,S=w.d.length,O=0,E=Cw.d[O]^T.s<0?1:-1;return C===S?0:C>S^T.s<0?1:-1},h.decimalPlaces=h.dp=function(){var w=this,O=w.d.length-1,E=(O-w.e)*f;if(O=w.d[O],O)for(;O%10==0;O/=10)E--;return E<0?0:E},h.dividedBy=h.div=function(w){return y(this,new this.constructor(w))},h.dividedToIntegerBy=h.idiv=function(w){var O=this,E=O.constructor;return z(y(O,new E(w),0,1),E.precision)},h.equals=h.eq=function(w){return!this.cmp(w)},h.exponent=function(){return k(this)},h.greaterThan=h.gt=function(w){return this.cmp(w)>0},h.greaterThanOrEqualTo=h.gte=function(w){return this.cmp(w)>=0},h.isInteger=h.isint=function(){return this.e>this.d.length-2},h.isNegative=h.isneg=function(){return this.s<0},h.isPositive=h.ispos=function(){return this.s>0},h.isZero=function(){return this.s===0},h.lessThan=h.lt=function(w){return this.cmp(w)<0},h.lessThanOrEqualTo=h.lte=function(w){return this.cmp(w)<1},h.logarithm=h.log=function(w){var O,E=this,C=E.constructor,S=C.precision,T=S+5;if(w===void 0)w=new C(10);else if(w=new C(w),w.s<1||w.eq(c))throw Error(a+"NaN");if(E.s<1)throw Error(a+(E.s?"NaN":"-Infinity"));return E.eq(c)?new C(0):(n=!1,O=y(_(E,T),_(w,T),T),n=!0,z(O,S))},h.minus=h.sub=function(w){var O=this;return w=new O.constructor(w),O.s==w.s?$(O,w):x(O,(w.s=-w.s,w))},h.modulo=h.mod=function(w){var O,E=this,C=E.constructor,S=C.precision;if(w=new C(w),!w.s)throw Error(a+"NaN");return E.s?(n=!1,O=y(E,w,0,1).times(w),n=!0,E.minus(O)):z(new C(E),S)},h.naturalExponential=h.exp=function(){return b(this)},h.naturalLogarithm=h.ln=function(){return _(this)},h.negated=h.neg=function(){var w=new this.constructor(this);return w.s=-w.s||0,w},h.plus=h.add=function(w){var O=this;return w=new O.constructor(w),O.s==w.s?x(O,w):$(O,(w.s=-w.s,w))},h.precision=h.sd=function(w){var O,E,C,S=this;if(w!==void 0&&w!==!!w&&w!==1&&w!==0)throw Error(i+w);if(O=k(S)+1,C=S.d.length-1,E=C*f+1,C=S.d[C],C){for(;C%10==0;C/=10)E--;for(C=S.d[0];C>=10;C/=10)E++}return w&&O>E?O:E},h.squareRoot=h.sqrt=function(){var w,O,E,C,S,T,F,X=this,J=X.constructor;if(X.s<1){if(!X.s)return new J(0);throw Error(a+"NaN")}for(w=k(X),n=!1,S=Math.sqrt(+X),S==0||S==1/0?(O=v(X.d),(O.length+w)%2==0&&(O+="0"),S=Math.sqrt(O),w=l((w+1)/2)-(w<0||w%2),S==1/0?O="5e"+w:(O=S.toExponential(),O=O.slice(0,O.indexOf("e")+1)+w),C=new J(O)):C=new J(S.toString()),E=J.precision,S=F=E+3;;)if(T=C,C=T.plus(y(X,T,F+2)).times(.5),v(T.d).slice(0,F)===(O=v(C.d)).slice(0,F)){if(O=O.slice(F-3,F+1),S==F&&O=="4999"){if(z(T,E+1,0),T.times(T).eq(X)){C=T;break}}else if(O!="9999")break;F+=4}return n=!0,z(C,E)},h.times=h.mul=function(w){var O,E,C,S,T,F,X,J,se,ce=this,ge=ce.constructor,Te=ce.d,ie=(w=new ge(w)).d;if(!ce.s||!w.s)return new ge(0);for(w.s*=ce.s,E=ce.e+w.e,J=Te.length,se=ie.length,J=0;){for(O=0,S=J+C;S>C;)X=T[S]+ie[C]*Te[S-C-1]+O,T[S--]=X%d|0,O=X/d|0;T[S]=(T[S]+O)%d|0}for(;!T[--F];)T.pop();return O?++E:T.shift(),w.d=T,w.e=E,n?z(w,ge.precision):w},h.toDecimalPlaces=h.todp=function(w,O){var E=this,C=E.constructor;return E=new C(E),w===void 0?E:(m(w,0,t),O===void 0?O=C.rounding:m(O,0,8),z(E,w+k(E)+1,O))},h.toExponential=function(w,O){var E,C=this,S=C.constructor;return w===void 0?E=U(C,!0):(m(w,0,t),O===void 0?O=S.rounding:m(O,0,8),C=z(new S(C),w+1,O),E=U(C,!0,w+1)),E},h.toFixed=function(w,O){var E,C,S=this,T=S.constructor;return w===void 0?U(S):(m(w,0,t),O===void 0?O=T.rounding:m(O,0,8),C=z(new T(S),w+k(S)+1,O),E=U(C.abs(),!1,w+k(C)+1),S.isneg()&&!S.isZero()?"-"+E:E)},h.toInteger=h.toint=function(){var w=this,O=w.constructor;return z(new O(w),k(w)+1,O.rounding)},h.toNumber=function(){return+this},h.toPower=h.pow=function(w){var O,E,C,S,T,F,X=this,J=X.constructor,se=12,ce=+(w=new J(w));if(!w.s)return new J(c);if(X=new J(X),!X.s){if(w.s<1)throw Error(a+"Infinity");return X}if(X.eq(c))return X;if(C=J.precision,w.eq(c))return z(X,C);if(O=w.e,E=w.d.length-1,F=O>=E,T=X.s,F){if((E=ce<0?-ce:ce)<=p){for(S=new J(c),O=Math.ceil(C/f+4),n=!1;E%2&&(S=S.times(X),G(S.d,O)),E=l(E/2),E!==0;)X=X.times(X),G(X.d,O);return n=!0,w.s<0?new J(c).div(S):z(S,C)}}else if(T<0)throw Error(a+"NaN");return T=T<0&&w.d[Math.max(O,E)]&1?-1:1,X.s=1,n=!1,S=w.times(_(X,C+se)),n=!0,S=b(S),S.s=T,S},h.toPrecision=function(w,O){var E,C,S=this,T=S.constructor;return w===void 0?(E=k(S),C=U(S,E<=T.toExpNeg||E>=T.toExpPos)):(m(w,1,t),O===void 0?O=T.rounding:m(O,0,8),S=z(new T(S),w,O),E=k(S),C=U(S,w<=E||E<=T.toExpNeg,w)),C},h.toSignificantDigits=h.tosd=function(w,O){var E=this,C=E.constructor;return w===void 0?(w=C.precision,O=C.rounding):(m(w,1,t),O===void 0?O=C.rounding:m(O,0,8)),z(new C(E),w,O)},h.toString=h.valueOf=h.val=h.toJSON=function(){var w=this,O=k(w),E=w.constructor;return U(w,O<=E.toExpNeg||O>=E.toExpPos)};function x(w,O){var E,C,S,T,F,X,J,se,ce=w.constructor,ge=ce.precision;if(!w.s||!O.s)return O.s||(O=new ce(w)),n?z(O,ge):O;if(J=w.d,se=O.d,F=w.e,S=O.e,J=J.slice(),T=F-S,T){for(T<0?(C=J,T=-T,X=se.length):(C=se,S=F,X=J.length),F=Math.ceil(ge/f),X=F>X?F+1:X+1,T>X&&(T=X,C.length=1),C.reverse();T--;)C.push(0);C.reverse()}for(X=J.length,T=se.length,X-T<0&&(T=X,C=se,se=J,J=C),E=0;T;)E=(J[--T]=J[T]+se[T]+E)/d|0,J[T]%=d;for(E&&(J.unshift(E),++S),X=J.length;J[--X]==0;)J.pop();return O.d=J,O.e=S,n?z(O,ge):O}function m(w,O,E){if(w!==~~w||wE)throw Error(i+w)}function v(w){var O,E,C,S=w.length-1,T="",F=w[0];if(S>0){for(T+=F,O=1;OF?1:-1;else for(X=J=0;XS[X]?1:-1;break}return J}function E(C,S,T){for(var F=0;T--;)C[T]-=F,F=C[T]1;)C.shift()}return function(C,S,T,F){var X,J,se,ce,ge,Te,ie,_e,W,q,A,I,K,L,ye,xe,we,Pe,Ir=C.constructor,Yf=C.s==S.s?1:-1,da=C.d,Kt=S.d;if(!C.s)return new Ir(C);if(!S.s)throw Error(a+"Division by zero");for(J=C.e-S.e,we=Kt.length,ye=da.length,ie=new Ir(Yf),_e=ie.d=[],se=0;Kt[se]==(da[se]||0);)++se;if(Kt[se]>(da[se]||0)&&--J,T==null?I=T=Ir.precision:F?I=T+(k(C)-k(S))+1:I=T,I<0)return new Ir(0);if(I=I/f+2|0,se=0,we==1)for(ce=0,Kt=Kt[0],I++;(se1&&(Kt=w(Kt,ce),da=w(da,ce),we=Kt.length,ye=da.length),L=we,W=da.slice(0,we),q=W.length;q=d/2&&++xe;do ce=0,X=O(Kt,W,we,q),X<0?(A=W[0],we!=q&&(A=A*d+(W[1]||0)),ce=A/xe|0,ce>1?(ce>=d&&(ce=d-1),ge=w(Kt,ce),Te=ge.length,q=W.length,X=O(ge,W,Te,q),X==1&&(ce--,E(ge,we16)throw Error(o+k(w));if(!w.s)return new ce(c);for(O==null?(n=!1,X=ge):X=O,F=new ce(.03125);w.abs().gte(.1);)w=w.times(F),se+=5;for(C=Math.log(s(2,se))/Math.LN10*2+5|0,X+=C,E=S=T=new ce(c),ce.precision=X;;){if(S=z(S.times(w),X),E=E.times(++J),F=T.plus(y(S,E,X)),v(F.d).slice(0,X)===v(T.d).slice(0,X)){for(;se--;)T=z(T.times(T),X);return ce.precision=ge,O==null?(n=!0,z(T,ge)):T}T=F}}function k(w){for(var O=w.e*f,E=w.d[0];E>=10;E/=10)O++;return O}function N(w,O,E){if(O>w.LN10.sd())throw n=!0,E&&(w.precision=E),Error(a+"LN10 precision limit exceeded");return z(new w(w.LN10),O)}function D(w){for(var O="";w--;)O+="0";return O}function _(w,O){var E,C,S,T,F,X,J,se,ce,ge=1,Te=10,ie=w,_e=ie.d,W=ie.constructor,q=W.precision;if(ie.s<1)throw Error(a+(ie.s?"NaN":"-Infinity"));if(ie.eq(c))return new W(0);if(O==null?(n=!1,se=q):se=O,ie.eq(10))return O==null&&(n=!0),N(W,se);if(se+=Te,W.precision=se,E=v(_e),C=E.charAt(0),T=k(ie),Math.abs(T)<15e14){for(;C<7&&C!=1||C==1&&E.charAt(1)>3;)ie=ie.times(w),E=v(ie.d),C=E.charAt(0),ge++;T=k(ie),C>1?(ie=new W("0."+E),T++):ie=new W(C+"."+E.slice(1))}else return J=N(W,se+2,q).times(T+""),ie=_(new W(C+"."+E.slice(1)),se-Te).plus(J),W.precision=q,O==null?(n=!0,z(ie,q)):ie;for(X=F=ie=y(ie.minus(c),ie.plus(c),se),ce=z(ie.times(ie),se),S=3;;){if(F=z(F.times(ce),se),J=X.plus(y(F,new W(S),se)),v(J.d).slice(0,se)===v(X.d).slice(0,se))return X=X.times(2),T!==0&&(X=X.plus(N(W,se+2,q).times(T+""))),X=y(X,new W(ge),se),W.precision=q,O==null?(n=!0,z(X,q)):X;X=J,S+=2}}function M(w,O){var E,C,S;for((E=O.indexOf("."))>-1&&(O=O.replace(".","")),(C=O.search(/e/i))>0?(E<0&&(E=C),E+=+O.slice(C+1),O=O.substring(0,C)):E<0&&(E=O.length),C=0;O.charCodeAt(C)===48;)++C;for(S=O.length;O.charCodeAt(S-1)===48;)--S;if(O=O.slice(C,S),O){if(S-=C,E=E-C-1,w.e=l(E/f),w.d=[],C=(E+1)%f,E<0&&(C+=f),Cg||w.e<-g))throw Error(o+E)}else w.s=0,w.e=0,w.d=[0];return w}function z(w,O,E){var C,S,T,F,X,J,se,ce,ge=w.d;for(F=1,T=ge[0];T>=10;T/=10)F++;if(C=O-F,C<0)C+=f,S=O,se=ge[ce=0];else{if(ce=Math.ceil((C+1)/f),T=ge.length,ce>=T)return w;for(se=T=ge[ce],F=1;T>=10;T/=10)F++;C%=f,S=C-f+F}if(E!==void 0&&(T=s(10,F-S-1),X=se/T%10|0,J=O<0||ge[ce+1]!==void 0||se%T,J=E<4?(X||J)&&(E==0||E==(w.s<0?3:2)):X>5||X==5&&(E==4||J||E==6&&(C>0?S>0?se/s(10,F-S):0:ge[ce-1])%10&1||E==(w.s<0?8:7))),O<1||!ge[0])return J?(T=k(w),ge.length=1,O=O-T-1,ge[0]=s(10,(f-O%f)%f),w.e=l(-O/f)||0):(ge.length=1,ge[0]=w.e=w.s=0),w;if(C==0?(ge.length=ce,T=1,ce--):(ge.length=ce+1,T=s(10,f-C),ge[ce]=S>0?(se/s(10,F-S)%s(10,S)|0)*T:0),J)for(;;)if(ce==0){(ge[0]+=T)==d&&(ge[0]=1,++w.e);break}else{if(ge[ce]+=T,ge[ce]!=d)break;ge[ce--]=0,T=1}for(C=ge.length;ge[--C]===0;)ge.pop();if(n&&(w.e>g||w.e<-g))throw Error(o+k(w));return w}function $(w,O){var E,C,S,T,F,X,J,se,ce,ge,Te=w.constructor,ie=Te.precision;if(!w.s||!O.s)return O.s?O.s=-O.s:O=new Te(w),n?z(O,ie):O;if(J=w.d,ge=O.d,C=O.e,se=w.e,J=J.slice(),F=se-C,F){for(ce=F<0,ce?(E=J,F=-F,X=ge.length):(E=ge,C=se,X=J.length),S=Math.max(Math.ceil(ie/f),X)+2,F>S&&(F=S,E.length=1),E.reverse(),S=F;S--;)E.push(0);E.reverse()}else{for(S=J.length,X=ge.length,ce=S0;--S)J[X++]=0;for(S=ge.length;S>F;){if(J[--S]0?T=T.charAt(0)+"."+T.slice(1)+D(C):F>1&&(T=T.charAt(0)+"."+T.slice(1)),T=T+(S<0?"e":"e+")+S):S<0?(T="0."+D(-S-1)+T,E&&(C=E-F)>0&&(T+=D(C))):S>=F?(T+=D(S+1-F),E&&(C=E-S-1)>0&&(T=T+"."+D(C))):((C=S+1)0&&(S+1===F&&(T+="."),T+=D(C))),w.s<0?"-"+T:T}function G(w,O){if(w.length>O)return w.length=O,!0}function j(w){var O,E,C;function S(T){var F=this;if(!(F instanceof S))return new S(T);if(F.constructor=S,T instanceof S){F.s=T.s,F.e=T.e,F.d=(T=T.d)?T.slice():T;return}if(typeof T=="number"){if(T*0!==0)throw Error(i+T);if(T>0)F.s=1;else if(T<0)T=-T,F.s=-1;else{F.s=0,F.e=0,F.d=[0];return}if(T===~~T&&T<1e7){F.e=0,F.d=[T];return}return M(F,T.toString())}else if(typeof T!="string")throw Error(i+T);if(T.charCodeAt(0)===45?(T=T.slice(1),F.s=-1):F.s=1,u.test(T))M(F,T);else throw Error(i+T)}if(S.prototype=h,S.ROUND_UP=0,S.ROUND_DOWN=1,S.ROUND_CEIL=2,S.ROUND_FLOOR=3,S.ROUND_HALF_UP=4,S.ROUND_HALF_DOWN=5,S.ROUND_HALF_EVEN=6,S.ROUND_HALF_CEIL=7,S.ROUND_HALF_FLOOR=8,S.clone=j,S.config=S.set=V,w===void 0&&(w={}),w)for(C=["precision","rounding","toExpNeg","toExpPos","LN10"],O=0;O=S[O+1]&&C<=S[O+2])this[E]=C;else throw Error(i+E+": "+C);if((C=w[E="LN10"])!==void 0)if(C==Math.LN10)this[E]=new this(C);else throw Error(i+E+": "+C);return this}r=j(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof cv<"u"&&cv.exports?cv.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(l4)});var l8=Ar((Kpe,Tw)=>{"use strict";var tq=Object.prototype.hasOwnProperty,Vr="~";function cf(){}Object.create&&(cf.prototype=Object.create(null),new cf().__proto__||(Vr=!1));function rq(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function o8(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var i=new rq(r,n||e,a),o=Vr?Vr+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],i]:e._events[o].push(i):(e._events[o]=i,e._eventsCount++),e}function Oh(e,t){--e._eventsCount===0?e._events=new cf:delete e._events[t]}function Tr(){this._events=new cf,this._eventsCount=0}Tr.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)tq.call(r,n)&&t.push(Vr?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Tr.prototype.listeners=function(t){var r=Vr?Vr+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,o=new Array(i);aGe.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},Ge.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},Ge.default.createElement("g",{fillRule:"nonzero"},Ge.default.createElement("path",{d:"M421,271.3 C422.733,265.1 423.667,244.633 423.8,209.9 C423.9,173.4 423.8,142.1 423.5,140.4 C423.1,137.9 412.5,126.8 373.1,87.2 C345.6,59.7 321.7,36.3 319.8,35.3 C316.7,33.6 312.5,33.5 250,33.5 C186.5,33.5 183.3,33.6 178.2,35.4 C173.5,37.2 168.3,42.1 125.2,85.3 C69.3,141.4 75.6,134.9 73.7,138.7 C72.3,141.3 72,147.2 71.8,178.6 C71.3,243.6 71.8,276 73.4,276 C74.067,276 99.6,304.854 150,362.563 L350.015,362.563 L421,271.3 Z",fill:"#EB5555",stroke:"#000000",strokeWidth:"12"})),Ge.default.createElement("path",{d:"M216.5,202.5 C213.4,199.5 213.4,198.7 216.5,193.4 C223.2,182 248.2,176 264.5,181.9 C273,185 280.3,190.1 282.4,194.5 C284,197.9 284,198.3 282.5,200.6 C281.6,202 279.8,203.6 278.5,204.2 C276.4,205.1 275.4,204.7 270.1,200.8 C263,195.4 254.7,193.3 244.4,194.4 C236.1,195.3 234.3,196 228.6,200.9 C223.1,205.6 220,206.1 216.5,202.5 Z",fill:"#000000",fillRule:"nonzero"}),Ge.default.createElement("path",{d:"M177.8,484.5 C169.1,482.1 162,475.2 157.7,465 C156.2,461.4 151.9,446.6 148.1,432 C144.3,417.4 140.7,404.3 140.1,402.8 L139,400 L94.8,400 C70.4,400 49.5,399.7 48.2,399.4 C45.1,398.5 42.7,393.8 43.9,390.8 C45.1,387.9 49.4,383.3 54,379.9 C68.7,369.2 86.3,364.8 120,363.4 C126.067,363.2 134.065,362.921 143.995,362.563 L350.015,362.563 C367.433,363.767 377.5,364.1 377.5,364.1 C411,365.2 433.1,371.5 446.2,383.8 C453.8,390.9 455.1,394.7 451.3,399 C451,399.3 429.6,399.7 403.7,400 L356.6,400.5 L353.3,412.5 C351.5,419.1 348.2,431.3 346.1,439.5 C339.9,463 336.7,470.5 329.4,477.5 C322.9,483.8 315.7,486.3 305.5,485.8 C298.1,485.4 296.1,484.7 280.5,477.8 C271.2,473.7 261.7,469.7 259.5,468.9 C250.9,466.1 238.1,467.9 224.9,473.8 C197.3,486.1 189.8,487.8 177.8,484.5 Z",stroke:"#000000",strokeWidth:"11",fill:"#000000",fillRule:"nonzero"}),Ge.default.createElement("g",{transform:"translate(75.105, 196.182)"},Ge.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),Ge.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),Ge.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),Ge.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),Ge.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),Ge.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),Ge.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),Ge.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),Ge.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},Ge.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},Ge.default.createElement("path",{d:"M346.895,99.881 L335.287,108.67 L292.495,108.67 L211.805,108.67 C194.861,92.394 186.922,84.257 187.99,84.257 C188.99,84.257 187.689,77.518 187.99,71.118 C188.99,54.518 196.996,38.618 211.805,23.818 C219.711,15.918 222.813,13.518 230.118,10.018 C242.025,4.118 250.431,1.818 262.839,1.118 C274.147,0.518 285.354,2.218 295.561,6.018 C308.67,10.918 327.482,26.818 335.287,39.618 C342.092,50.918 346.895,65.818 346.895,76.018 C346.895,82.818 346.895,90.772 346.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),Ge.default.createElement("path",{d:"M158.895,99.881 L147.295,108.67 L104.531,108.67 L23.895,108.67 C6.961,92.394 -0.972,84.257 0.095,84.257 C1.095,84.257 -0.205,77.518 0.095,71.118 C1.095,54.518 9.095,38.618 23.895,23.818 C31.795,15.918 34.895,13.518 42.195,10.018 C54.095,4.118 62.495,1.818 74.895,1.118 C86.195,0.518 97.395,2.218 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 C158.895,82.818 158.895,90.772 158.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),Ge.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},Ge.default.createElement("path",{d:"M187.895,73.418 C187.895,60.818 195.095,43.418 205.495,30.818 C213.379,21.259 220.29,15.351 230.066,10.615 C233.275,8.66 236.386,7.08 239.229,6.018 C246.892,3.165 255.119,1.496 263.529,1.095 C267.063,0.859 270.58,0.912 274.131,1.261 C285.374,2.105 293.475,4.47 304.672,10.018 C311.734,13.402 314.868,15.757 322.213,23.049 L322.795,23.618 C326.306,27.085 329.397,30.586 332.082,34.15 L332.148,34.235 C341.116,45.994 346.03,58.349 346.8,71.118 C346.957,74.467 346.676,77.909 346.515,80.429 C346.693,80.646 346.917,80.701 347.195,80.618 C347.366,80.542 348.039,80.501 349.213,80.495 L349.775,80.495 C352.888,80.507 358.769,80.715 367.418,81.118 C374.646,86.469 378.26,91.703 378.26,96.818 C378.26,101.933 374.646,107.042 367.418,112.146 L15.403,112.146 L-20.38,113.348 C-27.807,110.322 -31.52,105.629 -31.52,99.27 C-31.52,92.911 -27.807,88.087 -20.38,84.798 C-13.63,84.605 -8.537,84.463 -5.101,84.373 C-5.115,84.296 -5.084,84.257 -5.01,84.257 C-4.01,84.257 -5.311,77.518 -5.01,71.118 C-4.01,54.518 3.996,38.618 18.805,23.818 C26.711,15.918 29.813,13.518 37.118,10.018 C49.025,4.118 57.431,1.818 69.839,1.118 C72.166,0.994 74.489,0.968 76.8,1.038 C76.165,1.058 75.53,1.084 74.895,1.118 C62.495,1.818 54.095,4.118 42.195,10.018 C34.895,13.518 31.795,15.918 23.895,23.818 C9.095,38.618 1.095,54.518 0.095,71.118 C-0.205,77.518 1.095,84.257 0.095,84.257 C-0.4,84.257 -2.131,84.296 -5.101,84.373 C-4.938,85.42 3.031,93.518 18.805,108.67 L142.287,108.67 L153.895,99.881 L153.895,76.018 C153.895,65.818 149.092,50.918 142.287,39.618 C134.482,26.818 115.67,10.918 102.561,6.018 C94.455,3 85.717,1.307 76.8,1.038 C87.451,0.716 97.968,2.432 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 L158.895,80.418 L164.995,80.418 C168.395,80.118 174.995,79.818 179.495,79.818 L187.895,79.818 L187.895,99.881 L199.502,108.67 L322.984,108.67 C339.929,92.394 347.867,84.257 346.8,84.257 C346.323,84.257 346.369,82.725 346.515,80.429 C346.051,79.868 345.895,78.223 345.895,75.118 C345.895,59.873 341.479,46.625 332.082,34.15 L331.696,33.647 C329.117,30.321 326.212,27.043 322.984,23.818 C322.722,23.556 322.465,23.299 322.213,23.049 C316.441,17.437 312.579,14.708 306.095,11.418 C294.424,5.583 284.144,2.245 274.131,1.261 C273.417,1.207 272.691,1.16 271.95,1.118 C269.132,0.968 266.321,0.962 263.529,1.095 C257.389,1.506 251.198,2.792 244.695,4.918 C239.073,6.731 234.301,8.563 230.066,10.615 C218.478,17.668 205.615,29.594 199.502,39.618 C192.698,50.917 187.895,65.817 187.895,76.017 L187.895,73.418 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000"})),Ge.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},Ge.default.createElement("path",{d:"M12.837,35.288 C13.137,33.988 14.437,31.888 15.637,30.788 L17.837,28.788 L15.637,26.788 C14.437,25.688 13.137,23.588 12.837,22.288 C12.037,19.088 10.637,19.088 9.437,22.188 C8.937,23.488 7.537,25.588 6.237,26.788 C4.037,28.788 4.037,28.988 5.737,29.988 C6.837,30.488 8.237,32.488 9.037,34.388 C10.737,38.388 11.937,38.688 12.837,35.288 Z M29.237,33.088 C30.137,29.688 31.837,27.088 34.937,24.088 L39.337,19.888 L36.337,17.788 C33.437,15.588 28.437,7.288 28.437,4.288 C28.437,2.188 26.537,2.388 25.837,4.588 C23.937,10.388 21.637,14.388 18.337,17.188 L14.537,20.388 L17.337,22.088 C19.837,23.588 24.337,30.988 25.837,36.088 C26.737,39.088 27.937,37.988 29.237,33.088 Z M10.937,12.488 L13.037,9.288 L10.937,6.088 C8.837,2.788 7.437,1.888 7.437,3.988 C7.437,4.588 6.537,6.088 5.437,7.288 L3.437,9.488 L5.437,11.288 C6.537,12.288 7.437,13.688 7.437,14.488 C7.437,16.688 8.837,15.888 10.937,12.488 Z"}),Ge.default.createElement("path",{d:"M203.437,36.388 C203.437,35.588 204.637,33.588 206.037,31.888 L208.637,28.788 L206.037,25.688 C204.637,23.988 203.437,21.988 203.437,21.188 C203.437,18.588 201.437,19.788 200.037,23.188 C199.237,25.088 197.837,27.088 196.737,27.688 C195.037,28.688 195.037,28.788 197.037,30.188 C198.237,30.988 199.737,33.088 200.437,34.788 C201.737,37.888 203.437,38.788 203.437,36.388 Z M220.837,32.588 C221.937,29.288 224.237,25.788 226.737,23.388 C229.737,20.488 230.537,19.288 229.437,18.988 C226.637,17.988 222.437,12.588 220.737,7.688 C219.737,4.988 218.737,2.788 218.337,2.788 C218.037,2.788 216.737,5.288 215.537,8.288 C214.337,11.288 211.737,15.088 209.837,16.688 C205.937,20.188 205.637,21.388 208.437,22.288 C210.937,23.088 214.737,28.788 216.437,34.088 C217.037,36.088 217.937,37.788 218.237,37.788 C218.637,37.788 219.837,35.388 220.837,32.588 Z M201.137,14.088 C201.437,13.088 202.437,11.488 203.337,10.488 C204.337,9.288 204.537,8.388 203.837,7.988 C203.237,7.588 202.237,6.288 201.537,5.088 C200.137,2.388 198.837,2.188 198.037,4.588 C197.737,5.488 196.937,6.988 196.337,7.888 C195.337,9.288 195.437,9.888 196.737,11.288 C197.637,12.188 198.437,13.588 198.437,14.388 C198.437,16.388 200.337,16.188 201.137,14.088 Z"}))));function At({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:a="",hat:i,hatAccessory:o,heldItem:l,theme:s,customColors:u}){return Ge.default.createElement("div",{className:`inline-flex flex-col items-center ${a}`},n&&t.length>0&&Ge.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Fo[c];return d?Ge.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),Ge.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500",width:e,height:e,role:"img","aria-label":"Active Agent mascot"},Ge.default.createElement("title",null,"ActiveAgent"),Ge.default.createElement(d7,null)),n&&r.length>0&&Ge.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=Wo[c];return d?Ge.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var Zr=Q(R());var ea=Q(R()),q_=(0,ea.createContext)();function Y_({children:e}){let[t,r]=(0,ea.useState)(()=>{let a=localStorage.getItem("dashboard-theme");return a?a==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches});(0,ea.useEffect)(()=>{localStorage.setItem("dashboard-theme",t?"dark":"light")},[t]),(0,ea.useEffect)(()=>{let a=window.matchMedia("(prefers-color-scheme: dark)"),i=o=>{localStorage.getItem("dashboard-theme")||r(o.matches)};return a.addEventListener("change",i),()=>a.removeEventListener("change",i)},[]);let n=()=>r(!t);return ea.default.createElement(q_.Provider,{value:{darkMode:t,toggleDarkMode:n}},e)}function Ze(){let e=(0,ea.useContext)(q_);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function Ps({name:e,subtitle:t,badge:r,accentColor:n,stats:a=[],footer:i,onClick:o,actions:l}){let{darkMode:s}=Ze(),[u,c]=Zr.default.useState(!1),d={cardBg:s?"rgba(255,255,255,0.05)":"#ffffff",border:s?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:s?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:s?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:s?"#f9fafb":"#111827",textSecondary:s?"#9ca3af":"#6b7280",textMuted:s?"#6b7280":"#9ca3af"},f=p=>p==="good"?s?"#4ade80":"#16a34a":p==="warn"?s?"#facc15":"#ca8a04":p==="bad"?s?"#f87171":"#dc2626":p==="muted"?d.textMuted:d.textPrimary;return Zr.default.createElement("div",{"data-testid":"agent-card","data-agent-name":typeof e=="string"?e:void 0,onClick:o,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:o?"button":void 0,tabIndex:o?0:void 0,onKeyDown:p=>{o&&(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),o(p))},style:{background:d.cardBg,borderTop:`1px solid ${u?d.borderHover:d.border}`,borderRight:`1px solid ${u?d.borderHover:d.border}`,borderBottom:`1px solid ${u?d.borderHover:d.border}`,borderLeft:n?`4px solid ${n}`:`1px solid ${u?d.borderHover:d.border}`,borderRadius:"12px",padding:"16px",cursor:o?"pointer":"default",transition:"border-color 0.15s ease, box-shadow 0.15s ease",boxShadow:u&&o?"0 4px 16px rgba(0,0,0,0.08)":"none",display:"flex",flexDirection:"column",gap:"12px"}},Zr.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},Zr.default.createElement("div",{style:{minWidth:0}},Zr.default.createElement("div",{style:{fontWeight:600,fontSize:"15px",color:u&&o?"#ef4444":d.textPrimary,transition:"color 0.15s ease",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e},e),t&&Zr.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&Zr.default.createElement("div",{style:{flexShrink:0}},r)),a.length>0&&Zr.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},a.map(p=>Zr.default.createElement("div",{key:p.label,title:p.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},Zr.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:f(p.tone)}},p.value),Zr.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},p.label)))),i&&Zr.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},i),l&&Zr.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},l))}function db(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var f7=[{value:"recent",label:"Recently updated"},{value:"popular",label:"Most runs"},{value:"longest",label:"Longest average"},{value:"cost",label:"Highest cost"},{value:"tokens",label:"Most tokens"}];function fb({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:a,onDuplicate:i,onDelete:o,onRefresh:l,sort:s="recent",onSortChange:u,isLoading:c}){let[d,f]=(0,Ne.useState)(""),[p,g]=(0,Ne.useState)(""),[h,x]=(0,Ne.useState)(""),m=e.filter(_=>{let M=!d||_.name.toLowerCase().includes(d.toLowerCase())||_.description?.toLowerCase().includes(d.toLowerCase()),z=!p||_.provider===p,$=!h||_.status===h;return M&&z&&$}),v=_=>{let M=new Date(_),$=new Date-M,U=Math.floor($/(1e3*60*60*24));return U===0?"Today":U===1?"Yesterday":U<7?`${U} days ago`:M.toLocaleDateString()},y=_=>{switch(_){case"active":return"bg-green-100 text-green-700";case"draft":return"bg-yellow-100 text-yellow-700";case"archived":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},b=_=>_==null?"\u2014":_<1e3?`${Math.round(_)}ms`:`${(_/1e3).toFixed(1)}s`,k=_=>_==null?"\u2014":_>=1e6?`${(_/1e6).toFixed(1)}M`:_>=1e3?`${(_/1e3).toFixed(1)}k`:`${_}`,N=_=>_==null?"\u2014":_>0&&_<.01?"<$0.01":`$${_.toFixed(2)}`,D=_=>{if(!_)return"\u2014";let M=Math.floor((new Date-new Date(_))/(1e3*60*60*24));return M<=0?"Today":M<30?`${M}d ago`:new Date(_).toLocaleDateString()};return Ne.default.createElement("div",{className:"space-y-6"},Ne.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},Ne.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},Ne.default.createElement("div",{className:"relative flex-1 max-w-md"},Ne.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:_=>f(_.target.value),className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),Ne.default.createElement("svg",{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"}))),Ne.default.createElement("select",{value:p,onChange:_=>g(_.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Ne.default.createElement("option",{value:""},"All Providers"),t.providers?.map(_=>Ne.default.createElement("option",{key:_,value:_},_.charAt(0).toUpperCase()+_.slice(1)))),Ne.default.createElement("select",{value:h,onChange:_=>x(_.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Ne.default.createElement("option",{value:""},"All Status"),Ne.default.createElement("option",{value:"active"},"Active"),Ne.default.createElement("option",{value:"draft"},"Draft"),Ne.default.createElement("option",{value:"archived"},"Archived")),Ne.default.createElement("select",{value:s,onChange:_=>u?.(_.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500",title:"Rank agents by their scorecard"},f7.map(_=>Ne.default.createElement("option",{key:_.value,value:_.value},_.label)))),Ne.default.createElement("div",{className:"flex items-center space-x-3"},Ne.default.createElement("button",{onClick:l,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},Ne.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))),Ne.default.createElement("button",{onClick:a,className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors"},Ne.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),Ne.default.createElement("span",null,"Browse Templates")),Ne.default.createElement("button",{onClick:n,className:"flex items-center space-x-2 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},Ne.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Ne.default.createElement("span",null,"New Agent")))),m.length>0?Ne.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},m.map(_=>{let M=_.stats||{},z=M.run_sources||[],$=z.length?`Counted from ${z.map(U=>U==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return Ne.default.createElement(Ps,{key:_.id,name:_.name,subtitle:_.description||"No description",badge:Ne.default.createElement("span",{className:`px-2 py-0.5 text-xs font-medium rounded-full ${y(_.status)}`},_.status),onClick:()=>r(_),stats:[{label:`Runs ${M.window_days||30}d`,value:M.runs??0,title:$},{label:"Success",value:M.success_rate!=null?`${Math.round(M.success_rate)}%`:"\u2014",tone:db(M.success_rate!=null?M.success_rate/100:null)},{label:"Avg time",value:b(M.avg_duration_ms)},{label:M.eval_samples_evaluated?`Eval ${M.eval_samples_passed}/${M.eval_samples_evaluated}`:"Eval",title:M.eval_samples_evaluated?`Latest evaluation: ${M.eval_samples_passed} of ${M.eval_samples_evaluated} samples passed`:void 0,value:M.eval_score!=null?`${Math.round(M.eval_score*100)}%`:"\u2014",tone:db(M.eval_score)},{label:"Tokens",value:k(M.tokens)},{label:"Cost",value:N(M.cost),title:"Estimated from token counts at each model's published rates",tone:M.cost==null?"muted":void 0}],footer:Ne.default.createElement(Ne.default.Fragment,null,Ne.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},Ne.default.createElement("span",{style:{padding:"2px 6px",borderRadius:"4px",background:"rgba(128,128,128,0.15)",whiteSpace:"nowrap",flexShrink:0}},_.provider),Ne.default.createElement("span",{title:_.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},_.model)),Ne.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${v(_.updatedAt||_.updated_at)}`},M.last_run_at?`Last run ${D(M.last_run_at)}`:`Updated ${v(_.updatedAt||_.updated_at)}`)),actions:Ne.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},Ne.default.createElement("button",{onClick:U=>{U.stopPropagation(),i(_.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),Ne.default.createElement("button",{onClick:U=>{U.stopPropagation(),o(_.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):Ne.default.createElement("div",{className:"text-center py-16"},Ne.default.createElement("div",{className:"inline-block mb-4"},Ne.default.createElement(At,{size:100})),Ne.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),Ne.default.createElement("p",{className:"text-gray-500 mb-6"},e.length===0?"Create your first AI agent to get started":"Try adjusting your search or filters"),e.length===0&&Ne.default.createElement("div",{className:"flex items-center justify-center space-x-4"},Ne.default.createElement("button",{onClick:a,className:"inline-flex items-center space-x-2 px-6 py-3 border-2 border-red-500 text-red-600 rounded-lg hover:bg-red-50 transition-colors"},Ne.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),Ne.default.createElement("span",null,"Browse Templates")),Ne.default.createElement("span",{className:"text-gray-400"},"or"),Ne.default.createElement("button",{onClick:n,className:"inline-flex items-center space-x-2 px-6 py-3 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},Ne.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Ne.default.createElement("span",null,"Create From Scratch")))))}var oe=Q(R());var $t={chevronRight:">",chevronDown:"v",chevronUp:"^",arrow:"->",arrowLeft:"<-",pipe:"|",corner:"+",branch:"|-",success:"[+]",error:"[!]",warning:"[?]",info:"[i]",pending:"[ ]",active:"[*]",add:"+",remove:"-",edit:"*",view:"@",run:">",stop:"x",refresh:"~",trace:"->",span:"|",metric:"#",log:">",agent:"@",action:"#",time:":",cost:"$",tokens:"T",memory:"M",nav:{agents:"@",newAgent:"+",demo:">",traces:"->",metrics:"#",evaluations:"=",interactions:"<>",benchmarks:"%%",replay:"[>]",tools:"[]",mcp:"{}",docs:"?",github:"*"},spans:{root:">",prompt:"*",generate:"|>",llm:">>",thinking:"..",tool:"[]",response:"<|"}};var Ee={mono:"'SF Mono', 'Fira Code', 'Consolas', monospace",sizes:{xs:"10px",sm:"11px",base:"13px",md:"14px",lg:"16px",xl:"20px",xxl:"24px"},weights:{normal:400,medium:500,semibold:600,bold:700}};var js={openai:["gpt-5.1","gpt-5","gpt-5-mini","gpt-5-nano"],anthropic:["claude-opus-5","claude-fable-5","claude-sonnet-5","claude-opus-4-8","claude-haiku-4-5"],ollama:["qwen3:8b","llama3.2","mistral","gemma3"],openrouter:["anthropic/claude-sonnet-4.5","openai/gpt-5.1","meta-llama/llama-3.3-70b-instruct"]};async function Nm(e){try{let t=await fetch(`/api/provider_models?provider=${encodeURIComponent(e)}`);if(t.ok){let r=await t.json();if(Array.isArray(r.models)&&r.models.length>0)return r.models}}catch{}return js[e]||[]}var Cm=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}];function pb({meta:e,onSave:t,onCancel:r,isLoading:n}){let[a,i]=(0,oe.useState)(0),[o,l]=(0,oe.useState)(js),[s,u]=(0,oe.useState)({name:"",description:"",provider:"openai",model:js.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],model_config:{temperature:.7}});(0,oe.useEffect)(()=>{let h=!1;return Nm(s.provider).then(x=>{h||x.length===0||(l(m=>({...m,[s.provider]:x})),u(m=>x.includes(m.model)?m:{...m,model:x[0]}))}),()=>{h=!0}},[s.provider]);let c=(h,x)=>{u(m=>({...m,[h]:x}))},d=(h,x)=>{u(m=>{let v=m[h]||[],y=v.includes(x)?v.filter(b=>b!==x):[...v,x];return{...m,[h]:y}})},f=h=>{if(c("preset_type",h),Ds[h]){let x=Ds[h];c("instruction_sets",[...x.instructions]),c("tools",[...x.tools])}},p=()=>{switch(a){case 0:return s.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},g=()=>{t(s)};return oe.default.createElement("div",{className:"max-w-4xl mx-auto"},oe.default.createElement("div",{className:"mb-8"},oe.default.createElement("div",{className:"flex items-center justify-between"},Cm.map((h,x)=>oe.default.createElement("div",{key:h.id,className:"flex items-center"},oe.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${xi(a-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},a===0?"Cancel":"Back"),oe.default.createElement("button",{onClick:a===Cm.length-1?g:()=>i(a+1),disabled:!p()||n,className:`px-6 py-2 rounded-lg transition-colors ${p()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},a===Cm.length-1?"Create Agent":"Continue")))}function p7({formData:e,updateField:t,providerModels:r}){return oe.default.createElement("div",{className:"space-y-6"},oe.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),oe.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),oe.default.createElement("div",{className:"space-y-4"},oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),oe.default.createElement("input",{type:"text",value:e.name,onChange:n=>t("name",n.target.value),placeholder:"My Awesome Agent",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"})),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),oe.default.createElement("textarea",{value:e.description,onChange:n=>t("description",n.target.value),placeholder:"What does this agent do?",rows:3,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"})),oe.default.createElement("div",{className:"grid grid-cols-2 gap-4"},oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),oe.default.createElement("select",{value:e.provider,onChange:n=>{t("provider",n.target.value),t("model",r[n.target.value][0])},className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Object.keys(r).map(n=>oe.default.createElement("option",{key:n,value:n},n.charAt(0).toUpperCase()+n.slice(1))))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),oe.default.createElement("select",{value:e.model,onChange:n=>t("model",n.target.value),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},r[e.provider].map(n=>oe.default.createElement("option",{key:n,value:n},n))))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),oe.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:n=>t("model_config",{...e.model_config,temperature:parseFloat(n.target.value)}),className:"w-full accent-red-500"}),oe.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},oe.default.createElement("span",null,"Precise"),oe.default.createElement("span",null,"Creative")))))}function m7({formData:e,meta:t,toggleArrayItem:r,updateField:n,selectPreset:a}){let i=Object.keys(Ds),o=Object.keys(Fo),l=Object.keys(Wo);return oe.default.createElement("div",{className:"space-y-6"},oe.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),oe.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),oe.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},oe.default.createElement("div",{className:"flex flex-col items-center"},oe.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(s=>{let u=Fo[s];return u?oe.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})),oe.default.createElement(At,{size:120}),oe.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(s=>{let u=Wo[s];return u?oe.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),oe.default.createElement("div",{className:"flex flex-wrap gap-2"},i.map(s=>oe.default.createElement("button",{key:s,onClick:()=>a(s),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===s?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},oe.default.createElement("span",{className:"capitalize"},s.replace(/([A-Z])/g," $1").trim()))))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},oe.default.createElement("strong",null,"Instructions"),oe.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),oe.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map(s=>{let u=Fo[s];return oe.default.createElement("button",{key:s,onClick:()=>r("instruction_sets",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},oe.default.createElement("span",null,u.emoji),oe.default.createElement("span",null,u.label))}))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},oe.default.createElement("strong",null,"Tools"),oe.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"MCPs and integrations")),oe.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(s=>{let u=Wo[s];return oe.default.createElement("button",{key:s,onClick:()=>r("tools",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.tools.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},oe.default.createElement("span",null,u.emoji),oe.default.createElement("span",null,u.label))}))),oe.default.createElement("div",null,oe.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),oe.default.createElement("textarea",{value:e.instructions,onChange:s=>n("instructions",s.target.value),placeholder:"You are a helpful AI assistant that...",rows:4,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent font-mono text-sm"})))}function g7({formData:e}){return oe.default.createElement("div",{className:"space-y-6"},oe.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),oe.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),oe.default.createElement("div",{className:"grid grid-cols-2 gap-8"},oe.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},oe.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(t=>{let r=Fo[t];return r?oe.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),oe.default.createElement(At,{size:100}),oe.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(t=>{let r=Wo[t];return r?oe.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),oe.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),oe.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),oe.default.createElement("div",{className:"space-y-4"},oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),oe.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),oe.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),oe.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(t=>{let r=Fo[t];return r?oe.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},r.emoji," ",r.label):null}):oe.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),oe.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(t=>{let r=Wo[t];return r?oe.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r.emoji," ",r.label):null}):oe.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&oe.default.createElement("div",null,oe.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),oe.default.createElement("pre",{className:"mt-2 p-4 bg-gray-50 rounded-lg text-sm text-gray-700 whitespace-pre-wrap font-mono"},e.instructions)))}var Z=Q(R());var Is=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",borderStrong:e?"rgba(255,255,255,0.2)":"#d1d5db",mutedBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",textPrimary:e?"#ffffff":"#111827",textCell:e?"rgba(255,255,255,0.75)":"#4b5563",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:e?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:e?"rgba(255,255,255,0.2)":"#d1d5db",trackBg:e?"rgba(255,255,255,0.1)":"#f3f4f6"}),ta="#ef4444";var P=Q(R());var _m=Q(R()),Q_=Q(R());function K_(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{var r=e.children,n=e.width,a=e.height,i=e.viewBox,o=e.className,l=e.style,s=e.title,u=e.desc,c=b7(e,x7),d=i||{width:n,height:a,x:0,y:0},f=De("recharts-surface",o);return _m.createElement("svg",vb({},Ut(c),{className:f,width:n,height:a,style:l,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),_m.createElement("title",null,s),_m.createElement("desc",null,u),r)});var km=Q(R());var S7=["children","className"];function yb(){return yb=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,a=A7(e,S7),i=De("recharts-layer",n);return km.createElement("g",yb({className:i},Ut(a),{ref:t}),r)});function Em(e){return e==="__proto__"}var C7=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function Om(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:C7.test(e);default:return!1}}function zs(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function xb(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(xb).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function Ls(e){if(Array.isArray(e))return e.map(zs);if(typeof e=="symbol")return[e];e=xb(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",i="",o=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:k7,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function nr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var l=r[o-1];return typeof l=="string"?a+l+i:l!==void 0?a+xa(l)+i:a+i},"")}var ar=e=>e===0?0:e>0?1:-1,Cr=e=>typeof e=="number"&&e!=+e,ri=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,ve=e=>(typeof e=="number"||e instanceof Number)&&!Cr(e),$r=e=>ve(e)||typeof e=="string",E7=0,ni=e=>{var t=++E7;return"".concat(e||"").concat(t)},Ln=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!ve(t)&&typeof t!="string")return n;var i;if(ri(t)){if(r==null)return n;var o=t.indexOf("%");i=r*parseFloat(t.slice(0,o))/100}else i=+t;return Cr(i)&&(i=n),a&&r!=null&&i>r&&(i=r),i},bb=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):gn(n,t))===r)}var Nt=e=>e===null||typeof e>"u",Bs=e=>Nt(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function ir(e){return e!=null}function ra(){}function od(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function J_(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ba(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,a=n===void 0?0:n,i=e.parentViewBox,o=e.clamp,l=od(t),s=l.x,u=l.y,c=l.height,d=l.upperWidth,f=l.lowerWidth,p=s,g=s+(d-f)/2,h=(p+g)/2,x=(d+f)/2,m=p+d/2,v=c>=0?1:-1,y=v*a,b=v>0?"end":"start",k=v>0?"start":"end",N=d>=0?1:-1,D=N*a,_=N>0?"end":"start",M=N>0?"start":"end",z=i;if(r==="top"){var $={x:p+d/2,y:u-y,horizontalAnchor:"middle",verticalAnchor:b};return o&&z&&($.height=Math.max(u-z.y,0),$.width=d),$}if(r==="bottom"){var U={x:g+f/2,y:u+c+y,horizontalAnchor:"middle",verticalAnchor:k};return o&&z&&(U.height=Math.max(z.y+z.height-(u+c),0),U.width=f),U}if(r==="left"){var G={x:h-D,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"};return o&&z&&(G.width=Math.max(G.x-z.x,0),G.height=c),G}if(r==="right"){var j={x:h+x+D,y:u+c/2,horizontalAnchor:M,verticalAnchor:"middle"};return o&&z&&(j.width=Math.max(z.x+z.width-j.x,0),j.height=c),j}var V=o&&z?{width:x,height:c}:{};return r==="insideLeft"?ba({x:h+D,y:u+c/2,horizontalAnchor:M,verticalAnchor:"middle"},V):r==="insideRight"?ba({x:h+x-D,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"},V):r==="insideTop"?ba({x:p+d/2,y:u+y,horizontalAnchor:"middle",verticalAnchor:k},V):r==="insideBottom"?ba({x:g+f/2,y:u+c-y,horizontalAnchor:"middle",verticalAnchor:b},V):r==="insideTopLeft"?ba({x:p+D,y:u+y,horizontalAnchor:M,verticalAnchor:k},V):r==="insideTopRight"?ba({x:p+d-D,y:u+y,horizontalAnchor:_,verticalAnchor:k},V):r==="insideBottomLeft"?ba({x:g+D,y:u+c-y,horizontalAnchor:M,verticalAnchor:b},V):r==="insideBottomRight"?ba({x:g+f-D,y:u+c-y,horizontalAnchor:_,verticalAnchor:b},V):r&&typeof r=="object"&&(ve(r.x)||ri(r.x))&&(ve(r.y)||ri(r.y))?ba({x:s+Ln(r.x,x),y:u+Ln(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},V):ba({x:m,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},V)},D7=["top","left","right","bottom"];function ek(e){return e==null?!1:typeof e=="object"?!0:D7.includes(e)}var wb=Q(R()),tk=(0,wb.createContext)(null);function ht(e){return function(){return e}}var Sb=Math.PI,Ab=2*Sb,qo=1e-6,P7=Ab-qo;function rk(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return rk;let r=10**t;return function(n){this._+=n[0];for(let a=1,i=n.length;aqo)if(!(Math.abs(d*s-u*c)>qo)||!i)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-o,g=a-l,h=s*s+u*u,x=p*p+g*g,m=Math.sqrt(h),v=Math.sqrt(f),y=i*Math.tan((Sb-Math.acos((h+f-x)/(2*m*v)))/2),b=y/v,k=y/m;Math.abs(b-1)>qo&&this._append`L${t+b*c},${r+b*d}`,this._append`A${i},${i},0,0,${+(d*p>c*g)},${this._x1=t+k*s},${this._y1=r+k*u}`}}arc(t,r,n,a,i,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(a),s=n*Math.sin(a),u=t+l,c=r+s,d=1^o,f=o?a-i:i-a;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>qo||Math.abs(this._y1-c)>qo)&&this._append`L${u},${c}`,n&&(f<0&&(f=f%Ab+Ab),f>P7?this._append`A${n},${n},0,1,${d},${t-l},${r-s}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:f>qo&&this._append`A${n},${n},0,${+(f>=Sb)},${d},${this._x1=t+n*Math.cos(i)},${this._y1=r+n*Math.sin(i)}`)}rect(t,r,n,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+a}h${-n}Z`}toString(){return this._}};function nk(){return new Yo}nk.prototype=Yo.prototype;function Mm(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Yo(t)}var UJ=Array.prototype.slice;function $s(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ak(e){this._context=e}ak.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function to(e){return new ak(e)}function Dm(e){return e[0]}function Pm(e){return e[1]}function ld(e,t){var r=ht(!0),n=null,a=to,i=null,o=Mm(l);e=typeof e=="function"?e:e===void 0?Dm:ht(e),t=typeof t=="function"?t:t===void 0?Pm:ht(t);function l(s){var u,c=(s=$s(s)).length,d,f=!1,p;for(n==null&&(i=a(p=o())),u=0;u<=c;++u)!(u=p;--g)l.point(y[g],b[g]);l.lineEnd(),l.areaEnd()}m&&(y[f]=+e(x,f,d),b[f]=+t(x,f,d),l.point(n?+n(x,f,d):y[f],r?+r(x,f,d):b[f]))}if(v)return l=null,v+""||null}function c(){return ld().defined(a).curve(o).context(i)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:ht(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:ht(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:ht(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:ht(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:ht(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:ht(+d),u):r},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(r)},u.lineX1=function(){return c().x(n).y(t)},u.defined=function(d){return arguments.length?(a=typeof d=="function"?d:ht(!!d),u):a},u.curve=function(d){return arguments.length?(o=d,i!=null&&(l=o(i)),u):o},u.context=function(d){return arguments.length?(d==null?i=l=null:l=o(i=d),u):i},u}var jm=class{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}};function Nb(e){return new jm(e,!0)}function Cb(e){return new jm(e,!1)}function Hs(){}function Vs(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function ik(e){this._context=e}ik.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Vs(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Vs(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function _b(e){return new ik(e)}function ok(e){this._context=e}ok.prototype={areaStart:Hs,areaEnd:Hs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Vs(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function kb(e){return new ok(e)}function lk(e){this._context=e}lk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Vs(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Eb(e){return new lk(e)}function sk(e){this._context=e}sk.prototype={areaStart:Hs,areaEnd:Hs,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function Ob(e){return new sk(e)}function uk(e){return e<0?-1:1}function ck(e,t,r){var n=e._x1-e._x0,a=t-e._x1,i=(e._y1-e._y0)/(n||a<0&&-0),o=(r-e._y1)/(a||n<0&&-0),l=(i*a+o*n)/(n+a);return(uk(i)+uk(o))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs(l))||0}function dk(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Tb(e,t,r){var n=e._x0,a=e._y0,i=e._x1,o=e._y1,l=(i-n)/3;e._context.bezierCurveTo(n+l,a+l*t,i-l,o-l*r,i,o)}function Im(e){this._context=e}Im.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Tb(this,this._t0,dk(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Tb(this,dk(this,r=ck(this,e,t)),r);break;default:Tb(this,this._t0,r=ck(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function fk(e){this._context=new pk(e)}(fk.prototype=Object.create(Im.prototype)).point=function(e,t){Im.prototype.point.call(this,t,e)};function pk(e){this._context=e}pk.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,a,i){this._context.bezierCurveTo(t,e,n,r,i,a)}};function Mb(e){return new Im(e)}function Db(e){return new fk(e)}function gk(e){this._context=e}gk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=mk(e),a=mk(t),i=0,o=1;o=0;--t)a[t]=(o[t]-a[t+1])/i[t];for(i[r-1]=(e[r]+a[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function jb(e){return new zm(e,.5)}function Ib(e){return new zm(e,0)}function zb(e){return new zm(e,1)}function vn(e,t){if((o=e.length)>1)for(var r=1,n,a,i=e[t[0]],o,l=i.length;r=0;)r[t]=t;return r}function I7(e,t){return e[t]}function z7(e){let t=[];return t.key=e,t}function Lb(){var e=ht([]),t=Fs,r=vn,n=I7;function a(i){var o=Array.from(e.apply(this,arguments),z7),l,s=o.length,u=-1,c;for(let d of i)for(l=0,++u;l0){for(var r,n,a=0,i=e[0].length,o;a0){for(var r=0,n=e[t[0]],a,i=n.length;r0)||!((i=(a=e[t[0]]).length)>0))){for(var r=0,n=1,a,i,o;n"radius"in e&&"startAngle"in e&&"endAngle"in e,Ws=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,vk.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(a=>{id(a)&&typeof r[a]=="function"&&(n[a]=t||(i=>r[a](r,i)))}),n},L7=(e,t,r)=>n=>(e(t,r,n),null),hk=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(a=>{var i=e[a];id(a)&&typeof i=="function"&&(n||(n={}),n[a]=L7(i,t,r))}),n};function yk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function B7(e){for(var t=1;t(o[l]===void 0&&n[l]!==void 0&&(o[l]=n[l]),o),r);return i}function xk(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function ai(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var $m="[object RegExp]",qs="[object String]",Ys="[object Number]",Ks="[object Boolean]",Um="[object Arguments]",Hm="[object Symbol]",Vm="[object Date]",Fm="[object Map]",Wm="[object Set]",qm="[object Array]",Ak="[object Function]",Ym="[object ArrayBuffer]",Gs="[object Object]",Nk="[object Error]",Km="[object DataView]",Gm="[object Uint8Array]",Xm="[object Uint8ClampedArray]",Zm="[object Uint16Array]",Qm="[object Uint32Array]",Ck="[object BigUint64Array]",Jm="[object Int8Array]",Rm="[object Int16Array]",eg="[object Int32Array]",_k="[object BigInt64Array]",tg="[object Float32Array]",rg="[object Float64Array]";var Hb=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function cd(e){return typeof Hb.Buffer<"u"&&Hb.Buffer.isBuffer(e)}function kk(e,t){return ro(e,void 0,e,new Map,t)}function ro(e,t,r,n=new Map,a=void 0){let i=a?.(e,t,r,n);if(i!==void 0)return i;if(sd(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let o=new Array(e.length);n.set(e,o);for(let l=0;l{}):Vb(e,t,function n(a,i,o,l,s,u){let c=r(a,i,o,l,s,u);return c!==void 0?!!c:Vb(a,i,n,u,!1)},new Map,!0)}function Vb(e,t,r,n,a=!1){if(t===e)return!0;switch(typeof t){case"object":return F7(e,t,r,n);case"function":return Object.keys(t).length>0?Vb(e,{...t},r,n,a):no(e,t);default:return ng(e)?a?typeof t=="string"?t==="":!0:no(e,t):no(e,t)}}function F7(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return Ok(e,t,r,n);if(t instanceof Map)return W7(e,t,r,n);if(t instanceof Set)return q7(e,t,r,n);let a=Object.keys(t);if(e==null||sd(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let i=0;i{})}function Tk(e){return e=Ek(e),t=>ag(t,e)}function Mk(e,t){return kk(e,(r,n,a,i)=>{let o=t?.(r,n,a,i);if(o!==void 0)return o;if(typeof e=="object"){if(ai(e)==="[object Object]"&&typeof e.constructor!="function"){let l={};return i.set(e,l),$n(l,e,a,i),l}switch(Object.prototype.toString.call(e)){case Ys:case qs:case Ks:{let l=new e.constructor(e?.valueOf());return $n(l,e),l}case Um:{let l={};return $n(l,e),l.length=e.length,l[Symbol.iterator]=e[Symbol.iterator],l}default:return}}})}function Dk(e){return Mk(e)}var Y7=/^(?:0|[1-9]\d*)$/;function ig(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function og(e){return e!=null&&typeof e!="function"&&Lk(e.length)}function Bk(e){return typeof e=="object"&&e!==null}function $k(e){return Bk(e)&&og(e)}function lg(e,t=Bm){return $k(e)?xk(Array.from(e),bk(zk(t),1)):[]}function Uk(e,t,r){return t===!0?lg(e,r):typeof t=="function"?lg(e,t):e}var Zk=Q(Gk()),fd=Q(R());var Xk=Q(R()),dd=(0,Xk.createContext)(null);var c9=e=>e,$e=()=>{var e=(0,fd.useContext)(dd);return e?e.store.dispatch:c9},ug=()=>{},d9=()=>ug,f9=(e,t)=>e===t;function be(e){var t=(0,fd.useContext)(dd),r=(0,fd.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:ug,[t,e]);return(0,Zk.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:d9,t?t.store.getState:ug,t?t.store.getState:ug,r,f9)}function p9(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function m9(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){let r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var Qk=e=>Array.isArray(e)?e:[e];function g9(e){let t=Array.isArray(e[0])?e[0]:e;return m9(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function v9(e,t){let r=[],{length:n}=e;for(let a=0;atypeof WeakRef>"u"?h9:WeakRef,Rk=y9(),x9=0,Jk=1;function cg(){return{s:x9,v:void 0,o:null,p:null}}function b9(e){return e instanceof Rk?e.deref():e}function eE(e,t={}){let r=cg(),{resultEqualityCheck:n}=t,a,i=0;function o(){let l=r,{length:s}=arguments;for(let d=0,f=s;d{r=cg(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function w9(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...a)=>{let i=0,o=0,l,s={},u=a.pop();typeof u=="object"&&(s=u,u=a.pop()),p9(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...s},{memoize:d,memoizeOptions:f=[],argsMemoize:p=eE,argsMemoizeOptions:g=[]}=c,h=Qk(f),x=Qk(g),m=g9(a),v=d(function(){return i++,u.apply(null,arguments)},...h),y=!0,b=p(function(){o++;let N=v9(m,arguments);return l=v.apply(null,N),l},...x);return Object.assign(b,{resultFunc:u,memoizedResultFunc:v,dependencies:m,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>l,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:d,argsMemoize:p})};return Object.assign(n,{withTypes:()=>n}),n}var Y=w9(eE);function tE(e,t=1){let r=[],n=Math.floor(t),a=(i,o)=>{for(let l=0;l{if(e!==t){let n=rE(e),a=rE(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};function dg(e){return typeof e=="symbol"||e instanceof Symbol}var S9=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A9=/^\w*$/;function aE(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||dg(e)?!0:typeof e=="string"&&(A9.test(e)||!S9.test(e))||t!=null&&Object.hasOwn(t,e)}function iE(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(l=>String(l));let a=(l,s)=>{let u=l;for(let c=0;cs==null||l==null?s:typeof l=="object"&&"key"in l?Object.hasOwn(s,l.key)?s[l.key]:a(s,l.path):typeof l=="function"?l(s):Array.isArray(l)?a(s,l):typeof s=="object"?s[l]:s,o=t.map(l=>(Array.isArray(l)&&l.length===1&&(l=l[0]),l==null||typeof l=="function"||Array.isArray(l)||aE(l)?l:{key:l,path:Ls(l)}));return e.map(l=>({original:l,criteria:o.map(s=>i(s,l))})).slice().sort((l,s)=>{for(let u=0;ul.original)}function ii(e,...t){let r=t.length;return r>1&&pd(e,t[0],t[1])?t=[]:r>2&&pd(t[0],t[1],t[2])&&(t=[t[0]]),iE(e,tE(t),["asc"])}var qb=e=>e.legend.settings,oE=e=>e.legend.size,N9=e=>e.legend.payload,Zte=Y([N9,qb],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?ii(n,r):n});var oi=Q(R());function C9(e,t){return O9(e)||E9(e,t)||k9(e,t)||_9()}function _9(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function k9(e,t){if(e){if(typeof e=="string")return lE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lE(e,t):void 0}}function lE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rfg||Math.abs(e.left-t.left)>fg||Math.abs(e.top-t.top)>fg||Math.abs(e.width-t.width)>fg}function uE(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function cE(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,oi.useState)({height:0,left:0,top:0,width:0}),r=C9(t,2),n=r[0],a=r[1],i=(0,oi.useRef)(null),o=(0,oi.useRef)(n);o.current=n;var l=(0,oi.useCallback)(s=>{if(i.current!=null&&(i.current.disconnect(),i.current=null),s!=null){var u=uE(s);if(sE(u,o.current)&&a(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=uE(s);sE(d,o.current)&&a(d)});c.observe(s),i.current=c}}},[...e]);return(0,oi.useEffect)(()=>()=>{var s;(s=i.current)===null||s===void 0||s.disconnect()},[]),[n,l]}var EO=Q(R());function xr(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var T9=typeof Symbol=="function"&&Symbol.observable||"@@observable",dE=T9,Yb=()=>Math.random().toString(36).substring(7).split("").join("."),M9={INIT:`@@redux/INIT${Yb()}`,REPLACE:`@@redux/REPLACE${Yb()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Yb()}`},pg=M9;function mg(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function Kb(e,t,r){if(typeof e!="function")throw new Error(xr(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(xr(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(xr(1));return r(Kb)(e,t)}let n=e,a=t,i=new Map,o=i,l=0,s=!1;function u(){o===i&&(o=new Map,i.forEach((x,m)=>{o.set(m,x)}))}function c(){if(s)throw new Error(xr(3));return a}function d(x){if(typeof x!="function")throw new Error(xr(4));if(s)throw new Error(xr(5));let m=!0;u();let v=l++;return o.set(v,x),function(){if(m){if(s)throw new Error(xr(6));m=!1,u(),o.delete(v),i=null}}}function f(x){if(!mg(x))throw new Error(xr(7));if(typeof x.type>"u")throw new Error(xr(8));if(typeof x.type!="string")throw new Error(xr(17));if(s)throw new Error(xr(9));try{s=!0,a=n(a,x)}finally{s=!1}return(i=o).forEach(v=>{v()}),x}function p(x){if(typeof x!="function")throw new Error(xr(10));n=x,f({type:pg.REPLACE})}function g(){let x=d;return{subscribe(m){if(typeof m!="object"||m===null)throw new Error(xr(11));function v(){let b=m;b.next&&b.next(c())}return v(),{unsubscribe:x(v)}},[dE](){return this}}}return f({type:pg.INIT}),{dispatch:f,subscribe:d,getState:c,replaceReducer:p,[dE]:g}}function D9(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:pg.INIT})>"u")throw new Error(xr(12));if(typeof r(void 0,{type:pg.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(xr(13))})}function gg(e){let t=Object.keys(e),r={};for(let o=0;o"u"){let x=s&&s.type;throw new Error(xr(14))}c[f]=h,u=u||h!==g}return u=u||n.length!==Object.keys(l).length,u?c:l}}function md(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function fE(...e){return t=>(r,n)=>{let a=t(r,n),i=()=>{throw new Error(xr(15))},o={getState:a.getState,dispatch:(s,...u)=>i(s,...u)},l=e.map(s=>s(o));return i=md(...l)(a.dispatch),{...a,dispatch:i}}}function Gb(e){return mg(e)&&"type"in e&&typeof e.type=="string"}var wE=Symbol.for("immer-nothing"),pE=Symbol.for("immer-draftable"),_r=Symbol.for("immer-state");function na(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var hn=Object,Qs=hn.getPrototypeOf,xg="constructor",Cg="prototype",Jb="configurable",bg="enumerable",hg="writable",gd="value",wa=e=>!!e&&!!e[_r];function yn(e){return e?SE(e)||kg(e)||!!e[pE]||!!e[xg]?.[pE]||Eg(e)||Og(e):!1}var P9=hn[Cg][xg].toString(),mE=new WeakMap;function SE(e){if(!e||!o1(e))return!1;let t=Qs(e);if(t===null||t===hn[Cg])return!0;let r=hn.hasOwnProperty.call(t,xg)&&t[xg];if(r===Object)return!0;if(!Zs(r))return!1;let n=mE.get(r);return n===void 0&&(n=Function.toString.call(r),mE.set(r,n)),n===P9}function _g(e,t,r=!0){yd(e)===0?(r?Reflect.ownKeys(e):hn.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function yd(e){let t=e[_r];return t?t.type_:kg(e)?1:Eg(e)?2:Og(e)?3:0}var Xb=(e,t,r=yd(e))=>r===2?e.has(t):hn[Cg].hasOwnProperty.call(e,t),Rb=(e,t,r=yd(e))=>r===2?e.get(t):e[t],wg=(e,t,r,n=yd(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function j9(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var kg=Array.isArray,Eg=e=>e instanceof Map,Og=e=>e instanceof Set,o1=e=>typeof e=="object",Zs=e=>typeof e=="function",Zb=e=>typeof e=="boolean";function I9(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var li=e=>e.copy_||e.base_;var l1=e=>e.modified_?e.copy_:e.base_;function e1(e,t){if(Eg(e))return new Map(e);if(Og(e))return new Set(e);if(kg(e))return Array[Cg].slice.call(e);let r=SE(e);if(t===!0||t==="class_only"&&!r){let n=hn.getOwnPropertyDescriptors(e);delete n[_r];let a=Reflect.ownKeys(n);for(let i=0;i1&&hn.defineProperties(e,{set:vg,add:vg,clear:vg,delete:vg}),hn.freeze(e),t&&_g(e,(r,n)=>{s1(n,!0)},!1)),e}function z9(){na(2)}var vg={[gd]:z9};function Tg(e){return e===null||!o1(e)?!0:hn.isFrozen(e)}var Sg="MapSet",t1="Patches",gE="ArrayMethods",AE={};function Ko(e){let t=AE[e];return t||na(0,e),t}var vE=e=>!!AE[e];var vd,NE=()=>vd,L9=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:vE(Sg)?Ko(Sg):void 0,arrayMethodsPlugin_:vE(gE)?Ko(gE):void 0});function hE(e,t){t&&(e.patchPlugin_=Ko(t1),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function r1(e){n1(e),e.drafts_.forEach(B9),e.drafts_=null}function n1(e){e===vd&&(vd=e.parent_)}var yE=e=>vd=L9(vd,e);function B9(e){let t=e[_r];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function xE(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[_r].modified_&&(r1(t),na(4)),yn(e)&&(e=bE(t,e));let{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(r[_r].base_,e,t)}else e=bE(t,r);return $9(t,e,!0),r1(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==wE?e:void 0}function bE(e,t){if(Tg(t))return t;let r=t[_r];if(!r)return Ag(t,e.handledSet_,e);if(!Mg(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){let{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);kE(r,e)}return r.copy_}function $9(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&s1(t,r)}function CE(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Mg=(e,t)=>e.scope_===t,U9=[];function _E(e,t,r,n){let a=li(e),i=e.type_;if(n!==void 0&&Rb(a,n,i)===t){wg(a,n,r,i);return}if(!e.draftLocations_){let l=e.draftLocations_=new Map;_g(a,(s,u)=>{if(wa(u)){let c=l.get(u)||[];c.push(s),l.set(u,c)}})}let o=e.draftLocations_.get(t)??U9;for(let l of o)wg(a,l,r,i)}function H9(e,t,r){e.callbacks_.push(function(a){let i=t;if(!i||!Mg(i,a))return;a.mapSetPlugin_?.fixSetContents(i);let o=l1(i);_E(e,i.draft_??i,o,r),kE(i,a)})}function kE(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let a=n.getPath(e);a&&n.generatePatches_(e,a,t)}CE(e)}}function V9(e,t,r){let{scope_:n}=e;if(wa(r)){let a=r[_r];Mg(a,n)&&a.callbacks_.push(function(){yg(e);let o=l1(a);_E(e,r,o,t)})}else yn(r)&&e.callbacks_.push(function(){let i=li(e);e.type_===3?i.has(r)&&Ag(r,n.handledSet_,n):Rb(i,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Ag(Rb(e.copy_,t,e.type_),n.handledSet_,n)})}function Ag(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||wa(e)||t.has(e)||!yn(e)||Tg(e)||(t.add(e),_g(e,(n,a)=>{if(wa(a)){let i=a[_r];if(Mg(i,r)){let o=l1(i);wg(e,n,o,e.type_),CE(i)}}else yn(a)&&Ag(a,t,r)})),e}function F9(e,t){let r=kg(e),n={type_:r?1:0,scope_:t?t.scope_:NE(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},a=n,i=Ng;r&&(a=[n],i=hd);let{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,[l,n]}var Ng={get(e,t){if(t===_r)return e;let r=e.scope_.arrayMethodsPlugin_,n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let a=li(e);if(!Xb(a,t,e.type_))return q9(e,a,t);let i=a[t];if(e.finalized_||!yn(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&I9(t))return i;if(i===Qb(e.base_,t)||W9(e,t,i)){yg(e);let o=e.type_===1?+t:t,l=i1(e.scope_,i,e,o);return e.copy_[o]=l}return i},has(e,t){return t in li(e)},ownKeys(e){return Reflect.ownKeys(li(e))},set(e,t,r){let n=EE(li(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let a=Qb(li(e),t),i=a?.[_r];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(j9(r,a)&&(r!==void 0||Xb(e.base_,t,e.type_)))return!0;yg(e),a1(e)}return e.copy_[t]===r&&(r!==void 0||Xb(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),V9(e,t,r)),!0},deleteProperty(e,t){return yg(e),Qb(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),a1(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=li(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[hg]:!0,[Jb]:e.type_!==1||t!=="length",[bg]:n[bg],[gd]:r[t]}},defineProperty(){na(11)},getPrototypeOf(e){return Qs(e.base_)},setPrototypeOf(){na(12)}},hd={};for(let e in Ng){let t=Ng[e];hd[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}hd.deleteProperty=function(e,t){return hd.set.call(this,e,t,void 0)};hd.set=function(e,t,r){return Ng.set.call(this,e[0],t,r,e[0])};function Qb(e,t){let r=e[_r];return(r?li(r):e)[t]}function W9(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!yn(r)||r[_r]?!1:e.baseRefs_.has(r)}function q9(e,t,r){let n=EE(t,r);return n?gd in n?n[gd]:n.get?.call(e.draft_):void 0}function EE(e,t){if(!(t in e))return;let r=Qs(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Qs(r)}}function a1(e){e.modified_||(e.modified_=!0,e.parent_&&a1(e.parent_))}function yg(e){e.copy_||(e.assigned_=new Map,e.copy_=e1(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Y9=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Zs(t)&&!Zs(r)){let i=r;r=t;let o=this;return function(s=i,...u){return o.produce(s,c=>r.call(this,c,...u))}}Zs(r)||na(6),n!==void 0&&!Zs(n)&&na(7);let a;if(yn(t)){let i=yE(this),o=i1(i,t,void 0),l=!0;try{a=r(o),l=!1}finally{l?r1(i):n1(i)}return hE(i,n),xE(a,i)}else if(!t||!o1(t)){if(a=r(t),a===void 0&&(a=t),a===wE&&(a=void 0),this.autoFreeze_&&s1(a,!0),n){let i=[],o=[];Ko(t1).generateReplacementPatches_(t,a,{patches_:i,inversePatches_:o}),n(i,o)}return a}else na(1,t)},this.produceWithPatches=(t,r)=>{if(Zs(t))return(o,...l)=>this.produceWithPatches(o,s=>t(s,...l));let n,a;return[this.produce(t,r,(o,l)=>{n=o,a=l}),n,a]},Zb(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Zb(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Zb(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){yn(e)||na(8),wa(e)&&(e=br(e));let t=yE(this),r=i1(t,e,void 0);return r[_r].isManual_=!0,n1(t),r}finishDraft(e,t){let r=e&&e[_r];(!r||!r.isManual_)&&na(9);let{scope_:n}=r;return hE(n,t),xE(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let a=t[r];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}r>-1&&(t=t.slice(r+1));let n=Ko(t1).applyPatches_;return wa(e)?n(e,t):this.produce(e,a=>n(a,t))}};function i1(e,t,r,n){let[a,i]=Eg(t)?Ko(Sg).proxyMap_(t,r):Og(t)?Ko(Sg).proxySet_(t,r):F9(t,r);return(r?.scope_??NE()).drafts_.push(a),i.callbacks_=r?.callbacks_??[],i.key_=n,r&&n!==void 0?H9(r,i,n):i.callbacks_.push(function(s){s.mapSetPlugin_?.fixSetContents(i);let{patchPlugin_:u}=s;i.modified_&&u&&u.generatePatches_(i,[],s)}),a}function br(e){return wa(e)||na(10,e),OE(e)}function OE(e){if(!yn(e)||Tg(e))return e;let t=e[_r],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=e1(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=e1(e,!0);return _g(r,(a,i)=>{wg(r,a,OE(i))},n),t&&(t.finalized_=!1),r}var K9=new Y9,u1=K9.produce;var ze=e=>e;function TE(e){return({dispatch:r,getState:n})=>a=>i=>typeof i=="function"?i(r,n,e):a(i)}var ME=TE(),DE=TE;var G9=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?md:md.apply(null,arguments)},ore=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},X9=e=>e&&typeof e.match=="function";function Jt(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(xn(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>Gb(n)&&n.type===e,r}var UE=class xd extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,xd.prototype)}static get[Symbol.species](){return xd}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new xd(...t[0].concat(this)):new xd(...t.concat(this))}};function PE(e){return yn(e)?u1(e,()=>{}):e}function Dg(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function Z9(e){return typeof e=="boolean"}var Q9=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{},o=new UE;return r&&(Z9(r)?o.push(ME):o.push(DE(r.extraArgument))),o},HE="RTK_autoBatch",rt=()=>e=>({payload:e,meta:{[HE]:!0}}),jE=e=>t=>{setTimeout(t,e)},J9=(e,t)=>r=>{let n=!1,a=()=>{n||(n=!0,cancelAnimationFrame(i),clearTimeout(o),r())},i=e(a),o=setTimeout(a,t)},p1=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),a=!0,i=!1,o=!1,l=new Set,s=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?J9(window.requestAnimationFrame,100):jE(10):e.type==="callback"?e.queueNotification:jE(e.timeout),u=()=>{o=!1,i&&(i=!1,l.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>a&&c(),f=n.subscribe(d);return l.add(c),()=>{f(),l.delete(c)}},dispatch(c){try{return a=!c?.meta?.[HE],i=!a,i&&(o||(o=!0,s(u))),n.dispatch(c)}finally{a=!0}}})},R9=e=>function(r){let{autoBatch:n=!0}=r??{},a=new UE(e);return n&&a.push(p1(typeof n=="object"?n:void 0)),a};function VE(e){let t=Q9(),{reducer:r=void 0,middleware:n,devTools:a=!0,duplicateMiddlewareCheck:i=!0,preloadedState:o=void 0,enhancers:l=void 0}=e||{},s;if(typeof r=="function")s=r;else if(mg(r))s=gg(r);else throw new Error(xn(1));let u;typeof n=="function"?u=n(t):u=t();let c=md;a&&(c=G9({trace:!1,...typeof a=="object"&&a}));let d=fE(...u),f=R9(d),p=typeof l=="function"?l(f):f(),g=c(...p);return Kb(s,o,g)}function FE(e){let t={},r=[],n,a={addCase(i,o){let l=typeof i=="string"?i:i.type;if(!l)throw new Error(xn(28));if(l in t)throw new Error(xn(29));return t[l]=o,a},addAsyncThunk(i,o){return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){return n=i,a}};return e(a),[t,r,n]}function eL(e){return typeof e=="function"}function tL(e,t){let[r,n,a]=FE(t),i;if(eL(e))i=()=>PE(e());else{let l=PE(e);i=()=>l}function o(l=i(),s){let u=[r[s.type],...n.filter(({matcher:c})=>c(s)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[a]),u.reduce((c,d)=>{if(d)if(wa(c)){let p=d(c,s);return p===void 0?c:p}else{if(yn(c))return u1(c,f=>d(f,s));{let f=d(c,s);if(f===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return f}}return c},l)}return o.getInitialState=i,o}var rL=(e,t)=>X9(e)?e.match(t):e(t);function nL(...e){return t=>e.some(r=>rL(r,t))}var aL="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",WE=(e=21)=>{let t="",r=e;for(;r--;)t+=aL[Math.random()*64|0];return t},iL=["name","message","stack","code"],c1=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},IE=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},oL=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of iL)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},zE="External signal was aborted",lL=(()=>{function e(t,r,n){let a=Jt(t+"/fulfilled",(s,u,c,d)=>({payload:s,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),i=Jt(t+"/pending",(s,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:s,requestStatus:"pending"}})),o=Jt(t+"/rejected",(s,u,c,d,f)=>({payload:d,error:(n&&n.serializeError||oL)(s||"Rejected"),meta:{...f||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:s?.name==="AbortError",condition:s?.name==="ConditionError"}}));function l(s,{signal:u}={}){return(c,d,f)=>{let p=n?.idGenerator?n.idGenerator(s):WE(),g=new AbortController,h,x;function m(y){x=y,g.abort()}u&&(u.aborted?m(zE):u.addEventListener("abort",()=>m(zE),{once:!0}));let v=(async function(){let y;try{let k=n?.condition?.(s,{getState:d,extra:f});if(uL(k)&&(k=await k),k===!1||g.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let N=new Promise((D,_)=>{h=()=>{_({name:"AbortError",message:x||"Aborted"})},g.signal.addEventListener("abort",h,{once:!0})});c(i(p,s,n?.getPendingMeta?.({requestId:p,arg:s},{getState:d,extra:f}))),y=await Promise.race([N,Promise.resolve(r(s,{dispatch:c,getState:d,extra:f,requestId:p,signal:g.signal,abort:m,rejectWithValue:((D,_)=>new c1(D,_)),fulfillWithValue:((D,_)=>new IE(D,_))})).then(D=>{if(D instanceof c1)throw D;return D instanceof IE?a(D.payload,p,s,D.meta):a(D,p,s)})])}catch(k){y=k instanceof c1?o(null,p,s,k.payload,k.meta):o(k,p,s)}finally{h&&g.signal.removeEventListener("abort",h)}return n&&!n.dispatchConditionRejection&&o.match(y)&&y.meta.condition||c(y),y})();return Object.assign(v,{abort:m,requestId:p,arg:s,unwrap(){return v.then(sL)}})}}return Object.assign(l,{pending:i,rejected:o,fulfilled:a,settled:nL(o,a),typePrefix:t})}return e.withTypes=()=>e,e})();function sL(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function uL(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var qE=Symbol.for("rtk-slice-createasyncthunk"),sre={[qE]:lL};function cL(e,t){return`${e}/${t}`}function dL({creators:e}={}){let t=e?.asyncThunk?.[qE];return function(n){let{name:a,reducerPath:i=a}=n;if(!a)throw new Error(xn(11));typeof process<"u";let o=(typeof n.reducers=="function"?n.reducers(pL()):n.reducers)||{},l=Object.keys(o),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(y,b){let k=typeof y=="string"?y:y.type;if(!k)throw new Error(xn(12));if(k in s.sliceCaseReducersByType)throw new Error(xn(13));return s.sliceCaseReducersByType[k]=b,u},addMatcher(y,b){return s.sliceMatchers.push({matcher:y,reducer:b}),u},exposeAction(y,b){return s.actionCreators[y]=b,u},exposeCaseReducer(y,b){return s.sliceCaseReducersByName[y]=b,u}};l.forEach(y=>{let b=o[y],k={reducerName:y,type:cL(a,y),createNotation:typeof n.reducers=="function"};gL(b)?hL(k,b,u,t):mL(k,b,u)});function c(){let[y={},b=[],k=void 0]=typeof n.extraReducers=="function"?FE(n.extraReducers):[n.extraReducers],N={...y,...s.sliceCaseReducersByType};return tL(n.initialState,D=>{for(let _ in N)D.addCase(_,N[_]);for(let _ of s.sliceMatchers)D.addMatcher(_.matcher,_.reducer);for(let _ of b)D.addMatcher(_.matcher,_.reducer);k&&D.addDefaultCase(k)})}let d=y=>y,f=new Map,p=new WeakMap,g;function h(y,b){return g||(g=c()),g(y,b)}function x(){return g||(g=c()),g.getInitialState()}function m(y,b=!1){function k(D){let _=D[y];return typeof _>"u"&&b&&(_=Dg(p,k,x)),_}function N(D=d){let _=Dg(f,b,()=>new WeakMap);return Dg(_,D,()=>{let M={};for(let[z,$]of Object.entries(n.selectors??{}))M[z]=fL($,D,()=>Dg(p,D,x),b);return M})}return{reducerPath:y,getSelectors:N,get selectors(){return N(k)},selectSlice:k}}let v={name:a,reducer:h,actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:x,...m(i),injectInto(y,{reducerPath:b,...k}={}){let N=b??i;return y.inject({reducerPath:N,reducer:h},k),{...v,...m(N,!0)}}};return v}}function fL(e,t,r,n){function a(i,...o){let l=t(i);return typeof l>"u"&&n&&(l=r()),e(l,...o)}return a.unwrapped=e,a}var Qe=dL();function pL(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function mL({type:e,reducerName:t,createNotation:r},n,a){let i,o;if("reducer"in n){if(r&&!vL(n))throw new Error(xn(17));i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?Jt(e,o):Jt(e))}function gL(e){return e._reducerDefinitionType==="asyncThunk"}function vL(e){return e._reducerDefinitionType==="reducerWithPrepare"}function hL({type:e,reducerName:t},r,n,a){if(!a)throw new Error(xn(18));let{payloadCreator:i,fulfilled:o,pending:l,rejected:s,settled:u,options:c}=r,d=a(e,i,c);n.exposeAction(t,d),o&&n.addCase(d.fulfilled,o),l&&n.addCase(d.pending,l),s&&n.addCase(d.rejected,s),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:o||Pg,pending:l||Pg,rejected:s||Pg,settled:u||Pg})}function Pg(){}var yL="task",YE="listener",KE="completed",m1="cancelled",xL=`task-${m1}`,bL=`task-${KE}`,d1=`${YE}-${m1}`,wL=`${YE}-${KE}`,zg=class{constructor(e){this.code=e,this.message=`${yL} ${m1} (reason: ${e})`}code;name="TaskAbortError";message},g1=(e,t)=>{if(typeof e!="function")throw new TypeError(xn(32))},jg=()=>{},GE=(e,t=jg)=>(e.catch(t),e),XE=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Go=e=>{if(e.aborted)throw new zg(e.reason)};function ZE(e,t){let r=jg;return new Promise((n,a)=>{let i=()=>a(new zg(e.reason));if(e.aborted){i();return}r=XE(e,i),t.finally(()=>r()).then(n,a)}).finally(()=>{r=jg})}var SL=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof zg?"cancelled":"rejected",error:r}}finally{t?.()}},Ig=e=>t=>GE(ZE(e,t).then(r=>(Go(e),r))),QE=e=>{let t=Ig(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Js}=Object,LE={},Lg="listenerMiddleware",AL=(e,t)=>{let r=n=>XE(e,()=>n.abort(e.reason));return(n,a)=>{g1(n,"taskExecutor");let i=new AbortController;r(i);let o=SL(async()=>{Go(e),Go(i.signal);let l=await n({pause:Ig(i.signal),delay:QE(i.signal),signal:i.signal});return Go(i.signal),l},()=>i.abort(bL));return a?.autoJoin&&t.push(o.catch(jg)),{result:Ig(e)(o),cancel(){i.abort(xL)}}}},NL=(e,t)=>{let r=async(n,a)=>{Go(t);let i=()=>{},l=[new Promise((s,u)=>{let c=e({predicate:n,effect:(d,f)=>{f.unsubscribe(),s([d,f.getState(),f.getOriginalState()])}});i=()=>{c(),u()}})];a!=null&&l.push(new Promise(s=>setTimeout(s,a,null)));try{let s=await ZE(t,Promise.race(l));return Go(t),s}finally{i()}};return((n,a)=>GE(r(n,a)))},JE=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:i}=e;if(t)a=Jt(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(xn(21));return g1(i,"options.listener"),{predicate:a,type:t,effect:i}},RE=Js(e=>{let{type:t,predicate:r,effect:n}=JE(e);return{id:WE(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(xn(22))}}},{withTypes:()=>RE}),BE=(e,t)=>{let{type:r,effect:n,predicate:a}=JE(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===n)},f1=e=>{e.pending.forEach(t=>{t.abort(d1)})},CL=(e,t)=>()=>{for(let r of t.keys())f1(r);e.clear()},$E=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},eO=Js(Jt(`${Lg}/add`),{withTypes:()=>eO}),_L=Jt(`${Lg}/removeAll`),tO=Js(Jt(`${Lg}/remove`),{withTypes:()=>tO}),kL=(...e)=>{console.error(`${Lg}/error`,...e)},si=(e={})=>{let t=new Map,r=new Map,n=p=>{let g=r.get(p)??0;r.set(p,g+1)},a=p=>{let g=r.get(p)??1;g===1?r.delete(p):r.set(p,g-1)},{extra:i,onError:o=kL}=e;g1(o,"onError");let l=p=>(p.unsubscribe=()=>t.delete(p.id),t.set(p.id,p),g=>{p.unsubscribe(),g?.cancelActive&&f1(p)}),s=(p=>{let g=BE(t,p)??RE(p);return l(g)});Js(s,{withTypes:()=>s});let u=p=>{let g=BE(t,p);return g&&(g.unsubscribe(),p.cancelActive&&f1(g)),!!g};Js(u,{withTypes:()=>u});let c=async(p,g,h,x)=>{let m=new AbortController,v=NL(s,m.signal),y=[];try{p.pending.add(m),n(p),await Promise.resolve(p.effect(g,Js({},h,{getOriginalState:x,condition:(b,k)=>v(b,k).then(Boolean),take:v,delay:QE(m.signal),pause:Ig(m.signal),extra:i,signal:m.signal,fork:AL(m.signal,y),unsubscribe:p.unsubscribe,subscribe:()=>{t.set(p.id,p)},cancelActiveListeners:()=>{p.pending.forEach((b,k,N)=>{b!==m&&(b.abort(d1),N.delete(b))})},cancel:()=>{m.abort(d1),p.pending.delete(m)},throwIfCancelled:()=>{Go(m.signal)}})))}catch(b){b instanceof zg||$E(o,b,{raisedBy:"effect"})}finally{await Promise.all(y),m.abort(wL),a(p),p.pending.delete(m)}},d=CL(t,r);return{middleware:p=>g=>h=>{if(!Gb(h))return g(h);if(eO.match(h))return s(h.payload);if(_L.match(h)){d();return}if(tO.match(h))return u(h.payload);let x=p.getState(),m=()=>{if(x===LE)throw new Error(xn(23));return x},v;try{if(v=g(h),t.size>0){let y=p.getState(),b=Array.from(t.values());for(let k of b){let N=!1;try{N=k.predicate(h,y,x)}catch(D){N=!1,$E(o,D,{raisedBy:"predicate"})}N&&c(k,h,p,m)}}}finally{x=LE}return v},startListening:s,stopListening:u,clearListeners:d}};function xn(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var EL={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},rO=Qe({name:"chartLayout",initialState:EL,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,a,i;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(a=t.payload.bottom)!==null&&a!==void 0?a:0,e.margin.left=(i=t.payload.left)!==null&&i!==void 0?i:0},setScale(e,t){e.scale=t.payload}}}),Bg=rO.actions,v1=Bg.setMargin,nO=Bg.setLayout,aO=Bg.setChartSize,iO=Bg.setScale;var oO=rO.reducer;function $g(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Me(e){return Number.isFinite(e)}function Qr(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function lO(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Jr(e){for(var t=1;t{if(t&&r){var n=r.width,a=r.height,i=t.align,o=t.verticalAlign,l=t.layout,s=t.position,u=t.offset,c=u===void 0?0:u;if(s!=null){if(ek(s)){if(s==="top"&&ve(e.top))return Jr(Jr({},e),{},{top:e.top+(a||0)+c});if(s==="bottom"&&ve(e.bottom))return Jr(Jr({},e),{},{bottom:e.bottom+(a||0)+c});if(s==="left"&&ve(e.left))return Jr(Jr({},e),{},{left:e.left+(n||0)+c});if(s==="right"&&ve(e.right))return Jr(Jr({},e),{},{right:e.right+(n||0)+c})}return e}if((l==="vertical"||l==="horizontal"&&o==="middle")&&i!=="center"&&ve(e[i]))return Jr(Jr({},e),{},{[i]:e[i]+(n||0)});if((l==="horizontal"||l==="vertical"&&i==="center")&&o!=="middle"&&ve(e[o]))return Jr(Jr({},e),{},{[o]:e[o]+(a||0)})}return e},Rr=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",h1=(e,t,r,n)=>{if(n)return e.map(l=>l.coordinate);var a,i,o=e.map(l=>(l.coordinate===t&&(a=!0),l.coordinate===r&&(i=!0),l.coordinate));return a||o.push(t),i||o.push(r),o},y1=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,a=e.type,i=e.range,o=e.scale,l=e.realScaleType,s=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,f=e.niceTicks,p=e.axisType;if(!o)return null;var g=l==="scaleBand"&&o.bandwidth?o.bandwidth()/2:2,h=(t||r)&&a==="category"&&o.bandwidth?o.bandwidth()/g:0;if(h=p==="angleAxis"&&i&&i.length>=2?ar(i[0]-i[1])*2*h:h,t&&(d||f)){var x=(d||f||[]).map((m,v)=>{var y=n?n.indexOf(m):m,b=o.map(y);return Me(b)?{coordinate:b+h,value:m,offset:h,index:v}:null}).filter(ir);return x}return s&&u?u.map((m,v)=>{var y=o.map(m);return Me(y)?{coordinate:y+h,value:m,index:v,offset:h}:null}).filter(ir):o.ticks&&!r&&c!=null?o.ticks(c).map((m,v)=>{var y=o.map(m);return Me(y)?{coordinate:y+h,value:m,index:v,offset:h}:null}).filter(ir):o.domain().map((m,v)=>{var y=o.map(m);return Me(y)?{coordinate:y+h,value:n?n[m]:m,index:v,offset:h}:null}).filter(ir)};var DL=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a=0?(u[0]=i,i+=f,u[1]=i):(u[0]=o,o+=f,u[1]=o)}}}},PL=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var a=0;a=0?(s[0]=i,i+=u,s[1]=i):(s[0]=0,s[1]=0)}}}},jL={sign:DL,expand:Bb,none:vn,silhouette:$b,wiggle:Ub,positive:PL},uO=(e,t,r)=>{var n,a=(n=jL[r])!==null&&n!==void 0?n:vn,i=Lb().keys(t).value((l,s)=>Number(yt(l,s,0))).order(Fs).offset(a),o=i(e);return o.forEach((l,s)=>{l.forEach((u,c)=>{var d=yt(e[c],t[s],0);Array.isArray(d)&&d.length===2&&ve(d[0])&&ve(d[1])&&(u[0]=d[0],u[1]=d[1])})}),o};function cO(e){return e==null?void 0:String(e)}function x1(e){var t=e.axis,r=e.ticks,n=e.bandSize,a=e.entry,i=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Nt(a[t.dataKey])){var l=Tm(r,"value",a[t.dataKey]);if(l)return l.coordinate+n/2}return r!=null&&r[i]?r[i].coordinate+n/2:null}var s=yt(a,Nt(o)?t.dataKey:o),u=t.scale.map(s);return ve(u)?u:null}var IL=e=>{var t=e.flat(2).filter(ve);return[Math.min(...t),Math.max(...t)]},zL=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],dO=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return zL(Object.keys(e).reduce((n,a)=>{var i=e[a];if(!i)return n;var o=i.stackedData,l=o.reduce((s,u)=>{var c=$g(u,t,r),d=IL(c);return!Me(d[0])||!Me(d[1])?s:[Math.min(s[0],d[0]),Math.max(s[1],d[1])]},[1/0,-1/0]);return[Math.min(l[0],n[0]),Math.max(l[1],n[1])]},[1/0,-1/0]))},b1=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,w1=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Rs=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var a=ii(t,h=>h.coordinate),i=[],o=0,l=1,s=a.length;lf&&(p=Math.min(g,p));return p===1/0?0:p}return r?void 0:0};function S1(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,a=e.value,i=e.name;return Jr(Jr({},t),{},{dataKey:r,payload:n,value:a,name:i})}function A1(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var fO=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},pO=(e,t)=>t==="centric"?e.angle:e.radius;var kr=e=>e.layout.width,Er=e=>e.layout.height,mO=e=>e.layout.scale,Ug=e=>e.layout.margin;var eu=Y(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),tu=Y(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var gO="data-recharts-item-index",vO="data-recharts-item-id",Xo=60,bd=30;function hO(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Hg(e){for(var t=1;te.brush.height;function HL(e){var t=tu(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:Xo;return r+a}return r},0)}function VL(e){var t=tu(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:Xo;return r+a}return r},0)}function FL(e){var t=eu(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:bd;return r+a}return r},0)}function WL(e){var t=eu(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:bd;return r+a}return r},0)}var xt=Y([kr,Er,Ug,UL,HL,VL,FL,WL,qb,oE],(e,t,r,n,a,i,o,l,s,u)=>{var c={left:(r.left||0)+a,right:(r.right||0)+i},d={top:(r.top||0)+o,bottom:(r.bottom||0)+l},f=Hg(Hg({},d),c),p=f.bottom;f.bottom+=n,f=sO(f,s,u);var g=e-f.left-f.right,h=t-f.top-f.bottom;return Hg(Hg({brushBottom:p},f),{},{width:Math.max(g,0),height:Math.max(h,0)})}),yO=Y(xt,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Vg=Y(kr,Er,(e,t)=>({x:0,y:0,width:e,height:t}));var qL=Q(R()),Fg=Q(R()),YL=(0,Fg.createContext)(null),ft=()=>(0,Fg.useContext)(YL)!=null;var ru=e=>e.brush,Zo=Y([ru,xt,Ug],(e,t,r)=>({height:e.height,x:ve(e.x)?e.x:t.left,y:ve(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:ve(e.width)?e.width:t.width}));var Qo=Q(R()),Rt=Q(R());function xO(e,t,{signal:r,edges:n}={}){let a,i=null,o=n!=null&&n.includes("leading"),l=n==null||n.includes("trailing"),s=()=>{i!==null&&(e.apply(a,i),a=void 0,i=null)},u=()=>{l&&s(),p()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},f=()=>{c!==null&&(clearTimeout(c),c=null)},p=()=>{f(),a=void 0,i=null},g=()=>{s()},h=function(...x){if(r?.aborted)return;a=this,i=x;let m=c==null;d(),o&&m&&s()};return h.schedule=d,h.cancel=p,h.flush=g,r?.addEventListener("abort",p,{once:!0}),h}function bO(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:i}=r,o=Array(2);n&&(o[0]="leading"),a&&(o[1]="trailing");let l,s=null,u=xO(function(...f){l=e.apply(this,f),s=null},t,{edges:o}),c=function(...f){return i!=null&&(s===null&&(s=Date.now()),Date.now()-s>=i)?(l=e.apply(this,f),s=Date.now(),u.cancel(),u.schedule(),l):(u.apply(this,f),l)},d=()=>(u.flush(),l);return c.cancel=u.cancel,c.flush=d,c}function N1(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return bO(e,t,{leading:n,maxWait:t,trailing:a})}var KL=!0,nu=function(t,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;ia[o++]))}};var aa={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},C1=(e,t,r)=>{var n=r.width,a=n===void 0?aa.width:n,i=r.height,o=i===void 0?aa.height:i,l=r.aspect,s=r.maxHeight,u=ri(a)?e:Number(a),c=ri(o)?t:Number(o);return l&&l>0&&(u?c=u/l:c&&(u=c*l),s&&c!=null&&c>s&&(c=s)),{calculatedWidth:u,calculatedHeight:c}},GL={width:0,height:0,overflow:"visible"},XL={width:0,overflowX:"visible"},ZL={height:0,overflowY:"visible"},QL={},wO=e=>{var t=e.width,r=e.height,n=ri(t),a=ri(r);return n&&a?GL:n?XL:a?ZL:QL};function SO(e){var t=e.width,r=e.height,n=e.aspect,a=t,i=r;return a===void 0&&i===void 0?(a=aa.width,i=aa.height):a===void 0?a=n&&n>0?void 0:aa.width:i===void 0&&(i=n&&n>0?void 0:aa.height),{width:a,height:i}}var JL=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function Wg(){return Wg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return uB(a)?Qo.createElement(_O.Provider,{value:a},t):null}var wd=()=>(0,Rt.useContext)(_O),cB=(0,Rt.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,a=n===void 0?aa.initialDimension:n,i=e.width,o=e.height,l=e.minWidth,s=l===void 0?aa.minWidth:l,u=e.minHeight,c=e.maxHeight,d=e.children,f=e.debounce,p=f===void 0?aa.debounce:f,g=e.id,h=e.className,x=e.onResize,m=e.style,v=m===void 0?{}:m,y=lB(e,JL),b=(0,Rt.useRef)(null),k=(0,Rt.useRef)();k.current=x,(0,Rt.useImperativeHandle)(t,()=>b.current);var N=(0,Rt.useState)({containerWidth:a.width,containerHeight:a.height}),D=rB(N,2),_=D[0],M=D[1],z=(0,Rt.useCallback)((w,O)=>{M(E=>{var C=Math.round(w),S=Math.round(O);return E.containerWidth===C&&E.containerHeight===S?E:{containerWidth:C,containerHeight:S}})},[]);(0,Rt.useEffect)(()=>{if(b.current==null||typeof ResizeObserver>"u")return ra;var w=T=>{var F,X=T[0];if(X!=null){var J=X.contentRect,se=J.width,ce=J.height;z(se,ce),(F=k.current)===null||F===void 0||F.call(k,se,ce)}};p>0&&(w=N1(w,p,{trailing:!0,leading:!1}));var O=new ResizeObserver(w),E=b.current.getBoundingClientRect(),C=E.width,S=E.height;return z(C,S),O.observe(b.current),()=>{O.disconnect()}},[z,p]);var $=_.containerWidth,U=_.containerHeight;nu(!r||r>0,"The aspect(%s) must be greater than zero.",r);var G=C1($,U,{width:i,height:o,aspect:r,maxHeight:c}),j=G.calculatedWidth,V=G.calculatedHeight;return nu($<0||U<0||j!=null&&j>0||V!=null&&V>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,H,q,i,o,s,u,r),Xo.createElement("div",$v({id:v?"".concat(v):void 0,className:Te("recharts-responsive-container",g),style:yk(yk({},h),{},{width:i,height:o,minWidth:s,minHeight:u,maxHeight:c}),ref:w},x),Xo.createElement("div",{style:vk({width:i,height:o})},Xo.createElement(wk,{width:H,height:q},d)))}),ru=(0,Zt.forwardRef)((e,t)=>{var r=xd();if(Xr(r.width)&&Xr(r.height))return e.children;var n=hk({width:e.width,height:e.height,aspect:e.aspect}),a=n.width,i=n.height,o=w1(void 0,void 0,{width:a,height:i,aspect:e.aspect,maxHeight:e.maxHeight}),l=o.calculatedWidth,s=o.calculatedHeight;return me(l)&&me(s)?Xo.createElement(wk,{width:l,height:s},e.children):Xo.createElement(tB,$v({},e,{width:a,height:i,ref:t}))});var Zo=()=>{var e,t=ct(),r=ye(fk),n=ye(Go),a=(e=ye(eu))===null||e===void 0?void 0:e.padding;return!t||!n||!a?r:{width:n.width-a.left-a.right,height:n.height-a.top-a.bottom,x:a.left,y:a.top}},rB={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},Hv=()=>{var e;return(e=ye(gt))!==null&&e!==void 0?e:rB},Vv=()=>ye(Cr),Fv=()=>ye(_r);var Qe=e=>e.layout.layoutType,ba=()=>ye(Qe),nu=()=>{var e=ba();if(e==="horizontal"||e==="vertical")return e},S1=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t};var Ak=()=>{var e=ba();return e!==void 0},Qo=e=>{var t=Le(),r=ct(),n=e.width,a=e.height,i=xd(),o=n,l=a;return i&&(o=i.width>0?i.width:n,l=i.height>0?i.height:a),(0,Sk.useEffect)(()=>{!r&&Xr(o)&&Xr(l)&&t(JO({width:o,height:l}))},[t,r,o,l]),null};var nB={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},Nk=Ke({name:"legend",initialState:nB,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(je(t.payload))},prepare:Re()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=yr(e).payload.indexOf(je(n));i>-1&&(e.payload[i]=je(a))},prepare:Re()},removeLegendPayload:{reducer(e,t){var r=yr(e).payload.indexOf(je(t.payload));r>-1&&e.payload.splice(r,1)},prepare:Re()}}}),bd=Nk.actions,ene=bd.setLegendSize,tne=bd.setLegendSettings,Ck=bd.addLegendPayload,_k=bd.replaceLegendPayload,Ek=bd.removeLegendPayload;var Ok=Nk.reducer;var kt=J(R(),1),MB=J(Dk(),1);var dB=Symbol.for("react.forward_ref");var fB=Symbol.for("react.memo");var pB=dB,mB=fB;function vB(e){e()}function hB(){let e=null,t=null;return{clear(){e=null,t=null},notify(){vB(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0,a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!n||e===null||(n=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var Pk={notify(){},get:()=>[]};function gB(e,t){let r,n=Pk,a=0,i=!1;function o(g){c();let b=n.subscribe(g),m=!1;return()=>{m||(m=!0,b(),d())}}function l(){n.notify()}function s(){v.onStateChange&&v.onStateChange()}function u(){return i}function c(){a++,r||(r=t?t.addNestedSub(s):e.subscribe(s),n=hB())}function d(){a--,r&&a===0&&(r(),r=void 0,n.clear(),n=Pk)}function f(){i||(i=!0,c())}function p(){i&&(i=!1,d())}let v={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>n};return v}var yB=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",xB=yB(),bB=()=>typeof navigator<"u"&&navigator.product==="ReactNative",wB=bB(),SB=()=>xB||wB?kt.useLayoutEffect:kt.useEffect,AB=SB();function jk(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Ik(e,t){if(jk(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let a=0;a{let s=gB(a);return{store:a,subscription:s,getServerState:n?()=>n:void 0}},[a,n]),o=kt.useMemo(()=>a.getState(),[a]);return AB(()=>{let{subscription:s}=i;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==a.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[i,o]),kt.createElement((r||kB).Provider,{value:i},t)}var zk=TB;var DB=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function PB(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function ro(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(DB.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Ik(e[n],t[n]))return!1}else if(!PB(e[n],t[n]))return!1;return!0}var Fn=J(R()),x8=J(R()),b8=J(Gf());var na=J(R());function A1(){return A1=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?au.separator:t,n=e.contentStyle,a=e.itemStyle,i=e.labelStyle,o=i===void 0?au.labelStyle:i,l=e.payload,s=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,f=e.label,p=e.labelFormatter,v=e.accessibilityLayer,g=v===void 0?au.accessibilityLayer:v,b=()=>{if(l&&l.length){var _={padding:0,margin:0},I=FB(l,u),z=I.map((B,$)=>{if(!B||B.type==="none")return null;var X=B.formatter||s||VB,H=B.value,q=B.name,y=H,N=q;if(X){var O=X(H,q,B,$,l);if(Array.isArray(O)){var M=LB(O,2);y=M[0],N=M[1]}else if(O!=null)y=O;else return null}var A=Sd(Sd({},au.itemStyle),{},{color:B.color||au.itemStyle.color},a);return na.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat($),style:A},Lr(N)?na.createElement("span",{className:"recharts-tooltip-item-name"},N):null,Lr(N)?na.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,na.createElement("span",{className:"recharts-tooltip-item-value"},y),na.createElement("span",{className:"recharts-tooltip-item-unit"},B.unit||""))});return na.createElement("ul",{className:"recharts-tooltip-item-list",style:_},z)}return null},m=Sd(Sd({},au.contentStyle),n),h=Sd({margin:0},o),x=!St(f),w=x?f:"",E=Te("recharts-default-tooltip",c),C=Te("recharts-tooltip-label",d);x&&p&&l!==void 0&&l!==null&&(w=p(f,l));var T=g?{role:"status","aria-live":"assertive"}:{};return na.createElement("div",A1({className:E,style:m},T),na.createElement("p",{className:C,style:h},na.isValidElement(w)?w:"".concat(w)),b())};var no=J(R());var Ad="recharts-tooltip-wrapper",YB={visibility:"hidden"};function qB(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Te(Ad,{["".concat(Ad,"-right")]:me(r)&&t&&me(t.x)&&r>=t.x,["".concat(Ad,"-left")]:me(r)&&t&&me(t.x)&&r=t.y,["".concat(Ad,"-top")]:me(n)&&t&&me(t.y)&&n0?a:0),d=r[n]+a;if(t[n])return o[n]?c:d;var f=s[n];if(f==null)return 0;if(o[n]){var p=c,v=f;return pb?Math.max(c,f):Math.max(d,f)}function WB(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function Hk(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,a=e.offsetLeft,i=e.position,o=e.reverseDirection,l=e.tooltipBox,s=e.useTranslate3d,u=e.viewBox,c,d,f;return l&&l.height>0&&l.width>0&&r?(d=$k({allowEscapeViewBox:t,coordinate:r,key:"x",offset:a,position:i,reverseDirection:o,tooltipDimension:l.width,viewBox:u,viewBoxDimension:u.width}),f=$k({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:i,reverseDirection:o,tooltipDimension:l.height,viewBox:u,viewBoxDimension:u.height}),c=WB({translateX:d,translateY:f,useTranslate3d:s})):c=YB,{cssProperties:c,cssClasses:qB({translateX:d,translateY:f,coordinate:r})}}var Yv=J(R());var KB=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Bn={devToolsEnabled:!0,isSsr:KB()};function GB(e,t){return JB(e)||QB(e,t)||ZB(e,t)||XB()}function XB(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ZB(e,t){if(e){if(typeof e=="string")return Vk(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Vk(e,t):void 0}}function Vk(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rBn.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=GB(e,2),r=t[0],n=t[1];return(0,Yv.useEffect)(()=>{if(window.matchMedia){var a=window.matchMedia("(prefers-reduced-motion: reduce)"),i=()=>{n(a.matches)};return a.addEventListener("change",i),()=>{a.removeEventListener("change",i)}}},[]),r}function Fk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function iu(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),u=rU(s,2),c=u[0],d=u[1];no.useEffect(()=>{var m=h=>{if(h.key==="Escape"){var x,w,E,C;d({dismissed:!0,dismissedAtCoordinate:{x:(x=(w=e.coordinate)===null||w===void 0?void 0:w.x)!==null&&x!==void 0?x:0,y:(E=(C=e.coordinate)===null||C===void 0?void 0:C.y)!==null&&E!==void 0?E:0}})}};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(a=e.coordinate)===null||a===void 0?void 0:a.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((i=(o=e.coordinate)===null||o===void 0?void 0:o.y)!==null&&i!==void 0?i:0)!==c.dismissedAtCoordinate.y)&&d(iu(iu({},c),{},{dismissed:!1}));var f=Hk({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),p=f.cssClasses,v=f.cssProperties,g=e.hasPortalFromProps?{}:iu(iu({transition:lU({prefersReducedMotion:l,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},v),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),b=iu(iu({},g),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return no.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:p,style:b,ref:e.innerRef},e.children)}var qk=no.memo(sU);var Wv=()=>{var e;return(e=ye(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var Ag=J(R()),ju=J(R());var Qk=J(R());function N1(){return N1=Object.assign?Object.assign.bind():function(e){for(var t=1;tke(e.x)&&ke(e.y),Xk=e=>e.base!=null&&Kv(e.base)&&Kv(e),Nd=e=>e.x,Cd=e=>e.y,fU=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(zs(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=Gk["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return Gk[r]||Ri},Zk={connectNulls:!1,type:"linear"},pU=e=>{var t=e.type,r=t===void 0?Zk.type:t,n=e.points,a=n===void 0?[]:n,i=e.baseLine,o=e.layout,l=e.connectNulls,s=l===void 0?Zk.connectNulls:l,u=fU(r,o),c=s?a.filter(Kv):a;if(Array.isArray(i)){var d,f=a.map((m,h)=>Kk(Kk({},m),{},{base:i[h]}));o==="vertical"?d=Bs().y(Cd).x1(Nd).x0(m=>m.base.x):d=Bs().x(Nd).y1(Cd).y0(m=>m.base.y);var p=d.defined(Xk).curve(u),v=s?f.filter(Xk):f;return p(v)}var g;o==="vertical"&&me(i)?g=Bs().y(Cd).x1(Nd).x0(i):me(i)?g=Bs().x(Nd).y1(Cd).y0(i):g=id().x(Nd).y(Cd);var b=g.defined(Kv).curve(u);return b(c)},ou=e=>{var t=e.className,r=e.points,n=e.path,a=e.pathRef,i=ba();if((!r||!r.length)&&!n)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||i,connectNulls:e.connectNulls},l=r&&r.length?pU(o):n;return Qk.createElement("path",N1({},ur(e),Vs(e),{className:Te("recharts-curve",t),d:l===null?void 0:l,ref:a}))};var Rk=J(R());var mU=["x","y","top","left","width","height","className"];function C1(){return C1=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(a,"v").concat(n,"M").concat(i,",").concat(t,"h").concat(r),eT=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,a=n===void 0?0:n,i=e.top,o=i===void 0?0:i,l=e.left,s=l===void 0?0:l,u=e.width,c=u===void 0?0:u,d=e.height,f=d===void 0?0:d,p=e.className,v=xU(e,mU),g=vU({x:r,y:a,top:o,left:s,width:c,height:f},v);return!me(r)||!me(a)||!me(c)||!me(f)||!me(o)||!me(s)?null:Rk.createElement("path",C1({},Lt(g),{className:Te("recharts-cross",p),d:wU(r,a,c,f,o,s)}))};function tT(e,t,r,n){var a=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-a,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var Rv=J(R()),Un=J(R());var _d=J(R());var Gv=1e-4,aT=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],iT=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),rT=(e,t)=>r=>{var n=aT(e,t);return iT(n,r)},SU=(e,t)=>r=>{var n=aT(e,t),a=[...n.map((i,o)=>i*o).slice(1),0];return iT(a,r)},AU=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var a=n.map(i=>parseFloat(i));return[a[0],a[1],a[2],a[3]]},NU=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var a=rT(e,r),i=rT(t,n),o=SU(e,r),l=u=>u>1?1:u<0?0:u,s=u=>{for(var c=u>1?1:u,d=c,f=0;f<8;++f){var p=a(d)-c,v=o(d);if(Math.abs(p-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,a=t.damping,i=a===void 0?8:a,o=t.dt,l=o===void 0?16.67:o,s=1,u=[0],c=0,d=0,f=1e4,p=0;p{var h,x,w;if(m<=0)return 0;if(m>=1)return s;var E=m*b,C=Math.floor(E),T=E-C;return((h=u[C])!==null&&h!==void 0?h:0)+(((x=u[C+1])!==null&&x!==void 0?x:0)-((w=u[C])!==null&&w!==void 0?w:0))*T}},oT=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return nT(e);case"spring":return _U();default:if(e.split("(")[0]==="cubic-bezier")return nT(e)}return typeof e=="function"?e:null};var lu=J(R());var lT=(e,t,r)=>{var n,a=i=>{var o=t.tick(i);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(a,o);return}n=e.setTimeout(a,o)};return n=e.setTimeout(a,0),()=>{var i;return(i=n)===null||i===void 0?void 0:i()}};var sT=(0,lu.createContext)(lT),Hne=sT.Provider;function uT(e){var t=(0,lu.useContext)(sT);return(0,lu.useMemo)(()=>e??t,[e,t])}function EU(e,t,r){return(t=OU(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function OU(e){var t=kU(e,"string");return typeof t=="symbol"?t:t+""}function kU(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var cT="init",dT="pending",fT="active",TU="completed";function _1(e){return Math.max(0,e)}var E1=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;EU(this,"state",cT),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=_1(t.animationDuration),this.animationBegin=_1(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===cT)return this.state=dT,this.beginStartedTime=t,this.animationBegin;if(this.getState()===dT){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=fT,this.animationStartedTime=t,this.nextAnimationUpdate(0)):_1(this.animationBegin-r)}if(this.getState()===fT){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=TU}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},Xv=class extends E1{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(zn(this.getFrom(),this.getTo(),this.getProgress()))}};var Zv=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),a=null,i=o=>{o-n>=r?t(o):a=requestAnimationFrame(i)};return a=requestAnimationFrame(i),()=>{a!=null&&cancelAnimationFrame(a)}}};function MU(e,t){return IU(e)||jU(e,t)||PU(e,t)||DU()}function DU(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function PU(e,t){if(e){if(typeof e=="string")return pT(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?pT(e,t):void 0}}function pT(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},mT=0,O1=1;function Qv(e){var t=At(e,zU),r=t.animationId,n=t.isActive,a=t.canBegin,i=t.duration,o=t.easing,l=t.begin,s=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=qv(),f=n==="auto"?!Bn.isSsr&&!d:n,p=uT(t.animationController),v=(0,_d.useState)(f?mT:O1),g=MU(v,2),b=g[0],m=g[1];return(0,_d.useEffect)(()=>{f||m(O1)},[f]),(0,_d.useEffect)(()=>{var h=oT(o);if(!f||!a||h==null)return ea;var x=new Zv,w=new Xv({animationId:r,easing:h,animationDuration:i,animationBegin:l,onAnimationStart:u,onAnimationEnd:s,from:mT,to:O1});return p(x,w,m)},[p,r,f,a,i,o,l,u,s]),c(Number(b))}var k1=J(R());function Jv(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,k1.useRef)(ti(t)),n=(0,k1.useRef)(e);return n.current!==e&&(r.current=ti(t),n.current=e),r.current}var LU=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),vT=(e,t,r)=>e.map(n=>"".concat(LU(n)," ").concat(t,"ms ").concat(r)).join(",");var BU=["radius"],UU=["radius"],hT,gT,yT,xT,bT,wT,ST,AT,NT,CT;function _T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ET(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var i=ga(r),o=ga(n),l=Math.min(Math.abs(i)/2,Math.abs(o)/2),s=o>=0?1:-1,u=i>=0?1:-1,c=o>=0&&i>=0||o<0&&i<0?1:0,d;if(l>0&&Array.isArray(a)){for(var f=[0,0,0,0],p=0,v=4;pl?l:b}d=tr(hT||(hT=wa(["M",",",""])),e,t+s*f[0]),f[0]>0&&(d+=tr(gT||(gT=wa(["A ",",",",0,0,",",",",",""])),f[0],f[0],c,e+u*f[0],t)),d+=tr(yT||(yT=wa(["L ",",",""])),e+r-u*f[1],t),f[1]>0&&(d+=tr(xT||(xT=wa(["A ",",",",0,0,",`, - `,",",""])),f[1],f[1],c,e+r,t+s*f[1])),d+=tr(bT||(bT=wa(["L ",",",""])),e+r,t+n-s*f[2]),f[2]>0&&(d+=tr(wT||(wT=wa(["A ",",",",0,0,",`, - `,",",""])),f[2],f[2],c,e+r-u*f[2],t+n)),d+=tr(ST||(ST=wa(["L ",",",""])),e+u*f[3],t+n),f[3]>0&&(d+=tr(AT||(AT=wa(["A ",",",",0,0,",`, - `,",",""])),f[3],f[3],c,e,t+n-s*f[3])),d+="Z"}else if(l>0&&a===+a&&a>0){var m=Math.min(l,a);d=tr(NT||(NT=wa(["M ",",",` + height and width.`,j,V,i,o,s,u,r),Qo.createElement("div",Wg({id:g?"".concat(g):void 0,className:De("recharts-responsive-container",h),style:NO(NO({},v),{},{width:i,height:o,minWidth:s,minHeight:u,maxHeight:c}),ref:b},y),Qo.createElement("div",{style:wO({width:i,height:o})},Qo.createElement(kO,{width:j,height:V},d)))}),au=(0,Rt.forwardRef)((e,t)=>{var r=wd();if(Qr(r.width)&&Qr(r.height))return e.children;var n=SO({width:e.width,height:e.height,aspect:e.aspect}),a=n.width,i=n.height,o=C1(void 0,void 0,{width:a,height:i,aspect:e.aspect,maxHeight:e.maxHeight}),l=o.calculatedWidth,s=o.calculatedHeight;return ve(l)&&ve(s)?Qo.createElement(kO,{width:l,height:s},e.children):Qo.createElement(cB,Wg({},e,{width:a,height:i,ref:t}))});var Jo=()=>{var e,t=ft(),r=be(yO),n=be(Zo),a=(e=be(ru))===null||e===void 0?void 0:e.padding;return!t||!n||!a?r:{width:n.width-a.left-a.right,height:n.height-a.top-a.bottom,x:a.left,y:a.top}},dB={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},qg=()=>{var e;return(e=be(xt))!==null&&e!==void 0?e:dB},Yg=()=>be(kr),Kg=()=>be(Er);var tt=e=>e.layout.layoutType,Sa=()=>be(tt),iu=()=>{var e=Sa();if(e==="horizontal"||e==="vertical")return e},_1=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t};var OO=()=>{var e=Sa();return e!==void 0},Ro=e=>{var t=$e(),r=ft(),n=e.width,a=e.height,i=wd(),o=n,l=a;return i&&(o=i.width>0?i.width:n,l=i.height>0?i.height:a),(0,EO.useEffect)(()=>{!r&&Qr(o)&&Qr(l)&&t(aO({width:o,height:l}))},[t,r,o,l]),null};var fB={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},TO=Qe({name:"legend",initialState:fB,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(ze(t.payload))},prepare:rt()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=br(e).payload.indexOf(ze(n));i>-1&&(e.payload[i]=ze(a))},prepare:rt()},removeLegendPayload:{reducer(e,t){var r=br(e).payload.indexOf(ze(t.payload));r>-1&&e.payload.splice(r,1)},prepare:rt()}}}),Sd=TO.actions,hne=Sd.setLegendSize,yne=Sd.setLegendSettings,MO=Sd.addLegendPayload,DO=Sd.replaceLegendPayload,PO=Sd.removeLegendPayload;var jO=TO.reducer;var Mt=Q(R(),1),UB=Q(BO(),1);var bB=Symbol.for("react.forward_ref");var wB=Symbol.for("react.memo");var SB=bB,AB=wB;function NB(e){e()}function CB(){let e=null,t=null;return{clear(){e=null,t=null},notify(){NB(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0,a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!n||e===null||(n=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var $O={notify(){},get:()=>[]};function _B(e,t){let r,n=$O,a=0,i=!1;function o(h){c();let x=n.subscribe(h),m=!1;return()=>{m||(m=!0,x(),d())}}function l(){n.notify()}function s(){g.onStateChange&&g.onStateChange()}function u(){return i}function c(){a++,r||(r=t?t.addNestedSub(s):e.subscribe(s),n=CB())}function d(){a--,r&&a===0&&(r(),r=void 0,n.clear(),n=$O)}function f(){i||(i=!0,c())}function p(){i&&(i=!1,d())}let g={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>n};return g}var kB=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",EB=kB(),OB=()=>typeof navigator<"u"&&navigator.product==="ReactNative",TB=OB(),MB=()=>EB||TB?Mt.useLayoutEffect:Mt.useEffect,DB=MB();function UO(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function HO(e,t){if(UO(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let a=0;a{let s=_B(a);return{store:a,subscription:s,getServerState:n?()=>n:void 0}},[a,n]),o=Mt.useMemo(()=>a.getState(),[a]);return DB(()=>{let{subscription:s}=i;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==a.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[i,o]),Mt.createElement((r||BB).Provider,{value:i},t)}var VO=$B;var HB=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function VB(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function ao(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(HB.has(n)){if(e[n]==null&&t[n]==null)continue;if(!HO(e[n],t[n]))return!1}else if(!VB(e[n],t[n]))return!1;return!0}var qn=Q(R()),C8=Q(R()),_8=Q(Jf());var ia=Q(R());function k1(){return k1=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?ou.separator:t,n=e.contentStyle,a=e.itemStyle,i=e.labelStyle,o=i===void 0?ou.labelStyle:i,l=e.payload,s=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,f=e.label,p=e.labelFormatter,g=e.accessibilityLayer,h=g===void 0?ou.accessibilityLayer:g,x=()=>{if(l&&l.length){var _={padding:0,margin:0},M=JB(l,u),z=M.map(($,U)=>{if(!$||$.type==="none")return null;var G=$.formatter||s||QB,j=$.value,V=$.name,w=j,O=V;if(G){var E=G(j,V,$,U,l);if(Array.isArray(E)){var C=YB(E,2);w=C[0],O=C[1]}else if(E!=null)w=E;else return null}var S=Nd(Nd({},ou.itemStyle),{},{color:$.color||ou.itemStyle.color},a);return ia.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(U),style:S},$r(O)?ia.createElement("span",{className:"recharts-tooltip-item-name"},O):null,$r(O)?ia.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,ia.createElement("span",{className:"recharts-tooltip-item-value"},w),ia.createElement("span",{className:"recharts-tooltip-item-unit"},$.unit||""))});return ia.createElement("ul",{className:"recharts-tooltip-item-list",style:_},z)}return null},m=Nd(Nd({},ou.contentStyle),n),v=Nd({margin:0},o),y=!Nt(f),b=y?f:"",k=De("recharts-default-tooltip",c),N=De("recharts-tooltip-label",d);y&&p&&l!==void 0&&l!==null&&(b=p(f,l));var D=h?{role:"status","aria-live":"assertive"}:{};return ia.createElement("div",k1({className:k,style:m},D),ia.createElement("p",{className:N,style:v},ia.isValidElement(b)?b:"".concat(b)),x())};var io=Q(R());var Cd="recharts-tooltip-wrapper",RB={visibility:"hidden"};function e$(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return De(Cd,{["".concat(Cd,"-right")]:ve(r)&&t&&ve(t.x)&&r>=t.x,["".concat(Cd,"-left")]:ve(r)&&t&&ve(t.x)&&r=t.y,["".concat(Cd,"-top")]:ve(n)&&t&&ve(t.y)&&n0?a:0),d=r[n]+a;if(t[n])return o[n]?c:d;var f=s[n];if(f==null)return 0;if(o[n]){var p=c,g=f;return px?Math.max(c,f):Math.max(d,f)}function t$(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function KO(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,a=e.offsetLeft,i=e.position,o=e.reverseDirection,l=e.tooltipBox,s=e.useTranslate3d,u=e.viewBox,c,d,f;return l&&l.height>0&&l.width>0&&r?(d=YO({allowEscapeViewBox:t,coordinate:r,key:"x",offset:a,position:i,reverseDirection:o,tooltipDimension:l.width,viewBox:u,viewBoxDimension:u.width}),f=YO({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:i,reverseDirection:o,tooltipDimension:l.height,viewBox:u,viewBoxDimension:u.height}),c=t$({translateX:d,translateY:f,useTranslate3d:s})):c=RB,{cssProperties:c,cssClasses:e$({translateX:d,translateY:f,coordinate:r})}}var Gg=Q(R());var r$=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Un={devToolsEnabled:!0,isSsr:r$()};function n$(e,t){return l$(e)||o$(e,t)||i$(e,t)||a$()}function a$(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function i$(e,t){if(e){if(typeof e=="string")return GO(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?GO(e,t):void 0}}function GO(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rUn.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=n$(e,2),r=t[0],n=t[1];return(0,Gg.useEffect)(()=>{if(window.matchMedia){var a=window.matchMedia("(prefers-reduced-motion: reduce)"),i=()=>{n(a.matches)};return a.addEventListener("change",i),()=>{a.removeEventListener("change",i)}}},[]),r}function XO(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function lu(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),u=d$(s,2),c=u[0],d=u[1];io.useEffect(()=>{var m=v=>{if(v.key==="Escape"){var y,b,k,N;d({dismissed:!0,dismissedAtCoordinate:{x:(y=(b=e.coordinate)===null||b===void 0?void 0:b.x)!==null&&y!==void 0?y:0,y:(k=(N=e.coordinate)===null||N===void 0?void 0:N.y)!==null&&k!==void 0?k:0}})}};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(a=e.coordinate)===null||a===void 0?void 0:a.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((i=(o=e.coordinate)===null||o===void 0?void 0:o.y)!==null&&i!==void 0?i:0)!==c.dismissedAtCoordinate.y)&&d(lu(lu({},c),{},{dismissed:!1}));var f=KO({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),p=f.cssClasses,g=f.cssProperties,h=e.hasPortalFromProps?{}:lu(lu({transition:v$({prefersReducedMotion:l,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},g),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),x=lu(lu({},h),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return io.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:p,style:x,ref:e.innerRef},e.children)}var QO=io.memo(h$);var Zg=()=>{var e;return(e=be(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var kh=Q(R()),zu=Q(R());var nT=Q(R());function E1(){return E1=Object.assign?Object.assign.bind():function(e){for(var t=1;tMe(e.x)&&Me(e.y),tT=e=>e.base!=null&&Qg(e.base)&&Qg(e),_d=e=>e.x,kd=e=>e.y,w$=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(Bs(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=eT["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return eT[r]||to},rT={connectNulls:!1,type:"linear"},S$=e=>{var t=e.type,r=t===void 0?rT.type:t,n=e.points,a=n===void 0?[]:n,i=e.baseLine,o=e.layout,l=e.connectNulls,s=l===void 0?rT.connectNulls:l,u=w$(r,o),c=s?a.filter(Qg):a;if(Array.isArray(i)){var d,f=a.map((m,v)=>RO(RO({},m),{},{base:i[v]}));o==="vertical"?d=Us().y(kd).x1(_d).x0(m=>m.base.x):d=Us().x(_d).y1(kd).y0(m=>m.base.y);var p=d.defined(tT).curve(u),g=s?f.filter(tT):f;return p(g)}var h;o==="vertical"&&ve(i)?h=Us().y(kd).x1(_d).x0(i):ve(i)?h=Us().x(_d).y1(kd).y0(i):h=ld().x(_d).y(kd);var x=h.defined(Qg).curve(u);return x(c)},su=e=>{var t=e.className,r=e.points,n=e.path,a=e.pathRef,i=Sa();if((!r||!r.length)&&!n)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||i,connectNulls:e.connectNulls},l=r&&r.length?S$(o):n;return nT.createElement("path",E1({},dr(e),Ws(e),{className:De("recharts-curve",t),d:l===null?void 0:l,ref:a}))};var iT=Q(R());var A$=["x","y","top","left","width","height","className"];function O1(){return O1=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(a,"v").concat(n,"M").concat(i,",").concat(t,"h").concat(r),oT=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,a=n===void 0?0:n,i=e.top,o=i===void 0?0:i,l=e.left,s=l===void 0?0:l,u=e.width,c=u===void 0?0:u,d=e.height,f=d===void 0?0:d,p=e.className,g=E$(e,A$),h=N$({x:r,y:a,top:o,left:s,width:c,height:f},g);return!ve(r)||!ve(a)||!ve(c)||!ve(f)||!ve(o)||!ve(s)?null:iT.createElement("path",O1({},Ut(h),{className:De("recharts-cross",p),d:T$(r,a,c,f,o,s)}))};function lT(e,t,r,n){var a=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-a,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var nv=Q(R()),Hn=Q(R());var Ed=Q(R());var Jg=1e-4,cT=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],dT=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),sT=(e,t)=>r=>{var n=cT(e,t);return dT(n,r)},M$=(e,t)=>r=>{var n=cT(e,t),a=[...n.map((i,o)=>i*o).slice(1),0];return dT(a,r)},D$=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var a=n.map(i=>parseFloat(i));return[a[0],a[1],a[2],a[3]]},P$=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var a=sT(e,r),i=sT(t,n),o=M$(e,r),l=u=>u>1?1:u<0?0:u,s=u=>{for(var c=u>1?1:u,d=c,f=0;f<8;++f){var p=a(d)-c,g=o(d);if(Math.abs(p-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,a=t.damping,i=a===void 0?8:a,o=t.dt,l=o===void 0?16.67:o,s=1,u=[0],c=0,d=0,f=1e4,p=0;p{var v,y,b;if(m<=0)return 0;if(m>=1)return s;var k=m*x,N=Math.floor(k),D=k-N;return((v=u[N])!==null&&v!==void 0?v:0)+(((y=u[N+1])!==null&&y!==void 0?y:0)-((b=u[N])!==null&&b!==void 0?b:0))*D}},fT=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return uT(e);case"spring":return I$();default:if(e.split("(")[0]==="cubic-bezier")return uT(e)}return typeof e=="function"?e:null};var uu=Q(R());var pT=(e,t,r)=>{var n,a=i=>{var o=t.tick(i);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(a,o);return}n=e.setTimeout(a,o)};return n=e.setTimeout(a,0),()=>{var i;return(i=n)===null||i===void 0?void 0:i()}};var mT=(0,uu.createContext)(pT),aae=mT.Provider;function gT(e){var t=(0,uu.useContext)(mT);return(0,uu.useMemo)(()=>e??t,[e,t])}function z$(e,t,r){return(t=L$(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function L$(e){var t=B$(e,"string");return typeof t=="symbol"?t:t+""}function B$(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var vT="init",hT="pending",yT="active",$$="completed";function T1(e){return Math.max(0,e)}var M1=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;z$(this,"state",vT),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=T1(t.animationDuration),this.animationBegin=T1(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===vT)return this.state=hT,this.beginStartedTime=t,this.animationBegin;if(this.getState()===hT){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=yT,this.animationStartedTime=t,this.nextAnimationUpdate(0)):T1(this.animationBegin-r)}if(this.getState()===yT){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=$$}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},Rg=class extends M1{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Bn(this.getFrom(),this.getTo(),this.getProgress()))}};var ev=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),a=null,i=o=>{o-n>=r?t(o):a=requestAnimationFrame(i)};return a=requestAnimationFrame(i),()=>{a!=null&&cancelAnimationFrame(a)}}};function U$(e,t){return W$(e)||F$(e,t)||V$(e,t)||H$()}function H$(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V$(e,t){if(e){if(typeof e=="string")return xT(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?xT(e,t):void 0}}function xT(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},bT=0,D1=1;function tv(e){var t=Ct(e,q$),r=t.animationId,n=t.isActive,a=t.canBegin,i=t.duration,o=t.easing,l=t.begin,s=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=Xg(),f=n==="auto"?!Un.isSsr&&!d:n,p=gT(t.animationController),g=(0,Ed.useState)(f?bT:D1),h=U$(g,2),x=h[0],m=h[1];return(0,Ed.useEffect)(()=>{f||m(D1)},[f]),(0,Ed.useEffect)(()=>{var v=fT(o);if(!f||!a||v==null)return ra;var y=new ev,b=new Rg({animationId:r,easing:v,animationDuration:i,animationBegin:l,onAnimationStart:u,onAnimationEnd:s,from:bT,to:D1});return p(y,b,m)},[p,r,f,a,i,o,l,u,s]),c(Number(x))}var P1=Q(R());function rv(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,P1.useRef)(ni(t)),n=(0,P1.useRef)(e);return n.current!==e&&(r.current=ni(t),n.current=e),r.current}var Y$=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),wT=(e,t,r)=>e.map(n=>"".concat(Y$(n)," ").concat(t,"ms ").concat(r)).join(",");var K$=["radius"],G$=["radius"],ST,AT,NT,CT,_T,kT,ET,OT,TT,MT;function DT(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function PT(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var i=xa(r),o=xa(n),l=Math.min(Math.abs(i)/2,Math.abs(o)/2),s=o>=0?1:-1,u=i>=0?1:-1,c=o>=0&&i>=0||o<0&&i<0?1:0,d;if(l>0&&Array.isArray(a)){for(var f=[0,0,0,0],p=0,g=4;pl?l:x}d=nr(ST||(ST=Aa(["M",",",""])),e,t+s*f[0]),f[0]>0&&(d+=nr(AT||(AT=Aa(["A ",",",",0,0,",",",",",""])),f[0],f[0],c,e+u*f[0],t)),d+=nr(NT||(NT=Aa(["L ",",",""])),e+r-u*f[1],t),f[1]>0&&(d+=nr(CT||(CT=Aa(["A ",",",",0,0,",`, + `,",",""])),f[1],f[1],c,e+r,t+s*f[1])),d+=nr(_T||(_T=Aa(["L ",",",""])),e+r,t+n-s*f[2]),f[2]>0&&(d+=nr(kT||(kT=Aa(["A ",",",",0,0,",`, + `,",",""])),f[2],f[2],c,e+r-u*f[2],t+n)),d+=nr(ET||(ET=Aa(["L ",",",""])),e+u*f[3],t+n),f[3]>0&&(d+=nr(OT||(OT=Aa(["A ",",",",0,0,",`, + `,",",""])),f[3],f[3],c,e,t+n-s*f[3])),d+="Z"}else if(l>0&&a===+a&&a>0){var m=Math.min(l,a);d=nr(TT||(TT=Aa(["M ",",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` - A `,",",",0,0,",",",","," Z"])),e,t+s*m,m,m,c,e+u*m,t,e+r-u*m,t,m,m,c,e+r,t+s*m,e+r,t+n-s*m,m,m,c,e+r-u*m,t+n,e+u*m,t+n,m,m,c,e,t+n-s*m)}else d=tr(CT||(CT=wa(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},MT={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},DT=e=>{var t=At(e,MT),r=(0,Un.useRef)(null),n=(0,Un.useState)(-1),a=YU(n,2),i=a[0],o=a[1];(0,Un.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var M=r.current.getTotalLength();M&&o(M)}catch{}},[]);var l=t.x,s=t.y,u=t.width,c=t.height,d=t.radius,f=t.className,p=t.animationEasing,v=t.animationDuration,g=t.animationBegin,b=t.isAnimationActive,m=t.isUpdateAnimationActive,h=(0,Un.useRef)(u),x=(0,Un.useRef)(c),w=(0,Un.useRef)(l),E=(0,Un.useRef)(s),C=(0,Un.useMemo)(()=>({x:l,y:s,width:u,height:c,radius:d}),[l,s,u,c,d]),T=Jv(C,"rectangle-");if(l!==+l||s!==+s||u!==+u||c!==+c||u===0||c===0)return null;var _=Te("recharts-rectangle",f);if(!m){var I=Lt(t),z=I.radius,B=OT(I,BU);return Rv.createElement("path",eh({},B,{x:ga(l),y:ga(s),width:ga(u),height:ga(c),radius:typeof d=="number"?d:void 0,className:_,d:TT(l,s,u,c,d)}))}var $=h.current,X=x.current,H=w.current,q=E.current,y="0px ".concat(i===-1?1:i,"px"),N="".concat(i,"px ").concat(i,"px"),O=vT(["strokeDasharray"],v,typeof p=="string"?p:MT.animationEasing);return Rv.createElement(Qv,{animationId:T,key:T,canBegin:i>0,duration:v,easing:p,isActive:m,begin:g},M=>{var A=zn($,u,M),k=zn(X,c,M),V=zn(H,l,M),G=zn(q,s,M);r.current&&(h.current=A,x.current=k,w.current=V,E.current=G);var Q;b?M>0?Q={transition:O,strokeDasharray:N}:Q={strokeDasharray:y}:Q={strokeDasharray:N};var se=Lt(t),ue=se.radius,pe=OT(se,UU);return Rv.createElement("path",eh({},pe,{radius:typeof d=="number"?d:void 0,className:_,d:TT(V,G,A,k,d),ref:r,style:ET(ET({},Q),t.style)}))})};function PT(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function jT(e){for(var t=1;te*180/Math.PI,Tt=(e,t,r,n)=>({x:e+Math.cos(-Ed*n)*r,y:t+Math.sin(-Ed*n)*r}),IT=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},RU=(e,t)=>{var r=e.x,n=e.y,a=t.x,i=t.y;return Math.sqrt((r-a)**2+(n-i)**2)},e$=(e,t)=>{var r=e.x,n=e.y,a=t.cx,i=t.cy,o=RU({x:r,y:n},{x:a,y:i});if(o<=0)return{radius:o,angle:0};var l=(r-a)/o,s=Math.acos(l);return n>i&&(s=2*Math.PI-s),{radius:o,angle:JU(s),angleInRadian:s}},t$=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),a=Math.floor(r/360),i=Math.min(n,a);return{startAngle:t-i*360,endAngle:r-i*360}},r$=(e,t)=>{var r=t.startAngle,n=t.endAngle,a=Math.floor(r/360),i=Math.floor(n/360),o=Math.min(a,i);return e+o*360},zT=(e,t)=>{var r=e.relativeX,n=e.relativeY,a=e$({x:r,y:n},t),i=a.radius,o=a.angle,l=t.innerRadius,s=t.outerRadius;if(is||i===0)return null;var u=t$(t),c=u.startAngle,d=u.endAngle,f=o,p;if(c<=d){for(;f>d;)f-=360;for(;f=c&&f<=d}else{for(;f>c;)f-=360;for(;f=d&&f<=c}return p?jT(jT({},t),{},{radius:i,angle:r$(f,t)}):null};function th(e){var t=e.cx,r=e.cy,n=e.radius,a=e.startAngle,i=e.endAngle,o=Tt(t,r,n,a),l=Tt(t,r,n,i);return{points:[o,l],cx:t,cy:r,radius:n,startAngle:a,endAngle:i}}var YT=J(R());var LT,BT,UT,$T,HT,VT,FT;function T1(){return T1=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=rr(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},rh=e=>{var t=e.cx,r=e.cy,n=e.radius,a=e.angle,i=e.sign,o=e.isExternal,l=e.cornerRadius,s=e.cornerIsExternal,u=l*(o?1:-1)+n,c=Math.asin(l/u)/Ed,d=s?a:a+i*c,f=Tt(t,r,u,d),p=Tt(t,r,n,d),v=s?a-i*c:a,g=Tt(t,r,u*Math.cos(c*Ed),v);return{center:f,circleTangency:p,lineTangency:g,theta:c}},qT=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,i=e.startAngle,o=e.endAngle,l=n$(i,o),s=i+l,u=Tt(t,r,a,i),c=Tt(t,r,a,s),d=tr(LT||(LT=Jo(["M ",",",` + A `,",",",0,0,",",",","," Z"])),e,t+s*m,m,m,c,e+u*m,t,e+r-u*m,t,m,m,c,e+r,t+s*m,e+r,t+n-s*m,m,m,c,e+r-u*m,t+n,e+u*m,t+n,m,m,c,e,t+n-s*m)}else d=nr(MT||(MT=Aa(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},LT={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},BT=e=>{var t=Ct(e,LT),r=(0,Hn.useRef)(null),n=(0,Hn.useState)(-1),a=R$(n,2),i=a[0],o=a[1];(0,Hn.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var C=r.current.getTotalLength();C&&o(C)}catch{}},[]);var l=t.x,s=t.y,u=t.width,c=t.height,d=t.radius,f=t.className,p=t.animationEasing,g=t.animationDuration,h=t.animationBegin,x=t.isAnimationActive,m=t.isUpdateAnimationActive,v=(0,Hn.useRef)(u),y=(0,Hn.useRef)(c),b=(0,Hn.useRef)(l),k=(0,Hn.useRef)(s),N=(0,Hn.useMemo)(()=>({x:l,y:s,width:u,height:c,radius:d}),[l,s,u,c,d]),D=rv(N,"rectangle-");if(l!==+l||s!==+s||u!==+u||c!==+c||u===0||c===0)return null;var _=De("recharts-rectangle",f);if(!m){var M=Ut(t),z=M.radius,$=jT(M,K$);return nv.createElement("path",av({},$,{x:xa(l),y:xa(s),width:xa(u),height:xa(c),radius:typeof d=="number"?d:void 0,className:_,d:zT(l,s,u,c,d)}))}var U=v.current,G=y.current,j=b.current,V=k.current,w="0px ".concat(i===-1?1:i,"px"),O="".concat(i,"px ").concat(i,"px"),E=wT(["strokeDasharray"],g,typeof p=="string"?p:LT.animationEasing);return nv.createElement(tv,{animationId:D,key:D,canBegin:i>0,duration:g,easing:p,isActive:m,begin:h},C=>{var S=Bn(U,u,C),T=Bn(G,c,C),F=Bn(j,l,C),X=Bn(V,s,C);r.current&&(v.current=S,y.current=T,b.current=F,k.current=X);var J;x?C>0?J={transition:E,strokeDasharray:O}:J={strokeDasharray:w}:J={strokeDasharray:O};var se=Ut(t),ce=se.radius,ge=jT(se,G$);return nv.createElement("path",av({},ge,{radius:typeof d=="number"?d:void 0,className:_,d:zT(F,X,S,T,d),ref:r,style:PT(PT({},J),t.style)}))})};function $T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function UT(e){for(var t=1;te*180/Math.PI,Dt=(e,t,r,n)=>({x:e+Math.cos(-Od*n)*r,y:t+Math.sin(-Od*n)*r}),HT=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},sU=(e,t)=>{var r=e.x,n=e.y,a=t.x,i=t.y;return Math.sqrt((r-a)**2+(n-i)**2)},uU=(e,t)=>{var r=e.x,n=e.y,a=t.cx,i=t.cy,o=sU({x:r,y:n},{x:a,y:i});if(o<=0)return{radius:o,angle:0};var l=(r-a)/o,s=Math.acos(l);return n>i&&(s=2*Math.PI-s),{radius:o,angle:lU(s),angleInRadian:s}},cU=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),a=Math.floor(r/360),i=Math.min(n,a);return{startAngle:t-i*360,endAngle:r-i*360}},dU=(e,t)=>{var r=t.startAngle,n=t.endAngle,a=Math.floor(r/360),i=Math.floor(n/360),o=Math.min(a,i);return e+o*360},VT=(e,t)=>{var r=e.relativeX,n=e.relativeY,a=uU({x:r,y:n},t),i=a.radius,o=a.angle,l=t.innerRadius,s=t.outerRadius;if(is||i===0)return null;var u=cU(t),c=u.startAngle,d=u.endAngle,f=o,p;if(c<=d){for(;f>d;)f-=360;for(;f=c&&f<=d}else{for(;f>c;)f-=360;for(;f=d&&f<=c}return p?UT(UT({},t),{},{radius:i,angle:dU(f,t)}):null};function iv(e){var t=e.cx,r=e.cy,n=e.radius,a=e.startAngle,i=e.endAngle,o=Dt(t,r,n,a),l=Dt(t,r,n,i);return{points:[o,l],cx:t,cy:r,radius:n,startAngle:a,endAngle:i}}var ZT=Q(R());var FT,WT,qT,YT,KT,GT,XT;function j1(){return j1=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=ar(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},ov=e=>{var t=e.cx,r=e.cy,n=e.radius,a=e.angle,i=e.sign,o=e.isExternal,l=e.cornerRadius,s=e.cornerIsExternal,u=l*(o?1:-1)+n,c=Math.asin(l/u)/Od,d=s?a:a+i*c,f=Dt(t,r,u,d),p=Dt(t,r,n,d),g=s?a-i*c:a,h=Dt(t,r,u*Math.cos(c*Od),g);return{center:f,circleTangency:p,lineTangency:h,theta:c}},QT=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,i=e.startAngle,o=e.endAngle,l=fU(i,o),s=i+l,u=Dt(t,r,a,i),c=Dt(t,r,a,s),d=nr(FT||(FT=el(["M ",",",` A `,",",`,0, `,",",`, `,",",` - `])),u.x,u.y,a,a,+(Math.abs(l)>180),+(i>s),c.x,c.y);if(n>0){var f=Tt(t,r,n,i),p=Tt(t,r,n,s);d+=tr(BT||(BT=Jo(["L ",",",` + `])),u.x,u.y,a,a,+(Math.abs(l)>180),+(i>s),c.x,c.y);if(n>0){var f=Dt(t,r,n,i),p=Dt(t,r,n,s);d+=nr(WT||(WT=el(["L ",",",` A `,",",`,0, `,",",`, - `,","," Z"])),p.x,p.y,n,n,+(Math.abs(l)>180),+(i<=s),f.x,f.y)}else d+=tr(UT||(UT=Jo(["L ",","," Z"])),t,r);return d},a$=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,i=e.cornerRadius,o=e.forceCornerRadius,l=e.cornerIsExternal,s=e.startAngle,u=e.endAngle,c=rr(u-s),d=rh({cx:t,cy:r,radius:a,angle:s,sign:c,cornerRadius:i,cornerIsExternal:l}),f=d.circleTangency,p=d.lineTangency,v=d.theta,g=rh({cx:t,cy:r,radius:a,angle:u,sign:-c,cornerRadius:i,cornerIsExternal:l}),b=g.circleTangency,m=g.lineTangency,h=g.theta,x=l?Math.abs(s-u):Math.abs(s-u)-v-h;if(x<0)return o?tr($T||($T=Jo(["M ",",",` + `,","," Z"])),p.x,p.y,n,n,+(Math.abs(l)>180),+(i<=s),f.x,f.y)}else d+=nr(qT||(qT=el(["L ",","," Z"])),t,r);return d},pU=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,i=e.cornerRadius,o=e.forceCornerRadius,l=e.cornerIsExternal,s=e.startAngle,u=e.endAngle,c=ar(u-s),d=ov({cx:t,cy:r,radius:a,angle:s,sign:c,cornerRadius:i,cornerIsExternal:l}),f=d.circleTangency,p=d.lineTangency,g=d.theta,h=ov({cx:t,cy:r,radius:a,angle:u,sign:-c,cornerRadius:i,cornerIsExternal:l}),x=h.circleTangency,m=h.lineTangency,v=h.theta,y=l?Math.abs(s-u):Math.abs(s-u)-g-v;if(y<0)return o?nr(YT||(YT=el(["M ",",",` a`,",",",0,0,1,",`,0 a`,",",",0,0,1,",`,0 - `])),p.x,p.y,i,i,i*2,i,i,-i*2):qT({cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:s,endAngle:u});var w=tr(HT||(HT=Jo(["M ",",",` + `])),p.x,p.y,i,i,i*2,i,i,-i*2):QT({cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:s,endAngle:u});var b=nr(KT||(KT=el(["M ",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` A`,",",",0,0,",",",",",` - `])),p.x,p.y,i,i,+(c<0),f.x,f.y,a,a,+(x>180),+(c<0),b.x,b.y,i,i,+(c<0),m.x,m.y);if(n>0){var E=rh({cx:t,cy:r,radius:n,angle:s,sign:c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),C=E.circleTangency,T=E.lineTangency,_=E.theta,I=rh({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),z=I.circleTangency,B=I.lineTangency,$=I.theta,X=l?Math.abs(s-u):Math.abs(s-u)-_-$;if(X<0&&i===0)return"".concat(w,"L").concat(t,",").concat(r,"Z");w+=tr(VT||(VT=Jo(["L",",",` + `])),p.x,p.y,i,i,+(c<0),f.x,f.y,a,a,+(y>180),+(c<0),x.x,x.y,i,i,+(c<0),m.x,m.y);if(n>0){var k=ov({cx:t,cy:r,radius:n,angle:s,sign:c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),N=k.circleTangency,D=k.lineTangency,_=k.theta,M=ov({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),z=M.circleTangency,$=M.lineTangency,U=M.theta,G=l?Math.abs(s-u):Math.abs(s-u)-_-U;if(G<0&&i===0)return"".concat(b,"L").concat(t,",").concat(r,"Z");b+=nr(GT||(GT=el(["L",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",","Z"])),B.x,B.y,i,i,+(c<0),z.x,z.y,n,n,+(X>180),+(c>0),C.x,C.y,i,i,+(c<0),T.x,T.y)}else w+=tr(FT||(FT=Jo(["L",",","Z"])),t,r);return w},i$={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},WT=e=>{var t=At(e,i$),r=t.cx,n=t.cy,a=t.innerRadius,i=t.outerRadius,o=t.cornerRadius,l=t.forceCornerRadius,s=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(i0&&Math.abs(u-c)<360?g=a$({cx:r,cy:n,innerRadius:a,outerRadius:i,cornerRadius:Math.min(v,p/2),forceCornerRadius:l,cornerIsExternal:s,startAngle:u,endAngle:c}):g=qT({cx:r,cy:n,innerRadius:a,outerRadius:i,startAngle:u,endAngle:c}),YT.createElement("path",T1({},Lt(t),{className:f,d:g}))};function KT(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(Pm(t)){if(e==="centric"){var n=t.cx,a=t.cy,i=t.innerRadius,o=t.outerRadius,l=t.angle,s=Tt(n,a,i,l),u=Tt(n,a,o,l);return[{x:s.x,y:s.y},{x:u.x,y:u.y}]}return th(t)}}function GT(e){return lv(e)?NaN:Number(e)}function nh(e){return e?(e=GT(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function ah(e,t,r){r&&typeof r!="number"&&dd(e,t,r)&&(t=r=void 0),e=nh(e),t===void 0?(t=e,e=0):t=nh(t),r=r===void 0?ee.chartData,M1=W([Jr],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),Od=(e,t,r,n)=>n?M1(e):Jr(e),XT=(e,t,r)=>r?M1(e):Jr(e),ZT=W([Od],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),Lae=W([M1],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),QT=W([Jr],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function D1(e,t){return u$(e)||s$(e,t)||l$(e,t)||o$()}function o$(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function l$(e,t){if(e){if(typeof e=="string")return JT(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?JT(e,t):void 0}}function JT(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=kd(e,2),r=t[0],n=t[1],a=r,i=n;return r>n&&(a=n,i=r),[a,i]},L1=(e,t,r)=>{if(e.lte(0))return new qe.default(0);var n=I1(e.toNumber()),a=new qe.default(10).pow(n),i=e.div(a),o=n!==1?.05:.1,l=new qe.default(Math.ceil(i.div(o).toNumber())).add(r).mul(o),s=l.mul(a);return t?new qe.default(s.toNumber()):new qe.default(Math.ceil(s.toNumber()))},a3=(e,t,r)=>{var n;if(e.lte(0))return new qe.default(0);var a=[1,2,2.5,5],i=e.toNumber(),o=Math.floor(new qe.default(i).abs().log(10).toNumber()),l=new qe.default(10).pow(o),s=e.div(l).toNumber(),u=a.findIndex(p=>p>=s-1e-10);if(u===-1&&(l=l.mul(10),u=0),u+=r,u>=a.length){var c=Math.floor(u/a.length);u%=a.length,l=l.mul(new qe.default(10).pow(c))}var d=(n=a[u])!==null&&n!==void 0?n:1,f=new qe.default(d).mul(l);return t?f:new qe.default(Math.ceil(f.toNumber()))},m$=(e,t,r)=>{var n=new qe.default(1),a=new qe.default(e);if(!a.isint()&&r){var i=Math.abs(e);i<1?(n=new qe.default(10).pow(I1(e)-1),a=new qe.default(Math.floor(a.div(n).toNumber())).mul(n)):i>1&&(a=new qe.default(Math.floor(e)))}else e===0?a=new qe.default(Math.floor((t-1)/2)):r||(a=new qe.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],s=0;s4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:L1;if(!Number.isFinite((r-t)/(n-1)))return{step:new qe.default(0),tickMin:new qe.default(0),tickMax:new qe.default(0)};var l=o(new qe.default(r).sub(t).div(n-1),a,i),s;t<=0&&r>=0?s=new qe.default(0):(s=new qe.default(t).add(r).div(2),s=s.sub(new qe.default(s).mod(l)));var u=Math.ceil(s.sub(t).div(l).toNumber()),c=Math.ceil(new qe.default(r).sub(s).div(l).toNumber()),d=u+c+1;return d>n?i3(t,r,n,a,i+1,o):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:l,tickMin:s.sub(new qe.default(u).mul(l)),tickMax:s.add(new qe.default(c).mul(l))})};var lh=function(t){var r=kd(t,2),n=r[0],a=r[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=Math.max(i,2),u=n3([n,a]),c=kd(u,2),d=c[0],f=c[1];if(d===-1/0||f===1/0){var p=f===1/0?[d,...Array(i-1).fill(1/0)]:[...Array(i-1).fill(-1/0),f];return n>a?p.reverse():p}if(d===f)return m$(d,i,o);var v=l==="snap125"?a3:L1,g=i3(d,f,s,o,0,v),b=g.step,m=g.tickMin,h=g.tickMax,x=z1(m,h.add(new qe.default(.1).mul(b)),b);return n>a?x.reverse():x},sh=function(t,r){var n=kd(t,2),a=n[0],i=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=n3([a,i]),u=kd(s,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[a,i];if(c===d)return[c];var f=l==="snap125"?a3:L1,p=Math.max(r,2),v=f(new qe.default(d).sub(c).div(p-1),o,0),g=[...z1(new qe.default(c),new qe.default(d),v),d];if(o===!1){g=g.map(m=>Math.round(m));var b=g.length-1;b>0&&g[b]===g[b-1]&&(g=g.slice(0,b))}return a>i?g.reverse():g};var o3=e=>e.rootProps.barCategoryGap;var su=e=>e.rootProps.stackOffset,uh=e=>e.rootProps.reverseStackOrder,uu=e=>e.options.chartName,ch=e=>e.rootProps.syncId,B1=e=>e.rootProps.syncMethod,dh=e=>e.options.eventEmitter,l3=e=>e.rootProps.baseValue;var rt={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3};var ao={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:"auto",orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:rt.axis};var aa={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:"auto",label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:rt.axis};var Ro=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function el(e,t,r){if(r!=="auto")return r;if(e!=null)return Qr(e,t)?"category":"number"}function s3(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function fh(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},ph=W([y$,S1],(e,t)=>{var r;if(e!=null)return e;var n=(r=el(t,"angleAxis",u3.type))!==null&&r!==void 0?r:"category";return fh(fh({},u3),{},{type:n})}),x$=(e,t)=>e.polarAxis.radiusAxis[t],mh=W([x$,S1],(e,t)=>{var r;if(e!=null)return e;var n=(r=el(t,"radiusAxis",c3.type))!==null&&r!==void 0?r:"category";return fh(fh({},c3),{},{type:n})}),vh=e=>e.polarOptions,U1=W([Cr,_r,gt],IT),d3=W([vh,U1],(e,t)=>{if(e!=null)return In(e.innerRadius,t,0)}),f3=W([vh,U1],(e,t)=>{if(e!=null)return In(e.outerRadius,t,t*.8)}),b$=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},$1=W([vh],b$),pie=W([ph,$1],Ro),H1=W([U1,d3,f3],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),mie=W([mh,H1],Ro),hh=W([Qe,vh,d3,f3,Cr,_r],(e,t,r,n,a,i)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var o=t.cx,l=t.cy,s=t.startAngle,u=t.endAngle;return{cx:In(o,a,a/2),cy:In(l,i,i/2),innerRadius:r,outerRadius:n,startAngle:s,endAngle:u,clockWise:!1}}});var ar=(e,t)=>t;var Td=(e,t,r)=>r;function cu(e){return e?.id}function gh(e,t,r){var n=t.chartData,a=n===void 0?[]:n,i=r.allowDuplicatedCategory,o=r.dataKey,l=new Map;return e.forEach(s=>{var u,c=(u=s.data)!==null&&u!==void 0?u:a;if(!(c==null||c.length===0)){var d=cu(s);c.forEach((f,p)=>{var v=o==null||i?p:String(ht(f,o,null)),g=ht(f,s.dataKey,0),b;l.has(v)?b=l.get(v):b={},Object.assign(b,{[d]:g}),l.set(v,b)})}}),Array.from(l.values())}function Md(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var tl=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function du(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function p3(e,t){if(e.length===t.length){for(var r=0;r{var t=Qe(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var io=e=>e.tooltip.settings.axisId;function Dd(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),a=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(i){function o(){return i.apply(this,arguments)}return o.toString=function(){return i.toString()},o})(()=>a),rangeMin:()=>a[0],rangeMax:()=>a[1],isInRange(i){var o=a[0],l=a[1];return o<=l?i>=o&&i<=l:i>=l&&i<=o},bandwidth:r?()=>r.call(e):void 0,ticks:t?i=>t.call(e,i):void 0,map:(i,o)=>{var l=e(i);if(l!=null){if(e.bandwidth&&o!==null&&o!==void 0&&o.position){var s=e.bandwidth();switch(o.position){case"middle":l+=s/2;break;case"end":l+=s;break;default:break}}return l}}}}}var m3=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!yn(t)){for(var r,n,a=0;an)&&(n=i))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var Rd={};uj(Rd,{scaleBand:()=>zd,scaleDiverging:()=>Jh,scaleDivergingLog:()=>b2,scaleDivergingPow:()=>Rh,scaleDivergingSqrt:()=>z4,scaleDivergingSymlog:()=>w2,scaleIdentity:()=>zh,scaleImplicit:()=>Nh,scaleLinear:()=>Ih,scaleLog:()=>Lh,scaleOrdinal:()=>mu,scalePoint:()=>w3,scalePow:()=>Kd,scaleQuantile:()=>$h,scaleQuantize:()=>Hh,scaleRadial:()=>Uh,scaleSequential:()=>Gh,scaleSequentialLog:()=>y2,scaleSequentialPow:()=>Xh,scaleSequentialQuantile:()=>Zh,scaleSequentialSqrt:()=>I4,scaleSequentialSymlog:()=>x2,scaleSqrt:()=>n4,scaleSymlog:()=>Bh,scaleThreshold:()=>Vh,scaleTime:()=>h2,scaleUtc:()=>g2,tickFormat:()=>Vd});function Br(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function V1(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function rl(e){let t,r,n;e.length!==2?(t=Br,r=(l,s)=>Br(e(l),s),n=(l,s)=>e(l)-s):(t=e===Br||e===V1?e:w$,r=e,n=e);function a(l,s,u=0,c=l.length){if(u>>1;r(l[d],s)<0?u=d+1:c=d}while(u>>1;r(l[d],s)<=0?u=d+1:c=d}while(uu&&n(l[d-1],s)>-n(l[d],s)?d-1:d}return{left:a,center:o,right:i}}function w$(){return 0}function Pd(e){return e===null?NaN:+e}function*v3(e,t){if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&(yield r);else{let r=-1;for(let n of e)(n=t(n,++r,e))!=null&&(n=+n)>=n&&(yield n)}}var h3=rl(Br),g3=h3.right,S$=h3.left,A$=rl(Pd).center,ia=g3;var fu=class extends Map{constructor(t,r=_$){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,a]of t)this.set(n,a)}get(t){return super.get(y3(this,t))}has(t){return super.has(y3(this,t))}set(t,r){return super.set(N$(this,t),r)}delete(t){return super.delete(C$(this,t))}};function y3({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function N$({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function C$({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function _$(e){return e!==null&&typeof e=="object"?e.valueOf():e}function x3(e=Br){if(e===Br)return F1;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{let n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function F1(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var E$=Math.sqrt(50),O$=Math.sqrt(10),k$=Math.sqrt(2);function yh(e,t,r){let n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),i=n/Math.pow(10,a),o=i>=E$?10:i>=O$?5:i>=k$?2:1,l,s,u;return a<0?(u=Math.pow(10,-a)/o,l=Math.round(e*u),s=Math.round(t*u),l/ut&&--s,u=-u):(u=Math.pow(10,a)*o,l=Math.round(e/u),s=Math.round(t/u),l*ut&&--s),s0))return[];if(e===t)return[e];let n=t=a))return[];let l=i-a+1,s=new Array(l);if(n)if(o<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let a of e)(a=t(a,++n,e))!=null&&(r=a)&&(r=a)}return r}function bh(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let a of e)(a=t(a,++n,e))!=null&&(r>a||r===void 0&&a>=a)&&(r=a)}return r}function wh(e,t,r=0,n=1/0,a){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(a=a===void 0?F1:x3(a);n>r;){if(n-r>600){let s=n-r+1,u=t-r+1,c=Math.log(s),d=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*d*(s-d)/s)*(u-s/2<0?-1:1),p=Math.max(r,Math.floor(t-u*d/s+f)),v=Math.min(n,Math.floor(t+(s-u)*d/s+f));wh(e,t,p,v,a)}let i=e[t],o=r,l=n;for(Id(e,r,t),a(e[n],i)>0&&Id(e,r,n);o0;)--l}a(e[r],i)===0?Id(e,r,l):(++l,Id(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function Id(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function Sh(e,t,r){if(e=Float64Array.from(v3(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return bh(e);if(t>=1)return xh(e);var n,a=(n-1)*t,i=Math.floor(a),o=xh(wh(e,i).subarray(0,i+1)),l=bh(e.subarray(i+1));return o+(l-o)*(a-i)}}function Y1(e,t,r=Pd){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,a=(n-1)*t,i=Math.floor(a),o=+r(e[i],i,e),l=+r(e[i+1],i+1,e);return o+(l-o)*(a-i)}}function Ah(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var n=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,i=new Array(a);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?_h(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?_h(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=M$.exec(e))?new Rr(t[1],t[2],t[3],1):(t=D$.exec(e))?new Rr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=P$.exec(e))?_h(t[1],t[2],t[3],t[4]):(t=j$.exec(e))?_h(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=I$.exec(e))?O3(t[1],t[2]/100,t[3]/100,1):(t=z$.exec(e))?O3(t[1],t[2]/100,t[3]/100,t[4]):S3.hasOwnProperty(e)?C3(S3[e]):e==="transparent"?new Rr(NaN,NaN,NaN,0):null}function C3(e){return new Rr(e>>16&255,e>>8&255,e&255,1)}function _h(e,t,r,n){return n<=0&&(e=t=r=NaN),new Rr(e,t,r,n)}function U$(e){return e instanceof Ud||(e=oo(e)),e?(e=e.rgb(),new Rr(e.r,e.g,e.b,e.opacity)):new Rr}function hu(e,t,r,n){return arguments.length===1?U$(e):new Rr(e,t,r,n??1)}function Rr(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Ch(Rr,hu,q1(Ud,{brighter(e){return e=e==null?Oh:Math.pow(Oh,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ld:Math.pow(Ld,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rr(il(this.r),il(this.g),il(this.b),kh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:_3,formatHex:_3,formatHex8:$$,formatRgb:E3,toString:E3}));function _3(){return`#${al(this.r)}${al(this.g)}${al(this.b)}`}function $$(){return`#${al(this.r)}${al(this.g)}${al(this.b)}${al((isNaN(this.opacity)?1:this.opacity)*255)}`}function E3(){let e=kh(this.opacity);return`${e===1?"rgb(":"rgba("}${il(this.r)}, ${il(this.g)}, ${il(this.b)}${e===1?")":`, ${e})`}`}function kh(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function il(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function al(e){return e=il(e),(e<16?"0":"")+e.toString(16)}function O3(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new oa(e,t,r,n)}function T3(e){if(e instanceof oa)return new oa(e.h,e.s,e.l,e.opacity);if(e instanceof Ud||(e=oo(e)),!e)return new oa;if(e instanceof oa)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),i=Math.max(t,r,n),o=NaN,l=i-a,s=(i+a)/2;return l?(t===i?o=(r-n)/l+(r0&&s<1?0:o,new oa(o,l,s,e.opacity)}function M3(e,t,r,n){return arguments.length===1?T3(e):new oa(e,t,r,n??1)}function oa(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Ch(oa,M3,q1(Ud,{brighter(e){return e=e==null?Oh:Math.pow(Oh,e),new oa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ld:Math.pow(Ld,e),new oa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new Rr(W1(e>=240?e-240:e+120,a,n),W1(e,a,n),W1(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new oa(k3(this.h),Eh(this.s),Eh(this.l),kh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=kh(this.opacity);return`${e===1?"hsl(":"hsla("}${k3(this.h)}, ${Eh(this.s)*100}%, ${Eh(this.l)*100}%${e===1?")":`, ${e})`}`}}));function k3(e){return e=(e||0)%360,e<0?e+360:e}function Eh(e){return Math.max(0,Math.min(1,e||0))}function W1(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}function K1(e,t,r,n,a){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*r+(1+3*e+3*i-3*o)*n+o*a)/6}function D3(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),a=e[n],i=e[n+1],o=n>0?e[n-1]:2*a-i,l=n()=>e;function H$(e,t){return function(r){return e+r*t}}function V$(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function j3(e){return(e=+e)==1?Th:function(t,r){return r-t?V$(t,r,e):$d(isNaN(t)?r:t)}}function Th(e,t){var r=t-e;return r?H$(e,r):$d(isNaN(e)?t:e)}var G1=(function e(t){var r=j3(t);function n(a,i){var o=r((a=hu(a)).r,(i=hu(i)).r),l=r(a.g,i.g),s=r(a.b,i.b),u=Th(a.opacity,i.opacity);return function(c){return a.r=o(c),a.g=l(c),a.b=s(c),a.opacity=u(c),a+""}}return n.gamma=e,n})(1);function I3(e){return function(t){var r=t.length,n=new Array(r),a=new Array(r),i=new Array(r),o,l;for(o=0;or&&(i=t.slice(r,i),l[o]?l[o]+=i:l[++o]=i),(n=n[0])===(a=a[0])?l[o]?l[o]+=a:l[++o]=a:(l[++o]=null,s.push({i:o,x:lo(n,a)})),r=X1.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function W$(e,t,r){var n=e[0],a=e[1],i=t[0],o=t[1];return a2?K$:W$,s=u=null,d}function d(f){return f==null||isNaN(f=+f)?i:(s||(s=l(e.map(n),t,r)))(n(o(f)))}return d.invert=function(f){return o(a((u||(u=l(t,e.map(n),lo)))(f)))},d.domain=function(f){return arguments.length?(e=Array.from(f,so),c()):e.slice()},d.range=function(f){return arguments.length?(t=Array.from(f),c()):t.slice()},d.rangeRound=function(f){return t=Array.from(f),r=ol,c()},d.clamp=function(f){return arguments.length?(o=f?!0:ir,c()):o!==ir},d.interpolate=function(f){return arguments.length?(r=f,c()):r},d.unknown=function(f){return arguments.length?(i=f,d):i},function(f,p){return n=f,a=p,c()}}function sl(){return ll()(ir,ir)}function F3(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function ul(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Na(e){return e=ul(Math.abs(e)),e?e[1]:NaN}function Y3(e,t){return function(r,n){for(var a=r.length,i=[],o=0,l=e[0],s=0;a>0&&l>0&&(s+l+1>n&&(l=Math.max(1,n-s)),i.push(r.substring(a-=l,a+l)),!((s+=l+1)>n));)l=e[o=(o+1)%e.length];return i.reverse().join(t)}}function q3(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var G$=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ca(e){if(!(t=G$.exec(e)))throw new Error("invalid format: "+e);var t;return new Dh({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Ca.prototype=Dh.prototype;function Dh(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Dh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function W3(e){e:for(var t=e.length,r=1,n=-1,a;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(a+1):e}var Hd;function K3(e,t){var r=ul(e,t);if(!r)return Hd=void 0,e.toPrecision(t);var n=r[0],a=r[1],i=a-(Hd=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=n.length;return i===o?n:i>o?n+new Array(i-o+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+ul(e,Math.max(0,t+i-1))[0]}function R1(e,t){var r=ul(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}var e2={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:F3,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>R1(e*100,t),r:R1,s:K3,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function t2(e){return e}var G3=Array.prototype.map,X3=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Z3(e){var t=e.grouping===void 0||e.thousands===void 0?t2:Y3(G3.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",i=e.numerals===void 0?t2:q3(G3.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"\u2212":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function u(d,f){d=Ca(d);var p=d.fill,v=d.align,g=d.sign,b=d.symbol,m=d.zero,h=d.width,x=d.comma,w=d.precision,E=d.trim,C=d.type;C==="n"?(x=!0,C="g"):e2[C]||(w===void 0&&(w=12),E=!0,C="g"),(m||p==="0"&&v==="=")&&(m=!0,p="0",v="=");var T=(f&&f.prefix!==void 0?f.prefix:"")+(b==="$"?r:b==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():""),_=(b==="$"?n:/[%p]/.test(C)?o:"")+(f&&f.suffix!==void 0?f.suffix:""),I=e2[C],z=/[defgprs%]/.test(C);w=w===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function B($){var X=T,H=_,q,y,N;if(C==="c")H=I($)+H,$="";else{$=+$;var O=$<0||1/$<0;if($=isNaN($)?s:I(Math.abs($),w),E&&($=W3($)),O&&+$==0&&g!=="+"&&(O=!1),X=(O?g==="("?g:l:g==="-"||g==="("?"":g)+X,H=(C==="s"&&!isNaN($)&&Hd!==void 0?X3[8+Hd/3]:"")+H+(O&&g==="("?")":""),z){for(q=-1,y=$.length;++qN||N>57){H=(N===46?a+$.slice(q+1):$.slice(q))+H,$=$.slice(0,q);break}}}x&&!m&&($=t($,1/0));var M=X.length+$.length+H.length,A=M>1)+X+$+H+A.slice(M);break;default:$=A+X+$+H;break}return i($)}return B.toString=function(){return d+""},B}function c(d,f){var p=Math.max(-8,Math.min(8,Math.floor(Na(f)/3)))*3,v=Math.pow(10,-p),g=u((d=Ca(d),d.type="f",d),{suffix:X3[8+p/3]});return function(b){return g(v*b)}}return{format:u,formatPrefix:c}}var Ph,gu,jh;r2({thousands:",",grouping:[3],currency:["$",""]});function r2(e){return Ph=Z3(e),gu=Ph.format,jh=Ph.formatPrefix,Ph}function n2(e){return Math.max(0,-Na(Math.abs(e)))}function a2(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Na(t)/3)))*3-Na(Math.abs(e)))}function i2(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Na(t)-Na(e))+1}function Vd(e,t,r,n){var a=pu(e,t,r),i;switch(n=Ca(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(i=a2(a,o))&&(n.precision=i),jh(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(i=i2(a,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=i-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(i=n2(a))&&(n.precision=i-(n.type==="%")*2);break}}return gu(n)}function Ur(e){var t=e.domain;return e.ticks=function(r){var n=t();return nl(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var a=t();return Vd(a[0],a[a.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),a=0,i=n.length-1,o=n[a],l=n[i],s,u,c=10;for(l0;){if(u=jd(o,l,r),u===s)return n[a]=o,n[i]=l,t(n);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;s=u}return e},e}function Ih(){var e=sl();return e.copy=function(){return Aa(e,Ih())},Nt.apply(e,arguments),Ur(e)}function zh(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,so),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return zh(e).unknown(t)},e=arguments.length?Array.from(e,so):[0,1],Ur(r)}function Fd(e,t){e=e.slice();var r=0,n=e.length-1,a=e[r],i=e[n],o;return iMath.pow(e,t)}function R$(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function R3(e){return(t,r)=>-e(-t,r)}function Yd(e){let t=e(Q3,J3),r=t.domain,n=10,a,i;function o(){return a=R$(n),i=J$(n),r()[0]<0?(a=R3(a),i=R3(i),e(X$,Z$)):e(Q3,J3),t}return t.base=function(l){return arguments.length?(n=+l,o()):n},t.domain=function(l){return arguments.length?(r(l),o()):r()},t.ticks=l=>{let s=r(),u=s[0],c=s[s.length-1],d=c0){for(;f<=p;++f)for(v=1;vc)break;m.push(g)}}else for(;f<=p;++f)for(v=n-1;v>=1;--v)if(g=f>0?v/i(-f):v*i(f),!(gc)break;m.push(g)}m.length*2{if(l==null&&(l=10),s==null&&(s=n===10?"s":","),typeof s!="function"&&(!(n%1)&&(s=Ca(s)).precision==null&&(s.trim=!0),s=gu(s)),l===1/0)return s;let u=Math.max(1,n*l/t.ticks().length);return c=>{let d=c/i(Math.round(a(c)));return d*nr(Fd(r(),{floor:l=>i(Math.floor(a(l))),ceil:l=>i(Math.ceil(a(l)))})),t}function Lh(){let e=Yd(ll()).domain([1,10]);return e.copy=()=>Aa(e,Lh()).base(e.base()),Nt.apply(e,arguments),e}function e4(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function t4(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function qd(e){var t=1,r=e(e4(t),t4(t));return r.constant=function(n){return arguments.length?e(e4(t=+n),t4(t)):t},Ur(r)}function Bh(){var e=qd(ll());return e.copy=function(){return Aa(e,Bh()).constant(e.constant())},Nt.apply(e,arguments)}function r4(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function eH(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function tH(e){return e<0?-e*e:e*e}function Wd(e){var t=e(ir,ir),r=1;function n(){return r===1?e(ir,ir):r===.5?e(eH,tH):e(r4(r),r4(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,n()):r},Ur(t)}function Kd(){var e=Wd(ll());return e.copy=function(){return Aa(e,Kd()).exponent(e.exponent())},Nt.apply(e,arguments),e}function n4(){return Kd.apply(null,arguments).exponent(.5)}function a4(e){return Math.sign(e)*e*e}function rH(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function Uh(){var e=sl(),t=[0,1],r=!1,n;function a(i){var o=rH(e(i));return isNaN(o)?n:r?Math.round(o):o}return a.invert=function(i){return e.invert(a4(i))},a.domain=function(i){return arguments.length?(e.domain(i),a):e.domain()},a.range=function(i){return arguments.length?(e.range((t=Array.from(i,so)).map(a4)),a):t.slice()},a.rangeRound=function(i){return a.range(i).round(!0)},a.round=function(i){return arguments.length?(r=!!i,a):r},a.clamp=function(i){return arguments.length?(e.clamp(i),a):e.clamp()},a.unknown=function(i){return arguments.length?(n=i,a):n},a.copy=function(){return Uh(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Nt.apply(a,arguments),Ur(a)}function $h(){var e=[],t=[],r=[],n;function a(){var o=0,l=Math.max(1,t.length);for(r=new Array(l-1);++o0?r[l-1]:e[0],l=r?[n[r-1],t]:[n[u-1],n[u]]},o.unknown=function(s){return arguments.length&&(i=s),o},o.thresholds=function(){return n.slice()},o.copy=function(){return Hh().domain([e,t]).range(a).unknown(i)},Nt.apply(Ur(o),arguments)}function Vh(){var e=[.5],t=[0,1],r,n=1;function a(i){return i!=null&&i<=i?t[ia(e,i,0,n)]:r}return a.domain=function(i){return arguments.length?(e=Array.from(i),n=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(i){return arguments.length?(t=Array.from(i),n=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(i){var o=t.indexOf(i);return[e[o-1],e[o]]},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return Vh().domain(e).range(t).unknown(r)},Nt.apply(a,arguments)}var o2=new Date,l2=new Date;function lt(e,t,r,n){function a(i){return e(i=arguments.length===0?new Date:new Date(+i)),i}return a.floor=i=>(e(i=new Date(+i)),i),a.ceil=i=>(e(i=new Date(i-1)),t(i,1),e(i),i),a.round=i=>{let o=a(i),l=a.ceil(i);return i-o(t(i=new Date(+i),o==null?1:Math.floor(o)),i),a.range=(i,o,l)=>{let s=[];if(i=a.ceil(i),l=l==null?1:Math.floor(l),!(i0))return s;let u;do s.push(u=new Date(+i)),t(i,l),e(i);while(ult(o=>{if(o>=o)for(;e(o),!i(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;t(o,-1),!i(o););else for(;--l>=0;)for(;t(o,1),!i(o););}),r&&(a.count=(i,o)=>(o2.setTime(+i),l2.setTime(+o),e(o2),e(l2),Math.floor(r(o2,l2))),a.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(n?o=>n(o)%i===0:o=>a.count(0,o)%i===0):a)),a}var Gd=lt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Gd.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?lt(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Gd);var Wse=Gd.range;var Hn=lt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),i4=Hn.range;var yu=lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),nH=yu.range,xu=lt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),aH=xu.range;var bu=lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),iH=bu.range,wu=lt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),oH=wu.range;var li=lt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),lH=li.range,fl=lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),sH=fl.range,Fh=lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),uH=Fh.range;function pl(e){return lt(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var si=pl(0),Su=pl(1),l4=pl(2),s4=pl(3),uo=pl(4),u4=pl(5),c4=pl(6),d4=si.range,cH=Su.range,dH=l4.range,fH=s4.range,pH=uo.range,mH=u4.range,vH=c4.range;function ml(e){return lt(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var ui=ml(0),Au=ml(1),f4=ml(2),p4=ml(3),co=ml(4),m4=ml(5),v4=ml(6),h4=ui.range,hH=Au.range,gH=f4.range,yH=p4.range,xH=co.range,bH=m4.range,wH=v4.range;var Nu=lt(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),SH=Nu.range,Cu=lt(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),AH=Cu.range;var bn=lt(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());bn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lt(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var NH=bn.range,wn=lt(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());wn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lt(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var CH=wn.range;function y4(e,t,r,n,a,i){let o=[[Hn,1,1e3],[Hn,5,5*1e3],[Hn,15,15*1e3],[Hn,30,30*1e3],[i,1,6e4],[i,5,5*6e4],[i,15,15*6e4],[i,30,30*6e4],[a,1,36e5],[a,3,3*36e5],[a,6,6*36e5],[a,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function l(u,c,d){let f=cb).right(o,f);if(p===o.length)return e.every(pu(u/31536e6,c/31536e6,d));if(p===0)return Gd.every(Math.max(pu(u,c,d),1));let[v,g]=o[f/o[p-1][2]53)return null;"w"in Y||(Y.w=1),"Z"in Y?(P=p2(Zd(Y.y,0,1)),K=P.getUTCDay(),P=K>4||K===0?Au.ceil(P):Au(P),P=fl.offset(P,(Y.V-1)*7),Y.y=P.getUTCFullYear(),Y.m=P.getUTCMonth(),Y.d=P.getUTCDate()+(Y.w+6)%7):(P=f2(Zd(Y.y,0,1)),K=P.getDay(),P=K>4||K===0?Su.ceil(P):Su(P),P=li.offset(P,(Y.V-1)*7),Y.y=P.getFullYear(),Y.m=P.getMonth(),Y.d=P.getDate()+(Y.w+6)%7)}else("W"in Y||"U"in Y)&&("w"in Y||(Y.w="u"in Y?Y.u%7:"W"in Y?1:0),K="Z"in Y?p2(Zd(Y.y,0,1)).getUTCDay():f2(Zd(Y.y,0,1)).getDay(),Y.m=0,Y.d="W"in Y?(Y.w+6)%7+Y.W*7-(K+5)%7:Y.w+Y.U*7-(K+6)%7);return"Z"in Y?(Y.H+=Y.Z/100|0,Y.M+=Y.Z%100,p2(Y)):f2(Y)}}function _(ie,Ne,F,Y){for(var S=0,P=Ne.length,K=F.length,j,he;S=K)return-1;if(j=Ne.charCodeAt(S++),j===37){if(j=Ne.charAt(S++),he=E[j in x4?Ne.charAt(S++):j],!he||(Y=he(ie,F,Y))<0)return-1}else if(j!=F.charCodeAt(Y++))return-1}return Y}function I(ie,Ne,F){var Y=u.exec(Ne.slice(F));return Y?(ie.p=c.get(Y[0].toLowerCase()),F+Y[0].length):-1}function z(ie,Ne,F){var Y=p.exec(Ne.slice(F));return Y?(ie.w=v.get(Y[0].toLowerCase()),F+Y[0].length):-1}function B(ie,Ne,F){var Y=d.exec(Ne.slice(F));return Y?(ie.w=f.get(Y[0].toLowerCase()),F+Y[0].length):-1}function $(ie,Ne,F){var Y=m.exec(Ne.slice(F));return Y?(ie.m=h.get(Y[0].toLowerCase()),F+Y[0].length):-1}function X(ie,Ne,F){var Y=g.exec(Ne.slice(F));return Y?(ie.m=b.get(Y[0].toLowerCase()),F+Y[0].length):-1}function H(ie,Ne,F){return _(ie,t,Ne,F)}function q(ie,Ne,F){return _(ie,r,Ne,F)}function y(ie,Ne,F){return _(ie,n,Ne,F)}function N(ie){return o[ie.getDay()]}function O(ie){return i[ie.getDay()]}function M(ie){return s[ie.getMonth()]}function A(ie){return l[ie.getMonth()]}function k(ie){return a[+(ie.getHours()>=12)]}function V(ie){return 1+~~(ie.getMonth()/3)}function G(ie){return o[ie.getUTCDay()]}function Q(ie){return i[ie.getUTCDay()]}function se(ie){return s[ie.getUTCMonth()]}function ue(ie){return l[ie.getUTCMonth()]}function pe(ie){return a[+(ie.getUTCHours()>=12)]}function Oe(ie){return 1+~~(ie.getUTCMonth()/3)}return{format:function(ie){var Ne=C(ie+="",x);return Ne.toString=function(){return ie},Ne},parse:function(ie){var Ne=T(ie+="",!1);return Ne.toString=function(){return ie},Ne},utcFormat:function(ie){var Ne=C(ie+="",w);return Ne.toString=function(){return ie},Ne},utcParse:function(ie){var Ne=T(ie+="",!0);return Ne.toString=function(){return ie},Ne}}}var x4={"-":"",_:" ",0:"0"},cr=/^\s*\d+/,EH=/^%/,OH=/[\\^$*+?|[\]().{}]/g;function Ge(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",i=a.length;return n+(i[t.toLowerCase(),r]))}function TH(e,t,r){var n=cr.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function MH(e,t,r){var n=cr.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function DH(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function PH(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function jH(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function b4(e,t,r){var n=cr.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function w4(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function IH(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function zH(e,t,r){var n=cr.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function LH(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function S4(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function BH(e,t,r){var n=cr.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function A4(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function UH(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function $H(e,t,r){var n=cr.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function HH(e,t,r){var n=cr.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function VH(e,t,r){var n=cr.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function FH(e,t,r){var n=EH.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function YH(e,t,r){var n=cr.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function qH(e,t,r){var n=cr.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function N4(e,t){return Ge(e.getDate(),t,2)}function WH(e,t){return Ge(e.getHours(),t,2)}function KH(e,t){return Ge(e.getHours()%12||12,t,2)}function GH(e,t){return Ge(1+li.count(bn(e),e),t,3)}function k4(e,t){return Ge(e.getMilliseconds(),t,3)}function XH(e,t){return k4(e,t)+"000"}function ZH(e,t){return Ge(e.getMonth()+1,t,2)}function QH(e,t){return Ge(e.getMinutes(),t,2)}function JH(e,t){return Ge(e.getSeconds(),t,2)}function RH(e){var t=e.getDay();return t===0?7:t}function eV(e,t){return Ge(si.count(bn(e)-1,e),t,2)}function T4(e){var t=e.getDay();return t>=4||t===0?uo(e):uo.ceil(e)}function tV(e,t){return e=T4(e),Ge(uo.count(bn(e),e)+(bn(e).getDay()===4),t,2)}function rV(e){return e.getDay()}function nV(e,t){return Ge(Su.count(bn(e)-1,e),t,2)}function aV(e,t){return Ge(e.getFullYear()%100,t,2)}function iV(e,t){return e=T4(e),Ge(e.getFullYear()%100,t,2)}function oV(e,t){return Ge(e.getFullYear()%1e4,t,4)}function lV(e,t){var r=e.getDay();return e=r>=4||r===0?uo(e):uo.ceil(e),Ge(e.getFullYear()%1e4,t,4)}function sV(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ge(t/60|0,"0",2)+Ge(t%60,"0",2)}function C4(e,t){return Ge(e.getUTCDate(),t,2)}function uV(e,t){return Ge(e.getUTCHours(),t,2)}function cV(e,t){return Ge(e.getUTCHours()%12||12,t,2)}function dV(e,t){return Ge(1+fl.count(wn(e),e),t,3)}function M4(e,t){return Ge(e.getUTCMilliseconds(),t,3)}function fV(e,t){return M4(e,t)+"000"}function pV(e,t){return Ge(e.getUTCMonth()+1,t,2)}function mV(e,t){return Ge(e.getUTCMinutes(),t,2)}function vV(e,t){return Ge(e.getUTCSeconds(),t,2)}function hV(e){var t=e.getUTCDay();return t===0?7:t}function gV(e,t){return Ge(ui.count(wn(e)-1,e),t,2)}function D4(e){var t=e.getUTCDay();return t>=4||t===0?co(e):co.ceil(e)}function yV(e,t){return e=D4(e),Ge(co.count(wn(e),e)+(wn(e).getUTCDay()===4),t,2)}function xV(e){return e.getUTCDay()}function bV(e,t){return Ge(Au.count(wn(e)-1,e),t,2)}function wV(e,t){return Ge(e.getUTCFullYear()%100,t,2)}function SV(e,t){return e=D4(e),Ge(e.getUTCFullYear()%100,t,2)}function AV(e,t){return Ge(e.getUTCFullYear()%1e4,t,4)}function NV(e,t){var r=e.getUTCDay();return e=r>=4||r===0?co(e):co.ceil(e),Ge(e.getUTCFullYear()%1e4,t,4)}function CV(){return"+0000"}function _4(){return"%"}function E4(e){return+e}function O4(e){return Math.floor(+e/1e3)}var _u,Yh,P4,qh,j4;v2({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function v2(e){return _u=m2(e),Yh=_u.format,P4=_u.parse,qh=_u.utcFormat,j4=_u.utcParse,_u}function _V(e){return new Date(e)}function EV(e){return e instanceof Date?+e:+new Date(+e)}function Wh(e,t,r,n,a,i,o,l,s,u){var c=sl(),d=c.invert,f=c.domain,p=u(".%L"),v=u(":%S"),g=u("%I:%M"),b=u("%I %p"),m=u("%a %d"),h=u("%b %d"),x=u("%B"),w=u("%Y");function E(C){return(s(C)t(a/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(a,i)=>Sh(e,i/n))},r.copy=function(){return Zh(t).domain(e)},$n.apply(r,arguments)}function Qh(){var e=0,t=.5,r=1,n=1,a,i,o,l,s,u=ir,c,d=!1,f;function p(g){return isNaN(g=+g)?f:(g=.5+((g=+c(g))-i)*(n*g{if(e!=null){var n=e.scale,a=e.type;if(n==="auto")return a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":a==="category"?"band":"linear";if(typeof n=="string")return TV(n)?n:"point"}};function MV(e,t){for(var r=0,n=e.length,a=e[0]t)?r=i+1:n=i}return r}function tg(e,t){if(e){var r=t??e.domain(),n=r.map(i=>{var o;return(o=e(i))!==null&&o!==void 0?o:0}),a=e.range();if(!(r.length===0||a.length<2))return i=>{var o,l,s=MV(n,i);if(s<=0)return r[0];if(s>=r.length)return r[r.length-1];var u=(o=n[s-1])!==null&&o!==void 0?o:0,c=(l=n[s])!==null&&l!==void 0?l:0;return Math.abs(i-u)<=Math.abs(i-c)?r[s-1]:r[s]}}}function B4(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):tg(e,void 0)}function U4(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function rg(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],Ea=(e,t)=>{var r=A2(e,t);return r??Ut},$t={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:S2,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:Ko},N2=(e,t)=>e.cartesianAxis.yAxis[t],Oa=(e,t)=>{var r=N2(e,t);return r??$t},UV={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},C2=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??UV},Er=(e,t,r)=>{switch(t){case"xAxis":return Ea(e,r);case"yAxis":return Oa(e,r);case"zAxis":return C2(e,r);case"angleAxis":return ph(e,r);case"radiusAxis":return mh(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},$V=(e,t,r)=>{switch(t){case"xAxis":return Ea(e,r);case"yAxis":return Oa(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},rf=(e,t,r)=>{switch(t){case"xAxis":return Ea(e,r);case"yAxis":return Oa(e,r);case"angleAxis":return ph(e,r);case"radiusAxis":return mh(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},_2=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function E2(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var O2=e=>e.graphicalItems.cartesianItems,HV=W([ar,Td],E2),k2=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),Ou=W([O2,Er,HV],k2,{memoizeOptions:{resultEqualityCheck:du}}),F4=W([Ou],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Md)),T2=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),VV=W([Ou],T2),M2=e=>e.map(t=>t.data).filter(Boolean).flat(1),FV=W([Ou],e=>e.some(t=>!t.data)),Y4=W([Ou],M2,{memoizeOptions:{resultEqualityCheck:du}}),D2=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,a=t.dataStartIndex,i=t.dataEndIndex;return e.length>0?e:n.slice(a,i+1)},P2=W([Y4,Od],D2),YV=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:ht(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(a=>({value:ht(a,n)}))):e.map(n=>({value:n})),j2=(e,t,r,n,a,i)=>{var o=n.chartData,l=o===void 0?[]:o,s=n.dataStartIndex,u=n.dataEndIndex,c=YV(e,t,r);if(a&&t?.dataKey!=null&&i.length>0){var d=l.slice(s,u+1),f=d.map(p=>({value:ht(p,t.dataKey)})).filter(p=>p.value!=null);return[...f,...c]}return c},nf=W([P2,Er,Ou,Od,FV,Y4],j2);function Eu(e){if(Lr(e)||e instanceof Date){var t=Number(e);if(ke(t))return t}}function H4(e){if(Array.isArray(e)){var t=[Eu(e[0]),Eu(e[1])];return yn(t)?t:void 0}var r=Eu(e);if(r!=null)return[r,r]}function la(e){return e.map(Eu).filter(nr)}function qV(e,t){var r=Eu(e),n=Eu(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var WV=W([nf],e=>e?.map(t=>t.value).sort(qV));function q4(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function KV(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Ar(t))n=t;else if(Array.isArray(t)){var a=la(t);a.length>0&&(n=Math.max(...a))}return n==null?[]:la(r.flatMap(i=>{var o=ht(e,i.dataKey),l,s;if(Array.isArray(o)){var u=V4(o,2);l=u[0],s=u[1]}else l=s=o;if(!(!ke(l)||!ke(s)))return[n-l,n+s]}))}var Ht=e=>{var t=Bt(e),r=io(e);return rf(e,t,r)},di=W([Ht],e=>e?.dataKey),GV=W([F4,Od,Ht],gh),I2=(e,t,r,n)=>{var a={},i=t.reduce((o,l)=>{if(l.stackId==null)return o;var s=o[l.stackId];return s==null&&(s=[]),s.push(l),o[l.stackId]=s,o},a);return Object.fromEntries(Object.entries(i).map(o=>{var l=V4(o,2),s=l[0],u=l[1],c=n?[...u].reverse():u,d=c.map(cu);return[s,{stackedData:nk(e,d,r),graphicalItems:c}]}))},z2=W([GV,F4,su,uh],I2),L2=(e,t,r,n)=>{var a=t.dataStartIndex,i=t.dataEndIndex;if(n==null&&r!=="zAxis")return ik(e,a,i)},XV=W([Er],e=>e.allowDataOverflow),ng=e=>{var t;if(e==null||!("domain"in e))return S2;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=la(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:S2},W4=W([Er],ng),K4=W([W4,XV],ih),ZV=W([z2,Jr,ar,K4],L2,{memoizeOptions:{resultEqualityCheck:tl}}),ag=e=>e.errorBars,QV=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>q4(r,n)),tf=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],l,s;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:o,f=(c=a[u.id])===null||c===void 0?void 0:c.filter(p=>q4(i,p));d.forEach(p=>{var v,g=ht(p,(v=r.dataKey)!==null&&v!==void 0?v:u.dataKey),b=KV(p,g,f);if(b.length>=2){var m=Math.min(...b),h=Math.max(...b);(l==null||ms)&&(s=h)}var x=H4(g);x!=null&&(l=l==null?x[0]:Math.min(l,x[0]),s=s==null?x[1]:Math.max(s,x[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=H4(ht(u,r.dataKey));c!=null&&(l=l==null?c[0]:Math.min(l,c[0]),s=s==null?c[1]:Math.max(s,c[1]))}),ke(l)&&ke(s))return[l,s]},JV=W([P2,Er,VV,ag,ar,ZT],B2,{memoizeOptions:{resultEqualityCheck:tl}});function RV(e){var t=e.value;if(Lr(t)||t instanceof Date)return t}var eF=(e,t,r)=>{var n=e.map(RV).filter(a=>a!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&hb(n))?ah(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},U2=e=>e.referenceElements.dots,vl=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),tF=W([U2,ar,Td],vl),$2=e=>e.referenceElements.areas,rF=W([$2,ar,Td],vl),H2=e=>e.referenceElements.lines,nF=W([H2,ar,Td],vl),V2=(e,t)=>{if(e!=null){var r=la(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},aF=W(tF,ar,V2),F2=(e,t)=>{if(e!=null){var r=la(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},iF=W([rF,ar],F2);function oF(e){var t;if(e.x!=null)return la([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:la(r)}function lF(e){var t;if(e.y!=null)return la([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:la(r)}var Y2=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?oF(n):lF(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},sF=W([nF,ar],Y2),uF=W(aF,sF,iF,(e,t,r)=>tf(e,r,t)),q2=(e,t,r,n,a,i,o,l,s)=>{if(r!=null)return r;var u=o==="vertical"&&l==="xAxis"||o==="horizontal"&&l==="yAxis",c=u?tf(n,i,a):tf(i,a),d=e3(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&s!=null?s:d)},cF=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=la(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},dF=W([Er],cF,{memoizeOptions:{resultEqualityCheck:tl}}),fF=W([Er,W4,K4,ZV,JV,uF,Qe,ar,dF],q2,{memoizeOptions:{resultEqualityCheck:tl}}),pF=[0,1],W2=(e,t,r,n,a,i,o)=>{if(!((e==null||r==null||r.length===0)&&o===void 0)){var l=e.dataKey,s=e.type,u=Qr(t,i);if(u&&l==null){var c;return ah(0,(c=r?.length)!==null&&c!==void 0?c:0)}return s==="category"?eF(n,e,u):a==="expand"&&!u?pF:o}},K2=W([Er,Qe,P2,nf,su,ar,fF],W2),ku=W([Er,_2,uu],eg),G2=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var a=ng(t),i=Array.isArray(a)&&(a[0]==="auto"||a[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&yn(e)){if(i)return lh(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return sh(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(i&&yn(e))return lh(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&yn(e))return sh(e,t.tickCount,t.allowDecimals,"adaptive")}}},X2=W([K2,rf,ku],G2),Z2=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&yn(t)&&Array.isArray(r)&&r.length>0){var a,i,o=t[0],l=(a=r[0])!==null&&a!==void 0?a:0,s=t[1],u=(i=r[r.length-1])!==null&&i!==void 0?i:0;return[Math.min(o,l),Math.max(s,u)]}return t},mF=W([Er,K2,X2,ar],Z2),vF=W(nf,Er,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(la(e.map(d=>d.value))).sort((d,f)=>d-f),a=n[0],i=n[n.length-1];if(a==null||i==null)return 1/0;var o=i-a;if(o===0)return 1/0;for(var l=0;la,(e,t,r,n,a)=>{if(!ke(e))return 0;var i=t==="vertical"?n.height:n.width;if(a==="gap")return e*i/2;if(a==="no-gap"){var o=In(r,e*i),l=e*i/2;return l-o-(l-o)/i*o}return 0}),hF=(e,t,r)=>{var n=Ea(e,t);return n==null||typeof n.padding!="string"?0:G4(e,"xAxis",t,r,n.padding)},gF=(e,t,r)=>{var n=Oa(e,t);return n==null||typeof n.padding!="string"?0:G4(e,"yAxis",t,r,n.padding)},yF=W(Ea,hF,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var a=e.padding;return typeof a=="string"?{left:t,right:t}:{left:((r=a.left)!==null&&r!==void 0?r:0)+t,right:((n=a.right)!==null&&n!==void 0?n:0)+t}}),xF=W(Oa,gF,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var a=e.padding;return typeof a=="string"?{top:t,bottom:t}:{top:((r=a.top)!==null&&r!==void 0?r:0)+t,bottom:((n=a.bottom)!==null&&n!==void 0?n:0)+t}}),Q2=W([gt,yF,Go,eu,(e,t,r)=>r],(e,t,r,n,a)=>{var i=n.padding;return a?[i.left,r.width-i.right]:[e.left+t.left,e.left+e.width-t.right]}),J2=W([gt,Qe,xF,Go,eu,(e,t,r)=>r],(e,t,r,n,a,i)=>{var o=a.padding;return i?[n.height-o.bottom,o.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Tu=(e,t,r,n)=>{var a;switch(t){case"xAxis":return Q2(e,r,n);case"yAxis":return J2(e,r,n);case"zAxis":return(a=C2(e,r))===null||a===void 0?void 0:a.range;case"angleAxis":return $1(e);case"radiusAxis":return H1(e,r);default:return}},X4=W([Er,Tu],Ro),bF=W([ku,mF],m3),R2=W([Er,ku,bF,X4],ef),ew=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var a=r.type,i=r.scale,o=Qr(e,n);if(o&&(a==="number"||i!=="auto"))return t.map(l=>l.value)}},tw=W([Qe,nf,rf,ar],ew),ig=W([R2],Dd),vde=W([R2],B4),hde=W([R2,WV],tg),gde=W([Ou,ag,ar],QV);function Z4(e,t){return e.idt.id?1:0}var og=(e,t)=>t,lg=(e,t,r)=>r,wF=W(Js,og,lg,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(Z4)),SF=W(Rs,og,lg,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(Z4)),Q4=(e,t)=>{var r=typeof t.height=="number"?t.height:yd;return{width:e.width,height:r}},AF=(e,t)=>{var r=typeof t.width=="number"?t.width:Ko;return{width:r,height:e.height}},J4=W(gt,Ea,Q4),NF=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},CF=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},_F=W(_r,gt,wF,og,lg,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var s=Q4(t,l);o==null&&(o=NF(t,n,e));var u=n==="top"&&!a||n==="bottom"&&a;i[l.id]=o-Number(u)*s.height,o+=(u?-1:1)*s.height}),i}),EF=W(Cr,gt,SF,og,lg,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var s=AF(t,l);o==null&&(o=CF(t,n,e));var u=n==="left"&&!a||n==="right"&&a;i[l.id]=o-Number(u)*s.width,o+=(u?-1:1)*s.width}),i}),OF=(e,t)=>{var r=Ea(e,t);if(r!=null)return _F(e,r.orientation,r.mirror)},R4=W([gt,Ea,OF,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:e.left,y:0}:{x:e.left,y:a}}}),kF=(e,t)=>{var r=Oa(e,t);if(r!=null)return EF(e,r.orientation,r.mirror)},eM=W([gt,Oa,kF,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:0,y:e.top}:{x:a,y:e.top}}}),tM=W(gt,Oa,(e,t)=>{var r=typeof t.width=="number"?t.width:Ko;return{width:r,height:e.height}});var rw=(e,t,r,n)=>{if(r!=null){var a=r.allowDuplicatedCategory,i=r.type,o=r.dataKey,l=Qr(e,n),s=t.map(c=>c.value),u=s.filter(c=>c!=null);if(o&&l&&i==="category"&&a&&hb(u))return s}},nw=W([Qe,nf,Er,ar],rw),aw=W([Qe,$V,ku,ig,nw,tw,Tu,X2,ar],(e,t,r,n,a,i,o,l,s)=>{if(t!=null){var u=Qr(e,s);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:s,categoricalDomain:i,duplicateDomain:a,isCategorical:u,niceTicks:l,range:o,realScaleType:r,scale:n}}}),TF=(e,t,r,n,a,i,o,l,s)=>{if(!(t==null||n==null)){var u=Qr(e,s),c=t.type,d=t.ticks,f=t.tickCount,p=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,v=c==="category"&&n.bandwidth?n.bandwidth()/p:0;v=s==="angleAxis"&&i!=null&&i.length>=2?rr(i[0]-i[1])*2*v:v;var g=d||a;return g?g.map((b,m)=>{var h=o?o.indexOf(b):b,x=n.map(h);return ke(x)?{index:m,coordinate:x+v,value:b,offset:v}:null}).filter(nr):u&&l?l.map((b,m)=>{var h=n.map(b);return ke(h)?{coordinate:h+v,value:b,index:m,offset:v}:null}).filter(nr):n.ticks?n.ticks(f).map((b,m)=>{var h=n.map(b);return ke(h)?{coordinate:h+v,value:b,index:m,offset:v}:null}).filter(nr):n.domain().map((b,m)=>{var h=n.map(b);return ke(h)?{coordinate:h+v,value:o?o[b]:b,index:m,offset:v}:null}).filter(nr)}},sg=W([Qe,rf,ku,ig,X2,Tu,nw,tw,ar],TF),MF=(e,t,r,n,a,i,o)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var l=Qr(e,o),s=t.tickCount,u=0;return u=o==="angleAxis"&&n?.length>=2?rr(n[0]-n[1])*2*u:u,l&&i?i.map((c,d)=>{var f=r.map(c);return ke(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(nr):r.ticks?r.ticks(s).map((c,d)=>{var f=r.map(c);return ke(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(nr):r.domain().map((c,d)=>{var f=r.map(c);return ke(f)?{coordinate:f+u,value:a?a[c]:c,index:d,offset:u}:null}).filter(nr)}},iw=W([Qe,rf,ig,Tu,nw,tw,ar],MF),ow=W(Er,ig,(e,t)=>{if(!(e==null||t==null))return rg(rg({},e),{},{scale:t})}),DF=W([Er,ku,K2,X4],ef),PF=W([DF],Dd),yde=W((e,t,r)=>C2(e,r),PF,(e,t)=>{if(!(e==null||t==null))return rg(rg({},e),{},{scale:t})}),rM=W([Qe,Js,Rs],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),jF=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},xde=W([jF],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,a=e[0];for(var i of e){var o=Math.abs(i.coordinate-t);oe.options.defaultTooltipEventType,sw=e=>e.options.validateTooltipEventTypes;function uw(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function fo(e,t){var r=lw(e),n=sw(e);return uw(t,r,n)}function nM(e){return ye(t=>fo(t,e))}var ug=(e,t)=>{var r,n=Number(t);if(!(Ar(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var aM=e=>e.tooltip.settings;var fi={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},IF={itemInteraction:{click:fi,hover:fi},axisInteraction:{click:fi,hover:fi},keyboardInteraction:fi,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},iM=Ke({name:"tooltip",initialState:IF,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(je(t.payload))},prepare:Re()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=yr(e).tooltipItemPayloads.indexOf(je(n));i>-1&&(e.tooltipItemPayloads[i]=je(a))},prepare:Re()},removeTooltipEntrySettings:{reducer(e,t){var r=yr(e).tooltipItemPayloads.indexOf(je(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Re()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Vn=iM.actions,oM=Vn.addTooltipEntrySettings,lM=Vn.replaceTooltipEntrySettings,sM=Vn.removeTooltipEntrySettings,uM=Vn.setTooltipSettingsState,cM=Vn.setActiveMouseOverItemIndex,Ode=Vn.mouseLeaveItem,cg=Vn.mouseLeaveChart,kde=Vn.setActiveClickItemIndex,dg=Vn.setMouseOverAxisIndex,dM=Vn.setMouseClickAxisIndex,Mu=Vn.setSyncInteraction,af=Vn.setKeyboardInteraction;var fM=iM.reducer;function pM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function fg(e){for(var t=1;t{if(t==null)return fi;var a=UF(e,t,r);if(a==null)return fi;if(a.active)return a;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var i=e.settings.active===!0;if($F(a)){if(i)return fg(fg({},a),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return fg(fg({},fi),{},{coordinate:a.coordinate})};function HF(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function VF(e,t){var r=HF(e),n=t[0],a=t[1];if(r===void 0)return!1;var i=Math.min(n,a),o=Math.max(n,a);return r>=i&&r<=o}function FF(e,t,r){if(r==null||t==null)return!0;var n=ht(e,t);return n==null||!yn(r)?!0:VF(n,r)}var po=(e,t,r,n)=>{var a=e?.index;if(a==null)return null;var i=Number(a);if(!ke(i))return a;var o=0,l=1/0;t.length>0&&(l=t.length-1);var s=Math.max(o,Math.min(i,l)),u=t[s];return u==null||FF(u,r,n)?String(s):null};var mg=(e,t,r,n,a,i,o)=>{if(i!=null){var l=o[0],s=l?.getPosition(i);if(s!=null)return s;var u=a?.[Number(i)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var vg=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var a;if(r==="hover"?a=e.itemInteraction.hover.graphicalItemId:a=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&a==null)return e.tooltipItemPayloads;if(a==null&&(n!=null||e.keyboardInteraction.active)){var i=e.tooltipItemPayloads[0];return i!=null?[i]:[]}return e.tooltipItemPayloads.filter(o=>{var l;return((l=o.settings)===null||l===void 0?void 0:l.graphicalItemId)===a})};var hg=e=>e.options.tooltipPayloadSearcher;var pi=e=>e.tooltip;function mM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vM(e){for(var t=1;te(t)}function hM(e){if(typeof e=="string")return e}function ZF(e){if(!(e==null||typeof e!="object")){var t="name"in e?KF(e.name):void 0,r="unit"in e?GF(e.unit):void 0,n="dataKey"in e?XF(e.dataKey):void 0,a="payload"in e?e.payload:void 0,i="color"in e?hM(e.color):void 0,o="fill"in e?hM(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:a,color:i,fill:o}}}function QF(e,t){return e??t}var gg=(e,t,r,n,a,i,o)=>{if(!(t==null||i==null)){var l=r.chartData,s=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((f,p)=>{var v,g=p.dataDefinedOnItem,b=p.settings,m=QF(g,l),h=Array.isArray(m)?Iv(m,u,c):m,x=(v=b?.dataKey)!==null&&v!==void 0?v:n,w=b?.nameKey,E;if(n&&Array.isArray(h)&&!Array.isArray(h[0])&&o==="axis"?(E=_m(h,n,a),E==null&&(E=i(h,t,s,w))):E=i(h,t,s,w),Array.isArray(E))E.forEach(T=>{var _,I,z=ZF(T),B=z?.name,$=z?.dataKey,X=z?.payload,H=vM(vM({},b),{},{name:B,unit:z?.unit,color:(_=z?.color)!==null&&_!==void 0?_:b?.color,fill:(I=z?.fill)!==null&&I!==void 0?I:b?.fill});f.push(y1({tooltipEntrySettings:H,dataKey:$,payload:X,value:ht(X,$),name:B==null?void 0:String(B)}))});else{var C;f.push(y1({tooltipEntrySettings:b,dataKey:x,payload:E,value:ht(E,x),name:(C=ht(E,w))!==null&&C!==void 0?C:b?.name}))}return f},d)}};var cw=W([Ht,_2,uu],eg),JF=W([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),RF=W([Bt,io],E2),mo=W([JF,Ht,RF],k2,{memoizeOptions:{resultEqualityCheck:du}}),eY=W([mo],e=>e.filter(Md)),gM=W([mo],M2,{memoizeOptions:{resultEqualityCheck:du}}),tY=W([mo],e=>e.some(t=>!t.data)),mi=W([gM,Jr],D2),rY=W([eY,Jr,Ht],gh),dw=W([mi,Ht,mo,Jr,tY,gM],j2),yM=W([Ht],ng),nY=W([Ht],e=>e.allowDataOverflow),xM=W([yM,nY],ih),aY=W([mo],e=>e.filter(Md)),iY=W([rY,aY,su,uh],I2),oY=W([iY,Jr,Bt,xM],L2),lY=W([mo],T2),sY=W([mi,Ht,lY,ag,Bt,QT],B2,{memoizeOptions:{resultEqualityCheck:tl}}),uY=W([U2,Bt,io],vl),cY=W([uY,Bt],V2),dY=W([$2,Bt,io],vl),fY=W([dY,Bt],F2),pY=W([H2,Bt,io],vl),mY=W([pY,Bt],Y2),vY=W([cY,mY,fY],tf),hY=W([Ht,yM,xM,oY,sY,vY,Qe,Bt],q2),vo=W([Ht,Qe,mi,dw,su,Bt,hY],W2),gY=W([vo,Ht,cw],G2),yY=W([Ht,vo,gY,Bt],Z2),bM=e=>{var t=Bt(e),r=io(e),n=!1;return Tu(e,t,r,n)},fw=W([Ht,bM],Ro),xY=W([Ht,cw,yY,fw],ef),pw=W([xY],Dd),bY=W([Qe,dw,Ht,Bt],rw),wY=W([Qe,dw,Ht,Bt],ew),SY=(e,t,r,n,a,i,o,l)=>{if(t){var s=t.type,u=Qr(e,l);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=s==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=l==="angleAxis"&&a!=null&&a?.length>=2?rr(a[0]-a[1])*2*d:d,u&&o?o.map((f,p)=>{var v=n.map(f);return ke(v)?{coordinate:v+d,value:f,index:p,offset:d}:null}).filter(nr):n.domain().map((f,p)=>{var v=n.map(f);return ke(v)?{coordinate:v+d,value:i?i[f]:f,index:p,offset:d}:null}).filter(nr)}}},en=W([Qe,Ht,cw,pw,bM,bY,wY,Bt],SY),mw=W([lw,sw,aM],(e,t,r)=>uw(r.shared,e,t)),wM=e=>e.tooltip.settings.trigger,vw=e=>e.tooltip.settings.defaultIndex,of=W([pi,mw,wM,vw],pg),hl=W([of,mi,di,vo],po),yg=W([en,hl],ug),SM=W([of],e=>{if(e)return e.dataKey}),AM=W([of],e=>{if(e)return e.graphicalItemId}),NM=W([pi,mw,wM,vw],vg),AY=W([Cr,_r,Qe,gt,en,vw,NM],mg),hw=W([of,AY],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),gw=W([of],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),NY=W([NM,hl,Jr,di,yg,hg,mw],gg),CM=W([NY],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function _M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function EM(e){for(var t=1;tye(Ht),OM=()=>{var e=OY(),t=ye(en),r=ye(pw);return!e||!r?Qs(void 0,t):Qs(EM(EM({},e),{},{scale:r}),t)};function kM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Du(e){for(var t=1;t{var a=t.find(i=>i&&i.index===r);if(a){if(e==="horizontal")return{x:a.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:a.coordinate}}return{x:0,y:0}},MM=(e,t,r,n)=>{var a=t.find(u=>u&&u.index===r);if(a){if(e==="centric"){var i=a.coordinate,o=n.radius;return Du(Du(Du({},n),Tt(n.cx,n.cy,o,i)),{},{angle:i,radius:o})}var l=a.coordinate,s=n.angle;return Du(Du(Du({},n),Tt(n.cx,n.cy,l,s)),{},{angle:s,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function DM(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var yw=(e,t,r,n,a)=>{var i,o=(i=t?.length)!==null&&i!==void 0?i:0;if(o<=1||e==null)return 0;if(n==="angleAxis"&&a!=null&&Math.abs(Math.abs(a[1]-a[0])-360)<=1e-6)for(var l=a[1]-a[0],s=(q,y,N)=>[e,e+l,e-l].some(O=>(N?O>=q:O>q)&&O<=y),u=0;u0?(c=r[u-1])===null||c===void 0?void 0:c.coordinate:(d=r[o-1])===null||d===void 0?void 0:d.coordinate,b=(f=r[u])===null||f===void 0?void 0:f.coordinate,m=u>=o-1?(p=r[0])===null||p===void 0?void 0:p.coordinate:(v=r[u+1])===null||v===void 0?void 0:v.coordinate,h=void 0;if(!(g==null||b==null||m==null))if(rr(b-g)!==rr(m-b)){var x=[];if(rr(m-b)===rr(a[1]-a[0])){h=m;var w=b+a[1]-a[0];x[0]=Math.min(w,(w+g)/2),x[1]=Math.max(w,(w+g)/2)}else{h=g;var E=m+a[1]-a[0];x[0]=Math.min(b,(E+b)/2),x[1]=Math.max(b,(E+b)/2)}var C=[Math.min(b,(h+b)/2),Math.max(b,(h+b)/2)];if(s(C[0],C[1],!1)||s(x[0],x[1],!0)){var T;return(T=r[u])===null||T===void 0?void 0:T.index}}else{var _=Math.min(g,m),I=Math.max(g,m);if(s((_+b)/2,(I+b)/2,!1)){var z;return(z=r[u])===null||z===void 0?void 0:z.index}}}else if(t)for(var B=0;B($.coordinate+H.coordinate)/2||B>0&&B($.coordinate+H.coordinate)/2&&e<=($.coordinate+X.coordinate)/2)return $.index}}return-1};var xg=()=>ye(uu),xw=(e,t)=>t,PM=(e,t,r)=>r,bw=(e,t,r,n)=>n,jM=W(en,e=>ni(e,t=>t.coordinate)),ww=W([pi,xw,PM,bw],pg),Sw=W([ww,mi,di,vo],po),IM=(e,t,r)=>{if(t!=null){var n=pi(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},zM=W([pi,xw,PM,bw],vg),lf=W([Cr,_r,Qe,gt,en,bw,zM],mg),LM=W([ww,lf],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),Aw=W([en,Sw],ug),BM=W([zM,Sw,Jr,di,Aw,hg,xw],gg),UM=W([ww,Sw],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),DY=(e,t,r,n,a,i,o)=>{if(!(!e||!r||!n||!a)&&DM(e,o)){var l=ok(e,t),s=yw(l,i,a,r,n),u=TM(t,a,s,e);return{activeIndex:String(s),activeCoordinate:u}}},PY=(e,t,r,n,a,i,o)=>{if(!(!e||!n||!a||!i||!r)){var l=zT(e,r);if(l){var s=lk(l,t),u=yw(s,o,i,n,a),c=MM(t,i,u,l);return{activeIndex:String(u),activeCoordinate:c}}}},$M=(e,t,r,n,a,i,o,l)=>{if(!(!e||!t||!n||!a||!i))return t==="horizontal"||t==="vertical"?DY(e,t,n,a,i,o,l):PY(e,t,r,n,a,i,o)};var Pu=J(R()),ZM=J(Gf());var HM=W(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),VM=W(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(rt)),r=Array.from(new Set(t));return r.sort((n,a)=>n-a)},{memoizeOptions:{resultEqualityCheck:p3}});function FM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function YM(e){for(var t=1;tYM(YM({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),LY)},UY=new Set(Object.values(rt));function $Y(e){return UY.has(e)}var qM=Ke({name:"zIndex",initialState:BY,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Re()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!$Y(r)&&delete e.zIndexMap[r])},prepare:Re()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,a=r.element,i=r.isPanorama;e.zIndexMap[n]?i?e.zIndexMap[n].panoramaElement=je(a):e.zIndexMap[n].element=je(a):e.zIndexMap[n]={consumers:0,element:i?void 0:je(a),panoramaElement:i?je(a):void 0}},prepare:Re()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:Re()}}}),bg=qM.actions,WM=bg.registerZIndexPortal,wg=bg.unregisterZIndexPortal,KM=bg.registerZIndexPortalElement,GM=bg.unregisterZIndexPortalElement;var XM=qM.reducer;function xr(e){var t=e.zIndex,r=e.children,n=Ak(),a=n&&t!==void 0&&t!==0,i=ct(),o=(0,Pu.useRef)(void 0),l=(0,Pu.useRef)(new Set),s=Le(),u=ye(d=>HM(d,t,i));if((0,Pu.useLayoutEffect)(()=>{if(!a){var d=l.current;d.forEach(p=>{s(wg({zIndex:p}))}),d.clear(),o.current=void 0;return}if(l.current.has(t)||(s(WM({zIndex:t})),l.current.add(t)),u){o.current=u;var f=l.current;f.forEach(p=>{p!==t&&(s(wg({zIndex:p})),f.delete(p))})}},[s,t,a,u]),(0,Pu.useLayoutEffect)(()=>{var d=l.current;return()=>{d.forEach(f=>{s(wg({zIndex:f}))}),d.clear()}},[s]),!a)return r;var c=u??o.current;return c?(0,ZM.createPortal)(r,c):null}function Nw(){return Nw=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,Ng.useContext)(Cw);var uf=J(R());var r8=J(t8(),1);var n8=r8.default;var Iu=new n8;var _g="recharts.syncEvent.tooltip",Ew="recharts.syncEvent.brush";var a8=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Ar(r))return e[r]}},GY={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},i8=Ke({name:"options",initialState:GY,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),o8=i8.reducer,l8=i8.actions.createEventEmitter;function s8(e){return e.tooltip.syncInteraction}var XY={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},u8=Ke({name:"chartData",initialState:XY,reducers:{setChartData(e,t){if(e.chartData=je(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,a=r.endIndex;n!=null&&(e.dataStartIndex=n),a!=null&&(e.dataEndIndex=a)}}}),Ow=u8.actions,kw=Ow.setChartData,c8=Ow.setDataStartEndIndexes,ZY=Ow.setComputedData;var d8=u8.reducer;var QY=["x","y"];function f8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function zu(e){for(var t=1;ts.rootProps.className);(0,uf.useEffect)(()=>{if(e==null)return ea;var s=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(Mu({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var f;if(o&&c!==null&&c!==void 0&&(f=c.payload)!==null&&f!==void 0&&f.coordinate&&c.payload.sourceViewBox){var p=c.payload.coordinate,v=p.x,g=p.y,b=tq(p,QY),m=c.payload.sourceViewBox,h=m.x,x=m.y,w=m.width,E=m.height,C=zu(zu({},b),{},{x:o.x+(w?(v-h)/w:0)*o.width,y:o.y+(E?(g-x)/E:0)*o.height});r(zu(zu({},c),{},{payload:zu(zu({},c.payload),{},{coordinate:C})}))}else r(c);return}if(a!=null){var T;if(typeof n=="function"){var _={activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate},I=n(a,_);T=a[I]}else n==="value"&&(T=a.find(N=>String(N.value)===c.payload.label));var z=c.payload.coordinate;if(z==null||o==null){r(Mu({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(T==null){r(Mu({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var B=z.x,$=z.y,X=Math.min(B,o.x+o.width),H=Math.min($,o.y+o.height),q={x:i==="horizontal"?T.coordinate:X,y:i==="horizontal"?H:T.coordinate},y=Mu({active:c.payload.active,coordinate:q,dataKey:c.payload.dataKey,index:String(T.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(y)}}};return Iu.on(_g,s),()=>{Iu.off(_g,s)}},[l,r,t,e,n,a,i,o])}function aq(){var e=ye(ch),t=ye(dh),r=Le();(0,uf.useEffect)(()=>{if(e==null)return ea;var n=(a,i,o)=>{t!==o&&e===a&&r(c8(i))};return Iu.on(Ew,n),()=>{Iu.off(Ew,n)}},[r,t,e])}function p8(){var e=Le();(0,uf.useEffect)(()=>{e(l8())},[e]),nq(),aq()}function m8(e,t,r,n,a,i){var o=ye(v=>IM(v,e,t)),l=ye(AM),s=ye(dh),u=ye(ch),c=ye(B1),d=ye(s8),f=d?.sourceViewBox!=null,p=Zo();(0,uf.useEffect)(()=>{if(!f&&u!=null&&s!=null){var v=Mu({active:i,coordinate:r,dataKey:o,index:a,label:typeof n=="number"?String(n):n,sourceViewBox:p,graphicalItemId:l});Iu.emit(_g,u,v,s)}},[f,r,o,l,a,n,s,u,c,i,p])}function v8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function h8(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{T(uM({shared:h,trigger:x,axisId:C,active:a,defaultIndex:_}))},[T,h,x,C,a,_]);var I=Zo(),z=Wv(),B=nM(h),$=(t=ye(F=>UM(F,B,x,_)))!==null&&t!==void 0?t:{},X=$.activeIndex,H=$.isActive,q=ye(F=>BM(F,B,x,_)),y=ye(F=>Aw(F,B,x,_)),N=ye(F=>LM(F,B,x,_)),O=q,M=RM(),A=(r=a??H)!==null&&r!==void 0?r:!1,k=aO([O,A]),V=sq(k,2),G=V[0],Q=V[1],se=B==="axis"?y:void 0;m8(B,x,N,se,X,A);var ue=E??M;if(ue==null||I==null||B==null)return null;var pe=O??y8;A||(pe=y8),u&&pe.length&&(pe=jE(pe.filter(F=>F.value!=null&&(F.hide!==!0||n.includeHidden)),f,pq));var Oe=pe.length>0,ie=h8(h8({},n),{},{payload:pe,label:se,active:A,activeIndex:X,coordinate:N,accessibilityLayer:z}),Ne=Fn.createElement(qk,{allowEscapeViewBox:i,animationDuration:o,animationEasing:l,isAnimationActive:c,active:A,coordinate:N,hasPayload:Oe,offset:d,position:p,reverseDirection:v,useTranslate3d:g,viewBox:I,wrapperStyle:b,lastBoundingBox:G,innerRef:Q,hasPortalFromProps:!!E},mq(s,ie));return Fn.createElement(Fn.Fragment,null,(0,b8.createPortal)(Ne,ue),A&&Fn.createElement(JM,{cursor:m,tooltipEventType:B,coordinate:N,payload:pe,index:X}))}var Mw=J(R()),Tg=J(R());function hq(e,t,r){return(t=gq(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function gq(e){var t=yq(e,"string");return typeof t=="symbol"?t:t+""}function yq(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Eg=class{constructor(t){hq(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}};function w8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function xq(e){for(var t=1;t{try{var r=document.getElementById(A8);r||(r=document.createElement("span"),r.setAttribute("id",A8),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,Nq,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},gl=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Bn.isSsr)return{width:0,height:0};if(!C8.enableCache)return N8(t,r);var n=Cq(t,r),a=S8.get(n);if(a)return a;var i=N8(t,r);return S8.set(n,i),i};var T8;function Og(e,t){return kq(e)||Oq(e,t)||Eq(e,t)||_q()}function _q(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Eq(e,t){if(e){if(typeof e=="string")return _8(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_8(e,t):void 0}}function _8(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var a=[];St(t)||(r?a=t.toString().split(""):a=t.toString().split(L8));var i=a.map(l=>({word:l,width:gl(l,n).width})),o=r?0:gl("\xA0",n).width;return{wordsWithComputedWidth:i,spaceWidth:o}}catch{return null}};function Mg(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function U8(e){return St(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var $8=(e,t,r,n)=>e.reduce((a,i)=>{var o=i.word,l=i.width,s=a[a.length-1];if(s&&l!=null&&(t==null||n||s.width+l+re.reduce((t,r)=>t.width>r.width?t:r),Xq="\u2026",I8=(e,t,r,n,a,i,o,l)=>{var s=e.slice(0,t),u=B8({breakAll:r,style:n,children:s+Xq});if(!u)return[!1,[]];var c=$8(u.wordsWithComputedWidth,i,o,l),d=c.length>a||H8(c).width>Number(i);return[d,c]},Zq=(e,t,r,n,a)=>{var i=e.maxLines,o=e.children,l=e.style,s=e.breakAll,u=me(i),c=String(o),d=$8(t,n,r,a);if(!u||a)return d;var f=d.length>i||H8(d).width>Number(n);if(!f)return d;for(var p=0,v=c.length-1,g=0,b;p<=v&&g<=c.length-1;){var m=Math.floor((p+v)/2),h=m-1,x=I8(c,h,s,l,i,n,r,a),w=P8(x,2),E=w[0],C=w[1],T=I8(c,m,s,l,i,n,r,a),_=P8(T,1),I=_[0];if(!E&&!I&&(p=m+1),E&&I&&(v=m-1),!E&&I){b=C;break}g++}return b||d},z8=e=>{var t=St(e)?[]:e.toString().split(L8);return[{words:t,width:void 0}]},Qq=e=>{var t=e.width,r=e.scaleToFit,n=e.children,a=e.style,i=e.breakAll,o=e.maxLines;if((t||r)&&!Bn.isSsr){var l,s,u=B8({breakAll:i,children:n,style:a});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;l=c,s=d}else return z8(n);return Zq({breakAll:i,children:n,maxLines:o,style:a},l,s,t,!!r)}return z8(n)},V8="#808080",Jq={angle:0,breakAll:!1,capHeight:"0.71em",fill:V8,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},cf=(0,Tg.forwardRef)((e,t)=>{var r=At(e,Jq),n=r.x,a=r.y,i=r.lineHeight,o=r.capHeight,l=r.fill,s=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=D8(r,Vq),f=(0,Tg.useMemo)(()=>Qq({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:s,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,s,d.style,d.width]),p=d.dx,v=d.dy,g=d.angle,b=d.className,m=d.breakAll,h=D8(d,Fq);if(!Lr(n)||!Lr(a)||f.length===0)return null;var x=Number(n)+(me(p)?p:0),w=Number(a)+(me(v)?v:0);if(!ke(x)||!ke(w))return null;var E;switch(c){case"start":E=kg("calc(".concat(o,")"));break;case"middle":E=kg("calc(".concat((f.length-1)/2," * -").concat(i," + (").concat(o," / 2))"));break;default:E=kg("calc(".concat(f.length-1," * -").concat(i,")"));break}var C=[],T=f[0];if(s&&T!=null){var _=T.width,I=d.width;C.push("scale(".concat(me(I)&&me(_)?I/_:1,")"))}return g&&C.push("rotate(".concat(g,", ").concat(x,", ").concat(w,")")),C.length&&(h.transform=C.join(" ")),Mw.createElement("text",Tw({},Lt(h),{ref:t,x,y:w,className:Te("recharts-text",b),textAnchor:u,fill:l.includes("url")?V8:l}),f.map((z,B)=>{var $=z.words.join(m?"":" ");return Mw.createElement("tspan",{x,dy:B===0?E:i,key:"".concat($,"-").concat(B)},$)}))});cf.displayName="Text";var Sn=J(R()),dr=J(R());var Rq=["labelRef"],eW=["content"];function F8(e,t){if(e==null)return{};var r,n,a=tW(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,a=e.lowerWidth,i=e.width,o=e.height,l=e.children,s=(0,dr.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:a,width:i,height:o}),[t,r,n,a,i,o]);return Sn.createElement(q8.Provider,{value:s},l)},K8=()=>{var e=(0,dr.useContext)(q8),t=Zo();return e||(t?ad(t):void 0)},iW=(0,dr.createContext)(null);var oW=()=>{var e=(0,dr.useContext)(iW),t=ye(hh);return e||t},lW=e=>{var t=e.value,r=e.formatter,n=St(e.children)?t:e.children;return typeof r=="function"?r(n):n},xl=e=>e!=null&&typeof e=="function",sW=(e,t)=>{var r=rr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},uW=(e,t,r,n,a)=>{var i=e.offset,o=e.className,l=a.cx,s=a.cy,u=a.innerRadius,c=a.outerRadius,d=a.startAngle,f=a.endAngle,p=a.clockWise,v=(u+c)/2,g=sW(d,f),b=g>=0?1:-1,m,h;switch(t){case"insideStart":m=d+b*i,h=p;break;case"insideEnd":m=f-b*i,h=!p;break;case"end":m=f+b*i,h=p;break;default:throw new Error("Unsupported position ".concat(t))}h=g<=0?h:!h;var x=Tt(l,s,v,m),w=Tt(l,s,v,m+(h?1:-1)*359),E="M".concat(x.x,",").concat(x.y,` - A`).concat(v,",").concat(v,",0,1,").concat(h?0:1,`, - `).concat(w.x,",").concat(w.y),C=St(e.id)?ti("recharts-radial-line-"):e.id;return Sn.createElement("text",hi({},n,{dominantBaseline:"central",className:Te("recharts-radial-bar-label",o)}),Sn.createElement("defs",null,Sn.createElement("path",{id:C,d:E})),Sn.createElement("textPath",{xlinkHref:"#".concat(C)},r))},cW=(e,t,r)=>{var n=e.cx,a=e.cy,i=e.innerRadius,o=e.outerRadius,l=e.startAngle,s=e.endAngle,u=(l+s)/2;if(r==="outside"){var c=Tt(n,a,o+t,u),d=c.x,f=c.y;return{x:d,y:f,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"end"};var p=(i+o)/2,v=Tt(n,a,p,u),g=v.x,b=v.y;return{x:g,y:b,textAnchor:"middle",verticalAnchor:"middle"}},Uu=e=>e!=null&&"cx"in e&&me(e.cx),dW={angle:0,offset:5,zIndex:rt.label,position:"middle",textBreakAll:!1};function fW(e){if(!Uu(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,a=n*2;return{x:t-n,y:r-n,width:a,upperWidth:a,lowerWidth:a,height:a}}function vi(e){var t,r,n=At(e,dW),a=n.viewBox,i=n.parentViewBox,o=n.position,l=n.value,s=n.children,u=n.content,c=n.className,d=c===void 0?"":c,f=n.textBreakAll,p=n.labelRef,v=oW(),g=K8(),b=o==="center"?g:v??g,m,h,x;a==null?m=b:Uu(a)?m=a:m=ad(a);var w=fW(m);if(!m||St(l)&&St(s)&&!(0,dr.isValidElement)(u)&&typeof u!="function")return null;var E=Uu(m)&&(o==="insideStart"||o==="insideEnd"||o==="end");if(Uu(m))E||(x=cW(m,n.offset,n.position));else if(w){var C=K_({viewBox:w,position:o,offset:n.offset,parentViewBox:Uu(i)?void 0:i,clamp:!0});x=yl(yl({x:C.x,y:C.y,textAnchor:C.horizontalAnchor,verticalAnchor:C.verticalAnchor},C.width!==void 0?{width:C.width}:{}),C.height!==void 0?{height:C.height}:{})}var T=yl(yl(yl(yl({},((t=x)===null||t===void 0?void 0:t.x)!==void 0?{x:x.x}:{}),((r=x)===null||r===void 0?void 0:r.y)!==void 0?{y:x.y}:{}),n),{},{viewBox:m});if((0,dr.isValidElement)(u)){var _=T.labelRef,I=F8(T,Rq);return(0,dr.cloneElement)(u,I)}if(typeof u=="function"){var z=T.content,B=F8(T,eW);if(h=(0,dr.createElement)(u,B),(0,dr.isValidElement)(h))return h}else h=lW(n);var $=Lt(n);return E&&Uu(m)?uW(n,o,h,$,m):x==null?null:Sn.createElement(xr,{zIndex:n.zIndex},Sn.createElement(cf,hi({ref:p,className:Te("recharts-label",d)},$,x,{textAnchor:Mg($.textAnchor)?$.textAnchor:x.textAnchor,breakAll:f}),h))}vi.displayName="Label";var pW=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?Sn.createElement(vi,hi({key:"label-implicit"},n)):Lr(e)?Sn.createElement(vi,hi({key:"label-implicit",value:e},n)):(0,dr.isValidElement)(e)?e.type===vi?(0,dr.cloneElement)(e,yl({key:"label-implicit"},n)):Sn.createElement(vi,hi({key:"label-implicit",content:e},n)):xl(e)?Sn.createElement(vi,hi({key:"label-implicit",content:e},n)):e&&typeof e=="object"?Sn.createElement(vi,hi({},e,{key:"label-implicit"},n)):null};function G8(e){var t=e.label,r=e.labelRef,n=K8();return pW(t,n,r)||null}var gi=J(R()),$u=J(R());var mW=["valueAccessor"],vW=["dataKey","clockWise","id","textBreakAll","zIndex"];function Pg(){return Pg=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(U8(t))return t},Z8=(0,$u.createContext)(void 0),Q8=Z8.Provider,J8=(0,$u.createContext)(void 0),Qme=J8.Provider;function yW(){return(0,$u.useContext)(Z8)}function xW(){return(0,$u.useContext)(J8)}function Dg(e){var t=e.valueAccessor,r=t===void 0?gW:t,n=X8(e,mW),a=n.dataKey,i=n.clockWise,o=n.id,l=n.textBreakAll,s=n.zIndex,u=X8(n,vW),c=yW(),d=xW(),f=c||d;return!f||!f.length?null:gi.createElement(xr,{zIndex:s??rt.label},gi.createElement(er,{className:"recharts-label-list"},f.map((p,v)=>{var g,b=St(a)?r(p,v):ht(p.payload,a),m=St(o)?{}:{id:"".concat(o,"-").concat(v)};return gi.createElement(vi,Pg({key:"label-".concat(v)},Lt(p),u,m,{fill:(g=n.fill)!==null&&g!==void 0?g:p.fill,parentViewBox:p.parentViewBox,value:b,textBreakAll:l,viewBox:p.viewBox,index:v,zIndex:0}))})))}Dg.displayName="LabelList";function R8(e){var t=e.label;return t?t===!0?gi.createElement(Dg,{key:"labelList-implicit"}):gi.isValidElement(t)||xl(t)?gi.createElement(Dg,{key:"labelList-implicit",content:t}):typeof t=="object"?gi.createElement(Dg,Pg({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var eD=J(R());function Dw(){return Dw=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,a=e.className,i=Te("recharts-dot",a);return me(t)&&me(r)&&me(n)?eD.createElement("circle",Dw({},ur(e),Vs(e),{className:i,cx:t,cy:r,r:n})):null};var bW={radiusAxis:{},angleAxis:{}},tD=Ke({name:"polarAxis",initialState:bW,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=je(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=je(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),Ig=tD.actions,ove=Ig.addRadiusAxis,lve=Ig.removeRadiusAxis,sve=Ig.addAngleAxis,uve=Ig.removeAngleAxis;var rD=tD.reducer;function nD(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var wW=J(R());var zg=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var Hu=J(R()),df=J(R());function aD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function iD(e){for(var t=1;t{n||(a.current===null?r(oM(t)):a.current!==t&&r(lM({prev:a.current,next:t})),a.current=t)},[t,r,n]),(0,ff.useLayoutEffect)(()=>()=>{a.current&&(r(sM(a.current)),a.current=null)},[r]),null}var pf=J(R());function uD(e){var t=e.legendPayload,r=Le(),n=ct(),a=(0,pf.useRef)(null);return(0,pf.useLayoutEffect)(()=>{n||(a.current===null?r(Ck(t)):a.current!==t&&r(_k({prev:a.current,next:t})),a.current=t)},[r,n,t]),(0,pf.useLayoutEffect)(()=>()=>{a.current&&(r(Ek(a.current)),a.current=null)},[r]),null}var fD=J(R()),hf=J(R());function kW(e,t){return PW(e)||DW(e,t)||MW(e,t)||TW()}function TW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function MW(e,t){if(e){if(typeof e=="string")return cD(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?cD(e,t):void 0}}function cD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var a of r)n.push({status:"removed",prev:a});for(var i=0;ie[Math.floor(i*r)]);return Pw(n,t)}function zW(e,t){var r=t.map((n,a)=>e[a]);return Pw(r,t)}function LW(e,t){for(var r=new Map,n=0;n{var p=r(d,f);if(p!=null){var v=n.get(p);if(v!==void 0)return a.add(p),v}}),o=[];for(var l of n){var s=kW(l,2),u=s[0],c=s[1];a.has(u)||o.push(c)}return Pw(i,t,o)}function vf(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===mf?IW(e,t):r===jW?zW(e,t):BW(e,t,r)}var Vu=J(R());function Lg(e,t){var r=(0,Vu.useRef)(e),n=(0,Vu.useRef)(t.current),a=(0,Vu.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,a.current=!1);var i=(0,Vu.useCallback)(function(o,l){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(l===0){a.current=!0;return}l===1&&(n.current=o),l>0&&a.current&&s&&(t.current=o)},[t]);return{startValue:n.current,syncStepValue:i}}function UW(e,t){return FW(e)||VW(e,t)||HW(e,t)||$W()}function $W(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function HW(e,t){if(e){if(typeof e=="string")return dD(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dD(e,t):void 0}}function dD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),i(!0)},[e]),l=(0,hf.useCallback)(()=>{typeof t=="function"&&t(),i(!1)},[t]);return{isAnimating:a,handleAnimationStart:o,handleAnimationEnd:l}}function mD(e){var t,r=e.animationInput,n=e.animationIdPrefix,a=e.items,i=e.previousItemsRef,o=e.isAnimationActive,l=e.animationBegin,s=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,f=e.animationInterpolateFn,p=e.animationMatchBy,v=e.shouldUpdatePreviousRef,g=e.children,b=e.layout,m=Jv(r,n),h=Lg(m,i),x=(t=h.startValue)!==null&&t!==void 0?t:null,w=vf(x,a,p??mf);return fD.createElement(Qv,{animationId:m,begin:l,duration:s,isActive:o,easing:u,onAnimationEnd:d,onAnimationStart:c,key:m},E=>{var C=x==null,T=a==null?a:f(w,E,b),_=v?v(E):E>0;return h.syncStepValue(T,E,_),T==null?null:g(T,E,C)})}var gD=J(R()),Iw=J(R());var Bg=J(R());var jw;function YW(e,t){return GW(e)||KW(e,t)||WW(e,t)||qW()}function qW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function WW(e,t){if(e){if(typeof e=="string")return vD(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?vD(e,t):void 0}}function vD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=Bg.useState(()=>ti("uid-")),t=YW(e,1),r=t[0];return r},Ug=(jw=Bg.useId)!==null&&jw!==void 0?jw:XW;function hD(e,t){var r=Ug();return t||(e?"".concat(e,"-").concat(r):r)}var ZW=(0,Iw.createContext)(void 0),yD=e=>{var t=e.id,r=e.type,n=e.children,a=hD("recharts-".concat(r),t);return gD.createElement(ZW.Provider,{value:a},n(a))};var bl=J(R());var QW={cartesianItems:[],polarItems:[]},xD=Ke({name:"graphicalItems",initialState:QW,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(je(t.payload))},prepare:Re()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=yr(e).cartesianItems.indexOf(je(n));i>-1&&(e.cartesianItems[i]=je(a))},prepare:Re()},removeCartesianGraphicalItem:{reducer(e,t){var r=yr(e).cartesianItems.indexOf(je(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:Re()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(je(t.payload))},prepare:Re()},removePolarGraphicalItem:{reducer(e,t){var r=yr(e).polarItems.indexOf(je(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:Re()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=yr(e).polarItems.indexOf(je(n));i>-1&&(e.polarItems[i]=je(a))},prepare:Re()}}}),Fu=xD.actions,bD=Fu.addCartesianGraphicalItem,wD=Fu.replaceCartesianGraphicalItem,SD=Fu.removeCartesianGraphicalItem,JW=Fu.addPolarGraphicalItem,RW=Fu.removePolarGraphicalItem,eK=Fu.replacePolarGraphicalItem;var AD=xD.reducer;var tK=e=>{var t=Le(),r=(0,bl.useRef)(null);return(0,bl.useLayoutEffect)(()=>{r.current===null?t(bD(e)):r.current!==e&&t(wD({prev:r.current,next:e})),r.current=e},[t,e]),(0,bl.useLayoutEffect)(()=>()=>{r.current&&(t(SD(r.current)),r.current=null)},[t]),null},ND=(0,bl.memo)(tK);var gf=J(R()),Hg=J(R());var rK=["points"];function CD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function zw(e){for(var t=1;t{var m,h,x=zw(zw(zw({r:3},o),f),{},{index:b,cx:(m=g.x)!==null&&m!==void 0?m:void 0,cy:(h=g.y)!==null&&h!==void 0?h:void 0,dataKey:i,value:g.value,payload:g.payload,points:t});return gf.createElement(sK,{key:"dot-".concat(b),option:r,dotProps:x,className:a})}),v={};return l&&s!=null&&(v.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(s,")")),gf.createElement(xr,{zIndex:c},gf.createElement(er,$g({className:n},v),p))}var yf=J(R()),Fg=J(R());function ED(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Vg(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var UD=W([BD,Cr,_r],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}});var Yu=()=>ye(UD),$D=()=>ye(CM);function HD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Bw(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,a=e.activeDot,i=e.dataKey,o=e.clipPath;if(a===!1||t.x==null||t.y==null)return null;var l={index:r,dataKey:i,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},s=Bw(Bw(Bw({},l),Ji(a)),Vs(a)),u;return(0,Fg.isValidElement)(a)?u=(0,Fg.cloneElement)(a,s):typeof a=="function"?u=a(s):u=yf.createElement(jg,s),yf.createElement(er,{className:"recharts-active-dot",clipPath:o},u)};function Uw(e){var t=e.points,r=e.mainColor,n=e.activeDot,a=e.itemDataKey,i=e.clipPath,o=e.zIndex,l=o===void 0?rt.activeDot:o,s=ye(hl),u=$D();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return St(c)?null:yf.createElement(xr,{zIndex:l},yf.createElement(gK,{point:c,childIndex:Number(s),mainColor:r,dataKey:a,activeDot:n,clipPath:i}))}var VD=J(R());var FD=e=>{var t=e.chartData,r=Le(),n=ct();return(0,VD.useEffect)(()=>n?()=>{}:(r(kw(t)),()=>{r(kw(void 0))}),[t,r,n]),null};var YD={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},qD=Ke({name:"brush",initialState:YD,reducers:{setBrushSettings(e,t){return t.payload==null?YD:t.payload}}}),khe=qD.actions.setBrushSettings;var WD=qD.reducer;function yK(e){return(e%180+180)%180}var KD=function(t){var r=t.width,n=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=yK(a),o=i*Math.PI/180,l=Math.atan(n/r),s=o>l&&o{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=yr(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=yr(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(je(t.payload))},removeLine:(e,t)=>{var r=yr(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),qu=GD.actions,jhe=qu.addDot,Ihe=qu.removeDot,zhe=qu.addArea,Lhe=qu.removeArea,Bhe=qu.addLine,Uhe=qu.removeLine;var XD=GD.reducer;var xf=J(R()),bf=J(R());function bK(e,t){return NK(e)||AK(e,t)||SK(e,t)||wK()}function wK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function SK(e,t){if(e){if(typeof e=="string")return ZD(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ZD(e,t):void 0}}function ZD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,bf.useState)("".concat(ti("recharts"),"-clip")),n=bK(r,1),a=n[0],i=Yu();if(i==null)return null;var o=i.x,l=i.y,s=i.width,u=i.height;return xf.createElement(CK.Provider,{value:a},xf.createElement("defs",null,xf.createElement("clipPath",{id:a},xf.createElement("rect",{x:o,y:l,height:u,width:s}))),t)};var yt=J(R()),Tr=J(R());function JD(){}function $w(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function RD(e,t,r){return wf(e,t,void 0,void 0,void 0,void 0,r)}function wf(e,t,r,n,a,i,o){let l=o(e,t,r,n,a,i);if(l!==void 0)return l;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return Sf(e,t,i,o)}return Sf(e,t,i,o)}function Sf(e,t,r,n){if(Object.is(e,t))return!0;let a=ri(e),i=ri(t);if(a==="[object Arguments]"&&(a=Ws),i==="[object Arguments]"&&(i=Ws),a!==i)return!1;switch(a){case Fs:return e.toString()===t.toString();case Ys:return to(e.valueOf(),t.valueOf());case qs:case Bm:case Lm:return Object.is(e.valueOf(),t.valueOf());case Im:return e.source===t.source&&e.flags===t.flags;case gE:return e===t}r=r??new Map;let o=r.get(e),l=r.get(t);if(o!=null&&l!=null)return o===t;r.set(e,t),r.set(t,e);try{switch(a){case Um:if(e.size!==t.size)return!1;for(let[s,u]of e.entries())if(!t.has(s)||!wf(u,t.get(s),s,e,t,r,n))return!1;return!0;case $m:{if(e.size!==t.size)return!1;let s=Array.from(e.values()),u=Array.from(t.values());for(let c=0;cwf(d,p,void 0,e,t,r,n));if(f===-1)return!1;u.splice(f,1)}return!0}case Hm:case Ym:case qm:case Wm:case Km:case xE:case Gm:case Xm:case Zm:case bE:case Qm:case Jm:if(sd(e)!==sd(t)||e.length!==t.length)return!1;for(let s=0;se*a)return!1;var i=r();return e*(t-e*i/2-n)>=0&&e*(t+e*i/2-a)<=0}function r6(e,t){return Yg(e,t+1)}function n6(e,t,r,n,a){for(var i=(n||[]).slice(),o=t.start,l=t.end,s=0,u=1,c=o,d=function(){var v=n?.[s];if(v===void 0)return{v:Yg(n,u)};var g=s,b,m=()=>(b===void 0&&(b=r(v,g)),b),h=v.coordinate,x=s===0||wl(e,h,m,c,l);x||(s=0,c=o,u+=1),x&&(c=h+e*(m()/2+a),s+=u)},f;u<=i.length;)if(f=d(),f)return f.v;return[]}function a6(e,t,r,n,a){var i=(n||[]).slice(),o=i.length;if(o===0)return[];for(var l=t.start,s=t.end,u=1;u<=o;u++){for(var c=(o-1)%u,d=l,f=!0,p=function(){var w=n[g];if(w==null)return 0;var E=g,C,T=()=>(C===void 0&&(C=r(w,E)),C),_=w.coordinate,I=g===c||wl(e,_,T,d,s);if(!I)return f=!1,1;I&&(d=_+e*(T()/2+a))},v,g=c;g(g===void 0&&(g=r(p,f)),g);if(f===o-1){var m=e*(v.coordinate+e*b()/2-s);i[f]=v=kr(kr({},v),{},{tickCoord:m>0?v.coordinate-m*e:v.coordinate})}else i[f]=v=kr(kr({},v),{},{tickCoord:v.coordinate});if(v.tickCoord!=null){var h=wl(e,v.tickCoord,b,l,s);h&&(s=v.tickCoord-e*(b()/2+a),i[f]=kr(kr({},v),{},{isShow:!0}))}},c=o-1;c>=0;c--)u(c);return i}function TK(e,t,r,n,a,i){var o=(n||[]).slice(),l=o.length,s=t.start,u=t.end;if(i){var c=n[l-1];if(c!=null){var d=r(c,l-1),f=e*(c.coordinate+e*d/2-u);if(o[l-1]=c=kr(kr({},c),{},{tickCoord:f>0?c.coordinate-f*e:c.coordinate}),c.tickCoord!=null){var p=wl(e,c.tickCoord,()=>d,s,u);p&&(u=c.tickCoord-e*(d/2+a),o[l-1]=kr(kr({},c),{},{isShow:!0}))}}}for(var v=i?l-1:l,g=function(h){var x=o[h];if(x==null)return 1;var w=x,E,C=()=>(E===void 0&&(E=r(x,h)),E);if(h===0){var T=e*(w.coordinate-e*C()/2-s);o[h]=w=kr(kr({},w),{},{tickCoord:T<0?w.coordinate-T*e:w.coordinate})}else o[h]=w=kr(kr({},w),{},{tickCoord:w.coordinate});if(w.tickCoord!=null){var _=wl(e,w.tickCoord,C,s,u);_&&(s=w.tickCoord+e*(C()/2+a),o[h]=kr(kr({},w),{},{isShow:!0}))}},b=0;b{var T=typeof u=="function"?u(E.value,C):E.value;return v==="width"?e6(gl(T,{fontSize:t,letterSpacing:r}),g,d):gl(T,{fontSize:t,letterSpacing:r})[v]},m=a[0],h=a[1],x=a.length>=2&&m!=null&&h!=null?rr(h.coordinate-m.coordinate):1,w=t6(i,x,v);return s==="equidistantPreserveStart"?n6(x,w,b,a,o):s==="equidistantPreserveEnd"?a6(x,w,b,a,o):(s==="preserveStart"||s==="preserveStartEnd"?p=TK(x,w,b,a,o,s==="preserveStartEnd"):p=kK(x,w,b,a,o),p.filter(E=>E.isShow))}var o6=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,i=e.tickSize,o=i===void 0?0:i,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var v=p.getBoundingClientRect();v.width>u&&(u=v.width)}});var c=r?r.getBoundingClientRect().width:0,d=o+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var l6=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,i=e.tickSize,o=i===void 0?0:i,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var v=p.getBoundingClientRect();v.height>u&&(u=v.height)}});var c=r?r.getBoundingClientRect().height:0,d=o+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var MK={xAxis:{},yAxis:{}},s6=Ke({name:"renderedTicks",initialState:MK,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId,i=r.ticks;e[n][a]=je(i)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId;delete e[n][a]}}}),u6=s6.actions,c6=u6.setRenderedTicks,d6=u6.removeRenderedTicks;var f6=s6.reducer;var DK=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function p6(e,t){return zK(e)||IK(e,t)||jK(e,t)||PK()}function PK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jK(e,t){if(e){if(typeof e=="string")return m6(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m6(e,t):void 0}}function m6(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(!(n==null||r==null)){var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index})),l=i.current;l!=null&&l.axisId===n&&l.axisType===r&&Hw(l.ticks,o)||(i.current={ticks:o,axisId:n,axisType:r},a(c6({ticks:o,axisId:n,axisType:r})))}},[a,t,n,r]),(0,Tr.useEffect)(()=>n==null||r==null?ea:()=>{a(d6({axisId:n,axisType:r}))},[a,n,r]),null}var GK=(0,Tr.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,a=e.tick,i=e.tickLine,o=e.stroke,l=e.tickFormatter,s=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,f=e.mirror,p=e.x,v=e.y,g=e.width,b=e.height,m=e.tickSize,h=e.tickMargin,x=e.fontSize,w=e.letterSpacing,E=e.getTicksConfig,C=e.events,T=e.axisType,_=e.axisId,I=Af(Mt(Mt({},E),{},{ticks:n}),x,w),z=ur(E),B=Ji(a),$=Mg(z.textAnchor)?z.textAnchor:YK(d,f),X=qK(d,f),H={};typeof i=="object"&&(H=i);var q=Mt(Mt({},z),{},{fill:"none"},H),y=I.map(M=>Mt({entry:M},FK(M,p,v,g,b,d,m,f,h))),N=y.map(M=>{var A=M.entry,k=M.line;return yt.createElement(er,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(A.value,"-").concat(A.coordinate,"-").concat(A.tickCoord)},i&&yt.createElement("line",Sl({},q,k,{className:Te("recharts-cartesian-axis-tick-line",pn(i,"className"))})))}),O=y.map((M,A)=>{var k,V,G=M.entry,Q=M.tick,se=Mt(Mt(Mt(Mt({verticalAnchor:X},z),{},{textAnchor:$,stroke:"none",fill:o},Q),{},{index:A,payload:G,visibleTicksCount:I.length,tickFormatter:l,padding:u},c),{},{angle:(k=(V=c?.angle)!==null&&V!==void 0?V:z.angle)!==null&&k!==void 0?k:0}),ue=Mt(Mt({},se),B);return yt.createElement(er,Sl({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(G.value,"-").concat(G.coordinate,"-").concat(G.tickCoord)},dE(C,G,A)),a&&yt.createElement(WK,{option:a,tickProps:ue,value:"".concat(typeof l=="function"?l(G.value,A):G.value).concat(s||"")}))});return yt.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(T,"-ticks")},yt.createElement(KK,{ticks:I,axisId:_,axisType:T}),O.length>0&&yt.createElement(xr,{zIndex:rt.label},yt.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(T,"-tick-labels"),ref:t},O)),N.length>0&&yt.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(T,"-tick-lines")},N))}),XK=(0,Tr.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,a=e.height,i=e.className,o=e.hide,l=e.ticks,s=e.axisType,u=e.axisId,c=LK(e,DK),d=(0,Tr.useState)(""),f=p6(d,2),p=f[0],v=f[1],g=(0,Tr.useState)(""),b=p6(g,2),m=b[0],h=b[1],x=(0,Tr.useRef)(null);(0,Tr.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var E;return o6({ticks:x.current,label:(E=e.labelRef)===null||E===void 0?void 0:E.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var E;return l6({ticks:x.current,label:(E=e.labelRef)===null||E===void 0?void 0:E.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var w=(0,Tr.useCallback)(E=>{if(E){var C=E.getElementsByClassName("recharts-cartesian-axis-tick-value");x.current=C;var T=C[0];if(T){var _=window.getComputedStyle(T),I=_.fontSize,z=_.letterSpacing;(I!==p||z!==m)&&(v(I),h(z))}}},[p,m]);return o||n!=null&&n<=0||a!=null&&a<=0?null:yt.createElement(xr,{zIndex:e.zIndex},yt.createElement(er,{className:Te("recharts-cartesian-axis",i)},yt.createElement(VK,{x:e.x,y:e.y,width:n,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:ur(e)}),yt.createElement(GK,{ref:w,axisType:s,events:c,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:m,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),yt.createElement(W8,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},yt.createElement(G8,{label:e.label,labelRef:e.labelRef}),e.children)))}),Nf=yt.forwardRef((e,t)=>{var r=At(e,Yn);return yt.createElement(XK,Sl({},r,{ref:t}))});Nf.displayName="CartesianAxis";var Dt=J(R());var qg=J(R());var h6={grid:{stroke:"#ccc",fill:"none"}};var g6=(0,qg.createContext)(h6),Fge=g6.Provider,y6=()=>(0,qg.useContext)(g6);var ZK=["x1","y1","x2","y2","key"],QK=["offset"],JK=["xAxisId","yAxisId"],RK=["xAxisId","yAxisId"];function x6(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Mr(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,a=e.y,i=e.width,o=e.height,l=e.ry;return Dt.createElement("rect",{x:n,y:a,ry:l,width:i,height:o,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function b6(e){var t=e.option,r=e.lineItemProps,n;if(Dt.isValidElement(t))n=Dt.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var a,i=r.x1,o=r.y1,l=r.x2,s=r.y2,u=r.key,c=Wg(r,ZK),d=(a=ur(c))!==null&&a!==void 0?a:{},f=d.offset,p=Wg(d,QK),v=Array.isArray(p.strokeDasharray)?p.strokeDasharray.join(","):p.strokeDasharray;n=Dt.createElement("line",Al({},p,{strokeDasharray:v,x1:i,y1:o,x2:l,y2:s,fill:"none",key:u}))}return n}function iG(e){var t=e.x,r=e.width,n=e.horizontal,a=n===void 0?!0:n,i=e.horizontalPoints;if(!a||!i||!i.length)return null;var o=e.xAxisId,l=e.yAxisId,s=Wg(e,JK),u=i.map((c,d)=>{var f=Mr(Mr({},s),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return Dt.createElement(b6,{key:"line-".concat(d),option:a,lineItemProps:f})});return Dt.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function oG(e){var t=e.y,r=e.height,n=e.vertical,a=n===void 0?!0:n,i=e.verticalPoints;if(!a||!i||!i.length)return null;var o=e.xAxisId,l=e.yAxisId,s=Wg(e,RK),u=i.map((c,d)=>{var f=Mr(Mr({},s),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return Dt.createElement(b6,{option:a,lineItemProps:f,key:"line-".concat(d)})});return Dt.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function lG(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,a=e.y,i=e.width,o=e.height,l=e.horizontalPoints,s=e.horizontal,u=s===void 0?!0:s;if(!u||!t||!t.length||l==null)return null;var c=l.map(f=>Math.round(f+a-a)).sort((f,p)=>f-p);a!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var v=c[p+1],g=v==null,b=g?a+o-f:v-f;if(b<=0)return null;var m=p%t.length;return Dt.createElement("rect",{key:"react-".concat(p),y:f,x:n,height:b,width:i,stroke:"none",fill:t[m],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return Dt.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function sG(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,a=e.fillOpacity,i=e.x,o=e.y,l=e.width,s=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(f=>Math.round(f+i-i)).sort((f,p)=>f-p);i!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var v=c[p+1],g=v==null,b=g?i+l-f:v-f;if(b<=0)return null;var m=p%n.length;return Dt.createElement("rect",{key:"react-".concat(p),x:f,y:o,width:b,height:s,stroke:"none",fill:n[m],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return Dt.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var uG=(e,t)=>{var r=e.xAxis,n=e.width,a=e.height,i=e.offset;return p1(Af(Mr(Mr(Mr({},Yn),r),{},{ticks:m1(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),i.left,i.left+i.width,t)},cG=(e,t)=>{var r=e.yAxis,n=e.width,a=e.height,i=e.offset;return p1(Af(Mr(Mr(Mr({},Yn),r),{},{ticks:m1(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),i.top,i.top+i.height,t)},dG={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:rt.grid};function Nl(e){var t,r,n,a,i,o,l=Vv(),s=Fv(),u=Hv(),c=Mr(Mr({},At(e,dG)),{},{x:me(e.x)?e.x:u.left,y:me(e.y)?e.y:u.top,width:me(e.width)?e.width:u.width,height:me(e.height)?e.height:u.height}),d=c.xAxisId,f=c.yAxisId,p=c.x,v=c.y,g=c.width,b=c.height,m=c.syncWithTicks,h=c.horizontalValues,x=c.verticalValues,w=ct(),E=ye(N=>aw(N,"xAxis",d,w)),C=ye(N=>aw(N,"yAxis",f,w)),T=y6(),_={stroke:(t=c.stroke)!==null&&t!==void 0?t:T.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:T.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:T.grid.strokeOpacity,strokeDasharray:(a=c.strokeDasharray)!==null&&a!==void 0?a:T.grid.strokeDasharray};if(!Xr(g)||!Xr(b)||!me(p)||!me(v))return null;var I=c.verticalCoordinatesGenerator||uG,z=c.horizontalCoordinatesGenerator||cG,B=c.horizontalPoints,$=c.verticalPoints;if((!B||!B.length)&&typeof z=="function"){var X=h&&h.length,H=z({yAxis:C?Mr(Mr({},C),{},{ticks:X?h:C.ticks}):void 0,width:l??g,height:s??b,offset:u},X?!0:m);tu(Array.isArray(H),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof H,"]")),Array.isArray(H)&&(B=H)}if((!$||!$.length)&&typeof I=="function"){var q=x&&x.length,y=I({xAxis:E?Mr(Mr({},E),{},{ticks:q?x:E.ticks}):void 0,width:l??g,height:s??b,offset:u},q?!0:m);tu(Array.isArray(y),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof y,"]")),Array.isArray(y)&&($=y)}return Dt.createElement(xr,{zIndex:c.zIndex},Dt.createElement("g",{className:"recharts-cartesian-grid"},Dt.createElement(aG,{fill:(i=c.fill)!==null&&i!==void 0?i:T.grid.fill,fillOpacity:(o=c.fillOpacity)!==null&&o!==void 0?o:T.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),Dt.createElement(lG,Al({},c,{horizontalPoints:B})),Dt.createElement(sG,Al({},c,{verticalPoints:$})),Dt.createElement(iG,Al({},c,_,{offset:u,horizontalPoints:B,xAxis:E,yAxis:C})),Dt.createElement(oG,Al({},c,_,{offset:u,verticalPoints:$,xAxis:E,yAxis:C}))))}Nl.displayName="CartesianGrid";var fG={},w6=Ke({name:"errorBars",initialState:fG,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]||(e[n]=[]),e[n].push(a)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.prev,i=r.next;e[n]&&(e[n]=e[n].map(o=>o.dataKey===a.dataKey&&o.direction===a.direction?i:o))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]&&(e[n]=e[n].filter(i=>i.dataKey!==a.dataKey||i.direction!==a.direction))}}}),Vw=w6.actions,sye=Vw.addErrorBar,uye=Vw.replaceErrorBar,cye=Vw.removeErrorBar;var S6=w6.reducer;var Fw=J(R());function Yw(e,t){var r,n,a=ye(u=>Ea(u,e)),i=ye(u=>Oa(u,t)),o=(r=a?.allowDataOverflow)!==null&&r!==void 0?r:Ut.allowDataOverflow,l=(n=i?.allowDataOverflow)!==null&&n!==void 0?n:$t.allowDataOverflow,s=o||l;return{needClip:s,needClipX:o,needClipY:l}}function A6(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,a=Yu(),i=Yw(t,r),o=i.needClipX,l=i.needClipY,s=i.needClip,u=ye(x=>Q2(x,t,!1)),c=ye(x=>J2(x,r,!1));if(!s||!a)return null;var d=a.x,f=a.y,p=a.width,v=a.height,g=o&&u?Math.min(u[0],u[1]):d-p/2,b=l&&c?Math.min(c[0],c[1]):f-v/2,m=o&&u?Math.abs(u[1]-u[0]):p*2,h=l&&c?Math.abs(c[1]-c[0]):v*2;return Fw.createElement("clipPath",{id:"clipPath-".concat(n)},Fw.createElement("rect",{x:g,y:b,width:m,height:h}))}function N6(e){var t=Ji(e),r=3,n=2;if(t!=null){var a=t.r,i=t.strokeWidth,o=Number(a),l=Number(i);return(Number.isNaN(o)||o<0)&&(o=r),(Number.isNaN(l)||l<0)&&(l=n),{r:o,strokeWidth:l}}return{r,strokeWidth:n}}var Fe=J(R()),Cl=J(R());function Kg(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:Lw}function Gg(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:Lw}var C6=(e,t,r)=>ow(e,"xAxis",Kg(e,t),r),_6=(e,t,r)=>iw(e,"xAxis",Kg(e,t),r),E6=(e,t,r)=>ow(e,"yAxis",Gg(e,t),r),O6=(e,t,r)=>iw(e,"yAxis",Gg(e,t),r),pG=W([Qe,C6,E6,_6,O6],(e,t,r,n,a)=>Qr(e,"xAxis")?Qs(t,n,!1):Qs(r,a,!1)),mG=(e,t)=>t,qw=W([O2,mG],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),k6=e=>{var t=Qe(e),r=Qr(t,"xAxis");return r?"yAxis":"xAxis"},vG=(e,t)=>{var r=k6(e);return r==="yAxis"?Gg(e,t):Kg(e,t)},T6=(e,t,r)=>z2(e,k6(e),vG(e,t),r),hG=W([qw,T6],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,a=cu(e);if(!(n==null||a==null)){var i=(r=t[n])===null||r===void 0?void 0:r.stackedData,o=i?.find(l=>l.key===a);if(o!=null)return o.map(l=>[l[0],l[1]])}}}),gG=W([qw,T6],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var r=t[e.stackId];if(r!=null)return r.graphicalItems.map(n=>n.dataKey).filter(nr)}}),M6=W([Qe,C6,E6,_6,O6,hG,XT,pG,qw,l3,gG],(e,t,r,n,a,i,o,l,s,u,c)=>{var d=o.chartData,f=o.dataStartIndex,p=o.dataEndIndex;if(!(s==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||a==null||n.length===0||a.length===0||l==null)){var v=s.data,g;if(v&&v.length>0?g=v:g=d?.slice(f,p+1),g!=null)return D6({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataStartIndex:f,areaSettings:s,stackedData:i,displayedData:g,chartBaseValue:u,bandSize:l,stackDataKeys:c})}});var Dr=J(R());var yG=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],xG=["id","baseLine"];function Cf(){return Cf=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return me(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.y||0),c)),me(c)?Dr.createElement("rect",{x:ld.x||0));return me(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.x||0),c)),me(c)?Dr.createElement("rect",{x:0,y:le==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[Wu(Wu({},r.next),{},{x:zn(r.prev.x,r.next.x,t),y:zn(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),L6={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:mf,animationInterpolateFn:TG,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:j6,xAxisId:0,yAxisId:0,zIndex:rt.area};function Zg(e,t){return e&&e!=="none"?e:t}var MG=e=>{var t=e.dataKey,r=e.name,n=e.stroke,a=e.fill,i=e.legendType,o=e.hide;return[{inactive:o,dataKey:t,type:i,color:Zg(n,a),value:x1(r,t),payload:e}]},DG=Fe.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,a=e.strokeWidth,i=e.fill,o=e.name,l=e.hide,s=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,f={dataDefinedOnItem:r,getPosition:ea,settings:{stroke:n,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:x1(o,t),hide:l,type:c,color:Zg(n,i),unit:s,formatter:u,graphicalItemId:d}};return Fe.createElement(sD,{tooltipEntrySettings:f})});function PG(e){var t=e.clipPathId,r=e.points,n=e.props,a=n.needClip,i=n.dot,o=n.dataKey,l=ur(n);return Fe.createElement(_D,{points:r,dot:i,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:o,baseProps:l,needClip:a,clipPathId:t})}function jG(e){var t=e.showLabels,r=e.children,n=e.points,a=n.map(i=>{var o,l,s={x:(o=i.x)!==null&&o!==void 0?o:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Wu(Wu({},s),{},{value:i.value,payload:i.payload,parentViewBox:void 0,viewBox:s,fill:void 0})});return Fe.createElement(Q8,{value:t?a:void 0},r)}function IG(e){var t=e.points,r=e.baseLine,n=e.needClip,a=e.clipPathId,i=e.props,o=e.animationElapsedTime,l=e.isAnimating,s=e.isEntrance,u=i.layout,c=i.type,d=i.stroke,f=i.connectNulls,p=i.isRange,v=i.shape,g=i.id,b=z6(i,NG),m=Lt(b),h=Wu(Wu({},m),{},{id:g,points:t,connectNulls:f,type:c,baseLine:r,layout:u,stroke:d,isRange:p,animationElapsedTime:o,isAnimating:l,isEntrance:s});return Fe.createElement(Fe.Fragment,null,t?.length>1&&Fe.createElement(er,{clipPath:n?"url(#clipPath-".concat(a,")"):void 0},Fe.createElement(lD,{option:v,DefaultShape:L6.shape,shapeProps:h})),Fe.createElement(PG,{points:t,props:b,clipPathId:a}))}function zG(e,t,r){if(me(e)){var n=me(t)?t:void 0;return zn(n,e,r)}if(St(e)||Ar(e)){var a=me(t)?t:void 0;return zn(a,0,r)}return e}function LG(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=e.previousPointsRef,i=e.previousBaselineRef,o=n.points,l=n.baseLine,s=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,f=n.animationMatchBy,p=n.animationInterpolateFn,v=(0,Cl.useMemo)(()=>({points:o,baseLine:l}),[o,l]),g=Lg(v,i),b=nu(),m=pD(n.onAnimationStart,n.onAnimationEnd),h=m.isAnimating,x=m.handleAnimationStart,w=m.handleAnimationEnd,E=g.startValue;if(b==null)return null;var C;return Array.isArray(l)&&Array.isArray(E)?C=vf(E,l,f):Array.isArray(l)?C=vf(null,l,f):C=null,Fe.createElement(mD,{animationInput:v,animationIdPrefix:"recharts-area-",items:o,previousItemsRef:a,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:x,onAnimationEnd:w,animationInterpolateFn:p,animationMatchBy:f,layout:b},(T,_,I)=>{var z;return _===1?z=l:Array.isArray(l)?z=p(C,_,b):z=I?l:zG(l,E,_),g.syncStepValue(z,_),Fe.createElement(jG,{showLabels:!h,points:o},n.children,Fe.createElement(IG,{points:T,baseLine:z,needClip:t,clipPathId:r,props:n,animationElapsedTime:_,isAnimating:h||_<1,isEntrance:I}),Fe.createElement(R8,{label:n.label}))})}function BG(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=(0,Cl.useRef)(null),i=(0,Cl.useRef)();return Fe.createElement(LG,{needClip:t,clipPathId:r,props:n,previousPointsRef:a,previousBaselineRef:i})}var Ww=class extends Cl.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,a=t.points,i=t.className,o=t.top,l=t.left,s=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,f=t.height,p=t.id,v=t.baseLine,g=t.zIndex;if(r)return null;var b=Te("recharts-area",i),m=p,h=N6(n),x=h.r,w=h.strokeWidth,E=zg(n),C=x*2+w,T=s?"url(#clipPath-".concat(E?"":"dots-").concat(m,")"):void 0;return Fe.createElement(xr,{zIndex:g},Fe.createElement(er,{className:b},s&&Fe.createElement("defs",null,Fe.createElement(A6,{clipPathId:m,xAxisId:u,yAxisId:c}),!E&&Fe.createElement("clipPath",{id:"clipPath-dots-".concat(m)},Fe.createElement("rect",{x:l-C/2,y:o-C/2,width:d+C,height:f+C}))),Fe.createElement(BG,{needClip:s,clipPathId:m,props:this.props})),Fe.createElement(Uw,{points:a,mainColor:Zg(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:T}),this.props.isRange&&Array.isArray(v)&&Fe.createElement(Uw,{points:v,mainColor:Zg(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:T}))}};function UG(e){var t,r=e.activeDot,n=e.animationBegin,a=e.animationDuration,i=e.animationEasing,o=e.connectNulls,l=e.dot,s=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,f=e.legendType,p=e.stroke,v=e.xAxisId,g=e.yAxisId,b=z6(e,CG),m=ba(),h=xg(),x=Yw(v,g),w=x.needClip,E=ct(),C=(t=ye(q=>M6(q,e.id,E)))!==null&&t!==void 0?t:{},T=C.points,_=C.isRange,I=C.baseLine,z=Yu();if(m!=="horizontal"&&m!=="vertical"||z==null||h!=="AreaChart"&&h!=="ComposedChart")return null;var B=z.height,$=z.width,X=z.x,H=z.y;return!T||!T.length?null:Fe.createElement(Ww,Xg({},b,{activeDot:r,animationBegin:n,animationDuration:a,animationEasing:i,baseLine:I,connectNulls:o,dot:l,fill:s,fillOpacity:u,height:B,hide:c,layout:m,isAnimationActive:d,isRange:_,legendType:f,needClip:w,points:T,stroke:p,width:$,left:X,top:H,xAxisId:v,yAxisId:g}))}var $G=(e,t,r,n,a)=>{var i=r??t;if(me(i))return i;var o=e==="horizontal"?a:n,l=o.scale.domain();if(o.type==="number"){var s=Math.max(l[0],l[1]),u=Math.min(l[0],l[1]);return i==="dataMin"?u:i==="dataMax"||s<0?s:Math.max(Math.min(l[0],l[1]),0)}return i==="dataMin"?l[0]:i==="dataMax"?l[1]:l[0]};function D6(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,a=t.dataKey,i=e.stackedData,o=e.layout,l=e.chartBaseValue,s=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,v=e.bandSize,g=e.stackDataKeys,b=i&&i.length,m=$G(o,l,n,s,u),h=o==="horizontal",x=!1,w=c.map((C,T)=>{var _,I,z,B;if(b)B=i[d+T];else{var $=ht(C,a);Array.isArray($)?(B=$,x=!0):B=[m,$]}var X=(_=(I=B)===null||I===void 0?void 0:I[1])!==null&&_!==void 0?_:null,H=ht(C,a),q=b&&H==null&&g!=null&&g.length>0&&g.every(O=>ht(C,O)==null),y=X==null||b&&!r&&H==null||q;if(h){var N;return{x:v1({axis:s,ticks:f,bandSize:v,entry:C,index:T}),y:y?null:(N=u.scale.map(X))!==null&&N!==void 0?N:null,value:B,payload:C}}return{x:y?null:(z=s.scale.map(X))!==null&&z!==void 0?z:null,y:v1({axis:u,ticks:p,bandSize:v,entry:C,index:T}),value:B,payload:C}}),E;return b||x?E=w.map(C=>{var T,_=Array.isArray(C.value)?C.value[0]:null;if(h){var I;return{x:C.x,y:_!=null&&C.y!=null&&(I=u.scale.map(_))!==null&&I!==void 0?I:null,payload:C.payload}}return{x:_!=null&&(T=s.scale.map(_))!==null&&T!==void 0?T:null,y:C.y,payload:C.payload}}):E=h?u.scale.map(m):s.scale.map(m),{points:w,baseLine:E??0,isRange:x}}function HG(e){var t=At(e,L6),r=ct();return Fe.createElement(yD,{id:t.id,type:"area"},n=>Fe.createElement(Fe.Fragment,null,Fe.createElement(uD,{legendPayload:MG(t)}),Fe.createElement(DG,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),Fe.createElement(ND,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:ak(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),Fe.createElement(UG,Xg({},t,{id:n}))))}var _l=Fe.memo(HG,ro);_l.displayName="Area";var yi=J(R()),qn=J(R());var VG=["domain","range"],FG=["domain","range"];function B6(e,t){if(e==null)return{};var r,n,a=YG(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{if(o!=null)return H6(H6({},i),{},{type:o})},[i,o]);return(0,qn.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(kD(l)):r.current!==l&&t(TD({prev:r.current,next:l})),r.current=l)},[l,t]),(0,qn.useLayoutEffect)(()=>()=>{r.current&&(t(MD(r.current)),r.current=null)},[t]),null}var RG=e=>{var t=e.xAxisId,r=e.className,n=e.height,a=e.label,i=(0,qn.useRef)(null),o=(0,qn.useRef)(null),l=ye(Bv),s=ct(),u=Le(),c="xAxis",d=ye(C=>sg(C,c,t,s)),f=ye(C=>J4(C,t)),p=ye(C=>R4(C,t)),v=ye(C=>A2(C,t));if((0,qn.useLayoutEffect)(()=>{if(!(n!=="auto"||!f||xl(a)||(0,qn.isValidElement)(a)||v==null)){var C=i.current;if(C){var T=C.getCalculatedHeight();Math.round(f.height)!==Math.round(T)&&u(zD({id:t,height:T}))}}},[d,f,u,a,t,n,v]),f==null||p==null||v==null)return null;var g=e.dangerouslySetInnerHTML,b=e.ticks,m=e.scale,h=Gw(e,WG),x=v.id,w=v.scale,E=Gw(v,KG);return yi.createElement(Nf,Kw({},h,E,{ref:i,labelRef:o,x:p.x,y:p.y,width:f.width,height:f.height,className:Te("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:d,axisType:c,axisId:t}))},eX={allowDataOverflow:Ut.allowDataOverflow,allowDecimals:Ut.allowDecimals,allowDuplicatedCategory:Ut.allowDuplicatedCategory,angle:Ut.angle,axisLine:Yn.axisLine,height:Ut.height,hide:!1,includeHidden:Ut.includeHidden,interval:Ut.interval,label:!1,minTickGap:Ut.minTickGap,mirror:Ut.mirror,orientation:Ut.orientation,padding:Ut.padding,reversed:Ut.reversed,scale:Ut.scale,tick:Ut.tick,tickCount:Ut.tickCount,tickLine:Yn.tickLine,tickSize:Yn.tickSize,type:Ut.type,niceTicks:Ut.niceTicks,xAxisId:0},tX=e=>{var t=At(e,eX);return yi.createElement(yi.Fragment,null,yi.createElement(JG,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),yi.createElement(RG,t))},El=yi.memo(tX,Qg);El.displayName="XAxis";var xi=J(R()),Wn=J(R());var rX=["type"],nX=["dangerouslySetInnerHTML","ticks","scale"],aX=["id","scale"];function Xw(){return Xw=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o!=null)return F6(F6({},i),{},{type:o})},[o,i]);return(0,Wn.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(DD(l)):r.current!==l&&t(PD({prev:r.current,next:l})),r.current=l)},[l,t]),(0,Wn.useLayoutEffect)(()=>()=>{r.current&&(t(jD(r.current)),r.current=null)},[t]),null}function cX(e){var t=e.yAxisId,r=e.className,n=e.width,a=e.label,i=(0,Wn.useRef)(null),o=(0,Wn.useRef)(null),l=ye(Bv),s=ct(),u=Le(),c="yAxis",d=ye(C=>tM(C,t)),f=ye(C=>eM(C,t)),p=ye(C=>sg(C,c,t,s)),v=ye(C=>N2(C,t));if((0,Wn.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||xl(a)||(0,Wn.isValidElement)(a)||v==null)){var C=i.current;if(C){var T=C.getCalculatedWidth();Math.round(d.width)!==Math.round(T)&&u(ID({id:t,width:T}))}}},[p,d,u,a,t,n,v]),d==null||f==null||v==null)return null;var g=e.dangerouslySetInnerHTML,b=e.ticks,m=e.scale,h=Zw(e,nX),x=v.id,w=v.scale,E=Zw(v,aX);return xi.createElement(Nf,Xw({},h,E,{ref:i,labelRef:o,x:f.x,y:f.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:Te("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:p,axisType:c,axisId:t}))}var dX={allowDataOverflow:$t.allowDataOverflow,allowDecimals:$t.allowDecimals,allowDuplicatedCategory:$t.allowDuplicatedCategory,angle:$t.angle,axisLine:Yn.axisLine,hide:!1,includeHidden:$t.includeHidden,interval:$t.interval,label:!1,minTickGap:$t.minTickGap,mirror:$t.mirror,orientation:$t.orientation,padding:$t.padding,reversed:$t.reversed,scale:$t.scale,tick:$t.tick,tickCount:$t.tickCount,tickLine:Yn.tickLine,tickSize:Yn.tickSize,type:$t.type,niceTicks:$t.niceTicks,width:$t.width,yAxisId:0},fX=e=>{var t=At(e,dX);return xi.createElement(xi.Fragment,null,xi.createElement(uX,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),xi.createElement(cX,t))},Ol=xi.memo(fX,Qg);Ol.displayName="YAxis";var jl=J(R()),xP=J(R());var nP=J(R()),aP=J(R());var pX=(e,t)=>t,_f=W([pX,Qe,hh,Bt,fw,en,jM,gt],$M);function mX(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Ef(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(mX(e)){var a=e.currentTarget.getBBox();r=a.width>0?t.width/a.width:1,n=a.height>0?t.height/a.height:1}else{var i=e.currentTarget;r=i.offsetWidth>0?t.width/i.offsetWidth:1,n=i.offsetHeight>0?t.height/i.offsetHeight:1}var o=(l,s)=>({relativeX:Math.round((l-t.left)/r),relativeY:Math.round((s-t.top)/n)});return"touches"in e?Array.from(e.touches).map(l=>o(l.clientX,l.clientY)):o(e.clientX,e.clientY)}var Jw=Xt("mouseClick"),Rw=oi();Rw.startListening({actionCreator:Jw,effect:(e,t)=>{var r=e.payload,n=_f(t.getState(),Ef(r));n?.activeIndex!=null&&t.dispatch(dM({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var Jg=Xt("mouseMove"),eS=oi(),Ku=null,kl=null,Qw=null;eS.startListening({actionCreator:Jg,effect:(e,t)=>{var r=e.payload,n=t.getState(),a=n.eventSettings,i=a.throttleDelay,o=a.throttledEvents,l=o==="all"||o?.includes("mousemove");Ku!==null&&(cancelAnimationFrame(Ku),Ku=null),kl!==null&&(typeof i!="number"||!l)&&(clearTimeout(kl),kl=null),Qw=Ef(r);var s=()=>{var u=t.getState(),c=fo(u,u.tooltip.settings.shared);if(!Qw){Ku=null,kl=null;return}if(c==="axis"){var d=_f(u,Qw);d?.activeIndex!=null?t.dispatch(dg({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(cg())}Ku=null,kl=null};if(!l){s();return}i==="raf"?Ku=requestAnimationFrame(s):typeof i=="number"&&kl===null&&(kl=setTimeout(s,i))}});function Y6(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var q6={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},W6=Ke({name:"rootProps",initialState:q6,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:q6.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),K6=W6.reducer,G6=W6.actions.updateOptions;var vX=null,hX={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},X6=Ke({name:"polarOptions",initialState:vX,reducers:hX}),uxe=X6.actions.updatePolarOptions;var Z6=X6.reducer;var tS=Xt("keyDown"),rS=Xt("focus"),nS=Xt("blur"),Of=oi(),Gu=null,Tl=null,Rg=null;Of.startListening({actionCreator:tS,effect:(e,t)=>{Rg=e.payload,Gu!==null&&(cancelAnimationFrame(Gu),Gu=null);var r=t.getState(),n=r.eventSettings,a=n.throttleDelay,i=n.throttledEvents,o=i==="all"||i.includes("keydown");Tl!==null&&(typeof a!="number"||!o)&&(clearTimeout(Tl),Tl=null);var l=()=>{try{var s=t.getState(),u=s.rootProps.accessibilityLayer!==!1;if(!u)return;var c=s.tooltip.keyboardInteraction,d=Rg;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var f=po(c,mi(s),di(s),vo(s)),p=f==null?-1:Number(f),v=!Number.isFinite(p)||p<0,g=en(s),b=mi(s),m=fo(s,s.tooltip.settings.shared);if(d==="Enter"){if(v)return;var h=lf(s,m,"hover",String(c.index));t.dispatch(af({active:!c.active,activeIndex:c.index,activeCoordinate:h}));return}var x=rM(s),w=x==="left-to-right"?1:-1,E=d==="ArrowRight"?1:-1,C;if(v){var T=di(s),_=vo(s),I=E*w,z=q=>({active:!1,index:String(q),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(C=-1,I>0){for(var B=0;B=0;$--)if(po(z($),b,T,_)!=null){C=$;break}if(C<0)return}else{C=p+E*w;var X=g?.length||b.length;if(X===0||C>=X||C<0)return}var H=lf(s,m,"hover",String(C));t.dispatch(af({active:!0,activeIndex:C.toString(),activeCoordinate:H}))}finally{Gu=null,Tl=null}};if(!o){l();return}a==="raf"?Gu=requestAnimationFrame(l):typeof a=="number"&&Tl===null&&(l(),Rg=null,Tl=setTimeout(()=>{Rg?l():(Tl=null,Gu=null)},a))}});Of.startListening({actionCreator:rS,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;if(!a.active&&a.index==null){var i="0",o=fo(r,r.tooltip.settings.shared),l=lf(r,o,"hover",String(i));t.dispatch(af({active:!0,activeIndex:i,activeCoordinate:l}))}}}});Of.startListening({actionCreator:nS,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;a.active&&t.dispatch(af({active:!1,activeIndex:a.index,activeCoordinate:a.coordinate}))}}});function ey(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var a=Reflect.get(r,n);return typeof a=="function"?a.bind(r):a}})}var An=Xt("externalEvent"),iS=oi(),ty=new Map,kf=new Map,aS=new Map;iS.startListening({actionCreator:An,effect:(e,t)=>{var r=e.payload,n=r.handler,a=r.reactEvent;if(n!=null){var i=a.type,o=ey(a);aS.set(i,{handler:n,reactEvent:o});var l=ty.get(i);l!==void 0&&(cancelAnimationFrame(l),ty.delete(i));var s=t.getState(),u=s.eventSettings,c=u.throttleDelay,d=u.throttledEvents,f=d,p=f==="all"||f?.includes(i),v=kf.get(i);v!==void 0&&(typeof c!="number"||!p)&&(clearTimeout(v),kf.delete(i));var g=()=>{var h=aS.get(i);try{if(!h)return;var x=h.handler,w=h.reactEvent,E=t.getState(),C={activeCoordinate:hw(E),activeDataKey:SM(E),activeIndex:hl(E),activeLabel:yg(E),activeTooltipIndex:hl(E),isTooltipActive:gw(E)};x&&x(C,w)}finally{ty.delete(i),kf.delete(i),aS.delete(i)}};if(!p){g();return}if(c==="raf"){var b=requestAnimationFrame(g);ty.set(i,b)}else if(typeof c=="number"){if(!kf.has(i)){g();var m=setTimeout(g,c);kf.set(i,m)}}else g()}}});var gX=W([pi],e=>e.tooltipItemPayloads),Q6=W([gX,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(i=>i.settings.graphicalItemId===r);if(n!=null){var a=n.getPosition;if(a!=null)return a(t)}}});var oS=Xt("touchMove"),lS=oi(),Ml=null,go=null,J6=null,Tf=null;lS.startListening({actionCreator:oS,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Tf=ey(r);var n=t.getState(),a=n.eventSettings,i=a.throttleDelay,o=a.throttledEvents,l=o==="all"||o.includes("touchmove");Ml!==null&&(cancelAnimationFrame(Ml),Ml=null),go!==null&&(typeof i!="number"||!l)&&(clearTimeout(go),go=null),J6=Array.from(r.touches).map(u=>Ef({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var s=()=>{if(Tf!=null){var u=t.getState(),c=fo(u,u.tooltip.settings.shared);if(c==="axis"){var d,f=(d=J6)===null||d===void 0?void 0:d[0];if(f==null){Ml=null,go=null;return}var p=_f(u,f);p?.activeIndex!=null&&t.dispatch(dg({activeIndex:p.activeIndex,activeDataKey:void 0,activeCoordinate:p.activeCoordinate}))}else if(c==="item"){var v,g=Tf.touches[0];if(document.elementFromPoint==null||g==null)return;var b=document.elementFromPoint(g.clientX,g.clientY);if(!b||!b.getAttribute)return;var m=b.getAttribute(uk),h=(v=b.getAttribute(ck))!==null&&v!==void 0?v:void 0,x=mo(u).find(C=>C.id===h);if(m==null||x==null||h==null)return;var w=x.dataKey,E=Q6(u,m,h);t.dispatch(cM({activeDataKey:w,activeIndex:m,activeCoordinate:E,activeGraphicalItemId:h}))}Ml=null,go=null}};if(!l){s();return}i==="raf"?Ml=requestAnimationFrame(s):typeof i=="number"&&go===null&&(s(),Tf=null,go=setTimeout(()=>{Tf?s():(go=null,Ml=null)},i))}}});var sS={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},R6=Ke({name:"eventSettings",initialState:sS,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=je(t.payload.throttledEvents))}}}),eP=R6.actions.setEventSettings;var tP=R6.reducer;var yX=dv({brush:WD,cartesianAxis:LD,chartData:d8,errorBars:S6,eventSettings:tP,graphicalItems:AD,layout:ek,legend:Ok,options:o8,polarAxis:rD,polarOptions:Z6,referenceElements:XD,renderedTicks:f6,rootProps:K6,tooltip:fM,zIndex:XM}),rP=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return zO({reducer:yX,preloadedState:t,middleware:n=>{var a;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((a="es6")!==null&&a!==void 0?a:"")}).concat([Rw.middleware,eS.middleware,Of.middleware,iS.middleware,lS.middleware])},enhancers:n=>{var a=n;return typeof n=="function"&&(a=n()),a.concat(u1({type:"raf"}))},devTools:Bn.devToolsEnabled&&{serialize:{replacer:Y6},name:"recharts-".concat(r)}})};function iP(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,a=ct(),i=(0,aP.useRef)(null);if(a)return r;i.current==null&&(i.current=rP(t,n));var o=ud;return nP.createElement(zk,{context:o,store:i.current},r)}var ry=J(R());function xX(e){var t=e.layout,r=e.margin,n=Le(),a=ct();return(0,ry.useEffect)(()=>{a||(n(QO(t)),n(f1(r)))},[n,a,t,r]),null}var oP=(0,ry.memo)(xX,ro);var lP=J(R());function sP(e){var t=Le();return(0,lP.useEffect)(()=>{t(G6(e))},[t,e]),null}var ny=J(R());var bX=e=>{var t=Le();return(0,ny.useEffect)(()=>{t(eP(e))},[t,e]),null},uP=(0,ny.memo)(bX,ro);var bi=J(R()),hP=J(R());var Pl=J(R()),cS=J(R());var Dl=J(R()),ay=J(R());function cP(e){var t=e.zIndex,r=e.isPanorama,n=(0,ay.useRef)(null),a=Le();return(0,ay.useLayoutEffect)(()=>(n.current&&a(KM({zIndex:t,element:n.current,isPanorama:r})),()=>{a(GM({zIndex:t,isPanorama:r}))}),[a,t,r]),Dl.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function uS(e){var t=e.children,r=e.isPanorama,n=ye(VM);if(!n||n.length===0)return t;var a=n.filter(o=>o<0),i=n.filter(o=>o>0);return Dl.createElement(Dl.Fragment,null,a.map(o=>Dl.createElement(cP,{key:o,zIndex:o,isPanorama:r})),t,i.map(o=>Dl.createElement(cP,{key:o,zIndex:o,isPanorama:r})))}var wX=["children"];function SX(e,t){if(e==null)return{};var r,n,a=AX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var r=Vv(),n=Fv(),a=Wv();if(!Xr(r)||!Xr(n))return null;var i=e.children,o=e.otherAttributes,l=e.title,s=e.desc,u,c;return o!=null&&(typeof o.tabIndex=="number"?u=o.tabIndex:u=a?0:void 0,typeof o.role=="string"?c=o.role:c=a?"application":void 0),Pl.createElement(pb,iy({},o,{title:l,desc:s,role:c,tabIndex:u,width:r,height:n,style:NX,ref:t}),i)}),_X=e=>{var t=e.children,r=ye(Go);if(!r)return null;var n=r.width,a=r.height,i=r.y,o=r.x;return Pl.createElement(pb,{width:n,height:a,x:o,y:i},t)},dS=(0,cS.forwardRef)((e,t)=>{var r=e.children,n=SX(e,wX),a=ct();return a?Pl.createElement(_X,null,Pl.createElement(uS,{isPanorama:!0},r)):Pl.createElement(CX,iy({ref:t},n),Pl.createElement(uS,{isPanorama:!1},r))});var Ct=J(R()),He=J(R());var oy=J(R());function EX(e,t){return MX(e)||TX(e,t)||kX(e,t)||OX()}function OX(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kX(e,t){if(e){if(typeof e=="string")return dP(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dP(e,t):void 0}}function dP(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var o=n.getBoundingClientRect(),l=o.width/n.offsetWidth;ke(l)&&l!==i&&e(RO(l))}},[n,e,i]),a}function pP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function DX(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(p8(),null);function sy(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var HX=(0,He.forwardRef)((e,t)=>{var r,n,a=(0,He.useRef)(null),i=(0,He.useState)({containerWidth:sy((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:sy((n=e.style)===null||n===void 0?void 0:n.height)}),o=ly(i,2),l=o[0],s=o[1],u=(0,He.useCallback)((d,f)=>{s(p=>{var v=Math.round(d),g=Math.round(f);return p.containerWidth===v&&p.containerHeight===g?p:{containerWidth:v,containerHeight:g}})},[]),c=(0,He.useCallback)(d=>{if(typeof t=="function"&&t(d),a.current!=null&&(a.current.disconnect(),a.current=null),d!=null&&typeof ResizeObserver<"u"){var f=d.getBoundingClientRect(),p=f.width,v=f.height;u(p,v);var g=m=>{var h=m[0];if(h!=null){var x=h.contentRect,w=x.width,E=x.height;u(w,E)}},b=new ResizeObserver(g);b.observe(d),a.current=b}},[t,u]);return(0,He.useEffect)(()=>()=>{var d=a.current;d?.disconnect()},[u]),Ct.createElement(Ct.Fragment,null,Ct.createElement(Qo,{width:l.containerWidth,height:l.containerHeight}),Ct.createElement("div",yo({ref:c},e)))}),VX=(0,He.forwardRef)((e,t)=>{var r=e.width,n=e.height,a=(0,He.useState)({containerWidth:sy(r),containerHeight:sy(n)}),i=ly(a,2),o=i[0],l=i[1],s=(0,He.useCallback)((c,d)=>{l(f=>{var p=Math.round(c),v=Math.round(d);return f.containerWidth===p&&f.containerHeight===v?f:{containerWidth:p,containerHeight:v}})},[]),u=(0,He.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),f=d.width,p=d.height;s(f,p)}},[t,s]);return Ct.createElement(Ct.Fragment,null,Ct.createElement(Qo,{width:o.containerWidth,height:o.containerHeight}),Ct.createElement("div",yo({ref:u},e)))}),FX=(0,He.forwardRef)((e,t)=>{var r=e.width,n=e.height;return Ct.createElement(Ct.Fragment,null,Ct.createElement(Qo,{width:r,height:n}),Ct.createElement("div",yo({ref:t},e)))}),YX=(0,He.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?Ct.createElement(VX,yo({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?Ct.createElement(FX,yo({},e,{width:r,height:n,ref:t})):Ct.createElement(Ct.Fragment,null,Ct.createElement(Qo,{width:r,height:n}),Ct.createElement("div",yo({ref:t},e)))});function qX(e){return e?HX:YX}var vP=(0,He.forwardRef)((e,t)=>{var r=e.children,n=e.className,a=e.height,i=e.onClick,o=e.onContextMenu,l=e.onDoubleClick,s=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,f=e.onMouseUp,p=e.onTouchEnd,v=e.onTouchMove,g=e.onTouchStart,b=e.style,m=e.width,h=e.responsive,x=e.dispatchTouchEvents,w=x===void 0?!0:x,E=(0,He.useRef)(null),C=Le(),T=(0,He.useState)(null),_=ly(T,2),I=_[0],z=_[1],B=(0,He.useState)(null),$=ly(B,2),X=$[0],H=$[1],q=fP(),y=xd(),N=y?.width>0?y.width:m,O=y?.height>0?y.height:a,M=(0,He.useCallback)(K=>{q(K),typeof t=="function"&&t(K),z(K),H(K),K!=null&&(E.current=K)},[q,t,z,H]),A=(0,He.useCallback)(K=>{C(Jw(K)),C(An({handler:i,reactEvent:K}))},[C,i]),k=(0,He.useCallback)(K=>{C(Jg(K)),C(An({handler:u,reactEvent:K}))},[C,u]),V=(0,He.useCallback)(K=>{C(cg()),C(An({handler:c,reactEvent:K}))},[C,c]),G=(0,He.useCallback)(K=>{C(Jg(K)),C(An({handler:d,reactEvent:K}))},[C,d]),Q=(0,He.useCallback)(()=>{C(rS())},[C]),se=(0,He.useCallback)(()=>{C(nS())},[C]),ue=(0,He.useCallback)(K=>{C(tS(K.key))},[C]),pe=(0,He.useCallback)(K=>{C(An({handler:o,reactEvent:K}))},[C,o]),Oe=(0,He.useCallback)(K=>{C(An({handler:l,reactEvent:K}))},[C,l]),ie=(0,He.useCallback)(K=>{C(An({handler:s,reactEvent:K}))},[C,s]),Ne=(0,He.useCallback)(K=>{C(An({handler:f,reactEvent:K}))},[C,f]),F=(0,He.useCallback)(K=>{C(An({handler:g,reactEvent:K}))},[C,g]),Y=(0,He.useCallback)(K=>{w&&C(oS(K)),C(An({handler:v,reactEvent:K}))},[C,w,v]),S=(0,He.useCallback)(K=>{C(An({handler:p,reactEvent:K}))},[C,p]),P=qX(h);return Ct.createElement(Cw.Provider,{value:I},Ct.createElement(X_.Provider,{value:X},Ct.createElement(P,{width:N??b?.width,height:O??b?.height,className:Te("recharts-wrapper",n),style:DX({position:"relative",cursor:"default",width:N,height:O},b),onClick:A,onContextMenu:pe,onDoubleClick:Oe,onFocus:Q,onBlur:se,onKeyDown:ue,onMouseDown:ie,onMouseEnter:k,onMouseLeave:V,onMouseMove:G,onMouseUp:Ne,onTouchEnd:S,onTouchMove:Y,onTouchStart:F,ref:M},Ct.createElement($X,null),r)))});var WX=["width","height","responsive","children","className","style","compact","title","desc"];function KX(e,t){if(e==null)return{};var r,n,a=GX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,a=e.responsive,i=e.children,o=e.className,l=e.style,s=e.compact,u=e.title,c=e.desc,d=KX(e,WX),f=ur(d);return s?bi.createElement(bi.Fragment,null,bi.createElement(Qo,{width:r,height:n}),bi.createElement(dS,{otherAttributes:f,title:u,desc:c},i)):bi.createElement(vP,{className:o,style:l,width:r,height:n,responsive:a??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},bi.createElement(dS,{otherAttributes:f,title:u,desc:c,ref:t},bi.createElement(QD,null,i)))});function fS(){return fS=Object.assign?Object.assign.bind():function(e){for(var t=1;twP.createElement(bP,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:tZ,tooltipPayloadSearcher:a8,categoricalChartProps:e,ref:t}));var Kn=J(R()),Zu=[{id:"5m",label:"5m",minutes:5,bucketSeconds:10},{id:"10m",label:"10m",minutes:10,bucketSeconds:20},{id:"15m",label:"15m",minutes:15,bucketSeconds:30},{id:"30m",label:"30m",minutes:30,bucketSeconds:60},{id:"45m",label:"45m",minutes:45,bucketSeconds:60},{id:"1h",label:"1h",minutes:60,bucketSeconds:120},{id:"2h",label:"2h",minutes:120,bucketSeconds:240},{id:"3h",label:"3h",minutes:180,bucketSeconds:300},{id:"6h",label:"6h",minutes:360,bucketSeconds:600},{id:"12h",label:"12h",minutes:720,bucketSeconds:1200},{id:"1d",label:"1d",minutes:1440,bucketSeconds:1800},{id:"3d",label:"3d",minutes:4320,bucketSeconds:7200},{id:"7d",label:"7d",minutes:10080,bucketSeconds:14400},{id:"30d",label:"30d",minutes:43200,bucketSeconds:86400},{id:"90d",label:"90d",minutes:129600,bucketSeconds:259200}],AP="30m",NP="activeagents.timeWindow",CP=(0,Kn.createContext)(null),pS=e=>Zu.find(t=>t.id===e);function _P({children:e}){let[t,r]=(0,Kn.useState)(()=>{try{let i=localStorage.getItem(NP);if(i&&pS(i))return i}catch{}return AP}),n=(0,Kn.useCallback)(i=>{if(pS(i)){r(i);try{localStorage.setItem(NP,i)}catch{}}},[]),a=(0,Kn.useMemo)(()=>{let i=Zu.findIndex(l=>l.id===t),o=Zu[i]||pS(AP);return{timeWindow:o,windowIndex:i,windows:Zu,setWindow:n,zoomTo:l=>{let s=Zu[Math.min(Math.max(l,0),Zu.length-1)];s&&n(s.id)},days:Math.max(1,Math.ceil(o.minutes/1440))}},[t,n]);return Kn.default.createElement(CP.Provider,{value:a},e)}function ka(){let e=(0,Kn.useContext)(CP);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var Qu=J(R());function Ta({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:a,zoomTo:i}=ka(),{darkMode:o}=it(),l=Ps(o),s={color:l.textSecondary};return Qu.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:l.mutedBg}},Qu.default.createElement("button",{onClick:()=>i(r-1),disabled:r<=0,title:"Zoom in (shorter window)","aria-label":"Zoom in",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:s},"\u2212"),Qu.default.createElement("select",{value:n.id,onChange:u=>a(u.target.value),"aria-label":"Time window",className:`aa-field px-2 py-1 mx-1 text-sm rounded-md shadow ${e?"":"min-w-[4.5rem]"}`,style:{background:l.cardBg,color:l.textPrimary,border:`1px solid ${l.cardBorder}`}},t.map(u=>Qu.default.createElement("option",{key:u.id,value:u.id},u.label))),Qu.default.createElement("button",{onClick:()=>i(r+1),disabled:r>=t.length-1,title:"Zoom out (longer window)","aria-label":"Zoom out",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:s},"+"))}var Ft=J(R());var st=J(R()),rZ={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},Mf=e=>{let t=(e||"").toLowerCase();return t.includes("claude")?2e5:t.includes("gemini")?1e6:t.includes("llama")?131072:t.includes("gpt-4o")||t.includes("gpt-4-turbo")||t.includes("gpt-4.1")?128e3:t.includes("gpt-5")?4e5:128e3},Ma=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},Ju=e=>e==null?"\u2014":e>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:e>=1e3?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:String(Math.round(e));function xo({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:a=0,compact:i=!1,defaultOpen:o=!1,label:l="Context window",estimated:s=!1,darkMode:u=!1}){let[c,d]=(0,st.useState)(o),f=r.filter(T=>T.tokens>0),p=e??f.reduce((T,_)=>T+_.tokens,0),v=t>0?p/t:0,g=v>=.9?"#dc2626":v>=.75?"#eab308":null,b=u?"rgba(255,255,255,0.4)":"#9ca3af",m=u?"rgba(255,255,255,0.6)":"#6b7280",h=u?"rgba(255,255,255,0.75)":"#4b5563",x=u?"rgba(255,255,255,0.1)":"#f3f4f6",w=`${Ju(p)} / ${Ju(t)} (${Math.round(v*100)}%)`,E=T=>T.key==="messages"&&g?g:T.color||rZ[T.key]||"#2563eb",C=T=>st.default.createElement("div",{style:{display:"flex",height:T,borderRadius:"999px",overflow:"hidden",background:x,flex:1}},f.map(_=>st.default.createElement("div",{key:_.key,title:`${_.label} \xB7 ${Ju(_.tokens)}`,style:{width:`${Math.min(_.tokens/t*100,100)}%`,background:E(_)}})));return i?st.default.createElement("span",{title:`${l}: ${w}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},C("6px"),st.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:g||b,whiteSpace:"nowrap"}},Math.round(v*100),"%")):st.default.createElement("div",{style:{background:u?"rgba(255,255,255,0.03)":"#ffffff",border:`1px solid ${g?g+"66":u?"rgba(255,255,255,0.1)":"#e5e7eb"}`,borderRadius:"12px",padding:"12px 14px"}},st.default.createElement("div",{onClick:T=>{T.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},st.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:m}},l,s&&st.default.createElement("span",{style:{color:b,fontWeight:400}}," \xB7 estimated")),st.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},st.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:g||h}},w),st.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),st.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},C("9px")),v>=.9&&st.default.createElement("div",{style:{marginTop:"6px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:"#dc2626"}},"[!] compaction imminent \u2014 next turn may drop the oldest messages"),c&&st.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...f,{key:"__free",label:"Free space",tokens:Math.max(t-p,0)}].map(T=>st.default.createElement("div",{key:T.key,style:{display:"flex",alignItems:"center",gap:"8px"}},st.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:T.key==="__free"?x:E(T),border:T.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),st.default.createElement("span",{style:{fontSize:"13px",color:h,flex:1}},T.label),st.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:m,width:"56px",textAlign:"right"}},Ju(T.tokens)),st.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:b,width:"46px",textAlign:"right"}},t>0?`${(T.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||a>0)&&st.default.createElement("div",{style:{marginTop:"4px",paddingTop:"6px",borderTop:`1px solid ${u?"rgba(255,255,255,0.08)":"#f3f4f6"}`,display:"flex",gap:"16px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b}},n>0&&st.default.createElement("span",null,st.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",Ju(n)),a>0&&st.default.createElement("span",null,st.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",Ju(a)))))}var Ce=J(R());var be=J(R());var Gn=J(R()),nZ=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,mS=(e,t)=>e.split(nZ).filter(Boolean).map((r,n)=>{let a=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Gn.default.createElement("strong",{key:a},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Gn.default.createElement("em",{key:a},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Gn.default.createElement("code",{key:a,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let i=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return i?Gn.default.createElement("a",{key:a,href:i[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},i[1]):r});function vS({text:e}){if(!e)return null;let t=[],r=String(e).split(` -`),n=0,a=0;for(;nGn.default.createElement("li",{key:u},mS(s,`li${a}-${u}`)))));continue}if(i.trim()===""){t.push(Gn.default.createElement("div",{key:a++,className:"h-2"})),n+=1;continue}t.push(Gn.default.createElement("div",{key:a++},mS(i,`p${a}`))),n+=1}return Gn.default.createElement("div",{className:"break-words"},t)}var tn=J(R()),aZ=e=>{let t=e.mcp_server||e.server;return t?`MCP server \xB7 ${t}`:typeof e.name=="string"&&e.name.startsWith("mcp__")?`MCP server \xB7 ${e.name.split("__")[1]}`:e.gem?`gem \xB7 ${e.gem}`:e.source?String(e.source):"agent-defined \xB7 method on the agent class"},iZ=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function hS({tool:e,darkMode:t}){let r=iZ(e);return tn.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&tn.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),tn.default.createElement("div",{className:"text-xs font-mono",style:{color:t?"rgba(255,255,255,0.45)":"#9ca3af",display:"flex",flexWrap:"wrap",columnGap:"16px",rowGap:"4px"}},tn.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),tn.default.createElement("span",null,"source: ",aZ(e))))}function gS({tools:e,darkMode:t}){let[r,n]=(0,tn.useState)(null),a=(e||[]).filter(l=>l&&l.name);if(a.length===0)return null;let i=a.find(l=>l.name===r),o=l=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${l?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return tn.default.createElement("div",{style:{marginTop:"8px"}},tn.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},tn.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),a.map(l=>tn.default.createElement("button",{key:l.name,onClick:s=>{s.stopPropagation(),n(r===l.name?null:l.name)},title:r===l.name?"Hide definition":"Show definition",style:o(r===l.name)},"\u2699 ",l.name))),i&&tn.default.createElement("div",{onClick:l=>l.stopPropagation(),style:{marginTop:"6px",padding:"8px 10px",borderRadius:"8px",background:t?"rgba(34,197,94,0.06)":"#f7fef9",border:`1px solid ${t?"rgba(34,197,94,0.25)":"#bbf7d0"}`}},tn.default.createElement(hS,{tool:i,darkMode:t})))}var EP=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,Df=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e,null,2);try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},oZ=["text","output","body","content"],OP=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},lZ=e=>{let t=OP(e.tool_result)??OP(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=oZ.find(i=>typeof t[i]=="string"&&t[i].trim().length>0);if(!r)return null;let n=[t.error&&"error",t.status!=null&&`status ${t.status}`,typeof t.url=="string"&&t.url.replace(/^https?:\/\//,""),typeof t.agent=="string"&&`\u2192 ${t.agent}`,t.truncated&&"truncated"].filter(Boolean).join(" \xB7 "),a=Object.fromEntries(Object.entries(t).filter(([i])=>i!==r));return{field:r,meta:n,body:t[r],rest:a}},sZ=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||Df(e.content)),TP=280,uZ=["tool","system","developer"],Pf=(e,t=TP)=>e.replace(/\s+/g," ").trim().slice(0,t),yS=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return String(e)}},MP=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:yS(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:yS(t)}]:[]},DP=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),cZ=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((a,i)=>{if(a.role!=="assistant"||DP(a.content))return;let o=MP(a);if(o.length===0)return;let l=new Set;Array.isArray(a.tool_calls)?a.tool_calls.forEach(u=>u.id&&l.add(u.id)):a.tool_call_id&&l.add(a.tool_call_id);let s=[];for(let u=i+1;u0&&c.tool_call_id&&!l.has(c.tool_call_id))break;s.push(u)}s.length!==0&&(s.forEach((u,c)=>{let d=t[u],f=o.find(p=>p.name&&p.name===d.tool_name)||o[Math.min(c,o.length-1)];f&&f.args&&!d.tool_arguments&&r.set(u,{tool_arguments:f.args,created_at:a.created_at||d.created_at})}),n.add(i))}),t.map((a,i)=>r.has(i)?{...a,...r.get(i)}:a).filter((a,i)=>!n.has(i))},kP=e=>uZ.includes(e.role)&&typeof e.content=="string"&&Pf(e.content).length>=TP,dZ=({message:e,darkMode:t})=>{let r=e.trace_duration_ms||0;if(!r||e.span_duration_ms==null)return null;let n=Math.min((e.span_start_ms||0)/r*100,98),a=Math.max(e.span_duration_ms/r*100,2),i=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return be.default.createElement("span",{title:`${Math.round(e.span_duration_ms)}ms \xB7 starts at ${Math.round(e.span_start_ms||0)}ms of ${Math.round(r)}ms`,style:{position:"relative",width:"96px",height:"5px",borderRadius:"999px",background:t?"rgba(255,255,255,0.08)":"#f3f4f6",flexShrink:0,marginTop:"8px",display:"inline-block"}},be.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(a,100-n)}%`,borderRadius:"999px",background:i}}))},xS=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0}),br=(e,t)=>{switch(e){case"user":return t?{background:"rgba(59,130,246,0.15)",color:"#93c5fd",label:"User"}:{background:"#eff6ff",color:"#1d4ed8",label:"User"};case"assistant":return t?{background:"rgba(239,68,68,0.12)",color:"#fca5a5",label:"Assistant"}:{background:"#fef2f2",color:"#b91c1c",label:"Assistant"};case"tool":return t?{background:"rgba(245,158,11,0.12)",color:"#fcd34d",label:"Tool"}:{background:"#fffbeb",color:"#b45309",label:"Tool"};case"system":return t?{background:"rgba(139,92,246,0.15)",color:"#c4b5fd",label:"System"}:{background:"#f5f3ff",color:"#6d28d9",label:"System"};case"developer":return t?{background:"rgba(20,184,166,0.15)",color:"#5eead4",label:"Dev"}:{background:"#f0fdfa",color:"#0f766e",label:"Dev"};default:return t?{background:"rgba(255,255,255,0.08)",color:"rgba(255,255,255,0.7)",label:e}:{background:"#f3f4f6",color:"#374151",label:e}}};function Da({messages:e,darkMode:t,tools:r}){let[n,a]=(0,be.useState)({}),i=s=>a(u=>({...u,[s]:!u[s]})),o={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},l=cZ(e);return be.default.createElement("div",{className:"space-y-3"},l.map(s=>{let u=br(s.role,t),c=!!n[s.id],d=kP(s)&&!c,f=sZ(s)||kP(s),p=Df(s.tool_arguments),v=Df(s.tool_result)||Df(s.content),g=s.tool_calls&&(!Array.isArray(s.tool_calls)||s.tool_calls.length>0)?Df(s.tool_calls):null,b=s.role==="tool"?lZ(s):null,m=s.tool_name?(r||[]).find(I=>I&&I.name===s.tool_name):null,h=s.role==="tool"?yS(s.tool_arguments):null,x=s.role==="tool"&&!!h,w=br("assistant",t),E=br("tool",t),C=s.role==="tool"&&!s.tool_arguments&&l.some(I=>I&&I.role==="assistant"&&(s.tool_call_id&&I.tool_call_id===s.tool_call_id||Array.isArray(I.tool_calls)&&I.tool_calls.some(z=>z.id&&z.id===s.tool_call_id))),T=s.role==="assistant"&&!DP(s.content)?MP(s):[],_=xS(t);return be.default.createElement("div",{key:s.id},be.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${f?"cursor-pointer":""}`,onClick:f?()=>i(s.id):void 0,style:c?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},be.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(x?[w,E]:[u]).map(I=>be.default.createElement("span",{key:I.label,className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:I.background,color:I.color,textAlign:"center"}},I.label))),be.default.createElement("div",{className:"min-w-0 flex-1"},be.default.createElement("div",{className:"text-sm break-words",style:{color:o.textPrimary}},s.role==="tool"?be.default.createElement("span",{style:{display:"grid",gap:"2px"}},h&&!C&&be.default.createElement("span",{className:"font-mono text-xs break-words"},s.tool_name&&be.default.createElement("span",{style:{color:E.color}},"\u2699 ",s.tool_name," "),be.default.createElement("span",{style:{color:x?w.color:o.textMuted}},"in:")," ",Pf(h,180),h.length>180?"\u2026":""),b?be.default.createElement("span",null,s.tool_name&&!(h&&!C)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:E.color}},"\u2699 ",s.tool_name),(h||C)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:x?E.color:o.textMuted}},"out:"),b.meta&&be.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:o.textMuted}},b.meta),"\u201C",b.body.replace(/\s+/g," ").trim().slice(0,180),b.body.length>180?"\u2026":"","\u201D"):s.content?be.default.createElement("span",null,s.tool_name&&!(h&&!C)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:E.color}},"\u2699 ",s.tool_name),(h||C)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:x?E.color:o.textMuted}},"out:"),"\u201C",Pf(s.content,180),s.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):be.default.createElement("span",{className:"whitespace-pre-wrap"},s.tool_name?`\u2192 ${s.tool_name}(...)`:"\u2014")):d?be.default.createElement("span",{style:{color:o.textSecondary}},Pf(s.content),"\u2026"):T.length>0?be.default.createElement("span",{style:{display:"grid",gap:"2px"}},T.map((I,z)=>be.default.createElement("span",{key:z,className:"font-mono text-xs break-words"},I.name&&be.default.createElement("span",{style:{color:o.textMuted}},I.name," "),be.default.createElement("span",{style:{color:o.textMuted}},"in:")," ",I.args?be.default.createElement(be.default.Fragment,null,Pf(I.args,180),I.args.length>180?"\u2026":""):"\u2014"))):be.default.createElement(vS,{text:s.content||"\u2014"})),be.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:o.textMuted}},s.created_at&&be.default.createElement("span",null,new Date(s.created_at).toLocaleTimeString()),s.tool_name&&s.role!=="tool"&&be.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:u.background,color:u.color}},"\u2699 ",s.tool_name),s.duration_ms!=null&&be.default.createElement("span",null,EP(s.duration_ms)),(s.tool_calls||[]).length>0&&be.default.createElement("span",null,s.tool_calls.length," tool call",s.tool_calls.length>1?"s":""),s.content_checksum&&be.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",s.content_checksum.slice(0,8)))),be.default.createElement(dZ,{message:s,darkMode:t}),f&&be.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${c?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:o.textMuted}},be.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),c&&be.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:u.color+"55"}},be.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:o.textSecondary}},s.created_at&&be.default.createElement("span",null,new Date(s.created_at).toLocaleString()),s.tool_call_id&&be.default.createElement("span",null,"call: ",s.tool_call_id),s.duration_ms!=null&&be.default.createElement("span",null,"took ",EP(s.duration_ms)),s.content_checksum&&be.default.createElement("span",null,"\u{1F512} ",s.content_checksum)),p&&be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:x?w.color:o.textMuted}},"Arguments",x?" \xB7 from the agent":""),be.default.createElement("pre",{style:_},p)),b?be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:x?E.color:o.textMuted}},"Result",x?" \xB7 from the tool":""),Object.keys(b.rest).length>0&&be.default.createElement("pre",{style:_},JSON.stringify(b.rest,null,2)),be.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:o.textMuted}},b.field," \xB7 ",b.body.length.toLocaleString()," chars"),be.default.createElement("pre",{style:{..._,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},b.body.slice(0,8e3),b.body.length>8e3?` -\u2026`:"")):v?be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:o.textMuted}},s.role==="tool"?"Result":"Content (parsed)"),be.default.createElement("pre",{style:_},v)):s.role==="tool"&&s.content?be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:x?E.color:o.textMuted}},"Result",x?" \xB7 from the tool":""," \xB7 ",s.content.length.toLocaleString()," chars"),be.default.createElement("pre",{style:{..._,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},s.content.slice(0,8e3),s.content.length>8e3?` -\u2026`:"")):null,g&&be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:o.textMuted}},"Requested tool calls"),be.default.createElement("pre",{style:_},g)),m&&be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:o.textMuted}},"Tool definition"),be.default.createElement(hS,{tool:m,darkMode:t}))))}))}var Ie=J(R());var Pt=J(R());var Vt=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",panelBg:e?"rgba(0,0,0,0.35)":"#f9fafb",preBg:e?"rgba(255,255,255,0.06)":"#eef0f3",trackBg:e?"rgba(255,255,255,0.08)":"#f3f4f6",hoverBg:e?"rgba(255,255,255,0.04)":"#f9fafb",controlBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",controlActiveBg:e?"#2a2a2a":"#ffffff",textPrimary:e?"#ffffff":"#111827",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",textBody:e?"rgba(255,255,255,0.75)":"#4b5563",link:"#3b82f6",good:e?"#4ade80":"#16a34a",bad:"#ef4444"}),PP=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function Il({open:e,darkMode:t,size:r=14,style:n}){return Pt.default.createElement("svg",{className:`flex-shrink-0 transition-transform ${e?"rotate-180":""}`,width:r,height:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:Vt(t).textMuted,...n},"aria-hidden":"true"},Pt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function uy({darkMode:e,id:t,children:r,style:n,className:a=""}){let i=Vt(e);return Pt.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${a}`,style:{backgroundColor:i.cardBg,borderColor:i.cardBorder,...n}},r)}var jP=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:Vt(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),fZ=e=>{if(e==null)return{text:"",json:!1};if(typeof e=="object")return{text:JSON.stringify(e,null,2),json:!0};let t=String(e);if(!/^[[{]/.test(t.trim()))return{text:t,json:!1};try{return{text:JSON.stringify(JSON.parse(t),null,2),json:!0}}catch{return{text:t,json:!1}}};function Ru({lines:e,darkMode:t,onClick:r,indent:n=0,size:a="12px",style:i,max:o=200}){let[l,s]=ec(),u=Vt(t),c=(e||[]).filter(d=>d&&d.text);return c.length===0?null:Pt.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:_e.mono,fontSize:a,color:u.textSecondary,cursor:r?"pointer":"default",...i}},c.map((d,f)=>{let p=`${d.label}-${f}`,v=l(p),g=d.max||o,b=String(d.text).replace(/\s+/g," ").trim(),m=fZ(d.text),h=m.json||b.length>60||b!==String(d.text).trim();return Pt.default.createElement("div",{key:p},Pt.default.createElement("div",{onClick:h?x=>{x.stopPropagation(),s(p)}:void 0,title:h?v?"Collapse":"Expand":void 0,style:{cursor:h?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Pt.default.createElement("span",{style:{color:d.color||u.textMuted}},h?v?"\u25BE":"\u25B8":"\xA0"," ",d.label,":")," ",!v&&PP(b,g)),v&&Pt.default.createElement("pre",{onClick:x=>x.stopPropagation(),style:jP(t,{wrap:!m.json})},m.text))}))}function jf({options:e,value:t,onChange:r,darkMode:n,label:a,style:i}){let o=Vt(n);return Pt.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:i},a&&Pt.default.createElement("span",{className:"text-xs mr-1",style:{color:o.textMuted}},a),e.map(l=>Pt.default.createElement("button",{key:l.id,type:"button",onClick:s=>{s.stopPropagation(),r(l.id)},title:l.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===l.id?{background:o.controlActiveBg,color:o.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:o.textSecondary}},l.label)))}function IP({label:e,body:t,open:r,onToggle:n,darkMode:a,prose:i=!1,max:o=140}){let l=Vt(a);return Pt.default.createElement("div",null,Pt.default.createElement("div",{onClick:s=>{s.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Pt.default.createElement("span",{style:{color:l.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&Pt.default.createElement("span",{style:{color:l.textMuted}},PP(t,o))),r&&Pt.default.createElement("pre",{onClick:s=>s.stopPropagation(),style:jP(a,{wrap:i})},t))}function ec(e={}){let[t,r]=(0,Pt.useState)(e),n=(0,Pt.useCallback)(i=>{r(o=>({...o,[i]:!o[i]}))},[]);return[(0,Pt.useCallback)(i=>!!t[i],[t]),n,r]}var bS={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},LP=[{id:"time",label:"Time",hint:"Chronological \u2014 reads as a waterfall"},{id:"duration",label:"Slowest",hint:"Longest-running first"},{id:"name",label:"Name",hint:"Group repeated tool calls together"}],jt=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,wS=e=>{switch(e){case"root":return Rt.spans.root;case"prompt":return Rt.spans.prompt;case"generate":return Rt.spans.generate;case"llm":return Rt.spans.llm;case"thinking":return Rt.spans.thinking;case"tool":return Rt.spans.tool;case"response":return Rt.spans.response;default:return"-"}},pZ=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let a=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,a*100))},mZ=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,a)=>(a.duration||0)-(n.duration||0));case"name":return r.sort((n,a)=>(n.name||"").localeCompare(a.name||""));default:return r.sort((n,a)=>(n.start||0)-(a.start||0))}},vZ=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},hZ=(e,t)=>{if(!t.duration_ms)return jt(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${jt(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},gZ=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},zP=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,SS=e=>{let t=e.spans||[],r=i=>{for(let o of t){let l=(o.attributes||{})[i];if(l)return l}return null},n=r("llm.prompt");if(!n){let i=r("prompt.input.messages");if(i)try{n=[...JSON.parse(i)].reverse().find(s=>s&&s.role==="user"&&s.content)?.content}catch{}}let a=r("llm.completion")||r("llm.output.message");return{input:n,output:a}},yZ=e=>{let t=e.attributes||{},r=null,n="input",a="user";if(t["prompt.input.messages"])try{let u=[...JSON.parse(t["prompt.input.messages"])].reverse().find(c=>c&&c.role==="user"&&c.content);typeof u?.content=="string"&&(r=u.content)}catch{}if(!r&&t["llm.prompt"]&&(r=String(t["llm.prompt"])),!r&&(t["tool.input.args"]||t["tool.arguments"])){let s=t["tool.input.args"]||t["tool.arguments"];r=typeof s=="string"?s:JSON.stringify(s),n="in",a="assistant"}let i=null,o="output",l="assistant";return t["llm.output.message"]||t["llm.completion"]?i=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(i=t["tool.output.result"]||t["tool.result"],o="out",l="tool"),i!=null&&typeof i!="string"&&(i=JSON.stringify(i)),{input:r,output:i,inputLabel:n,inputTone:a,outputLabel:o,outputTone:l}},xZ=(e,t)=>{let r=yZ(e),n=SS(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},bZ=e=>{let t={...e.attributes||{}},r=f=>{let p=t[f];return delete t[f],p},n=[],a=f=>n.push({id:`${e.span_id}-m${n.length}`,...f}),i=r("prompt.input.instructions")||r("llm.instructions");i&&a({role:"system",content:String(i)});let o=r("prompt.input.messages");if(o)try{JSON.parse(o).forEach(f=>{f&&a({role:f.role||"user",content:typeof f.content=="string"?f.content:JSON.stringify(f.content),tool_call_id:f.tool_call_id,tool_calls:f.tool_calls})})}catch{t["prompt.input.messages"]=o}let l=r("llm.prompt");l&&a({role:"user",content:String(l)});let s=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(s||u){let f=r("tool.name");a({role:"tool",tool_name:f||(e.name||"").replace(/^tool\./,""),tool_arguments:s,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&a({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},AS=e=>{for(let t of e?.spans||[]){let r=(t.attributes||{})["prompt.input.tools"];if(r)try{let n=typeof r=="string"?JSON.parse(r):r;if(Array.isArray(n)&&n.length>0)return n}catch{}}return[]};function wZ({span:e,darkMode:t,tools:r=[]}){let[n,a]=ec(),i=Vt(t),{messages:o,rest:l}=bZ(e),s=null,u=l["prompt.input.tools"];if(u)try{let p=typeof u=="string"?JSON.parse(u):u;Array.isArray(p)&&p.length>0&&(s=p,delete l["prompt.input.tools"])}catch{}let c=Object.entries(l).sort((p,v)=>zP(p[0])-zP(v[0])),d=o.length===1&&o[0].role==="tool"?o[0]:null,f=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return Ie.default.createElement("div",{onClick:p=>p.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:i.panelBg,border:`1px solid ${i.cardBorder}`,fontFamily:_e.mono,fontSize:"12px",color:i.textBody,cursor:"default"}},Ie.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},Ie.default.createElement("span",null,"duration: ",jt(e.duration)),Ie.default.createElement("span",null,"status: ",e.status||"OK"),vZ(e)>0&&Ie.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),Ie.default.createElement("span",{style:{color:i.textMuted}},"span: ",e.span_id)),d&&Ie.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},Ie.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},Ie.default.createElement("span",{style:{color:br("tool",t).color}},"\u2699 ",d.tool_name),f&&Ie.default.createElement(Ie.default.Fragment,null," ",Ie.default.createElement("span",{style:{color:br("assistant",t).color}},"in:")," ",Ie.default.createElement("span",{style:{color:i.textBody}},f))),d.content&&Ie.default.createElement("div",{style:{fontSize:"12px"}},Ie.default.createElement("span",{style:{color:br("tool",t).color}},"out:")," ",Ie.default.createElement("span",{style:{color:i.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),o.length>0&&!d&&Ie.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},Ie.default.createElement(Da,{messages:o,darkMode:t,tools:s||r})),s&&Ie.default.createElement(gS,{tools:s,darkMode:t}),c.length>0&&Ie.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([p,v])=>{let g=p.match(/args|result|input|output/)?gZ(v):null,b=!g&&(p.endsWith(".instructions")||p.match(/input|output|result/))&&typeof v=="string"?v:null,m=g||b;if(!m)return Ie.default.createElement("div",{key:p,style:{wordBreak:"break-all"}},Ie.default.createElement("span",{style:{color:i.textMuted}},p,":")," ",typeof v=="string"?v:JSON.stringify(v));let h=`${e.span_id}:${p}`;return Ie.default.createElement(IP,{key:p,label:p,body:m,prose:!g,darkMode:t,open:n(h),onToggle:()=>a(h)})})))}function SZ({span:e,trace:t,darkMode:r,sort:n,longest:a,expanded:i,onToggle:o,tools:l}){let s=Vt(r),u=Object.keys(e.attributes||{}).length>0,c=i?null:xZ(e,t);return Ie.default.createElement(Ie.default.Fragment,null,Ie.default.createElement("div",{className:`py-0.5 px-1 -mx-1 rounded transition-colors ${u?`cursor-pointer ${r?"hover:bg-white/5":"hover:bg-gray-100"}`:""}`,style:{paddingLeft:n==="time"?`${(e.nested||0)*16}px`:0,background:i?s.hoverBg:void 0},onClick:u?()=>o():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},Ie.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},Ie.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:s.textMuted}},wS(e.type)),Ie.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?s.bad:s.textPrimary}},e.name),Ie.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:_e.mono,color:s.textMuted}},hZ(e,t)),u&&Ie.default.createElement(Il,{open:i,darkMode:r,size:13,style:{marginLeft:"2px"}})),Ie.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:s.trackBg}},Ie.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":bS[e.type]||"#9ca3af",left:n==="time"?`${t.duration_ms?e.start/t.duration_ms*100:0}%`:0,width:n==="time"?`${t.duration_ms?Math.max(e.duration/t.duration_ms*100,1):1}%`:`${pZ(e.duration,a)}%`}})),c&&Ie.default.createElement(Ru,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:br(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:br(c.outputTone,r).color,max:160}]})),i&&Ie.default.createElement(wZ,{span:e,darkMode:r,tools:l}))}function NS({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:a=""}){let[i,o]=ec(),l=Vt(t),s=mZ(e?.spans,r),u=n||AS(e);if(s.length===0)return Ie.default.createElement("div",{className:"text-sm py-2",style:{color:l.textMuted}},"No spans recorded for this trace.");let c=Math.max(...s.map(d=>d.duration||0),1);return Ie.default.createElement("div",{className:"space-y-2"},s.map((d,f)=>{let p=`${a}${d.span_id||f}`;return Ie.default.createElement(SZ,{key:p,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:i(p),onToggle:()=>o(p)})}))}var AZ=[{id:"spans",label:"Spans",hint:"Timing waterfall with span details"},{id:"conversation",label:"Conversation",hint:"The run as a message stream \u2014 prompt, tool calls, response"}],CS=e=>{let t=e?.spans||[],r=null;for(let u of t){let c=u.tokens||{},d=(c.input||0)+(c.output||0);d>0&&(!r||d>r.total)&&(r={input:c.input||0,output:c.output||0,thinking:c.thinking||0,cached:c.cached||0,total:d})}if(!r)return null;let n=u=>{for(let c of t){let d=(c.attributes||{})[u];if(d)return d}return null},a=Ma(n("prompt.input.instructions")||n("llm.instructions")),i=Ma(n("prompt.input.tools")||n("llm.tools")),o=Ma(n("prompt.input.mcp_tools")),l=0;for(let u of t){let c=u.attributes||{},d=c["tool.output.result"]||c["tool.result"],f=c["tool.input.args"]||c["tool.arguments"];d&&(l+=Ma(d)),f&&(l+=Ma(f))}l=Math.min(l,r.input);let s=Math.max(r.input-a-i-o-l,0);return{used:r.total,limit:Mf(e.model),cached:r.cached,thinking:r.thinking,segments:[{key:"messages",label:"Messages",tokens:s},{key:"tool_results",label:"Tool results",tokens:l},{key:"instructions",label:"Instructions",tokens:a},{key:"tool_schemas",label:"Tool schemas",tokens:i},{key:"mcp_schemas",label:"MCP tool schemas",tokens:o},{key:"output",label:"Generated output",tokens:r.output}]}},NZ=e=>{let t=0,r=[];(e?.spans||[]).forEach(i=>{(i.nested||0)!==0&&(i.type==="tool"?r.push(i):(i.type==="llm"||i.type==="generate")&&(t=Math.max(t,i.duration||0)))});let n=r.reduce((i,o)=>i+(o.duration||0),0);t=Math.max(t-n,0);let a=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:a,overhead:Math.max(a-t-n,0)}};function CZ({trace:e,darkMode:t}){let r=Vt(t),{generation:n,tools:a,toolTotal:i,total:o,overhead:l}=NZ(e);if(n===0&&i===0||n/o>=.99&&i/o<.01)return null;let s=c=>`${(c/o*100).toFixed(c/o<.01?2:1)}%`,u=(c,d)=>Ce.default.createElement("div",{style:{width:`${Math.max(c/o*100,.4)}%`,background:d,height:"100%"}});return Ce.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},Ce.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),Ce.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(i,"#10b981"),l>0&&u(l,t?"rgba(255,255,255,0.2)":"#d1d5db")),Ce.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:_e.mono,color:r.textBody}},Ce.default.createElement("span",null,Ce.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",jt(n)," (",s(n),")"),Ce.default.createElement("span",null,Ce.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",jt(i)," (",s(i),")"),l>0&&Ce.default.createElement("span",null,Ce.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",jt(l)," (",s(l),")")),a.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:_e.mono,color:r.textSecondary}},a.map((c,d)=>Ce.default.createElement("span",{key:d},c.name," ",jt(c.duration)," (",s(c.duration||0),")"))))}function _Z({trace:e,darkMode:t}){let[r,n]=(0,Ce.useState)(null),[a,i]=(0,Ce.useState)(!1),o=Vt(t);if((0,Ce.useEffect)(()=>{if(e?.id==null)return;let s=!0;return n(null),i(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>s&&n(u.interaction)).catch(()=>s&&i(!0)),()=>{s=!1}},[e?.id]),a)return Ce.default.createElement("div",{className:"text-sm py-4",style:{color:o.bad}},"Couldn't load the conversation for this trace.");if(!r)return Ce.default.createElement("div",{className:"text-sm py-4",style:{color:o.textMuted}},"Loading conversation\u2026");let l=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return l.length===0?Ce.default.createElement("div",{className:"text-sm py-4",style:{color:o.textMuted}},"This trace predates content capture \u2014 no conversation to show."):Ce.default.createElement(Da,{messages:l,darkMode:t,tools:AS(e)})}function If({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[a,i]=(0,Ce.useState)("spans"),[o,l]=(0,Ce.useState)("time"),s=Vt(t),u=(e?.spans||[]).length,c=CS(e),d=e?.tokens||{},f=(0,Ce.useCallback)(p=>i(n?p:"spans"),[n]);return e?Ce.default.createElement("div",null,Ce.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},Ce.default.createElement("div",{className:"flex items-center gap-1"},n&&Ce.default.createElement(jf,{options:AZ,value:a,onChange:f,darkMode:t}),Ce.default.createElement("span",{className:"text-xs ml-2",style:{color:s.textSecondary}},u," ",u===1?"span":"spans")),a==="spans"&&u>0&&Ce.default.createElement(jf,{options:LP,value:o,onChange:l,darkMode:t,label:"Sort"})),a==="conversation"?Ce.default.createElement("div",{className:"rounded-lg border p-4",style:{background:s.cardBg,borderColor:s.cardBorder}},Ce.default.createElement(_Z,{trace:e,darkMode:t})):Ce.default.createElement(Ce.default.Fragment,null,o==="time"?Ce.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:s.textMuted}},Ce.default.createElement("span",null,"0ms"),Ce.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),Ce.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),Ce.default.createElement("span",null,jt(e.duration_ms))):Ce.default.createElement("div",{className:"text-xs mb-2",style:{color:s.textMuted}},"Bar length compares duration on a log scale"),Ce.default.createElement(NS,{trace:e,darkMode:t,sort:o,keyPrefix:`${e.id||e.trace_id}:`})),c&&Ce.default.createElement("div",{className:"mt-3"},Ce.default.createElement(xo,{...c,label:"Context pressure",estimated:!0,darkMode:t})),Ce.default.createElement(CZ,{trace:e,darkMode:t}),!r&&Ce.default.createElement("div",{className:"mt-4 pt-4 border-t flex items-center flex-wrap gap-x-6 gap-y-1 text-sm",style:{borderColor:s.cardBorder,color:s.textSecondary}},Ce.default.createElement("span",null,"Tokens:"),d.thinking>0&&Ce.default.createElement("span",{className:"text-amber-500",style:{fontFamily:_e.mono}},"T:",d.thinking.toLocaleString()),Ce.default.createElement("span",{className:"text-blue-500",style:{fontFamily:_e.mono}},"in:",(d.input||0).toLocaleString()),Ce.default.createElement("span",{className:"text-green-500",style:{fontFamily:_e.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&Ce.default.createElement("span",{style:{fontFamily:_e.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&Ce.default.createElement("div",{className:"mt-4 p-3 rounded-lg border",style:{background:t?"rgba(239,68,68,0.1)":"#fef2f2",borderColor:t?"rgba(239,68,68,0.3)":"#fecaca"}},Ce.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var EZ=e=>{if(!e)return"0";let t=(e.input||0)+(e.output||0)+(e.thinking||0);return t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`},OZ=e=>e==null?null:`$${e.toFixed(4)}`;function cy({trace:e,darkMode:t,expanded:r,onToggle:n}){let a=Vt(t),i=SS(e),o=CS(e),l=e.status!=="ERROR";return Ft.default.createElement(uy,{darkMode:t,id:`trace-row-${e.id}`},Ft.default.createElement("div",{className:`p-4 flex items-center justify-between flex-wrap gap-y-2 cursor-pointer transition-colors ${t?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:n,style:r?{background:a.hoverBg}:void 0},Ft.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},Ft.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:_e.mono,background:a.controlBg,color:a.textSecondary}},"TRACE"),Ft.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:_e.mono,color:a.textMuted}},e.short_id),Ft.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:a.textPrimary}},e.display_name)),Ft.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:a.textSecondary}},e.model&&Ft.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:_e.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"},title:"Model that generated this trace"},e.model),o&&Ft.default.createElement(xo,{compact:!0,...o,label:"Context",darkMode:t}),Ft.default.createElement("span",null,Ft.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),jt(e.duration_ms)),Ft.default.createElement("span",null,EZ(e.tokens)," tokens"),e.estimated_cost!=null&&Ft.default.createElement("span",null,Ft.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),OZ(e.estimated_cost)),Ft.default.createElement("span",{style:{color:l?a.good:a.bad}},Ft.default.createElement("i",{className:`fa-solid ${l?"fa-check":"fa-xmark"} mr-1`}),l?"OK":"ERROR"),Ft.default.createElement(Il,{open:r,darkMode:t}))),!r&&Ft.default.createElement(Ru,{darkMode:t,onClick:n,style:{padding:"0 16px 12px"},lines:[{label:"input",text:i.input,color:br("user",t).color},{label:"output",text:i.output,color:br("assistant",t).color}]}),r&&Ft.default.createElement("div",{className:"border-t p-4",style:{borderColor:a.cardBorder,background:a.innerBg}},Ft.default.createElement(If,{trace:e,darkMode:t})))}function Je(e=""){return`${(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/$/,"")}${e}`||"/"}var BP=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],kZ=3e4,TZ=e=>{let t={};return e.forEach((r,n)=>{t[r]=BP[n%BP.length]}),t},MZ=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let a=n.name||n.type||"unknown";t[a]||(t[a]={name:a,type:n.type,count:0,total:0,max:0,errors:0});let i=t[a];i.count+=1,i.total+=n.duration||0,i.max=Math.max(i.max,n.duration||0),n.error&&(i.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)},DZ=(e,t,r,n=60)=>{let a=Date.now(),i=[],o=n*1e3,l=Math.max(1,Math.round(r*60/n));for(let s=l-1;s>=0;s--){let u=a-(s+1)*o,c=a-s*o,d=e.filter(p=>p.timestamp_ms>=u&&p.timestamp_ms{f[p]=d.filter(v=>v.agent===p).length}),i.push({time:r>1440?new Date(c).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(c).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:c,requests:d.length,errors:d.filter(p=>p.status==="ERROR").length,avgLatency:d.length>0?Math.round(d.reduce((p,v)=>p+(v.duration_ms||0),0)/d.length):0,traces:d,...f})}return i};function zl({agentClass:e=null,embedded:t=!1}){let{darkMode:r}=it(),[n,a]=(0,D.useState)([]),[i,o]=(0,D.useState)([]),[l,s]=(0,D.useState)({}),[u,c]=(0,D.useState)(!0),[d,f]=(0,D.useState)(null),[p,v]=(0,D.useState)(null),g=(0,D.useRef)(new URLSearchParams(window.location.search).get("trace")),[b,m]=(0,D.useState)(null),[h,x]=(0,D.useState)({status:"all",agent:"all",action:"all"}),[w,E]=(0,D.useState)("time"),[C,T]=(0,D.useState)(null),[_,I]=(0,D.useState)("timeline"),[z,B]=(0,D.useState)("popular"),{timeWindow:$}=ka(),X=(0,D.useCallback)(async()=>{try{let S=e?`&agent=${encodeURIComponent(e)}`:"",P=await fetch(`/api/traces?minutes=${$.minutes}${S}`);if(!P.ok)throw new Error(`Request failed (${P.status})`);let K=await P.json();a(K.traces||[]),o(e?[e]:K.agents||[]),s(K.agent_ids||{}),f(null)}catch(S){f(S.message)}finally{c(!1)}},[$.minutes,e]);(0,D.useEffect)(()=>{X();let S=setInterval(X,kZ);return()=>clearInterval(S)},[X]);let H=(0,D.useMemo)(()=>TZ(i),[i]);(0,D.useEffect)(()=>{T(null)},[$.id]);let q=(0,D.useMemo)(()=>DZ(n,i,$.minutes,$.bucketSeconds),[n,i,$]),y=Math.max(0,Math.ceil(q.length/6)-1),N=(0,D.useMemo)(()=>{let S=n;if(C!==null){let P=q[C];P&&(S=P.traces||[])}if(h.status!=="all"&&(S=S.filter(P=>h.status==="success"?P.status!=="ERROR":P.status==="ERROR")),h.agent!=="all"&&(S=S.filter(P=>P.agent===h.agent)),h.action!=="all")if(h.action.includes("#")){let[P,K]=h.action.split("#");S=S.filter(j=>j.agent===P&&j.action===K)}else S=S.filter(P=>P.action===h.action);return w==="latency"&&(S=[...S].sort((P,K)=>(K.duration_ms||0)-(P.duration_ms||0))),b&&!S.some(P=>P.id===b.id)&&(S=[b,...S]),S},[n,C,q,h,w,b]);(0,D.useEffect)(()=>{let S=g.current;if(!S)return;let P=j=>{g.current=null,v(j.id),setTimeout(()=>{document.getElementById(`trace-row-${j.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},K=n.find(j=>j.id===S||j.trace_id===S||j.short_id&&String(S).startsWith(j.short_id));if(K){P(K);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(S)}`).then(j=>j.ok?j.json():Promise.reject(new Error("not found"))).then(({trace:j})=>{m(j),P(j)}).catch(()=>{g.current=null})},[n]);let O=(0,D.useMemo)(()=>{let S=C!==null?q[C]?.traces||[]:n,P={};S.forEach(j=>{j.agent&&(P[j.agent]||(P[j.agent]={agent:j.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),P[j.agent].count++,P[j.agent].totalDuration+=j.duration_ms||0,P[j.agent].cost+=j.estimated_cost||0,j.status==="ERROR"&&P[j.agent].errors++,j.tokens&&(P[j.agent].tokens.thinking+=j.tokens.thinking||0,P[j.agent].tokens.input+=j.tokens.input||0,P[j.agent].tokens.output+=j.tokens.output||0),j.action&&(P[j.agent].actions[j.action]=(P[j.agent].actions[j.action]||0)+1))});let K={popular:j=>j.count,longest:j=>j.totalDuration/(j.count||1),cost:j=>j.cost,tokens:j=>(j.tokens.input||0)+(j.tokens.output||0)+(j.tokens.thinking||0),errors:j=>j.errors}[z]||(j=>j.count);return Object.values(P).sort((j,he)=>K(he)-K(j)||he.count-j.count)},[n,q,C,z]),M=(0,D.useMemo)(()=>{let S=C!==null?q[C]?.traces||[]:n,P={};return S.forEach(K=>{if(!K.agent)return;let j=`${K.agent}#${K.action||"unknown"}`;P[j]||(P[j]={key:j,agent:K.agent,action:K.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),P[j].count++,P[j].totalDuration+=K.duration_ms||0,P[j].minDuration=Math.min(P[j].minDuration,K.duration_ms||0),P[j].maxDuration=Math.max(P[j].maxDuration,K.duration_ms||0),K.status==="ERROR"&&P[j].errors++,K.tokens&&(P[j].tokens.thinking+=K.tokens.thinking||0,P[j].tokens.input+=K.tokens.input||0,P[j].tokens.output+=K.tokens.output||0)}),Object.values(P).forEach(K=>{K.minDuration===1/0&&(K.minDuration=0)}),Object.values(P).sort((K,j)=>j.count-K.count)},[n,q,C]),A=(0,D.useMemo)(()=>{let S=C!==null?q[C]?.traces||[]:n,P={};return S.forEach(K=>{(K.spans||[]).forEach(j=>{if(j.type!=="tool")return;let he=j.attributes?.["tool.name"]||j.name?.replace(/^tool\./,"")||"unknown";P[he]||(P[he]={name:he,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),P[he].count++,P[he].totalDuration+=j.duration||0,P[he].maxDuration=Math.max(P[he].maxDuration,j.duration||0),j.error&&P[he].errors++,K.agent&&P[he].agents.add(`${K.agent}#${K.action||"unknown"}`)})}),Object.values(P).map(K=>({...K,agents:[...K.agents],avgDuration:K.count?K.totalDuration/K.count:0})).sort((K,j)=>j.totalDuration-K.totalDuration)},[n,q,C]),k=(0,D.useMemo)(()=>h.agent==="all"?M.map(S=>S.key):M.filter(S=>S.agent===h.agent).map(S=>S.key),[h.agent,M]),V=(0,D.useMemo)(()=>MZ(N),[N]),G=S=>{if(S&&S.activeTooltipIndex!==void 0){let P=S.activeTooltipIndex;T(C===P?null:P),v(null)}},Q=S=>(S?.input||0)+(S?.output||0)+(S?.thinking||0),se=S=>{let P=S.count?S.errors/S.count:0;return[{label:`Calls ${$.label||""}`.trim(),value:S.count.toLocaleString()},{label:"Errors",value:`${(P*100).toFixed(1)}%`,tone:S.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(S.totalDuration/(S.count||1))}ms`},{label:"Tokens",value:Q(S.tokens).toLocaleString()},{label:"Cost",value:ue(S.cost),title:"Estimated from token counts at this model's published rates",tone:S.cost?void 0:"muted"},{label:"Actions",value:(S.agents?.length||0).toLocaleString()}]},ue=S=>S?S<.01?"<$0.01":`$${S.toFixed(2)}`:"\u2014",pe=D.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},D.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),D.default.createElement("select",{value:z,onChange:S=>B(S.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:`1px solid ${r?"rgba(255,255,255,0.15)":"#e5e7eb"}`,background:r?"rgba(255,255,255,0.05)":"#ffffff",color:r?"#f9fafb":"#111827"}},D.default.createElement("option",{value:"popular"},"Most calls"),D.default.createElement("option",{value:"longest"},"Longest average"),D.default.createElement("option",{value:"cost"},"Highest cost"),D.default.createElement("option",{value:"tokens"},"Most tokens"),D.default.createElement("option",{value:"errors"},"Most errors"))),Oe=S=>x(P=>({...P,agent:P.agent===S?"all":S})),ie=S=>{let P=l[S];if(!P)return Oe(S);let K=Je(`/agents/${P}`);window.history.pushState(window.history.state,"",K),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:K}}))},Ne=S=>{let P=V[0]?.total||1,K=S?"rgba(0,0,0,0.3)":"white",j=S?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",he=S?"white":"#111827",ge=S?"rgba(255,255,255,0.5)":"#6b7280",xe={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return D.default.createElement("div",{style:{padding:S?"0 24px 24px 24px":0}},D.default.createElement("div",{style:{background:K,border:j,borderRadius:"12px",padding:"16px"}},D.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:he,marginBottom:"4px"}},"Slowest operations"),D.default.createElement("div",{style:{fontSize:"12px",color:ge,marginBottom:"14px"}},"Span durations aggregated across ",N.length," trace",N.length===1?"":"s"," \u2014 ranked by total time"),V.length===0?D.default.createElement("div",{style:{fontSize:"13px",color:ge,padding:"12px 0"}},"No spans in the current selection"):D.default.createElement("div",{style:{display:"grid",gap:"10px"}},V.map(Me=>D.default.createElement("div",{key:Me.name,style:{display:"flex",alignItems:"center",gap:"12px"}},D.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},D.default.createElement("span",{style:{color:ge}},wS(Me.type)),D.default.createElement("span",{style:{fontSize:"13px",color:Me.errors>0?"#ef4444":he,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},Me.name)),D.default.createElement("div",{style:{flex:1,height:"18px",background:S?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},D.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(Me.total/P*100,.5)}%`,background:xe[Me.type]||"#6366f1"}})),D.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:ge,fontFamily:_e.mono,textAlign:"right"}},Me.count,"\xD7 \xB7 avg ",jt(Me.avg)," \xB7 max ",jt(Me.max)," \xB7 \u03A3 ",jt(Me.total)))))))};if(u)return D.default.createElement("div",{className:"flex items-center justify-center h-64"},D.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let F={requests:q.reduce((S,P)=>S+P.requests,0),errors:q.reduce((S,P)=>S+P.errors,0),avgLatency:(()=>{let S=q.filter(P=>P.requests>0);return S.length===0?0:Math.round(S.reduce((P,K)=>P+K.avgLatency,0)/S.length)})(),throughput:(q.reduce((S,P)=>S+P.requests,0)/$.minutes).toFixed(1)},Y=n.length===0;return r?D.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},D.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},D.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},D.default.createElement("div",null,!t&&D.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),D.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},C!==null?`Viewing ${q[C]?.time} \u2022 ${N.length} requests`:`Last ${$.label} \u2022 Click timeline to drill down`)),D.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},D.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(S=>D.default.createElement("button",{key:S,onClick:()=>I(S),style:{padding:"6px 12px",background:_===S?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},S))),!e&&D.default.createElement("select",{value:h.agent,onChange:S=>x({...h,agent:S.target.value,action:"all"}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"180px",textOverflow:"ellipsis"}},D.default.createElement("option",{value:"all"},"All Agents"),i.map(S=>D.default.createElement("option",{key:S,value:S},S))),D.default.createElement("select",{value:h.action,onChange:S=>x({...h,action:S.target.value}),style:{padding:"8px 12px",background:h.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:h.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},D.default.createElement("option",{value:"all"},"All Actions"),k.map(S=>D.default.createElement("option",{key:S,value:S},S))),D.default.createElement("select",{value:h.status,onChange:S=>x({...h,status:S.target.value}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},D.default.createElement("option",{value:"all"},"All Status"),D.default.createElement("option",{value:"success"},"Success"),D.default.createElement("option",{value:"error"},"Error")),D.default.createElement("select",{value:w,onChange:S=>E(S.target.value),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},D.default.createElement("option",{value:"time"},"Newest first"),D.default.createElement("option",{value:"latency"},"Slowest first")),C!==null&&D.default.createElement("button",{onClick:()=>T(null),style:{padding:"8px 16px",background:"rgba(255,255,255,0.2)",color:"white",borderRadius:"8px",border:"none",fontSize:"14px",fontWeight:"500",cursor:"pointer"}},"Clear Selection")))),d&&D.default.createElement("div",{style:{margin:"0 24px 16px 24px",padding:"12px 16px",background:"rgba(239, 68, 68, 0.1)",borderRadius:"8px",color:"#ef4444",fontSize:"13px"}},"Failed to load traces: ",d),D.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},D.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},D.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},D.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),D.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(H).map(([S,P])=>D.default.createElement("div",{key:S,style:{display:"flex",alignItems:"center",gap:"6px"}},D.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:P}}),D.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},S.replace("Agent","")))))),D.default.createElement("div",{style:{height:"150px"}},D.default.createElement(ru,{width:"100%",height:"100%"},D.default.createElement(Xu,{data:q,onClick:G,style:{cursor:"pointer"}},D.default.createElement("defs",null,Object.entries(H).map(([S,P])=>D.default.createElement("linearGradient",{key:S,id:`gradient-${S}`,x1:"0",y1:"0",x2:"0",y2:"1"},D.default.createElement("stop",{offset:"5%",stopColor:P,stopOpacity:.8}),D.default.createElement("stop",{offset:"95%",stopColor:P,stopOpacity:.1})))),D.default.createElement(Nl,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),D.default.createElement(El,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:y}),D.default.createElement(Ol,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),D.default.createElement(Lu,{contentStyle:{background:"rgba(0,0,0,0.9)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",padding:"12px"},labelStyle:{color:"white",fontWeight:"600",marginBottom:"8px"},itemStyle:{color:"rgba(255,255,255,0.8)",fontSize:"12px"},formatter:(S,P)=>[S,P.replace("Agent","")]}),Object.keys(H).map(S=>D.default.createElement(_l,{key:S,type:"monotone",dataKey:S,stackId:"1",stroke:H[S],fill:`url(#gradient-${S})`}))))),D.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},F.requests),D.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},F.errors),D.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},F.avgLatency,"ms"),D.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},F.throughput,"/min"),D.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),_==="agents"&&D.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},pe,D.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},O.map(S=>D.default.createElement(Ms,{key:S.agent,name:S.agent,accentColor:H[S.agent],subtitle:S.agents?.length?S.agents.join(", "):void 0,badge:D.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:H[S.agent]+"30",color:H[S.agent],borderRadius:"4px",whiteSpace:"nowrap"}},S.count," calls"),onClick:()=>ie(S.agent),stats:se(S),footer:D.default.createElement(D.default.Fragment,null,D.default.createElement("span",null,l[S.agent]?"Open agent \u2192":"Not linked to an agent record"),D.default.createElement("button",{onClick:P=>{P.stopPropagation(),Oe(S.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:h.agent===S.agent?"#ef4444":"inherit",font:"inherit"}},h.agent===S.agent?"Clear filter":"Filter traces"))})))),_==="actions"&&D.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},D.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},M.map(S=>{let P=h.action===S.key;return D.default.createElement("div",{key:S.key,onClick:()=>{x({...h,action:P?"all":S.key}),I("timeline")},style:{background:P?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:P?"1px solid #ef4444":`1px solid ${H[S.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},D.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},D.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},D.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:H[S.agent]}}),D.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},S.agent),D.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",S.action)),D.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:H[S.agent]+"30",color:H[S.agent],borderRadius:"4px"}},S.count," calls")),D.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),D.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(S.totalDuration/S.count),"ms")),D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),D.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(S.minDuration),"ms / ",Math.round(S.maxDuration),"ms")),D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),D.default.createElement("div",{style:{fontSize:"13px",color:S.errors>0?"#ef4444":"#10b981"}},S.errors," (",(S.errors/S.count*100).toFixed(0),"%)")),D.default.createElement("div",null,D.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),D.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Q(S.tokens).toLocaleString()))))}))),_==="spans"&&Ne(!0),_==="timeline"&&!Y&&D.default.createElement("div",{className:"space-y-4"},N.length===0?D.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):N.map(S=>D.default.createElement(cy,{key:S.id,trace:S,darkMode:!0,expanded:p===S.id,onToggle:()=>v(p===S.id?null:S.id)}))),Y&&_==="timeline"&&D.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},D.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),D.default.createElement("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:"14px",marginTop:"8px"}},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here"))):D.default.createElement("div",{className:"space-y-6"},D.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},D.default.createElement("div",null,D.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),D.default.createElement("p",{className:"text-sm text-gray-500"},C!==null?`Viewing ${q[C]?.time} \u2022 ${N.length} requests`:`Last ${$.label} \u2022 Click timeline to drill down`)),D.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},D.default.createElement(Ta,null),D.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(S=>D.default.createElement("button",{key:S,onClick:()=>I(S),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${_===S?"bg-white shadow text-gray-900":"text-gray-600"}`},S))),D.default.createElement("select",{value:h.agent,onChange:S=>x({...h,agent:S.target.value,action:"all"}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",style:{maxWidth:"180px",textOverflow:"ellipsis"}},D.default.createElement("option",{value:"all"},"All Agents"),i.map(S=>D.default.createElement("option",{key:S,value:S},S))),D.default.createElement("select",{value:h.action,onChange:S=>x({...h,action:S.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${h.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},D.default.createElement("option",{value:"all"},"All Actions"),k.map(S=>D.default.createElement("option",{key:S,value:S},S))),D.default.createElement("select",{value:h.status,onChange:S=>x({...h,status:S.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},D.default.createElement("option",{value:"all"},"All Status"),D.default.createElement("option",{value:"success"},"Success"),D.default.createElement("option",{value:"error"},"Error")),D.default.createElement("select",{value:w,onChange:S=>E(S.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},D.default.createElement("option",{value:"time"},"Newest first"),D.default.createElement("option",{value:"latency"},"Slowest first")),C!==null&&D.default.createElement("button",{onClick:()=>T(null),className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition-colors text-sm font-medium"},"Clear Selection"))),d&&D.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",d),D.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},D.default.createElement("div",{className:"flex justify-between items-center mb-3"},D.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),D.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(H).map(([S,P])=>D.default.createElement("div",{key:S,className:"flex items-center gap-1.5"},D.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:P}}),D.default.createElement("span",{className:"text-xs text-gray-500"},S.replace("Agent","")))))),D.default.createElement("div",{className:"h-36"},D.default.createElement(ru,{width:"100%",height:"100%"},D.default.createElement(Xu,{data:q,onClick:G,style:{cursor:"pointer"}},D.default.createElement("defs",null,Object.entries(H).map(([S,P])=>D.default.createElement("linearGradient",{key:S,id:`gradient-light-${S}`,x1:"0",y1:"0",x2:"0",y2:"1"},D.default.createElement("stop",{offset:"5%",stopColor:P,stopOpacity:.6}),D.default.createElement("stop",{offset:"95%",stopColor:P,stopOpacity:.05})))),D.default.createElement(Nl,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),D.default.createElement(El,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:y}),D.default.createElement(Ol,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),D.default.createElement(Lu,{contentStyle:{background:"white",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},labelStyle:{color:"#111827",fontWeight:"600",marginBottom:"8px"},formatter:(S,P)=>[S,P.replace("Agent","")]}),Object.keys(H).map(S=>D.default.createElement(_l,{key:S,type:"monotone",dataKey:S,stackId:"1",stroke:H[S],fill:`url(#gradient-light-${S})`}))))),D.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},D.default.createElement("div",null,D.default.createElement("div",{className:"text-lg font-bold text-gray-900"},F.requests),D.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),D.default.createElement("div",null,D.default.createElement("div",{className:"text-lg font-bold text-red-500"},F.errors),D.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),D.default.createElement("div",null,D.default.createElement("div",{className:"text-lg font-bold text-green-600"},F.avgLatency,"ms"),D.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),D.default.createElement("div",null,D.default.createElement("div",{className:"text-lg font-bold text-amber-500"},F.throughput,"/min"),D.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),_==="agents"&&D.default.createElement("div",null,pe,D.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},O.map(S=>D.default.createElement(Ms,{key:S.agent,name:S.agent,accentColor:H[S.agent],subtitle:S.agents?.length?S.agents.join(", "):void 0,badge:D.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:H[S.agent]+"20",color:H[S.agent]}},S.count," calls"),onClick:()=>ie(S.agent),stats:se(S),footer:D.default.createElement(D.default.Fragment,null,D.default.createElement("span",null,l[S.agent]?"Open agent \u2192":"Not linked to an agent record"),D.default.createElement("button",{onClick:P=>{P.stopPropagation(),Oe(S.agent)},className:h.agent===S.agent?"text-red-600":"hover:text-gray-700"},h.agent===S.agent?"Clear filter":"Filter traces"))})))),_==="actions"&&D.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},M.map(S=>{let P=h.action===S.key;return D.default.createElement("div",{key:S.key,onClick:()=>{x({...h,action:P?"all":S.key}),I("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${P?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:H[S.agent],borderLeftWidth:P?"2px":"4px"}},D.default.createElement("div",{className:"flex items-center justify-between mb-3"},D.default.createElement("div",{className:"flex items-center gap-2"},D.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:H[S.agent]}}),D.default.createElement("span",{className:"font-semibold text-gray-900"},S.agent),D.default.createElement("span",{className:"text-gray-500"},"#",S.action)),D.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:H[S.agent]+"20",color:H[S.agent]}},S.count," calls")),D.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},D.default.createElement("div",null,D.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),D.default.createElement("div",{className:"font-medium"},Math.round(S.totalDuration/S.count),"ms")),D.default.createElement("div",null,D.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),D.default.createElement("div",{className:"text-gray-600"},Math.round(S.minDuration),"ms / ",Math.round(S.maxDuration),"ms")),D.default.createElement("div",null,D.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),D.default.createElement("div",{className:S.errors>0?"text-red-600":"text-green-600"},S.errors," (",(S.errors/S.count*100).toFixed(0),"%)")),D.default.createElement("div",null,D.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),D.default.createElement("div",{className:"text-gray-600"},Q(S.tokens).toLocaleString()))))})),_==="tools"&&(A.length===0?D.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):D.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},D.default.createElement("div",{className:"flex items-center gap-4 px-4 py-2 text-xs font-medium text-gray-500 border-b border-gray-100"},D.default.createElement("div",{className:"flex-1"},"Tool"),D.default.createElement("div",{className:"w-20 text-right"},"Calls"),D.default.createElement("div",{className:"w-24 text-right"},"Total time"),D.default.createElement("div",{className:"w-20 text-right"},"Avg"),D.default.createElement("div",{className:"w-20 text-right"},"Slowest")),A.map(S=>{let P=A[0].totalDuration?S.totalDuration/A[0].totalDuration*100:0;return D.default.createElement("div",{key:S.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},D.default.createElement("div",{className:"flex items-center gap-4 text-sm"},D.default.createElement("div",{className:"flex-1 min-w-0"},D.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:S.name},S.name),S.agents.length>0&&D.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:S.agents.join(", ")},S.agents.join(", "))),D.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:_e.mono}},S.count.toLocaleString(),S.errors>0&&D.default.createElement("span",{className:"text-red-600 ml-1",title:`${S.errors} failed`},"(",S.errors,")")),D.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:_e.mono}},jt(S.totalDuration)),D.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:_e.mono}},jt(S.avgDuration)),D.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:_e.mono}},jt(S.maxDuration))),D.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},D.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max(P,1)}%`}})))}))),_==="spans"&&Ne(!1),_==="timeline"&&!Y&&D.default.createElement("div",{className:"space-y-4"},N.length===0?D.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):N.map(S=>D.default.createElement(cy,{key:S.id,trace:S,darkMode:!1,expanded:p===S.id,onToggle:()=>v(p===S.id?null:S.id)}))),Y&&_==="timeline"&&D.default.createElement("div",{className:"text-center py-12"},D.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),D.default.createElement("p",{className:"text-gray-500 text-sm mt-2"},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here")))}var re=J(R());var dy=J(R());function _S({trace:e,darkMode:t,height:r=8}){let n=Vt(t);if(!e)return dy.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let a=e.spans||[],i=e.duration_ms||1,o=[...a].sort((l,s)=>(l.nested||0)-(s.nested||0));return dy.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},o.map((l,s)=>dy.default.createElement("div",{key:l.span_id||s,title:`${l.name} \xB7 ${jt(l.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(l.start/i*100,99)}%`,width:`${Math.max(l.duration/i*100,.8)}%`,background:l.error?"#ef4444":bS[l.type]||"#9ca3af"}})))}var PZ=e=>{let t=null;if((e?.generations||[]).forEach(i=>{let o=i.tokens||{},l=(o.input||0)+(o.output||0);l>0&&(!t||l>t.total)&&(t={input:o.input||0,output:o.output||0,cached:o.cached||0,thinking:o.thinking||0,model:i.model,total:l})}),!t)return null;let r=Ma(e?.instructions),n=0;(e?.messages||[]).forEach(i=>{i.role==="tool"&&(n+=Ma(i.content)+Ma(i.tool_arguments))}),n=Math.min(n,t.input);let a=Math.max(t.input-r-n,0);return{used:t.total,limit:Mf(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:a},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},UP=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],jZ=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],IZ=[{id:"conversation",label:"Conversation",hint:"Messages, tool calls and responses in order"},{id:"spans",label:"Spans",hint:"Each generation as a trace \u2014 waterfall, span details, timings"}],zZ=3e4,wi=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),LZ=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`};function BZ({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:a}){let i=Vt(t),[o,l]=(0,re.useState)(null),[s,u]=(0,re.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,re.useEffect)(()=>{if(!c)return;let v=!0;return fetch(`/api/traces/${encodeURIComponent(c)}`).then(g=>g.ok?g.json():Promise.reject(new Error("not found"))).then(({trace:g})=>v&&l(g)).catch(()=>v&&u(!0)),()=>{v=!1}},[c]);let f=!!o,p=(o?.spans||[]).length;return re.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${f?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:i.hoverBg}:void 0},re.default.createElement("div",{className:f?"cursor-pointer":void 0,onClick:f?a:void 0,title:f?`${p} spans \u2014 click for the trace`:void 0},re.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:i.textSecondary}},re.default.createElement("span",{title:e.cache_hit?`${wi(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?i.good:i.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&re.default.createElement("span",{className:"text-amber-500",title:`${wi(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",wi(e.tokens.thinking)),re.default.createElement("span",null,e.model||"unknown-model"),e.provider&&re.default.createElement("span",null,e.provider),re.default.createElement("span",{className:"text-blue-500"},"in:",wi(e.tokens.input)),re.default.createElement("span",{className:"text-green-500"},"out:",wi(e.tokens.output)),e.finish_reason&&re.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&re.default.createElement("span",null,jt(d)),c&&re.default.createElement("a",{href:Je(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:i.link},className:"hover:underline",onClick:v=>v.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),s&&re.default.createElement("span",{style:{color:i.textMuted}},"trace unavailable")),re.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!s?re.default.createElement(_S,{trace:o,darkMode:t}):d>0?re.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:i.trackBg}},re.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,f&&re.default.createElement(re.default.Fragment,null,re.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:i.textMuted}},p," ",p===1?"span":"spans"),re.default.createElement(Il,{open:n,darkMode:t,size:12})))),n&&o&&re.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:i.cardBg,borderColor:i.cardBorder}},re.default.createElement(If,{trace:o,darkMode:t,compact:!0})))}function Si({agentId:e=null,embedded:t=!1}){let{darkMode:r}=it(),[n,a]=(0,re.useState)([]),[i,o]=(0,re.useState)(!0),[l,s]=(0,re.useState)(null),[u,c]=(0,re.useState)(null),[d,f]=(0,re.useState)({}),{timeWindow:p}=ka(),v=(0,re.useCallback)(async()=>{try{let X=await fetch(`/api/interactions?minutes=${p.minutes}${e?`&agent_id=${e}`:""}`);if(!X.ok)throw new Error(`Request failed (${X.status})`);let H=await X.json();a(H.interactions||[]),s(null)}catch(X){s(X.message)}finally{o(!1)}},[p.minutes,e]);(0,re.useEffect)(()=>{v();let X=setInterval(v,zZ);return()=>clearInterval(X)},[v]);let[g,b]=(0,re.useState)("recent"),m=(0,re.useMemo)(()=>{let X=[...new Set(n.map(H=>H.display_name).filter(Boolean))].sort();return Object.fromEntries(X.map((H,q)=>[H,UP[q%UP.length]]))},[n]),h=(0,re.useMemo)(()=>{let X=n.reduce((q,y)=>q+(y.tokens?.total||0),0),H=new Set(n.map(q=>q.display_name).filter(Boolean));return{interactions:n.length,tokens:X,agents:H.size,avgTokens:n.length?Math.round(X/n.length):0}},[n]),x=(0,re.useMemo)(()=>{if(n.length===0)return[];let X=Date.now(),H=p.bucketSeconds*1e3,q=Math.max(1,Math.round(p.minutes*60/p.bucketSeconds)),y=Object.keys(m);return Array.from({length:q},(N,O)=>{let M=X-(q-1-O)*H,A=M-H,k=n.filter(V=>{let G=new Date(V.last_activity_at).getTime();return G>=A&&G1440?new Date(M).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(M).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(y.map(V=>[V,k.filter(G=>G.display_name===V).length]))}})},[n,m,p]),w=Math.max(0,Math.ceil(x.length/6)-1),E=(0,re.useCallback)(X=>{let H=[...X];switch(g){case"tokens":return H.sort((q,y)=>(y.tokens?.total||0)-(q.tokens?.total||0));case"messages":return H.sort((q,y)=>(y.message_count||0)-(q.message_count||0));default:return H.sort((q,y)=>String(y.last_activity_at).localeCompare(String(q.last_activity_at)))}},[g]),C=(0,re.useMemo)(()=>{let X=new Map;n.forEach(q=>{let y=q.agent_name||q.agent?.name||"Unattributed",N=q.action_name,O=`${y}#${N||""}`;X.has(O)||X.set(O,{key:O,title:N?`${y} ${N.charAt(0).toUpperCase()}${N.slice(1)} Agent Interactions`:`${y} Interactions`,sessions:[],tokens:0,lastActivity:q.last_activity_at});let M=X.get(O);M.sessions.push(q),M.tokens+=q.tokens?.total||0,q.last_activity_at>M.lastActivity&&(M.lastActivity=q.last_activity_at)});let H=[...X.values()].map(q=>({...q,sessions:E(q.sessions)}));return g==="tokens"?H.sort((q,y)=>y.tokens-q.tokens):g==="messages"?H.sort((q,y)=>y.sessions.length-q.sessions.length):H.sort((q,y)=>String(y.lastActivity).localeCompare(String(q.lastActivity)))},[n,g,E]),T=async X=>{if(u===X){c(null);return}if(c(X),!d[X])try{let H=await fetch(`/api/interactions/${X}`);if(H.ok){let q=await H.json();f(y=>({...y,[X]:q.interaction}))}}catch{}},[_,I]=(0,re.useState)({}),[z,B]=ec(),$=Vt(r);return i?re.default.createElement("div",{className:"flex items-center justify-center h-64"},re.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):re.default.createElement("div",{className:"space-y-6"},re.default.createElement("div",{className:"flex items-start justify-between"},!t&&re.default.createElement("div",null,re.default.createElement("h1",{className:"text-2xl font-bold",style:{color:$.textPrimary}},"Interactions"),re.default.createElement("p",{className:"text-sm mt-1",style:{color:$.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),re.default.createElement("div",{className:"flex items-center gap-3"},re.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},re.default.createElement("span",{className:"text-xs px-1",style:{color:$.textMuted}},"Sort"),jZ.map(X=>re.default.createElement("button",{key:X.id,onClick:()=>b(X.id),className:"px-2 py-1 text-xs rounded transition-colors",style:g===X.id?{background:r?"#2a2a2a":"#ffffff",color:$.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:$.textSecondary}},X.label))),re.default.createElement(Ta,null))),l&&re.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load interactions: ",l),n.length>0&&re.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:$.cardBg,borderColor:$.cardBorder}},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h3",{className:"text-sm font-semibold",style:{color:$.textPrimary}},"Interactions over time"),re.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries(m).map(([X,H])=>re.default.createElement("span",{key:X,className:"flex items-center gap-1.5 text-xs",style:{color:$.textSecondary}},re.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:H}}),X)))),re.default.createElement("div",{className:"h-32"},re.default.createElement(ru,{width:"100%",height:"100%"},re.default.createElement(Xu,{data:x},re.default.createElement("defs",null,Object.entries(m).map(([X,H])=>re.default.createElement("linearGradient",{key:X,id:`ix-gradient-${X.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},re.default.createElement("stop",{offset:"5%",stopColor:H,stopOpacity:.6}),re.default.createElement("stop",{offset:"95%",stopColor:H,stopOpacity:.05})))),re.default.createElement(Nl,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),re.default.createElement(El,{dataKey:"time",stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,interval:w}),re.default.createElement(Ol,{stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),re.default.createElement(Lu,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${$.cardBorder}`,borderRadius:"8px"},labelStyle:{color:$.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries(m).map(([X,H])=>re.default.createElement(_l,{key:X,type:"monotone",dataKey:X,stackId:"1",stroke:H,strokeWidth:2,fill:`url(#ix-gradient-${X.replace(/\W/g,"-")})`}))))),re.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:$.cardBorder}},[{label:"Interactions",value:h.interactions.toLocaleString()},{label:"Agents",value:h.agents.toLocaleString()},{label:"Total tokens",value:wi(h.tokens)},{label:"Avg / interaction",value:wi(h.avgTokens)}].map(X=>re.default.createElement("div",{key:X.label},re.default.createElement("div",{className:"text-lg font-bold",style:{color:$.textPrimary}},X.value),re.default.createElement("div",{className:"text-xs",style:{color:$.textSecondary}},X.label))))),n.length===0?re.default.createElement("div",{className:"text-center py-12"},re.default.createElement("div",{className:"text-lg",style:{color:$.textMuted}},"No interactions in the last ",p.label),re.default.createElement("p",{className:"text-sm mt-2",style:{color:$.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):re.default.createElement("div",{className:"space-y-8"},C.map(X=>re.default.createElement("div",{key:X.key,className:"space-y-4"},re.default.createElement("div",{className:"flex items-baseline justify-between"},re.default.createElement("h2",{className:"text-sm font-semibold",style:{color:$.textPrimary}},X.title),re.default.createElement("span",{className:"text-xs",style:{color:$.textMuted}},X.sessions.length," ",X.sessions.length===1?"interaction":"interactions",X.tokens>0&&` \xB7 ${wi(X.tokens)} tokens`)),X.sessions.map(H=>{let q=d[H.id],y=u===H.id,N=_[H.id]||"conversation";return re.default.createElement(uy,{key:H.id,darkMode:r,className:"shadow-sm"},re.default.createElement("div",{className:`flex items-center justify-between flex-wrap gap-y-2 p-4 cursor-pointer transition-colors ${r?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:()=>T(H.id),style:y?{background:$.hoverBg}:void 0},re.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},H.source==="telemetry"?re.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(168,85,247,0.15)":"#faf5ff",color:r?"#d8b4fe":"#7e22ce"},title:"Reported by an app running this agent outside the platform"},"REPORTED"):re.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),re.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:$.textPrimary}},H.display_name),H.agent&&re.default.createElement("span",{className:"text-sm truncate",style:{color:$.textSecondary}},H.agent.name),H.service_name&&re.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:$.textMuted}},H.service_name)),re.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:$.textSecondary}},re.default.createElement("span",null,H.message_count>0?`${H.message_count} messages`:`${H.tool_count||0} tool ${H.tool_count===1?"call":"calls"}`),re.default.createElement("span",null,wi(H.tokens?.total)," tokens"),(H.tokens?.total||0)>0&&re.default.createElement(xo,{compact:!0,darkMode:r,label:"Context",used:(H.tokens?.input||0)+(H.tokens?.output||0)||H.tokens?.total,limit:Mf(H.model),segments:[{key:"messages",label:"Context",tokens:(H.tokens?.input||0)+(H.tokens?.output||0)||H.tokens?.total}]}),re.default.createElement("span",{style:{color:$.textMuted}},LZ(H.last_activity_at)),re.default.createElement(Il,{open:y,darkMode:r}))),!y&&re.default.createElement(Ru,{darkMode:r,onClick:()=>T(H.id),style:{padding:"0 16px 12px"},lines:[{label:"input",text:H.preview?.input,color:br("user",r).color},{label:"output",text:H.preview?.output,color:br("assistant",r).color}]}),y&&re.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:$.cardBorder,background:$.innerBg}},q?re.default.createElement(re.default.Fragment,null,re.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},re.default.createElement(jf,{options:IZ,value:N,onChange:O=>I(M=>({...M,[H.id]:O})),darkMode:r}),re.default.createElement("span",{className:"text-xs",style:{color:$.textSecondary}},q.messages.length," ",q.messages.length===1?"message":"messages",q.generations.length>0&&` \xB7 ${q.generations.length} ${q.generations.length===1?"generation":"generations"}`)),N==="conversation"&&re.default.createElement(re.default.Fragment,null,q.messages.length===0&&re.default.createElement("div",{className:"text-sm",style:{color:$.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),re.default.createElement(Da,{darkMode:r,messages:q.instructions?[{id:`ctx-${H.id}-system`,role:"system",content:q.instructions,created_at:H.created_at},...q.messages]:q.messages}),(()=>{let O=PZ(q);return O?re.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:$.cardBorder}},re.default.createElement(xo,{...O,label:"Context pressure",estimated:!0,darkMode:r})):null})()),N==="spans"&&(q.generations.length===0?re.default.createElement("div",{className:"text-sm",style:{color:$.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):re.default.createElement("div",{className:"space-y-2"},q.generations.map(O=>re.default.createElement(BZ,{key:O.id,generation:O,darkMode:r,maxMs:Math.max(...q.generations.map(M=>(M.duration_seconds||0)*1e3),1),expanded:z(`${H.id}:${O.id}`),onToggle:()=>B(`${H.id}:${O.id}`)}))))):re.default.createElement("div",{className:"flex justify-center py-6"},re.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var te=J(R());var ES=[{type:"response_present",key:"response_present",label:"Response present",config:{}},{type:"min_length",key:"response_length",label:"Response length \u2265 40 chars",config:{chars:40}},{type:"max_latency_ms",key:"latency",label:"Latency \u2264 5s",config:{ms:5e3}},{type:"token_budget",key:"token_budget",label:"Output \u2264 1000 tokens",config:{output_tokens:1e3}}],OS=[{type:"trace_error_rate",key:"trace_error_rate",label:"Trace error rate \u2264 5% (telemetry, 7d)",config:{max_error_rate:5,window_hours:168}},{type:"trace_latency",key:"trace_latency",label:"Avg trace latency \u2264 5s (telemetry, 7d)",config:{max_avg_ms:5e3,window_hours:168}}],$P=()=>document.querySelector('meta[name="csrf-token"]')?.content,UZ=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);return t<1?"just now":t<60?`${t} min ago`:t<1440?`${Math.floor(t/60)} hours ago`:`${Math.floor(t/1440)} days ago`},fy=e=>e>=.85?"high":e>=.7?"medium":"low";function zf({embedded:e=!1,agentId:t=null}){let{darkMode:r}=it(),[n,a]=(0,te.useState)([]),[i,o]=(0,te.useState)([]),[l,s]=(0,te.useState)(!0),[u,c]=(0,te.useState)(null),[d,f]=(0,te.useState)(null),[p,v]=(0,te.useState)(!1),[g,b]=(0,te.useState)(null),[m,h]=(0,te.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:ES.map(A=>A.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:""}),[x,w]=(0,te.useState)(null),[E,C]=(0,te.useState)(!1),T=(0,te.useCallback)(async()=>{try{let A=await fetch(`/api/evaluations${t?`?agent_id=${encodeURIComponent(t)}`:""}`);if(!A.ok)throw new Error(`Request failed (${A.status})`);let k=await A.json();a(k.evaluations||[]),c(null)}catch(A){c(A.message)}finally{s(!1)}},[t]);(0,te.useEffect)(()=>{T(),fetch("/api/agents").then(A=>A.ok?A.json():{agents:[]}).then(A=>o(A.agents||[])).catch(()=>o([]))},[T]);let _=()=>{let A=[...ES,...OS].filter(k=>m.criteria.includes(k.key)).map(({key:k,type:V,config:G})=>({key:k,type:V,config:G}));return m.containsPattern.trim()&&A.push({key:"contains",type:"contains",config:{pattern:m.containsPattern.trim()}}),m.llmJudgePrompt.trim()&&A.push({key:"quality",type:"llm_judge",config:{prompt:m.llmJudgePrompt.trim()}}),A},I=async A=>{A.preventDefault(),C(!0),w(null);try{let k=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":$P()},body:JSON.stringify({evaluation:{agent_id:m.agent_id,name:m.name,sample_size:m.sample_size,judge_kind:m.judgeKind==="judge_defined"?"judge_defined":m.llmJudgePrompt.trim()?"llm":"rules",judge_model:m.judgeModel.trim()||void 0,compare_models:m.compareModels.split(",").map(G=>G.trim()).filter(Boolean),criteria:m.judgeKind==="judge_defined"?[]:_()}})}),V=await k.json();if(!k.ok)throw new Error((V.errors||[V.error]).filter(Boolean).join(", ")||"Failed to create evaluation");v(!1),h({...m,name:""}),await T(),f(V.evaluation?.id??null)}catch(k){w(k.message)}finally{C(!1)}},z=async A=>{b(A);try{await fetch(`/api/evaluations/${A}/run`,{method:"POST",headers:{"X-CSRF-Token":$P()}}),await T()}finally{b(null)}},B={cardBg:r?"#1f1f1f":"#ffffff",cardBorder:r?"#2a2a2a":"#e5e7eb",innerBg:r?"rgba(255,255,255,0.04)":"#f9fafb",trackBg:r?"rgba(255,255,255,0.1)":"#f3f4f6",textPrimary:r?"#ffffff":"#111827",textSecondary:r?"rgba(255,255,255,0.6)":"#6b7280",textMuted:r?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:r?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:r?"rgba(255,255,255,0.2)":"#d1d5db"},$={high:"#22c55e",medium:"#eab308",low:"#ef4444"};if(l)return te.default.createElement("div",{className:"flex items-center justify-center h-64"},te.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let X=t?n.filter(A=>String(A.agent?.id)===String(t)):n,H=X.map(A=>A.latest_run).filter(A=>A&&A.status==="complete"),q=H.length?H.reduce((A,k)=>A+(k.average_score||0),0)/H.length:null,y=H.reduce((A,k)=>A+(k.samples_evaluated||0),0),N={padding:"8px 12px",borderRadius:"8px",fontSize:"14px",background:B.inputBg,border:`1px solid ${B.inputBorder}`,color:B.textPrimary},O=A=>A&&typeof A=="object"&&!("score"in A)&&!("skipped"in A),M=(A,k,{indent:V=!1,mono:G=!1}={})=>te.default.createElement("div",{key:A,className:"flex items-center gap-4",style:V?{paddingLeft:"16px"}:void 0},te.default.createElement("div",{className:`w-32 text-sm truncate ${G?"font-mono text-xs":""}`,style:{color:B.textSecondary},title:A},G?A:A.replace(/_/g," "),k.source==="telemetry"&&te.default.createElement("span",{"data-testid":"score-source-telemetry",className:"ml-1 text-[10px] uppercase tracking-wide",style:{color:B.textMuted},title:`Aggregate over ${k.traces} traces in the last ${k.window_hours}h`},"telemetry")),k.skipped?te.default.createElement("div",{className:"flex-1 text-xs italic",style:{color:B.textMuted},title:k.reason},"skipped \u2014 ",k.reason):te.default.createElement(te.default.Fragment,null,te.default.createElement("div",{className:"flex-1 h-2 rounded-full overflow-hidden",style:{background:B.trackBg}},te.default.createElement("div",{className:"h-full rounded-full transition-all",style:{width:`${k.score*100}%`,background:$[fy(k.score)]}})),te.default.createElement("div",{className:"w-12 text-sm font-medium text-right",style:{color:$[fy(k.score)]},title:`min ${k.min} \xB7 max ${k.max} \xB7 ${k.passed}/${k.total} passed`},k.score.toFixed(2))));return te.default.createElement("div",{className:"space-y-6"},te.default.createElement("div",{className:`flex items-center ${e?"justify-end":"justify-between"}`},!e&&te.default.createElement("div",null,te.default.createElement("h1",{className:"text-2xl font-bold",style:{color:B.textPrimary}},"Evaluations"),te.default.createElement("p",{className:"text-sm mt-1",style:{color:B.textSecondary}},"Score outputs with LLM-as-judge, rule-based checks, or custom criteria")),te.default.createElement("button",{onClick:()=>v(!p),className:"px-4 py-2 bg-red-500 text-white rounded-lg text-sm font-medium hover:bg-red-600 transition-colors"},p?"Cancel":"New Evaluation")),u&&te.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load evaluations: ",u),p&&te.default.createElement("form",{onSubmit:I,className:"rounded-xl border p-5 space-y-4",style:{backgroundColor:B.cardBg,borderColor:B.cardBorder}},te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"Agent"),te.default.createElement("select",{required:!0,disabled:!!t,value:m.agent_id,onChange:A=>h({...m,agent_id:A.target.value}),style:{...N,width:"100%",opacity:t?.7:1}},!t&&te.default.createElement("option",{value:""},"Select agent\u2026"),i.map(A=>te.default.createElement("option",{key:A.id,value:A.id},A.name)))),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"Name"),te.default.createElement("input",{required:!0,type:"text",value:m.name,onChange:A=>h({...m,name:A.target.value}),placeholder:"Response Quality",style:{...N,width:"100%"}})),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"Sample size"),te.default.createElement("input",{type:"number",min:"1",max:"100",value:m.sample_size,onChange:A=>h({...m,sample_size:A.target.value}),style:{...N,width:"100%"}}))),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"KPI definition"),te.default.createElement("select",{value:m.judgeKind,onChange:A=>h({...m,judgeKind:A.target.value}),style:{...N,width:"100%"}},te.default.createElement("option",{value:"manual"},"Manual criteria"),te.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"Judge model (optional)"),te.default.createElement("input",{type:"text",value:m.judgeModel,onChange:A=>h({...m,judgeModel:A.target.value}),placeholder:"e.g. claude-opus-5",style:{...N,width:"100%"}})),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"Compare models (optional, comma-separated)"),te.default.createElement("input",{type:"text",value:m.compareModels,onChange:A=>h({...m,compareModels:A.target.value}),placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...N,width:"100%"}}))),m.judgeKind==="judge_defined"&&te.default.createElement("p",{className:"text-xs",style:{color:B.textSecondary}},"On the first run the judge reads the agent's instructions and recent interactions, defines 3\u20136 KPIs, then scores samples against them. KPIs persist so later runs (and model cohorts) stay comparable."),m.judgeKind!=="judge_defined"&&te.default.createElement(te.default.Fragment,null,te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-2",style:{color:B.textMuted}},"Rule-based criteria (sampled generations)"),te.default.createElement("div",{className:"flex flex-wrap gap-3"},ES.map(A=>te.default.createElement("label",{key:A.key,className:"flex items-center gap-2 text-sm",style:{color:B.textPrimary}},te.default.createElement("input",{type:"checkbox",checked:m.criteria.includes(A.key),onChange:k=>h({...m,criteria:k.target.checked?[...m.criteria,A.key]:m.criteria.filter(V=>V!==A.key)})}),A.label)))),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-2",style:{color:B.textMuted}},"Telemetry criteria (trace aggregates)"),te.default.createElement("div",{className:"flex flex-wrap gap-3"},OS.map(A=>te.default.createElement("label",{key:A.key,className:"flex items-center gap-2 text-sm",style:{color:B.textPrimary}},te.default.createElement("input",{type:"checkbox",checked:m.criteria.includes(A.key),onChange:k=>h({...m,criteria:k.target.checked?[...m.criteria,A.key]:m.criteria.filter(V=>V!==A.key)})}),A.label)))),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"Must contain (optional pattern)"),te.default.createElement("input",{type:"text",value:m.containsPattern,onChange:A=>h({...m,containsPattern:A.target.value}),placeholder:"e.g. password reset",style:{...N,width:"100%"}})),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:B.textMuted}},"LLM judge criterion (optional, needs provider credentials)"),te.default.createElement("input",{type:"text",value:m.llmJudgePrompt,onChange:A=>h({...m,llmJudgePrompt:A.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...N,width:"100%"}})))),x&&te.default.createElement("div",{className:"text-sm text-red-500"},x),te.default.createElement("button",{type:"submit",disabled:E,className:"px-4 py-2 bg-red-500 text-white rounded-lg text-sm font-medium hover:bg-red-600 transition-colors disabled:opacity-50"},E?"Creating & running\u2026":"Create & Run")),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",{className:"rounded-xl p-5 border shadow-sm",style:{backgroundColor:B.cardBg,borderColor:B.cardBorder}},te.default.createElement("div",{className:"text-sm mb-1",style:{color:B.textSecondary}},"Total Evaluations"),te.default.createElement("div",{className:"text-3xl font-bold",style:{color:B.textPrimary}},X.length)),te.default.createElement("div",{className:"rounded-xl p-5 border shadow-sm",style:{backgroundColor:B.cardBg,borderColor:B.cardBorder}},te.default.createElement("div",{className:"text-sm mb-1",style:{color:B.textSecondary}},"Average Score"),te.default.createElement("div",{className:"text-3xl font-bold",style:{color:q==null?B.textMuted:$[fy(q)]}},q==null?"\u2014":`${(q*100).toFixed(0)}%`)),te.default.createElement("div",{className:"rounded-xl p-5 border shadow-sm",style:{backgroundColor:B.cardBg,borderColor:B.cardBorder}},te.default.createElement("div",{className:"text-sm mb-1",style:{color:B.textSecondary}},"Samples Evaluated"),te.default.createElement("div",{className:"text-3xl font-bold",style:{color:B.textPrimary}},y))),te.default.createElement("div",{className:"space-y-4"},X.map(A=>{let k=A.latest_run,V=d===A.id,G=(A.criteria||[]).some(Q=>OS.some(se=>se.key===Q.key));return te.default.createElement("div",{key:A.id,"data-testid":"evaluation-card","data-telemetry":G?"true":"false",className:"rounded-xl border shadow-sm overflow-hidden",style:{backgroundColor:B.cardBg,borderColor:B.cardBorder}},te.default.createElement("div",{className:"flex items-center justify-between p-4 cursor-pointer",onClick:()=>f(V?null:A.id)},te.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},te.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-purple-100 text-purple-700 rounded flex-shrink-0"},"EVALUATION"),te.default.createElement("span",{className:"font-medium truncate",style:{color:B.textPrimary}},A.name),te.default.createElement("span",{className:"text-sm truncate",style:{color:B.textSecondary}},A.agent?.name)),te.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:B.textSecondary}},k?.status==="failed"&&te.default.createElement("span",{className:"text-red-500"},"failed"),k?.status==="complete"&&k.average_score!=null&&te.default.createElement("span",{style:{color:$[fy(k.average_score)],fontWeight:600}},(k.average_score*100).toFixed(0),"%"),te.default.createElement("span",{style:{color:B.textMuted}},UZ(k?.completed_at||A.created_at)))),V&&te.default.createElement("div",{className:"border-t",style:{borderColor:B.cardBorder}},k?.status==="failed"?te.default.createElement("div",{className:"p-4 text-sm text-red-500"},k.error_message):k?.scores?te.default.createElement("div",{className:"p-4 space-y-3"},k.scores._verdict&&te.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(34,197,94,0.1)":"#f0fdf4"}},te.default.createElement("span",{className:"font-semibold",style:{color:"#16a34a"}},"Winner: ",k.scores._verdict.winner),te.default.createElement("span",{className:"ml-2",style:{color:B.textSecondary}},k.scores._verdict.rationale),te.default.createElement("span",{className:"ml-2 text-xs",style:{color:B.textMuted}},"judged by ",k.scores._verdict.judge)),k.scores._missing_models&&te.default.createElement("div",{className:"text-xs italic",style:{color:B.textMuted}},"No recorded generations for: ",k.scores._missing_models.join(", ")," \u2014 run the agent under those models first"),Object.entries(k.scores).filter(([Q])=>!Q.startsWith("_")).map(([Q,se])=>O(se)?te.default.createElement("div",{key:Q,className:"space-y-1"},te.default.createElement("div",{className:"text-sm",style:{color:B.textSecondary}},Q.replace(/_/g," ")),Object.entries(se).map(([ue,pe])=>M(ue,pe,{indent:!0,mono:!0}))):M(Q,se))):te.default.createElement("div",{className:"p-4 text-sm",style:{color:B.textMuted}},"No runs yet"),te.default.createElement("div",{className:"p-4 grid grid-cols-2 md:grid-cols-5 gap-4 text-sm",style:{background:B.innerBg}},te.default.createElement("div",null,te.default.createElement("div",{style:{color:B.textMuted}},"Judge"),te.default.createElement("div",{className:"font-medium",style:{color:B.textPrimary}},A.judge_kind==="judge_defined"?`Judge-defined KPIs${A.judge_model?` (${A.judge_model})`:""}`:A.judge_kind==="llm"?A.judge_model||"LLM judge":"Rule-based")),te.default.createElement("div",{className:"col-span-2"},te.default.createElement("div",{style:{color:B.textMuted}},"Criteria"),te.default.createElement("div",{className:"font-medium truncate",style:{color:B.textPrimary}},(A.criteria||[]).map(Q=>Q.key).join(", "))),te.default.createElement("div",null,te.default.createElement("div",{style:{color:B.textMuted}},"Samples"),te.default.createElement("div",{className:"font-medium",style:{color:B.textPrimary}},k?`${k.samples_passed} / ${k.samples_evaluated} passed`:"\u2014")),te.default.createElement("div",{className:"flex items-end justify-end"},te.default.createElement("button",{onClick:Q=>{Q.stopPropagation(),z(A.id)},disabled:g===A.id,className:"px-3 py-1.5 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50"},g===A.id?"Running\u2026":"Run again")))))})),X.length===0&&!p&&te.default.createElement("div",{className:"text-center py-12 rounded-xl border",style:{backgroundColor:B.cardBg,borderColor:B.cardBorder}},te.default.createElement("div",{className:"text-lg",style:{color:B.textMuted}},"No evaluations yet"),te.default.createElement("p",{className:"text-sm mt-2",style:{color:B.textSecondary}},"Create an evaluation to start scoring agent outputs")))}var ce=J(R());var $Z=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function kS({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=it(),a=Ps(n),[i,o]=(0,ce.useState)(null),[l,s]=(0,ce.useState)(!0),{timeWindow:u,days:c}=ka(),[d,f]=(0,ce.useState)("overview"),p=e.telemetry_agent_class||(()=>{let w=e.agent_class_name||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(E,C)=>C.toUpperCase()).replace(/^./,E=>E.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return w.endsWith("Agent")?w:`${w}Agent`})();(0,ce.useEffect)(()=>{v()},[e?.id,c]);let v=async()=>{if(e?.id){s(!0);try{let E=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();o(E)}catch(w){console.error("Failed to load analytics:",w)}finally{s(!1)}}},g=w=>w?w<1e3?`${w}ms`:`${(w/1e3).toFixed(2)}s`:"-",b=w=>w?w>=1e6?`${(w/1e6).toFixed(1)}M`:w>=1e3?`${(w/1e3).toFixed(1)}K`:w.toString():"0",m=w=>{switch(w){case"complete":return"bg-green-500";case"failed":return"bg-red-500";case"running":return"bg-blue-500";case"pending":return"bg-yellow-500";case"cancelled":return"bg-gray-500";default:return"bg-gray-400"}};if(l&&!i)return ce.default.createElement("div",{className:"flex items-center justify-center h-64"},ce.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let h=i?.runs_by_day?.length>0?Math.max(...i.runs_by_day.map(w=>w.count)):1,x=r?"overview":d;return ce.default.createElement("div",{className:"space-y-6"},r?ce.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&ce.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),ce.default.createElement(Ta,null)):ce.default.createElement("div",{className:"flex items-center justify-between"},ce.default.createElement("div",{className:"flex items-center space-x-4"},ce.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:a.textMuted}},ce.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),ce.default.createElement("div",null,ce.default.createElement("h1",{className:"text-2xl font-bold",style:{color:a.textPrimary}},e.name," Analytics"),ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Performance metrics and usage data"))),ce.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&ce.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),ce.default.createElement(Ta,null))),!r&&ce.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:a.mutedBg}},$Z.map(w=>ce.default.createElement("button",{key:w.id,onClick:()=>f(w.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===w.id?"shadow":""}`,style:d===w.id?{background:a.cardBg,color:a.textPrimary}:{color:a.textSecondary}},w.label))),x==="traces"&&ce.default.createElement(zl,{agentClass:p,embedded:!0}),x==="interactions"&&ce.default.createElement(Si,{agentId:e.id,embedded:!0}),x==="overview"&&ce.default.createElement(ce.default.Fragment,null,ce.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},ce.default.createElement(py,{title:"Total Runs",value:i?.summary?.total_runs||0,icon:ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:a,darkMode:n}),ce.default.createElement(py,{title:"Success Rate",value:`${i?.summary?.success_rate||0}%`,icon:ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"green",colors:a,darkMode:n}),ce.default.createElement(py,{title:"Avg Duration",value:g(i?.summary?.avg_duration_ms),icon:ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"blue",colors:a,darkMode:n}),ce.default.createElement(py,{title:"Total Tokens",value:b(i?.summary?.total_tokens),icon:ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})),color:"purple",colors:a,darkMode:n})),ce.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},ce.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},ce.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Runs Over Time"),i?.runs_by_day?.length>0?ce.default.createElement("div",{className:"h-48"},ce.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},i.runs_by_day.map((w,E)=>ce.default.createElement("div",{key:w.date,className:"flex-1 flex flex-col items-center group"},ce.default.createElement("div",{className:"relative w-full"},ce.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${w.count/h*150}px`,minHeight:w.count>0?"4px":"0"}}),ce.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap"},w.count," runs")),(E===0||E===i.runs_by_day.length-1||i.runs_by_day.length<=7)&&ce.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:a.textMuted}},new Date(w.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):ce.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:a.textMuted}},"No data for this period")),ce.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},ce.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Status Breakdown"),Object.keys(i?.status_breakdown||{}).length>0?ce.default.createElement("div",{className:"space-y-3"},Object.entries(i.status_breakdown).map(([w,E])=>{let C=i?.summary?.total_runs||1,T=(E/C*100).toFixed(1);return ce.default.createElement("div",{key:w},ce.default.createElement("div",{className:"flex justify-between text-sm mb-1"},ce.default.createElement("span",{className:"capitalize",style:{color:a.textSecondary}},w),ce.default.createElement("span",{className:"font-medium",style:{color:a.textPrimary}},E," (",T,"%)")),ce.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:a.trackBg}},ce.default.createElement("div",{className:`h-full ${m(w)} rounded-full transition-all`,style:{width:`${T}%`}})))})):ce.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:a.textMuted}},"No runs yet"))),i?.recent_errors?.length>0&&ce.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},ce.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Recent Errors"),ce.default.createElement("div",{className:"space-y-3"},i.recent_errors.map(w=>ce.default.createElement("div",{key:w.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},ce.default.createElement("svg",{className:"w-5 h-5 text-red-500 flex-shrink-0 mt-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})),ce.default.createElement("div",{className:"flex-1 min-w-0"},ce.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},w.error||"Unknown error"),ce.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(w.created_at).toLocaleString())))))),ce.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Completed Runs"),ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.summary?.completed_runs||0)),ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Failed Runs"),ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.summary?.failed_runs||0)),ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Avg Tokens/Run"),ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},b(i?.summary?.avg_tokens_per_run))),ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Period"),ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.period_days||30," days")))))}var HP={rose:["#dc2626","rgba(220,38,38,0.18)","#fee2e2"],green:["#16a34a","rgba(22,163,74,0.18)","#dcfce7"],blue:["#2563eb","rgba(37,99,235,0.18)","#dbeafe"],purple:["#7c3aed","rgba(124,58,237,0.18)","#ede9fe"]};function py({title:e,value:t,icon:r,color:n,colors:a,darkMode:i}){let[o,l,s]=HP[n]||HP.rose;return ce.default.createElement("div",{className:"rounded-xl border p-4",style:{background:a.cardBg,borderColor:a.cardBorder}},ce.default.createElement("div",{className:"flex items-center justify-between"},ce.default.createElement("div",null,ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},e),ce.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:a.textPrimary}},t)),ce.default.createElement("div",{className:"p-3 rounded-lg",style:{background:i?l:s,color:o}},r)))}var HZ=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],YP=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],VZ=YP.map(e=>e.id),VP={success:{light:["#dcfce7","#166534"],dark:["rgba(22,163,74,0.18)","#4ade80"]},warning:{light:["#fef9c3","#854d0e"],dark:["rgba(234,179,8,0.18)","#facc15"]},neutral:{light:["#f3f4f6","#4b5563"],dark:["rgba(255,255,255,0.1)","rgba(255,255,255,0.7)"]},error:{light:["#fee2e2","#991b1b"],dark:["rgba(220,38,38,0.18)","#f87171"]},info:{light:["#dbeafe","#1e40af"],dark:["rgba(59,130,246,0.18)","#60a5fa"]}},FZ={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function TS({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[a,i]=(VP[e]||VP.neutral)[r?"dark":"light"];return Z.default.createElement("span",{style:{background:a,color:i,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?_e.mono:void 0,whiteSpace:"nowrap"}},n)}function Ll({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:a,children:i}){let l={padding:t==="sm"?"5px 10px":"7px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,cursor:n?"not-allowed":"pointer",transition:"background 0.15s ease, border-color 0.15s ease",whiteSpace:"nowrap"},s={primary:{background:n?a.mutedBg:Rn,color:n?a.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:a.textCell,border:`1px solid ${a.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return Z.default.createElement("button",{type:"button",onClick:r,disabled:n,style:{...l,...s[e]||s.secondary}},i)}function FP({tabs:e,active:t,onChange:r,colors:n}){return Z.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(a=>{let i=t===a.id;return Z.default.createElement("button",{key:a.id,type:"button",onClick:()=>r(a.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${i?Rn:"transparent"}`,color:i?Rn:n.textSecondary,fontSize:"13px",fontWeight:i?600:500,cursor:"pointer",whiteSpace:"nowrap"}},a.label)}))}function my({agent:e,meta:t,onSave:r,onDelete:n,onRun:a,onDuplicate:i,onRunReport:o,onBack:l,isLoading:s,initialTab:u}){let{darkMode:c}=it(),d=Ps(c),[f,p]=(0,Z.useState)(u||"config"),[v,g]=(0,Z.useState)({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[b,m]=(0,Z.useState)([]),[h,x]=(0,Z.useState)(!1),[w,E]=(0,Z.useState)(""),[C,T]=(0,Z.useState)(Ds),_=e.telemetry_agent_class||e.telemetryAgentClass||(()=>{let q=e.agent_class_name||e.agentClassName||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(y,N)=>N.toUpperCase()).replace(/^./,y=>y.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return q.endsWith("Agent")?q:`${q}Agent`})();(0,Z.useEffect)(()=>{let q=!1;return bm(v.provider).then(y=>{q||y.length===0||T(N=>({...N,[v.provider]:y}))}),()=>{q=!0}},[v.provider]),(0,Z.useEffect)(()=>{let q=JSON.stringify(v)!==JSON.stringify({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});x(q)},[v,e]),(0,Z.useEffect)(()=>{f==="versions"?I():f==="code"&&z()},[f]);let I=async()=>{try{let y=await(await fetch(`/api/agents/${e.id}/versions`)).json();m(y.versions)}catch(q){console.error("Failed to load versions:",q)}},z=async()=>{try{let y=await(await fetch(`/api/agents/${e.id}/export`)).json();E(y.code)}catch(q){console.error("Failed to load code preview:",q)}},B=(q,y)=>{g(N=>({...N,[q]:y}))},$=(q,y)=>{g(N=>{let O=N[q]||[],M=O.includes(y)?O.filter(A=>A!==y):[...O,y];return{...N,[q]:M}})},X=()=>{r(v)},H=VZ.includes(f);return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},Z.default.createElement("button",{type:"button",onClick:l,title:"Back to agents",style:{fontFamily:_e.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),Z.default.createElement(wt,{size:44}),Z.default.createElement("div",{style:{flex:1,minWidth:0}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},Z.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},v.name||"Untitled agent"),Z.default.createElement(TS,{tone:FZ[v.status]||"neutral",darkMode:c},v.status),h&&Z.default.createElement(TS,{tone:"info",darkMode:c},"unsaved")),Z.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},v.description||"No description")),Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},i&&Z.default.createElement(Ll,{variant:"secondary",colors:d,onClick:i},"Duplicate"),Z.default.createElement(Ll,{variant:"primary",colors:d,onClick:a},"Run Agent"))),Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},Z.default.createElement(FP,{tabs:HZ,active:f,onChange:p,colors:d}),Z.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),Z.default.createElement(FP,{tabs:YP,active:f,onChange:p,colors:d})),H?Z.default.createElement("div",null,f==="traces"&&Z.default.createElement(zl,{agentClass:_,embedded:!0}),f==="metrics"&&Z.default.createElement(kS,{agent:e,embedded:!0}),f==="interactions"&&Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},o&&Z.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Z.default.createElement("button",{type:"button",onClick:o,style:{background:"none",border:"none",cursor:"pointer",fontFamily:_e.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),Z.default.createElement(Si,{agentId:e.id,embedded:!0})),f==="evals"&&Z.default.createElement(zf,{embedded:!0,agentId:e.id}),f==="feedback"&&Z.default.createElement(XZ,{colors:d})):Z.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},f==="config"&&Z.default.createElement(YZ,{formData:v,updateField:B,providerModels:C,colors:d,darkMode:c,onDelete:n}),f==="instructions"&&Z.default.createElement(qZ,{formData:v,updateField:B,meta:t,toggleArrayItem:$,colors:d}),f==="tools"&&Z.default.createElement(WZ,{formData:v,meta:t,toggleArrayItem:$,colors:d}),f==="versions"&&Z.default.createElement(KZ,{versions:b,agentId:e.id,onRestore:I,colors:d,darkMode:c}),f==="code"&&Z.default.createElement(GZ,{code:w,colors:d})),h&&Z.default.createElement("div",{style:{position:"sticky",bottom:"0",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",background:d.cardBg,border:`1px solid ${d.borderStrong}`,borderRadius:"12px",padding:"10px 14px",boxShadow:"0 4px 16px rgba(0,0,0,0.12)"}},Z.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),Z.default.createElement("div",{style:{display:"flex",gap:"8px"}},Z.default.createElement(Ll,{variant:"primary",size:"sm",colors:d,onClick:X,disabled:s},s?"Saving\u2026":"Save Changes"))))}var Pa=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),Ai=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),qP=e=>({fontFamily:_e.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function YZ({formData:e,updateField:t,providerModels:r,colors:n,darkMode:a,onDelete:i}){return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(n)},"Agent Name"),Z.default.createElement("input",{type:"text",value:e.name,onChange:o=>t("name",o.target.value),className:"aa-field",style:Ai(n)})),Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(n)},"Preset Type"),Z.default.createElement("select",{value:e.preset_type,onChange:o=>t("preset_type",o.target.value),className:"aa-field",style:Ai(n)},Object.keys(Ts).map(o=>Z.default.createElement("option",{key:o,value:o},o))))),Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(n)},"Description"),Z.default.createElement("textarea",{value:e.description,onChange:o=>t("description",o.target.value),rows:3,className:"aa-field",style:{...Ai(n),resize:"vertical"}})),Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(n)},"Provider"),Z.default.createElement("select",{value:e.provider,onChange:o=>{t("provider",o.target.value),t("model",r[o.target.value][0])},className:"aa-field",style:Ai(n)},Object.keys(r).map(o=>Z.default.createElement("option",{key:o,value:o},o.charAt(0).toUpperCase()+o.slice(1))))),Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(n)},"Model"),Z.default.createElement("select",{value:e.model,onChange:o=>t("model",o.target.value),className:"aa-field",style:{...Ai(n),fontFamily:_e.mono}},(r[e.provider]?.includes(e.model)?r[e.provider]:[e.model,...r[e.provider]||[]]).filter(Boolean).map(o=>Z.default.createElement("option",{key:o,value:o},o))))),Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(n)},"Temperature"," ",Z.default.createElement("span",{style:{fontFamily:_e.mono,color:n.textSecondary}},e.model_config.temperature)),Z.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:o=>t("model_config",{...e.model_config,temperature:parseFloat(o.target.value)}),style:{width:"100%",accentColor:Rn}})),Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(n)},"Status"),Z.default.createElement("select",{value:e.status,onChange:o=>t("status",o.target.value),className:"aa-field",style:Ai(n)},Z.default.createElement("option",{value:"draft"},"Draft"),Z.default.createElement("option",{value:"active"},"Active"),Z.default.createElement("option",{value:"archived"},"Archived")))),i&&Z.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},Z.default.createElement("div",null,Z.default.createElement("div",{style:qP(n)},"Danger zone"),Z.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),Z.default.createElement(Ll,{variant:"danger",size:"sm",colors:n,onClick:i},"Delete Agent")))}function qZ({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:a}){let i=e.action_prompts||[],o=(u,c)=>{t("action_prompts",i.map((d,f)=>f===u?{...d,...c}:d))},l=()=>{t("action_prompts",[...i,{name:"",prompt:"",expose_as_tool:!1}])},s=u=>{t("action_prompts",i.filter((c,d)=>d!==u))};return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(a)},"System Instructions"),Z.default.createElement("textarea",{value:e.instructions,onChange:u=>t("instructions",u.target.value),placeholder:"You are a helpful AI assistant...",rows:12,className:"aa-field",style:{...Ai(a),fontFamily:_e.mono,resize:"vertical"}})),Z.default.createElement("div",null,Z.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},Z.default.createElement("label",{style:{...Pa(a),marginBottom:0}},"Action Prompts"),Z.default.createElement(Ll,{variant:"secondary",size:"sm",colors:a,onClick:l},"+ Add action")),Z.default.createElement("p",{style:{fontSize:"12px",color:a.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",Z.default.createElement("span",{style:{fontFamily:_e.mono}},"#ask")," action uses the system instructions alone."),i.length>0&&Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i.map((u,c)=>Z.default.createElement("div",{key:c,style:{border:`1px solid ${a.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Z.default.createElement("span",{style:{fontFamily:_e.mono,fontSize:"13px",color:a.textMuted}},"#"),Z.default.createElement("input",{type:"text",value:u.name,onChange:d=>o(c,{name:d.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"_")}),placeholder:"action_name",className:"aa-field",style:{...Ai(a),flex:1,padding:"6px 10px",fontFamily:_e.mono}}),Z.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:a.textSecondary,whiteSpace:"nowrap"}},Z.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>o(c,{expose_as_tool:d.target.checked}),style:{accentColor:Rn}}),"Expose as tool"),Z.default.createElement("button",{type:"button",onClick:()=>s(c),title:"Remove action",style:{fontFamily:_e.mono,fontSize:"12px",color:a.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),Z.default.createElement("textarea",{value:u.prompt,onChange:d=>o(c,{prompt:d.target.value}),placeholder:"This action's system prompt, applied on top of the base instructions...",rows:4,className:"aa-field",style:{...Ai(a),fontFamily:_e.mono,resize:"vertical"}}))))),Z.default.createElement("div",null,Z.default.createElement("label",{style:Pa(a)},"Instruction Sets"),Z.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return Z.default.createElement("button",{key:u,type:"button",onClick:()=>n("instruction_sets",u),style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Rn:a.inputBorder}`,background:c?Rn:"transparent",color:c?"#ffffff":a.textCell}},u)}))))}function WZ({formData:e,meta:t,toggleArrayItem:r,colors:n}){let a=i=>({terminal:"$",playwright:">",filesystem:"/",code:"<>",database:"#",slack:"@",fetch:"~",search:"?",edit:"*",translate:"[]",memory:"M"})[i]||"[]";return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"Select the tools your agent can use."),Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"12px"}},t.availableTools?.map(i=>{let o=e.tools.includes(i);return Z.default.createElement("button",{key:i,type:"button",onClick:()=>r("tools",i),style:{padding:"14px",borderRadius:"12px",textAlign:"center",cursor:"pointer",border:`1px solid ${o?Rn:n.cardBorder}`,background:o?"rgba(239,68,68,0.08)":"transparent",color:o?Rn:n.textCell}},Z.default.createElement("span",{style:{display:"block",fontFamily:_e.mono,fontSize:"20px",marginBottom:"6px"}},a(i)),Z.default.createElement("span",{style:{fontSize:"13px",fontWeight:500,textTransform:"capitalize"}},i))})),e.tools.length>0&&Z.default.createElement("div",{style:{background:n.innerBg,borderRadius:"10px",padding:"14px"}},Z.default.createElement("div",{style:{...qP(n),marginBottom:"10px"}},"Selected tools \xB7 ",e.tools.length),Z.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},e.tools.map(i=>Z.default.createElement("span",{key:i,style:{fontFamily:_e.mono,fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:`1px solid ${n.inputBorder}`,color:n.textCell}},a(i)," ",i)))))}function KZ({versions:e,agentId:t,onRestore:r,colors:n,darkMode:a}){let i=async o=>{if(confirm("Restore this version? This will create a new version with the restored configuration."))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:o})}),r()}catch(l){console.error("Failed to restore version:",l)}};return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},Z.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(o=>{let l=o.is_latest||o.isLatest;return Z.default.createElement("div",{key:o.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${l?Rn:n.cardBorder}`,background:l?"rgba(239,68,68,0.06)":"transparent"}},Z.default.createElement("div",{style:{minWidth:0}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Z.default.createElement("span",{style:{fontFamily:_e.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",o.version_number||o.versionNumber),l&&Z.default.createElement(TS,{tone:"error",darkMode:a},"current")),Z.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},o.change_summary||o.changeSummary),Z.default.createElement("p",{style:{fontFamily:_e.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(o.created_at||o.createdAt).toLocaleString())),!l&&Z.default.createElement(Ll,{variant:"secondary",size:"sm",colors:n,onClick:()=>i(o.id)},"Restore"))})):Z.default.createElement(WP,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function GZ({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Z.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),Z.default.createElement(Ll,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),Z.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:_e.mono,fontSize:"12px",lineHeight:1.6,margin:0}},Z.default.createElement("code",null,e||"Loading...")))}function XZ({colors:e}){return Z.default.createElement("div",{style:{background:e.cardBg,border:`1px solid ${e.cardBorder}`,borderRadius:"12px",padding:"20px"}},Z.default.createElement(WP,{colors:e,glyph:"[?]",title:"No feedback recorded",hint:"Thumbs and comments are not captured yet. Once an interaction feedback source is recorded, CSAT and per-trace comments appear here."}))}function WP({colors:e,glyph:t,title:r,hint:n}){return Z.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},Z.default.createElement("div",{style:{fontFamily:_e.mono,fontSize:"20px",color:e.textMuted}},t),Z.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),Z.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var ee=J(R());async function tc(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var ZZ={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},QZ=e=>{let t=ZZ[e]||{role:e,label:e};return{...br(t.role,!1),label:t.label}};function MS({agent:e,onBack:t}){let[r,n]=(0,ee.useState)(""),a=["ask",...(e.action_prompts||[]).map(y=>y.name).filter(Boolean)],[i,o]=(0,ee.useState)("ask"),[l,s]=(0,ee.useState)([]),[u,c]=(0,ee.useState)(!1),[d,f]=(0,ee.useState)(null),[p,v]=(0,ee.useState)(null),[g,b]=(0,ee.useState)({}),[m,h]=(0,ee.useState)(!1),[x,w]=(0,ee.useState)(null),E=(0,ee.useRef)(null);(0,ee.useEffect)(()=>{C()},[e.id]),(0,ee.useEffect)(()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight)},[d?.output]);let C=async()=>{try{let N=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();s(N.runs)}catch(y){console.error("Failed to load runs:",y)}},T=1200,_=600*1e3,I=async()=>{if(!(!r.trim()||u)){c(!0),f({status:"pending",input_prompt:r,output:"",logs:[],started_at:new Date().toISOString()});try{let y=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:r,action_name:i})}),N=await y.json();if(y.status===402&&N.upgrade_required){v(N.usage),f(k=>({...k,status:"failed",error_message:N.message||"Plan limit reached"}));return}if(!y.ok)throw new Error(N.error||"Run failed");let O=N.run.id,M=Date.now(),A=async()=>{try{let k=await fetch(`/api/runs/${O}`);if(k.ok){let V=await k.json();if(f(V.run),!["pending","running"].includes(V.run.status)){c(!1),C();return}}}catch{}Date.now()-M<_?setTimeout(A,T):c(!1)};A()}catch(y){f(N=>({...N,status:"failed",error_message:y.message})),c(!1)}}},z=y=>{let N=new Map;return(y?.logs||[]).filter(O=>O.eid).forEach(O=>{let M=N.get(O.eid)||{eid:O.eid};O.status==="started"?Object.assign(M,O,{input:O.detail,output:M.output}):Object.assign(M,O,{input:M.input,output:O.detail}),N.set(O.eid,M)}),[...N.values()]},B=y=>{if(!y)return null;try{return JSON.stringify(JSON.parse(y),null,2)}catch{return y}},$=y=>{y.key==="Enter"&&(y.metaKey||y.ctrlKey)&&I()},X=y=>{switch(y){case"complete":return"text-green-600 bg-green-100";case"failed":return"text-red-600 bg-red-100";case"running":return"text-blue-600 bg-blue-100";case"pending":return"text-yellow-600 bg-yellow-100";default:return"text-gray-600 bg-gray-100"}},H=y=>y?y<1e3?`${y}ms`:`${(y/1e3).toFixed(2)}s`:"-",q=async()=>{h(!0),w(null);try{await tc({planSlug:"pro"})}catch(y){w(y.message),h(!1)}};return ee.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},ee.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},p&&ee.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},ee.default.createElement("div",null,ee.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),ee.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",p.runs_used," of ",p.runs_limit," runs on the"," ",p.plan||"free"," plan. Upgrade to keep running agents."),x&&ee.default.createElement("p",{className:"text-sm text-red-600 mt-1"},x)),ee.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},ee.default.createElement("a",{href:"/pricing",className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),ee.default.createElement("button",{onClick:q,disabled:m,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},m?"Redirecting\u2026":"Upgrade to Pro"))),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("div",{className:"flex items-start space-x-4"},ee.default.createElement("div",{className:"flex-shrink-0"},ee.default.createElement(wt,{size:50})),ee.default.createElement("div",{className:"flex-1"},ee.default.createElement("textarea",{value:r,onChange:y=>n(y.target.value),onKeyDown:$,placeholder:"Enter your prompt here... (Cmd+Enter to run)",rows:4,disabled:u,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent resize-none"}),ee.default.createElement("div",{className:"flex items-center justify-between mt-3"},ee.default.createElement("div",{className:"flex items-center gap-3"},a.length>1&&ee.default.createElement("select",{value:i,onChange:y=>o(y.target.value),disabled:u,className:"px-2 py-1 border border-gray-300 rounded-lg text-sm font-mono text-gray-700 focus:ring-2 focus:ring-red-500",title:"Agent action to invoke"},a.map(y=>ee.default.createElement("option",{key:y,value:y},"#",y))),ee.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",ee.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"\u2318")," + ",ee.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run")),ee.default.createElement("button",{onClick:I,disabled:!r.trim()||u,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${r.trim()&&!u?"bg-emerald-500 text-white hover:bg-emerald-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},u?ee.default.createElement(ee.default.Fragment,null,ee.default.createElement("span",{className:"animate-spin",style:{fontFamily:_e.mono}},"[~]"),ee.default.createElement("span",null,"Running...")):ee.default.createElement(ee.default.Fragment,null,ee.default.createElement("span",{style:{fontFamily:_e.mono}},"[>]"),ee.default.createElement("span",null,"Run"))))))),ee.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},ee.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},ee.default.createElement("h3",{className:"font-medium text-gray-900"},"Output"),d&&ee.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},ee.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${X(d.status)}`},d.status),d.output_metadata?.model&&ee.default.createElement("span",{className:"px-2 py-0.5 rounded bg-indigo-50 text-indigo-700 text-xs font-mono",title:"Model that generated this run"},d.output_metadata.provider,"/",d.output_metadata.model),d.duration_ms&&ee.default.createElement("span",{className:"text-gray-400"},H(d.duration_ms)),d.total_tokens&&ee.default.createElement("span",{className:"text-gray-400"},d.total_tokens," tokens"),d.trace_id&&ee.default.createElement("a",{href:Je(`/traces?trace=${d.trace_id}`),className:"text-gray-400 hover:text-red-500 font-mono text-xs",title:`${d.trace_id} \u2014 open in Traces`},"trace:",d.trace_id.slice(0,8)," \u2192"))),ee.default.createElement("div",{ref:E,className:"flex-1 p-4 overflow-auto bg-gray-50 font-mono text-sm"},d?ee.default.createElement(ee.default.Fragment,null,z(d).length>0&&ee.default.createElement("div",{className:"mb-4 space-y-2"},z(d).map(y=>{let N=!!g[y.eid],O=!!(y.input||y.output),M=QZ(y.kind),A=xS(!1);return ee.default.createElement("div",{key:y.eid},ee.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${O?"cursor-pointer hover:bg-black/5":""}`,onClick:O?()=>b(k=>({...k,[y.eid]:!k[y.eid]})):void 0,title:O?"Click to inspect input/output":void 0,style:N?{background:"rgba(0,0,0,0.03)"}:{}},ee.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium flex-shrink-0 mt-0.5",style:{background:M.background,color:M.color,minWidth:"72px",textAlign:"center"}},M.label),ee.default.createElement("div",{className:"min-w-0 flex-1"},ee.default.createElement("div",{className:"text-sm break-words text-gray-800"},y.label,y.output&&!N&&ee.default.createElement("span",{className:"text-gray-400"}," \u201C",y.output.slice(0,160),y.output.length>160?"\u2026":"","\u201D")),ee.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap text-gray-400"},y.status==="started"?ee.default.createElement("span",{className:"text-blue-500 animate-pulse"},"running\u2026"):ee.default.createElement("span",{className:y.status==="error"?"text-red-500":""},y.status==="error"?"failed":"\u2713",y.duration_ms!=null&&` ${H(y.duration_ms)}`),y.at&&ee.default.createElement("span",null,new Date(y.at).toLocaleTimeString()))),O&&ee.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${N?"rotate-180":""} text-gray-400`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ee.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),N&&ee.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:M.color+"55"}},y.input&&ee.default.createElement("div",null,ee.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1 text-gray-400"},"Input"),ee.default.createElement("pre",{style:{...A,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},B(y.input))),y.output&&ee.default.createElement("div",null,ee.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1 text-gray-400"},y.status==="error"?"Error":"Result"),ee.default.createElement("pre",{style:{...A,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...y.status==="error"?{background:"#fef2f2",color:"#b91c1c"}:{}}},B(y.output)))))})),["pending","running"].includes(d.status)?ee.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},ee.default.createElement("span",{className:"animate-pulse"},"\u25CF"),ee.default.createElement("span",null,z(d).length>0?"Working\u2026":"Starting run\u2026")):d.error_message?ee.default.createElement("div",{className:"text-red-600"},ee.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),ee.default.createElement("pre",{className:"whitespace-pre-wrap"},d.error_message)):ee.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},d.output||"No output")):ee.default.createElement("div",{className:"text-gray-400 text-center py-12"},"Enter a prompt and click Run to test your agent")))),ee.default.createElement("div",{className:"space-y-4"},ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},ee.default.createElement(wt,{size:60}),ee.default.createElement("div",null,ee.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),ee.default.createElement("p",{className:"text-sm text-gray-500"},e.provider," / ",e.model))),ee.default.createElement("button",{onClick:t,className:"w-full px-4 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},"\u2190 Back to Editor")),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},"Configuration"),ee.default.createElement("dl",{className:"space-y-2 text-sm"},ee.default.createElement("div",{className:"flex justify-between"},ee.default.createElement("dt",{className:"text-gray-500"},"Temperature"),ee.default.createElement("dd",{className:"text-gray-900"},e.modelConfig?.temperature||e.model_config?.temperature||.7)),ee.default.createElement("div",{className:"flex justify-between"},ee.default.createElement("dt",{className:"text-gray-500"},"Tools"),ee.default.createElement("dd",{className:"text-gray-900"},e.tools?.length||0)),ee.default.createElement("div",{className:"flex justify-between"},ee.default.createElement("dt",{className:"text-gray-500"},"Status"),ee.default.createElement("dd",{className:`px-2 py-0.5 rounded text-xs ${e.status==="active"?"bg-green-100 text-green-700":"bg-gray-100 text-gray-600"}`},e.status))),e.instructions&&ee.default.createElement("div",{className:"mt-3 pt-3 border-t border-gray-100"},ee.default.createElement("div",{className:"text-xs text-gray-500 mb-1.5"},"System Instructions"),ee.default.createElement("p",{className:"text-xs text-gray-700 whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed"},e.instructions))),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ee.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},ee.default.createElement("h4",{className:"font-medium text-gray-900"},"Recent Runs")),ee.default.createElement("div",{className:"max-h-64 overflow-auto"},l.length>0?ee.default.createElement("div",{className:"divide-y divide-gray-100"},l.map(y=>ee.default.createElement("div",{key:y.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>f(y)},ee.default.createElement("div",{className:"flex items-center justify-between mb-1"},ee.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${X(y.status)}`},y.status),ee.default.createElement("span",{className:"text-xs text-gray-400"},H(y.duration_ms))),ee.default.createElement("p",{className:"text-sm text-gray-600 truncate"},y.input_preview||y.input_prompt?.substring(0,50)),ee.default.createElement("p",{className:"text-xs text-gray-400 mt-1 flex items-center gap-2 flex-wrap"},y.model&&ee.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},y.model),ee.default.createElement("span",null,new Date(y.created_at).toLocaleString()))))):ee.default.createElement("div",{className:"px-4 py-8 text-center text-gray-400 text-sm"},"No runs yet"))),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},"Example Prompts"),ee.default.createElement("div",{className:"space-y-2"},["Hello, what can you help me with?","List the files in the current directory","Explain how this code works"].map((y,N)=>ee.default.createElement("button",{key:N,onClick:()=>n(y),className:"w-full text-left px-3 py-2 text-sm text-gray-600 hover:bg-gray-50 rounded-lg transition-colors border border-gray-200"},y))))))}var fe=J(R()),JZ=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function DS({onSelectAgent:e}){let[t,r]=(0,fe.useState)(null),[n,a]=(0,fe.useState)(!0),[i,o]=(0,fe.useState)(30);(0,fe.useEffect)(()=>{l()},[i]);let l=async()=>{a(!0);try{let p=await(await fetch(`/api/analytics?days=${i}`)).json();r(p)}catch(f){console.error("Failed to load analytics:",f)}finally{a(!1)}},s=f=>f?f>=1e6?`${(f/1e6).toFixed(1)}M`:f>=1e3?`${(f/1e3).toFixed(1)}K`:f.toString():"0",u=f=>f?f<1e3?`${f}ms`:`${(f/1e3).toFixed(2)}s`:"-";if(n&&!t)return fe.default.createElement("div",{className:"flex items-center justify-center h-64"},fe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=t?.charts?.runs_by_day?.length>0?Math.max(...t.charts.runs_by_day.map(f=>f.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(f=>f.tokens)):1;return fe.default.createElement("div",{className:"space-y-6"},fe.default.createElement("div",{className:"flex items-center justify-between"},fe.default.createElement("div",null,fe.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),fe.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),fe.default.createElement("select",{value:i,onChange:f=>o(Number(f.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},JZ.map(f=>fe.default.createElement("option",{key:f.value,value:f.value},"Last ",f.label)))),fe.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},fe.default.createElement(Lf,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),fe.default.createElement(Lf,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),fe.default.createElement(Lf,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),fe.default.createElement(Lf,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),fe.default.createElement(Lf,{title:"Total Tokens",value:s(t?.summary?.total_tokens),subtitle:`${s(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),fe.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},fe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},fe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?fe.default.createElement("div",{className:"h-48"},fe.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((f,p)=>fe.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},fe.default.createElement("div",{className:"relative w-full"},fe.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${f.count/c*150}px`,minHeight:f.count>0?"4px":"0"}}),fe.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},f.count," runs"))))),fe.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},fe.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&new Date(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),fe.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&new Date(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):fe.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),fe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},fe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?fe.default.createElement("div",{className:"h-48"},fe.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((f,p)=>fe.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},fe.default.createElement("div",{className:"relative w-full"},fe.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${f.tokens/d*150}px`,minHeight:f.tokens>0?"4px":"0"}}),fe.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},s(f.tokens)," tokens"))))),fe.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},fe.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&new Date(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),fe.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&new Date(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):fe.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),fe.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},fe.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},fe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?fe.default.createElement("div",{className:"space-y-3"},t.top_agents.map((f,p)=>fe.default.createElement("div",{key:f.id,onClick:()=>e?.(f),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},fe.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},p+1),fe.default.createElement("div",{className:"flex-1 min-w-0"},fe.default.createElement("p",{className:"font-medium text-gray-900 truncate"},f.name),fe.default.createElement("p",{className:"text-sm text-gray-500"},f.run_count," runs")),fe.default.createElement("div",{className:"text-right"},fe.default.createElement("p",{className:"font-medium text-gray-900"},s(f.total_tokens)),fe.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):fe.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),fe.default.createElement("div",{className:"space-y-6"},fe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},fe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?fe.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([f,p])=>{let v=t?.summary?.total_runs||1,g=(p/v*100).toFixed(1);return fe.default.createElement("div",{key:f},fe.default.createElement("div",{className:"flex justify-between text-sm mb-1"},fe.default.createElement("span",{className:"capitalize text-gray-600"},f),fe.default.createElement("span",{className:"text-gray-900 font-medium"},p)),fe.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},fe.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${g}%`}})))})):fe.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),fe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},fe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),fe.default.createElement("div",{className:"space-y-4"},fe.default.createElement("div",{className:"flex justify-between items-center"},fe.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),fe.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_input_tokens))),fe.default.createElement("div",{className:"flex justify-between items-center"},fe.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),fe.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_output_tokens))),fe.default.createElement("div",{className:"pt-2 border-t border-gray-100"},fe.default.createElement("div",{className:"flex justify-between items-center"},fe.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),fe.default.createElement("span",{className:"font-bold text-gray-900"},s(t?.summary?.total_tokens)))))))))}function Lf({title:e,value:t,subtitle:r,color:n}){return fe.default.createElement("div",{className:`bg-white rounded-xl border border-gray-200 border-l-4 ${{rose:"border-l-red-500",blue:"border-l-blue-500",green:"border-l-green-500",purple:"border-l-purple-500",amber:"border-l-amber-500"}[n]} p-4`},fe.default.createElement("p",{className:"text-sm text-gray-500"},e),fe.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&fe.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var U=J(R());function PS({agent:e,onBack:t}){let{timeWindow:r}=ka(),[n,a]=(0,U.useState)([]),[i,o]=(0,U.useState)([]),[l,s]=(0,U.useState)(null),[u,c]=(0,U.useState)(null),[d,f]=(0,U.useState)([]),[p,v]=(0,U.useState)("run"),[g,b]=(0,U.useState)(!1),[m,h]=(0,U.useState)(!1),x=(0,U.useRef)(!1),w=(0,U.useRef)(!1),[E,C]=(0,U.useState)("recent"),[T,_]=(0,U.useState)({}),[I,z]=(0,U.useState)(!0),[B,$]=(0,U.useState)(1),[X,H]=(0,U.useState)(!0),[q,y]=(0,U.useState)(""),[N,O]=(0,U.useState)(""),[M,A]=(0,U.useState)("recent"),k=(0,U.useRef)(null),V=Je(`/agents/${e.id}/interactions`);(0,U.useEffect)(()=>{G()},[e.id,B,q,N,M,r.minutes]),(0,U.useEffect)(()=>{$(1)},[r.minutes]),(0,U.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then(j=>j.json()).then(j=>o(j.interactions||[])).catch(()=>{}).finally(()=>h(!0))},[e.id]),(0,U.useEffect)(()=>{let j=()=>{let he=window.location.pathname,ge=he.match(/\/interactions\/runs\/(\d+)/),xe=he.match(/\/interactions\/sessions\/(\d+)/);if(ge)v("run"),c(null),se(parseInt(ge[1],10),{updateUrl:!1});else if(xe)v("all"),c({id:parseInt(xe[1],10)});else if(he.endsWith("/interactions/sessions")||he.endsWith("/interactions/all"))he.endsWith("/all")&&window.history.replaceState({},"",he.replace(/\/all$/,"/sessions")),v("all"),c(null);else{x.current=!1,s(null),c(null),f([]);return}x.current=!0};return j(),window.addEventListener("popstate",j),()=>window.removeEventListener("popstate",j)},[e.id]),(0,U.useEffect)(()=>{x.current||w.current||!g||!m||v(n.length===0&&i.length>0?"all":"run")},[g,m,n.length,i.length]);let G=async()=>{z(!0);try{let j=new URLSearchParams({page:B.toString(),per_page:"20",minutes:String(r.minutes)});q&&j.append("status",q),N&&j.append("source",N),M!=="recent"&&j.append("sort",M);let ge=await(await fetch(`/api/agents/${e.id}/runs?${j}`)).json();a(B===1?ge.runs:xe=>[...xe,...ge.runs]),H(ge.runs.length===20)}catch(j){console.error("Failed to load runs:",j)}finally{z(!1),b(!0)}},Q=j=>{window.location.pathname!==j&&window.history.pushState({},"",j)},se=async(j,{updateUrl:he=!0}={})=>{try{let xe=await(await fetch(`/api/runs/${j}`)).json();s(xe.run),f(xe.messages||[]),v("run"),c(null),he&&Q(`${V}/runs/${j}`)}catch(ge){console.error("Failed to load run details:",ge)}},ue=j=>{if(j.source==="reported"){let he=j.trace_id||String(j.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",Je(`/traces/${he}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Je(`/traces/${he}`)}}));return}se(j.record_id||j.id)},pe=()=>{s(null),c(null),f([]),v("run"),Q(V)},Oe=j=>{v("all"),j?(c({id:j.id,name:j.display_name}),Q(`${V}/sessions/${j.id}`)):(c(null),Q(`${V}/sessions`))},ie=j=>{w.current=!0,v(j),Q(j==="all"?u?`${V}/sessions/${u.id}`:`${V}/sessions`:l?`${V}/runs/${l.id}`:V)},Ne=u?u.name||i.find(j=>j.id===u.id)?.display_name||`Session #${u.id}`:null,F=()=>{let j=new Map;n.forEach(xe=>{let Me=`${xe.model||"unknown"}|${xe.instructions_digest||"none"}`;j.has(Me)||j.set(Me,{key:Me,model:xe.model,instructionsDigest:xe.instructions_digest,instructionsVersion:xe.instructions_version,instructionsCodename:xe.instructions_codename,instructionsPreview:xe.instructions_preview,runs:[]}),j.get(Me).runs.push(xe)});let he=[...j.values()].map(xe=>({...xe,count:xe.runs.length,completed:xe.runs.filter(Me=>Me.status==="complete").length,failed:xe.runs.filter(Me=>Me.status==="failed").length,totalTokens:xe.runs.reduce((Me,Pr)=>Me+(Pr.tokens||0),0),avgTokens:xe.runs.reduce((Me,Pr)=>Me+(Pr.tokens||0),0)/xe.runs.length,avgDuration:xe.runs.reduce((Me,Pr)=>Me+(Pr.duration_ms||0),0)/xe.runs.length,latest:xe.runs[0],sortedRuns:[...xe.runs].sort((Me,Pr)=>(Pr.duration_ms||0)-(Me.duration_ms||0))}));he.sort((xe,Me)=>E==="longest"?Me.avgDuration-xe.avgDuration:new Date(Me.latest.created_at)-new Date(xe.latest.created_at));let ge={runs:n.length,completed:n.filter(xe=>xe.status==="complete").length,tokens:n.reduce((xe,Me)=>xe+(Me.tokens||0),0),avgDuration:n.length?n.reduce((xe,Me)=>xe+(Me.duration_ms||0),0)/n.length:0,models:[...new Set(n.map(xe=>xe.model).filter(Boolean))]};return{cohorts:he,totals:ge}},Y=j=>{switch(j){case"complete":return"bg-green-100 text-green-700";case"failed":return"bg-red-100 text-red-700";case"running":return"bg-blue-100 text-blue-700";case"pending":return"bg-yellow-100 text-yellow-700";case"cancelled":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},S=j=>j?j<1e3?`${j}ms`:j<6e4?`${(j/1e3).toFixed(1)}s`:`${Math.floor(j/6e4)}m ${Math.floor(j%6e4/1e3)}s`:"-",P=j=>j==null?"\u2014":j===0?"$0":j<.01?`$${j.toFixed(4)}`:`$${j.toFixed(2)}`,K=j=>{let he=new Date(j),xe=new Date-he,Me=Math.floor(xe/6e4),Pr=Math.floor(xe/36e5),Vf=Math.floor(xe/864e5);return Me<1?"Just now":Me<60?`${Me}m ago`:Pr<24?`${Pr}h ago`:Vf<7?`${Vf}d ago`:he.toLocaleDateString()};return U.default.createElement("div",{className:"flex h-full"},U.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},U.default.createElement("div",{className:"p-4 border-b border-gray-200"},U.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},U.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},U.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},U.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),U.default.createElement("div",null,U.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),U.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),U.default.createElement("div",{className:"mb-2"},U.default.createElement(Ta,{compact:!0})),U.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1 mb-2 text-sm"},[{value:"",label:"All"},{value:"dashboard",label:"Dashboard"},{value:"reported",label:"Reported"}].map(j=>U.default.createElement("button",{key:j.value||"all",onClick:()=>{O(j.value),$(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${N===j.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:j.value==="dashboard"?"Executions started from this dashboard":j.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},j.label))),U.default.createElement("select",{value:q,onChange:j=>{y(j.target.value),$(1)},className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},U.default.createElement("option",{value:""},"All statuses"),U.default.createElement("option",{value:"complete"},"Completed"),U.default.createElement("option",{value:"failed"},"Failed"),U.default.createElement("option",{value:"running"},"Running"),U.default.createElement("option",{value:"cancelled"},"Cancelled")),U.default.createElement("select",{value:M,onChange:j=>{A(j.target.value),$(1)},className:"w-full mt-2 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",title:"Rank these executions"},U.default.createElement("option",{value:"recent"},"Most recent"),U.default.createElement("option",{value:"longest"},"Longest running"),U.default.createElement("option",{value:"cost"},"Highest cost"),U.default.createElement("option",{value:"tokens"},"Most tokens"))),U.default.createElement("div",{className:"flex-1 overflow-auto"},I&&n.length===0?U.default.createElement("div",{className:"flex items-center justify-center h-32"},U.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?U.default.createElement(U.default.Fragment,null,n.map(j=>{let he=j.source==="reported";return U.default.createElement("div",{key:j.id,onClick:()=>ue(j),title:he?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!he&&l?.id===j.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},U.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},U.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Y(j.status)}`},j.status),U.default.createElement("div",{className:"flex items-center gap-2"},U.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${he?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},he?"reported":"dashboard"),U.default.createElement("span",{className:"text-xs text-gray-400"},K(j.created_at||j.occurred_at)))),U.default.createElement("p",{className:"text-sm text-gray-700 truncate"},j.input_preview||j.input_prompt?.substring(0,60)||(he?`${j.action_name||"execution"} \xB7 trace ${String(j.trace_id||"").slice(0,8)}`:"No input")),U.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},j.model&&U.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},j.model),U.default.createElement("span",{className:M==="longest"?"text-gray-700 font-medium":void 0},S(j.duration_ms)),!!j.tokens&&U.default.createElement("span",{className:M==="tokens"?"text-gray-700 font-medium":void 0},j.tokens," tokens"),j.cost!=null&&U.default.createElement("span",{className:M==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},P(j.cost))))}),X&&U.default.createElement("button",{onClick:()=>$(j=>j+1),disabled:I,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},I?"Loading...":"Load More")):U.default.createElement("div",{className:"p-8 text-center text-gray-400"},U.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},U.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})),U.default.createElement("p",null,"No conversations yet")))),U.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},U.default.createElement("div",{className:"px-4 py-2 bg-white border-b border-gray-100 flex items-center gap-1.5 text-xs text-gray-500"},U.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),U.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"||l?U.default.createElement(U.default.Fragment,null,U.default.createElement("button",{onClick:pe,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),U.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"?u?U.default.createElement(U.default.Fragment,null,U.default.createElement("button",{onClick:()=>Oe(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),U.default.createElement("span",{className:"text-gray-300"},"/"),U.default.createElement("span",{className:"text-gray-900 font-medium"},Ne)):U.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):U.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",l.id)):U.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),U.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},U.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},U.default.createElement("button",{onClick:()=>ie("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),U.default.createElement("button",{onClick:()=>ie("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),p==="run"&&l&&U.default.createElement("span",{className:`px-3 py-1 rounded-full text-sm font-medium ${Y(l.status)}`},l.status)),p==="all"?U.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:j}=F();return U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},U.default.createElement("div",{className:"flex items-center gap-3"},U.default.createElement(wt,{size:40}),U.default.createElement("div",null,U.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),U.default.createElement("p",{className:"text-xs text-gray-500"},u?`${Ne} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),U.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},U.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),U.default.createElement("p",{className:"text-lg font-bold text-gray-900"},j.runs)),U.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),U.default.createElement("p",{className:"text-lg font-bold text-gray-900"},j.runs?Math.round(j.completed/j.runs*100):0,"%")),U.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),U.default.createElement("p",{className:"text-lg font-bold text-gray-900"},S(Math.round(j.avgDuration)))),U.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),U.default.createElement("p",{className:"text-lg font-bold text-gray-900"},j.tokens.toLocaleString()))))})(),U.default.createElement(Si,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:Oe})):l?U.default.createElement(U.default.Fragment,null,U.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},U.default.createElement("div",{className:"flex items-center space-x-3"},U.default.createElement(wt,{size:40}),U.default.createElement("div",null,U.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",l.id),U.default.createElement("p",{className:"text-xs text-gray-500"},new Date(l.created_at).toLocaleString())))),U.default.createElement("div",{ref:k,className:"flex-1 overflow-auto p-6"},U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?U.default.createElement(Da,{messages:d,darkMode:!1}):U.default.createElement(Da,{darkMode:!1,messages:[{id:`run-${l.id}-input`,role:"user",content:l.input_prompt||l.input_preview,created_at:l.created_at},{id:`run-${l.id}-output`,role:"assistant",content:l.error_message||l.output||l.output_preview||"No response",created_at:l.completed_at||l.created_at}]}))),U.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},U.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},U.default.createElement("span",null,"Duration: ",S(l.duration_ms)),l.total_tokens&&U.default.createElement("span",null,"Tokens: ",l.total_tokens),l.input_tokens&&l.output_tokens&&U.default.createElement("span",null,"Input: ",l.input_tokens," / Output: ",l.output_tokens),l.trace_id&&U.default.createElement("a",{href:Je(`/traces?trace=${l.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${l.trace_id} \u2014 open in Traces`},"trace:",l.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:j,totals:he}=F();return j.length===0?U.default.createElement("div",{className:"flex-1 flex items-center justify-center"},U.default.createElement("div",{className:"text-center text-gray-400"},U.default.createElement(wt,{size:100}),U.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):U.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},U.default.createElement("div",{className:"flex items-center gap-3"},U.default.createElement(wt,{size:40}),U.default.createElement("div",null,U.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),U.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),U.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),U.default.createElement("p",{className:"text-xl font-bold text-gray-900"},he.runs)),U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),U.default.createElement("p",{className:"text-xl font-bold text-gray-900"},he.runs?Math.round(he.completed/he.runs*100):0,"%")),U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),U.default.createElement("p",{className:"text-xl font-bold text-gray-900"},S(Math.round(he.avgDuration)))),U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},U.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),U.default.createElement("p",{className:"text-xl font-bold text-gray-900"},he.tokens.toLocaleString()))),he.models.length>0&&U.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},U.default.createElement("span",{className:"text-gray-500"},"Models used:"),he.models.map(ge=>U.default.createElement("span",{key:ge,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},ge))),i.length>0&&U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},U.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},U.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),U.default.createElement("div",{className:"divide-y divide-gray-100"},i.map(ge=>U.default.createElement("div",{key:ge.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer flex items-center justify-between gap-3",onClick:()=>Oe(ge),title:"Open this session's interaction stream"},U.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:ge.display_name},U.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),U.default.createElement("span",{className:"text-sm text-gray-900 truncate"},ge.agent?.name||ge.agent_name),ge.action_name&&U.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 font-mono text-xs flex-shrink-0"},"#",ge.action_name)),U.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},U.default.createElement("span",null,ge.message_count," messages"),U.default.createElement("span",null,(ge.tokens?.total||0).toLocaleString()," tokens"),U.default.createElement("span",null,K(ge.last_activity_at))))))),U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},U.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},U.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),U.default.createElement("select",{value:E,onChange:ge=>C(ge.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},U.default.createElement("option",{value:"recent"},"Most recent"),U.default.createElement("option",{value:"longest"},"Longest interactions"))),U.default.createElement("div",{className:"divide-y divide-gray-100"},j.map(ge=>U.default.createElement("div",{key:ge.key},U.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>_(xe=>({...xe,[ge.key]:!xe[ge.key]})),title:"Show this configuration's runs"},U.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},U.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono text-xs"},ge.model||"unknown model"),U.default.createElement("span",{className:"text-xs text-gray-400 font-mono",title:ge.instructionsDigest?`sha:${ge.instructionsDigest}`:void 0},"instructions"," ",ge.instructionsDigest?[ge.instructionsVersion,ge.instructionsCodename||ge.instructionsDigest].filter(Boolean).join(" \xB7 "):"n/a")),ge.instructionsPreview&&U.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},ge.instructionsPreview),U.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},U.default.createElement("span",null,ge.count," run",ge.count>1?"s":""),U.default.createElement("span",{className:ge.failed>0?"text-red-500":"text-green-600"},ge.count?Math.round(ge.completed/ge.count*100):0,"% success"),U.default.createElement("span",null,"avg ",S(Math.round(ge.avgDuration))),U.default.createElement("span",null,"avg ",Math.round(ge.avgTokens).toLocaleString()," tokens"),U.default.createElement("span",null,"last ",K(ge.latest.created_at)))),T[ge.key]&&U.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},ge.sortedRuns.map(xe=>U.default.createElement("div",{key:xe.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>se(xe.id),title:"Open this run's interaction"},U.default.createElement("p",{className:"text-xs text-gray-700 truncate"},xe.input_preview||"No input"),U.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},U.default.createElement("span",{className:xe.status==="failed"?"text-red-500":""},xe.status),U.default.createElement("span",null,S(xe.duration_ms)),xe.tokens&&U.default.createElement("span",null,xe.tokens.toLocaleString()," tokens"),U.default.createElement("span",null,K(xe.created_at)))))))))))})()))}var Ae=J(R());var RZ={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function jS({onUseTemplate:e,onClose:t}){let[r,n]=(0,Ae.useState)([]),[a,i]=(0,Ae.useState)([]),[o,l]=(0,Ae.useState)(""),[s,u]=(0,Ae.useState)(null),[c,d]=(0,Ae.useState)(!0),[f,p]=(0,Ae.useState)(!1);(0,Ae.useEffect)(()=>{v()},[o]);let v=async()=>{d(!0);try{let b=new URLSearchParams;o&&b.append("category",o);let h=await(await fetch(`/api/templates?${b}`)).json();n(h.templates),i(h.categories)}catch(b){console.error("Failed to load templates:",b)}finally{d(!1)}},g=async b=>{p(!0);try{let m=await fetch(`/api/templates/${b.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b.name})});if(m.ok){let h=await m.json();e(h.agent)}}catch(m){console.error("Failed to create agent from template:",m)}finally{p(!1)}};return Ae.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},Ae.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},Ae.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},Ae.default.createElement("div",null,Ae.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),Ae.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),Ae.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},Ae.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ae.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),Ae.default.createElement("div",{className:"flex-1 flex overflow-hidden"},Ae.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},Ae.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),Ae.default.createElement("div",{className:"space-y-1"},Ae.default.createElement("button",{onClick:()=>l(""),className:`w-full text-left px-3 py-2 rounded-lg text-sm transition-colors ${o?"text-gray-600 hover:bg-gray-50":"bg-red-50 text-red-600"}`},"All Templates"),a.map(b=>Ae.default.createElement("button",{key:b,onClick:()=>l(b),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${o===b?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},Ae.default.createElement("span",null,RZ[b]||"\u{1F4E6}"),Ae.default.createElement("span",{className:"capitalize"},b))))),Ae.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?Ae.default.createElement("div",{className:"flex items-center justify-center h-full"},Ae.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?Ae.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(b=>Ae.default.createElement("div",{key:b.id,onClick:()=>u(b),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${s?.id===b.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},Ae.default.createElement("div",{className:"flex items-start space-x-3"},Ae.default.createElement("div",{className:"flex-shrink-0"},Ae.default.createElement(wt,{size:60})),Ae.default.createElement("div",{className:"flex-1 min-w-0"},Ae.default.createElement("div",{className:"flex items-center space-x-2"},Ae.default.createElement("span",{className:"text-lg"},b.icon),Ae.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},b.name)),Ae.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},b.description),Ae.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},Ae.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},b.category),b.featured&&Ae.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):Ae.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),s&&Ae.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},Ae.default.createElement("div",{className:"flex justify-center mb-4"},Ae.default.createElement(wt,{size:120})),Ae.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},s.name),Ae.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},s.description),Ae.default.createElement("div",{className:"mt-6 space-y-4"},Ae.default.createElement("div",null,Ae.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),Ae.default.createElement("p",{className:"text-sm text-gray-900"},s.provider," / ",s.model)),s.tools?.length>0&&Ae.default.createElement("div",null,Ae.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),Ae.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},s.tools.map(b=>Ae.default.createElement("span",{key:b,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},b)))),Ae.default.createElement("div",null,Ae.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),Ae.default.createElement("p",{className:"text-sm text-gray-900"},s.usage_count," agents created"))),Ae.default.createElement("button",{onClick:()=>g(s),disabled:f,className:"w-full mt-6 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50"},f?"Creating...":"Use This Template")))))}var we=J(R());function IS({currentView:e,onNavigate:t,agentCount:r,account:n,user:a,gemVersion:i}){let{darkMode:o}=it(),[l,s]=(0,we.useState)(!1),u=(0,we.useRef)(null);(0,we.useEffect)(()=>{function b(m){u.current&&!u.current.contains(m.target)&&s(!1)}return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[]);let c=n?.name||"My Workspace",d=a?.name||a?.email?.split("@")[0]||"User",f=[{id:"list",label:"Agents",icon:Rt.nav.agents,badge:r},{id:"builder",label:"New Agent",icon:Rt.nav.newAgent},{id:"sandbox",label:"Run Agents",icon:Rt.nav.demo,highlight:!0}],p=[{id:"traces",label:"Traces",icon:Rt.nav.traces},{id:"interactions",label:"Interactions",icon:Rt.nav.interactions},{id:"metrics",label:"Metrics",icon:Rt.nav.metrics},{id:"evaluations",label:"Evaluations",icon:Rt.nav.evaluations},{id:"replay",label:"Session Replay",icon:Rt.nav.replay}],v=[{id:"organization",label:"Organization",icon:"\u{1F3E2}"},{id:"settings",label:"Settings",icon:"\u2699\uFE0F"}],g=({item:b})=>we.default.createElement("button",{onClick:()=>t(b.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${b.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===b.id?o?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===b.id?"#ef4444":o?"#d1d5db":"#374151"},onMouseEnter:m=>{e!==b.id&&(m.currentTarget.style.backgroundColor=o?"#252525":"#f3f4f6")},onMouseLeave:m=>{e!==b.id&&(m.currentTarget.style.backgroundColor="transparent")}},we.default.createElement("div",{className:"flex items-center space-x-3"},we.default.createElement("span",{style:{fontFamily:_e.mono,fontSize:"12px",width:"20px",textAlign:"center"}},b.icon),we.default.createElement("span",{className:"font-medium"},b.label)),b.badge!==void 0&&we.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===b.id?"#fee2e2":o?"#2a2a2a":"#f3f4f6",color:e===b.id?"#ef4444":o?"#d1d5db":"#4b5563"}},b.badge));return we.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:o?"#1a1a1a":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"}},we.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:o?"#2a2a2a":"#e5e7eb"},ref:u},we.default.createElement("button",{onClick:()=>s(!l),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:l?o?"#252525":"#f3f4f6":"transparent"}},we.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},we.default.createElement(wt,{size:28}),we.default.createElement("span",{className:`font-semibold truncate ${o?"text-white":"text-gray-900"}`},c)),we.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${l?"rotate-180":""}`,style:{color:o?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},we.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),l&&we.default.createElement("div",{className:"absolute left-4 right-4 top-14 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:o?"#1a1a1a":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"}},we.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},we.default.createElement("div",{className:"flex items-center space-x-3"},we.default.createElement(wt,{size:32}),we.default.createElement("div",{className:"min-w-0"},we.default.createElement("div",{className:`font-medium truncate ${o?"text-white":"text-gray-900"}`},c)))),we.default.createElement("div",{className:"py-1"},we.default.createElement("button",{onClick:()=>{t("settings"),s(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${o?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},we.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},we.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),we.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),we.default.createElement("span",null,"Settings")),we.default.createElement("button",{onClick:()=>{t("organization"),s(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${o?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},we.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},we.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})),we.default.createElement("span",null,"Organization"))),we.default.createElement("div",{className:"border-t py-1",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},we.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${o?"text-gray-300":"text-gray-700"}`},we.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},we.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),we.default.createElement("span",{className:"text-sm"},d))))),we.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},we.default.createElement("div",{className:"space-y-1"},f.map(b=>we.default.createElement(g,{key:b.id,item:b}))),we.default.createElement("div",{className:"pt-4"},we.default.createElement("div",{className:"px-4 pb-2"},we.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${o?"text-gray-500":"text-gray-400"}`},"Observability")),we.default.createElement("div",{className:"space-y-1"},p.map(b=>we.default.createElement(g,{key:b.id,item:b})))),we.default.createElement("div",{className:"pt-4"},we.default.createElement("div",{className:"px-4 pb-2"},we.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${o?"text-gray-500":"text-gray-400"}`},"Workspace")),we.default.createElement("div",{className:"space-y-1"},v.map(b=>we.default.createElement(g,{key:b.id,item:b}))))),we.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},we.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${o?"text-gray-500":"text-gray-400"}`},"Resources"),we.default.createElement("div",{className:"space-y-2"},we.default.createElement("a",{href:"https://docs.activeagents.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${o?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},we.default.createElement("span",{style:{fontFamily:_e.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Rt.nav.docs),we.default.createElement("span",null,"Documentation")),we.default.createElement("a",{href:"https://github.com/activeagents/activeagent",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${o?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},we.default.createElement("span",{style:{fontFamily:_e.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Rt.nav.github),we.default.createElement("span",null,"GitHub")))),we.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},we.default.createElement("div",{className:`text-xs ${o?"text-gray-500":"text-gray-400"}`},"Active Agent ",i?`v${i}`:"")))}var Ye=J(R());function zS({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=it(),[a,i]=(0,Ye.useState)(!1),o=(0,Ye.useRef)(null);(0,Ye.useEffect)(()=>{function c(d){o.current&&!o.current.contains(d.target)&&i(!1)}return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[]);let l=()=>{let c=document.querySelector('meta[name="csrf-token"]')?.content,d=document.createElement("form");d.method="POST",d.action="/session";let f=document.createElement("input");f.type="hidden",f.name="_method",f.value="delete",d.appendChild(f);let p=document.createElement("input");p.type="hidden",p.name="authenticity_token",p.value=c,d.appendChild(p),document.body.appendChild(d),d.submit()},s=e?.name||e?.email?.split("@")[0]||"User",u=s.charAt(0).toUpperCase();return Ye.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},Ye.default.createElement("div",{className:"flex items-center space-x-4"}),Ye.default.createElement("div",{className:"flex items-center space-x-4"},Ye.default.createElement("button",{onClick:n,className:"p-2 rounded-lg transition-colors",style:{backgroundColor:r?"#252525":"#f3f4f6",color:r?"#fbbf24":"#4b5563"},title:r?"Switch to light mode":"Switch to dark mode"},r?Ye.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},Ye.default.createElement("path",{fillRule:"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z",clipRule:"evenodd"})):Ye.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},Ye.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),Ye.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},Ye.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),Ye.default.createElement("span",null,"Connected")),Ye.default.createElement("div",{className:"relative",ref:o},Ye.default.createElement("button",{onClick:()=>i(!a),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:a?r?"#252525":"#f3f4f6":"transparent"}},Ye.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},Ye.default.createElement("span",{className:"text-red-600 font-medium text-sm"},u))),a&&Ye.default.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},Ye.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Ye.default.createElement("div",{className:"flex items-center space-x-3"},Ye.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},Ye.default.createElement("span",{className:"text-red-600 font-medium"},u)),Ye.default.createElement("div",null,Ye.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},s),Ye.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),Ye.default.createElement("div",{className:"py-1"},Ye.default.createElement("button",{onClick:l,className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${r?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},Ye.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ye.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})),Ye.default.createElement("span",null,"Sign out")))))))}var ve=J(R());var eQ=6e4,KP=e=>{if(!e||e.length<2)return"";let t=Math.max(...e,1),r=100/(e.length-1);return e.map((n,a)=>`${(a*r).toFixed(1)},${(28-n/t*26+1).toFixed(1)}`).join(" ")},LS=[{value:"popular",label:"Requests",column:"requests"},{value:"tokens",label:"Tokens",column:"tokens"},{value:"cost",label:"Cost",column:"cost"},{value:"longest",label:"Avg Duration",column:"avg_duration_ms"},{value:"errors",label:"Errors",column:"errors"}];function BS(){let{darkMode:e}=it(),[t,r]=(0,ve.useState)(null),[n,a]=(0,ve.useState)(!0),[i,o]=(0,ve.useState)(null),[l,s]=(0,ve.useState)("popular"),u=(0,ve.useCallback)(async()=>{try{let _=await fetch(`/api/metrics?hours=24&sort=${l}`);if(!_.ok)throw new Error(`Request failed (${_.status})`);let I=await _.json();r(I),o(null)}catch(_){o(_.message)}finally{a(!1)}},[l]);if((0,ve.useEffect)(()=>{u();let _=setInterval(u,eQ);return()=>clearInterval(_)},[u]),n)return ve.default.createElement("div",{className:"flex items-center justify-center h-64"},ve.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=_=>_==null?"0":_>=1e6?(_/1e6).toFixed(1)+"M":_>=1e3?(_/1e3).toFixed(1)+"K":_.toString(),d=_=>_?_<.01?"<$0.01":`$${_.toFixed(2)}`:"$0.00",f={bg:e?"transparent":"#f9fafb",cardBg:e?"rgba(255,255,255,0.05)":"#ffffff",border:e?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:e?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:e?"#ffffff":"#111827",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",textCell:e?"rgba(255,255,255,0.7)":"#4b5563",trendUp:"#16a34a",trendDown:"#dc2626",tokenIn:"#2563eb",tokenOut:"#7c3aed",tokenThinking:"#d97706",badgeBg:e?"rgba(239, 68, 68, 0.2)":"#fef2f2",badgeText:"#ef4444"};if(i||!t)return ve.default.createElement("div",{style:{padding:"24px"}},ve.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:f.textPrimary,margin:0}},"Metrics"),ve.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:f.badgeBg,borderRadius:"8px",color:f.badgeText,fontSize:"14px"}},"Failed to load metrics",i?`: ${i}`:""));let{summary:p,hourly_requests:v=[],by_agent:g=[]}=t,b=v.map(_=>_.count),m=v.map(_=>_.avg_latency_ms),h=Math.max(...b,1),x=p.total_requests===0,w=(_,I=!1)=>{if(_==null)return null;let z=_>=0;return ve.default.createElement("div",{style:{fontSize:"13px",color:(I?!z:z)?f.trendUp:f.trendDown,marginTop:"8px"}},z?"\u2191":"\u2193"," ",Math.abs(_),"% vs previous 24h")},E=LS.find(_=>_.value===l)?.column,C=_=>({padding:"12px 0",textAlign:"right",color:f.textCell,fontWeight:_===E?"600":"400"}),T=({label:_,children:I,trend:z,sparkline:B,sparklineColor:$})=>ve.default.createElement("div",{style:{background:f.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${f.border}`}},ve.default.createElement("div",{style:{fontSize:"11px",color:f.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},_),I,z,B&&ve.default.createElement("div",{style:{marginTop:"16px",height:"40px"}},ve.default.createElement("svg",{viewBox:"0 0 100 30",style:{width:"100%",height:"100%"},preserveAspectRatio:"none"},ve.default.createElement("polyline",{points:B,fill:"none",stroke:$,strokeWidth:"2"}))));return ve.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:f.bg}},ve.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:`1px solid ${f.border}`,marginBottom:"16px",paddingBottom:"16px"}},ve.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:f.textPrimary,margin:0}},"Metrics"),ve.default.createElement("p",{style:{fontSize:"14px",color:f.textSecondary,marginTop:"4px"}},"Requests, latency, errors and token usage \u2014 last 24 hours")),ve.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},ve.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:"16px",marginBottom:"16px"}},ve.default.createElement(T,{label:"Total Requests",trend:w(p.requests_change),sparkline:KP(b),sparklineColor:"#ef4444"},ve.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},c(p.total_requests))),ve.default.createElement(T,{label:"Avg Latency",trend:w(p.latency_change,!0),sparkline:KP(m),sparklineColor:"#22c55e"},ve.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},p.avg_latency_ms,ve.default.createElement("span",{style:{fontSize:"14px",color:f.textMuted,marginLeft:"4px"}},"ms"))),ve.default.createElement(T,{label:"Error Rate"},ve.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:p.error_rate>5?"#ef4444":f.textPrimary,fontFamily:"monospace"}},p.error_rate,ve.default.createElement("span",{style:{fontSize:"14px",color:f.textMuted,marginLeft:"4px"}},"%")),ve.default.createElement("div",{style:{fontSize:"13px",color:f.textSecondary,marginTop:"8px"}},p.errors," error",p.errors===1?"":"s"," in period")),ve.default.createElement(T,{label:"Total Cost"},ve.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},d(p.total_cost)),ve.default.createElement("div",{style:{fontSize:"13px",color:f.textSecondary,marginTop:"8px"}},"estimated, this period")),ve.default.createElement(T,{label:"Tokens Used"},ve.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},c(p.tokens_used)),ve.default.createElement("div",{style:{fontSize:"13px",marginTop:"8px",display:"flex",gap:"12px",flexWrap:"wrap"}},ve.default.createElement("span",{style:{color:f.tokenIn}},"\u2193 ",c(p.tokens_input)),ve.default.createElement("span",{style:{color:f.tokenOut}},"\u2191 ",c(p.tokens_output)),p.tokens_thinking>0&&ve.default.createElement("span",{style:{color:f.tokenThinking}},"\u{1F9E0} ",c(p.tokens_thinking)))),ve.default.createElement(T,{label:"Active Agents"},ve.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},p.unique_agents),ve.default.createElement("div",{style:{fontSize:"13px",color:f.textSecondary,marginTop:"8px"}},"with traffic in period"))),ve.default.createElement("div",{style:{background:f.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${f.border}`,marginBottom:"16px"}},ve.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"16px"}},ve.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:f.textPrimary}},"Requests / Hour"),ve.default.createElement("span",{style:{fontSize:"13px",color:f.textSecondary}},"Last 24h")),ve.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",justifyContent:"space-between",height:"120px",gap:"4px"}},v.map((_,I)=>ve.default.createElement("div",{key:I,style:{flex:1,height:`${Math.max(_.count/h*100,2)}%`,background:_.active?"linear-gradient(180deg, #ef4444 0%, #dc2626 100%)":"linear-gradient(180deg, #fca5a5 0%, #f87171 100%)",opacity:_.count===0&&!_.active?.25:1,borderRadius:"4px 4px 0 0",transition:"all 0.2s ease"},title:`${_.count} requests at ${_.hour}`}))),ve.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginTop:"8px"}},v.map((_,I)=>ve.default.createElement("span",{key:I,style:{flex:1,textAlign:"center",fontSize:"10px",color:f.textMuted}},I%4===0||_.active?_.active?"Now":_.hour:"")))),ve.default.createElement("div",{style:{background:f.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${f.border}`}},ve.default.createElement("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"16px",gap:"12px",flexWrap:"wrap"}},ve.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:f.textPrimary,margin:0}},"Agent Statistics"),ve.default.createElement("span",{style:{fontSize:"12px",color:f.textMuted}},"Ranked by ",LS.find(_=>_.value===l)?.label.toLowerCase()," \u2014 click a column to change")),g.length===0?ve.default.createElement("div",{style:{textAlign:"center",padding:"24px 0",color:f.textSecondary,fontSize:"14px"}},x?"No traffic yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No per-agent data for this period"):ve.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},ve.default.createElement("thead",null,ve.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:f.textSecondary,borderBottom:`1px solid ${f.border}`}},ve.default.createElement("th",{style:{paddingBottom:"12px",fontWeight:"500"}},"Agent"),LS.map(_=>{let I=l===_.value;return ve.default.createElement("th",{key:_.value,style:{paddingBottom:"12px",fontWeight:"500",textAlign:"right"}},ve.default.createElement("button",{onClick:()=>s(_.value),title:`Rank agents by ${_.label.toLowerCase()}`,style:{background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit",fontWeight:I?"600":"500",color:I?f.textPrimary:f.textSecondary}},_.label,I?" \u2193":""))}))),ve.default.createElement("tbody",null,g.map((_,I)=>ve.default.createElement("tr",{key:_.name,style:{borderBottom:I0?f.badgeText:f.textCell}},_.errors))))))))}var L=J(R());var bo=J(R());var hy={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},_t={log(...e){this.enabled&&(e.push(Date.now()),hy.logger.log("[ActionCable]",...e))}},Uf=()=>new Date().getTime(),vy=e=>(Uf()-e)/1e3,$f=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=Uf(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),_t.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=Uf(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),_t.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=Uf()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,_t.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=Uf(),_t.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){let{staleThreshold:t,reconnectionBackoffRate:r}=this.constructor,n=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),i=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+i)}reconnectIfStale(){this.connectionIsStale()&&(_t.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${vy(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?_t.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${vy(this.disconnectedAt)} s`):(_t.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return vy(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&vy(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(_t.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};$f.staleThreshold=6;$f.reconnectionBackoffRate=.15;var XP={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},{message_types:Bf,protocols:US}=XP,tQ=US.slice(0,US.length-1),GP=[].indexOf,Hf=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new $f(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return _t.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...US,...this.consumer.subprotocols||[]];return _t.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new hy.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(_t.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){_t.log("Failed to reopen WebSocket",t)}finally{_t.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return GP.call(tQ,this.getProtocol())>=0}isState(...t){return GP.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in hy.WebSocket)if(hy.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase()}return null}installEventHandlers(){for(let t in this.events){let r=this.events[t].bind(this);this.webSocket[`on${t}`]=r}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}};Hf.reopenDelay=500;Hf.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:a,type:i}=JSON.parse(e.data);switch(this.monitor.recordMessage(),i){case Bf.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case Bf.disconnect:return _t.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:a});case Bf.ping:return null;case Bf.confirmation:return this.subscriptions.confirmSubscription(t),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(t,"connected",{reconnected:!0})):this.subscriptions.notify(t,"connected",{reconnected:!1});case Bf.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(_t.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return _t.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(_t.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){_t.log("WebSocket onerror event")}};var rQ=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},$S=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),rQ(this,n)}perform(t,r={}){return r.action=t,this.send(r)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}},HS=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(_t.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):_t.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){_t.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((r=>r!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map((t=>{_t.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},VS=class{constructor(t){this.consumer=t,this.guarantor=new HS(this),this.subscriptions=[]}create(t,r){let n=t,a=typeof n=="object"?n:{channel:n},i=new $S(this.consumer,a,r);return this.add(i)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((r=>(this.forget(r),this.notify(r,"rejected"),r)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((r=>r!==t)),t}findAll(t){return this.subscriptions.filter((r=>r.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...r){return this.subscriptions.map((n=>this.notify(n,t,...r)))}notify(t,r,...n){let a;return typeof t=="string"?a=this.findAll(t):a=[t],a.map((i=>typeof i[r]=="function"?i[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){_t.log(`Subscription confirmed ${t}`),this.findAll(t).map((r=>this.guarantor.forget(r)))}sendCommand(t,r){let{identifier:n}=t;return this.consumer.send({command:r,identifier:n})}},FS=class{constructor(t){this._url=t,this.subscriptions=new VS(this),this.connection=new Hf(this),this.subprotocols=[]}get url(){return nQ(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}};function nQ(e){if(typeof e=="function"&&(e=e()),e&&!/^wss?:/i.test(e)){let t=document.createElement("a");return t.href=e,t.href=t.href,t.protocol=t.protocol.replace("http","ws"),t.href}else return e}function ZP(e=aQ("url")||XP.default_mount_path){return new FS(e)}function aQ(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var gy=null;function iQ(){if(gy===null)try{gy=ZP()}catch{gy=!1}return gy||null}function QP(e,t,r,n=!0){let a=(0,bo.useRef)(null),i=(0,bo.useRef)(r);return(0,bo.useEffect)(()=>{i.current=r},[r]),(0,bo.useEffect)(()=>{if(!n||!e)return;let l=iQ();return a.current=l.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(s){console.log(`[ActionCable] Received on ${e}:`,s),i.current&&i.current(s)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{a.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),a.current.unsubscribe(),a.current=null)}},[e,JSON.stringify(t),n]),{send:(0,bo.useCallback)((l,s)=>{a.current&&a.current.perform(l,s)},[])}}var yy=[{id:"anthropic",name:"Anthropic",model:"claude-haiku-4-5",color:"bg-orange-500"},{id:"openai",name:"OpenAI",model:"gpt-4o",color:"bg-green-500"},{id:"ollama",name:"Ollama",model:"llama3.1:8b",color:"bg-purple-500"}],oQ={playwright_mcp:[{name:"Screenshot Example.com",task:"Take a screenshot of https://example.com",description:"Navigate to example.com and capture a screenshot"},{name:"Extract Hacker News Headlines",task:"Go to https://news.ycombinator.com and list the top 5 story titles with their scores",description:"Scrape the front page of Hacker News"},{name:"Check Wikipedia",task:"Navigate to https://en.wikipedia.org/wiki/Artificial_intelligence and extract the first paragraph",description:"Extract content from Wikipedia"},{name:"GitHub Trending",task:"Visit https://github.com/trending and list the top 3 trending repositories",description:"Check GitHub's trending repositories"}],comparison:[{name:"Explain Ruby Blocks",task:"Explain how Ruby blocks work with a simple example",description:"Compare how each model explains Ruby concepts"},{name:"Write a Haiku",task:"Write a haiku about programming",description:"Compare creative output across models"},{name:"Debug This Code",task:"What's wrong with this code? def add(a, b); a - b; end; puts add(2, 3)",description:"Compare debugging abilities"},{name:"Summarize AI",task:"Summarize the current state of AI in 3 sentences",description:"Compare factual knowledge and conciseness"}]},JP={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function YS({initialType:e="playwright_mcp",onClose:t}){let[r,n]=(0,L.useState)(e),[a,i]=(0,L.useState)(null),[o,l]=(0,L.useState)(""),[s,u]=(0,L.useState)([]),[c,d]=(0,L.useState)(null),[f,p]=(0,L.useState)(!1),[v,g]=(0,L.useState)(!1),[b,m]=(0,L.useState)(null),[h,x]=(0,L.useState)(null),[w,E]=(0,L.useState)(!1),[C,T]=(0,L.useState)(null),[_,I]=(0,L.useState)(!1),z=(0,L.useRef)(null),[B,$]=(0,L.useState)(["anthropic"]),[X,H]=(0,L.useState)(!1),[q,y]=(0,L.useState)({}),[N,O]=(0,L.useState)([]),M=(0,L.useCallback)(S=>{switch(console.log("[SandboxRunner] Received ActionCable message:",S),S.type){case"run_started":X?y(P=>({...P,[S.provider]:{status:"running",started_at:S.started_at,provider:S.provider}})):d(P=>({...P,status:"running",provider:S.provider}));break;case"run_complete":X?(y(P=>({...P,[S.provider]:{...S.run,provider:S.provider}})),O(P=>P.filter(K=>K!==S.provider)),S.sandbox&&(i(S.sandbox),u(S.sandbox.runs||[]))):(d(S.run),p(!1),S.sandbox&&(i(S.sandbox),u(S.sandbox.runs||[]))),O(P=>{let K=P.filter(j=>j!==S.provider);return K.length===0&&p(!1),K});break;case"run_error":X?(y(P=>({...P,[S.provider]:{status:"failed",error:S.error,provider:S.provider}})),O(P=>P.filter(K=>K!==S.provider))):(d(P=>({...P,status:"failed",error:S.error})),p(!1)),S.sandbox&&i(S.sandbox);break}},[X]);QP("SandboxChannel",{session_id:a?.session_id},M,!!a?.session_id),(0,L.useEffect)(()=>{k(),A()},[r]);let A=async()=>{try{let S=await fetch("/api/usage");if(S.ok){let P=await S.json();T(P.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,L.useEffect)(()=>{if(!a?.expires_at)return;let S=setInterval(()=>{let P=new Date,K=new Date(a.expires_at),j=Math.max(0,Math.floor((K-P)/1e3));x(j),j===0&&(i(he=>({...he,status:"expired"})),clearInterval(S))},1e3);return()=>clearInterval(S)},[a?.expires_at]),(0,L.useEffect)(()=>{z.current&&(z.current.scrollTop=z.current.scrollHeight)},[c?.result]);let k=async()=>{g(!0),m(null);try{let S=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:r})});if(!S.ok)throw new Error("Failed to create sandbox session");let P=await S.json();i(P.sandbox),u([]),d(null)}catch(S){m(S.message)}finally{g(!1)}},V=async()=>{!o.trim()||f||!a||(X&&B.length>1?await Q():await G(B[0]||"anthropic"))},G=async S=>{p(!0),d({status:"running",task:o,provider:S,result:"",started_at:new Date().toISOString()});try{let P=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:o,provider:S})}),K=await P.json();if(P.status===402&&K.upgrade_required){T(K.usage),E(!0),d(j=>({...j,status:"failed",error:K.message||"Plan limit reached"})),p(!1);return}if(!P.ok)throw new Error(K.error||"Task execution failed");K.usage&&T(K.usage),pe(K.run_id)}catch(P){d(K=>({...K,status:"failed",error:P.message})),p(!1)}},Q=async()=>{p(!0),O([...B]),y({});let S={};B.forEach(P=>{S[P]={status:"running",result:"",started_at:new Date().toISOString()}}),y(S);try{let P=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:o,providers:B,sandbox_id:a?.session_id,sandbox_type:r})});if(!P.ok){let j=await P.json();throw new Error(j.error||"Comparison failed")}let K=await P.json();K.sandbox&&i(K.sandbox),setTimeout(()=>{N.length>0&&se()},6e4)}catch(P){B.forEach(K=>{y(j=>({...j,[K]:{status:"failed",error:P.message}}))}),p(!1),O([])}},se=async()=>{if(a?.session_id)try{let P=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(P.sandbox),u(P.sandbox.runs||[]),(P.sandbox.runs||[]).forEach(he=>{he.provider&&y(ge=>({...ge,[he.provider]:{...he,provider:he.provider}}))}),B.every(he=>{let ge=q[he];return ge?.status==="completed"||ge?.status==="failed"})&&(p(!1),O([]))}catch(S){console.error("Polling error:",S)}},ue=S=>{$(P=>P.includes(S)?P.length===1?P:P.filter(K=>K!==S):[...P,S])},pe=async S=>{let P=async()=>{try{let j=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(j.sandbox);let he=j.sandbox.runs||[],ge=he[he.length-1];if(ge&&(d(ge),u(he),ge.status==="completed"||ge.status==="failed")){p(!1);return}setTimeout(P,1e3)}catch{p(!1)}};P()},Oe=S=>{S.key==="Enter"&&(S.metaKey||S.ctrlKey)&&V()},ie=S=>{if(!S)return"--:--";let P=Math.floor(S/60),K=S%60;return`${P}:${K.toString().padStart(2,"0")}`},Ne=S=>{switch(S){case"completed":return"text-green-600 bg-green-100";case"failed":return"text-red-600 bg-red-100";case"running":return"text-blue-600 bg-blue-100";case"ready":return"text-emerald-600 bg-emerald-100";case"expired":return"text-orange-600 bg-orange-100";default:return"text-gray-600 bg-gray-100"}},F=a?.status==="ready"&&a?.runs_count{I(!0);try{await tc({planSlug:"pro",billingInterval:S})}catch(P){console.error("Checkout error:",P),m(P.message||"Failed to initiate checkout. Please try again."),I(!1)}};return L.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},L.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},L.default.createElement("div",{className:"flex items-center justify-between"},L.default.createElement("div",{className:"flex items-center space-x-4"},L.default.createElement(wt,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),L.default.createElement("div",null,L.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),L.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),L.default.createElement("div",{className:"flex items-center space-x-4"},a&&L.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},L.default.createElement("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${Ne(a.status)}`},a.status),L.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),L.default.createElement("span",{className:`font-mono ${h<60?"text-red-500":"text-gray-500"}`},ie(h))),t&&L.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},L.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},L.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),L.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},L.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},L.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},L.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},L.default.createElement("textarea",{value:o,onChange:S=>l(S.target.value),onKeyDown:Oe,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!F,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-rose-500 focus:border-transparent resize-none disabled:bg-gray-100"}),L.default.createElement("div",{className:"flex items-center justify-between mt-3"},L.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",L.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",L.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),L.default.createElement("button",{onClick:V,disabled:!o.trim()||!F,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${o.trim()&&F?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?L.default.createElement(L.default.Fragment,null,L.default.createElement("span",{className:"animate-spin"},"\u25E0"),L.default.createElement("span",null,"Running...")):L.default.createElement(L.default.Fragment,null,L.default.createElement("span",null,"\u25B6"),L.default.createElement("span",null,"Run"))))),L.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},L.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},L.default.createElement("h3",{className:"font-medium text-gray-900"},X&&Object.keys(q).length>0?"Comparison Results":"Output"),c&&!X&&L.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Ne(c.status)}`},c.status),X&&N.length>0&&L.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",N.length," provider(s)...")),L.default.createElement("div",{ref:z,className:"flex-1 overflow-auto bg-gray-50"},v?L.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},L.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):b?L.default.createElement("div",{className:"text-red-600 p-4"},b):X&&Object.keys(q).length>0?L.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},B.map(S=>{let P=yy.find(j=>j.id===S),K=q[S];return L.default.createElement("div",{key:S,className:"p-4"},L.default.createElement("div",{className:"flex items-center justify-between mb-2"},L.default.createElement("div",{className:"flex items-center space-x-2"},L.default.createElement("div",{className:`w-3 h-3 rounded-full ${P?.color||"bg-gray-400"}`}),L.default.createElement("span",{className:"font-medium text-gray-900"},P?.name||S),L.default.createElement("span",{className:"text-xs text-gray-500"},P?.model)),K&&L.default.createElement("div",{className:"flex items-center space-x-2"},L.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Ne(K.status)}`},K.status),K.tokens&&L.default.createElement("span",{className:"text-xs text-gray-500"},K.tokens," tokens"),K.duration_ms&&L.default.createElement("span",{className:"text-xs text-gray-500"},(K.duration_ms/1e3).toFixed(1),"s"))),L.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},K?.status==="running"?L.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},L.default.createElement("span",{className:"animate-pulse"},"\u25CF"),L.default.createElement("span",null,"Processing...")):K?.error?L.default.createElement("div",{className:"text-red-600"},K.error):K?.result?L.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},K.result):L.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):c?L.default.createElement("div",{className:"p-4 font-mono text-sm"},c.provider&&L.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},L.default.createElement("div",{className:`w-2 h-2 rounded-full ${yy.find(S=>S.id===c.provider)?.color||"bg-gray-400"}`}),L.default.createElement("span",{className:"text-sm text-gray-600"},yy.find(S=>S.id===c.provider)?.name||c.provider)),c.status==="running"?L.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},L.default.createElement("span",{className:"animate-pulse"},"\u25CF"),L.default.createElement("span",null,"Executing task...")):c.error?L.default.createElement("div",{className:"text-red-600"},L.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),L.default.createElement("pre",{className:"whitespace-pre-wrap"},c.error)):L.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},c.result||"Processing...")):L.default.createElement("div",{className:"text-gray-400 text-center py-12"},L.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),L.default.createElement("p",{className:"text-xs"},X?`Compare results across ${B.length} providers`:"Task will execute using the selected provider"))))),L.default.createElement("div",{className:"space-y-4 overflow-auto"},L.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},L.default.createElement("div",{className:"flex items-center justify-between mb-3"},L.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),L.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},L.default.createElement("input",{type:"checkbox",checked:X,onChange:S=>H(S.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),L.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),L.default.createElement("div",{className:"space-y-2"},yy.map(S=>L.default.createElement("label",{key:S.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${B.includes(S.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},L.default.createElement("div",{className:"flex items-center space-x-3"},L.default.createElement("input",{type:"checkbox",checked:B.includes(S.id),onChange:()=>ue(S.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),L.default.createElement("div",{className:`w-2 h-2 rounded-full ${S.color}`}),L.default.createElement("span",{className:"text-sm font-medium text-gray-900"},S.name)),L.default.createElement("span",{className:"text-xs text-gray-500"},S.model)))),X&&B.length>1&&L.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},L.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",B.length," providers simultaneously"))),L.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},L.default.createElement("div",{className:"flex items-center justify-between mb-3"},L.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),X&&L.default.createElement("button",{onClick:()=>n(r==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},r==="comparison"?"Browser Tasks":"Comparison Tasks")),L.default.createElement("div",{className:"space-y-2"},oQ[r]?.map((S,P)=>L.default.createElement("button",{key:P,onClick:()=>l(S.task),disabled:!F,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},L.default.createElement("div",{className:"font-medium text-sm text-gray-900"},S.name),L.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},S.description))))),L.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},L.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},C?.plan==="free"?"Free Tier":`${C?.plan?.toUpperCase()||"FREE"} Plan`),C&&L.default.createElement("div",{className:"mb-4"},L.default.createElement("div",{className:"flex justify-between text-sm mb-1"},L.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),L.default.createElement("span",{className:`font-medium ${C.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},C.runs_used," / ",C.runs_limit)),L.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},L.default.createElement("div",{className:`h-2 rounded-full transition-all ${C.runs_remaining<=1?"bg-rose-500":"bg-emerald-500"}`,style:{width:`${Math.min(C.runs_used/C.runs_limit*100,100)}%`}})),C.runs_remaining<=1&&L.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},C.runs_remaining===0?"Limit reached!":"Almost at limit!")),L.default.createElement("dl",{className:"space-y-2 text-sm"},L.default.createElement("div",{className:"flex justify-between"},L.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),L.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||JP.max_runs)),L.default.createElement("div",{className:"flex justify-between"},L.default.createElement("dt",{className:"text-gray-500"},"Timeout"),L.default.createElement("dd",{className:"text-gray-900"},JP.timeout_seconds,"s per task"))),C?.plan==="free"&&L.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},L.default.createElement("button",{onClick:()=>E(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),s.length>0&&L.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},L.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},L.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),L.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},s.slice().reverse().map((S,P)=>L.default.createElement("div",{key:S.id||P,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>d(S)},L.default.createElement("div",{className:"flex items-center justify-between mb-1"},L.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Ne(S.status||"completed")}`},S.status||"completed"),L.default.createElement("span",{className:"text-xs text-gray-400"},S.tokens||0," tokens")),L.default.createElement("p",{className:"text-sm text-gray-600 truncate"},S.task))))),a?.status==="expired"&&L.default.createElement("button",{onClick:k,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),w&&L.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},L.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},L.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},L.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),L.default.createElement("p",{className:"text-rose-100 text-sm"},"You've used ",C?.runs_used||0," of ",C?.runs_limit||25," trial runs. Choose a plan to continue.")),L.default.createElement("div",{className:"p-6"},L.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},L.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},L.default.createElement("div",{className:"text-center mb-4"},L.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),L.default.createElement("div",{className:"mt-2"},L.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),L.default.createElement("span",{className:"text-gray-500"},"/mo"))),L.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),L.default.createElement("button",{disabled:!0,className:"w-full py-2 px-4 border border-gray-300 text-gray-400 rounded-lg text-sm cursor-not-allowed"},"Current Plan")),L.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},L.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},L.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),L.default.createElement("div",{className:"text-center mb-4 mt-2"},L.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),L.default.createElement("div",{className:"mt-2"},L.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),L.default.createElement("span",{className:"text-gray-500"},"/mo")),L.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),L.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),L.default.createElement("button",{onClick:()=>Y("monthly"),disabled:_,className:"w-full py-2 px-4 bg-rose-500 text-white rounded-lg text-sm font-semibold hover:bg-rose-600 transition-colors disabled:opacity-50"},_?"Loading...":"Upgrade to Pro")),L.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},L.default.createElement("div",{className:"text-center mb-4"},L.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),L.default.createElement("div",{className:"mt-2"},L.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),L.default.createElement("span",{className:"text-gray-500"},"/mo")),L.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),L.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),L.default.createElement("li",{className:"flex items-start"},L.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),L.default.createElement("a",{href:"mailto:sales@activeagents.ai",className:"block w-full py-2 px-4 border border-gray-300 text-gray-700 rounded-lg text-sm font-semibold text-center hover:bg-gray-50 transition-colors"},"Contact Sales")))),L.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},L.default.createElement("button",{onClick:()=>E(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var de=J(R());var xy={SCREENSHOT:"screenshot",IFRAME:"iframe"},RP={navigate:"[->]",click:"[*]",type:"[T]",form_fill:"[F]",key_press:"[K]",snapshot:"[S]",hover:"[~]",select:"[v]",file_upload:"[^]",dialog:"[!]",evaluate:"[js]",wait:"[..]",scroll:"[|]",drag:"[<>]"},qS={navigate:"#3b82f6",click:"#ef4444",type:"#10b981",form_fill:"#8b5cf6",key_press:"#f59e0b",snapshot:"#06b6d4",hover:"#ec4899",select:"#6366f1",file_upload:"#14b8a6",dialog:"#f97316",evaluate:"#a855f7",wait:"#94a3b8",scroll:"#64748b",drag:"#ea580c"},lQ=` + A`,",",",0,0,",",",",","Z"])),$.x,$.y,i,i,+(c<0),z.x,z.y,n,n,+(G>180),+(c>0),N.x,N.y,i,i,+(c<0),D.x,D.y)}else b+=nr(XT||(XT=el(["L",",","Z"])),t,r);return b},mU={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},JT=e=>{var t=Ct(e,mU),r=t.cx,n=t.cy,a=t.innerRadius,i=t.outerRadius,o=t.cornerRadius,l=t.forceCornerRadius,s=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(i0&&Math.abs(u-c)<360?h=pU({cx:r,cy:n,innerRadius:a,outerRadius:i,cornerRadius:Math.min(g,p/2),forceCornerRadius:l,cornerIsExternal:s,startAngle:u,endAngle:c}):h=QT({cx:r,cy:n,innerRadius:a,outerRadius:i,startAngle:u,endAngle:c}),ZT.createElement("path",j1({},Ut(t),{className:f,d:h}))};function RT(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(Lm(t)){if(e==="centric"){var n=t.cx,a=t.cy,i=t.innerRadius,o=t.outerRadius,l=t.angle,s=Dt(n,a,i,l),u=Dt(n,a,o,l);return[{x:s.x,y:s.y},{x:u.x,y:u.y}]}return iv(t)}}function e4(e){return dg(e)?NaN:Number(e)}function lv(e){return e?(e=e4(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function sv(e,t,r){r&&typeof r!="number"&&pd(e,t,r)&&(t=r=void 0),e=lv(e),t===void 0?(t=e,e=0):t=lv(t),r=r===void 0?ee.chartData,I1=Y([en],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),Td=(e,t,r,n)=>n?I1(e):en(e),t4=(e,t,r)=>r?I1(e):en(e),r4=Y([Td],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),eie=Y([I1],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),n4=Y([en],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function z1(e,t){return yU(e)||hU(e,t)||vU(e,t)||gU()}function gU(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vU(e,t){if(e){if(typeof e=="string")return a4(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a4(e,t):void 0}}function a4(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=Md(e,2),r=t[0],n=t[1],a=r,i=n;return r>n&&(a=n,i=r),[a,i]},H1=(e,t,r)=>{if(e.lte(0))return new Ke.default(0);var n=$1(e.toNumber()),a=new Ke.default(10).pow(n),i=e.div(a),o=n!==1?.05:.1,l=new Ke.default(Math.ceil(i.div(o).toNumber())).add(r).mul(o),s=l.mul(a);return t?new Ke.default(s.toNumber()):new Ke.default(Math.ceil(s.toNumber()))},c4=(e,t,r)=>{var n;if(e.lte(0))return new Ke.default(0);var a=[1,2,2.5,5],i=e.toNumber(),o=Math.floor(new Ke.default(i).abs().log(10).toNumber()),l=new Ke.default(10).pow(o),s=e.div(l).toNumber(),u=a.findIndex(p=>p>=s-1e-10);if(u===-1&&(l=l.mul(10),u=0),u+=r,u>=a.length){var c=Math.floor(u/a.length);u%=a.length,l=l.mul(new Ke.default(10).pow(c))}var d=(n=a[u])!==null&&n!==void 0?n:1,f=new Ke.default(d).mul(l);return t?f:new Ke.default(Math.ceil(f.toNumber()))},AU=(e,t,r)=>{var n=new Ke.default(1),a=new Ke.default(e);if(!a.isint()&&r){var i=Math.abs(e);i<1?(n=new Ke.default(10).pow($1(e)-1),a=new Ke.default(Math.floor(a.div(n).toNumber())).mul(n)):i>1&&(a=new Ke.default(Math.floor(e)))}else e===0?a=new Ke.default(Math.floor((t-1)/2)):r||(a=new Ke.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],s=0;s4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:H1;if(!Number.isFinite((r-t)/(n-1)))return{step:new Ke.default(0),tickMin:new Ke.default(0),tickMax:new Ke.default(0)};var l=o(new Ke.default(r).sub(t).div(n-1),a,i),s;t<=0&&r>=0?s=new Ke.default(0):(s=new Ke.default(t).add(r).div(2),s=s.sub(new Ke.default(s).mod(l)));var u=Math.ceil(s.sub(t).div(l).toNumber()),c=Math.ceil(new Ke.default(r).sub(s).div(l).toNumber()),d=u+c+1;return d>n?d4(t,r,n,a,i+1,o):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:l,tickMin:s.sub(new Ke.default(u).mul(l)),tickMax:s.add(new Ke.default(c).mul(l))})};var dv=function(t){var r=Md(t,2),n=r[0],a=r[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=Math.max(i,2),u=u4([n,a]),c=Md(u,2),d=c[0],f=c[1];if(d===-1/0||f===1/0){var p=f===1/0?[d,...Array(i-1).fill(1/0)]:[...Array(i-1).fill(-1/0),f];return n>a?p.reverse():p}if(d===f)return AU(d,i,o);var g=l==="snap125"?c4:H1,h=d4(d,f,s,o,0,g),x=h.step,m=h.tickMin,v=h.tickMax,y=U1(m,v.add(new Ke.default(.1).mul(x)),x);return n>a?y.reverse():y},fv=function(t,r){var n=Md(t,2),a=n[0],i=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=u4([a,i]),u=Md(s,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[a,i];if(c===d)return[c];var f=l==="snap125"?c4:H1,p=Math.max(r,2),g=f(new Ke.default(d).sub(c).div(p-1),o,0),h=[...U1(new Ke.default(c),new Ke.default(d),g),d];if(o===!1){h=h.map(m=>Math.round(m));var x=h.length-1;x>0&&h[x]===h[x-1]&&(h=h.slice(0,x))}return a>i?h.reverse():h};var f4=e=>e.rootProps.barCategoryGap;var cu=e=>e.rootProps.stackOffset,pv=e=>e.rootProps.reverseStackOrder,du=e=>e.options.chartName,mv=e=>e.rootProps.syncId,V1=e=>e.rootProps.syncMethod,gv=e=>e.options.eventEmitter,p4=e=>e.rootProps.baseValue;var it={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3};var oo={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:"auto",orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:it.axis};var oa={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:"auto",label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:it.axis};var tl=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function rl(e,t,r){if(r!=="auto")return r;if(e!=null)return Rr(e,t)?"category":"number"}function m4(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vv(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},hv=Y([kU,_1],(e,t)=>{var r;if(e!=null)return e;var n=(r=rl(t,"angleAxis",g4.type))!==null&&r!==void 0?r:"category";return vv(vv({},g4),{},{type:n})}),EU=(e,t)=>e.polarAxis.radiusAxis[t],yv=Y([EU,_1],(e,t)=>{var r;if(e!=null)return e;var n=(r=rl(t,"radiusAxis",v4.type))!==null&&r!==void 0?r:"category";return vv(vv({},v4),{},{type:n})}),xv=e=>e.polarOptions,F1=Y([kr,Er,xt],HT),h4=Y([xv,F1],(e,t)=>{if(e!=null)return Ln(e.innerRadius,t,0)}),y4=Y([xv,F1],(e,t)=>{if(e!=null)return Ln(e.outerRadius,t,t*.8)}),OU=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},W1=Y([xv],OU),Tie=Y([hv,W1],tl),q1=Y([F1,h4,y4],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),Mie=Y([yv,q1],tl),bv=Y([tt,xv,h4,y4,kr,Er],(e,t,r,n,a,i)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var o=t.cx,l=t.cy,s=t.startAngle,u=t.endAngle;return{cx:Ln(o,a,a/2),cy:Ln(l,i,i/2),innerRadius:r,outerRadius:n,startAngle:s,endAngle:u,clockWise:!1}}});var or=(e,t)=>t;var Dd=(e,t,r)=>r;function fu(e){return e?.id}function wv(e,t,r){var n=t.chartData,a=n===void 0?[]:n,i=r.allowDuplicatedCategory,o=r.dataKey,l=new Map;return e.forEach(s=>{var u,c=(u=s.data)!==null&&u!==void 0?u:a;if(!(c==null||c.length===0)){var d=fu(s);c.forEach((f,p)=>{var g=o==null||i?p:String(yt(f,o,null)),h=yt(f,s.dataKey,0),x;l.has(g)?x=l.get(g):x={},Object.assign(x,{[d]:h}),l.set(g,x)})}}),Array.from(l.values())}function Pd(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var nl=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function pu(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function x4(e,t){if(e.length===t.length){for(var r=0;r{var t=tt(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var lo=e=>e.tooltip.settings.axisId;function jd(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),a=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(i){function o(){return i.apply(this,arguments)}return o.toString=function(){return i.toString()},o})(()=>a),rangeMin:()=>a[0],rangeMax:()=>a[1],isInRange(i){var o=a[0],l=a[1];return o<=l?i>=o&&i<=l:i>=l&&i<=o},bandwidth:r?()=>r.call(e):void 0,ticks:t?i=>t.call(e,i):void 0,map:(i,o)=>{var l=e(i);if(l!=null){if(e.bandwidth&&o!==null&&o!==void 0&&o.position){var s=e.bandwidth();switch(o.position){case"middle":l+=s/2;break;case"end":l+=s;break;default:break}}return l}}}}}var b4=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!bn(t)){for(var r,n,a=0;an)&&(n=i))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var tf={};yj(tf,{scaleBand:()=>Bd,scaleDiverging:()=>rh,scaleDivergingLog:()=>N2,scaleDivergingPow:()=>nh,scaleDivergingSqrt:()=>V3,scaleDivergingSymlog:()=>C2,scaleIdentity:()=>Uv,scaleImplicit:()=>Ev,scaleLinear:()=>$v,scaleLog:()=>Hv,scaleOrdinal:()=>vu,scalePoint:()=>k4,scalePow:()=>Xd,scaleQuantile:()=>Wv,scaleQuantize:()=>qv,scaleRadial:()=>Fv,scaleSequential:()=>Jv,scaleSequentialLog:()=>S2,scaleSequentialPow:()=>Rv,scaleSequentialQuantile:()=>eh,scaleSequentialSqrt:()=>H3,scaleSequentialSymlog:()=>A2,scaleSqrt:()=>u3,scaleSymlog:()=>Vv,scaleThreshold:()=>Yv,scaleTime:()=>b2,scaleUtc:()=>w2,tickFormat:()=>Wd});function Ur(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function Y1(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function al(e){let t,r,n;e.length!==2?(t=Ur,r=(l,s)=>Ur(e(l),s),n=(l,s)=>e(l)-s):(t=e===Ur||e===Y1?e:TU,r=e,n=e);function a(l,s,u=0,c=l.length){if(u>>1;r(l[d],s)<0?u=d+1:c=d}while(u>>1;r(l[d],s)<=0?u=d+1:c=d}while(uu&&n(l[d-1],s)>-n(l[d],s)?d-1:d}return{left:a,center:o,right:i}}function TU(){return 0}function Id(e){return e===null?NaN:+e}function*w4(e,t){if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&(yield r);else{let r=-1;for(let n of e)(n=t(n,++r,e))!=null&&(n=+n)>=n&&(yield n)}}var S4=al(Ur),A4=S4.right,MU=S4.left,DU=al(Id).center,la=A4;var mu=class extends Map{constructor(t,r=IU){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,a]of t)this.set(n,a)}get(t){return super.get(N4(this,t))}has(t){return super.has(N4(this,t))}set(t,r){return super.set(PU(this,t),r)}delete(t){return super.delete(jU(this,t))}};function N4({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function PU({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function jU({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function IU(e){return e!==null&&typeof e=="object"?e.valueOf():e}function C4(e=Ur){if(e===Ur)return K1;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{let n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function K1(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var zU=Math.sqrt(50),LU=Math.sqrt(10),BU=Math.sqrt(2);function Sv(e,t,r){let n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),i=n/Math.pow(10,a),o=i>=zU?10:i>=LU?5:i>=BU?2:1,l,s,u;return a<0?(u=Math.pow(10,-a)/o,l=Math.round(e*u),s=Math.round(t*u),l/ut&&--s,u=-u):(u=Math.pow(10,a)*o,l=Math.round(e/u),s=Math.round(t/u),l*ut&&--s),s0))return[];if(e===t)return[e];let n=t=a))return[];let l=i-a+1,s=new Array(l);if(n)if(o<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let a of e)(a=t(a,++n,e))!=null&&(r=a)&&(r=a)}return r}function Nv(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let a of e)(a=t(a,++n,e))!=null&&(r>a||r===void 0&&a>=a)&&(r=a)}return r}function Cv(e,t,r=0,n=1/0,a){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(a=a===void 0?K1:C4(a);n>r;){if(n-r>600){let s=n-r+1,u=t-r+1,c=Math.log(s),d=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*d*(s-d)/s)*(u-s/2<0?-1:1),p=Math.max(r,Math.floor(t-u*d/s+f)),g=Math.min(n,Math.floor(t+(s-u)*d/s+f));Cv(e,t,p,g,a)}let i=e[t],o=r,l=n;for(Ld(e,r,t),a(e[n],i)>0&&Ld(e,r,n);o0;)--l}a(e[r],i)===0?Ld(e,r,l):(++l,Ld(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function Ld(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function _v(e,t,r){if(e=Float64Array.from(w4(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return Nv(e);if(t>=1)return Av(e);var n,a=(n-1)*t,i=Math.floor(a),o=Av(Cv(e,i).subarray(0,i+1)),l=Nv(e.subarray(i+1));return o+(l-o)*(a-i)}}function G1(e,t,r=Id){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,a=(n-1)*t,i=Math.floor(a),o=+r(e[i],i,e),l=+r(e[i+1],i+1,e);return o+(l-o)*(a-i)}}function kv(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var n=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,i=new Array(a);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Tv(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Tv(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=UU.exec(e))?new tn(t[1],t[2],t[3],1):(t=HU.exec(e))?new tn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=VU.exec(e))?Tv(t[1],t[2],t[3],t[4]):(t=FU.exec(e))?Tv(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=WU.exec(e))?j4(t[1],t[2]/100,t[3]/100,1):(t=qU.exec(e))?j4(t[1],t[2]/100,t[3]/100,t[4]):E4.hasOwnProperty(e)?M4(E4[e]):e==="transparent"?new tn(NaN,NaN,NaN,0):null}function M4(e){return new tn(e>>16&255,e>>8&255,e&255,1)}function Tv(e,t,r,n){return n<=0&&(e=t=r=NaN),new tn(e,t,r,n)}function GU(e){return e instanceof Hd||(e=so(e)),e?(e=e.rgb(),new tn(e.r,e.g,e.b,e.opacity)):new tn}function yu(e,t,r,n){return arguments.length===1?GU(e):new tn(e,t,r,n??1)}function tn(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Ov(tn,yu,X1(Hd,{brighter(e){return e=e==null?Dv:Math.pow(Dv,e),new tn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?$d:Math.pow($d,e),new tn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new tn(ll(this.r),ll(this.g),ll(this.b),Pv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:D4,formatHex:D4,formatHex8:XU,formatRgb:P4,toString:P4}));function D4(){return`#${ol(this.r)}${ol(this.g)}${ol(this.b)}`}function XU(){return`#${ol(this.r)}${ol(this.g)}${ol(this.b)}${ol((isNaN(this.opacity)?1:this.opacity)*255)}`}function P4(){let e=Pv(this.opacity);return`${e===1?"rgb(":"rgba("}${ll(this.r)}, ${ll(this.g)}, ${ll(this.b)}${e===1?")":`, ${e})`}`}function Pv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ll(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ol(e){return e=ll(e),(e<16?"0":"")+e.toString(16)}function j4(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new sa(e,t,r,n)}function z4(e){if(e instanceof sa)return new sa(e.h,e.s,e.l,e.opacity);if(e instanceof Hd||(e=so(e)),!e)return new sa;if(e instanceof sa)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),i=Math.max(t,r,n),o=NaN,l=i-a,s=(i+a)/2;return l?(t===i?o=(r-n)/l+(r0&&s<1?0:o,new sa(o,l,s,e.opacity)}function L4(e,t,r,n){return arguments.length===1?z4(e):new sa(e,t,r,n??1)}function sa(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Ov(sa,L4,X1(Hd,{brighter(e){return e=e==null?Dv:Math.pow(Dv,e),new sa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?$d:Math.pow($d,e),new sa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new tn(Z1(e>=240?e-240:e+120,a,n),Z1(e,a,n),Z1(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new sa(I4(this.h),Mv(this.s),Mv(this.l),Pv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Pv(this.opacity);return`${e===1?"hsl(":"hsla("}${I4(this.h)}, ${Mv(this.s)*100}%, ${Mv(this.l)*100}%${e===1?")":`, ${e})`}`}}));function I4(e){return e=(e||0)%360,e<0?e+360:e}function Mv(e){return Math.max(0,Math.min(1,e||0))}function Z1(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}function Q1(e,t,r,n,a){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*r+(1+3*e+3*i-3*o)*n+o*a)/6}function B4(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),a=e[n],i=e[n+1],o=n>0?e[n-1]:2*a-i,l=n()=>e;function ZU(e,t){return function(r){return e+r*t}}function QU(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function U4(e){return(e=+e)==1?jv:function(t,r){return r-t?QU(t,r,e):Vd(isNaN(t)?r:t)}}function jv(e,t){var r=t-e;return r?ZU(e,r):Vd(isNaN(e)?t:e)}var J1=(function e(t){var r=U4(t);function n(a,i){var o=r((a=yu(a)).r,(i=yu(i)).r),l=r(a.g,i.g),s=r(a.b,i.b),u=jv(a.opacity,i.opacity);return function(c){return a.r=o(c),a.g=l(c),a.b=s(c),a.opacity=u(c),a+""}}return n.gamma=e,n})(1);function H4(e){return function(t){var r=t.length,n=new Array(r),a=new Array(r),i=new Array(r),o,l;for(o=0;or&&(i=t.slice(r,i),l[o]?l[o]+=i:l[++o]=i),(n=n[0])===(a=a[0])?l[o]?l[o]+=a:l[++o]=a:(l[++o]=null,s.push({i:o,x:uo(n,a)})),r=R1.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function tH(e,t,r){var n=e[0],a=e[1],i=t[0],o=t[1];return a2?rH:tH,s=u=null,d}function d(f){return f==null||isNaN(f=+f)?i:(s||(s=l(e.map(n),t,r)))(n(o(f)))}return d.invert=function(f){return o(a((u||(u=l(t,e.map(n),uo)))(f)))},d.domain=function(f){return arguments.length?(e=Array.from(f,co),c()):e.slice()},d.range=function(f){return arguments.length?(t=Array.from(f),c()):t.slice()},d.rangeRound=function(f){return t=Array.from(f),r=sl,c()},d.clamp=function(f){return arguments.length?(o=f?!0:lr,c()):o!==lr},d.interpolate=function(f){return arguments.length?(r=f,c()):r},d.unknown=function(f){return arguments.length?(i=f,d):i},function(f,p){return n=f,a=p,c()}}function cl(){return ul()(lr,lr)}function X4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function dl(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function _a(e){return e=dl(Math.abs(e)),e?e[1]:NaN}function Z4(e,t){return function(r,n){for(var a=r.length,i=[],o=0,l=e[0],s=0;a>0&&l>0&&(s+l+1>n&&(l=Math.max(1,n-s)),i.push(r.substring(a-=l,a+l)),!((s+=l+1)>n));)l=e[o=(o+1)%e.length];return i.reverse().join(t)}}function Q4(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var nH=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ka(e){if(!(t=nH.exec(e)))throw new Error("invalid format: "+e);var t;return new zv({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}ka.prototype=zv.prototype;function zv(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}zv.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function J4(e){e:for(var t=e.length,r=1,n=-1,a;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(a+1):e}var Fd;function R4(e,t){var r=dl(e,t);if(!r)return Fd=void 0,e.toPrecision(t);var n=r[0],a=r[1],i=a-(Fd=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=n.length;return i===o?n:i>o?n+new Array(i-o+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+dl(e,Math.max(0,t+i-1))[0]}function n2(e,t){var r=dl(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}var a2={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:X4,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>n2(e*100,t),r:n2,s:R4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function i2(e){return e}var e3=Array.prototype.map,t3=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function r3(e){var t=e.grouping===void 0||e.thousands===void 0?i2:Z4(e3.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",i=e.numerals===void 0?i2:Q4(e3.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"\u2212":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function u(d,f){d=ka(d);var p=d.fill,g=d.align,h=d.sign,x=d.symbol,m=d.zero,v=d.width,y=d.comma,b=d.precision,k=d.trim,N=d.type;N==="n"?(y=!0,N="g"):a2[N]||(b===void 0&&(b=12),k=!0,N="g"),(m||p==="0"&&g==="=")&&(m=!0,p="0",g="=");var D=(f&&f.prefix!==void 0?f.prefix:"")+(x==="$"?r:x==="#"&&/[boxX]/.test(N)?"0"+N.toLowerCase():""),_=(x==="$"?n:/[%p]/.test(N)?o:"")+(f&&f.suffix!==void 0?f.suffix:""),M=a2[N],z=/[defgprs%]/.test(N);b=b===void 0?6:/[gprs]/.test(N)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b));function $(U){var G=D,j=_,V,w,O;if(N==="c")j=M(U)+j,U="";else{U=+U;var E=U<0||1/U<0;if(U=isNaN(U)?s:M(Math.abs(U),b),k&&(U=J4(U)),E&&+U==0&&h!=="+"&&(E=!1),G=(E?h==="("?h:l:h==="-"||h==="("?"":h)+G,j=(N==="s"&&!isNaN(U)&&Fd!==void 0?t3[8+Fd/3]:"")+j+(E&&h==="("?")":""),z){for(V=-1,w=U.length;++VO||O>57){j=(O===46?a+U.slice(V+1):U.slice(V))+j,U=U.slice(0,V);break}}}y&&!m&&(U=t(U,1/0));var C=G.length+U.length+j.length,S=C>1)+G+U+j+S.slice(C);break;default:U=S+G+U+j;break}return i(U)}return $.toString=function(){return d+""},$}function c(d,f){var p=Math.max(-8,Math.min(8,Math.floor(_a(f)/3)))*3,g=Math.pow(10,-p),h=u((d=ka(d),d.type="f",d),{suffix:t3[8+p/3]});return function(x){return h(g*x)}}return{format:u,formatPrefix:c}}var Lv,xu,Bv;o2({thousands:",",grouping:[3],currency:["$",""]});function o2(e){return Lv=r3(e),xu=Lv.format,Bv=Lv.formatPrefix,Lv}function l2(e){return Math.max(0,-_a(Math.abs(e)))}function s2(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(_a(t)/3)))*3-_a(Math.abs(e)))}function u2(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,_a(t)-_a(e))+1}function Wd(e,t,r,n){var a=gu(e,t,r),i;switch(n=ka(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(i=s2(a,o))&&(n.precision=i),Bv(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(i=u2(a,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=i-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(i=l2(a))&&(n.precision=i-(n.type==="%")*2);break}}return xu(n)}function Hr(e){var t=e.domain;return e.ticks=function(r){var n=t();return il(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var a=t();return Wd(a[0],a[a.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),a=0,i=n.length-1,o=n[a],l=n[i],s,u,c=10;for(l0;){if(u=zd(o,l,r),u===s)return n[a]=o,n[i]=l,t(n);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;s=u}return e},e}function $v(){var e=cl();return e.copy=function(){return Ca(e,$v())},_t.apply(e,arguments),Hr(e)}function Uv(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,co),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return Uv(e).unknown(t)},e=arguments.length?Array.from(e,co):[0,1],Hr(r)}function qd(e,t){e=e.slice();var r=0,n=e.length-1,a=e[r],i=e[n],o;return iMath.pow(e,t)}function sH(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function i3(e){return(t,r)=>-e(-t,r)}function Yd(e){let t=e(n3,a3),r=t.domain,n=10,a,i;function o(){return a=sH(n),i=lH(n),r()[0]<0?(a=i3(a),i=i3(i),e(aH,iH)):e(n3,a3),t}return t.base=function(l){return arguments.length?(n=+l,o()):n},t.domain=function(l){return arguments.length?(r(l),o()):r()},t.ticks=l=>{let s=r(),u=s[0],c=s[s.length-1],d=c0){for(;f<=p;++f)for(g=1;gc)break;m.push(h)}}else for(;f<=p;++f)for(g=n-1;g>=1;--g)if(h=f>0?g/i(-f):g*i(f),!(hc)break;m.push(h)}m.length*2{if(l==null&&(l=10),s==null&&(s=n===10?"s":","),typeof s!="function"&&(!(n%1)&&(s=ka(s)).precision==null&&(s.trim=!0),s=xu(s)),l===1/0)return s;let u=Math.max(1,n*l/t.ticks().length);return c=>{let d=c/i(Math.round(a(c)));return d*nr(qd(r(),{floor:l=>i(Math.floor(a(l))),ceil:l=>i(Math.ceil(a(l)))})),t}function Hv(){let e=Yd(ul()).domain([1,10]);return e.copy=()=>Ca(e,Hv()).base(e.base()),_t.apply(e,arguments),e}function o3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function l3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Kd(e){var t=1,r=e(o3(t),l3(t));return r.constant=function(n){return arguments.length?e(o3(t=+n),l3(t)):t},Hr(r)}function Vv(){var e=Kd(ul());return e.copy=function(){return Ca(e,Vv()).constant(e.constant())},_t.apply(e,arguments)}function s3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function uH(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function cH(e){return e<0?-e*e:e*e}function Gd(e){var t=e(lr,lr),r=1;function n(){return r===1?e(lr,lr):r===.5?e(uH,cH):e(s3(r),s3(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,n()):r},Hr(t)}function Xd(){var e=Gd(ul());return e.copy=function(){return Ca(e,Xd()).exponent(e.exponent())},_t.apply(e,arguments),e}function u3(){return Xd.apply(null,arguments).exponent(.5)}function c3(e){return Math.sign(e)*e*e}function dH(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function Fv(){var e=cl(),t=[0,1],r=!1,n;function a(i){var o=dH(e(i));return isNaN(o)?n:r?Math.round(o):o}return a.invert=function(i){return e.invert(c3(i))},a.domain=function(i){return arguments.length?(e.domain(i),a):e.domain()},a.range=function(i){return arguments.length?(e.range((t=Array.from(i,co)).map(c3)),a):t.slice()},a.rangeRound=function(i){return a.range(i).round(!0)},a.round=function(i){return arguments.length?(r=!!i,a):r},a.clamp=function(i){return arguments.length?(e.clamp(i),a):e.clamp()},a.unknown=function(i){return arguments.length?(n=i,a):n},a.copy=function(){return Fv(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},_t.apply(a,arguments),Hr(a)}function Wv(){var e=[],t=[],r=[],n;function a(){var o=0,l=Math.max(1,t.length);for(r=new Array(l-1);++o0?r[l-1]:e[0],l=r?[n[r-1],t]:[n[u-1],n[u]]},o.unknown=function(s){return arguments.length&&(i=s),o},o.thresholds=function(){return n.slice()},o.copy=function(){return qv().domain([e,t]).range(a).unknown(i)},_t.apply(Hr(o),arguments)}function Yv(){var e=[.5],t=[0,1],r,n=1;function a(i){return i!=null&&i<=i?t[la(e,i,0,n)]:r}return a.domain=function(i){return arguments.length?(e=Array.from(i),n=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(i){return arguments.length?(t=Array.from(i),n=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(i){var o=t.indexOf(i);return[e[o-1],e[o]]},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return Yv().domain(e).range(t).unknown(r)},_t.apply(a,arguments)}var c2=new Date,d2=new Date;function ut(e,t,r,n){function a(i){return e(i=arguments.length===0?new Date:new Date(+i)),i}return a.floor=i=>(e(i=new Date(+i)),i),a.ceil=i=>(e(i=new Date(i-1)),t(i,1),e(i),i),a.round=i=>{let o=a(i),l=a.ceil(i);return i-o(t(i=new Date(+i),o==null?1:Math.floor(o)),i),a.range=(i,o,l)=>{let s=[];if(i=a.ceil(i),l=l==null?1:Math.floor(l),!(i0))return s;let u;do s.push(u=new Date(+i)),t(i,l),e(i);while(uut(o=>{if(o>=o)for(;e(o),!i(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;t(o,-1),!i(o););else for(;--l>=0;)for(;t(o,1),!i(o););}),r&&(a.count=(i,o)=>(c2.setTime(+i),d2.setTime(+o),e(c2),e(d2),Math.floor(r(c2,d2))),a.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(n?o=>n(o)%i===0:o=>a.count(0,o)%i===0):a)),a}var Zd=ut(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Zd.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?ut(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Zd);var uue=Zd.range;var Fn=ut(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),d3=Fn.range;var bu=ut(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),fH=bu.range,wu=ut(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),pH=wu.range;var Su=ut(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),mH=Su.range,Au=ut(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),gH=Au.range;var ui=ut(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),vH=ui.range,ml=ut(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),hH=ml.range,Kv=ut(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),yH=Kv.range;function gl(e){return ut(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var ci=gl(0),Nu=gl(1),p3=gl(2),m3=gl(3),fo=gl(4),g3=gl(5),v3=gl(6),h3=ci.range,xH=Nu.range,bH=p3.range,wH=m3.range,SH=fo.range,AH=g3.range,NH=v3.range;function vl(e){return ut(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var di=vl(0),Cu=vl(1),y3=vl(2),x3=vl(3),po=vl(4),b3=vl(5),w3=vl(6),S3=di.range,CH=Cu.range,_H=y3.range,kH=x3.range,EH=po.range,OH=b3.range,TH=w3.range;var _u=ut(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),MH=_u.range,ku=ut(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),DH=ku.range;var Sn=ut(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Sn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ut(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var PH=Sn.range,An=ut(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());An.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ut(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var jH=An.range;function N3(e,t,r,n,a,i){let o=[[Fn,1,1e3],[Fn,5,5*1e3],[Fn,15,15*1e3],[Fn,30,30*1e3],[i,1,6e4],[i,5,5*6e4],[i,15,15*6e4],[i,30,30*6e4],[a,1,36e5],[a,3,3*36e5],[a,6,6*36e5],[a,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function l(u,c,d){let f=cx).right(o,f);if(p===o.length)return e.every(gu(u/31536e6,c/31536e6,d));if(p===0)return Zd.every(Math.max(gu(u,c,d),1));let[g,h]=o[f/o[p-1][2]53)return null;"w"in q||(q.w=1),"Z"in q?(I=h2(Jd(q.y,0,1)),K=I.getUTCDay(),I=K>4||K===0?Cu.ceil(I):Cu(I),I=ml.offset(I,(q.V-1)*7),q.y=I.getUTCFullYear(),q.m=I.getUTCMonth(),q.d=I.getUTCDate()+(q.w+6)%7):(I=v2(Jd(q.y,0,1)),K=I.getDay(),I=K>4||K===0?Nu.ceil(I):Nu(I),I=ui.offset(I,(q.V-1)*7),q.y=I.getFullYear(),q.m=I.getMonth(),q.d=I.getDate()+(q.w+6)%7)}else("W"in q||"U"in q)&&("w"in q||(q.w="u"in q?q.u%7:"W"in q?1:0),K="Z"in q?h2(Jd(q.y,0,1)).getUTCDay():v2(Jd(q.y,0,1)).getDay(),q.m=0,q.d="W"in q?(q.w+6)%7+q.W*7-(K+5)%7:q.w+q.U*7-(K+6)%7);return"Z"in q?(q.H+=q.Z/100|0,q.M+=q.Z%100,h2(q)):v2(q)}}function _(ie,_e,W,q){for(var A=0,I=_e.length,K=W.length,L,ye;A=K)return-1;if(L=_e.charCodeAt(A++),L===37){if(L=_e.charAt(A++),ye=k[L in C3?_e.charAt(A++):L],!ye||(q=ye(ie,W,q))<0)return-1}else if(L!=W.charCodeAt(q++))return-1}return q}function M(ie,_e,W){var q=u.exec(_e.slice(W));return q?(ie.p=c.get(q[0].toLowerCase()),W+q[0].length):-1}function z(ie,_e,W){var q=p.exec(_e.slice(W));return q?(ie.w=g.get(q[0].toLowerCase()),W+q[0].length):-1}function $(ie,_e,W){var q=d.exec(_e.slice(W));return q?(ie.w=f.get(q[0].toLowerCase()),W+q[0].length):-1}function U(ie,_e,W){var q=m.exec(_e.slice(W));return q?(ie.m=v.get(q[0].toLowerCase()),W+q[0].length):-1}function G(ie,_e,W){var q=h.exec(_e.slice(W));return q?(ie.m=x.get(q[0].toLowerCase()),W+q[0].length):-1}function j(ie,_e,W){return _(ie,t,_e,W)}function V(ie,_e,W){return _(ie,r,_e,W)}function w(ie,_e,W){return _(ie,n,_e,W)}function O(ie){return o[ie.getDay()]}function E(ie){return i[ie.getDay()]}function C(ie){return s[ie.getMonth()]}function S(ie){return l[ie.getMonth()]}function T(ie){return a[+(ie.getHours()>=12)]}function F(ie){return 1+~~(ie.getMonth()/3)}function X(ie){return o[ie.getUTCDay()]}function J(ie){return i[ie.getUTCDay()]}function se(ie){return s[ie.getUTCMonth()]}function ce(ie){return l[ie.getUTCMonth()]}function ge(ie){return a[+(ie.getUTCHours()>=12)]}function Te(ie){return 1+~~(ie.getUTCMonth()/3)}return{format:function(ie){var _e=N(ie+="",y);return _e.toString=function(){return ie},_e},parse:function(ie){var _e=D(ie+="",!1);return _e.toString=function(){return ie},_e},utcFormat:function(ie){var _e=N(ie+="",b);return _e.toString=function(){return ie},_e},utcParse:function(ie){var _e=D(ie+="",!0);return _e.toString=function(){return ie},_e}}}var C3={"-":"",_:" ",0:"0"},fr=/^\s*\d+/,zH=/^%/,LH=/[\\^$*+?|[\]().{}]/g;function Je(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",i=a.length;return n+(i[t.toLowerCase(),r]))}function $H(e,t,r){var n=fr.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function UH(e,t,r){var n=fr.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function HH(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function VH(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function FH(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function _3(e,t,r){var n=fr.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function k3(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function WH(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function qH(e,t,r){var n=fr.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function YH(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function E3(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function KH(e,t,r){var n=fr.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function O3(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function GH(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function XH(e,t,r){var n=fr.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function ZH(e,t,r){var n=fr.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function QH(e,t,r){var n=fr.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function JH(e,t,r){var n=zH.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function RH(e,t,r){var n=fr.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function eV(e,t,r){var n=fr.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function T3(e,t){return Je(e.getDate(),t,2)}function tV(e,t){return Je(e.getHours(),t,2)}function rV(e,t){return Je(e.getHours()%12||12,t,2)}function nV(e,t){return Je(1+ui.count(Sn(e),e),t,3)}function I3(e,t){return Je(e.getMilliseconds(),t,3)}function aV(e,t){return I3(e,t)+"000"}function iV(e,t){return Je(e.getMonth()+1,t,2)}function oV(e,t){return Je(e.getMinutes(),t,2)}function lV(e,t){return Je(e.getSeconds(),t,2)}function sV(e){var t=e.getDay();return t===0?7:t}function uV(e,t){return Je(ci.count(Sn(e)-1,e),t,2)}function z3(e){var t=e.getDay();return t>=4||t===0?fo(e):fo.ceil(e)}function cV(e,t){return e=z3(e),Je(fo.count(Sn(e),e)+(Sn(e).getDay()===4),t,2)}function dV(e){return e.getDay()}function fV(e,t){return Je(Nu.count(Sn(e)-1,e),t,2)}function pV(e,t){return Je(e.getFullYear()%100,t,2)}function mV(e,t){return e=z3(e),Je(e.getFullYear()%100,t,2)}function gV(e,t){return Je(e.getFullYear()%1e4,t,4)}function vV(e,t){var r=e.getDay();return e=r>=4||r===0?fo(e):fo.ceil(e),Je(e.getFullYear()%1e4,t,4)}function hV(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Je(t/60|0,"0",2)+Je(t%60,"0",2)}function M3(e,t){return Je(e.getUTCDate(),t,2)}function yV(e,t){return Je(e.getUTCHours(),t,2)}function xV(e,t){return Je(e.getUTCHours()%12||12,t,2)}function bV(e,t){return Je(1+ml.count(An(e),e),t,3)}function L3(e,t){return Je(e.getUTCMilliseconds(),t,3)}function wV(e,t){return L3(e,t)+"000"}function SV(e,t){return Je(e.getUTCMonth()+1,t,2)}function AV(e,t){return Je(e.getUTCMinutes(),t,2)}function NV(e,t){return Je(e.getUTCSeconds(),t,2)}function CV(e){var t=e.getUTCDay();return t===0?7:t}function _V(e,t){return Je(di.count(An(e)-1,e),t,2)}function B3(e){var t=e.getUTCDay();return t>=4||t===0?po(e):po.ceil(e)}function kV(e,t){return e=B3(e),Je(po.count(An(e),e)+(An(e).getUTCDay()===4),t,2)}function EV(e){return e.getUTCDay()}function OV(e,t){return Je(Cu.count(An(e)-1,e),t,2)}function TV(e,t){return Je(e.getUTCFullYear()%100,t,2)}function MV(e,t){return e=B3(e),Je(e.getUTCFullYear()%100,t,2)}function DV(e,t){return Je(e.getUTCFullYear()%1e4,t,4)}function PV(e,t){var r=e.getUTCDay();return e=r>=4||r===0?po(e):po.ceil(e),Je(e.getUTCFullYear()%1e4,t,4)}function jV(){return"+0000"}function D3(){return"%"}function P3(e){return+e}function j3(e){return Math.floor(+e/1e3)}var Eu,Gv,$3,Xv,U3;x2({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function x2(e){return Eu=y2(e),Gv=Eu.format,$3=Eu.parse,Xv=Eu.utcFormat,U3=Eu.utcParse,Eu}function IV(e){return new Date(e)}function zV(e){return e instanceof Date?+e:+new Date(+e)}function Zv(e,t,r,n,a,i,o,l,s,u){var c=cl(),d=c.invert,f=c.domain,p=u(".%L"),g=u(":%S"),h=u("%I:%M"),x=u("%I %p"),m=u("%a %d"),v=u("%b %d"),y=u("%B"),b=u("%Y");function k(N){return(s(N)t(a/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(a,i)=>_v(e,i/n))},r.copy=function(){return eh(t).domain(e)},Vn.apply(r,arguments)}function th(){var e=0,t=.5,r=1,n=1,a,i,o,l,s,u=lr,c,d=!1,f;function p(h){return isNaN(h=+h)?f:(h=.5+((h=+c(h))-i)*(n*h{if(e!=null){var n=e.scale,a=e.type;if(n==="auto")return a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":a==="category"?"band":"linear";if(typeof n=="string")return $V(n)?n:"point"}};function UV(e,t){for(var r=0,n=e.length,a=e[0]t)?r=i+1:n=i}return r}function ih(e,t){if(e){var r=t??e.domain(),n=r.map(i=>{var o;return(o=e(i))!==null&&o!==void 0?o:0}),a=e.range();if(!(r.length===0||a.length<2))return i=>{var o,l,s=UV(n,i);if(s<=0)return r[0];if(s>=r.length)return r[r.length-1];var u=(o=n[s-1])!==null&&o!==void 0?o:0,c=(l=n[s])!==null&&l!==void 0?l:0;return Math.abs(i-u)<=Math.abs(i-c)?r[s-1]:r[s]}}}function W3(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):ih(e,void 0)}function q3(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function oh(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],Oa=(e,t)=>{var r=k2(e,t);return r??Vt},Ft={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:_2,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:Xo},E2=(e,t)=>e.cartesianAxis.yAxis[t],Ta=(e,t)=>{var r=E2(e,t);return r??Ft},GV={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},O2=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??GV},Or=(e,t,r)=>{switch(t){case"xAxis":return Oa(e,r);case"yAxis":return Ta(e,r);case"zAxis":return O2(e,r);case"angleAxis":return hv(e,r);case"radiusAxis":return yv(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},XV=(e,t,r)=>{switch(t){case"xAxis":return Oa(e,r);case"yAxis":return Ta(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},af=(e,t,r)=>{switch(t){case"xAxis":return Oa(e,r);case"yAxis":return Ta(e,r);case"angleAxis":return hv(e,r);case"radiusAxis":return yv(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},T2=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function M2(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var D2=e=>e.graphicalItems.cartesianItems,ZV=Y([or,Dd],M2),P2=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),Tu=Y([D2,Or,ZV],P2,{memoizeOptions:{resultEqualityCheck:pu}}),X3=Y([Tu],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Pd)),j2=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),QV=Y([Tu],j2),I2=e=>e.map(t=>t.data).filter(Boolean).flat(1),JV=Y([Tu],e=>e.some(t=>!t.data)),Z3=Y([Tu],I2,{memoizeOptions:{resultEqualityCheck:pu}}),z2=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,a=t.dataStartIndex,i=t.dataEndIndex;return e.length>0?e:n.slice(a,i+1)},L2=Y([Z3,Td],z2),RV=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:yt(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(a=>({value:yt(a,n)}))):e.map(n=>({value:n})),B2=(e,t,r,n,a,i)=>{var o=n.chartData,l=o===void 0?[]:o,s=n.dataStartIndex,u=n.dataEndIndex,c=RV(e,t,r);if(a&&t?.dataKey!=null&&i.length>0){var d=l.slice(s,u+1),f=d.map(p=>({value:yt(p,t.dataKey)})).filter(p=>p.value!=null);return[...f,...c]}return c},of=Y([L2,Or,Tu,Td,JV,Z3],B2);function Ou(e){if($r(e)||e instanceof Date){var t=Number(e);if(Me(t))return t}}function K3(e){if(Array.isArray(e)){var t=[Ou(e[0]),Ou(e[1])];return bn(t)?t:void 0}var r=Ou(e);if(r!=null)return[r,r]}function ua(e){return e.map(Ou).filter(ir)}function eF(e,t){var r=Ou(e),n=Ou(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var tF=Y([of],e=>e?.map(t=>t.value).sort(eF));function Q3(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function rF(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Cr(t))n=t;else if(Array.isArray(t)){var a=ua(t);a.length>0&&(n=Math.max(...a))}return n==null?[]:ua(r.flatMap(i=>{var o=yt(e,i.dataKey),l,s;if(Array.isArray(o)){var u=G3(o,2);l=u[0],s=u[1]}else l=s=o;if(!(!Me(l)||!Me(s)))return[n-l,n+s]}))}var Wt=e=>{var t=Ht(e),r=lo(e);return af(e,t,r)},pi=Y([Wt],e=>e?.dataKey),nF=Y([X3,Td,Wt],wv),$2=(e,t,r,n)=>{var a={},i=t.reduce((o,l)=>{if(l.stackId==null)return o;var s=o[l.stackId];return s==null&&(s=[]),s.push(l),o[l.stackId]=s,o},a);return Object.fromEntries(Object.entries(i).map(o=>{var l=G3(o,2),s=l[0],u=l[1],c=n?[...u].reverse():u,d=c.map(fu);return[s,{stackedData:uO(e,d,r),graphicalItems:c}]}))},U2=Y([nF,X3,cu,pv],$2),H2=(e,t,r,n)=>{var a=t.dataStartIndex,i=t.dataEndIndex;if(n==null&&r!=="zAxis")return dO(e,a,i)},aF=Y([Or],e=>e.allowDataOverflow),lh=e=>{var t;if(e==null||!("domain"in e))return _2;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=ua(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:_2},J3=Y([Or],lh),R3=Y([J3,aF],uv),iF=Y([U2,en,or,R3],H2,{memoizeOptions:{resultEqualityCheck:nl}}),sh=e=>e.errorBars,oF=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>Q3(r,n)),nf=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],l,s;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:o,f=(c=a[u.id])===null||c===void 0?void 0:c.filter(p=>Q3(i,p));d.forEach(p=>{var g,h=yt(p,(g=r.dataKey)!==null&&g!==void 0?g:u.dataKey),x=rF(p,h,f);if(x.length>=2){var m=Math.min(...x),v=Math.max(...x);(l==null||ms)&&(s=v)}var y=K3(h);y!=null&&(l=l==null?y[0]:Math.min(l,y[0]),s=s==null?y[1]:Math.max(s,y[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=K3(yt(u,r.dataKey));c!=null&&(l=l==null?c[0]:Math.min(l,c[0]),s=s==null?c[1]:Math.max(s,c[1]))}),Me(l)&&Me(s))return[l,s]},lF=Y([L2,Or,QV,sh,or,r4],V2,{memoizeOptions:{resultEqualityCheck:nl}});function sF(e){var t=e.value;if($r(t)||t instanceof Date)return t}var uF=(e,t,r)=>{var n=e.map(sF).filter(a=>a!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&bb(n))?sv(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},F2=e=>e.referenceElements.dots,hl=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),cF=Y([F2,or,Dd],hl),W2=e=>e.referenceElements.areas,dF=Y([W2,or,Dd],hl),q2=e=>e.referenceElements.lines,fF=Y([q2,or,Dd],hl),Y2=(e,t)=>{if(e!=null){var r=ua(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},pF=Y(cF,or,Y2),K2=(e,t)=>{if(e!=null){var r=ua(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},mF=Y([dF,or],K2);function gF(e){var t;if(e.x!=null)return ua([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:ua(r)}function vF(e){var t;if(e.y!=null)return ua([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:ua(r)}var G2=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?gF(n):vF(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},hF=Y([fF,or],G2),yF=Y(pF,hF,mF,(e,t,r)=>nf(e,r,t)),X2=(e,t,r,n,a,i,o,l,s)=>{if(r!=null)return r;var u=o==="vertical"&&l==="xAxis"||o==="horizontal"&&l==="yAxis",c=u?nf(n,i,a):nf(i,a),d=o4(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&s!=null?s:d)},xF=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=ua(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},bF=Y([Or],xF,{memoizeOptions:{resultEqualityCheck:nl}}),wF=Y([Or,J3,R3,iF,lF,yF,tt,or,bF],X2,{memoizeOptions:{resultEqualityCheck:nl}}),SF=[0,1],Z2=(e,t,r,n,a,i,o)=>{if(!((e==null||r==null||r.length===0)&&o===void 0)){var l=e.dataKey,s=e.type,u=Rr(t,i);if(u&&l==null){var c;return sv(0,(c=r?.length)!==null&&c!==void 0?c:0)}return s==="category"?uF(n,e,u):a==="expand"&&!u?SF:o}},Q2=Y([Or,tt,L2,of,cu,or,wF],Z2),Mu=Y([Or,T2,du],ah),J2=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var a=lh(t),i=Array.isArray(a)&&(a[0]==="auto"||a[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&bn(e)){if(i)return dv(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return fv(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(i&&bn(e))return dv(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&bn(e))return fv(e,t.tickCount,t.allowDecimals,"adaptive")}}},R2=Y([Q2,af,Mu],J2),ew=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&bn(t)&&Array.isArray(r)&&r.length>0){var a,i,o=t[0],l=(a=r[0])!==null&&a!==void 0?a:0,s=t[1],u=(i=r[r.length-1])!==null&&i!==void 0?i:0;return[Math.min(o,l),Math.max(s,u)]}return t},AF=Y([Or,Q2,R2,or],ew),NF=Y(of,Or,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(ua(e.map(d=>d.value))).sort((d,f)=>d-f),a=n[0],i=n[n.length-1];if(a==null||i==null)return 1/0;var o=i-a;if(o===0)return 1/0;for(var l=0;la,(e,t,r,n,a)=>{if(!Me(e))return 0;var i=t==="vertical"?n.height:n.width;if(a==="gap")return e*i/2;if(a==="no-gap"){var o=Ln(r,e*i),l=e*i/2;return l-o-(l-o)/i*o}return 0}),CF=(e,t,r)=>{var n=Oa(e,t);return n==null||typeof n.padding!="string"?0:eM(e,"xAxis",t,r,n.padding)},_F=(e,t,r)=>{var n=Ta(e,t);return n==null||typeof n.padding!="string"?0:eM(e,"yAxis",t,r,n.padding)},kF=Y(Oa,CF,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var a=e.padding;return typeof a=="string"?{left:t,right:t}:{left:((r=a.left)!==null&&r!==void 0?r:0)+t,right:((n=a.right)!==null&&n!==void 0?n:0)+t}}),EF=Y(Ta,_F,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var a=e.padding;return typeof a=="string"?{top:t,bottom:t}:{top:((r=a.top)!==null&&r!==void 0?r:0)+t,bottom:((n=a.bottom)!==null&&n!==void 0?n:0)+t}}),tw=Y([xt,kF,Zo,ru,(e,t,r)=>r],(e,t,r,n,a)=>{var i=n.padding;return a?[i.left,r.width-i.right]:[e.left+t.left,e.left+e.width-t.right]}),rw=Y([xt,tt,EF,Zo,ru,(e,t,r)=>r],(e,t,r,n,a,i)=>{var o=a.padding;return i?[n.height-o.bottom,o.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Du=(e,t,r,n)=>{var a;switch(t){case"xAxis":return tw(e,r,n);case"yAxis":return rw(e,r,n);case"zAxis":return(a=O2(e,r))===null||a===void 0?void 0:a.range;case"angleAxis":return W1(e);case"radiusAxis":return q1(e,r);default:return}},tM=Y([Or,Du],tl),OF=Y([Mu,AF],b4),nw=Y([Or,Mu,OF,tM],rf),aw=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var a=r.type,i=r.scale,o=Rr(e,n);if(o&&(a==="number"||i!=="auto"))return t.map(l=>l.value)}},iw=Y([tt,of,af,or],aw),uh=Y([nw],jd),Dde=Y([nw],W3),Pde=Y([nw,tF],ih),jde=Y([Tu,sh,or],oF);function rM(e,t){return e.idt.id?1:0}var ch=(e,t)=>t,dh=(e,t,r)=>r,TF=Y(eu,ch,dh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(rM)),MF=Y(tu,ch,dh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(rM)),nM=(e,t)=>{var r=typeof t.height=="number"?t.height:bd;return{width:e.width,height:r}},DF=(e,t)=>{var r=typeof t.width=="number"?t.width:Xo;return{width:r,height:e.height}},aM=Y(xt,Oa,nM),PF=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},jF=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},IF=Y(Er,xt,TF,ch,dh,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var s=nM(t,l);o==null&&(o=PF(t,n,e));var u=n==="top"&&!a||n==="bottom"&&a;i[l.id]=o-Number(u)*s.height,o+=(u?-1:1)*s.height}),i}),zF=Y(kr,xt,MF,ch,dh,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var s=DF(t,l);o==null&&(o=jF(t,n,e));var u=n==="left"&&!a||n==="right"&&a;i[l.id]=o-Number(u)*s.width,o+=(u?-1:1)*s.width}),i}),LF=(e,t)=>{var r=Oa(e,t);if(r!=null)return IF(e,r.orientation,r.mirror)},iM=Y([xt,Oa,LF,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:e.left,y:0}:{x:e.left,y:a}}}),BF=(e,t)=>{var r=Ta(e,t);if(r!=null)return zF(e,r.orientation,r.mirror)},oM=Y([xt,Ta,BF,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:0,y:e.top}:{x:a,y:e.top}}}),lM=Y(xt,Ta,(e,t)=>{var r=typeof t.width=="number"?t.width:Xo;return{width:r,height:e.height}});var ow=(e,t,r,n)=>{if(r!=null){var a=r.allowDuplicatedCategory,i=r.type,o=r.dataKey,l=Rr(e,n),s=t.map(c=>c.value),u=s.filter(c=>c!=null);if(o&&l&&i==="category"&&a&&bb(u))return s}},lw=Y([tt,of,Or,or],ow),sw=Y([tt,XV,Mu,uh,lw,iw,Du,R2,or],(e,t,r,n,a,i,o,l,s)=>{if(t!=null){var u=Rr(e,s);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:s,categoricalDomain:i,duplicateDomain:a,isCategorical:u,niceTicks:l,range:o,realScaleType:r,scale:n}}}),$F=(e,t,r,n,a,i,o,l,s)=>{if(!(t==null||n==null)){var u=Rr(e,s),c=t.type,d=t.ticks,f=t.tickCount,p=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,g=c==="category"&&n.bandwidth?n.bandwidth()/p:0;g=s==="angleAxis"&&i!=null&&i.length>=2?ar(i[0]-i[1])*2*g:g;var h=d||a;return h?h.map((x,m)=>{var v=o?o.indexOf(x):x,y=n.map(v);return Me(y)?{index:m,coordinate:y+g,value:x,offset:g}:null}).filter(ir):u&&l?l.map((x,m)=>{var v=n.map(x);return Me(v)?{coordinate:v+g,value:x,index:m,offset:g}:null}).filter(ir):n.ticks?n.ticks(f).map((x,m)=>{var v=n.map(x);return Me(v)?{coordinate:v+g,value:x,index:m,offset:g}:null}).filter(ir):n.domain().map((x,m)=>{var v=n.map(x);return Me(v)?{coordinate:v+g,value:o?o[x]:x,index:m,offset:g}:null}).filter(ir)}},fh=Y([tt,af,Mu,uh,R2,Du,lw,iw,or],$F),UF=(e,t,r,n,a,i,o)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var l=Rr(e,o),s=t.tickCount,u=0;return u=o==="angleAxis"&&n?.length>=2?ar(n[0]-n[1])*2*u:u,l&&i?i.map((c,d)=>{var f=r.map(c);return Me(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(ir):r.ticks?r.ticks(s).map((c,d)=>{var f=r.map(c);return Me(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(ir):r.domain().map((c,d)=>{var f=r.map(c);return Me(f)?{coordinate:f+u,value:a?a[c]:c,index:d,offset:u}:null}).filter(ir)}},uw=Y([tt,af,uh,Du,lw,iw,or],UF),cw=Y(Or,uh,(e,t)=>{if(!(e==null||t==null))return oh(oh({},e),{},{scale:t})}),HF=Y([Or,Mu,Q2,tM],rf),VF=Y([HF],jd),Ide=Y((e,t,r)=>O2(e,r),VF,(e,t)=>{if(!(e==null||t==null))return oh(oh({},e),{},{scale:t})}),sM=Y([tt,eu,tu],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),FF=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},zde=Y([FF],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,a=e[0];for(var i of e){var o=Math.abs(i.coordinate-t);oe.options.defaultTooltipEventType,fw=e=>e.options.validateTooltipEventTypes;function pw(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function mo(e,t){var r=dw(e),n=fw(e);return pw(t,r,n)}function uM(e){return be(t=>mo(t,e))}var ph=(e,t)=>{var r,n=Number(t);if(!(Cr(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var cM=e=>e.tooltip.settings;var mi={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},WF={itemInteraction:{click:mi,hover:mi},axisInteraction:{click:mi,hover:mi},keyboardInteraction:mi,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},dM=Qe({name:"tooltip",initialState:WF,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(ze(t.payload))},prepare:rt()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=br(e).tooltipItemPayloads.indexOf(ze(n));i>-1&&(e.tooltipItemPayloads[i]=ze(a))},prepare:rt()},removeTooltipEntrySettings:{reducer(e,t){var r=br(e).tooltipItemPayloads.indexOf(ze(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:rt()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Wn=dM.actions,fM=Wn.addTooltipEntrySettings,pM=Wn.replaceTooltipEntrySettings,mM=Wn.removeTooltipEntrySettings,gM=Wn.setTooltipSettingsState,vM=Wn.setActiveMouseOverItemIndex,qde=Wn.mouseLeaveItem,mh=Wn.mouseLeaveChart,Yde=Wn.setActiveClickItemIndex,gh=Wn.setMouseOverAxisIndex,hM=Wn.setMouseClickAxisIndex,Pu=Wn.setSyncInteraction,lf=Wn.setKeyboardInteraction;var yM=dM.reducer;function xM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vh(e){for(var t=1;t{if(t==null)return mi;var a=GF(e,t,r);if(a==null)return mi;if(a.active)return a;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var i=e.settings.active===!0;if(XF(a)){if(i)return vh(vh({},a),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return vh(vh({},mi),{},{coordinate:a.coordinate})};function ZF(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function QF(e,t){var r=ZF(e),n=t[0],a=t[1];if(r===void 0)return!1;var i=Math.min(n,a),o=Math.max(n,a);return r>=i&&r<=o}function JF(e,t,r){if(r==null||t==null)return!0;var n=yt(e,t);return n==null||!bn(r)?!0:QF(n,r)}var go=(e,t,r,n)=>{var a=e?.index;if(a==null)return null;var i=Number(a);if(!Me(i))return a;var o=0,l=1/0;t.length>0&&(l=t.length-1);var s=Math.max(o,Math.min(i,l)),u=t[s];return u==null||JF(u,r,n)?String(s):null};var yh=(e,t,r,n,a,i,o)=>{if(i!=null){var l=o[0],s=l?.getPosition(i);if(s!=null)return s;var u=a?.[Number(i)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var xh=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var a;if(r==="hover"?a=e.itemInteraction.hover.graphicalItemId:a=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&a==null)return e.tooltipItemPayloads;if(a==null&&(n!=null||e.keyboardInteraction.active)){var i=e.tooltipItemPayloads[0];return i!=null?[i]:[]}return e.tooltipItemPayloads.filter(o=>{var l;return((l=o.settings)===null||l===void 0?void 0:l.graphicalItemId)===a})};var bh=e=>e.options.tooltipPayloadSearcher;var gi=e=>e.tooltip;function bM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function wM(e){for(var t=1;te(t)}function SM(e){if(typeof e=="string")return e}function iW(e){if(!(e==null||typeof e!="object")){var t="name"in e?rW(e.name):void 0,r="unit"in e?nW(e.unit):void 0,n="dataKey"in e?aW(e.dataKey):void 0,a="payload"in e?e.payload:void 0,i="color"in e?SM(e.color):void 0,o="fill"in e?SM(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:a,color:i,fill:o}}}function oW(e,t){return e??t}var wh=(e,t,r,n,a,i,o)=>{if(!(t==null||i==null)){var l=r.chartData,s=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((f,p)=>{var g,h=p.dataDefinedOnItem,x=p.settings,m=oW(h,l),v=Array.isArray(m)?$g(m,u,c):m,y=(g=x?.dataKey)!==null&&g!==void 0?g:n,b=x?.nameKey,k;if(n&&Array.isArray(v)&&!Array.isArray(v[0])&&o==="axis"?(k=Tm(v,n,a),k==null&&(k=i(v,t,s,b))):k=i(v,t,s,b),Array.isArray(k))k.forEach(D=>{var _,M,z=iW(D),$=z?.name,U=z?.dataKey,G=z?.payload,j=wM(wM({},x),{},{name:$,unit:z?.unit,color:(_=z?.color)!==null&&_!==void 0?_:x?.color,fill:(M=z?.fill)!==null&&M!==void 0?M:x?.fill});f.push(S1({tooltipEntrySettings:j,dataKey:U,payload:G,value:yt(G,U),name:$==null?void 0:String($)}))});else{var N;f.push(S1({tooltipEntrySettings:x,dataKey:y,payload:k,value:yt(k,y),name:(N=yt(k,b))!==null&&N!==void 0?N:x?.name}))}return f},d)}};var mw=Y([Wt,T2,du],ah),lW=Y([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),sW=Y([Ht,lo],M2),vo=Y([lW,Wt,sW],P2,{memoizeOptions:{resultEqualityCheck:pu}}),uW=Y([vo],e=>e.filter(Pd)),AM=Y([vo],I2,{memoizeOptions:{resultEqualityCheck:pu}}),cW=Y([vo],e=>e.some(t=>!t.data)),vi=Y([AM,en],z2),dW=Y([uW,en,Wt],wv),gw=Y([vi,Wt,vo,en,cW,AM],B2),NM=Y([Wt],lh),fW=Y([Wt],e=>e.allowDataOverflow),CM=Y([NM,fW],uv),pW=Y([vo],e=>e.filter(Pd)),mW=Y([dW,pW,cu,pv],$2),gW=Y([mW,en,Ht,CM],H2),vW=Y([vo],j2),hW=Y([vi,Wt,vW,sh,Ht,n4],V2,{memoizeOptions:{resultEqualityCheck:nl}}),yW=Y([F2,Ht,lo],hl),xW=Y([yW,Ht],Y2),bW=Y([W2,Ht,lo],hl),wW=Y([bW,Ht],K2),SW=Y([q2,Ht,lo],hl),AW=Y([SW,Ht],G2),NW=Y([xW,AW,wW],nf),CW=Y([Wt,NM,CM,gW,hW,NW,tt,Ht],X2),ho=Y([Wt,tt,vi,gw,cu,Ht,CW],Z2),_W=Y([ho,Wt,mw],J2),kW=Y([Wt,ho,_W,Ht],ew),_M=e=>{var t=Ht(e),r=lo(e),n=!1;return Du(e,t,r,n)},vw=Y([Wt,_M],tl),EW=Y([Wt,mw,kW,vw],rf),hw=Y([EW],jd),OW=Y([tt,gw,Wt,Ht],ow),TW=Y([tt,gw,Wt,Ht],aw),MW=(e,t,r,n,a,i,o,l)=>{if(t){var s=t.type,u=Rr(e,l);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=s==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=l==="angleAxis"&&a!=null&&a?.length>=2?ar(a[0]-a[1])*2*d:d,u&&o?o.map((f,p)=>{var g=n.map(f);return Me(g)?{coordinate:g+d,value:f,index:p,offset:d}:null}).filter(ir):n.domain().map((f,p)=>{var g=n.map(f);return Me(g)?{coordinate:g+d,value:i?i[f]:f,index:p,offset:d}:null}).filter(ir)}}},rn=Y([tt,Wt,mw,hw,_M,OW,TW,Ht],MW),yw=Y([dw,fw,cM],(e,t,r)=>pw(r.shared,e,t)),kM=e=>e.tooltip.settings.trigger,xw=e=>e.tooltip.settings.defaultIndex,sf=Y([gi,yw,kM,xw],hh),yl=Y([sf,vi,pi,ho],go),Sh=Y([rn,yl],ph),EM=Y([sf],e=>{if(e)return e.dataKey}),OM=Y([sf],e=>{if(e)return e.graphicalItemId}),TM=Y([gi,yw,kM,xw],xh),DW=Y([kr,Er,tt,xt,rn,xw,TM],yh),bw=Y([sf,DW],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),ww=Y([sf],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),PW=Y([TM,yl,en,pi,Sh,bh,yw],wh),MM=Y([PW],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function DM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function PM(e){for(var t=1;tbe(Wt),jM=()=>{var e=LW(),t=be(rn),r=be(hw);return!e||!r?Rs(void 0,t):Rs(PM(PM({},e),{},{scale:r}),t)};function IM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ju(e){for(var t=1;t{var a=t.find(i=>i&&i.index===r);if(a){if(e==="horizontal")return{x:a.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:a.coordinate}}return{x:0,y:0}},LM=(e,t,r,n)=>{var a=t.find(u=>u&&u.index===r);if(a){if(e==="centric"){var i=a.coordinate,o=n.radius;return ju(ju(ju({},n),Dt(n.cx,n.cy,o,i)),{},{angle:i,radius:o})}var l=a.coordinate,s=n.angle;return ju(ju(ju({},n),Dt(n.cx,n.cy,l,s)),{},{angle:s,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function BM(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var Sw=(e,t,r,n,a)=>{var i,o=(i=t?.length)!==null&&i!==void 0?i:0;if(o<=1||e==null)return 0;if(n==="angleAxis"&&a!=null&&Math.abs(Math.abs(a[1]-a[0])-360)<=1e-6)for(var l=a[1]-a[0],s=(V,w,O)=>[e,e+l,e-l].some(E=>(O?E>=V:E>V)&&E<=w),u=0;u0?(c=r[u-1])===null||c===void 0?void 0:c.coordinate:(d=r[o-1])===null||d===void 0?void 0:d.coordinate,x=(f=r[u])===null||f===void 0?void 0:f.coordinate,m=u>=o-1?(p=r[0])===null||p===void 0?void 0:p.coordinate:(g=r[u+1])===null||g===void 0?void 0:g.coordinate,v=void 0;if(!(h==null||x==null||m==null))if(ar(x-h)!==ar(m-x)){var y=[];if(ar(m-x)===ar(a[1]-a[0])){v=m;var b=x+a[1]-a[0];y[0]=Math.min(b,(b+h)/2),y[1]=Math.max(b,(b+h)/2)}else{v=h;var k=m+a[1]-a[0];y[0]=Math.min(x,(k+x)/2),y[1]=Math.max(x,(k+x)/2)}var N=[Math.min(x,(v+x)/2),Math.max(x,(v+x)/2)];if(s(N[0],N[1],!1)||s(y[0],y[1],!0)){var D;return(D=r[u])===null||D===void 0?void 0:D.index}}else{var _=Math.min(h,m),M=Math.max(h,m);if(s((_+x)/2,(M+x)/2,!1)){var z;return(z=r[u])===null||z===void 0?void 0:z.index}}}else if(t)for(var $=0;$(U.coordinate+j.coordinate)/2||$>0&&$(U.coordinate+j.coordinate)/2&&e<=(U.coordinate+G.coordinate)/2)return U.index}}return-1};var Ah=()=>be(du),Aw=(e,t)=>t,$M=(e,t,r)=>r,Nw=(e,t,r,n)=>n,UM=Y(rn,e=>ii(e,t=>t.coordinate)),Cw=Y([gi,Aw,$M,Nw],hh),_w=Y([Cw,vi,pi,ho],go),HM=(e,t,r)=>{if(t!=null){var n=gi(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},VM=Y([gi,Aw,$M,Nw],xh),uf=Y([kr,Er,tt,xt,rn,Nw,VM],yh),FM=Y([Cw,uf],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),kw=Y([rn,_w],ph),WM=Y([VM,_w,en,pi,kw,bh,Aw],wh),qM=Y([Cw,_w],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),HW=(e,t,r,n,a,i,o)=>{if(!(!e||!r||!n||!a)&&BM(e,o)){var l=fO(e,t),s=Sw(l,i,a,r,n),u=zM(t,a,s,e);return{activeIndex:String(s),activeCoordinate:u}}},VW=(e,t,r,n,a,i,o)=>{if(!(!e||!n||!a||!i||!r)){var l=VT(e,r);if(l){var s=pO(l,t),u=Sw(s,o,i,n,a),c=LM(t,i,u,l);return{activeIndex:String(u),activeCoordinate:c}}}},YM=(e,t,r,n,a,i,o,l)=>{if(!(!e||!t||!n||!a||!i))return t==="horizontal"||t==="vertical"?HW(e,t,n,a,i,o,l):VW(e,t,r,n,a,i,o)};var Iu=Q(R()),r8=Q(Jf());var KM=Y(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),GM=Y(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(it)),r=Array.from(new Set(t));return r.sort((n,a)=>n-a)},{memoizeOptions:{resultEqualityCheck:x4}});function XM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ZM(e){for(var t=1;tZM(ZM({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),YW)},GW=new Set(Object.values(it));function XW(e){return GW.has(e)}var QM=Qe({name:"zIndex",initialState:KW,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:rt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!XW(r)&&delete e.zIndexMap[r])},prepare:rt()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,a=r.element,i=r.isPanorama;e.zIndexMap[n]?i?e.zIndexMap[n].panoramaElement=ze(a):e.zIndexMap[n].element=ze(a):e.zIndexMap[n]={consumers:0,element:i?void 0:ze(a),panoramaElement:i?ze(a):void 0}},prepare:rt()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:rt()}}}),Nh=QM.actions,JM=Nh.registerZIndexPortal,Ch=Nh.unregisterZIndexPortal,RM=Nh.registerZIndexPortalElement,e8=Nh.unregisterZIndexPortalElement;var t8=QM.reducer;function wr(e){var t=e.zIndex,r=e.children,n=OO(),a=n&&t!==void 0&&t!==0,i=ft(),o=(0,Iu.useRef)(void 0),l=(0,Iu.useRef)(new Set),s=$e(),u=be(d=>KM(d,t,i));if((0,Iu.useLayoutEffect)(()=>{if(!a){var d=l.current;d.forEach(p=>{s(Ch({zIndex:p}))}),d.clear(),o.current=void 0;return}if(l.current.has(t)||(s(JM({zIndex:t})),l.current.add(t)),u){o.current=u;var f=l.current;f.forEach(p=>{p!==t&&(s(Ch({zIndex:p})),f.delete(p))})}},[s,t,a,u]),(0,Iu.useLayoutEffect)(()=>{var d=l.current;return()=>{d.forEach(f=>{s(Ch({zIndex:f}))}),d.clear()}},[s]),!a)return r;var c=u??o.current;return c?(0,r8.createPortal)(r,c):null}function Ew(){return Ew=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,Eh.useContext)(Ow);var df=Q(R());var s8=Q(l8(),1);var u8=s8.default;var Lu=new u8;var Th="recharts.syncEvent.tooltip",Mw="recharts.syncEvent.brush";var c8=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Cr(r))return e[r]}},nq={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},d8=Qe({name:"options",initialState:nq,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),f8=d8.reducer,p8=d8.actions.createEventEmitter;function m8(e){return e.tooltip.syncInteraction}var aq={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},g8=Qe({name:"chartData",initialState:aq,reducers:{setChartData(e,t){if(e.chartData=ze(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,a=r.endIndex;n!=null&&(e.dataStartIndex=n),a!=null&&(e.dataEndIndex=a)}}}),Dw=g8.actions,Pw=Dw.setChartData,v8=Dw.setDataStartEndIndexes,iq=Dw.setComputedData;var h8=g8.reducer;var oq=["x","y"];function y8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Bu(e){for(var t=1;ts.rootProps.className);(0,df.useEffect)(()=>{if(e==null)return ra;var s=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(Pu({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var f;if(o&&c!==null&&c!==void 0&&(f=c.payload)!==null&&f!==void 0&&f.coordinate&&c.payload.sourceViewBox){var p=c.payload.coordinate,g=p.x,h=p.y,x=cq(p,oq),m=c.payload.sourceViewBox,v=m.x,y=m.y,b=m.width,k=m.height,N=Bu(Bu({},x),{},{x:o.x+(b?(g-v)/b:0)*o.width,y:o.y+(k?(h-y)/k:0)*o.height});r(Bu(Bu({},c),{},{payload:Bu(Bu({},c.payload),{},{coordinate:N})}))}else r(c);return}if(a!=null){var D;if(typeof n=="function"){var _={activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate},M=n(a,_);D=a[M]}else n==="value"&&(D=a.find(O=>String(O.value)===c.payload.label));var z=c.payload.coordinate;if(z==null||o==null){r(Pu({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(D==null){r(Pu({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var $=z.x,U=z.y,G=Math.min($,o.x+o.width),j=Math.min(U,o.y+o.height),V={x:i==="horizontal"?D.coordinate:G,y:i==="horizontal"?j:D.coordinate},w=Pu({active:c.payload.active,coordinate:V,dataKey:c.payload.dataKey,index:String(D.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(w)}}};return Lu.on(Th,s),()=>{Lu.off(Th,s)}},[l,r,t,e,n,a,i,o])}function pq(){var e=be(mv),t=be(gv),r=$e();(0,df.useEffect)(()=>{if(e==null)return ra;var n=(a,i,o)=>{t!==o&&e===a&&r(v8(i))};return Lu.on(Mw,n),()=>{Lu.off(Mw,n)}},[r,t,e])}function x8(){var e=$e();(0,df.useEffect)(()=>{e(p8())},[e]),fq(),pq()}function b8(e,t,r,n,a,i){var o=be(g=>HM(g,e,t)),l=be(OM),s=be(gv),u=be(mv),c=be(V1),d=be(m8),f=d?.sourceViewBox!=null,p=Jo();(0,df.useEffect)(()=>{if(!f&&u!=null&&s!=null){var g=Pu({active:i,coordinate:r,dataKey:o,index:a,label:typeof n=="number"?String(n):n,sourceViewBox:p,graphicalItemId:l});Lu.emit(Th,u,g,s)}},[f,r,o,l,a,n,s,u,c,i,p])}function w8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function S8(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{D(gM({shared:v,trigger:y,axisId:N,active:a,defaultIndex:_}))},[D,v,y,N,a,_]);var M=Jo(),z=Zg(),$=uM(v),U=(t=be(W=>qM(W,$,y,_)))!==null&&t!==void 0?t:{},G=U.activeIndex,j=U.isActive,V=be(W=>WM(W,$,y,_)),w=be(W=>kw(W,$,y,_)),O=be(W=>FM(W,$,y,_)),E=V,C=i8(),S=(r=a??j)!==null&&r!==void 0?r:!1,T=cE([E,S]),F=hq(T,2),X=F[0],J=F[1],se=$==="axis"?w:void 0;b8($,y,O,se,G,S);var ce=k??C;if(ce==null||M==null||$==null)return null;var ge=E??N8;S||(ge=N8),u&&ge.length&&(ge=Uk(ge.filter(W=>W.value!=null&&(W.hide!==!0||n.includeHidden)),f,Sq));var Te=ge.length>0,ie=S8(S8({},n),{},{payload:ge,label:se,active:S,activeIndex:G,coordinate:O,accessibilityLayer:z}),_e=qn.createElement(QO,{allowEscapeViewBox:i,animationDuration:o,animationEasing:l,isAnimationActive:c,active:S,coordinate:O,hasPayload:Te,offset:d,position:p,reverseDirection:g,useTranslate3d:h,viewBox:M,wrapperStyle:x,lastBoundingBox:X,innerRef:J,hasPortalFromProps:!!k},Aq(s,ie));return qn.createElement(qn.Fragment,null,(0,_8.createPortal)(_e,ce),S&&qn.createElement(a8,{cursor:m,tooltipEventType:$,coordinate:O,payload:ge,index:G}))}var Iw=Q(R()),jh=Q(R());function Cq(e,t,r){return(t=_q(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _q(e){var t=kq(e,"string");return typeof t=="symbol"?t:t+""}function kq(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Mh=class{constructor(t){Cq(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}};function k8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Eq(e){for(var t=1;t{try{var r=document.getElementById(O8);r||(r=document.createElement("span"),r.setAttribute("id",O8),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,Pq,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},xl=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Un.isSsr)return{width:0,height:0};if(!M8.enableCache)return T8(t,r);var n=jq(t,r),a=E8.get(n);if(a)return a;var i=T8(t,r);return E8.set(n,i),i};var z8;function Dh(e,t){return Bq(e)||Lq(e,t)||zq(e,t)||Iq()}function Iq(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function zq(e,t){if(e){if(typeof e=="string")return D8(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D8(e,t):void 0}}function D8(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var a=[];Nt(t)||(r?a=t.toString().split(""):a=t.toString().split(F8));var i=a.map(l=>({word:l,width:xl(l,n).width})),o=r?0:xl("\xA0",n).width;return{wordsWithComputedWidth:i,spaceWidth:o}}catch{return null}};function Ih(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function q8(e){return Nt(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Y8=(e,t,r,n)=>e.reduce((a,i)=>{var o=i.word,l=i.width,s=a[a.length-1];if(s&&l!=null&&(t==null||n||s.width+l+re.reduce((t,r)=>t.width>r.width?t:r),aY="\u2026",H8=(e,t,r,n,a,i,o,l)=>{var s=e.slice(0,t),u=W8({breakAll:r,style:n,children:s+aY});if(!u)return[!1,[]];var c=Y8(u.wordsWithComputedWidth,i,o,l),d=c.length>a||K8(c).width>Number(i);return[d,c]},iY=(e,t,r,n,a)=>{var i=e.maxLines,o=e.children,l=e.style,s=e.breakAll,u=ve(i),c=String(o),d=Y8(t,n,r,a);if(!u||a)return d;var f=d.length>i||K8(d).width>Number(n);if(!f)return d;for(var p=0,g=c.length-1,h=0,x;p<=g&&h<=c.length-1;){var m=Math.floor((p+g)/2),v=m-1,y=H8(c,v,s,l,i,n,r,a),b=$8(y,2),k=b[0],N=b[1],D=H8(c,m,s,l,i,n,r,a),_=$8(D,1),M=_[0];if(!k&&!M&&(p=m+1),k&&M&&(g=m-1),!k&&M){x=N;break}h++}return x||d},V8=e=>{var t=Nt(e)?[]:e.toString().split(F8);return[{words:t,width:void 0}]},oY=e=>{var t=e.width,r=e.scaleToFit,n=e.children,a=e.style,i=e.breakAll,o=e.maxLines;if((t||r)&&!Un.isSsr){var l,s,u=W8({breakAll:i,children:n,style:a});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;l=c,s=d}else return V8(n);return iY({breakAll:i,children:n,maxLines:o,style:a},l,s,t,!!r)}return V8(n)},G8="#808080",lY={angle:0,breakAll:!1,capHeight:"0.71em",fill:G8,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},ff=(0,jh.forwardRef)((e,t)=>{var r=Ct(e,lY),n=r.x,a=r.y,i=r.lineHeight,o=r.capHeight,l=r.fill,s=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=B8(r,Qq),f=(0,jh.useMemo)(()=>oY({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:s,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,s,d.style,d.width]),p=d.dx,g=d.dy,h=d.angle,x=d.className,m=d.breakAll,v=B8(d,Jq);if(!$r(n)||!$r(a)||f.length===0)return null;var y=Number(n)+(ve(p)?p:0),b=Number(a)+(ve(g)?g:0);if(!Me(y)||!Me(b))return null;var k;switch(c){case"start":k=Ph("calc(".concat(o,")"));break;case"middle":k=Ph("calc(".concat((f.length-1)/2," * -").concat(i," + (").concat(o," / 2))"));break;default:k=Ph("calc(".concat(f.length-1," * -").concat(i,")"));break}var N=[],D=f[0];if(s&&D!=null){var _=D.width,M=d.width;N.push("scale(".concat(ve(M)&&ve(_)?M/_:1,")"))}return h&&N.push("rotate(".concat(h,", ").concat(y,", ").concat(b,")")),N.length&&(v.transform=N.join(" ")),Iw.createElement("text",jw({},Ut(v),{ref:t,x:y,y:b,className:De("recharts-text",x),textAnchor:u,fill:l.includes("url")?G8:l}),f.map((z,$)=>{var U=z.words.join(m?"":" ");return Iw.createElement("tspan",{x:y,dy:$===0?k:i,key:"".concat(U,"-").concat($)},U)}))});ff.displayName="Text";var Nn=Q(R()),pr=Q(R());var sY=["labelRef"],uY=["content"];function X8(e,t){if(e==null)return{};var r,n,a=cY(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,a=e.lowerWidth,i=e.width,o=e.height,l=e.children,s=(0,pr.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:a,width:i,height:o}),[t,r,n,a,i,o]);return Nn.createElement(Q8.Provider,{value:s},l)},R8=()=>{var e=(0,pr.useContext)(Q8),t=Jo();return e||(t?od(t):void 0)},mY=(0,pr.createContext)(null);var gY=()=>{var e=(0,pr.useContext)(mY),t=be(bv);return e||t},vY=e=>{var t=e.value,r=e.formatter,n=Nt(e.children)?t:e.children;return typeof r=="function"?r(n):n},wl=e=>e!=null&&typeof e=="function",hY=(e,t)=>{var r=ar(t-e),n=Math.min(Math.abs(t-e),360);return r*n},yY=(e,t,r,n,a)=>{var i=e.offset,o=e.className,l=a.cx,s=a.cy,u=a.innerRadius,c=a.outerRadius,d=a.startAngle,f=a.endAngle,p=a.clockWise,g=(u+c)/2,h=hY(d,f),x=h>=0?1:-1,m,v;switch(t){case"insideStart":m=d+x*i,v=p;break;case"insideEnd":m=f-x*i,v=!p;break;case"end":m=f+x*i,v=p;break;default:throw new Error("Unsupported position ".concat(t))}v=h<=0?v:!v;var y=Dt(l,s,g,m),b=Dt(l,s,g,m+(v?1:-1)*359),k="M".concat(y.x,",").concat(y.y,` + A`).concat(g,",").concat(g,",0,1,").concat(v?0:1,`, + `).concat(b.x,",").concat(b.y),N=Nt(e.id)?ni("recharts-radial-line-"):e.id;return Nn.createElement("text",yi({},n,{dominantBaseline:"central",className:De("recharts-radial-bar-label",o)}),Nn.createElement("defs",null,Nn.createElement("path",{id:N,d:k})),Nn.createElement("textPath",{xlinkHref:"#".concat(N)},r))},xY=(e,t,r)=>{var n=e.cx,a=e.cy,i=e.innerRadius,o=e.outerRadius,l=e.startAngle,s=e.endAngle,u=(l+s)/2;if(r==="outside"){var c=Dt(n,a,o+t,u),d=c.x,f=c.y;return{x:d,y:f,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"end"};var p=(i+o)/2,g=Dt(n,a,p,u),h=g.x,x=g.y;return{x:h,y:x,textAnchor:"middle",verticalAnchor:"middle"}},Hu=e=>e!=null&&"cx"in e&&ve(e.cx),bY={angle:0,offset:5,zIndex:it.label,position:"middle",textBreakAll:!1};function wY(e){if(!Hu(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,a=n*2;return{x:t-n,y:r-n,width:a,upperWidth:a,lowerWidth:a,height:a}}function hi(e){var t,r,n=Ct(e,bY),a=n.viewBox,i=n.parentViewBox,o=n.position,l=n.value,s=n.children,u=n.content,c=n.className,d=c===void 0?"":c,f=n.textBreakAll,p=n.labelRef,g=gY(),h=R8(),x=o==="center"?h:g??h,m,v,y;a==null?m=x:Hu(a)?m=a:m=od(a);var b=wY(m);if(!m||Nt(l)&&Nt(s)&&!(0,pr.isValidElement)(u)&&typeof u!="function")return null;var k=Hu(m)&&(o==="insideStart"||o==="insideEnd"||o==="end");if(Hu(m))k||(y=xY(m,n.offset,n.position));else if(b){var N=R_({viewBox:b,position:o,offset:n.offset,parentViewBox:Hu(i)?void 0:i,clamp:!0});y=bl(bl({x:N.x,y:N.y,textAnchor:N.horizontalAnchor,verticalAnchor:N.verticalAnchor},N.width!==void 0?{width:N.width}:{}),N.height!==void 0?{height:N.height}:{})}var D=bl(bl(bl(bl({},((t=y)===null||t===void 0?void 0:t.x)!==void 0?{x:y.x}:{}),((r=y)===null||r===void 0?void 0:r.y)!==void 0?{y:y.y}:{}),n),{},{viewBox:m});if((0,pr.isValidElement)(u)){var _=D.labelRef,M=X8(D,sY);return(0,pr.cloneElement)(u,M)}if(typeof u=="function"){var z=D.content,$=X8(D,uY);if(v=(0,pr.createElement)(u,$),(0,pr.isValidElement)(v))return v}else v=vY(n);var U=Ut(n);return k&&Hu(m)?yY(n,o,v,U,m):y==null?null:Nn.createElement(wr,{zIndex:n.zIndex},Nn.createElement(ff,yi({ref:p,className:De("recharts-label",d)},U,y,{textAnchor:Ih(U.textAnchor)?U.textAnchor:y.textAnchor,breakAll:f}),v))}hi.displayName="Label";var SY=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?Nn.createElement(hi,yi({key:"label-implicit"},n)):$r(e)?Nn.createElement(hi,yi({key:"label-implicit",value:e},n)):(0,pr.isValidElement)(e)?e.type===hi?(0,pr.cloneElement)(e,bl({key:"label-implicit"},n)):Nn.createElement(hi,yi({key:"label-implicit",content:e},n)):wl(e)?Nn.createElement(hi,yi({key:"label-implicit",content:e},n)):e&&typeof e=="object"?Nn.createElement(hi,yi({},e,{key:"label-implicit"},n)):null};function eD(e){var t=e.label,r=e.labelRef,n=R8();return SY(t,n,r)||null}var xi=Q(R()),Vu=Q(R());var AY=["valueAccessor"],NY=["dataKey","clockWise","id","textBreakAll","zIndex"];function Lh(){return Lh=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(q8(t))return t},rD=(0,Vu.createContext)(void 0),nD=rD.Provider,aD=(0,Vu.createContext)(void 0),mge=aD.Provider;function kY(){return(0,Vu.useContext)(rD)}function EY(){return(0,Vu.useContext)(aD)}function zh(e){var t=e.valueAccessor,r=t===void 0?_Y:t,n=tD(e,AY),a=n.dataKey,i=n.clockWise,o=n.id,l=n.textBreakAll,s=n.zIndex,u=tD(n,NY),c=kY(),d=EY(),f=c||d;return!f||!f.length?null:xi.createElement(wr,{zIndex:s??it.label},xi.createElement(rr,{className:"recharts-label-list"},f.map((p,g)=>{var h,x=Nt(a)?r(p,g):yt(p.payload,a),m=Nt(o)?{}:{id:"".concat(o,"-").concat(g)};return xi.createElement(hi,Lh({key:"label-".concat(g)},Ut(p),u,m,{fill:(h=n.fill)!==null&&h!==void 0?h:p.fill,parentViewBox:p.parentViewBox,value:x,textBreakAll:l,viewBox:p.viewBox,index:g,zIndex:0}))})))}zh.displayName="LabelList";function iD(e){var t=e.label;return t?t===!0?xi.createElement(zh,{key:"labelList-implicit"}):xi.isValidElement(t)||wl(t)?xi.createElement(zh,{key:"labelList-implicit",content:t}):typeof t=="object"?xi.createElement(zh,Lh({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var oD=Q(R());function zw(){return zw=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,a=e.className,i=De("recharts-dot",a);return ve(t)&&ve(r)&&ve(n)?oD.createElement("circle",zw({},dr(e),Ws(e),{className:i,cx:t,cy:r,r:n})):null};var OY={radiusAxis:{},angleAxis:{}},lD=Qe({name:"polarAxis",initialState:OY,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=ze(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=ze(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),$h=lD.actions,Age=$h.addRadiusAxis,Nge=$h.removeRadiusAxis,Cge=$h.addAngleAxis,_ge=$h.removeAngleAxis;var sD=lD.reducer;function uD(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var TY=Q(R());var Uh=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var Fu=Q(R()),pf=Q(R());function cD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function dD(e){for(var t=1;t{n||(a.current===null?r(fM(t)):a.current!==t&&r(pM({prev:a.current,next:t})),a.current=t)},[t,r,n]),(0,mf.useLayoutEffect)(()=>()=>{a.current&&(r(mM(a.current)),a.current=null)},[r]),null}var gf=Q(R());function gD(e){var t=e.legendPayload,r=$e(),n=ft(),a=(0,gf.useRef)(null);return(0,gf.useLayoutEffect)(()=>{n||(a.current===null?r(MO(t)):a.current!==t&&r(DO({prev:a.current,next:t})),a.current=t)},[r,n,t]),(0,gf.useLayoutEffect)(()=>()=>{a.current&&(r(PO(a.current)),a.current=null)},[r]),null}var yD=Q(R()),yf=Q(R());function BY(e,t){return VY(e)||HY(e,t)||UY(e,t)||$Y()}function $Y(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function UY(e,t){if(e){if(typeof e=="string")return vD(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?vD(e,t):void 0}}function vD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var a of r)n.push({status:"removed",prev:a});for(var i=0;ie[Math.floor(i*r)]);return Lw(n,t)}function qY(e,t){var r=t.map((n,a)=>e[a]);return Lw(r,t)}function YY(e,t){for(var r=new Map,n=0;n{var p=r(d,f);if(p!=null){var g=n.get(p);if(g!==void 0)return a.add(p),g}}),o=[];for(var l of n){var s=BY(l,2),u=s[0],c=s[1];a.has(u)||o.push(c)}return Lw(i,t,o)}function hf(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===vf?WY(e,t):r===FY?qY(e,t):KY(e,t,r)}var Wu=Q(R());function Hh(e,t){var r=(0,Wu.useRef)(e),n=(0,Wu.useRef)(t.current),a=(0,Wu.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,a.current=!1);var i=(0,Wu.useCallback)(function(o,l){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(l===0){a.current=!0;return}l===1&&(n.current=o),l>0&&a.current&&s&&(t.current=o)},[t]);return{startValue:n.current,syncStepValue:i}}function GY(e,t){return JY(e)||QY(e,t)||ZY(e,t)||XY()}function XY(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ZY(e,t){if(e){if(typeof e=="string")return hD(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hD(e,t):void 0}}function hD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),i(!0)},[e]),l=(0,yf.useCallback)(()=>{typeof t=="function"&&t(),i(!1)},[t]);return{isAnimating:a,handleAnimationStart:o,handleAnimationEnd:l}}function bD(e){var t,r=e.animationInput,n=e.animationIdPrefix,a=e.items,i=e.previousItemsRef,o=e.isAnimationActive,l=e.animationBegin,s=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,f=e.animationInterpolateFn,p=e.animationMatchBy,g=e.shouldUpdatePreviousRef,h=e.children,x=e.layout,m=rv(r,n),v=Hh(m,i),y=(t=v.startValue)!==null&&t!==void 0?t:null,b=hf(y,a,p??vf);return yD.createElement(tv,{animationId:m,begin:l,duration:s,isActive:o,easing:u,onAnimationEnd:d,onAnimationStart:c,key:m},k=>{var N=y==null,D=a==null?a:f(b,k,x),_=g?g(k):k>0;return v.syncStepValue(D,k,_),D==null?null:h(D,k,N)})}var AD=Q(R()),$w=Q(R());var Vh=Q(R());var Bw;function RY(e,t){return nK(e)||rK(e,t)||tK(e,t)||eK()}function eK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tK(e,t){if(e){if(typeof e=="string")return wD(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?wD(e,t):void 0}}function wD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=Vh.useState(()=>ni("uid-")),t=RY(e,1),r=t[0];return r},Fh=(Bw=Vh.useId)!==null&&Bw!==void 0?Bw:aK;function SD(e,t){var r=Fh();return t||(e?"".concat(e,"-").concat(r):r)}var iK=(0,$w.createContext)(void 0),ND=e=>{var t=e.id,r=e.type,n=e.children,a=SD("recharts-".concat(r),t);return AD.createElement(iK.Provider,{value:a},n(a))};var Sl=Q(R());var oK={cartesianItems:[],polarItems:[]},CD=Qe({name:"graphicalItems",initialState:oK,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(ze(t.payload))},prepare:rt()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=br(e).cartesianItems.indexOf(ze(n));i>-1&&(e.cartesianItems[i]=ze(a))},prepare:rt()},removeCartesianGraphicalItem:{reducer(e,t){var r=br(e).cartesianItems.indexOf(ze(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:rt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(ze(t.payload))},prepare:rt()},removePolarGraphicalItem:{reducer(e,t){var r=br(e).polarItems.indexOf(ze(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:rt()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=br(e).polarItems.indexOf(ze(n));i>-1&&(e.polarItems[i]=ze(a))},prepare:rt()}}}),qu=CD.actions,_D=qu.addCartesianGraphicalItem,kD=qu.replaceCartesianGraphicalItem,ED=qu.removeCartesianGraphicalItem,lK=qu.addPolarGraphicalItem,sK=qu.removePolarGraphicalItem,uK=qu.replacePolarGraphicalItem;var OD=CD.reducer;var cK=e=>{var t=$e(),r=(0,Sl.useRef)(null);return(0,Sl.useLayoutEffect)(()=>{r.current===null?t(_D(e)):r.current!==e&&t(kD({prev:r.current,next:e})),r.current=e},[t,e]),(0,Sl.useLayoutEffect)(()=>()=>{r.current&&(t(ED(r.current)),r.current=null)},[t]),null},TD=(0,Sl.memo)(cK);var xf=Q(R()),qh=Q(R());var dK=["points"];function MD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Uw(e){for(var t=1;t{var m,v,y=Uw(Uw(Uw({r:3},o),f),{},{index:x,cx:(m=h.x)!==null&&m!==void 0?m:void 0,cy:(v=h.y)!==null&&v!==void 0?v:void 0,dataKey:i,value:h.value,payload:h.payload,points:t});return xf.createElement(hK,{key:"dot-".concat(x),option:r,dotProps:y,className:a})}),g={};return l&&s!=null&&(g.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(s,")")),xf.createElement(wr,{zIndex:c},xf.createElement(rr,Wh({className:n},g),p))}var bf=Q(R()),Kh=Q(R());function PD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Yh(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var qD=Y([WD,kr,Er],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}});var Yu=()=>be(qD),YD=()=>be(MM);function KD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Vw(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,a=e.activeDot,i=e.dataKey,o=e.clipPath;if(a===!1||t.x==null||t.y==null)return null;var l={index:r,dataKey:i,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},s=Vw(Vw(Vw({},l),eo(a)),Ws(a)),u;return(0,Kh.isValidElement)(a)?u=(0,Kh.cloneElement)(a,s):typeof a=="function"?u=a(s):u=bf.createElement(Bh,s),bf.createElement(rr,{className:"recharts-active-dot",clipPath:o},u)};function Fw(e){var t=e.points,r=e.mainColor,n=e.activeDot,a=e.itemDataKey,i=e.clipPath,o=e.zIndex,l=o===void 0?it.activeDot:o,s=be(yl),u=YD();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return Nt(c)?null:bf.createElement(wr,{zIndex:l},bf.createElement(_K,{point:c,childIndex:Number(s),mainColor:r,dataKey:a,activeDot:n,clipPath:i}))}var GD=Q(R());var XD=e=>{var t=e.chartData,r=$e(),n=ft();return(0,GD.useEffect)(()=>n?()=>{}:(r(Pw(t)),()=>{r(Pw(void 0))}),[t,r,n]),null};var ZD={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},QD=Qe({name:"brush",initialState:ZD,reducers:{setBrushSettings(e,t){return t.payload==null?ZD:t.payload}}}),Yve=QD.actions.setBrushSettings;var JD=QD.reducer;function kK(e){return(e%180+180)%180}var RD=function(t){var r=t.width,n=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=kK(a),o=i*Math.PI/180,l=Math.atan(n/r),s=o>l&&o{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=br(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=br(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(ze(t.payload))},removeLine:(e,t)=>{var r=br(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Ku=e6.actions,Qve=Ku.addDot,Jve=Ku.removeDot,Rve=Ku.addArea,ehe=Ku.removeArea,the=Ku.addLine,rhe=Ku.removeLine;var t6=e6.reducer;var wf=Q(R()),Sf=Q(R());function OK(e,t){return PK(e)||DK(e,t)||MK(e,t)||TK()}function TK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function MK(e,t){if(e){if(typeof e=="string")return r6(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?r6(e,t):void 0}}function r6(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,Sf.useState)("".concat(ni("recharts"),"-clip")),n=OK(r,1),a=n[0],i=Yu();if(i==null)return null;var o=i.x,l=i.y,s=i.width,u=i.height;return wf.createElement(jK.Provider,{value:a},wf.createElement("defs",null,wf.createElement("clipPath",{id:a},wf.createElement("rect",{x:o,y:l,height:u,width:s}))),t)};var bt=Q(R()),Dr=Q(R());function a6(){}function Ww(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function i6(e,t,r){return Af(e,t,void 0,void 0,void 0,void 0,r)}function Af(e,t,r,n,a,i,o){let l=o(e,t,r,n,a,i);if(l!==void 0)return l;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return Nf(e,t,i,o)}return Nf(e,t,i,o)}function Nf(e,t,r,n){if(Object.is(e,t))return!0;let a=ai(e),i=ai(t);if(a==="[object Arguments]"&&(a=Gs),i==="[object Arguments]"&&(i=Gs),a!==i)return!1;switch(a){case qs:return e.toString()===t.toString();case Ys:return no(e.valueOf(),t.valueOf());case Ks:case Vm:case Hm:return Object.is(e.valueOf(),t.valueOf());case $m:return e.source===t.source&&e.flags===t.flags;case Ak:return e===t}r=r??new Map;let o=r.get(e),l=r.get(t);if(o!=null&&l!=null)return o===t;r.set(e,t),r.set(t,e);try{switch(a){case Fm:if(e.size!==t.size)return!1;for(let[s,u]of e.entries())if(!t.has(s)||!Af(u,t.get(s),s,e,t,r,n))return!1;return!0;case Wm:{if(e.size!==t.size)return!1;let s=Array.from(e.values()),u=Array.from(t.values());for(let c=0;cAf(d,p,void 0,e,t,r,n));if(f===-1)return!1;u.splice(f,1)}return!0}case qm:case Gm:case Xm:case Zm:case Qm:case Ck:case Jm:case Rm:case eg:case _k:case tg:case rg:if(cd(e)!==cd(t)||e.length!==t.length)return!1;for(let s=0;se*a)return!1;var i=r();return e*(t-e*i/2-n)>=0&&e*(t+e*i/2-a)<=0}function s6(e,t){return Gh(e,t+1)}function u6(e,t,r,n,a){for(var i=(n||[]).slice(),o=t.start,l=t.end,s=0,u=1,c=o,d=function(){var g=n?.[s];if(g===void 0)return{v:Gh(n,u)};var h=s,x,m=()=>(x===void 0&&(x=r(g,h)),x),v=g.coordinate,y=s===0||Al(e,v,m,c,l);y||(s=0,c=o,u+=1),y&&(c=v+e*(m()/2+a),s+=u)},f;u<=i.length;)if(f=d(),f)return f.v;return[]}function c6(e,t,r,n,a){var i=(n||[]).slice(),o=i.length;if(o===0)return[];for(var l=t.start,s=t.end,u=1;u<=o;u++){for(var c=(o-1)%u,d=l,f=!0,p=function(){var b=n[h];if(b==null)return 0;var k=h,N,D=()=>(N===void 0&&(N=r(b,k)),N),_=b.coordinate,M=h===c||Al(e,_,D,d,s);if(!M)return f=!1,1;M&&(d=_+e*(D()/2+a))},g,h=c;h(h===void 0&&(h=r(p,f)),h);if(f===o-1){var m=e*(g.coordinate+e*x()/2-s);i[f]=g=Mr(Mr({},g),{},{tickCoord:m>0?g.coordinate-m*e:g.coordinate})}else i[f]=g=Mr(Mr({},g),{},{tickCoord:g.coordinate});if(g.tickCoord!=null){var v=Al(e,g.tickCoord,x,l,s);v&&(s=g.tickCoord-e*(x()/2+a),i[f]=Mr(Mr({},g),{},{isShow:!0}))}},c=o-1;c>=0;c--)u(c);return i}function $K(e,t,r,n,a,i){var o=(n||[]).slice(),l=o.length,s=t.start,u=t.end;if(i){var c=n[l-1];if(c!=null){var d=r(c,l-1),f=e*(c.coordinate+e*d/2-u);if(o[l-1]=c=Mr(Mr({},c),{},{tickCoord:f>0?c.coordinate-f*e:c.coordinate}),c.tickCoord!=null){var p=Al(e,c.tickCoord,()=>d,s,u);p&&(u=c.tickCoord-e*(d/2+a),o[l-1]=Mr(Mr({},c),{},{isShow:!0}))}}}for(var g=i?l-1:l,h=function(v){var y=o[v];if(y==null)return 1;var b=y,k,N=()=>(k===void 0&&(k=r(y,v)),k);if(v===0){var D=e*(b.coordinate-e*N()/2-s);o[v]=b=Mr(Mr({},b),{},{tickCoord:D<0?b.coordinate-D*e:b.coordinate})}else o[v]=b=Mr(Mr({},b),{},{tickCoord:b.coordinate});if(b.tickCoord!=null){var _=Al(e,b.tickCoord,N,s,u);_&&(s=b.tickCoord+e*(N()/2+a),o[v]=Mr(Mr({},b),{},{isShow:!0}))}},x=0;x{var D=typeof u=="function"?u(k.value,N):k.value;return g==="width"?o6(xl(D,{fontSize:t,letterSpacing:r}),h,d):xl(D,{fontSize:t,letterSpacing:r})[g]},m=a[0],v=a[1],y=a.length>=2&&m!=null&&v!=null?ar(v.coordinate-m.coordinate):1,b=l6(i,y,g);return s==="equidistantPreserveStart"?u6(y,b,x,a,o):s==="equidistantPreserveEnd"?c6(y,b,x,a,o):(s==="preserveStart"||s==="preserveStartEnd"?p=$K(y,b,x,a,o,s==="preserveStartEnd"):p=BK(y,b,x,a,o),p.filter(k=>k.isShow))}var f6=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,i=e.tickSize,o=i===void 0?0:i,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var g=p.getBoundingClientRect();g.width>u&&(u=g.width)}});var c=r?r.getBoundingClientRect().width:0,d=o+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var p6=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,i=e.tickSize,o=i===void 0?0:i,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var g=p.getBoundingClientRect();g.height>u&&(u=g.height)}});var c=r?r.getBoundingClientRect().height:0,d=o+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var UK={xAxis:{},yAxis:{}},m6=Qe({name:"renderedTicks",initialState:UK,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId,i=r.ticks;e[n][a]=ze(i)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId;delete e[n][a]}}}),g6=m6.actions,v6=g6.setRenderedTicks,h6=g6.removeRenderedTicks;var y6=m6.reducer;var HK=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function x6(e,t){return qK(e)||WK(e,t)||FK(e,t)||VK()}function VK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function FK(e,t){if(e){if(typeof e=="string")return b6(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?b6(e,t):void 0}}function b6(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(!(n==null||r==null)){var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index})),l=i.current;l!=null&&l.axisId===n&&l.axisType===r&&qw(l.ticks,o)||(i.current={ticks:o,axisId:n,axisType:r},a(v6({ticks:o,axisId:n,axisType:r})))}},[a,t,n,r]),(0,Dr.useEffect)(()=>n==null||r==null?ra:()=>{a(h6({axisId:n,axisType:r}))},[a,n,r]),null}var nG=(0,Dr.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,a=e.tick,i=e.tickLine,o=e.stroke,l=e.tickFormatter,s=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,f=e.mirror,p=e.x,g=e.y,h=e.width,x=e.height,m=e.tickSize,v=e.tickMargin,y=e.fontSize,b=e.letterSpacing,k=e.getTicksConfig,N=e.events,D=e.axisType,_=e.axisId,M=Cf(Pt(Pt({},k),{},{ticks:n}),y,b),z=dr(k),$=eo(a),U=Ih(z.textAnchor)?z.textAnchor:RK(d,f),G=eG(d,f),j={};typeof i=="object"&&(j=i);var V=Pt(Pt({},z),{},{fill:"none"},j),w=M.map(C=>Pt({entry:C},JK(C,p,g,h,x,d,m,f,v))),O=w.map(C=>{var S=C.entry,T=C.line;return bt.createElement(rr,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(S.value,"-").concat(S.coordinate,"-").concat(S.tickCoord)},i&&bt.createElement("line",Nl({},V,T,{className:De("recharts-cartesian-axis-tick-line",gn(i,"className"))})))}),E=w.map((C,S)=>{var T,F,X=C.entry,J=C.tick,se=Pt(Pt(Pt(Pt({verticalAnchor:G},z),{},{textAnchor:U,stroke:"none",fill:o},J),{},{index:S,payload:X,visibleTicksCount:M.length,tickFormatter:l,padding:u},c),{},{angle:(T=(F=c?.angle)!==null&&F!==void 0?F:z.angle)!==null&&T!==void 0?T:0}),ce=Pt(Pt({},se),$);return bt.createElement(rr,Nl({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(X.value,"-").concat(X.coordinate,"-").concat(X.tickCoord)},hk(N,X,S)),a&&bt.createElement(tG,{option:a,tickProps:ce,value:"".concat(typeof l=="function"?l(X.value,S):X.value).concat(s||"")}))});return bt.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(D,"-ticks")},bt.createElement(rG,{ticks:M,axisId:_,axisType:D}),E.length>0&&bt.createElement(wr,{zIndex:it.label},bt.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(D,"-tick-labels"),ref:t},E)),O.length>0&&bt.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(D,"-tick-lines")},O))}),aG=(0,Dr.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,a=e.height,i=e.className,o=e.hide,l=e.ticks,s=e.axisType,u=e.axisId,c=YK(e,HK),d=(0,Dr.useState)(""),f=x6(d,2),p=f[0],g=f[1],h=(0,Dr.useState)(""),x=x6(h,2),m=x[0],v=x[1],y=(0,Dr.useRef)(null);(0,Dr.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var k;return f6({ticks:y.current,label:(k=e.labelRef)===null||k===void 0?void 0:k.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var k;return p6({ticks:y.current,label:(k=e.labelRef)===null||k===void 0?void 0:k.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var b=(0,Dr.useCallback)(k=>{if(k){var N=k.getElementsByClassName("recharts-cartesian-axis-tick-value");y.current=N;var D=N[0];if(D){var _=window.getComputedStyle(D),M=_.fontSize,z=_.letterSpacing;(M!==p||z!==m)&&(g(M),v(z))}}},[p,m]);return o||n!=null&&n<=0||a!=null&&a<=0?null:bt.createElement(wr,{zIndex:e.zIndex},bt.createElement(rr,{className:De("recharts-cartesian-axis",i)},bt.createElement(QK,{x:e.x,y:e.y,width:n,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:dr(e)}),bt.createElement(nG,{ref:b,axisType:s,events:c,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:m,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),bt.createElement(J8,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},bt.createElement(eD,{label:e.label,labelRef:e.labelRef}),e.children)))}),_f=bt.forwardRef((e,t)=>{var r=Ct(e,Yn);return bt.createElement(aG,Nl({},r,{ref:t}))});_f.displayName="CartesianAxis";var jt=Q(R());var Xh=Q(R());var S6={grid:{stroke:"#ccc",fill:"none"}};var A6=(0,Xh.createContext)(S6),oye=A6.Provider,N6=()=>(0,Xh.useContext)(A6);var iG=["x1","y1","x2","y2","key"],oG=["offset"],lG=["xAxisId","yAxisId"],sG=["xAxisId","yAxisId"];function C6(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Pr(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,a=e.y,i=e.width,o=e.height,l=e.ry;return jt.createElement("rect",{x:n,y:a,ry:l,width:i,height:o,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function _6(e){var t=e.option,r=e.lineItemProps,n;if(jt.isValidElement(t))n=jt.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var a,i=r.x1,o=r.y1,l=r.x2,s=r.y2,u=r.key,c=Zh(r,iG),d=(a=dr(c))!==null&&a!==void 0?a:{},f=d.offset,p=Zh(d,oG),g=Array.isArray(p.strokeDasharray)?p.strokeDasharray.join(","):p.strokeDasharray;n=jt.createElement("line",Cl({},p,{strokeDasharray:g,x1:i,y1:o,x2:l,y2:s,fill:"none",key:u}))}return n}function mG(e){var t=e.x,r=e.width,n=e.horizontal,a=n===void 0?!0:n,i=e.horizontalPoints;if(!a||!i||!i.length)return null;var o=e.xAxisId,l=e.yAxisId,s=Zh(e,lG),u=i.map((c,d)=>{var f=Pr(Pr({},s),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return jt.createElement(_6,{key:"line-".concat(d),option:a,lineItemProps:f})});return jt.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function gG(e){var t=e.y,r=e.height,n=e.vertical,a=n===void 0?!0:n,i=e.verticalPoints;if(!a||!i||!i.length)return null;var o=e.xAxisId,l=e.yAxisId,s=Zh(e,sG),u=i.map((c,d)=>{var f=Pr(Pr({},s),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return jt.createElement(_6,{option:a,lineItemProps:f,key:"line-".concat(d)})});return jt.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function vG(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,a=e.y,i=e.width,o=e.height,l=e.horizontalPoints,s=e.horizontal,u=s===void 0?!0:s;if(!u||!t||!t.length||l==null)return null;var c=l.map(f=>Math.round(f+a-a)).sort((f,p)=>f-p);a!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var g=c[p+1],h=g==null,x=h?a+o-f:g-f;if(x<=0)return null;var m=p%t.length;return jt.createElement("rect",{key:"react-".concat(p),y:f,x:n,height:x,width:i,stroke:"none",fill:t[m],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return jt.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function hG(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,a=e.fillOpacity,i=e.x,o=e.y,l=e.width,s=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(f=>Math.round(f+i-i)).sort((f,p)=>f-p);i!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var g=c[p+1],h=g==null,x=h?i+l-f:g-f;if(x<=0)return null;var m=p%n.length;return jt.createElement("rect",{key:"react-".concat(p),x:f,y:o,width:x,height:s,stroke:"none",fill:n[m],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return jt.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var yG=(e,t)=>{var r=e.xAxis,n=e.width,a=e.height,i=e.offset;return h1(Cf(Pr(Pr(Pr({},Yn),r),{},{ticks:y1(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),i.left,i.left+i.width,t)},xG=(e,t)=>{var r=e.yAxis,n=e.width,a=e.height,i=e.offset;return h1(Cf(Pr(Pr(Pr({},Yn),r),{},{ticks:y1(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),i.top,i.top+i.height,t)},bG={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:it.grid};function _l(e){var t,r,n,a,i,o,l=Yg(),s=Kg(),u=qg(),c=Pr(Pr({},Ct(e,bG)),{},{x:ve(e.x)?e.x:u.left,y:ve(e.y)?e.y:u.top,width:ve(e.width)?e.width:u.width,height:ve(e.height)?e.height:u.height}),d=c.xAxisId,f=c.yAxisId,p=c.x,g=c.y,h=c.width,x=c.height,m=c.syncWithTicks,v=c.horizontalValues,y=c.verticalValues,b=ft(),k=be(O=>sw(O,"xAxis",d,b)),N=be(O=>sw(O,"yAxis",f,b)),D=N6(),_={stroke:(t=c.stroke)!==null&&t!==void 0?t:D.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:D.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:D.grid.strokeOpacity,strokeDasharray:(a=c.strokeDasharray)!==null&&a!==void 0?a:D.grid.strokeDasharray};if(!Qr(h)||!Qr(x)||!ve(p)||!ve(g))return null;var M=c.verticalCoordinatesGenerator||yG,z=c.horizontalCoordinatesGenerator||xG,$=c.horizontalPoints,U=c.verticalPoints;if((!$||!$.length)&&typeof z=="function"){var G=v&&v.length,j=z({yAxis:N?Pr(Pr({},N),{},{ticks:G?v:N.ticks}):void 0,width:l??h,height:s??x,offset:u},G?!0:m);nu(Array.isArray(j),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof j,"]")),Array.isArray(j)&&($=j)}if((!U||!U.length)&&typeof M=="function"){var V=y&&y.length,w=M({xAxis:k?Pr(Pr({},k),{},{ticks:V?y:k.ticks}):void 0,width:l??h,height:s??x,offset:u},V?!0:m);nu(Array.isArray(w),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof w,"]")),Array.isArray(w)&&(U=w)}return jt.createElement(wr,{zIndex:c.zIndex},jt.createElement("g",{className:"recharts-cartesian-grid"},jt.createElement(pG,{fill:(i=c.fill)!==null&&i!==void 0?i:D.grid.fill,fillOpacity:(o=c.fillOpacity)!==null&&o!==void 0?o:D.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),jt.createElement(vG,Cl({},c,{horizontalPoints:$})),jt.createElement(hG,Cl({},c,{verticalPoints:U})),jt.createElement(mG,Cl({},c,_,{offset:u,horizontalPoints:$,xAxis:k,yAxis:N})),jt.createElement(gG,Cl({},c,_,{offset:u,verticalPoints:U,xAxis:k,yAxis:N}))))}_l.displayName="CartesianGrid";var wG={},k6=Qe({name:"errorBars",initialState:wG,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]||(e[n]=[]),e[n].push(a)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.prev,i=r.next;e[n]&&(e[n]=e[n].map(o=>o.dataKey===a.dataKey&&o.direction===a.direction?i:o))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]&&(e[n]=e[n].filter(i=>i.dataKey!==a.dataKey||i.direction!==a.direction))}}}),Yw=k6.actions,Cye=Yw.addErrorBar,_ye=Yw.replaceErrorBar,kye=Yw.removeErrorBar;var E6=k6.reducer;var Kw=Q(R());function Gw(e,t){var r,n,a=be(u=>Oa(u,e)),i=be(u=>Ta(u,t)),o=(r=a?.allowDataOverflow)!==null&&r!==void 0?r:Vt.allowDataOverflow,l=(n=i?.allowDataOverflow)!==null&&n!==void 0?n:Ft.allowDataOverflow,s=o||l;return{needClip:s,needClipX:o,needClipY:l}}function O6(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,a=Yu(),i=Gw(t,r),o=i.needClipX,l=i.needClipY,s=i.needClip,u=be(y=>tw(y,t,!1)),c=be(y=>rw(y,r,!1));if(!s||!a)return null;var d=a.x,f=a.y,p=a.width,g=a.height,h=o&&u?Math.min(u[0],u[1]):d-p/2,x=l&&c?Math.min(c[0],c[1]):f-g/2,m=o&&u?Math.abs(u[1]-u[0]):p*2,v=l&&c?Math.abs(c[1]-c[0]):g*2;return Kw.createElement("clipPath",{id:"clipPath-".concat(n)},Kw.createElement("rect",{x:h,y:x,width:m,height:v}))}function T6(e){var t=eo(e),r=3,n=2;if(t!=null){var a=t.r,i=t.strokeWidth,o=Number(a),l=Number(i);return(Number.isNaN(o)||o<0)&&(o=r),(Number.isNaN(l)||l<0)&&(l=n),{r:o,strokeWidth:l}}return{r,strokeWidth:n}}var qe=Q(R()),kl=Q(R());function Qh(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:Hw}function Jh(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:Hw}var M6=(e,t,r)=>cw(e,"xAxis",Qh(e,t),r),D6=(e,t,r)=>uw(e,"xAxis",Qh(e,t),r),P6=(e,t,r)=>cw(e,"yAxis",Jh(e,t),r),j6=(e,t,r)=>uw(e,"yAxis",Jh(e,t),r),SG=Y([tt,M6,P6,D6,j6],(e,t,r,n,a)=>Rr(e,"xAxis")?Rs(t,n,!1):Rs(r,a,!1)),AG=(e,t)=>t,Xw=Y([D2,AG],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),I6=e=>{var t=tt(e),r=Rr(t,"xAxis");return r?"yAxis":"xAxis"},NG=(e,t)=>{var r=I6(e);return r==="yAxis"?Jh(e,t):Qh(e,t)},z6=(e,t,r)=>U2(e,I6(e),NG(e,t),r),CG=Y([Xw,z6],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,a=fu(e);if(!(n==null||a==null)){var i=(r=t[n])===null||r===void 0?void 0:r.stackedData,o=i?.find(l=>l.key===a);if(o!=null)return o.map(l=>[l[0],l[1]])}}}),_G=Y([Xw,z6],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var r=t[e.stackId];if(r!=null)return r.graphicalItems.map(n=>n.dataKey).filter(ir)}}),L6=Y([tt,M6,P6,D6,j6,CG,t4,SG,Xw,p4,_G],(e,t,r,n,a,i,o,l,s,u,c)=>{var d=o.chartData,f=o.dataStartIndex,p=o.dataEndIndex;if(!(s==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||a==null||n.length===0||a.length===0||l==null)){var g=s.data,h;if(g&&g.length>0?h=g:h=d?.slice(f,p+1),h!=null)return B6({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataStartIndex:f,areaSettings:s,stackedData:i,displayedData:h,chartBaseValue:u,bandSize:l,stackDataKeys:c})}});var jr=Q(R());var kG=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],EG=["id","baseLine"];function kf(){return kf=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return ve(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.y||0),c)),ve(c)?jr.createElement("rect",{x:ld.x||0));return ve(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.x||0),c)),ve(c)?jr.createElement("rect",{x:0,y:le==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[Gu(Gu({},r.next),{},{x:Bn(r.prev.x,r.next.x,t),y:Bn(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),F6={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:vf,animationInterpolateFn:$G,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:U6,xAxisId:0,yAxisId:0,zIndex:it.area};function ey(e,t){return e&&e!=="none"?e:t}var UG=e=>{var t=e.dataKey,r=e.name,n=e.stroke,a=e.fill,i=e.legendType,o=e.hide;return[{inactive:o,dataKey:t,type:i,color:ey(n,a),value:A1(r,t),payload:e}]},HG=qe.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,a=e.strokeWidth,i=e.fill,o=e.name,l=e.hide,s=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,f={dataDefinedOnItem:r,getPosition:ra,settings:{stroke:n,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:A1(o,t),hide:l,type:c,color:ey(n,i),unit:s,formatter:u,graphicalItemId:d}};return qe.createElement(mD,{tooltipEntrySettings:f})});function VG(e){var t=e.clipPathId,r=e.points,n=e.props,a=n.needClip,i=n.dot,o=n.dataKey,l=dr(n);return qe.createElement(DD,{points:r,dot:i,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:o,baseProps:l,needClip:a,clipPathId:t})}function FG(e){var t=e.showLabels,r=e.children,n=e.points,a=n.map(i=>{var o,l,s={x:(o=i.x)!==null&&o!==void 0?o:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Gu(Gu({},s),{},{value:i.value,payload:i.payload,parentViewBox:void 0,viewBox:s,fill:void 0})});return qe.createElement(nD,{value:t?a:void 0},r)}function WG(e){var t=e.points,r=e.baseLine,n=e.needClip,a=e.clipPathId,i=e.props,o=e.animationElapsedTime,l=e.isAnimating,s=e.isEntrance,u=i.layout,c=i.type,d=i.stroke,f=i.connectNulls,p=i.isRange,g=i.shape,h=i.id,x=V6(i,PG),m=Ut(x),v=Gu(Gu({},m),{},{id:h,points:t,connectNulls:f,type:c,baseLine:r,layout:u,stroke:d,isRange:p,animationElapsedTime:o,isAnimating:l,isEntrance:s});return qe.createElement(qe.Fragment,null,t?.length>1&&qe.createElement(rr,{clipPath:n?"url(#clipPath-".concat(a,")"):void 0},qe.createElement(pD,{option:g,DefaultShape:F6.shape,shapeProps:v})),qe.createElement(VG,{points:t,props:x,clipPathId:a}))}function qG(e,t,r){if(ve(e)){var n=ve(t)?t:void 0;return Bn(n,e,r)}if(Nt(e)||Cr(e)){var a=ve(t)?t:void 0;return Bn(a,0,r)}return e}function YG(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=e.previousPointsRef,i=e.previousBaselineRef,o=n.points,l=n.baseLine,s=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,f=n.animationMatchBy,p=n.animationInterpolateFn,g=(0,kl.useMemo)(()=>({points:o,baseLine:l}),[o,l]),h=Hh(g,i),x=iu(),m=xD(n.onAnimationStart,n.onAnimationEnd),v=m.isAnimating,y=m.handleAnimationStart,b=m.handleAnimationEnd,k=h.startValue;if(x==null)return null;var N;return Array.isArray(l)&&Array.isArray(k)?N=hf(k,l,f):Array.isArray(l)?N=hf(null,l,f):N=null,qe.createElement(bD,{animationInput:g,animationIdPrefix:"recharts-area-",items:o,previousItemsRef:a,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:y,onAnimationEnd:b,animationInterpolateFn:p,animationMatchBy:f,layout:x},(D,_,M)=>{var z;return _===1?z=l:Array.isArray(l)?z=p(N,_,x):z=M?l:qG(l,k,_),h.syncStepValue(z,_),qe.createElement(FG,{showLabels:!v,points:o},n.children,qe.createElement(WG,{points:D,baseLine:z,needClip:t,clipPathId:r,props:n,animationElapsedTime:_,isAnimating:v||_<1,isEntrance:M}),qe.createElement(iD,{label:n.label}))})}function KG(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=(0,kl.useRef)(null),i=(0,kl.useRef)();return qe.createElement(YG,{needClip:t,clipPathId:r,props:n,previousPointsRef:a,previousBaselineRef:i})}var Zw=class extends kl.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,a=t.points,i=t.className,o=t.top,l=t.left,s=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,f=t.height,p=t.id,g=t.baseLine,h=t.zIndex;if(r)return null;var x=De("recharts-area",i),m=p,v=T6(n),y=v.r,b=v.strokeWidth,k=Uh(n),N=y*2+b,D=s?"url(#clipPath-".concat(k?"":"dots-").concat(m,")"):void 0;return qe.createElement(wr,{zIndex:h},qe.createElement(rr,{className:x},s&&qe.createElement("defs",null,qe.createElement(O6,{clipPathId:m,xAxisId:u,yAxisId:c}),!k&&qe.createElement("clipPath",{id:"clipPath-dots-".concat(m)},qe.createElement("rect",{x:l-N/2,y:o-N/2,width:d+N,height:f+N}))),qe.createElement(KG,{needClip:s,clipPathId:m,props:this.props})),qe.createElement(Fw,{points:a,mainColor:ey(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}),this.props.isRange&&Array.isArray(g)&&qe.createElement(Fw,{points:g,mainColor:ey(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}))}};function GG(e){var t,r=e.activeDot,n=e.animationBegin,a=e.animationDuration,i=e.animationEasing,o=e.connectNulls,l=e.dot,s=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,f=e.legendType,p=e.stroke,g=e.xAxisId,h=e.yAxisId,x=V6(e,jG),m=Sa(),v=Ah(),y=Gw(g,h),b=y.needClip,k=ft(),N=(t=be(V=>L6(V,e.id,k)))!==null&&t!==void 0?t:{},D=N.points,_=N.isRange,M=N.baseLine,z=Yu();if(m!=="horizontal"&&m!=="vertical"||z==null||v!=="AreaChart"&&v!=="ComposedChart")return null;var $=z.height,U=z.width,G=z.x,j=z.y;return!D||!D.length?null:qe.createElement(Zw,Rh({},x,{activeDot:r,animationBegin:n,animationDuration:a,animationEasing:i,baseLine:M,connectNulls:o,dot:l,fill:s,fillOpacity:u,height:$,hide:c,layout:m,isAnimationActive:d,isRange:_,legendType:f,needClip:b,points:D,stroke:p,width:U,left:G,top:j,xAxisId:g,yAxisId:h}))}var XG=(e,t,r,n,a)=>{var i=r??t;if(ve(i))return i;var o=e==="horizontal"?a:n,l=o.scale.domain();if(o.type==="number"){var s=Math.max(l[0],l[1]),u=Math.min(l[0],l[1]);return i==="dataMin"?u:i==="dataMax"||s<0?s:Math.max(Math.min(l[0],l[1]),0)}return i==="dataMin"?l[0]:i==="dataMax"?l[1]:l[0]};function B6(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,a=t.dataKey,i=e.stackedData,o=e.layout,l=e.chartBaseValue,s=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,g=e.bandSize,h=e.stackDataKeys,x=i&&i.length,m=XG(o,l,n,s,u),v=o==="horizontal",y=!1,b=c.map((N,D)=>{var _,M,z,$;if(x)$=i[d+D];else{var U=yt(N,a);Array.isArray(U)?($=U,y=!0):$=[m,U]}var G=(_=(M=$)===null||M===void 0?void 0:M[1])!==null&&_!==void 0?_:null,j=yt(N,a),V=x&&j==null&&h!=null&&h.length>0&&h.every(E=>yt(N,E)==null),w=G==null||x&&!r&&j==null||V;if(v){var O;return{x:x1({axis:s,ticks:f,bandSize:g,entry:N,index:D}),y:w?null:(O=u.scale.map(G))!==null&&O!==void 0?O:null,value:$,payload:N}}return{x:w?null:(z=s.scale.map(G))!==null&&z!==void 0?z:null,y:x1({axis:u,ticks:p,bandSize:g,entry:N,index:D}),value:$,payload:N}}),k;return x||y?k=b.map(N=>{var D,_=Array.isArray(N.value)?N.value[0]:null;if(v){var M;return{x:N.x,y:_!=null&&N.y!=null&&(M=u.scale.map(_))!==null&&M!==void 0?M:null,payload:N.payload}}return{x:_!=null&&(D=s.scale.map(_))!==null&&D!==void 0?D:null,y:N.y,payload:N.payload}}):k=v?u.scale.map(m):s.scale.map(m),{points:b,baseLine:k??0,isRange:y}}function ZG(e){var t=Ct(e,F6),r=ft();return qe.createElement(ND,{id:t.id,type:"area"},n=>qe.createElement(qe.Fragment,null,qe.createElement(gD,{legendPayload:UG(t)}),qe.createElement(HG,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),qe.createElement(TD,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:cO(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),qe.createElement(GG,Rh({},t,{id:n}))))}var El=qe.memo(ZG,ao);El.displayName="Area";var bi=Q(R()),Kn=Q(R());var QG=["domain","range"],JG=["domain","range"];function W6(e,t){if(e==null)return{};var r,n,a=RG(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{if(o!=null)return K6(K6({},i),{},{type:o})},[i,o]);return(0,Kn.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(ID(l)):r.current!==l&&t(zD({prev:r.current,next:l})),r.current=l)},[l,t]),(0,Kn.useLayoutEffect)(()=>()=>{r.current&&(t(LD(r.current)),r.current=null)},[t]),null}var sX=e=>{var t=e.xAxisId,r=e.className,n=e.height,a=e.label,i=(0,Kn.useRef)(null),o=(0,Kn.useRef)(null),l=be(Vg),s=ft(),u=$e(),c="xAxis",d=be(N=>fh(N,c,t,s)),f=be(N=>aM(N,t)),p=be(N=>iM(N,t)),g=be(N=>k2(N,t));if((0,Kn.useLayoutEffect)(()=>{if(!(n!=="auto"||!f||wl(a)||(0,Kn.isValidElement)(a)||g==null)){var N=i.current;if(N){var D=N.getCalculatedHeight();Math.round(f.height)!==Math.round(D)&&u(VD({id:t,height:D}))}}},[d,f,u,a,t,n,g]),f==null||p==null||g==null)return null;var h=e.dangerouslySetInnerHTML,x=e.ticks,m=e.scale,v=Jw(e,tX),y=g.id,b=g.scale,k=Jw(g,rX);return bi.createElement(_f,Qw({},v,k,{ref:i,labelRef:o,x:p.x,y:p.y,width:f.width,height:f.height,className:De("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:d,axisType:c,axisId:t}))},uX={allowDataOverflow:Vt.allowDataOverflow,allowDecimals:Vt.allowDecimals,allowDuplicatedCategory:Vt.allowDuplicatedCategory,angle:Vt.angle,axisLine:Yn.axisLine,height:Vt.height,hide:!1,includeHidden:Vt.includeHidden,interval:Vt.interval,label:!1,minTickGap:Vt.minTickGap,mirror:Vt.mirror,orientation:Vt.orientation,padding:Vt.padding,reversed:Vt.reversed,scale:Vt.scale,tick:Vt.tick,tickCount:Vt.tickCount,tickLine:Yn.tickLine,tickSize:Yn.tickSize,type:Vt.type,niceTicks:Vt.niceTicks,xAxisId:0},cX=e=>{var t=Ct(e,uX);return bi.createElement(bi.Fragment,null,bi.createElement(lX,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),bi.createElement(sX,t))},Ol=bi.memo(cX,ty);Ol.displayName="XAxis";var wi=Q(R()),Gn=Q(R());var dX=["type"],fX=["dangerouslySetInnerHTML","ticks","scale"],pX=["id","scale"];function Rw(){return Rw=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o!=null)return X6(X6({},i),{},{type:o})},[o,i]);return(0,Gn.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(BD(l)):r.current!==l&&t($D({prev:r.current,next:l})),r.current=l)},[l,t]),(0,Gn.useLayoutEffect)(()=>()=>{r.current&&(t(UD(r.current)),r.current=null)},[t]),null}function xX(e){var t=e.yAxisId,r=e.className,n=e.width,a=e.label,i=(0,Gn.useRef)(null),o=(0,Gn.useRef)(null),l=be(Vg),s=ft(),u=$e(),c="yAxis",d=be(N=>lM(N,t)),f=be(N=>oM(N,t)),p=be(N=>fh(N,c,t,s)),g=be(N=>E2(N,t));if((0,Gn.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||wl(a)||(0,Gn.isValidElement)(a)||g==null)){var N=i.current;if(N){var D=N.getCalculatedWidth();Math.round(d.width)!==Math.round(D)&&u(HD({id:t,width:D}))}}},[p,d,u,a,t,n,g]),d==null||f==null||g==null)return null;var h=e.dangerouslySetInnerHTML,x=e.ticks,m=e.scale,v=eS(e,fX),y=g.id,b=g.scale,k=eS(g,pX);return wi.createElement(_f,Rw({},v,k,{ref:i,labelRef:o,x:f.x,y:f.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:De("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:p,axisType:c,axisId:t}))}var bX={allowDataOverflow:Ft.allowDataOverflow,allowDecimals:Ft.allowDecimals,allowDuplicatedCategory:Ft.allowDuplicatedCategory,angle:Ft.angle,axisLine:Yn.axisLine,hide:!1,includeHidden:Ft.includeHidden,interval:Ft.interval,label:!1,minTickGap:Ft.minTickGap,mirror:Ft.mirror,orientation:Ft.orientation,padding:Ft.padding,reversed:Ft.reversed,scale:Ft.scale,tick:Ft.tick,tickCount:Ft.tickCount,tickLine:Yn.tickLine,tickSize:Yn.tickSize,type:Ft.type,niceTicks:Ft.niceTicks,width:Ft.width,yAxisId:0},wX=e=>{var t=Ct(e,bX);return wi.createElement(wi.Fragment,null,wi.createElement(yX,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),wi.createElement(xX,t))},Tl=wi.memo(wX,ty);Tl.displayName="YAxis";var zl=Q(R()),CP=Q(R());var uP=Q(R()),cP=Q(R());var SX=(e,t)=>t,Ef=Y([SX,tt,bv,Ht,vw,rn,UM,xt],YM);function AX(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Of(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(AX(e)){var a=e.currentTarget.getBBox();r=a.width>0?t.width/a.width:1,n=a.height>0?t.height/a.height:1}else{var i=e.currentTarget;r=i.offsetWidth>0?t.width/i.offsetWidth:1,n=i.offsetHeight>0?t.height/i.offsetHeight:1}var o=(l,s)=>({relativeX:Math.round((l-t.left)/r),relativeY:Math.round((s-t.top)/n)});return"touches"in e?Array.from(e.touches).map(l=>o(l.clientX,l.clientY)):o(e.clientX,e.clientY)}var rS=Jt("mouseClick"),nS=si();nS.startListening({actionCreator:rS,effect:(e,t)=>{var r=e.payload,n=Ef(t.getState(),Of(r));n?.activeIndex!=null&&t.dispatch(hM({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var ry=Jt("mouseMove"),aS=si(),Xu=null,Ml=null,tS=null;aS.startListening({actionCreator:ry,effect:(e,t)=>{var r=e.payload,n=t.getState(),a=n.eventSettings,i=a.throttleDelay,o=a.throttledEvents,l=o==="all"||o?.includes("mousemove");Xu!==null&&(cancelAnimationFrame(Xu),Xu=null),Ml!==null&&(typeof i!="number"||!l)&&(clearTimeout(Ml),Ml=null),tS=Of(r);var s=()=>{var u=t.getState(),c=mo(u,u.tooltip.settings.shared);if(!tS){Xu=null,Ml=null;return}if(c==="axis"){var d=Ef(u,tS);d?.activeIndex!=null?t.dispatch(gh({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(mh())}Xu=null,Ml=null};if(!l){s();return}i==="raf"?Xu=requestAnimationFrame(s):typeof i=="number"&&Ml===null&&(Ml=setTimeout(s,i))}});function Z6(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var Q6={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},J6=Qe({name:"rootProps",initialState:Q6,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:Q6.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),R6=J6.reducer,eP=J6.actions.updateOptions;var NX=null,CX={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},tP=Qe({name:"polarOptions",initialState:NX,reducers:CX}),_xe=tP.actions.updatePolarOptions;var rP=tP.reducer;var iS=Jt("keyDown"),oS=Jt("focus"),lS=Jt("blur"),Tf=si(),Zu=null,Dl=null,ny=null;Tf.startListening({actionCreator:iS,effect:(e,t)=>{ny=e.payload,Zu!==null&&(cancelAnimationFrame(Zu),Zu=null);var r=t.getState(),n=r.eventSettings,a=n.throttleDelay,i=n.throttledEvents,o=i==="all"||i.includes("keydown");Dl!==null&&(typeof a!="number"||!o)&&(clearTimeout(Dl),Dl=null);var l=()=>{try{var s=t.getState(),u=s.rootProps.accessibilityLayer!==!1;if(!u)return;var c=s.tooltip.keyboardInteraction,d=ny;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var f=go(c,vi(s),pi(s),ho(s)),p=f==null?-1:Number(f),g=!Number.isFinite(p)||p<0,h=rn(s),x=vi(s),m=mo(s,s.tooltip.settings.shared);if(d==="Enter"){if(g)return;var v=uf(s,m,"hover",String(c.index));t.dispatch(lf({active:!c.active,activeIndex:c.index,activeCoordinate:v}));return}var y=sM(s),b=y==="left-to-right"?1:-1,k=d==="ArrowRight"?1:-1,N;if(g){var D=pi(s),_=ho(s),M=k*b,z=V=>({active:!1,index:String(V),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(N=-1,M>0){for(var $=0;$=0;U--)if(go(z(U),x,D,_)!=null){N=U;break}if(N<0)return}else{N=p+k*b;var G=h?.length||x.length;if(G===0||N>=G||N<0)return}var j=uf(s,m,"hover",String(N));t.dispatch(lf({active:!0,activeIndex:N.toString(),activeCoordinate:j}))}finally{Zu=null,Dl=null}};if(!o){l();return}a==="raf"?Zu=requestAnimationFrame(l):typeof a=="number"&&Dl===null&&(l(),ny=null,Dl=setTimeout(()=>{ny?l():(Dl=null,Zu=null)},a))}});Tf.startListening({actionCreator:oS,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;if(!a.active&&a.index==null){var i="0",o=mo(r,r.tooltip.settings.shared),l=uf(r,o,"hover",String(i));t.dispatch(lf({active:!0,activeIndex:i,activeCoordinate:l}))}}}});Tf.startListening({actionCreator:lS,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;a.active&&t.dispatch(lf({active:!1,activeIndex:a.index,activeCoordinate:a.coordinate}))}}});function ay(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var a=Reflect.get(r,n);return typeof a=="function"?a.bind(r):a}})}var Cn=Jt("externalEvent"),uS=si(),iy=new Map,Mf=new Map,sS=new Map;uS.startListening({actionCreator:Cn,effect:(e,t)=>{var r=e.payload,n=r.handler,a=r.reactEvent;if(n!=null){var i=a.type,o=ay(a);sS.set(i,{handler:n,reactEvent:o});var l=iy.get(i);l!==void 0&&(cancelAnimationFrame(l),iy.delete(i));var s=t.getState(),u=s.eventSettings,c=u.throttleDelay,d=u.throttledEvents,f=d,p=f==="all"||f?.includes(i),g=Mf.get(i);g!==void 0&&(typeof c!="number"||!p)&&(clearTimeout(g),Mf.delete(i));var h=()=>{var v=sS.get(i);try{if(!v)return;var y=v.handler,b=v.reactEvent,k=t.getState(),N={activeCoordinate:bw(k),activeDataKey:EM(k),activeIndex:yl(k),activeLabel:Sh(k),activeTooltipIndex:yl(k),isTooltipActive:ww(k)};y&&y(N,b)}finally{iy.delete(i),Mf.delete(i),sS.delete(i)}};if(!p){h();return}if(c==="raf"){var x=requestAnimationFrame(h);iy.set(i,x)}else if(typeof c=="number"){if(!Mf.has(i)){h();var m=setTimeout(h,c);Mf.set(i,m)}}else h()}}});var _X=Y([gi],e=>e.tooltipItemPayloads),nP=Y([_X,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(i=>i.settings.graphicalItemId===r);if(n!=null){var a=n.getPosition;if(a!=null)return a(t)}}});var cS=Jt("touchMove"),dS=si(),Pl=null,xo=null,aP=null,Df=null;dS.startListening({actionCreator:cS,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Df=ay(r);var n=t.getState(),a=n.eventSettings,i=a.throttleDelay,o=a.throttledEvents,l=o==="all"||o.includes("touchmove");Pl!==null&&(cancelAnimationFrame(Pl),Pl=null),xo!==null&&(typeof i!="number"||!l)&&(clearTimeout(xo),xo=null),aP=Array.from(r.touches).map(u=>Of({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var s=()=>{if(Df!=null){var u=t.getState(),c=mo(u,u.tooltip.settings.shared);if(c==="axis"){var d,f=(d=aP)===null||d===void 0?void 0:d[0];if(f==null){Pl=null,xo=null;return}var p=Ef(u,f);p?.activeIndex!=null&&t.dispatch(gh({activeIndex:p.activeIndex,activeDataKey:void 0,activeCoordinate:p.activeCoordinate}))}else if(c==="item"){var g,h=Df.touches[0];if(document.elementFromPoint==null||h==null)return;var x=document.elementFromPoint(h.clientX,h.clientY);if(!x||!x.getAttribute)return;var m=x.getAttribute(gO),v=(g=x.getAttribute(vO))!==null&&g!==void 0?g:void 0,y=vo(u).find(N=>N.id===v);if(m==null||y==null||v==null)return;var b=y.dataKey,k=nP(u,m,v);t.dispatch(vM({activeDataKey:b,activeIndex:m,activeCoordinate:k,activeGraphicalItemId:v}))}Pl=null,xo=null}};if(!l){s();return}i==="raf"?Pl=requestAnimationFrame(s):typeof i=="number"&&xo===null&&(s(),Df=null,xo=setTimeout(()=>{Df?s():(xo=null,Pl=null)},i))}}});var fS={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},iP=Qe({name:"eventSettings",initialState:fS,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=ze(t.payload.throttledEvents))}}}),oP=iP.actions.setEventSettings;var lP=iP.reducer;var kX=gg({brush:JD,cartesianAxis:FD,chartData:h8,errorBars:E6,eventSettings:lP,graphicalItems:OD,layout:oO,legend:jO,options:f8,polarAxis:sD,polarOptions:rP,referenceElements:t6,renderedTicks:y6,rootProps:R6,tooltip:yM,zIndex:t8}),sP=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return VE({reducer:kX,preloadedState:t,middleware:n=>{var a;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((a="es6")!==null&&a!==void 0?a:"")}).concat([nS.middleware,aS.middleware,Tf.middleware,uS.middleware,dS.middleware])},enhancers:n=>{var a=n;return typeof n=="function"&&(a=n()),a.concat(p1({type:"raf"}))},devTools:Un.devToolsEnabled&&{serialize:{replacer:Z6},name:"recharts-".concat(r)}})};function dP(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,a=ft(),i=(0,cP.useRef)(null);if(a)return r;i.current==null&&(i.current=sP(t,n));var o=dd;return uP.createElement(VO,{context:o,store:i.current},r)}var oy=Q(R());function EX(e){var t=e.layout,r=e.margin,n=$e(),a=ft();return(0,oy.useEffect)(()=>{a||(n(nO(t)),n(v1(r)))},[n,a,t,r]),null}var fP=(0,oy.memo)(EX,ao);var pP=Q(R());function mP(e){var t=$e();return(0,pP.useEffect)(()=>{t(eP(e))},[t,e]),null}var ly=Q(R());var OX=e=>{var t=$e();return(0,ly.useEffect)(()=>{t(oP(e))},[t,e]),null},gP=(0,ly.memo)(OX,ao);var Si=Q(R()),SP=Q(R());var Il=Q(R()),mS=Q(R());var jl=Q(R()),sy=Q(R());function vP(e){var t=e.zIndex,r=e.isPanorama,n=(0,sy.useRef)(null),a=$e();return(0,sy.useLayoutEffect)(()=>(n.current&&a(RM({zIndex:t,element:n.current,isPanorama:r})),()=>{a(e8({zIndex:t,isPanorama:r}))}),[a,t,r]),jl.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function pS(e){var t=e.children,r=e.isPanorama,n=be(GM);if(!n||n.length===0)return t;var a=n.filter(o=>o<0),i=n.filter(o=>o>0);return jl.createElement(jl.Fragment,null,a.map(o=>jl.createElement(vP,{key:o,zIndex:o,isPanorama:r})),t,i.map(o=>jl.createElement(vP,{key:o,zIndex:o,isPanorama:r})))}var TX=["children"];function MX(e,t){if(e==null)return{};var r,n,a=DX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var r=Yg(),n=Kg(),a=Zg();if(!Qr(r)||!Qr(n))return null;var i=e.children,o=e.otherAttributes,l=e.title,s=e.desc,u,c;return o!=null&&(typeof o.tabIndex=="number"?u=o.tabIndex:u=a?0:void 0,typeof o.role=="string"?c=o.role:c=a?"application":void 0),Il.createElement(hb,uy({},o,{title:l,desc:s,role:c,tabIndex:u,width:r,height:n,style:PX,ref:t}),i)}),IX=e=>{var t=e.children,r=be(Zo);if(!r)return null;var n=r.width,a=r.height,i=r.y,o=r.x;return Il.createElement(hb,{width:n,height:a,x:o,y:i},t)},gS=(0,mS.forwardRef)((e,t)=>{var r=e.children,n=MX(e,TX),a=ft();return a?Il.createElement(IX,null,Il.createElement(pS,{isPanorama:!0},r)):Il.createElement(jX,uy({ref:t},n),Il.createElement(pS,{isPanorama:!1},r))});var kt=Q(R()),Fe=Q(R());var cy=Q(R());function zX(e,t){return UX(e)||$X(e,t)||BX(e,t)||LX()}function LX(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BX(e,t){if(e){if(typeof e=="string")return hP(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hP(e,t):void 0}}function hP(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var o=n.getBoundingClientRect(),l=o.width/n.offsetWidth;Me(l)&&l!==i&&e(iO(l))}},[n,e,i]),a}function xP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function HX(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(x8(),null);function fy(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var ZX=(0,Fe.forwardRef)((e,t)=>{var r,n,a=(0,Fe.useRef)(null),i=(0,Fe.useState)({containerWidth:fy((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:fy((n=e.style)===null||n===void 0?void 0:n.height)}),o=dy(i,2),l=o[0],s=o[1],u=(0,Fe.useCallback)((d,f)=>{s(p=>{var g=Math.round(d),h=Math.round(f);return p.containerWidth===g&&p.containerHeight===h?p:{containerWidth:g,containerHeight:h}})},[]),c=(0,Fe.useCallback)(d=>{if(typeof t=="function"&&t(d),a.current!=null&&(a.current.disconnect(),a.current=null),d!=null&&typeof ResizeObserver<"u"){var f=d.getBoundingClientRect(),p=f.width,g=f.height;u(p,g);var h=m=>{var v=m[0];if(v!=null){var y=v.contentRect,b=y.width,k=y.height;u(b,k)}},x=new ResizeObserver(h);x.observe(d),a.current=x}},[t,u]);return(0,Fe.useEffect)(()=>()=>{var d=a.current;d?.disconnect()},[u]),kt.createElement(kt.Fragment,null,kt.createElement(Ro,{width:l.containerWidth,height:l.containerHeight}),kt.createElement("div",bo({ref:c},e)))}),QX=(0,Fe.forwardRef)((e,t)=>{var r=e.width,n=e.height,a=(0,Fe.useState)({containerWidth:fy(r),containerHeight:fy(n)}),i=dy(a,2),o=i[0],l=i[1],s=(0,Fe.useCallback)((c,d)=>{l(f=>{var p=Math.round(c),g=Math.round(d);return f.containerWidth===p&&f.containerHeight===g?f:{containerWidth:p,containerHeight:g}})},[]),u=(0,Fe.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),f=d.width,p=d.height;s(f,p)}},[t,s]);return kt.createElement(kt.Fragment,null,kt.createElement(Ro,{width:o.containerWidth,height:o.containerHeight}),kt.createElement("div",bo({ref:u},e)))}),JX=(0,Fe.forwardRef)((e,t)=>{var r=e.width,n=e.height;return kt.createElement(kt.Fragment,null,kt.createElement(Ro,{width:r,height:n}),kt.createElement("div",bo({ref:t},e)))}),RX=(0,Fe.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?kt.createElement(QX,bo({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?kt.createElement(JX,bo({},e,{width:r,height:n,ref:t})):kt.createElement(kt.Fragment,null,kt.createElement(Ro,{width:r,height:n}),kt.createElement("div",bo({ref:t},e)))});function eZ(e){return e?ZX:RX}var wP=(0,Fe.forwardRef)((e,t)=>{var r=e.children,n=e.className,a=e.height,i=e.onClick,o=e.onContextMenu,l=e.onDoubleClick,s=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,f=e.onMouseUp,p=e.onTouchEnd,g=e.onTouchMove,h=e.onTouchStart,x=e.style,m=e.width,v=e.responsive,y=e.dispatchTouchEvents,b=y===void 0?!0:y,k=(0,Fe.useRef)(null),N=$e(),D=(0,Fe.useState)(null),_=dy(D,2),M=_[0],z=_[1],$=(0,Fe.useState)(null),U=dy($,2),G=U[0],j=U[1],V=yP(),w=wd(),O=w?.width>0?w.width:m,E=w?.height>0?w.height:a,C=(0,Fe.useCallback)(K=>{V(K),typeof t=="function"&&t(K),z(K),j(K),K!=null&&(k.current=K)},[V,t,z,j]),S=(0,Fe.useCallback)(K=>{N(rS(K)),N(Cn({handler:i,reactEvent:K}))},[N,i]),T=(0,Fe.useCallback)(K=>{N(ry(K)),N(Cn({handler:u,reactEvent:K}))},[N,u]),F=(0,Fe.useCallback)(K=>{N(mh()),N(Cn({handler:c,reactEvent:K}))},[N,c]),X=(0,Fe.useCallback)(K=>{N(ry(K)),N(Cn({handler:d,reactEvent:K}))},[N,d]),J=(0,Fe.useCallback)(()=>{N(oS())},[N]),se=(0,Fe.useCallback)(()=>{N(lS())},[N]),ce=(0,Fe.useCallback)(K=>{N(iS(K.key))},[N]),ge=(0,Fe.useCallback)(K=>{N(Cn({handler:o,reactEvent:K}))},[N,o]),Te=(0,Fe.useCallback)(K=>{N(Cn({handler:l,reactEvent:K}))},[N,l]),ie=(0,Fe.useCallback)(K=>{N(Cn({handler:s,reactEvent:K}))},[N,s]),_e=(0,Fe.useCallback)(K=>{N(Cn({handler:f,reactEvent:K}))},[N,f]),W=(0,Fe.useCallback)(K=>{N(Cn({handler:h,reactEvent:K}))},[N,h]),q=(0,Fe.useCallback)(K=>{b&&N(cS(K)),N(Cn({handler:g,reactEvent:K}))},[N,b,g]),A=(0,Fe.useCallback)(K=>{N(Cn({handler:p,reactEvent:K}))},[N,p]),I=eZ(v);return kt.createElement(Ow.Provider,{value:M},kt.createElement(tk.Provider,{value:G},kt.createElement(I,{width:O??x?.width,height:E??x?.height,className:De("recharts-wrapper",n),style:HX({position:"relative",cursor:"default",width:O,height:E},x),onClick:S,onContextMenu:ge,onDoubleClick:Te,onFocus:J,onBlur:se,onKeyDown:ce,onMouseDown:ie,onMouseEnter:T,onMouseLeave:F,onMouseMove:X,onMouseUp:_e,onTouchEnd:A,onTouchMove:q,onTouchStart:W,ref:C},kt.createElement(XX,null),r)))});var tZ=["width","height","responsive","children","className","style","compact","title","desc"];function rZ(e,t){if(e==null)return{};var r,n,a=nZ(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,a=e.responsive,i=e.children,o=e.className,l=e.style,s=e.compact,u=e.title,c=e.desc,d=rZ(e,tZ),f=dr(d);return s?Si.createElement(Si.Fragment,null,Si.createElement(Ro,{width:r,height:n}),Si.createElement(gS,{otherAttributes:f,title:u,desc:c},i)):Si.createElement(wP,{className:o,style:l,width:r,height:n,responsive:a??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},Si.createElement(gS,{otherAttributes:f,title:u,desc:c,ref:t},Si.createElement(n6,null,i)))});function vS(){return vS=Object.assign?Object.assign.bind():function(e){for(var t=1;tkP.createElement(_P,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:cZ,tooltipPayloadSearcher:c8,categoricalChartProps:e,ref:t}));var Xn=Q(R()),Ju=[{id:"5m",label:"5m",minutes:5,bucketSeconds:10},{id:"10m",label:"10m",minutes:10,bucketSeconds:20},{id:"15m",label:"15m",minutes:15,bucketSeconds:30},{id:"30m",label:"30m",minutes:30,bucketSeconds:60},{id:"45m",label:"45m",minutes:45,bucketSeconds:60},{id:"1h",label:"1h",minutes:60,bucketSeconds:120},{id:"2h",label:"2h",minutes:120,bucketSeconds:240},{id:"3h",label:"3h",minutes:180,bucketSeconds:300},{id:"6h",label:"6h",minutes:360,bucketSeconds:600},{id:"12h",label:"12h",minutes:720,bucketSeconds:1200},{id:"1d",label:"1d",minutes:1440,bucketSeconds:1800},{id:"3d",label:"3d",minutes:4320,bucketSeconds:7200},{id:"7d",label:"7d",minutes:10080,bucketSeconds:14400},{id:"30d",label:"30d",minutes:43200,bucketSeconds:86400},{id:"90d",label:"90d",minutes:129600,bucketSeconds:259200}],OP="30m",TP="activeagents.timeWindow",MP=(0,Xn.createContext)(null),hS=e=>Ju.find(t=>t.id===e);function DP({children:e}){let[t,r]=(0,Xn.useState)(()=>{try{let i=localStorage.getItem(TP);if(i&&hS(i))return i}catch{}return OP}),n=(0,Xn.useCallback)(i=>{if(hS(i)){r(i);try{localStorage.setItem(TP,i)}catch{}}},[]),a=(0,Xn.useMemo)(()=>{let i=Ju.findIndex(l=>l.id===t),o=Ju[i]||hS(OP);return{timeWindow:o,windowIndex:i,windows:Ju,setWindow:n,zoomTo:l=>{let s=Ju[Math.min(Math.max(l,0),Ju.length-1)];s&&n(s.id)},days:Math.max(1,Math.ceil(o.minutes/1440))}},[t,n]);return Xn.default.createElement(MP.Provider,{value:a},e)}function Ma(){let e=(0,Xn.useContext)(MP);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var Ru=Q(R());function Da({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:a,zoomTo:i}=Ma(),{darkMode:o}=Ze(),l=Is(o),s={color:l.textSecondary};return Ru.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:l.mutedBg}},Ru.default.createElement("button",{onClick:()=>i(r-1),disabled:r<=0,title:"Zoom in (shorter window)","aria-label":"Zoom in",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:s},"\u2212"),Ru.default.createElement("select",{value:n.id,onChange:u=>a(u.target.value),"aria-label":"Time window",className:`aa-field px-2 py-1 mx-1 text-sm rounded-md shadow ${e?"":"min-w-[4.5rem]"}`,style:{background:l.cardBg,color:l.textPrimary,border:`1px solid ${l.cardBorder}`}},t.map(u=>Ru.default.createElement("option",{key:u.id,value:u.id},u.label))),Ru.default.createElement("button",{onClick:()=>i(r+1),disabled:r>=t.length-1,title:"Zoom out (longer window)","aria-label":"Zoom out",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:s},"+"))}var Yt=Q(R());var ct=Q(R()),dZ={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},Pf=e=>{let t=(e||"").toLowerCase();return t.includes("claude")?2e5:t.includes("gemini")?1e6:t.includes("llama")?131072:t.includes("gpt-4o")||t.includes("gpt-4-turbo")||t.includes("gpt-4.1")?128e3:t.includes("gpt-5")?4e5:128e3},Pa=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},ec=e=>e==null?"\u2014":e>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:e>=1e3?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:String(Math.round(e));function wo({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:a=0,compact:i=!1,defaultOpen:o=!1,label:l="Context window",estimated:s=!1,darkMode:u=!1}){let[c,d]=(0,ct.useState)(o),f=r.filter(D=>D.tokens>0),p=e??f.reduce((D,_)=>D+_.tokens,0),g=t>0?p/t:0,h=g>=.9?"#dc2626":g>=.75?"#eab308":null,x=u?"rgba(255,255,255,0.4)":"#9ca3af",m=u?"rgba(255,255,255,0.6)":"#6b7280",v=u?"rgba(255,255,255,0.75)":"#4b5563",y=u?"rgba(255,255,255,0.1)":"#f3f4f6",b=`${ec(p)} / ${ec(t)} (${Math.round(g*100)}%)`,k=D=>D.key==="messages"&&h?h:D.color||dZ[D.key]||"#2563eb",N=D=>ct.default.createElement("div",{style:{display:"flex",height:D,borderRadius:"999px",overflow:"hidden",background:y,flex:1}},f.map(_=>ct.default.createElement("div",{key:_.key,title:`${_.label} \xB7 ${ec(_.tokens)}`,style:{width:`${Math.min(_.tokens/t*100,100)}%`,background:k(_)}})));return i?ct.default.createElement("span",{title:`${l}: ${b}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},N("6px"),ct.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:h||x,whiteSpace:"nowrap"}},Math.round(g*100),"%")):ct.default.createElement("div",{style:{background:u?"rgba(255,255,255,0.03)":"#ffffff",border:`1px solid ${h?h+"66":u?"rgba(255,255,255,0.1)":"#e5e7eb"}`,borderRadius:"12px",padding:"12px 14px"}},ct.default.createElement("div",{onClick:D=>{D.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},ct.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:m}},l,s&&ct.default.createElement("span",{style:{color:x,fontWeight:400}}," \xB7 estimated")),ct.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},ct.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:h||v}},b),ct.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:x,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),ct.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},N("9px")),g>=.9&&ct.default.createElement("div",{style:{marginTop:"6px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:"#dc2626"}},"[!] compaction imminent \u2014 next turn may drop the oldest messages"),c&&ct.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...f,{key:"__free",label:"Free space",tokens:Math.max(t-p,0)}].map(D=>ct.default.createElement("div",{key:D.key,style:{display:"flex",alignItems:"center",gap:"8px"}},ct.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:D.key==="__free"?y:k(D),border:D.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),ct.default.createElement("span",{style:{fontSize:"13px",color:v,flex:1}},D.label),ct.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:m,width:"56px",textAlign:"right"}},ec(D.tokens)),ct.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:x,width:"46px",textAlign:"right"}},t>0?`${(D.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||a>0)&&ct.default.createElement("div",{style:{marginTop:"4px",paddingTop:"6px",borderTop:`1px solid ${u?"rgba(255,255,255,0.08)":"#f3f4f6"}`,display:"flex",gap:"16px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:x}},n>0&&ct.default.createElement("span",null,ct.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",ec(n)),a>0&&ct.default.createElement("span",null,ct.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",ec(a)))))}var ke=Q(R());var Se=Q(R());var Zn=Q(R()),fZ=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,yS=(e,t)=>e.split(fZ).filter(Boolean).map((r,n)=>{let a=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Zn.default.createElement("strong",{key:a},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Zn.default.createElement("em",{key:a},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Zn.default.createElement("code",{key:a,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let i=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return i?Zn.default.createElement("a",{key:a,href:i[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},i[1]):r});function xS({text:e}){if(!e)return null;let t=[],r=String(e).split(` +`),n=0,a=0;for(;nZn.default.createElement("li",{key:u},yS(s,`li${a}-${u}`)))));continue}if(i.trim()===""){t.push(Zn.default.createElement("div",{key:a++,className:"h-2"})),n+=1;continue}t.push(Zn.default.createElement("div",{key:a++},yS(i,`p${a}`))),n+=1}return Zn.default.createElement("div",{className:"break-words"},t)}var nn=Q(R()),pZ=e=>{let t=e.mcp_server||e.server;return t?`MCP server \xB7 ${t}`:typeof e.name=="string"&&e.name.startsWith("mcp__")?`MCP server \xB7 ${e.name.split("__")[1]}`:e.gem?`gem \xB7 ${e.gem}`:e.source?String(e.source):"agent-defined \xB7 method on the agent class"},mZ=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function bS({tool:e,darkMode:t}){let r=mZ(e);return nn.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&nn.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),nn.default.createElement("div",{className:"text-xs font-mono",style:{color:t?"rgba(255,255,255,0.45)":"#9ca3af",display:"flex",flexWrap:"wrap",columnGap:"16px",rowGap:"4px"}},nn.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),nn.default.createElement("span",null,"source: ",pZ(e))))}function wS({tools:e,darkMode:t}){let[r,n]=(0,nn.useState)(null),a=(e||[]).filter(l=>l&&l.name);if(a.length===0)return null;let i=a.find(l=>l.name===r),o=l=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${l?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return nn.default.createElement("div",{style:{marginTop:"8px"}},nn.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},nn.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),a.map(l=>nn.default.createElement("button",{key:l.name,onClick:s=>{s.stopPropagation(),n(r===l.name?null:l.name)},title:r===l.name?"Hide definition":"Show definition",style:o(r===l.name)},"\u2699 ",l.name))),i&&nn.default.createElement("div",{onClick:l=>l.stopPropagation(),style:{marginTop:"6px",padding:"8px 10px",borderRadius:"8px",background:t?"rgba(34,197,94,0.06)":"#f7fef9",border:`1px solid ${t?"rgba(34,197,94,0.25)":"#bbf7d0"}`}},nn.default.createElement(bS,{tool:i,darkMode:t})))}var PP=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,jf=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e,null,2);try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},gZ=["text","output","body","content"],jP=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},vZ=e=>{let t=jP(e.tool_result)??jP(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=gZ.find(i=>typeof t[i]=="string"&&t[i].trim().length>0);if(!r)return null;let n=[t.error&&"error",t.status!=null&&`status ${t.status}`,typeof t.url=="string"&&t.url.replace(/^https?:\/\//,""),typeof t.agent=="string"&&`\u2192 ${t.agent}`,t.truncated&&"truncated"].filter(Boolean).join(" \xB7 "),a=Object.fromEntries(Object.entries(t).filter(([i])=>i!==r));return{field:r,meta:n,body:t[r],rest:a}},hZ=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||jf(e.content)),zP=280,yZ=["tool","system","developer"],If=(e,t=zP)=>e.replace(/\s+/g," ").trim().slice(0,t),SS=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return String(e)}},LP=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:SS(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:SS(t)}]:[]},BP=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),xZ=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((a,i)=>{if(a.role!=="assistant"||BP(a.content))return;let o=LP(a);if(o.length===0)return;let l=new Set;Array.isArray(a.tool_calls)?a.tool_calls.forEach(u=>u.id&&l.add(u.id)):a.tool_call_id&&l.add(a.tool_call_id);let s=[];for(let u=i+1;u0&&c.tool_call_id&&!l.has(c.tool_call_id))break;s.push(u)}s.length!==0&&(s.forEach((u,c)=>{let d=t[u],f=o.find(p=>p.name&&p.name===d.tool_name)||o[Math.min(c,o.length-1)];f&&f.args&&!d.tool_arguments&&r.set(u,{tool_arguments:f.args,created_at:a.created_at||d.created_at})}),n.add(i))}),t.map((a,i)=>r.has(i)?{...a,...r.get(i)}:a).filter((a,i)=>!n.has(i))},IP=e=>yZ.includes(e.role)&&typeof e.content=="string"&&If(e.content).length>=zP,bZ=({message:e,darkMode:t})=>{let r=e.trace_duration_ms||0;if(!r||e.span_duration_ms==null)return null;let n=Math.min((e.span_start_ms||0)/r*100,98),a=Math.max(e.span_duration_ms/r*100,2),i=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return Se.default.createElement("span",{title:`${Math.round(e.span_duration_ms)}ms \xB7 starts at ${Math.round(e.span_start_ms||0)}ms of ${Math.round(r)}ms`,style:{position:"relative",width:"96px",height:"5px",borderRadius:"999px",background:t?"rgba(255,255,255,0.08)":"#f3f4f6",flexShrink:0,marginTop:"8px",display:"inline-block"}},Se.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(a,100-n)}%`,borderRadius:"999px",background:i}}))},AS=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0}),Sr=(e,t)=>{switch(e){case"user":return t?{background:"rgba(59,130,246,0.15)",color:"#93c5fd",label:"User"}:{background:"#eff6ff",color:"#1d4ed8",label:"User"};case"assistant":return t?{background:"rgba(239,68,68,0.12)",color:"#fca5a5",label:"Assistant"}:{background:"#fef2f2",color:"#b91c1c",label:"Assistant"};case"tool":return t?{background:"rgba(245,158,11,0.12)",color:"#fcd34d",label:"Tool"}:{background:"#fffbeb",color:"#b45309",label:"Tool"};case"system":return t?{background:"rgba(139,92,246,0.15)",color:"#c4b5fd",label:"System"}:{background:"#f5f3ff",color:"#6d28d9",label:"System"};case"developer":return t?{background:"rgba(20,184,166,0.15)",color:"#5eead4",label:"Dev"}:{background:"#f0fdfa",color:"#0f766e",label:"Dev"};default:return t?{background:"rgba(255,255,255,0.08)",color:"rgba(255,255,255,0.7)",label:e}:{background:"#f3f4f6",color:"#374151",label:e}}};function ja({messages:e,darkMode:t,tools:r}){let[n,a]=(0,Se.useState)({}),i=s=>a(u=>({...u,[s]:!u[s]})),o={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},l=xZ(e);return Se.default.createElement("div",{className:"space-y-3"},l.map(s=>{let u=Sr(s.role,t),c=!!n[s.id],d=IP(s)&&!c,f=hZ(s)||IP(s),p=jf(s.tool_arguments),g=jf(s.tool_result)||jf(s.content),h=s.tool_calls&&(!Array.isArray(s.tool_calls)||s.tool_calls.length>0)?jf(s.tool_calls):null,x=s.role==="tool"?vZ(s):null,m=s.tool_name?(r||[]).find(M=>M&&M.name===s.tool_name):null,v=s.role==="tool"?SS(s.tool_arguments):null,y=s.role==="tool"&&!!v,b=Sr("assistant",t),k=Sr("tool",t),N=s.role==="tool"&&!s.tool_arguments&&l.some(M=>M&&M.role==="assistant"&&(s.tool_call_id&&M.tool_call_id===s.tool_call_id||Array.isArray(M.tool_calls)&&M.tool_calls.some(z=>z.id&&z.id===s.tool_call_id))),D=s.role==="assistant"&&!BP(s.content)?LP(s):[],_=AS(t);return Se.default.createElement("div",{key:s.id},Se.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${f?"cursor-pointer":""}`,onClick:f?()=>i(s.id):void 0,style:c?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},Se.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(y?[b,k]:[u]).map(M=>Se.default.createElement("span",{key:M.label,className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:M.background,color:M.color,textAlign:"center"}},M.label))),Se.default.createElement("div",{className:"min-w-0 flex-1"},Se.default.createElement("div",{className:"text-sm break-words",style:{color:o.textPrimary}},s.role==="tool"?Se.default.createElement("span",{style:{display:"grid",gap:"2px"}},v&&!N&&Se.default.createElement("span",{className:"font-mono text-xs break-words"},s.tool_name&&Se.default.createElement("span",{style:{color:k.color}},"\u2699 ",s.tool_name," "),Se.default.createElement("span",{style:{color:y?b.color:o.textMuted}},"in:")," ",If(v,180),v.length>180?"\u2026":""),x?Se.default.createElement("span",null,s.tool_name&&!(v&&!N)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:k.color}},"\u2699 ",s.tool_name),(v||N)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:y?k.color:o.textMuted}},"out:"),x.meta&&Se.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:o.textMuted}},x.meta),"\u201C",x.body.replace(/\s+/g," ").trim().slice(0,180),x.body.length>180?"\u2026":"","\u201D"):s.content?Se.default.createElement("span",null,s.tool_name&&!(v&&!N)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:k.color}},"\u2699 ",s.tool_name),(v||N)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:y?k.color:o.textMuted}},"out:"),"\u201C",If(s.content,180),s.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):Se.default.createElement("span",{className:"whitespace-pre-wrap"},s.tool_name?`\u2192 ${s.tool_name}(...)`:"\u2014")):d?Se.default.createElement("span",{style:{color:o.textSecondary}},If(s.content),"\u2026"):D.length>0?Se.default.createElement("span",{style:{display:"grid",gap:"2px"}},D.map((M,z)=>Se.default.createElement("span",{key:z,className:"font-mono text-xs break-words"},M.name&&Se.default.createElement("span",{style:{color:o.textMuted}},M.name," "),Se.default.createElement("span",{style:{color:o.textMuted}},"in:")," ",M.args?Se.default.createElement(Se.default.Fragment,null,If(M.args,180),M.args.length>180?"\u2026":""):"\u2014"))):Se.default.createElement(xS,{text:s.content||"\u2014"})),Se.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:o.textMuted}},s.created_at&&Se.default.createElement("span",null,new Date(s.created_at).toLocaleTimeString()),s.tool_name&&s.role!=="tool"&&Se.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:u.background,color:u.color}},"\u2699 ",s.tool_name),s.duration_ms!=null&&Se.default.createElement("span",null,PP(s.duration_ms)),(s.tool_calls||[]).length>0&&Se.default.createElement("span",null,s.tool_calls.length," tool call",s.tool_calls.length>1?"s":""),s.content_checksum&&Se.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",s.content_checksum.slice(0,8)))),Se.default.createElement(bZ,{message:s,darkMode:t}),f&&Se.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${c?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:o.textMuted}},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),c&&Se.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:u.color+"55"}},Se.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:o.textSecondary}},s.created_at&&Se.default.createElement("span",null,new Date(s.created_at).toLocaleString()),s.tool_call_id&&Se.default.createElement("span",null,"call: ",s.tool_call_id),s.duration_ms!=null&&Se.default.createElement("span",null,"took ",PP(s.duration_ms)),s.content_checksum&&Se.default.createElement("span",null,"\u{1F512} ",s.content_checksum)),p&&Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:y?b.color:o.textMuted}},"Arguments",y?" \xB7 from the agent":""),Se.default.createElement("pre",{style:_},p)),x?Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:y?k.color:o.textMuted}},"Result",y?" \xB7 from the tool":""),Object.keys(x.rest).length>0&&Se.default.createElement("pre",{style:_},JSON.stringify(x.rest,null,2)),Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:o.textMuted}},x.field," \xB7 ",x.body.length.toLocaleString()," chars"),Se.default.createElement("pre",{style:{..._,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},x.body.slice(0,8e3),x.body.length>8e3?` +\u2026`:"")):g?Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:o.textMuted}},s.role==="tool"?"Result":"Content (parsed)"),Se.default.createElement("pre",{style:_},g)):s.role==="tool"&&s.content?Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:y?k.color:o.textMuted}},"Result",y?" \xB7 from the tool":""," \xB7 ",s.content.length.toLocaleString()," chars"),Se.default.createElement("pre",{style:{..._,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},s.content.slice(0,8e3),s.content.length>8e3?` +\u2026`:"")):null,h&&Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:o.textMuted}},"Requested tool calls"),Se.default.createElement("pre",{style:_},h)),m&&Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:o.textMuted}},"Tool definition"),Se.default.createElement(bS,{tool:m,darkMode:t}))))}))}var Be=Q(R());var It=Q(R());var qt=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",panelBg:e?"rgba(0,0,0,0.35)":"#f9fafb",preBg:e?"rgba(255,255,255,0.06)":"#eef0f3",trackBg:e?"rgba(255,255,255,0.08)":"#f3f4f6",hoverBg:e?"rgba(255,255,255,0.04)":"#f9fafb",controlBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",controlActiveBg:e?"#2a2a2a":"#ffffff",textPrimary:e?"#ffffff":"#111827",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",textBody:e?"rgba(255,255,255,0.75)":"#4b5563",link:"#3b82f6",good:e?"#4ade80":"#16a34a",bad:"#ef4444"}),$P=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function Ll({open:e,darkMode:t,size:r=14,style:n}){return It.default.createElement("svg",{className:`flex-shrink-0 transition-transform ${e?"rotate-180":""}`,width:r,height:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:qt(t).textMuted,...n},"aria-hidden":"true"},It.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function py({darkMode:e,id:t,children:r,style:n,className:a=""}){let i=qt(e);return It.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${a}`,style:{backgroundColor:i.cardBg,borderColor:i.cardBorder,...n}},r)}var UP=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:qt(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),wZ=e=>{if(e==null)return{text:"",json:!1};if(typeof e=="object")return{text:JSON.stringify(e,null,2),json:!0};let t=String(e);if(!/^[[{]/.test(t.trim()))return{text:t,json:!1};try{return{text:JSON.stringify(JSON.parse(t),null,2),json:!0}}catch{return{text:t,json:!1}}};function tc({lines:e,darkMode:t,onClick:r,indent:n=0,size:a="12px",style:i,max:o=200}){let[l,s]=rc(),u=qt(t),c=(e||[]).filter(d=>d&&d.text);return c.length===0?null:It.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:Ee.mono,fontSize:a,color:u.textSecondary,cursor:r?"pointer":"default",...i}},c.map((d,f)=>{let p=`${d.label}-${f}`,g=l(p),h=d.max||o,x=String(d.text).replace(/\s+/g," ").trim(),m=wZ(d.text),v=m.json||x.length>60||x!==String(d.text).trim();return It.default.createElement("div",{key:p},It.default.createElement("div",{onClick:v?y=>{y.stopPropagation(),s(p)}:void 0,title:v?g?"Collapse":"Expand":void 0,style:{cursor:v?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},It.default.createElement("span",{style:{color:d.color||u.textMuted}},v?g?"\u25BE":"\u25B8":"\xA0"," ",d.label,":")," ",!g&&$P(x,h)),g&&It.default.createElement("pre",{onClick:y=>y.stopPropagation(),style:UP(t,{wrap:!m.json})},m.text))}))}function zf({options:e,value:t,onChange:r,darkMode:n,label:a,style:i}){let o=qt(n);return It.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:i},a&&It.default.createElement("span",{className:"text-xs mr-1",style:{color:o.textMuted}},a),e.map(l=>It.default.createElement("button",{key:l.id,type:"button",onClick:s=>{s.stopPropagation(),r(l.id)},title:l.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===l.id?{background:o.controlActiveBg,color:o.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:o.textSecondary}},l.label)))}function HP({label:e,body:t,open:r,onToggle:n,darkMode:a,prose:i=!1,max:o=140}){let l=qt(a);return It.default.createElement("div",null,It.default.createElement("div",{onClick:s=>{s.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},It.default.createElement("span",{style:{color:l.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&It.default.createElement("span",{style:{color:l.textMuted}},$P(t,o))),r&&It.default.createElement("pre",{onClick:s=>s.stopPropagation(),style:UP(a,{wrap:i})},t))}function rc(e={}){let[t,r]=(0,It.useState)(e),n=(0,It.useCallback)(i=>{r(o=>({...o,[i]:!o[i]}))},[]);return[(0,It.useCallback)(i=>!!t[i],[t]),n,r]}var NS={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},FP=[{id:"time",label:"Time",hint:"Chronological \u2014 reads as a waterfall"},{id:"duration",label:"Slowest",hint:"Longest-running first"},{id:"name",label:"Name",hint:"Group repeated tool calls together"}],zt=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,CS=e=>{switch(e){case"root":return $t.spans.root;case"prompt":return $t.spans.prompt;case"generate":return $t.spans.generate;case"llm":return $t.spans.llm;case"thinking":return $t.spans.thinking;case"tool":return $t.spans.tool;case"response":return $t.spans.response;default:return"-"}},SZ=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let a=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,a*100))},AZ=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,a)=>(a.duration||0)-(n.duration||0));case"name":return r.sort((n,a)=>(n.name||"").localeCompare(a.name||""));default:return r.sort((n,a)=>(n.start||0)-(a.start||0))}},NZ=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},CZ=(e,t)=>{if(!t.duration_ms)return zt(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${zt(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},_Z=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},VP=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,_S=e=>{let t=e.spans||[],r=i=>{for(let o of t){let l=(o.attributes||{})[i];if(l)return l}return null},n=r("llm.prompt");if(!n){let i=r("prompt.input.messages");if(i)try{n=[...JSON.parse(i)].reverse().find(s=>s&&s.role==="user"&&s.content)?.content}catch{}}let a=r("llm.completion")||r("llm.output.message");return{input:n,output:a}},kZ=e=>{let t=e.attributes||{},r=null,n="input",a="user";if(t["prompt.input.messages"])try{let u=[...JSON.parse(t["prompt.input.messages"])].reverse().find(c=>c&&c.role==="user"&&c.content);typeof u?.content=="string"&&(r=u.content)}catch{}if(!r&&t["llm.prompt"]&&(r=String(t["llm.prompt"])),!r&&(t["tool.input.args"]||t["tool.arguments"])){let s=t["tool.input.args"]||t["tool.arguments"];r=typeof s=="string"?s:JSON.stringify(s),n="in",a="assistant"}let i=null,o="output",l="assistant";return t["llm.output.message"]||t["llm.completion"]?i=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(i=t["tool.output.result"]||t["tool.result"],o="out",l="tool"),i!=null&&typeof i!="string"&&(i=JSON.stringify(i)),{input:r,output:i,inputLabel:n,inputTone:a,outputLabel:o,outputTone:l}},EZ=(e,t)=>{let r=kZ(e),n=_S(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},OZ=e=>{let t={...e.attributes||{}},r=f=>{let p=t[f];return delete t[f],p},n=[],a=f=>n.push({id:`${e.span_id}-m${n.length}`,...f}),i=r("prompt.input.instructions")||r("llm.instructions");i&&a({role:"system",content:String(i)});let o=r("prompt.input.messages");if(o)try{JSON.parse(o).forEach(f=>{f&&a({role:f.role||"user",content:typeof f.content=="string"?f.content:JSON.stringify(f.content),tool_call_id:f.tool_call_id,tool_calls:f.tool_calls})})}catch{t["prompt.input.messages"]=o}let l=r("llm.prompt");l&&a({role:"user",content:String(l)});let s=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(s||u){let f=r("tool.name");a({role:"tool",tool_name:f||(e.name||"").replace(/^tool\./,""),tool_arguments:s,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&a({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},kS=e=>{for(let t of e?.spans||[]){let r=(t.attributes||{})["prompt.input.tools"];if(r)try{let n=typeof r=="string"?JSON.parse(r):r;if(Array.isArray(n)&&n.length>0)return n}catch{}}return[]};function TZ({span:e,darkMode:t,tools:r=[]}){let[n,a]=rc(),i=qt(t),{messages:o,rest:l}=OZ(e),s=null,u=l["prompt.input.tools"];if(u)try{let p=typeof u=="string"?JSON.parse(u):u;Array.isArray(p)&&p.length>0&&(s=p,delete l["prompt.input.tools"])}catch{}let c=Object.entries(l).sort((p,g)=>VP(p[0])-VP(g[0])),d=o.length===1&&o[0].role==="tool"?o[0]:null,f=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return Be.default.createElement("div",{onClick:p=>p.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:i.panelBg,border:`1px solid ${i.cardBorder}`,fontFamily:Ee.mono,fontSize:"12px",color:i.textBody,cursor:"default"}},Be.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},Be.default.createElement("span",null,"duration: ",zt(e.duration)),Be.default.createElement("span",null,"status: ",e.status||"OK"),NZ(e)>0&&Be.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),Be.default.createElement("span",{style:{color:i.textMuted}},"span: ",e.span_id)),d&&Be.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},Be.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},Be.default.createElement("span",{style:{color:Sr("tool",t).color}},"\u2699 ",d.tool_name),f&&Be.default.createElement(Be.default.Fragment,null," ",Be.default.createElement("span",{style:{color:Sr("assistant",t).color}},"in:")," ",Be.default.createElement("span",{style:{color:i.textBody}},f))),d.content&&Be.default.createElement("div",{style:{fontSize:"12px"}},Be.default.createElement("span",{style:{color:Sr("tool",t).color}},"out:")," ",Be.default.createElement("span",{style:{color:i.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),o.length>0&&!d&&Be.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},Be.default.createElement(ja,{messages:o,darkMode:t,tools:s||r})),s&&Be.default.createElement(wS,{tools:s,darkMode:t}),c.length>0&&Be.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([p,g])=>{let h=p.match(/args|result|input|output/)?_Z(g):null,x=!h&&(p.endsWith(".instructions")||p.match(/input|output|result/))&&typeof g=="string"?g:null,m=h||x;if(!m)return Be.default.createElement("div",{key:p,style:{wordBreak:"break-all"}},Be.default.createElement("span",{style:{color:i.textMuted}},p,":")," ",typeof g=="string"?g:JSON.stringify(g));let v=`${e.span_id}:${p}`;return Be.default.createElement(HP,{key:p,label:p,body:m,prose:!h,darkMode:t,open:n(v),onToggle:()=>a(v)})})))}function MZ({span:e,trace:t,darkMode:r,sort:n,longest:a,expanded:i,onToggle:o,tools:l}){let s=qt(r),u=Object.keys(e.attributes||{}).length>0,c=i?null:EZ(e,t);return Be.default.createElement(Be.default.Fragment,null,Be.default.createElement("div",{className:`py-0.5 px-1 -mx-1 rounded transition-colors ${u?`cursor-pointer ${r?"hover:bg-white/5":"hover:bg-gray-100"}`:""}`,style:{paddingLeft:n==="time"?`${(e.nested||0)*16}px`:0,background:i?s.hoverBg:void 0},onClick:u?()=>o():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},Be.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},Be.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:s.textMuted}},CS(e.type)),Be.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?s.bad:s.textPrimary}},e.name),Be.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:Ee.mono,color:s.textMuted}},CZ(e,t)),u&&Be.default.createElement(Ll,{open:i,darkMode:r,size:13,style:{marginLeft:"2px"}})),Be.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:s.trackBg}},Be.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":NS[e.type]||"#9ca3af",left:n==="time"?`${t.duration_ms?e.start/t.duration_ms*100:0}%`:0,width:n==="time"?`${t.duration_ms?Math.max(e.duration/t.duration_ms*100,1):1}%`:`${SZ(e.duration,a)}%`}})),c&&Be.default.createElement(tc,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:Sr(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:Sr(c.outputTone,r).color,max:160}]})),i&&Be.default.createElement(TZ,{span:e,darkMode:r,tools:l}))}function ES({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:a=""}){let[i,o]=rc(),l=qt(t),s=AZ(e?.spans,r),u=n||kS(e);if(s.length===0)return Be.default.createElement("div",{className:"text-sm py-2",style:{color:l.textMuted}},"No spans recorded for this trace.");let c=Math.max(...s.map(d=>d.duration||0),1);return Be.default.createElement("div",{className:"space-y-2"},s.map((d,f)=>{let p=`${a}${d.span_id||f}`;return Be.default.createElement(MZ,{key:p,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:i(p),onToggle:()=>o(p)})}))}var DZ=[{id:"spans",label:"Spans",hint:"Timing waterfall with span details"},{id:"conversation",label:"Conversation",hint:"The run as a message stream \u2014 prompt, tool calls, response"}],OS=e=>{let t=e?.spans||[],r=null;for(let u of t){let c=u.tokens||{},d=(c.input||0)+(c.output||0);d>0&&(!r||d>r.total)&&(r={input:c.input||0,output:c.output||0,thinking:c.thinking||0,cached:c.cached||0,total:d})}if(!r)return null;let n=u=>{for(let c of t){let d=(c.attributes||{})[u];if(d)return d}return null},a=Pa(n("prompt.input.instructions")||n("llm.instructions")),i=Pa(n("prompt.input.tools")||n("llm.tools")),o=Pa(n("prompt.input.mcp_tools")),l=0;for(let u of t){let c=u.attributes||{},d=c["tool.output.result"]||c["tool.result"],f=c["tool.input.args"]||c["tool.arguments"];d&&(l+=Pa(d)),f&&(l+=Pa(f))}l=Math.min(l,r.input);let s=Math.max(r.input-a-i-o-l,0);return{used:r.total,limit:Pf(e.model),cached:r.cached,thinking:r.thinking,segments:[{key:"messages",label:"Messages",tokens:s},{key:"tool_results",label:"Tool results",tokens:l},{key:"instructions",label:"Instructions",tokens:a},{key:"tool_schemas",label:"Tool schemas",tokens:i},{key:"mcp_schemas",label:"MCP tool schemas",tokens:o},{key:"output",label:"Generated output",tokens:r.output}]}},PZ=e=>{let t=0,r=[];(e?.spans||[]).forEach(i=>{(i.nested||0)!==0&&(i.type==="tool"?r.push(i):(i.type==="llm"||i.type==="generate")&&(t=Math.max(t,i.duration||0)))});let n=r.reduce((i,o)=>i+(o.duration||0),0);t=Math.max(t-n,0);let a=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:a,overhead:Math.max(a-t-n,0)}};function jZ({trace:e,darkMode:t}){let r=qt(t),{generation:n,tools:a,toolTotal:i,total:o,overhead:l}=PZ(e);if(n===0&&i===0||n/o>=.99&&i/o<.01)return null;let s=c=>`${(c/o*100).toFixed(c/o<.01?2:1)}%`,u=(c,d)=>ke.default.createElement("div",{style:{width:`${Math.max(c/o*100,.4)}%`,background:d,height:"100%"}});return ke.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},ke.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),ke.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(i,"#10b981"),l>0&&u(l,t?"rgba(255,255,255,0.2)":"#d1d5db")),ke.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:Ee.mono,color:r.textBody}},ke.default.createElement("span",null,ke.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",zt(n)," (",s(n),")"),ke.default.createElement("span",null,ke.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",zt(i)," (",s(i),")"),l>0&&ke.default.createElement("span",null,ke.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",zt(l)," (",s(l),")")),a.length>0&&ke.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:Ee.mono,color:r.textSecondary}},a.map((c,d)=>ke.default.createElement("span",{key:d},c.name," ",zt(c.duration)," (",s(c.duration||0),")"))))}function IZ({trace:e,darkMode:t}){let[r,n]=(0,ke.useState)(null),[a,i]=(0,ke.useState)(!1),o=qt(t);if((0,ke.useEffect)(()=>{if(e?.id==null)return;let s=!0;return n(null),i(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>s&&n(u.interaction)).catch(()=>s&&i(!0)),()=>{s=!1}},[e?.id]),a)return ke.default.createElement("div",{className:"text-sm py-4",style:{color:o.bad}},"Couldn't load the conversation for this trace.");if(!r)return ke.default.createElement("div",{className:"text-sm py-4",style:{color:o.textMuted}},"Loading conversation\u2026");let l=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return l.length===0?ke.default.createElement("div",{className:"text-sm py-4",style:{color:o.textMuted}},"This trace predates content capture \u2014 no conversation to show."):ke.default.createElement(ja,{messages:l,darkMode:t,tools:kS(e)})}function Lf({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[a,i]=(0,ke.useState)("spans"),[o,l]=(0,ke.useState)("time"),s=qt(t),u=(e?.spans||[]).length,c=OS(e),d=e?.tokens||{},f=(0,ke.useCallback)(p=>i(n?p:"spans"),[n]);return e?ke.default.createElement("div",null,ke.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},ke.default.createElement("div",{className:"flex items-center gap-1"},n&&ke.default.createElement(zf,{options:DZ,value:a,onChange:f,darkMode:t}),ke.default.createElement("span",{className:"text-xs ml-2",style:{color:s.textSecondary}},u," ",u===1?"span":"spans")),a==="spans"&&u>0&&ke.default.createElement(zf,{options:FP,value:o,onChange:l,darkMode:t,label:"Sort"})),a==="conversation"?ke.default.createElement("div",{className:"rounded-lg border p-4",style:{background:s.cardBg,borderColor:s.cardBorder}},ke.default.createElement(IZ,{trace:e,darkMode:t})):ke.default.createElement(ke.default.Fragment,null,o==="time"?ke.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:s.textMuted}},ke.default.createElement("span",null,"0ms"),ke.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),ke.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),ke.default.createElement("span",null,zt(e.duration_ms))):ke.default.createElement("div",{className:"text-xs mb-2",style:{color:s.textMuted}},"Bar length compares duration on a log scale"),ke.default.createElement(ES,{trace:e,darkMode:t,sort:o,keyPrefix:`${e.id||e.trace_id}:`})),c&&ke.default.createElement("div",{className:"mt-3"},ke.default.createElement(wo,{...c,label:"Context pressure",estimated:!0,darkMode:t})),ke.default.createElement(jZ,{trace:e,darkMode:t}),!r&&ke.default.createElement("div",{className:"mt-4 pt-4 border-t flex items-center flex-wrap gap-x-6 gap-y-1 text-sm",style:{borderColor:s.cardBorder,color:s.textSecondary}},ke.default.createElement("span",null,"Tokens:"),d.thinking>0&&ke.default.createElement("span",{className:"text-amber-500",style:{fontFamily:Ee.mono}},"T:",d.thinking.toLocaleString()),ke.default.createElement("span",{className:"text-blue-500",style:{fontFamily:Ee.mono}},"in:",(d.input||0).toLocaleString()),ke.default.createElement("span",{className:"text-green-500",style:{fontFamily:Ee.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&ke.default.createElement("span",{style:{fontFamily:Ee.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&ke.default.createElement("div",{className:"mt-4 p-3 rounded-lg border",style:{background:t?"rgba(239,68,68,0.1)":"#fef2f2",borderColor:t?"rgba(239,68,68,0.3)":"#fecaca"}},ke.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var zZ=e=>{if(!e)return"0";let t=(e.input||0)+(e.output||0)+(e.thinking||0);return t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`},LZ=e=>e==null?null:`$${e.toFixed(4)}`;function my({trace:e,darkMode:t,expanded:r,onToggle:n}){let a=qt(t),i=_S(e),o=OS(e),l=e.status!=="ERROR";return Yt.default.createElement(py,{darkMode:t,id:`trace-row-${e.id}`},Yt.default.createElement("div",{className:`p-4 flex items-center justify-between flex-wrap gap-y-2 cursor-pointer transition-colors ${t?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:n,style:r?{background:a.hoverBg}:void 0},Yt.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},Yt.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:Ee.mono,background:a.controlBg,color:a.textSecondary}},"TRACE"),Yt.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:Ee.mono,color:a.textMuted}},e.short_id),Yt.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:a.textPrimary}},e.display_name)),Yt.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:a.textSecondary}},e.model&&Yt.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:Ee.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"},title:"Model that generated this trace"},e.model),o&&Yt.default.createElement(wo,{compact:!0,...o,label:"Context",darkMode:t}),Yt.default.createElement("span",null,Yt.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),zt(e.duration_ms)),Yt.default.createElement("span",null,zZ(e.tokens)," tokens"),e.estimated_cost!=null&&Yt.default.createElement("span",null,Yt.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),LZ(e.estimated_cost)),Yt.default.createElement("span",{style:{color:l?a.good:a.bad}},Yt.default.createElement("i",{className:`fa-solid ${l?"fa-check":"fa-xmark"} mr-1`}),l?"OK":"ERROR"),Yt.default.createElement(Ll,{open:r,darkMode:t}))),!r&&Yt.default.createElement(tc,{darkMode:t,onClick:n,style:{padding:"0 16px 12px"},lines:[{label:"input",text:i.input,color:Sr("user",t).color},{label:"output",text:i.output,color:Sr("assistant",t).color}]}),r&&Yt.default.createElement("div",{className:"border-t p-4",style:{borderColor:a.cardBorder,background:a.innerBg}},Yt.default.createElement(Lf,{trace:e,darkMode:t})))}function Xe(e=""){return`${(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/$/,"")}${e}`||"/"}var WP=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],BZ=3e4,$Z=e=>{let t={};return e.forEach((r,n)=>{t[r]=WP[n%WP.length]}),t},UZ=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let a=n.name||n.type||"unknown";t[a]||(t[a]={name:a,type:n.type,count:0,total:0,max:0,errors:0});let i=t[a];i.count+=1,i.total+=n.duration||0,i.max=Math.max(i.max,n.duration||0),n.error&&(i.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)},HZ=(e,t,r,n=60)=>{let a=Date.now(),i=[],o=n*1e3,l=Math.max(1,Math.round(r*60/n));for(let s=l-1;s>=0;s--){let u=a-(s+1)*o,c=a-s*o,d=e.filter(p=>p.timestamp_ms>=u&&p.timestamp_ms{f[p]=d.filter(g=>g.agent===p).length}),i.push({time:r>1440?new Date(c).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(c).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:c,requests:d.length,errors:d.filter(p=>p.status==="ERROR").length,avgLatency:d.length>0?Math.round(d.reduce((p,g)=>p+(g.duration_ms||0),0)/d.length):0,traces:d,...f})}return i};function Bl({agentClass:e=null,embedded:t=!1}){let{darkMode:r}=Ze(),[n,a]=(0,P.useState)([]),[i,o]=(0,P.useState)([]),[l,s]=(0,P.useState)({}),[u,c]=(0,P.useState)(!0),[d,f]=(0,P.useState)(null),[p,g]=(0,P.useState)(null),h=(0,P.useRef)(new URLSearchParams(window.location.search).get("trace")),[x,m]=(0,P.useState)(null),[v,y]=(0,P.useState)({status:"all",agent:"all",action:"all"}),[b,k]=(0,P.useState)("time"),[N,D]=(0,P.useState)(null),[_,M]=(0,P.useState)("timeline"),[z,$]=(0,P.useState)("popular"),{timeWindow:U}=Ma(),G=(0,P.useCallback)(async()=>{try{let A=e?`&agent=${encodeURIComponent(e)}`:"",I=await fetch(`/api/traces?minutes=${U.minutes}${A}`);if(!I.ok)throw new Error(`Request failed (${I.status})`);let K=await I.json();a(K.traces||[]),o(e?[e]:K.agents||[]),s(K.agent_ids||{}),f(null)}catch(A){f(A.message)}finally{c(!1)}},[U.minutes,e]);(0,P.useEffect)(()=>{G();let A=setInterval(G,BZ);return()=>clearInterval(A)},[G]);let j=(0,P.useMemo)(()=>$Z(i),[i]);(0,P.useEffect)(()=>{D(null)},[U.id]);let V=(0,P.useMemo)(()=>HZ(n,i,U.minutes,U.bucketSeconds),[n,i,U]),w=Math.max(0,Math.ceil(V.length/6)-1),O=(0,P.useMemo)(()=>{let A=n;if(N!==null){let I=V[N];I&&(A=I.traces||[])}if(v.status!=="all"&&(A=A.filter(I=>v.status==="success"?I.status!=="ERROR":I.status==="ERROR")),v.agent!=="all"&&(A=A.filter(I=>I.agent===v.agent)),v.action!=="all")if(v.action.includes("#")){let[I,K]=v.action.split("#");A=A.filter(L=>L.agent===I&&L.action===K)}else A=A.filter(I=>I.action===v.action);return b==="latency"&&(A=[...A].sort((I,K)=>(K.duration_ms||0)-(I.duration_ms||0))),x&&!A.some(I=>I.id===x.id)&&(A=[x,...A]),A},[n,N,V,v,b,x]);(0,P.useEffect)(()=>{let A=h.current;if(!A)return;let I=L=>{h.current=null,g(L.id),setTimeout(()=>{document.getElementById(`trace-row-${L.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},K=n.find(L=>L.id===A||L.trace_id===A||L.short_id&&String(A).startsWith(L.short_id));if(K){I(K);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(A)}`).then(L=>L.ok?L.json():Promise.reject(new Error("not found"))).then(({trace:L})=>{m(L),I(L)}).catch(()=>{h.current=null})},[n]);let E=(0,P.useMemo)(()=>{let A=N!==null?V[N]?.traces||[]:n,I={};A.forEach(L=>{L.agent&&(I[L.agent]||(I[L.agent]={agent:L.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),I[L.agent].count++,I[L.agent].totalDuration+=L.duration_ms||0,I[L.agent].cost+=L.estimated_cost||0,L.status==="ERROR"&&I[L.agent].errors++,L.tokens&&(I[L.agent].tokens.thinking+=L.tokens.thinking||0,I[L.agent].tokens.input+=L.tokens.input||0,I[L.agent].tokens.output+=L.tokens.output||0),L.action&&(I[L.agent].actions[L.action]=(I[L.agent].actions[L.action]||0)+1))});let K={popular:L=>L.count,longest:L=>L.totalDuration/(L.count||1),cost:L=>L.cost,tokens:L=>(L.tokens.input||0)+(L.tokens.output||0)+(L.tokens.thinking||0),errors:L=>L.errors}[z]||(L=>L.count);return Object.values(I).sort((L,ye)=>K(ye)-K(L)||ye.count-L.count)},[n,V,N,z]),C=(0,P.useMemo)(()=>{let A=N!==null?V[N]?.traces||[]:n,I={};return A.forEach(K=>{if(!K.agent)return;let L=`${K.agent}#${K.action||"unknown"}`;I[L]||(I[L]={key:L,agent:K.agent,action:K.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),I[L].count++,I[L].totalDuration+=K.duration_ms||0,I[L].minDuration=Math.min(I[L].minDuration,K.duration_ms||0),I[L].maxDuration=Math.max(I[L].maxDuration,K.duration_ms||0),K.status==="ERROR"&&I[L].errors++,K.tokens&&(I[L].tokens.thinking+=K.tokens.thinking||0,I[L].tokens.input+=K.tokens.input||0,I[L].tokens.output+=K.tokens.output||0)}),Object.values(I).forEach(K=>{K.minDuration===1/0&&(K.minDuration=0)}),Object.values(I).sort((K,L)=>L.count-K.count)},[n,V,N]),S=(0,P.useMemo)(()=>{let A=N!==null?V[N]?.traces||[]:n,I={};return A.forEach(K=>{(K.spans||[]).forEach(L=>{if(L.type!=="tool")return;let ye=L.attributes?.["tool.name"]||L.name?.replace(/^tool\./,"")||"unknown";I[ye]||(I[ye]={name:ye,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),I[ye].count++,I[ye].totalDuration+=L.duration||0,I[ye].maxDuration=Math.max(I[ye].maxDuration,L.duration||0),L.error&&I[ye].errors++,K.agent&&I[ye].agents.add(`${K.agent}#${K.action||"unknown"}`)})}),Object.values(I).map(K=>({...K,agents:[...K.agents],avgDuration:K.count?K.totalDuration/K.count:0})).sort((K,L)=>L.totalDuration-K.totalDuration)},[n,V,N]),T=(0,P.useMemo)(()=>v.agent==="all"?C.map(A=>A.key):C.filter(A=>A.agent===v.agent).map(A=>A.key),[v.agent,C]),F=(0,P.useMemo)(()=>UZ(O),[O]),X=A=>{if(A&&A.activeTooltipIndex!==void 0){let I=A.activeTooltipIndex;D(N===I?null:I),g(null)}},J=A=>(A?.input||0)+(A?.output||0)+(A?.thinking||0),se=A=>{let I=A.count?A.errors/A.count:0;return[{label:`Calls ${U.label||""}`.trim(),value:A.count.toLocaleString()},{label:"Errors",value:`${(I*100).toFixed(1)}%`,tone:A.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(A.totalDuration/(A.count||1))}ms`},{label:"Tokens",value:J(A.tokens).toLocaleString()},{label:"Cost",value:ce(A.cost),title:"Estimated from token counts at this model's published rates",tone:A.cost?void 0:"muted"},{label:"Actions",value:(A.agents?.length||0).toLocaleString()}]},ce=A=>A?A<.01?"<$0.01":`$${A.toFixed(2)}`:"\u2014",ge=P.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},P.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),P.default.createElement("select",{value:z,onChange:A=>$(A.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:`1px solid ${r?"rgba(255,255,255,0.15)":"#e5e7eb"}`,background:r?"rgba(255,255,255,0.05)":"#ffffff",color:r?"#f9fafb":"#111827"}},P.default.createElement("option",{value:"popular"},"Most calls"),P.default.createElement("option",{value:"longest"},"Longest average"),P.default.createElement("option",{value:"cost"},"Highest cost"),P.default.createElement("option",{value:"tokens"},"Most tokens"),P.default.createElement("option",{value:"errors"},"Most errors"))),Te=A=>y(I=>({...I,agent:I.agent===A?"all":A})),ie=A=>{let I=l[A];if(!I)return Te(A);let K=Xe(`/agents/${I}`);window.history.pushState(window.history.state,"",K),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:K}}))},_e=A=>{let I=F[0]?.total||1,K=A?"rgba(0,0,0,0.3)":"white",L=A?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",ye=A?"white":"#111827",xe=A?"rgba(255,255,255,0.5)":"#6b7280",we={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return P.default.createElement("div",{style:{padding:A?"0 24px 24px 24px":0}},P.default.createElement("div",{style:{background:K,border:L,borderRadius:"12px",padding:"16px"}},P.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:ye,marginBottom:"4px"}},"Slowest operations"),P.default.createElement("div",{style:{fontSize:"12px",color:xe,marginBottom:"14px"}},"Span durations aggregated across ",O.length," trace",O.length===1?"":"s"," \u2014 ranked by total time"),F.length===0?P.default.createElement("div",{style:{fontSize:"13px",color:xe,padding:"12px 0"}},"No spans in the current selection"):P.default.createElement("div",{style:{display:"grid",gap:"10px"}},F.map(Pe=>P.default.createElement("div",{key:Pe.name,style:{display:"flex",alignItems:"center",gap:"12px"}},P.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},P.default.createElement("span",{style:{color:xe}},CS(Pe.type)),P.default.createElement("span",{style:{fontSize:"13px",color:Pe.errors>0?"#ef4444":ye,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},Pe.name)),P.default.createElement("div",{style:{flex:1,height:"18px",background:A?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},P.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(Pe.total/I*100,.5)}%`,background:we[Pe.type]||"#6366f1"}})),P.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:xe,fontFamily:Ee.mono,textAlign:"right"}},Pe.count,"\xD7 \xB7 avg ",zt(Pe.avg)," \xB7 max ",zt(Pe.max)," \xB7 \u03A3 ",zt(Pe.total)))))))};if(u)return P.default.createElement("div",{className:"flex items-center justify-center h-64"},P.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let W={requests:V.reduce((A,I)=>A+I.requests,0),errors:V.reduce((A,I)=>A+I.errors,0),avgLatency:(()=>{let A=V.filter(I=>I.requests>0);return A.length===0?0:Math.round(A.reduce((I,K)=>I+K.avgLatency,0)/A.length)})(),throughput:(V.reduce((A,I)=>A+I.requests,0)/U.minutes).toFixed(1)},q=n.length===0;return r?P.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},P.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},P.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},P.default.createElement("div",null,!t&&P.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),P.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},N!==null?`Viewing ${V[N]?.time} \u2022 ${O.length} requests`:`Last ${U.label} \u2022 Click timeline to drill down`)),P.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},P.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(A=>P.default.createElement("button",{key:A,onClick:()=>M(A),style:{padding:"6px 12px",background:_===A?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},A))),!e&&P.default.createElement("select",{value:v.agent,onChange:A=>y({...v,agent:A.target.value,action:"all"}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"180px",textOverflow:"ellipsis"}},P.default.createElement("option",{value:"all"},"All Agents"),i.map(A=>P.default.createElement("option",{key:A,value:A},A))),P.default.createElement("select",{value:v.action,onChange:A=>y({...v,action:A.target.value}),style:{padding:"8px 12px",background:v.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:v.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},P.default.createElement("option",{value:"all"},"All Actions"),T.map(A=>P.default.createElement("option",{key:A,value:A},A))),P.default.createElement("select",{value:v.status,onChange:A=>y({...v,status:A.target.value}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},P.default.createElement("option",{value:"all"},"All Status"),P.default.createElement("option",{value:"success"},"Success"),P.default.createElement("option",{value:"error"},"Error")),P.default.createElement("select",{value:b,onChange:A=>k(A.target.value),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},P.default.createElement("option",{value:"time"},"Newest first"),P.default.createElement("option",{value:"latency"},"Slowest first")),N!==null&&P.default.createElement("button",{onClick:()=>D(null),style:{padding:"8px 16px",background:"rgba(255,255,255,0.2)",color:"white",borderRadius:"8px",border:"none",fontSize:"14px",fontWeight:"500",cursor:"pointer"}},"Clear Selection")))),d&&P.default.createElement("div",{style:{margin:"0 24px 16px 24px",padding:"12px 16px",background:"rgba(239, 68, 68, 0.1)",borderRadius:"8px",color:"#ef4444",fontSize:"13px"}},"Failed to load traces: ",d),P.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},P.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},P.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},P.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),P.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(j).map(([A,I])=>P.default.createElement("div",{key:A,style:{display:"flex",alignItems:"center",gap:"6px"}},P.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:I}}),P.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},A.replace("Agent","")))))),P.default.createElement("div",{style:{height:"150px"}},P.default.createElement(au,{width:"100%",height:"100%"},P.default.createElement(Qu,{data:V,onClick:X,style:{cursor:"pointer"}},P.default.createElement("defs",null,Object.entries(j).map(([A,I])=>P.default.createElement("linearGradient",{key:A,id:`gradient-${A}`,x1:"0",y1:"0",x2:"0",y2:"1"},P.default.createElement("stop",{offset:"5%",stopColor:I,stopOpacity:.8}),P.default.createElement("stop",{offset:"95%",stopColor:I,stopOpacity:.1})))),P.default.createElement(_l,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),P.default.createElement(Ol,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:w}),P.default.createElement(Tl,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),P.default.createElement($u,{contentStyle:{background:"rgba(0,0,0,0.9)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",padding:"12px"},labelStyle:{color:"white",fontWeight:"600",marginBottom:"8px"},itemStyle:{color:"rgba(255,255,255,0.8)",fontSize:"12px"},formatter:(A,I)=>[A,I.replace("Agent","")]}),Object.keys(j).map(A=>P.default.createElement(El,{key:A,type:"monotone",dataKey:A,stackId:"1",stroke:j[A],fill:`url(#gradient-${A})`}))))),P.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},W.requests),P.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},W.errors),P.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},W.avgLatency,"ms"),P.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},W.throughput,"/min"),P.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),_==="agents"&&P.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},ge,P.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},E.map(A=>P.default.createElement(Ps,{key:A.agent,name:A.agent,accentColor:j[A.agent],subtitle:A.agents?.length?A.agents.join(", "):void 0,badge:P.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:j[A.agent]+"30",color:j[A.agent],borderRadius:"4px",whiteSpace:"nowrap"}},A.count," calls"),onClick:()=>ie(A.agent),stats:se(A),footer:P.default.createElement(P.default.Fragment,null,P.default.createElement("span",null,l[A.agent]?"Open agent \u2192":"Not linked to an agent record"),P.default.createElement("button",{onClick:I=>{I.stopPropagation(),Te(A.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:v.agent===A.agent?"#ef4444":"inherit",font:"inherit"}},v.agent===A.agent?"Clear filter":"Filter traces"))})))),_==="actions"&&P.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},P.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},C.map(A=>{let I=v.action===A.key;return P.default.createElement("div",{key:A.key,onClick:()=>{y({...v,action:I?"all":A.key}),M("timeline")},style:{background:I?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:I?"1px solid #ef4444":`1px solid ${j[A.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},P.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},P.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},P.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:j[A.agent]}}),P.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},A.agent),P.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",A.action)),P.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:j[A.agent]+"30",color:j[A.agent],borderRadius:"4px"}},A.count," calls")),P.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),P.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(A.totalDuration/A.count),"ms")),P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),P.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(A.minDuration),"ms / ",Math.round(A.maxDuration),"ms")),P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),P.default.createElement("div",{style:{fontSize:"13px",color:A.errors>0?"#ef4444":"#10b981"}},A.errors," (",(A.errors/A.count*100).toFixed(0),"%)")),P.default.createElement("div",null,P.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),P.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},J(A.tokens).toLocaleString()))))}))),_==="spans"&&_e(!0),_==="timeline"&&!q&&P.default.createElement("div",{className:"space-y-4"},O.length===0?P.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):O.map(A=>P.default.createElement(my,{key:A.id,trace:A,darkMode:!0,expanded:p===A.id,onToggle:()=>g(p===A.id?null:A.id)}))),q&&_==="timeline"&&P.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},P.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),P.default.createElement("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:"14px",marginTop:"8px"}},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here"))):P.default.createElement("div",{className:"space-y-6"},P.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},P.default.createElement("div",null,P.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),P.default.createElement("p",{className:"text-sm text-gray-500"},N!==null?`Viewing ${V[N]?.time} \u2022 ${O.length} requests`:`Last ${U.label} \u2022 Click timeline to drill down`)),P.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},P.default.createElement(Da,null),P.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(A=>P.default.createElement("button",{key:A,onClick:()=>M(A),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${_===A?"bg-white shadow text-gray-900":"text-gray-600"}`},A))),P.default.createElement("select",{value:v.agent,onChange:A=>y({...v,agent:A.target.value,action:"all"}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",style:{maxWidth:"180px",textOverflow:"ellipsis"}},P.default.createElement("option",{value:"all"},"All Agents"),i.map(A=>P.default.createElement("option",{key:A,value:A},A))),P.default.createElement("select",{value:v.action,onChange:A=>y({...v,action:A.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${v.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},P.default.createElement("option",{value:"all"},"All Actions"),T.map(A=>P.default.createElement("option",{key:A,value:A},A))),P.default.createElement("select",{value:v.status,onChange:A=>y({...v,status:A.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},P.default.createElement("option",{value:"all"},"All Status"),P.default.createElement("option",{value:"success"},"Success"),P.default.createElement("option",{value:"error"},"Error")),P.default.createElement("select",{value:b,onChange:A=>k(A.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},P.default.createElement("option",{value:"time"},"Newest first"),P.default.createElement("option",{value:"latency"},"Slowest first")),N!==null&&P.default.createElement("button",{onClick:()=>D(null),className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition-colors text-sm font-medium"},"Clear Selection"))),d&&P.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",d),P.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},P.default.createElement("div",{className:"flex justify-between items-center mb-3"},P.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),P.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(j).map(([A,I])=>P.default.createElement("div",{key:A,className:"flex items-center gap-1.5"},P.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:I}}),P.default.createElement("span",{className:"text-xs text-gray-500"},A.replace("Agent","")))))),P.default.createElement("div",{className:"h-36"},P.default.createElement(au,{width:"100%",height:"100%"},P.default.createElement(Qu,{data:V,onClick:X,style:{cursor:"pointer"}},P.default.createElement("defs",null,Object.entries(j).map(([A,I])=>P.default.createElement("linearGradient",{key:A,id:`gradient-light-${A}`,x1:"0",y1:"0",x2:"0",y2:"1"},P.default.createElement("stop",{offset:"5%",stopColor:I,stopOpacity:.6}),P.default.createElement("stop",{offset:"95%",stopColor:I,stopOpacity:.05})))),P.default.createElement(_l,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),P.default.createElement(Ol,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:w}),P.default.createElement(Tl,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),P.default.createElement($u,{contentStyle:{background:"white",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},labelStyle:{color:"#111827",fontWeight:"600",marginBottom:"8px"},formatter:(A,I)=>[A,I.replace("Agent","")]}),Object.keys(j).map(A=>P.default.createElement(El,{key:A,type:"monotone",dataKey:A,stackId:"1",stroke:j[A],fill:`url(#gradient-light-${A})`}))))),P.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},P.default.createElement("div",null,P.default.createElement("div",{className:"text-lg font-bold text-gray-900"},W.requests),P.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),P.default.createElement("div",null,P.default.createElement("div",{className:"text-lg font-bold text-red-500"},W.errors),P.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),P.default.createElement("div",null,P.default.createElement("div",{className:"text-lg font-bold text-green-600"},W.avgLatency,"ms"),P.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),P.default.createElement("div",null,P.default.createElement("div",{className:"text-lg font-bold text-amber-500"},W.throughput,"/min"),P.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),_==="agents"&&P.default.createElement("div",null,ge,P.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},E.map(A=>P.default.createElement(Ps,{key:A.agent,name:A.agent,accentColor:j[A.agent],subtitle:A.agents?.length?A.agents.join(", "):void 0,badge:P.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:j[A.agent]+"20",color:j[A.agent]}},A.count," calls"),onClick:()=>ie(A.agent),stats:se(A),footer:P.default.createElement(P.default.Fragment,null,P.default.createElement("span",null,l[A.agent]?"Open agent \u2192":"Not linked to an agent record"),P.default.createElement("button",{onClick:I=>{I.stopPropagation(),Te(A.agent)},className:v.agent===A.agent?"text-red-600":"hover:text-gray-700"},v.agent===A.agent?"Clear filter":"Filter traces"))})))),_==="actions"&&P.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},C.map(A=>{let I=v.action===A.key;return P.default.createElement("div",{key:A.key,onClick:()=>{y({...v,action:I?"all":A.key}),M("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${I?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:j[A.agent],borderLeftWidth:I?"2px":"4px"}},P.default.createElement("div",{className:"flex items-center justify-between mb-3"},P.default.createElement("div",{className:"flex items-center gap-2"},P.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:j[A.agent]}}),P.default.createElement("span",{className:"font-semibold text-gray-900"},A.agent),P.default.createElement("span",{className:"text-gray-500"},"#",A.action)),P.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:j[A.agent]+"20",color:j[A.agent]}},A.count," calls")),P.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},P.default.createElement("div",null,P.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),P.default.createElement("div",{className:"font-medium"},Math.round(A.totalDuration/A.count),"ms")),P.default.createElement("div",null,P.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),P.default.createElement("div",{className:"text-gray-600"},Math.round(A.minDuration),"ms / ",Math.round(A.maxDuration),"ms")),P.default.createElement("div",null,P.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),P.default.createElement("div",{className:A.errors>0?"text-red-600":"text-green-600"},A.errors," (",(A.errors/A.count*100).toFixed(0),"%)")),P.default.createElement("div",null,P.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),P.default.createElement("div",{className:"text-gray-600"},J(A.tokens).toLocaleString()))))})),_==="tools"&&(S.length===0?P.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):P.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},P.default.createElement("div",{className:"flex items-center gap-4 px-4 py-2 text-xs font-medium text-gray-500 border-b border-gray-100"},P.default.createElement("div",{className:"flex-1"},"Tool"),P.default.createElement("div",{className:"w-20 text-right"},"Calls"),P.default.createElement("div",{className:"w-24 text-right"},"Total time"),P.default.createElement("div",{className:"w-20 text-right"},"Avg"),P.default.createElement("div",{className:"w-20 text-right"},"Slowest")),S.map(A=>{let I=S[0].totalDuration?A.totalDuration/S[0].totalDuration*100:0;return P.default.createElement("div",{key:A.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},P.default.createElement("div",{className:"flex items-center gap-4 text-sm"},P.default.createElement("div",{className:"flex-1 min-w-0"},P.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:A.name},A.name),A.agents.length>0&&P.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:A.agents.join(", ")},A.agents.join(", "))),P.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:Ee.mono}},A.count.toLocaleString(),A.errors>0&&P.default.createElement("span",{className:"text-red-600 ml-1",title:`${A.errors} failed`},"(",A.errors,")")),P.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:Ee.mono}},zt(A.totalDuration)),P.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Ee.mono}},zt(A.avgDuration)),P.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Ee.mono}},zt(A.maxDuration))),P.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},P.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max(I,1)}%`}})))}))),_==="spans"&&_e(!1),_==="timeline"&&!q&&P.default.createElement("div",{className:"space-y-4"},O.length===0?P.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):O.map(A=>P.default.createElement(my,{key:A.id,trace:A,darkMode:!1,expanded:p===A.id,onToggle:()=>g(p===A.id?null:A.id)}))),q&&_==="timeline"&&P.default.createElement("div",{className:"text-center py-12"},P.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),P.default.createElement("p",{className:"text-gray-500 text-sm mt-2"},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here")))}var re=Q(R());var gy=Q(R());function TS({trace:e,darkMode:t,height:r=8}){let n=qt(t);if(!e)return gy.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let a=e.spans||[],i=e.duration_ms||1,o=[...a].sort((l,s)=>(l.nested||0)-(s.nested||0));return gy.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},o.map((l,s)=>gy.default.createElement("div",{key:l.span_id||s,title:`${l.name} \xB7 ${zt(l.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(l.start/i*100,99)}%`,width:`${Math.max(l.duration/i*100,.8)}%`,background:l.error?"#ef4444":NS[l.type]||"#9ca3af"}})))}var VZ=e=>{let t=null;if((e?.generations||[]).forEach(i=>{let o=i.tokens||{},l=(o.input||0)+(o.output||0);l>0&&(!t||l>t.total)&&(t={input:o.input||0,output:o.output||0,cached:o.cached||0,thinking:o.thinking||0,model:i.model,total:l})}),!t)return null;let r=Pa(e?.instructions),n=0;(e?.messages||[]).forEach(i=>{i.role==="tool"&&(n+=Pa(i.content)+Pa(i.tool_arguments))}),n=Math.min(n,t.input);let a=Math.max(t.input-r-n,0);return{used:t.total,limit:Pf(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:a},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},qP=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],FZ=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],WZ=[{id:"conversation",label:"Conversation",hint:"Messages, tool calls and responses in order"},{id:"spans",label:"Spans",hint:"Each generation as a trace \u2014 waterfall, span details, timings"}],qZ=3e4,Ai=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),YZ=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`};function KZ({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:a}){let i=qt(t),[o,l]=(0,re.useState)(null),[s,u]=(0,re.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,re.useEffect)(()=>{if(!c)return;let g=!0;return fetch(`/api/traces/${encodeURIComponent(c)}`).then(h=>h.ok?h.json():Promise.reject(new Error("not found"))).then(({trace:h})=>g&&l(h)).catch(()=>g&&u(!0)),()=>{g=!1}},[c]);let f=!!o,p=(o?.spans||[]).length;return re.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${f?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:i.hoverBg}:void 0},re.default.createElement("div",{className:f?"cursor-pointer":void 0,onClick:f?a:void 0,title:f?`${p} spans \u2014 click for the trace`:void 0},re.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:i.textSecondary}},re.default.createElement("span",{title:e.cache_hit?`${Ai(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?i.good:i.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&re.default.createElement("span",{className:"text-amber-500",title:`${Ai(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",Ai(e.tokens.thinking)),re.default.createElement("span",null,e.model||"unknown-model"),e.provider&&re.default.createElement("span",null,e.provider),re.default.createElement("span",{className:"text-blue-500"},"in:",Ai(e.tokens.input)),re.default.createElement("span",{className:"text-green-500"},"out:",Ai(e.tokens.output)),e.finish_reason&&re.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&re.default.createElement("span",null,zt(d)),c&&re.default.createElement("a",{href:Xe(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:i.link},className:"hover:underline",onClick:g=>g.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),s&&re.default.createElement("span",{style:{color:i.textMuted}},"trace unavailable")),re.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!s?re.default.createElement(TS,{trace:o,darkMode:t}):d>0?re.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:i.trackBg}},re.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,f&&re.default.createElement(re.default.Fragment,null,re.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:i.textMuted}},p," ",p===1?"span":"spans"),re.default.createElement(Ll,{open:n,darkMode:t,size:12})))),n&&o&&re.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:i.cardBg,borderColor:i.cardBorder}},re.default.createElement(Lf,{trace:o,darkMode:t,compact:!0})))}function Ni({agentId:e=null,embedded:t=!1}){let{darkMode:r}=Ze(),[n,a]=(0,re.useState)([]),[i,o]=(0,re.useState)(!0),[l,s]=(0,re.useState)(null),[u,c]=(0,re.useState)(null),[d,f]=(0,re.useState)({}),{timeWindow:p}=Ma(),g=(0,re.useCallback)(async()=>{try{let G=await fetch(`/api/interactions?minutes=${p.minutes}${e?`&agent_id=${e}`:""}`);if(!G.ok)throw new Error(`Request failed (${G.status})`);let j=await G.json();a(j.interactions||[]),s(null)}catch(G){s(G.message)}finally{o(!1)}},[p.minutes,e]);(0,re.useEffect)(()=>{g();let G=setInterval(g,qZ);return()=>clearInterval(G)},[g]);let[h,x]=(0,re.useState)("recent"),m=(0,re.useMemo)(()=>{let G=[...new Set(n.map(j=>j.display_name).filter(Boolean))].sort();return Object.fromEntries(G.map((j,V)=>[j,qP[V%qP.length]]))},[n]),v=(0,re.useMemo)(()=>{let G=n.reduce((V,w)=>V+(w.tokens?.total||0),0),j=new Set(n.map(V=>V.display_name).filter(Boolean));return{interactions:n.length,tokens:G,agents:j.size,avgTokens:n.length?Math.round(G/n.length):0}},[n]),y=(0,re.useMemo)(()=>{if(n.length===0)return[];let G=Date.now(),j=p.bucketSeconds*1e3,V=Math.max(1,Math.round(p.minutes*60/p.bucketSeconds)),w=Object.keys(m);return Array.from({length:V},(O,E)=>{let C=G-(V-1-E)*j,S=C-j,T=n.filter(F=>{let X=new Date(F.last_activity_at).getTime();return X>=S&&X1440?new Date(C).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(C).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(w.map(F=>[F,T.filter(X=>X.display_name===F).length]))}})},[n,m,p]),b=Math.max(0,Math.ceil(y.length/6)-1),k=(0,re.useCallback)(G=>{let j=[...G];switch(h){case"tokens":return j.sort((V,w)=>(w.tokens?.total||0)-(V.tokens?.total||0));case"messages":return j.sort((V,w)=>(w.message_count||0)-(V.message_count||0));default:return j.sort((V,w)=>String(w.last_activity_at).localeCompare(String(V.last_activity_at)))}},[h]),N=(0,re.useMemo)(()=>{let G=new Map;n.forEach(V=>{let w=V.agent_name||V.agent?.name||"Unattributed",O=V.action_name,E=`${w}#${O||""}`;G.has(E)||G.set(E,{key:E,title:O?`${w} ${O.charAt(0).toUpperCase()}${O.slice(1)} Agent Interactions`:`${w} Interactions`,sessions:[],tokens:0,lastActivity:V.last_activity_at});let C=G.get(E);C.sessions.push(V),C.tokens+=V.tokens?.total||0,V.last_activity_at>C.lastActivity&&(C.lastActivity=V.last_activity_at)});let j=[...G.values()].map(V=>({...V,sessions:k(V.sessions)}));return h==="tokens"?j.sort((V,w)=>w.tokens-V.tokens):h==="messages"?j.sort((V,w)=>w.sessions.length-V.sessions.length):j.sort((V,w)=>String(w.lastActivity).localeCompare(String(V.lastActivity)))},[n,h,k]),D=async G=>{if(u===G){c(null);return}if(c(G),!d[G])try{let j=await fetch(`/api/interactions/${G}`);if(j.ok){let V=await j.json();f(w=>({...w,[G]:V.interaction}))}}catch{}},[_,M]=(0,re.useState)({}),[z,$]=rc(),U=qt(r);return i?re.default.createElement("div",{className:"flex items-center justify-center h-64"},re.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):re.default.createElement("div",{className:"space-y-6"},re.default.createElement("div",{className:"flex items-start justify-between"},!t&&re.default.createElement("div",null,re.default.createElement("h1",{className:"text-2xl font-bold",style:{color:U.textPrimary}},"Interactions"),re.default.createElement("p",{className:"text-sm mt-1",style:{color:U.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),re.default.createElement("div",{className:"flex items-center gap-3"},re.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},re.default.createElement("span",{className:"text-xs px-1",style:{color:U.textMuted}},"Sort"),FZ.map(G=>re.default.createElement("button",{key:G.id,onClick:()=>x(G.id),className:"px-2 py-1 text-xs rounded transition-colors",style:h===G.id?{background:r?"#2a2a2a":"#ffffff",color:U.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:U.textSecondary}},G.label))),re.default.createElement(Da,null))),l&&re.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load interactions: ",l),n.length>0&&re.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:U.cardBg,borderColor:U.cardBorder}},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h3",{className:"text-sm font-semibold",style:{color:U.textPrimary}},"Interactions over time"),re.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries(m).map(([G,j])=>re.default.createElement("span",{key:G,className:"flex items-center gap-1.5 text-xs",style:{color:U.textSecondary}},re.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:j}}),G)))),re.default.createElement("div",{className:"h-32"},re.default.createElement(au,{width:"100%",height:"100%"},re.default.createElement(Qu,{data:y},re.default.createElement("defs",null,Object.entries(m).map(([G,j])=>re.default.createElement("linearGradient",{key:G,id:`ix-gradient-${G.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},re.default.createElement("stop",{offset:"5%",stopColor:j,stopOpacity:.6}),re.default.createElement("stop",{offset:"95%",stopColor:j,stopOpacity:.05})))),re.default.createElement(_l,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),re.default.createElement(Ol,{dataKey:"time",stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,interval:b}),re.default.createElement(Tl,{stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),re.default.createElement($u,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${U.cardBorder}`,borderRadius:"8px"},labelStyle:{color:U.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries(m).map(([G,j])=>re.default.createElement(El,{key:G,type:"monotone",dataKey:G,stackId:"1",stroke:j,strokeWidth:2,fill:`url(#ix-gradient-${G.replace(/\W/g,"-")})`}))))),re.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:U.cardBorder}},[{label:"Interactions",value:v.interactions.toLocaleString()},{label:"Agents",value:v.agents.toLocaleString()},{label:"Total tokens",value:Ai(v.tokens)},{label:"Avg / interaction",value:Ai(v.avgTokens)}].map(G=>re.default.createElement("div",{key:G.label},re.default.createElement("div",{className:"text-lg font-bold",style:{color:U.textPrimary}},G.value),re.default.createElement("div",{className:"text-xs",style:{color:U.textSecondary}},G.label))))),n.length===0?re.default.createElement("div",{className:"text-center py-12"},re.default.createElement("div",{className:"text-lg",style:{color:U.textMuted}},"No interactions in the last ",p.label),re.default.createElement("p",{className:"text-sm mt-2",style:{color:U.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):re.default.createElement("div",{className:"space-y-8"},N.map(G=>re.default.createElement("div",{key:G.key,className:"space-y-4"},re.default.createElement("div",{className:"flex items-baseline justify-between"},re.default.createElement("h2",{className:"text-sm font-semibold",style:{color:U.textPrimary}},G.title),re.default.createElement("span",{className:"text-xs",style:{color:U.textMuted}},G.sessions.length," ",G.sessions.length===1?"interaction":"interactions",G.tokens>0&&` \xB7 ${Ai(G.tokens)} tokens`)),G.sessions.map(j=>{let V=d[j.id],w=u===j.id,O=_[j.id]||"conversation";return re.default.createElement(py,{key:j.id,darkMode:r,className:"shadow-sm"},re.default.createElement("div",{className:`flex items-center justify-between flex-wrap gap-y-2 p-4 cursor-pointer transition-colors ${r?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:()=>D(j.id),style:w?{background:U.hoverBg}:void 0},re.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},j.source==="telemetry"?re.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(168,85,247,0.15)":"#faf5ff",color:r?"#d8b4fe":"#7e22ce"},title:"Reported by an app running this agent outside the platform"},"REPORTED"):re.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),re.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:U.textPrimary}},j.display_name),j.agent&&re.default.createElement("span",{className:"text-sm truncate",style:{color:U.textSecondary}},j.agent.name),j.service_name&&re.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:U.textMuted}},j.service_name)),re.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:U.textSecondary}},re.default.createElement("span",null,j.message_count>0?`${j.message_count} messages`:`${j.tool_count||0} tool ${j.tool_count===1?"call":"calls"}`),re.default.createElement("span",null,Ai(j.tokens?.total)," tokens"),(j.tokens?.total||0)>0&&re.default.createElement(wo,{compact:!0,darkMode:r,label:"Context",used:(j.tokens?.input||0)+(j.tokens?.output||0)||j.tokens?.total,limit:Pf(j.model),segments:[{key:"messages",label:"Context",tokens:(j.tokens?.input||0)+(j.tokens?.output||0)||j.tokens?.total}]}),re.default.createElement("span",{style:{color:U.textMuted}},YZ(j.last_activity_at)),re.default.createElement(Ll,{open:w,darkMode:r}))),!w&&re.default.createElement(tc,{darkMode:r,onClick:()=>D(j.id),style:{padding:"0 16px 12px"},lines:[{label:"input",text:j.preview?.input,color:Sr("user",r).color},{label:"output",text:j.preview?.output,color:Sr("assistant",r).color}]}),w&&re.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:U.cardBorder,background:U.innerBg}},V?re.default.createElement(re.default.Fragment,null,re.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},re.default.createElement(zf,{options:WZ,value:O,onChange:E=>M(C=>({...C,[j.id]:E})),darkMode:r}),re.default.createElement("span",{className:"text-xs",style:{color:U.textSecondary}},V.messages.length," ",V.messages.length===1?"message":"messages",V.generations.length>0&&` \xB7 ${V.generations.length} ${V.generations.length===1?"generation":"generations"}`)),O==="conversation"&&re.default.createElement(re.default.Fragment,null,V.messages.length===0&&re.default.createElement("div",{className:"text-sm",style:{color:U.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),re.default.createElement(ja,{darkMode:r,messages:V.instructions?[{id:`ctx-${j.id}-system`,role:"system",content:V.instructions,created_at:j.created_at},...V.messages]:V.messages}),(()=>{let E=VZ(V);return E?re.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:U.cardBorder}},re.default.createElement(wo,{...E,label:"Context pressure",estimated:!0,darkMode:r})):null})()),O==="spans"&&(V.generations.length===0?re.default.createElement("div",{className:"text-sm",style:{color:U.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):re.default.createElement("div",{className:"space-y-2"},V.generations.map(E=>re.default.createElement(KZ,{key:E.id,generation:E,darkMode:r,maxMs:Math.max(...V.generations.map(C=>(C.duration_seconds||0)*1e3),1),expanded:z(`${j.id}:${E.id}`),onToggle:()=>$(`${j.id}:${E.id}`)}))))):re.default.createElement("div",{className:"flex justify-center py-6"},re.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var te=Q(R());var MS=[{type:"response_present",key:"response_present",label:"Response present",config:{}},{type:"min_length",key:"response_length",label:"Response length \u2265 40 chars",config:{chars:40}},{type:"max_latency_ms",key:"latency",label:"Latency \u2264 5s",config:{ms:5e3}},{type:"token_budget",key:"token_budget",label:"Output \u2264 1000 tokens",config:{output_tokens:1e3}}],DS=[{type:"trace_error_rate",key:"trace_error_rate",label:"Trace error rate \u2264 5% (telemetry, 7d)",config:{max_error_rate:5,window_hours:168}},{type:"trace_latency",key:"trace_latency",label:"Avg trace latency \u2264 5s (telemetry, 7d)",config:{max_avg_ms:5e3,window_hours:168}}],YP=()=>document.querySelector('meta[name="csrf-token"]')?.content,GZ=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);return t<1?"just now":t<60?`${t} min ago`:t<1440?`${Math.floor(t/60)} hours ago`:`${Math.floor(t/1440)} days ago`},vy=e=>e>=.85?"high":e>=.7?"medium":"low";function Bf({embedded:e=!1,agentId:t=null}){let{darkMode:r}=Ze(),[n,a]=(0,te.useState)([]),[i,o]=(0,te.useState)([]),[l,s]=(0,te.useState)(!0),[u,c]=(0,te.useState)(null),[d,f]=(0,te.useState)(null),[p,g]=(0,te.useState)(!1),[h,x]=(0,te.useState)(null),[m,v]=(0,te.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:MS.map(S=>S.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:""}),[y,b]=(0,te.useState)(null),[k,N]=(0,te.useState)(!1),D=(0,te.useCallback)(async()=>{try{let S=await fetch(`/api/evaluations${t?`?agent_id=${encodeURIComponent(t)}`:""}`);if(!S.ok)throw new Error(`Request failed (${S.status})`);let T=await S.json();a(T.evaluations||[]),c(null)}catch(S){c(S.message)}finally{s(!1)}},[t]);(0,te.useEffect)(()=>{D(),fetch("/api/agents").then(S=>S.ok?S.json():{agents:[]}).then(S=>o(S.agents||[])).catch(()=>o([]))},[D]);let _=()=>{let S=[...MS,...DS].filter(T=>m.criteria.includes(T.key)).map(({key:T,type:F,config:X})=>({key:T,type:F,config:X}));return m.containsPattern.trim()&&S.push({key:"contains",type:"contains",config:{pattern:m.containsPattern.trim()}}),m.llmJudgePrompt.trim()&&S.push({key:"quality",type:"llm_judge",config:{prompt:m.llmJudgePrompt.trim()}}),S},M=async S=>{S.preventDefault(),N(!0),b(null);try{let T=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":YP()},body:JSON.stringify({evaluation:{agent_id:m.agent_id,name:m.name,sample_size:m.sample_size,judge_kind:m.judgeKind==="judge_defined"?"judge_defined":m.llmJudgePrompt.trim()?"llm":"rules",judge_model:m.judgeModel.trim()||void 0,compare_models:m.compareModels.split(",").map(X=>X.trim()).filter(Boolean),criteria:m.judgeKind==="judge_defined"?[]:_()}})}),F=await T.json();if(!T.ok)throw new Error((F.errors||[F.error]).filter(Boolean).join(", ")||"Failed to create evaluation");g(!1),v({...m,name:""}),await D(),f(F.evaluation?.id??null)}catch(T){b(T.message)}finally{N(!1)}},z=async S=>{x(S);try{await fetch(`/api/evaluations/${S}/run`,{method:"POST",headers:{"X-CSRF-Token":YP()}}),await D()}finally{x(null)}},$={cardBg:r?"#1f1f1f":"#ffffff",cardBorder:r?"#2a2a2a":"#e5e7eb",innerBg:r?"rgba(255,255,255,0.04)":"#f9fafb",trackBg:r?"rgba(255,255,255,0.1)":"#f3f4f6",textPrimary:r?"#ffffff":"#111827",textSecondary:r?"rgba(255,255,255,0.6)":"#6b7280",textMuted:r?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:r?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:r?"rgba(255,255,255,0.2)":"#d1d5db"},U={high:"#22c55e",medium:"#eab308",low:"#ef4444"};if(l)return te.default.createElement("div",{className:"flex items-center justify-center h-64"},te.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let G=t?n.filter(S=>String(S.agent?.id)===String(t)):n,j=G.map(S=>S.latest_run).filter(S=>S&&S.status==="complete"),V=j.length?j.reduce((S,T)=>S+(T.average_score||0),0)/j.length:null,w=j.reduce((S,T)=>S+(T.samples_evaluated||0),0),O={padding:"8px 12px",borderRadius:"8px",fontSize:"14px",background:$.inputBg,border:`1px solid ${$.inputBorder}`,color:$.textPrimary},E=S=>S&&typeof S=="object"&&!("score"in S)&&!("skipped"in S),C=(S,T,{indent:F=!1,mono:X=!1}={})=>te.default.createElement("div",{key:S,className:"flex items-center gap-4",style:F?{paddingLeft:"16px"}:void 0},te.default.createElement("div",{className:`w-32 text-sm truncate ${X?"font-mono text-xs":""}`,style:{color:$.textSecondary},title:S},X?S:S.replace(/_/g," "),T.source==="telemetry"&&te.default.createElement("span",{"data-testid":"score-source-telemetry",className:"ml-1 text-[10px] uppercase tracking-wide",style:{color:$.textMuted},title:`Aggregate over ${T.traces} traces in the last ${T.window_hours}h`},"telemetry")),T.skipped?te.default.createElement("div",{className:"flex-1 text-xs italic",style:{color:$.textMuted},title:T.reason},"skipped \u2014 ",T.reason):te.default.createElement(te.default.Fragment,null,te.default.createElement("div",{className:"flex-1 h-2 rounded-full overflow-hidden",style:{background:$.trackBg}},te.default.createElement("div",{className:"h-full rounded-full transition-all",style:{width:`${T.score*100}%`,background:U[vy(T.score)]}})),te.default.createElement("div",{className:"w-12 text-sm font-medium text-right",style:{color:U[vy(T.score)]},title:`min ${T.min} \xB7 max ${T.max} \xB7 ${T.passed}/${T.total} passed`},T.score.toFixed(2))));return te.default.createElement("div",{className:"space-y-6"},te.default.createElement("div",{className:`flex items-center ${e?"justify-end":"justify-between"}`},!e&&te.default.createElement("div",null,te.default.createElement("h1",{className:"text-2xl font-bold",style:{color:$.textPrimary}},"Evaluations"),te.default.createElement("p",{className:"text-sm mt-1",style:{color:$.textSecondary}},"Score outputs with LLM-as-judge, rule-based checks, or custom criteria")),te.default.createElement("button",{onClick:()=>g(!p),className:"px-4 py-2 bg-red-500 text-white rounded-lg text-sm font-medium hover:bg-red-600 transition-colors"},p?"Cancel":"New Evaluation")),u&&te.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load evaluations: ",u),p&&te.default.createElement("form",{onSubmit:M,className:"rounded-xl border p-5 space-y-4",style:{backgroundColor:$.cardBg,borderColor:$.cardBorder}},te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"Agent"),te.default.createElement("select",{required:!0,disabled:!!t,value:m.agent_id,onChange:S=>v({...m,agent_id:S.target.value}),style:{...O,width:"100%",opacity:t?.7:1}},!t&&te.default.createElement("option",{value:""},"Select agent\u2026"),i.map(S=>te.default.createElement("option",{key:S.id,value:S.id},S.name)))),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"Name"),te.default.createElement("input",{required:!0,type:"text",value:m.name,onChange:S=>v({...m,name:S.target.value}),placeholder:"Response Quality",style:{...O,width:"100%"}})),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"Sample size"),te.default.createElement("input",{type:"number",min:"1",max:"100",value:m.sample_size,onChange:S=>v({...m,sample_size:S.target.value}),style:{...O,width:"100%"}}))),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"KPI definition"),te.default.createElement("select",{value:m.judgeKind,onChange:S=>v({...m,judgeKind:S.target.value}),style:{...O,width:"100%"}},te.default.createElement("option",{value:"manual"},"Manual criteria"),te.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"Judge model (optional)"),te.default.createElement("input",{type:"text",value:m.judgeModel,onChange:S=>v({...m,judgeModel:S.target.value}),placeholder:"e.g. claude-opus-5",style:{...O,width:"100%"}})),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"Compare models (optional, comma-separated)"),te.default.createElement("input",{type:"text",value:m.compareModels,onChange:S=>v({...m,compareModels:S.target.value}),placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...O,width:"100%"}}))),m.judgeKind==="judge_defined"&&te.default.createElement("p",{className:"text-xs",style:{color:$.textSecondary}},"On the first run the judge reads the agent's instructions and recent interactions, defines 3\u20136 KPIs, then scores samples against them. KPIs persist so later runs (and model cohorts) stay comparable."),m.judgeKind!=="judge_defined"&&te.default.createElement(te.default.Fragment,null,te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-2",style:{color:$.textMuted}},"Rule-based criteria (sampled generations)"),te.default.createElement("div",{className:"flex flex-wrap gap-3"},MS.map(S=>te.default.createElement("label",{key:S.key,className:"flex items-center gap-2 text-sm",style:{color:$.textPrimary}},te.default.createElement("input",{type:"checkbox",checked:m.criteria.includes(S.key),onChange:T=>v({...m,criteria:T.target.checked?[...m.criteria,S.key]:m.criteria.filter(F=>F!==S.key)})}),S.label)))),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-2",style:{color:$.textMuted}},"Telemetry criteria (trace aggregates)"),te.default.createElement("div",{className:"flex flex-wrap gap-3"},DS.map(S=>te.default.createElement("label",{key:S.key,className:"flex items-center gap-2 text-sm",style:{color:$.textPrimary}},te.default.createElement("input",{type:"checkbox",checked:m.criteria.includes(S.key),onChange:T=>v({...m,criteria:T.target.checked?[...m.criteria,S.key]:m.criteria.filter(F=>F!==S.key)})}),S.label)))),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"Must contain (optional pattern)"),te.default.createElement("input",{type:"text",value:m.containsPattern,onChange:S=>v({...m,containsPattern:S.target.value}),placeholder:"e.g. password reset",style:{...O,width:"100%"}})),te.default.createElement("div",null,te.default.createElement("label",{className:"block text-xs uppercase tracking-wide mb-1",style:{color:$.textMuted}},"LLM judge criterion (optional, needs provider credentials)"),te.default.createElement("input",{type:"text",value:m.llmJudgePrompt,onChange:S=>v({...m,llmJudgePrompt:S.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...O,width:"100%"}})))),y&&te.default.createElement("div",{className:"text-sm text-red-500"},y),te.default.createElement("button",{type:"submit",disabled:k,className:"px-4 py-2 bg-red-500 text-white rounded-lg text-sm font-medium hover:bg-red-600 transition-colors disabled:opacity-50"},k?"Creating & running\u2026":"Create & Run")),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",{className:"rounded-xl p-5 border shadow-sm",style:{backgroundColor:$.cardBg,borderColor:$.cardBorder}},te.default.createElement("div",{className:"text-sm mb-1",style:{color:$.textSecondary}},"Total Evaluations"),te.default.createElement("div",{className:"text-3xl font-bold",style:{color:$.textPrimary}},G.length)),te.default.createElement("div",{className:"rounded-xl p-5 border shadow-sm",style:{backgroundColor:$.cardBg,borderColor:$.cardBorder}},te.default.createElement("div",{className:"text-sm mb-1",style:{color:$.textSecondary}},"Average Score"),te.default.createElement("div",{className:"text-3xl font-bold",style:{color:V==null?$.textMuted:U[vy(V)]}},V==null?"\u2014":`${(V*100).toFixed(0)}%`)),te.default.createElement("div",{className:"rounded-xl p-5 border shadow-sm",style:{backgroundColor:$.cardBg,borderColor:$.cardBorder}},te.default.createElement("div",{className:"text-sm mb-1",style:{color:$.textSecondary}},"Samples Evaluated"),te.default.createElement("div",{className:"text-3xl font-bold",style:{color:$.textPrimary}},w))),te.default.createElement("div",{className:"space-y-4"},G.map(S=>{let T=S.latest_run,F=d===S.id,X=(S.criteria||[]).some(J=>DS.some(se=>se.key===J.key));return te.default.createElement("div",{key:S.id,"data-testid":"evaluation-card","data-telemetry":X?"true":"false",className:"rounded-xl border shadow-sm overflow-hidden",style:{backgroundColor:$.cardBg,borderColor:$.cardBorder}},te.default.createElement("div",{className:"flex items-center justify-between p-4 cursor-pointer",onClick:()=>f(F?null:S.id)},te.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},te.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-purple-100 text-purple-700 rounded flex-shrink-0"},"EVALUATION"),te.default.createElement("span",{className:"font-medium truncate",style:{color:$.textPrimary}},S.name),te.default.createElement("span",{className:"text-sm truncate",style:{color:$.textSecondary}},S.agent?.name)),te.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:$.textSecondary}},T?.status==="failed"&&te.default.createElement("span",{className:"text-red-500"},"failed"),T?.status==="complete"&&T.average_score!=null&&te.default.createElement("span",{style:{color:U[vy(T.average_score)],fontWeight:600}},(T.average_score*100).toFixed(0),"%"),te.default.createElement("span",{style:{color:$.textMuted}},GZ(T?.completed_at||S.created_at)))),F&&te.default.createElement("div",{className:"border-t",style:{borderColor:$.cardBorder}},T?.status==="failed"?te.default.createElement("div",{className:"p-4 text-sm text-red-500"},T.error_message):T?.scores?te.default.createElement("div",{className:"p-4 space-y-3"},T.scores._verdict&&te.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(34,197,94,0.1)":"#f0fdf4"}},te.default.createElement("span",{className:"font-semibold",style:{color:"#16a34a"}},"Winner: ",T.scores._verdict.winner),te.default.createElement("span",{className:"ml-2",style:{color:$.textSecondary}},T.scores._verdict.rationale),te.default.createElement("span",{className:"ml-2 text-xs",style:{color:$.textMuted}},"judged by ",T.scores._verdict.judge)),T.scores._missing_models&&te.default.createElement("div",{className:"text-xs italic",style:{color:$.textMuted}},"No recorded generations for: ",T.scores._missing_models.join(", ")," \u2014 run the agent under those models first"),Object.entries(T.scores).filter(([J])=>!J.startsWith("_")).map(([J,se])=>E(se)?te.default.createElement("div",{key:J,className:"space-y-1"},te.default.createElement("div",{className:"text-sm",style:{color:$.textSecondary}},J.replace(/_/g," ")),Object.entries(se).map(([ce,ge])=>C(ce,ge,{indent:!0,mono:!0}))):C(J,se))):te.default.createElement("div",{className:"p-4 text-sm",style:{color:$.textMuted}},"No runs yet"),te.default.createElement("div",{className:"p-4 grid grid-cols-2 md:grid-cols-5 gap-4 text-sm",style:{background:$.innerBg}},te.default.createElement("div",null,te.default.createElement("div",{style:{color:$.textMuted}},"Judge"),te.default.createElement("div",{className:"font-medium",style:{color:$.textPrimary}},S.judge_kind==="judge_defined"?`Judge-defined KPIs${S.judge_model?` (${S.judge_model})`:""}`:S.judge_kind==="llm"?S.judge_model||"LLM judge":"Rule-based")),te.default.createElement("div",{className:"col-span-2"},te.default.createElement("div",{style:{color:$.textMuted}},"Criteria"),te.default.createElement("div",{className:"font-medium truncate",style:{color:$.textPrimary}},(S.criteria||[]).map(J=>J.key).join(", "))),te.default.createElement("div",null,te.default.createElement("div",{style:{color:$.textMuted}},"Samples"),te.default.createElement("div",{className:"font-medium",style:{color:$.textPrimary}},T?`${T.samples_passed} / ${T.samples_evaluated} passed`:"\u2014")),te.default.createElement("div",{className:"flex items-end justify-end"},te.default.createElement("button",{onClick:J=>{J.stopPropagation(),z(S.id)},disabled:h===S.id,className:"px-3 py-1.5 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50"},h===S.id?"Running\u2026":"Run again")))))})),G.length===0&&!p&&te.default.createElement("div",{className:"text-center py-12 rounded-xl border",style:{backgroundColor:$.cardBg,borderColor:$.cardBorder}},te.default.createElement("div",{className:"text-lg",style:{color:$.textMuted}},"No evaluations yet"),te.default.createElement("p",{className:"text-sm mt-2",style:{color:$.textSecondary}},"Create an evaluation to start scoring agent outputs")))}var de=Q(R());var XZ=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function PS({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=Ze(),a=Is(n),[i,o]=(0,de.useState)(null),[l,s]=(0,de.useState)(!0),{timeWindow:u,days:c}=Ma(),[d,f]=(0,de.useState)("overview"),p=e.telemetry_agent_class||(()=>{let b=e.agent_class_name||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(k,N)=>N.toUpperCase()).replace(/^./,k=>k.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return b.endsWith("Agent")?b:`${b}Agent`})();(0,de.useEffect)(()=>{g()},[e?.id,c]);let g=async()=>{if(e?.id){s(!0);try{let k=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();o(k)}catch(b){console.error("Failed to load analytics:",b)}finally{s(!1)}}},h=b=>b?b<1e3?`${b}ms`:`${(b/1e3).toFixed(2)}s`:"-",x=b=>b?b>=1e6?`${(b/1e6).toFixed(1)}M`:b>=1e3?`${(b/1e3).toFixed(1)}K`:b.toString():"0",m=b=>{switch(b){case"complete":return"bg-green-500";case"failed":return"bg-red-500";case"running":return"bg-blue-500";case"pending":return"bg-yellow-500";case"cancelled":return"bg-gray-500";default:return"bg-gray-400"}};if(l&&!i)return de.default.createElement("div",{className:"flex items-center justify-center h-64"},de.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let v=i?.runs_by_day?.length>0?Math.max(...i.runs_by_day.map(b=>b.count)):1,y=r?"overview":d;return de.default.createElement("div",{className:"space-y-6"},r?de.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&de.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),de.default.createElement(Da,null)):de.default.createElement("div",{className:"flex items-center justify-between"},de.default.createElement("div",{className:"flex items-center space-x-4"},de.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:a.textMuted}},de.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},de.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),de.default.createElement("div",null,de.default.createElement("h1",{className:"text-2xl font-bold",style:{color:a.textPrimary}},e.name," Analytics"),de.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Performance metrics and usage data"))),de.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&de.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),de.default.createElement(Da,null))),!r&&de.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:a.mutedBg}},XZ.map(b=>de.default.createElement("button",{key:b.id,onClick:()=>f(b.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===b.id?"shadow":""}`,style:d===b.id?{background:a.cardBg,color:a.textPrimary}:{color:a.textSecondary}},b.label))),y==="traces"&&de.default.createElement(Bl,{agentClass:p,embedded:!0}),y==="interactions"&&de.default.createElement(Ni,{agentId:e.id,embedded:!0}),y==="overview"&&de.default.createElement(de.default.Fragment,null,de.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},de.default.createElement(hy,{title:"Total Runs",value:i?.summary?.total_runs||0,icon:de.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},de.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:a,darkMode:n}),de.default.createElement(hy,{title:"Success Rate",value:`${i?.summary?.success_rate||0}%`,icon:de.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},de.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"green",colors:a,darkMode:n}),de.default.createElement(hy,{title:"Avg Duration",value:h(i?.summary?.avg_duration_ms),icon:de.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},de.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"blue",colors:a,darkMode:n}),de.default.createElement(hy,{title:"Total Tokens",value:x(i?.summary?.total_tokens),icon:de.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},de.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})),color:"purple",colors:a,darkMode:n})),de.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},de.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},de.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Runs Over Time"),i?.runs_by_day?.length>0?de.default.createElement("div",{className:"h-48"},de.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},i.runs_by_day.map((b,k)=>de.default.createElement("div",{key:b.date,className:"flex-1 flex flex-col items-center group"},de.default.createElement("div",{className:"relative w-full"},de.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${b.count/v*150}px`,minHeight:b.count>0?"4px":"0"}}),de.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap"},b.count," runs")),(k===0||k===i.runs_by_day.length-1||i.runs_by_day.length<=7)&&de.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:a.textMuted}},new Date(b.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):de.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:a.textMuted}},"No data for this period")),de.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},de.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Status Breakdown"),Object.keys(i?.status_breakdown||{}).length>0?de.default.createElement("div",{className:"space-y-3"},Object.entries(i.status_breakdown).map(([b,k])=>{let N=i?.summary?.total_runs||1,D=(k/N*100).toFixed(1);return de.default.createElement("div",{key:b},de.default.createElement("div",{className:"flex justify-between text-sm mb-1"},de.default.createElement("span",{className:"capitalize",style:{color:a.textSecondary}},b),de.default.createElement("span",{className:"font-medium",style:{color:a.textPrimary}},k," (",D,"%)")),de.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:a.trackBg}},de.default.createElement("div",{className:`h-full ${m(b)} rounded-full transition-all`,style:{width:`${D}%`}})))})):de.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:a.textMuted}},"No runs yet"))),i?.recent_errors?.length>0&&de.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},de.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Recent Errors"),de.default.createElement("div",{className:"space-y-3"},i.recent_errors.map(b=>de.default.createElement("div",{key:b.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},de.default.createElement("svg",{className:"w-5 h-5 text-red-500 flex-shrink-0 mt-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},de.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})),de.default.createElement("div",{className:"flex-1 min-w-0"},de.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},b.error||"Unknown error"),de.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(b.created_at).toLocaleString())))))),de.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},de.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},de.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Completed Runs"),de.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.summary?.completed_runs||0)),de.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},de.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Failed Runs"),de.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.summary?.failed_runs||0)),de.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},de.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Avg Tokens/Run"),de.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},x(i?.summary?.avg_tokens_per_run))),de.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},de.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Period"),de.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.period_days||30," days")))))}var KP={rose:["#dc2626","rgba(220,38,38,0.18)","#fee2e2"],green:["#16a34a","rgba(22,163,74,0.18)","#dcfce7"],blue:["#2563eb","rgba(37,99,235,0.18)","#dbeafe"],purple:["#7c3aed","rgba(124,58,237,0.18)","#ede9fe"]};function hy({title:e,value:t,icon:r,color:n,colors:a,darkMode:i}){let[o,l,s]=KP[n]||KP.rose;return de.default.createElement("div",{className:"rounded-xl border p-4",style:{background:a.cardBg,borderColor:a.cardBorder}},de.default.createElement("div",{className:"flex items-center justify-between"},de.default.createElement("div",null,de.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},e),de.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:a.textPrimary}},t)),de.default.createElement("div",{className:"p-3 rounded-lg",style:{background:i?l:s,color:o}},r)))}var ZZ=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],ZP=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],QZ=ZP.map(e=>e.id),GP={success:{light:["#dcfce7","#166534"],dark:["rgba(22,163,74,0.18)","#4ade80"]},warning:{light:["#fef9c3","#854d0e"],dark:["rgba(234,179,8,0.18)","#facc15"]},neutral:{light:["#f3f4f6","#4b5563"],dark:["rgba(255,255,255,0.1)","rgba(255,255,255,0.7)"]},error:{light:["#fee2e2","#991b1b"],dark:["rgba(220,38,38,0.18)","#f87171"]},info:{light:["#dbeafe","#1e40af"],dark:["rgba(59,130,246,0.18)","#60a5fa"]}},JZ={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function jS({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[a,i]=(GP[e]||GP.neutral)[r?"dark":"light"];return Z.default.createElement("span",{style:{background:a,color:i,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?Ee.mono:void 0,whiteSpace:"nowrap"}},n)}function $l({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:a,children:i}){let l={padding:t==="sm"?"5px 10px":"7px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,cursor:n?"not-allowed":"pointer",transition:"background 0.15s ease, border-color 0.15s ease",whiteSpace:"nowrap"},s={primary:{background:n?a.mutedBg:ta,color:n?a.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:a.textCell,border:`1px solid ${a.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return Z.default.createElement("button",{type:"button",onClick:r,disabled:n,style:{...l,...s[e]||s.secondary}},i)}function XP({tabs:e,active:t,onChange:r,colors:n}){return Z.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(a=>{let i=t===a.id;return Z.default.createElement("button",{key:a.id,type:"button",onClick:()=>r(a.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${i?ta:"transparent"}`,color:i?ta:n.textSecondary,fontSize:"13px",fontWeight:i?600:500,cursor:"pointer",whiteSpace:"nowrap"}},a.label)}))}function yy({agent:e,meta:t,onSave:r,onDelete:n,onRun:a,onDuplicate:i,onRunReport:o,onBack:l,isLoading:s,initialTab:u}){let{darkMode:c}=Ze(),d=Is(c),[f,p]=(0,Z.useState)(u||"config"),[g,h]=(0,Z.useState)({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[x,m]=(0,Z.useState)([]),[v,y]=(0,Z.useState)(!1),[b,k]=(0,Z.useState)(""),[N,D]=(0,Z.useState)(js),_=e.telemetry_agent_class||e.telemetryAgentClass||(()=>{let V=e.agent_class_name||e.agentClassName||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(w,O)=>O.toUpperCase()).replace(/^./,w=>w.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return V.endsWith("Agent")?V:`${V}Agent`})();(0,Z.useEffect)(()=>{let V=!1;return Nm(g.provider).then(w=>{V||w.length===0||D(O=>({...O,[g.provider]:w}))}),()=>{V=!0}},[g.provider]),(0,Z.useEffect)(()=>{let V=JSON.stringify(g)!==JSON.stringify({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});y(V)},[g,e]),(0,Z.useEffect)(()=>{f==="versions"?M():f==="code"&&z()},[f]);let M=async()=>{try{let w=await(await fetch(`/api/agents/${e.id}/versions`)).json();m(w.versions)}catch(V){console.error("Failed to load versions:",V)}},z=async()=>{try{let w=await(await fetch(`/api/agents/${e.id}/export`)).json();k(w.code)}catch(V){console.error("Failed to load code preview:",V)}},$=(V,w)=>{h(O=>({...O,[V]:w}))},U=(V,w)=>{h(O=>{let E=O[V]||[],C=E.includes(w)?E.filter(S=>S!==w):[...E,w];return{...O,[V]:C}})},G=()=>{r(g)},j=QZ.includes(f);return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},Z.default.createElement("button",{type:"button",onClick:l,title:"Back to agents",style:{fontFamily:Ee.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),Z.default.createElement(At,{size:44}),Z.default.createElement("div",{style:{flex:1,minWidth:0}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},Z.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},g.name||"Untitled agent"),Z.default.createElement(jS,{tone:JZ[g.status]||"neutral",darkMode:c},g.status),v&&Z.default.createElement(jS,{tone:"info",darkMode:c},"unsaved")),Z.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},g.description||"No description")),Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},i&&Z.default.createElement($l,{variant:"secondary",colors:d,onClick:i},"Duplicate"),Z.default.createElement($l,{variant:"primary",colors:d,onClick:a},"Run Agent"))),Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},Z.default.createElement(XP,{tabs:ZZ,active:f,onChange:p,colors:d}),Z.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),Z.default.createElement(XP,{tabs:ZP,active:f,onChange:p,colors:d})),j?Z.default.createElement("div",null,f==="traces"&&Z.default.createElement(Bl,{agentClass:_,embedded:!0}),f==="metrics"&&Z.default.createElement(PS,{agent:e,embedded:!0}),f==="interactions"&&Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},o&&Z.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Z.default.createElement("button",{type:"button",onClick:o,style:{background:"none",border:"none",cursor:"pointer",fontFamily:Ee.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),Z.default.createElement(Ni,{agentId:e.id,embedded:!0})),f==="evals"&&Z.default.createElement(Bf,{embedded:!0,agentId:e.id}),f==="feedback"&&Z.default.createElement(aQ,{colors:d})):Z.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},f==="config"&&Z.default.createElement(RZ,{formData:g,updateField:$,providerModels:N,colors:d,darkMode:c,onDelete:n}),f==="instructions"&&Z.default.createElement(eQ,{formData:g,updateField:$,meta:t,toggleArrayItem:U,colors:d}),f==="tools"&&Z.default.createElement(tQ,{formData:g,meta:t,toggleArrayItem:U,colors:d}),f==="versions"&&Z.default.createElement(rQ,{versions:x,agentId:e.id,onRestore:M,colors:d,darkMode:c}),f==="code"&&Z.default.createElement(nQ,{code:b,colors:d})),v&&Z.default.createElement("div",{style:{position:"sticky",bottom:"0",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",background:d.cardBg,border:`1px solid ${d.borderStrong}`,borderRadius:"12px",padding:"10px 14px",boxShadow:"0 4px 16px rgba(0,0,0,0.12)"}},Z.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),Z.default.createElement("div",{style:{display:"flex",gap:"8px"}},Z.default.createElement($l,{variant:"primary",size:"sm",colors:d,onClick:G,disabled:s},s?"Saving\u2026":"Save Changes"))))}var Ia=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),Ci=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),QP=e=>({fontFamily:Ee.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function RZ({formData:e,updateField:t,providerModels:r,colors:n,darkMode:a,onDelete:i}){return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(n)},"Agent Name"),Z.default.createElement("input",{type:"text",value:e.name,onChange:o=>t("name",o.target.value),className:"aa-field",style:Ci(n)})),Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(n)},"Preset Type"),Z.default.createElement("select",{value:e.preset_type,onChange:o=>t("preset_type",o.target.value),className:"aa-field",style:Ci(n)},Object.keys(Ds).map(o=>Z.default.createElement("option",{key:o,value:o},o))))),Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(n)},"Description"),Z.default.createElement("textarea",{value:e.description,onChange:o=>t("description",o.target.value),rows:3,className:"aa-field",style:{...Ci(n),resize:"vertical"}})),Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(n)},"Provider"),Z.default.createElement("select",{value:e.provider,onChange:o=>{t("provider",o.target.value),t("model",r[o.target.value][0])},className:"aa-field",style:Ci(n)},Object.keys(r).map(o=>Z.default.createElement("option",{key:o,value:o},o.charAt(0).toUpperCase()+o.slice(1))))),Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(n)},"Model"),Z.default.createElement("select",{value:e.model,onChange:o=>t("model",o.target.value),className:"aa-field",style:{...Ci(n),fontFamily:Ee.mono}},(r[e.provider]?.includes(e.model)?r[e.provider]:[e.model,...r[e.provider]||[]]).filter(Boolean).map(o=>Z.default.createElement("option",{key:o,value:o},o))))),Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(n)},"Temperature"," ",Z.default.createElement("span",{style:{fontFamily:Ee.mono,color:n.textSecondary}},e.model_config.temperature)),Z.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:o=>t("model_config",{...e.model_config,temperature:parseFloat(o.target.value)}),style:{width:"100%",accentColor:ta}})),Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(n)},"Status"),Z.default.createElement("select",{value:e.status,onChange:o=>t("status",o.target.value),className:"aa-field",style:Ci(n)},Z.default.createElement("option",{value:"draft"},"Draft"),Z.default.createElement("option",{value:"active"},"Active"),Z.default.createElement("option",{value:"archived"},"Archived")))),i&&Z.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},Z.default.createElement("div",null,Z.default.createElement("div",{style:QP(n)},"Danger zone"),Z.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),Z.default.createElement($l,{variant:"danger",size:"sm",colors:n,onClick:i},"Delete Agent")))}function eQ({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:a}){let i=e.action_prompts||[],o=(u,c)=>{t("action_prompts",i.map((d,f)=>f===u?{...d,...c}:d))},l=()=>{t("action_prompts",[...i,{name:"",prompt:"",expose_as_tool:!1}])},s=u=>{t("action_prompts",i.filter((c,d)=>d!==u))};return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(a)},"System Instructions"),Z.default.createElement("textarea",{value:e.instructions,onChange:u=>t("instructions",u.target.value),placeholder:"You are a helpful AI assistant...",rows:12,className:"aa-field",style:{...Ci(a),fontFamily:Ee.mono,resize:"vertical"}})),Z.default.createElement("div",null,Z.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},Z.default.createElement("label",{style:{...Ia(a),marginBottom:0}},"Action Prompts"),Z.default.createElement($l,{variant:"secondary",size:"sm",colors:a,onClick:l},"+ Add action")),Z.default.createElement("p",{style:{fontSize:"12px",color:a.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",Z.default.createElement("span",{style:{fontFamily:Ee.mono}},"#ask")," action uses the system instructions alone."),i.length>0&&Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i.map((u,c)=>Z.default.createElement("div",{key:c,style:{border:`1px solid ${a.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Z.default.createElement("span",{style:{fontFamily:Ee.mono,fontSize:"13px",color:a.textMuted}},"#"),Z.default.createElement("input",{type:"text",value:u.name,onChange:d=>o(c,{name:d.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"_")}),placeholder:"action_name",className:"aa-field",style:{...Ci(a),flex:1,padding:"6px 10px",fontFamily:Ee.mono}}),Z.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:a.textSecondary,whiteSpace:"nowrap"}},Z.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>o(c,{expose_as_tool:d.target.checked}),style:{accentColor:ta}}),"Expose as tool"),Z.default.createElement("button",{type:"button",onClick:()=>s(c),title:"Remove action",style:{fontFamily:Ee.mono,fontSize:"12px",color:a.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),Z.default.createElement("textarea",{value:u.prompt,onChange:d=>o(c,{prompt:d.target.value}),placeholder:"This action's system prompt, applied on top of the base instructions...",rows:4,className:"aa-field",style:{...Ci(a),fontFamily:Ee.mono,resize:"vertical"}}))))),Z.default.createElement("div",null,Z.default.createElement("label",{style:Ia(a)},"Instruction Sets"),Z.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return Z.default.createElement("button",{key:u,type:"button",onClick:()=>n("instruction_sets",u),style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?ta:a.inputBorder}`,background:c?ta:"transparent",color:c?"#ffffff":a.textCell}},u)}))))}function tQ({formData:e,meta:t,toggleArrayItem:r,colors:n}){let a=i=>({terminal:"$",playwright:">",filesystem:"/",code:"<>",database:"#",slack:"@",fetch:"~",search:"?",edit:"*",translate:"[]",memory:"M"})[i]||"[]";return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Z.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"Select the tools your agent can use."),Z.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"12px"}},t.availableTools?.map(i=>{let o=e.tools.includes(i);return Z.default.createElement("button",{key:i,type:"button",onClick:()=>r("tools",i),style:{padding:"14px",borderRadius:"12px",textAlign:"center",cursor:"pointer",border:`1px solid ${o?ta:n.cardBorder}`,background:o?"rgba(239,68,68,0.08)":"transparent",color:o?ta:n.textCell}},Z.default.createElement("span",{style:{display:"block",fontFamily:Ee.mono,fontSize:"20px",marginBottom:"6px"}},a(i)),Z.default.createElement("span",{style:{fontSize:"13px",fontWeight:500,textTransform:"capitalize"}},i))})),e.tools.length>0&&Z.default.createElement("div",{style:{background:n.innerBg,borderRadius:"10px",padding:"14px"}},Z.default.createElement("div",{style:{...QP(n),marginBottom:"10px"}},"Selected tools \xB7 ",e.tools.length),Z.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},e.tools.map(i=>Z.default.createElement("span",{key:i,style:{fontFamily:Ee.mono,fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:`1px solid ${n.inputBorder}`,color:n.textCell}},a(i)," ",i)))))}function rQ({versions:e,agentId:t,onRestore:r,colors:n,darkMode:a}){let i=async o=>{if(confirm("Restore this version? This will create a new version with the restored configuration."))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:o})}),r()}catch(l){console.error("Failed to restore version:",l)}};return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},Z.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(o=>{let l=o.is_latest||o.isLatest;return Z.default.createElement("div",{key:o.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${l?ta:n.cardBorder}`,background:l?"rgba(239,68,68,0.06)":"transparent"}},Z.default.createElement("div",{style:{minWidth:0}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Z.default.createElement("span",{style:{fontFamily:Ee.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",o.version_number||o.versionNumber),l&&Z.default.createElement(jS,{tone:"error",darkMode:a},"current")),Z.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},o.change_summary||o.changeSummary),Z.default.createElement("p",{style:{fontFamily:Ee.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(o.created_at||o.createdAt).toLocaleString())),!l&&Z.default.createElement($l,{variant:"secondary",size:"sm",colors:n,onClick:()=>i(o.id)},"Restore"))})):Z.default.createElement(JP,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function nQ({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return Z.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},Z.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Z.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),Z.default.createElement($l,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),Z.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:Ee.mono,fontSize:"12px",lineHeight:1.6,margin:0}},Z.default.createElement("code",null,e||"Loading...")))}function aQ({colors:e}){return Z.default.createElement("div",{style:{background:e.cardBg,border:`1px solid ${e.cardBorder}`,borderRadius:"12px",padding:"20px"}},Z.default.createElement(JP,{colors:e,glyph:"[?]",title:"No feedback recorded",hint:"Thumbs and comments are not captured yet. Once an interaction feedback source is recorded, CSAT and per-trace comments appear here."}))}function JP({colors:e,glyph:t,title:r,hint:n}){return Z.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},Z.default.createElement("div",{style:{fontFamily:Ee.mono,fontSize:"20px",color:e.textMuted}},t),Z.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),Z.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var ee=Q(R());async function nc(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var iQ={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},oQ=e=>{let t=iQ[e]||{role:e,label:e};return{...Sr(t.role,!1),label:t.label}};function IS({agent:e,onBack:t}){let[r,n]=(0,ee.useState)(""),a=["ask",...(e.action_prompts||[]).map(w=>w.name).filter(Boolean)],[i,o]=(0,ee.useState)("ask"),[l,s]=(0,ee.useState)([]),[u,c]=(0,ee.useState)(!1),[d,f]=(0,ee.useState)(null),[p,g]=(0,ee.useState)(null),[h,x]=(0,ee.useState)({}),[m,v]=(0,ee.useState)(!1),[y,b]=(0,ee.useState)(null),k=(0,ee.useRef)(null);(0,ee.useEffect)(()=>{N()},[e.id]),(0,ee.useEffect)(()=>{k.current&&(k.current.scrollTop=k.current.scrollHeight)},[d?.output]);let N=async()=>{try{let O=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();s(O.runs)}catch(w){console.error("Failed to load runs:",w)}},D=1200,_=600*1e3,M=async()=>{if(!(!r.trim()||u)){c(!0),f({status:"pending",input_prompt:r,output:"",logs:[],started_at:new Date().toISOString()});try{let w=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:r,action_name:i})}),O=await w.json();if(w.status===402&&O.upgrade_required){g(O.usage),f(T=>({...T,status:"failed",error_message:O.message||"Plan limit reached"}));return}if(!w.ok)throw new Error(O.error||"Run failed");let E=O.run.id,C=Date.now(),S=async()=>{try{let T=await fetch(`/api/runs/${E}`);if(T.ok){let F=await T.json();if(f(F.run),!["pending","running"].includes(F.run.status)){c(!1),N();return}}}catch{}Date.now()-C<_?setTimeout(S,D):c(!1)};S()}catch(w){f(O=>({...O,status:"failed",error_message:w.message})),c(!1)}}},z=w=>{let O=new Map;return(w?.logs||[]).filter(E=>E.eid).forEach(E=>{let C=O.get(E.eid)||{eid:E.eid};E.status==="started"?Object.assign(C,E,{input:E.detail,output:C.output}):Object.assign(C,E,{input:C.input,output:E.detail}),O.set(E.eid,C)}),[...O.values()]},$=w=>{if(!w)return null;try{return JSON.stringify(JSON.parse(w),null,2)}catch{return w}},U=w=>{w.key==="Enter"&&(w.metaKey||w.ctrlKey)&&M()},G=w=>{switch(w){case"complete":return"text-green-600 bg-green-100";case"failed":return"text-red-600 bg-red-100";case"running":return"text-blue-600 bg-blue-100";case"pending":return"text-yellow-600 bg-yellow-100";default:return"text-gray-600 bg-gray-100"}},j=w=>w?w<1e3?`${w}ms`:`${(w/1e3).toFixed(2)}s`:"-",V=async()=>{v(!0),b(null);try{await nc({planSlug:"pro"})}catch(w){b(w.message),v(!1)}};return ee.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},ee.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},p&&ee.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},ee.default.createElement("div",null,ee.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),ee.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",p.runs_used," of ",p.runs_limit," runs on the"," ",p.plan||"free"," plan. Upgrade to keep running agents."),y&&ee.default.createElement("p",{className:"text-sm text-red-600 mt-1"},y)),ee.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},ee.default.createElement("a",{href:"/pricing",className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),ee.default.createElement("button",{onClick:V,disabled:m,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},m?"Redirecting\u2026":"Upgrade to Pro"))),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("div",{className:"flex items-start space-x-4"},ee.default.createElement("div",{className:"flex-shrink-0"},ee.default.createElement(At,{size:50})),ee.default.createElement("div",{className:"flex-1"},ee.default.createElement("textarea",{value:r,onChange:w=>n(w.target.value),onKeyDown:U,placeholder:"Enter your prompt here... (Cmd+Enter to run)",rows:4,disabled:u,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent resize-none"}),ee.default.createElement("div",{className:"flex items-center justify-between mt-3"},ee.default.createElement("div",{className:"flex items-center gap-3"},a.length>1&&ee.default.createElement("select",{value:i,onChange:w=>o(w.target.value),disabled:u,className:"px-2 py-1 border border-gray-300 rounded-lg text-sm font-mono text-gray-700 focus:ring-2 focus:ring-red-500",title:"Agent action to invoke"},a.map(w=>ee.default.createElement("option",{key:w,value:w},"#",w))),ee.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",ee.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"\u2318")," + ",ee.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run")),ee.default.createElement("button",{onClick:M,disabled:!r.trim()||u,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${r.trim()&&!u?"bg-emerald-500 text-white hover:bg-emerald-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},u?ee.default.createElement(ee.default.Fragment,null,ee.default.createElement("span",{className:"animate-spin",style:{fontFamily:Ee.mono}},"[~]"),ee.default.createElement("span",null,"Running...")):ee.default.createElement(ee.default.Fragment,null,ee.default.createElement("span",{style:{fontFamily:Ee.mono}},"[>]"),ee.default.createElement("span",null,"Run"))))))),ee.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},ee.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},ee.default.createElement("h3",{className:"font-medium text-gray-900"},"Output"),d&&ee.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},ee.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${G(d.status)}`},d.status),d.output_metadata?.model&&ee.default.createElement("span",{className:"px-2 py-0.5 rounded bg-indigo-50 text-indigo-700 text-xs font-mono",title:"Model that generated this run"},d.output_metadata.provider,"/",d.output_metadata.model),d.duration_ms&&ee.default.createElement("span",{className:"text-gray-400"},j(d.duration_ms)),d.total_tokens&&ee.default.createElement("span",{className:"text-gray-400"},d.total_tokens," tokens"),d.trace_id&&ee.default.createElement("a",{href:Xe(`/traces?trace=${d.trace_id}`),className:"text-gray-400 hover:text-red-500 font-mono text-xs",title:`${d.trace_id} \u2014 open in Traces`},"trace:",d.trace_id.slice(0,8)," \u2192"))),ee.default.createElement("div",{ref:k,className:"flex-1 p-4 overflow-auto bg-gray-50 font-mono text-sm"},d?ee.default.createElement(ee.default.Fragment,null,z(d).length>0&&ee.default.createElement("div",{className:"mb-4 space-y-2"},z(d).map(w=>{let O=!!h[w.eid],E=!!(w.input||w.output),C=oQ(w.kind),S=AS(!1);return ee.default.createElement("div",{key:w.eid},ee.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${E?"cursor-pointer hover:bg-black/5":""}`,onClick:E?()=>x(T=>({...T,[w.eid]:!T[w.eid]})):void 0,title:E?"Click to inspect input/output":void 0,style:O?{background:"rgba(0,0,0,0.03)"}:{}},ee.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium flex-shrink-0 mt-0.5",style:{background:C.background,color:C.color,minWidth:"72px",textAlign:"center"}},C.label),ee.default.createElement("div",{className:"min-w-0 flex-1"},ee.default.createElement("div",{className:"text-sm break-words text-gray-800"},w.label,w.output&&!O&&ee.default.createElement("span",{className:"text-gray-400"}," \u201C",w.output.slice(0,160),w.output.length>160?"\u2026":"","\u201D")),ee.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap text-gray-400"},w.status==="started"?ee.default.createElement("span",{className:"text-blue-500 animate-pulse"},"running\u2026"):ee.default.createElement("span",{className:w.status==="error"?"text-red-500":""},w.status==="error"?"failed":"\u2713",w.duration_ms!=null&&` ${j(w.duration_ms)}`),w.at&&ee.default.createElement("span",null,new Date(w.at).toLocaleTimeString()))),E&&ee.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${O?"rotate-180":""} text-gray-400`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ee.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),O&&ee.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:C.color+"55"}},w.input&&ee.default.createElement("div",null,ee.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1 text-gray-400"},"Input"),ee.default.createElement("pre",{style:{...S,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},$(w.input))),w.output&&ee.default.createElement("div",null,ee.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1 text-gray-400"},w.status==="error"?"Error":"Result"),ee.default.createElement("pre",{style:{...S,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...w.status==="error"?{background:"#fef2f2",color:"#b91c1c"}:{}}},$(w.output)))))})),["pending","running"].includes(d.status)?ee.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},ee.default.createElement("span",{className:"animate-pulse"},"\u25CF"),ee.default.createElement("span",null,z(d).length>0?"Working\u2026":"Starting run\u2026")):d.error_message?ee.default.createElement("div",{className:"text-red-600"},ee.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),ee.default.createElement("pre",{className:"whitespace-pre-wrap"},d.error_message)):ee.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},d.output||"No output")):ee.default.createElement("div",{className:"text-gray-400 text-center py-12"},"Enter a prompt and click Run to test your agent")))),ee.default.createElement("div",{className:"space-y-4"},ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},ee.default.createElement(At,{size:60}),ee.default.createElement("div",null,ee.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),ee.default.createElement("p",{className:"text-sm text-gray-500"},e.provider," / ",e.model))),ee.default.createElement("button",{onClick:t,className:"w-full px-4 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},"\u2190 Back to Editor")),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},"Configuration"),ee.default.createElement("dl",{className:"space-y-2 text-sm"},ee.default.createElement("div",{className:"flex justify-between"},ee.default.createElement("dt",{className:"text-gray-500"},"Temperature"),ee.default.createElement("dd",{className:"text-gray-900"},e.modelConfig?.temperature||e.model_config?.temperature||.7)),ee.default.createElement("div",{className:"flex justify-between"},ee.default.createElement("dt",{className:"text-gray-500"},"Tools"),ee.default.createElement("dd",{className:"text-gray-900"},e.tools?.length||0)),ee.default.createElement("div",{className:"flex justify-between"},ee.default.createElement("dt",{className:"text-gray-500"},"Status"),ee.default.createElement("dd",{className:`px-2 py-0.5 rounded text-xs ${e.status==="active"?"bg-green-100 text-green-700":"bg-gray-100 text-gray-600"}`},e.status))),e.instructions&&ee.default.createElement("div",{className:"mt-3 pt-3 border-t border-gray-100"},ee.default.createElement("div",{className:"text-xs text-gray-500 mb-1.5"},"System Instructions"),ee.default.createElement("p",{className:"text-xs text-gray-700 whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed"},e.instructions))),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ee.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},ee.default.createElement("h4",{className:"font-medium text-gray-900"},"Recent Runs")),ee.default.createElement("div",{className:"max-h-64 overflow-auto"},l.length>0?ee.default.createElement("div",{className:"divide-y divide-gray-100"},l.map(w=>ee.default.createElement("div",{key:w.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>f(w)},ee.default.createElement("div",{className:"flex items-center justify-between mb-1"},ee.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${G(w.status)}`},w.status),ee.default.createElement("span",{className:"text-xs text-gray-400"},j(w.duration_ms))),ee.default.createElement("p",{className:"text-sm text-gray-600 truncate"},w.input_preview||w.input_prompt?.substring(0,50)),ee.default.createElement("p",{className:"text-xs text-gray-400 mt-1 flex items-center gap-2 flex-wrap"},w.model&&ee.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},w.model),ee.default.createElement("span",null,new Date(w.created_at).toLocaleString()))))):ee.default.createElement("div",{className:"px-4 py-8 text-center text-gray-400 text-sm"},"No runs yet"))),ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},ee.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},"Example Prompts"),ee.default.createElement("div",{className:"space-y-2"},["Hello, what can you help me with?","List the files in the current directory","Explain how this code works"].map((w,O)=>ee.default.createElement("button",{key:O,onClick:()=>n(w),className:"w-full text-left px-3 py-2 text-sm text-gray-600 hover:bg-gray-50 rounded-lg transition-colors border border-gray-200"},w))))))}var pe=Q(R()),lQ=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function zS({onSelectAgent:e}){let[t,r]=(0,pe.useState)(null),[n,a]=(0,pe.useState)(!0),[i,o]=(0,pe.useState)(30);(0,pe.useEffect)(()=>{l()},[i]);let l=async()=>{a(!0);try{let p=await(await fetch(`/api/analytics?days=${i}`)).json();r(p)}catch(f){console.error("Failed to load analytics:",f)}finally{a(!1)}},s=f=>f?f>=1e6?`${(f/1e6).toFixed(1)}M`:f>=1e3?`${(f/1e3).toFixed(1)}K`:f.toString():"0",u=f=>f?f<1e3?`${f}ms`:`${(f/1e3).toFixed(2)}s`:"-";if(n&&!t)return pe.default.createElement("div",{className:"flex items-center justify-center h-64"},pe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=t?.charts?.runs_by_day?.length>0?Math.max(...t.charts.runs_by_day.map(f=>f.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(f=>f.tokens)):1;return pe.default.createElement("div",{className:"space-y-6"},pe.default.createElement("div",{className:"flex items-center justify-between"},pe.default.createElement("div",null,pe.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),pe.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),pe.default.createElement("select",{value:i,onChange:f=>o(Number(f.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},lQ.map(f=>pe.default.createElement("option",{key:f.value,value:f.value},"Last ",f.label)))),pe.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},pe.default.createElement($f,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),pe.default.createElement($f,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),pe.default.createElement($f,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),pe.default.createElement($f,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),pe.default.createElement($f,{title:"Total Tokens",value:s(t?.summary?.total_tokens),subtitle:`${s(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),pe.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},pe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},pe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?pe.default.createElement("div",{className:"h-48"},pe.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((f,p)=>pe.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},pe.default.createElement("div",{className:"relative w-full"},pe.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${f.count/c*150}px`,minHeight:f.count>0?"4px":"0"}}),pe.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},f.count," runs"))))),pe.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},pe.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&new Date(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),pe.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&new Date(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):pe.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),pe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},pe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?pe.default.createElement("div",{className:"h-48"},pe.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((f,p)=>pe.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},pe.default.createElement("div",{className:"relative w-full"},pe.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${f.tokens/d*150}px`,minHeight:f.tokens>0?"4px":"0"}}),pe.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},s(f.tokens)," tokens"))))),pe.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},pe.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&new Date(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),pe.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&new Date(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):pe.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),pe.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},pe.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},pe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?pe.default.createElement("div",{className:"space-y-3"},t.top_agents.map((f,p)=>pe.default.createElement("div",{key:f.id,onClick:()=>e?.(f),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},pe.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},p+1),pe.default.createElement("div",{className:"flex-1 min-w-0"},pe.default.createElement("p",{className:"font-medium text-gray-900 truncate"},f.name),pe.default.createElement("p",{className:"text-sm text-gray-500"},f.run_count," runs")),pe.default.createElement("div",{className:"text-right"},pe.default.createElement("p",{className:"font-medium text-gray-900"},s(f.total_tokens)),pe.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):pe.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),pe.default.createElement("div",{className:"space-y-6"},pe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},pe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?pe.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([f,p])=>{let g=t?.summary?.total_runs||1,h=(p/g*100).toFixed(1);return pe.default.createElement("div",{key:f},pe.default.createElement("div",{className:"flex justify-between text-sm mb-1"},pe.default.createElement("span",{className:"capitalize text-gray-600"},f),pe.default.createElement("span",{className:"text-gray-900 font-medium"},p)),pe.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},pe.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${h}%`}})))})):pe.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),pe.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},pe.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),pe.default.createElement("div",{className:"space-y-4"},pe.default.createElement("div",{className:"flex justify-between items-center"},pe.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),pe.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_input_tokens))),pe.default.createElement("div",{className:"flex justify-between items-center"},pe.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),pe.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_output_tokens))),pe.default.createElement("div",{className:"pt-2 border-t border-gray-100"},pe.default.createElement("div",{className:"flex justify-between items-center"},pe.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),pe.default.createElement("span",{className:"font-bold text-gray-900"},s(t?.summary?.total_tokens)))))))))}function $f({title:e,value:t,subtitle:r,color:n}){return pe.default.createElement("div",{className:`bg-white rounded-xl border border-gray-200 border-l-4 ${{rose:"border-l-red-500",blue:"border-l-blue-500",green:"border-l-green-500",purple:"border-l-purple-500",amber:"border-l-amber-500"}[n]} p-4`},pe.default.createElement("p",{className:"text-sm text-gray-500"},e),pe.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&pe.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var H=Q(R());function LS({agent:e,onBack:t}){let{timeWindow:r}=Ma(),[n,a]=(0,H.useState)([]),[i,o]=(0,H.useState)([]),[l,s]=(0,H.useState)(null),[u,c]=(0,H.useState)(null),[d,f]=(0,H.useState)([]),[p,g]=(0,H.useState)("run"),[h,x]=(0,H.useState)(!1),[m,v]=(0,H.useState)(!1),y=(0,H.useRef)(!1),b=(0,H.useRef)(!1),[k,N]=(0,H.useState)("recent"),[D,_]=(0,H.useState)({}),[M,z]=(0,H.useState)(!0),[$,U]=(0,H.useState)(1),[G,j]=(0,H.useState)(!0),[V,w]=(0,H.useState)(""),[O,E]=(0,H.useState)(""),[C,S]=(0,H.useState)("recent"),T=(0,H.useRef)(null),F=Xe(`/agents/${e.id}/interactions`);(0,H.useEffect)(()=>{X()},[e.id,$,V,O,C,r.minutes]),(0,H.useEffect)(()=>{U(1)},[r.minutes]),(0,H.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then(L=>L.json()).then(L=>o(L.interactions||[])).catch(()=>{}).finally(()=>v(!0))},[e.id]),(0,H.useEffect)(()=>{let L=()=>{let ye=window.location.pathname,xe=ye.match(/\/interactions\/runs\/(\d+)/),we=ye.match(/\/interactions\/sessions\/(\d+)/);if(xe)g("run"),c(null),se(parseInt(xe[1],10),{updateUrl:!1});else if(we)g("all"),c({id:parseInt(we[1],10)});else if(ye.endsWith("/interactions/sessions")||ye.endsWith("/interactions/all"))ye.endsWith("/all")&&window.history.replaceState({},"",ye.replace(/\/all$/,"/sessions")),g("all"),c(null);else{y.current=!1,s(null),c(null),f([]);return}y.current=!0};return L(),window.addEventListener("popstate",L),()=>window.removeEventListener("popstate",L)},[e.id]),(0,H.useEffect)(()=>{y.current||b.current||!h||!m||g(n.length===0&&i.length>0?"all":"run")},[h,m,n.length,i.length]);let X=async()=>{z(!0);try{let L=new URLSearchParams({page:$.toString(),per_page:"20",minutes:String(r.minutes)});V&&L.append("status",V),O&&L.append("source",O),C!=="recent"&&L.append("sort",C);let xe=await(await fetch(`/api/agents/${e.id}/runs?${L}`)).json();a($===1?xe.runs:we=>[...we,...xe.runs]),j(xe.runs.length===20)}catch(L){console.error("Failed to load runs:",L)}finally{z(!1),x(!0)}},J=L=>{window.location.pathname!==L&&window.history.pushState({},"",L)},se=async(L,{updateUrl:ye=!0}={})=>{try{let we=await(await fetch(`/api/runs/${L}`)).json();s(we.run),f(we.messages||[]),g("run"),c(null),ye&&J(`${F}/runs/${L}`)}catch(xe){console.error("Failed to load run details:",xe)}},ce=L=>{if(L.source==="reported"){let ye=L.trace_id||String(L.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",Xe(`/traces/${ye}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Xe(`/traces/${ye}`)}}));return}se(L.record_id||L.id)},ge=()=>{s(null),c(null),f([]),g("run"),J(F)},Te=L=>{g("all"),L?(c({id:L.id,name:L.display_name}),J(`${F}/sessions/${L.id}`)):(c(null),J(`${F}/sessions`))},ie=L=>{b.current=!0,g(L),J(L==="all"?u?`${F}/sessions/${u.id}`:`${F}/sessions`:l?`${F}/runs/${l.id}`:F)},_e=u?u.name||i.find(L=>L.id===u.id)?.display_name||`Session #${u.id}`:null,W=()=>{let L=new Map;n.forEach(we=>{let Pe=`${we.model||"unknown"}|${we.instructions_digest||"none"}`;L.has(Pe)||L.set(Pe,{key:Pe,model:we.model,instructionsDigest:we.instructions_digest,instructionsVersion:we.instructions_version,instructionsCodename:we.instructions_codename,instructionsPreview:we.instructions_preview,runs:[]}),L.get(Pe).runs.push(we)});let ye=[...L.values()].map(we=>({...we,count:we.runs.length,completed:we.runs.filter(Pe=>Pe.status==="complete").length,failed:we.runs.filter(Pe=>Pe.status==="failed").length,totalTokens:we.runs.reduce((Pe,Ir)=>Pe+(Ir.tokens||0),0),avgTokens:we.runs.reduce((Pe,Ir)=>Pe+(Ir.tokens||0),0)/we.runs.length,avgDuration:we.runs.reduce((Pe,Ir)=>Pe+(Ir.duration_ms||0),0)/we.runs.length,latest:we.runs[0],sortedRuns:[...we.runs].sort((Pe,Ir)=>(Ir.duration_ms||0)-(Pe.duration_ms||0))}));ye.sort((we,Pe)=>k==="longest"?Pe.avgDuration-we.avgDuration:new Date(Pe.latest.created_at)-new Date(we.latest.created_at));let xe={runs:n.length,completed:n.filter(we=>we.status==="complete").length,tokens:n.reduce((we,Pe)=>we+(Pe.tokens||0),0),avgDuration:n.length?n.reduce((we,Pe)=>we+(Pe.duration_ms||0),0)/n.length:0,models:[...new Set(n.map(we=>we.model).filter(Boolean))]};return{cohorts:ye,totals:xe}},q=L=>{switch(L){case"complete":return"bg-green-100 text-green-700";case"failed":return"bg-red-100 text-red-700";case"running":return"bg-blue-100 text-blue-700";case"pending":return"bg-yellow-100 text-yellow-700";case"cancelled":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},A=L=>L?L<1e3?`${L}ms`:L<6e4?`${(L/1e3).toFixed(1)}s`:`${Math.floor(L/6e4)}m ${Math.floor(L%6e4/1e3)}s`:"-",I=L=>L==null?"\u2014":L===0?"$0":L<.01?`$${L.toFixed(4)}`:`$${L.toFixed(2)}`,K=L=>{let ye=new Date(L),we=new Date-ye,Pe=Math.floor(we/6e4),Ir=Math.floor(we/36e5),Yf=Math.floor(we/864e5);return Pe<1?"Just now":Pe<60?`${Pe}m ago`:Ir<24?`${Ir}h ago`:Yf<7?`${Yf}d ago`:ye.toLocaleDateString()};return H.default.createElement("div",{className:"flex h-full"},H.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},H.default.createElement("div",{className:"p-4 border-b border-gray-200"},H.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},H.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},H.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},H.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),H.default.createElement("div",null,H.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),H.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),H.default.createElement("div",{className:"mb-2"},H.default.createElement(Da,{compact:!0})),H.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1 mb-2 text-sm"},[{value:"",label:"All"},{value:"dashboard",label:"Dashboard"},{value:"reported",label:"Reported"}].map(L=>H.default.createElement("button",{key:L.value||"all",onClick:()=>{E(L.value),U(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${O===L.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:L.value==="dashboard"?"Executions started from this dashboard":L.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},L.label))),H.default.createElement("select",{value:V,onChange:L=>{w(L.target.value),U(1)},className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:""},"All statuses"),H.default.createElement("option",{value:"complete"},"Completed"),H.default.createElement("option",{value:"failed"},"Failed"),H.default.createElement("option",{value:"running"},"Running"),H.default.createElement("option",{value:"cancelled"},"Cancelled")),H.default.createElement("select",{value:C,onChange:L=>{S(L.target.value),U(1)},className:"w-full mt-2 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",title:"Rank these executions"},H.default.createElement("option",{value:"recent"},"Most recent"),H.default.createElement("option",{value:"longest"},"Longest running"),H.default.createElement("option",{value:"cost"},"Highest cost"),H.default.createElement("option",{value:"tokens"},"Most tokens"))),H.default.createElement("div",{className:"flex-1 overflow-auto"},M&&n.length===0?H.default.createElement("div",{className:"flex items-center justify-center h-32"},H.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?H.default.createElement(H.default.Fragment,null,n.map(L=>{let ye=L.source==="reported";return H.default.createElement("div",{key:L.id,onClick:()=>ce(L),title:ye?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!ye&&l?.id===L.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},H.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},H.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${q(L.status)}`},L.status),H.default.createElement("div",{className:"flex items-center gap-2"},H.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${ye?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},ye?"reported":"dashboard"),H.default.createElement("span",{className:"text-xs text-gray-400"},K(L.created_at||L.occurred_at)))),H.default.createElement("p",{className:"text-sm text-gray-700 truncate"},L.input_preview||L.input_prompt?.substring(0,60)||(ye?`${L.action_name||"execution"} \xB7 trace ${String(L.trace_id||"").slice(0,8)}`:"No input")),H.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},L.model&&H.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},L.model),H.default.createElement("span",{className:C==="longest"?"text-gray-700 font-medium":void 0},A(L.duration_ms)),!!L.tokens&&H.default.createElement("span",{className:C==="tokens"?"text-gray-700 font-medium":void 0},L.tokens," tokens"),L.cost!=null&&H.default.createElement("span",{className:C==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},I(L.cost))))}),G&&H.default.createElement("button",{onClick:()=>U(L=>L+1),disabled:M,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},M?"Loading...":"Load More")):H.default.createElement("div",{className:"p-8 text-center text-gray-400"},H.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},H.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})),H.default.createElement("p",null,"No conversations yet")))),H.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},H.default.createElement("div",{className:"px-4 py-2 bg-white border-b border-gray-100 flex items-center gap-1.5 text-xs text-gray-500"},H.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),H.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"||l?H.default.createElement(H.default.Fragment,null,H.default.createElement("button",{onClick:ge,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),H.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"?u?H.default.createElement(H.default.Fragment,null,H.default.createElement("button",{onClick:()=>Te(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),H.default.createElement("span",{className:"text-gray-300"},"/"),H.default.createElement("span",{className:"text-gray-900 font-medium"},_e)):H.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):H.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",l.id)):H.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),H.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},H.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},H.default.createElement("button",{onClick:()=>ie("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),H.default.createElement("button",{onClick:()=>ie("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),p==="run"&&l&&H.default.createElement("span",{className:`px-3 py-1 rounded-full text-sm font-medium ${q(l.status)}`},l.status)),p==="all"?H.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:L}=W();return H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},H.default.createElement("div",{className:"flex items-center gap-3"},H.default.createElement(At,{size:40}),H.default.createElement("div",null,H.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),H.default.createElement("p",{className:"text-xs text-gray-500"},u?`${_e} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),H.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},H.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),H.default.createElement("p",{className:"text-lg font-bold text-gray-900"},L.runs)),H.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),H.default.createElement("p",{className:"text-lg font-bold text-gray-900"},L.runs?Math.round(L.completed/L.runs*100):0,"%")),H.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),H.default.createElement("p",{className:"text-lg font-bold text-gray-900"},A(Math.round(L.avgDuration)))),H.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),H.default.createElement("p",{className:"text-lg font-bold text-gray-900"},L.tokens.toLocaleString()))))})(),H.default.createElement(Ni,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:Te})):l?H.default.createElement(H.default.Fragment,null,H.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},H.default.createElement("div",{className:"flex items-center space-x-3"},H.default.createElement(At,{size:40}),H.default.createElement("div",null,H.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",l.id),H.default.createElement("p",{className:"text-xs text-gray-500"},new Date(l.created_at).toLocaleString())))),H.default.createElement("div",{ref:T,className:"flex-1 overflow-auto p-6"},H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?H.default.createElement(ja,{messages:d,darkMode:!1}):H.default.createElement(ja,{darkMode:!1,messages:[{id:`run-${l.id}-input`,role:"user",content:l.input_prompt||l.input_preview,created_at:l.created_at},{id:`run-${l.id}-output`,role:"assistant",content:l.error_message||l.output||l.output_preview||"No response",created_at:l.completed_at||l.created_at}]}))),H.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},H.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},H.default.createElement("span",null,"Duration: ",A(l.duration_ms)),l.total_tokens&&H.default.createElement("span",null,"Tokens: ",l.total_tokens),l.input_tokens&&l.output_tokens&&H.default.createElement("span",null,"Input: ",l.input_tokens," / Output: ",l.output_tokens),l.trace_id&&H.default.createElement("a",{href:Xe(`/traces?trace=${l.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${l.trace_id} \u2014 open in Traces`},"trace:",l.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:L,totals:ye}=W();return L.length===0?H.default.createElement("div",{className:"flex-1 flex items-center justify-center"},H.default.createElement("div",{className:"text-center text-gray-400"},H.default.createElement(At,{size:100}),H.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):H.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},H.default.createElement("div",{className:"flex items-center gap-3"},H.default.createElement(At,{size:40}),H.default.createElement("div",null,H.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),H.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),H.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),H.default.createElement("p",{className:"text-xl font-bold text-gray-900"},ye.runs)),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),H.default.createElement("p",{className:"text-xl font-bold text-gray-900"},ye.runs?Math.round(ye.completed/ye.runs*100):0,"%")),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),H.default.createElement("p",{className:"text-xl font-bold text-gray-900"},A(Math.round(ye.avgDuration)))),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},H.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),H.default.createElement("p",{className:"text-xl font-bold text-gray-900"},ye.tokens.toLocaleString()))),ye.models.length>0&&H.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},H.default.createElement("span",{className:"text-gray-500"},"Models used:"),ye.models.map(xe=>H.default.createElement("span",{key:xe,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},xe))),i.length>0&&H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},H.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},H.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),H.default.createElement("div",{className:"divide-y divide-gray-100"},i.map(xe=>H.default.createElement("div",{key:xe.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer flex items-center justify-between gap-3",onClick:()=>Te(xe),title:"Open this session's interaction stream"},H.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:xe.display_name},H.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),H.default.createElement("span",{className:"text-sm text-gray-900 truncate"},xe.agent?.name||xe.agent_name),xe.action_name&&H.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 font-mono text-xs flex-shrink-0"},"#",xe.action_name)),H.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},H.default.createElement("span",null,xe.message_count," messages"),H.default.createElement("span",null,(xe.tokens?.total||0).toLocaleString()," tokens"),H.default.createElement("span",null,K(xe.last_activity_at))))))),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},H.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},H.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),H.default.createElement("select",{value:k,onChange:xe=>N(xe.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},H.default.createElement("option",{value:"recent"},"Most recent"),H.default.createElement("option",{value:"longest"},"Longest interactions"))),H.default.createElement("div",{className:"divide-y divide-gray-100"},L.map(xe=>H.default.createElement("div",{key:xe.key},H.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>_(we=>({...we,[xe.key]:!we[xe.key]})),title:"Show this configuration's runs"},H.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},H.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono text-xs"},xe.model||"unknown model"),H.default.createElement("span",{className:"text-xs text-gray-400 font-mono",title:xe.instructionsDigest?`sha:${xe.instructionsDigest}`:void 0},"instructions"," ",xe.instructionsDigest?[xe.instructionsVersion,xe.instructionsCodename||xe.instructionsDigest].filter(Boolean).join(" \xB7 "):"n/a")),xe.instructionsPreview&&H.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},xe.instructionsPreview),H.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},H.default.createElement("span",null,xe.count," run",xe.count>1?"s":""),H.default.createElement("span",{className:xe.failed>0?"text-red-500":"text-green-600"},xe.count?Math.round(xe.completed/xe.count*100):0,"% success"),H.default.createElement("span",null,"avg ",A(Math.round(xe.avgDuration))),H.default.createElement("span",null,"avg ",Math.round(xe.avgTokens).toLocaleString()," tokens"),H.default.createElement("span",null,"last ",K(xe.latest.created_at)))),D[xe.key]&&H.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},xe.sortedRuns.map(we=>H.default.createElement("div",{key:we.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>se(we.id),title:"Open this run's interaction"},H.default.createElement("p",{className:"text-xs text-gray-700 truncate"},we.input_preview||"No input"),H.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},H.default.createElement("span",{className:we.status==="failed"?"text-red-500":""},we.status),H.default.createElement("span",null,A(we.duration_ms)),we.tokens&&H.default.createElement("span",null,we.tokens.toLocaleString()," tokens"),H.default.createElement("span",null,K(we.created_at)))))))))))})()))}var Ce=Q(R());var sQ={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function BS({onUseTemplate:e,onClose:t}){let[r,n]=(0,Ce.useState)([]),[a,i]=(0,Ce.useState)([]),[o,l]=(0,Ce.useState)(""),[s,u]=(0,Ce.useState)(null),[c,d]=(0,Ce.useState)(!0),[f,p]=(0,Ce.useState)(!1);(0,Ce.useEffect)(()=>{g()},[o]);let g=async()=>{d(!0);try{let x=new URLSearchParams;o&&x.append("category",o);let v=await(await fetch(`/api/templates?${x}`)).json();n(v.templates),i(v.categories)}catch(x){console.error("Failed to load templates:",x)}finally{d(!1)}},h=async x=>{p(!0);try{let m=await fetch(`/api/templates/${x.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:x.name})});if(m.ok){let v=await m.json();e(v.agent)}}catch(m){console.error("Failed to create agent from template:",m)}finally{p(!1)}};return Ce.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},Ce.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},Ce.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},Ce.default.createElement("div",null,Ce.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),Ce.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),Ce.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},Ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),Ce.default.createElement("div",{className:"flex-1 flex overflow-hidden"},Ce.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},Ce.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),Ce.default.createElement("div",{className:"space-y-1"},Ce.default.createElement("button",{onClick:()=>l(""),className:`w-full text-left px-3 py-2 rounded-lg text-sm transition-colors ${o?"text-gray-600 hover:bg-gray-50":"bg-red-50 text-red-600"}`},"All Templates"),a.map(x=>Ce.default.createElement("button",{key:x,onClick:()=>l(x),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${o===x?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},Ce.default.createElement("span",null,sQ[x]||"\u{1F4E6}"),Ce.default.createElement("span",{className:"capitalize"},x))))),Ce.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?Ce.default.createElement("div",{className:"flex items-center justify-center h-full"},Ce.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?Ce.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(x=>Ce.default.createElement("div",{key:x.id,onClick:()=>u(x),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${s?.id===x.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},Ce.default.createElement("div",{className:"flex items-start space-x-3"},Ce.default.createElement("div",{className:"flex-shrink-0"},Ce.default.createElement(At,{size:60})),Ce.default.createElement("div",{className:"flex-1 min-w-0"},Ce.default.createElement("div",{className:"flex items-center space-x-2"},Ce.default.createElement("span",{className:"text-lg"},x.icon),Ce.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},x.name)),Ce.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},x.description),Ce.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},Ce.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},x.category),x.featured&&Ce.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):Ce.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),s&&Ce.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},Ce.default.createElement("div",{className:"flex justify-center mb-4"},Ce.default.createElement(At,{size:120})),Ce.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},s.name),Ce.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},s.description),Ce.default.createElement("div",{className:"mt-6 space-y-4"},Ce.default.createElement("div",null,Ce.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),Ce.default.createElement("p",{className:"text-sm text-gray-900"},s.provider," / ",s.model)),s.tools?.length>0&&Ce.default.createElement("div",null,Ce.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),Ce.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},s.tools.map(x=>Ce.default.createElement("span",{key:x,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},x)))),Ce.default.createElement("div",null,Ce.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),Ce.default.createElement("p",{className:"text-sm text-gray-900"},s.usage_count," agents created"))),Ce.default.createElement("button",{onClick:()=>h(s),disabled:f,className:"w-full mt-6 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50"},f?"Creating...":"Use This Template")))))}var Ae=Q(R());function $S({currentView:e,onNavigate:t,agentCount:r,account:n,user:a,gemVersion:i}){let{darkMode:o}=Ze(),[l,s]=(0,Ae.useState)(!1),u=(0,Ae.useRef)(null);(0,Ae.useEffect)(()=>{function x(m){u.current&&!u.current.contains(m.target)&&s(!1)}return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[]);let c=n?.name||"My Workspace",d=a?.name||a?.email?.split("@")[0]||"User",f=[{id:"list",label:"Agents",icon:$t.nav.agents,badge:r},{id:"builder",label:"New Agent",icon:$t.nav.newAgent},{id:"sandbox",label:"Run Agents",icon:$t.nav.demo,highlight:!0}],p=[{id:"traces",label:"Traces",icon:$t.nav.traces},{id:"interactions",label:"Interactions",icon:$t.nav.interactions},{id:"tools",label:"Tools",icon:$t.nav.tools},{id:"mcp",label:"MCP Services",icon:$t.nav.mcp},{id:"metrics",label:"Metrics",icon:$t.nav.metrics},{id:"evaluations",label:"Evaluations",icon:$t.nav.evaluations},{id:"replay",label:"Session Replay",icon:$t.nav.replay}],g=[{id:"organization",label:"Organization",icon:"\u{1F3E2}"},{id:"settings",label:"Settings",icon:"\u2699\uFE0F"}],h=({item:x})=>Ae.default.createElement("button",{onClick:()=>t(x.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${x.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===x.id?o?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===x.id?"#ef4444":o?"#d1d5db":"#374151"},onMouseEnter:m=>{e!==x.id&&(m.currentTarget.style.backgroundColor=o?"#252525":"#f3f4f6")},onMouseLeave:m=>{e!==x.id&&(m.currentTarget.style.backgroundColor="transparent")}},Ae.default.createElement("div",{className:"flex items-center space-x-3"},Ae.default.createElement("span",{style:{fontFamily:Ee.mono,fontSize:"12px",width:"20px",textAlign:"center"}},x.icon),Ae.default.createElement("span",{className:"font-medium"},x.label)),x.badge!==void 0&&Ae.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===x.id?"#fee2e2":o?"#2a2a2a":"#f3f4f6",color:e===x.id?"#ef4444":o?"#d1d5db":"#4b5563"}},x.badge));return Ae.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:o?"#1a1a1a":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"}},Ae.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:o?"#2a2a2a":"#e5e7eb"},ref:u},Ae.default.createElement("button",{onClick:()=>s(!l),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:l?o?"#252525":"#f3f4f6":"transparent"}},Ae.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},Ae.default.createElement(At,{size:28}),Ae.default.createElement("span",{className:`font-semibold truncate ${o?"text-white":"text-gray-900"}`},c)),Ae.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${l?"rotate-180":""}`,style:{color:o?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ae.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),l&&Ae.default.createElement("div",{className:"absolute left-4 right-4 top-14 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:o?"#1a1a1a":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"}},Ae.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},Ae.default.createElement("div",{className:"flex items-center space-x-3"},Ae.default.createElement(At,{size:32}),Ae.default.createElement("div",{className:"min-w-0"},Ae.default.createElement("div",{className:`font-medium truncate ${o?"text-white":"text-gray-900"}`},c)))),Ae.default.createElement("div",{className:"py-1"},Ae.default.createElement("button",{onClick:()=>{t("settings"),s(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${o?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},Ae.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ae.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),Ae.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),Ae.default.createElement("span",null,"Settings")),Ae.default.createElement("button",{onClick:()=>{t("organization"),s(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${o?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},Ae.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ae.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})),Ae.default.createElement("span",null,"Organization"))),Ae.default.createElement("div",{className:"border-t py-1",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},Ae.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${o?"text-gray-300":"text-gray-700"}`},Ae.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ae.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),Ae.default.createElement("span",{className:"text-sm"},d))))),Ae.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},Ae.default.createElement("div",{className:"space-y-1"},f.map(x=>Ae.default.createElement(h,{key:x.id,item:x}))),Ae.default.createElement("div",{className:"pt-4"},Ae.default.createElement("div",{className:"px-4 pb-2"},Ae.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${o?"text-gray-500":"text-gray-400"}`},"Observability")),Ae.default.createElement("div",{className:"space-y-1"},p.map(x=>Ae.default.createElement(h,{key:x.id,item:x})))),Ae.default.createElement("div",{className:"pt-4"},Ae.default.createElement("div",{className:"px-4 pb-2"},Ae.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${o?"text-gray-500":"text-gray-400"}`},"Workspace")),Ae.default.createElement("div",{className:"space-y-1"},g.map(x=>Ae.default.createElement(h,{key:x.id,item:x}))))),Ae.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},Ae.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${o?"text-gray-500":"text-gray-400"}`},"Resources"),Ae.default.createElement("div",{className:"space-y-2"},Ae.default.createElement("a",{href:"https://docs.activeagents.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${o?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},Ae.default.createElement("span",{style:{fontFamily:Ee.mono,fontSize:"12px",width:"20px",textAlign:"center"}},$t.nav.docs),Ae.default.createElement("span",null,"Documentation")),Ae.default.createElement("a",{href:"https://github.com/activeagents/activeagent",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${o?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},Ae.default.createElement("span",{style:{fontFamily:Ee.mono,fontSize:"12px",width:"20px",textAlign:"center"}},$t.nav.github),Ae.default.createElement("span",null,"GitHub")))),Ae.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:o?"#2a2a2a":"#e5e7eb"}},Ae.default.createElement("div",{className:`text-xs ${o?"text-gray-500":"text-gray-400"}`},"Active Agent ",i?`v${i}`:"")))}var Ye=Q(R());function US({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=Ze(),[a,i]=(0,Ye.useState)(!1),o=(0,Ye.useRef)(null);(0,Ye.useEffect)(()=>{function c(d){o.current&&!o.current.contains(d.target)&&i(!1)}return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[]);let l=()=>{let c=document.querySelector('meta[name="csrf-token"]')?.content,d=document.createElement("form");d.method="POST",d.action="/session";let f=document.createElement("input");f.type="hidden",f.name="_method",f.value="delete",d.appendChild(f);let p=document.createElement("input");p.type="hidden",p.name="authenticity_token",p.value=c,d.appendChild(p),document.body.appendChild(d),d.submit()},s=e?.name||e?.email?.split("@")[0]||"User",u=s.charAt(0).toUpperCase();return Ye.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},Ye.default.createElement("div",{className:"flex items-center space-x-4"}),Ye.default.createElement("div",{className:"flex items-center space-x-4"},Ye.default.createElement("button",{onClick:n,className:"p-2 rounded-lg transition-colors",style:{backgroundColor:r?"#252525":"#f3f4f6",color:r?"#fbbf24":"#4b5563"},title:r?"Switch to light mode":"Switch to dark mode"},r?Ye.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},Ye.default.createElement("path",{fillRule:"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z",clipRule:"evenodd"})):Ye.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},Ye.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),Ye.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},Ye.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),Ye.default.createElement("span",null,"Connected")),Ye.default.createElement("div",{className:"relative",ref:o},Ye.default.createElement("button",{onClick:()=>i(!a),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:a?r?"#252525":"#f3f4f6":"transparent"}},Ye.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},Ye.default.createElement("span",{className:"text-red-600 font-medium text-sm"},u))),a&&Ye.default.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},Ye.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Ye.default.createElement("div",{className:"flex items-center space-x-3"},Ye.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},Ye.default.createElement("span",{className:"text-red-600 font-medium"},u)),Ye.default.createElement("div",null,Ye.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},s),Ye.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),Ye.default.createElement("div",{className:"py-1"},Ye.default.createElement("button",{onClick:l,className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${r?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},Ye.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ye.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})),Ye.default.createElement("span",null,"Sign out")))))))}var he=Q(R());var uQ=6e4,RP=e=>{if(!e||e.length<2)return"";let t=Math.max(...e,1),r=100/(e.length-1);return e.map((n,a)=>`${(a*r).toFixed(1)},${(28-n/t*26+1).toFixed(1)}`).join(" ")},HS=[{value:"popular",label:"Requests",column:"requests"},{value:"tokens",label:"Tokens",column:"tokens"},{value:"cost",label:"Cost",column:"cost"},{value:"longest",label:"Avg Duration",column:"avg_duration_ms"},{value:"errors",label:"Errors",column:"errors"}];function VS(){let{darkMode:e}=Ze(),[t,r]=(0,he.useState)(null),[n,a]=(0,he.useState)(!0),[i,o]=(0,he.useState)(null),[l,s]=(0,he.useState)("popular"),u=(0,he.useCallback)(async()=>{try{let _=await fetch(`/api/metrics?hours=24&sort=${l}`);if(!_.ok)throw new Error(`Request failed (${_.status})`);let M=await _.json();r(M),o(null)}catch(_){o(_.message)}finally{a(!1)}},[l]);if((0,he.useEffect)(()=>{u();let _=setInterval(u,uQ);return()=>clearInterval(_)},[u]),n)return he.default.createElement("div",{className:"flex items-center justify-center h-64"},he.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=_=>_==null?"0":_>=1e6?(_/1e6).toFixed(1)+"M":_>=1e3?(_/1e3).toFixed(1)+"K":_.toString(),d=_=>_?_<.01?"<$0.01":`$${_.toFixed(2)}`:"$0.00",f={bg:e?"transparent":"#f9fafb",cardBg:e?"rgba(255,255,255,0.05)":"#ffffff",border:e?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:e?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:e?"#ffffff":"#111827",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",textCell:e?"rgba(255,255,255,0.7)":"#4b5563",trendUp:"#16a34a",trendDown:"#dc2626",tokenIn:"#2563eb",tokenOut:"#7c3aed",tokenThinking:"#d97706",badgeBg:e?"rgba(239, 68, 68, 0.2)":"#fef2f2",badgeText:"#ef4444"};if(i||!t)return he.default.createElement("div",{style:{padding:"24px"}},he.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:f.textPrimary,margin:0}},"Metrics"),he.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:f.badgeBg,borderRadius:"8px",color:f.badgeText,fontSize:"14px"}},"Failed to load metrics",i?`: ${i}`:""));let{summary:p,hourly_requests:g=[],by_agent:h=[]}=t,x=g.map(_=>_.count),m=g.map(_=>_.avg_latency_ms),v=Math.max(...x,1),y=p.total_requests===0,b=(_,M=!1)=>{if(_==null)return null;let z=_>=0;return he.default.createElement("div",{style:{fontSize:"13px",color:(M?!z:z)?f.trendUp:f.trendDown,marginTop:"8px"}},z?"\u2191":"\u2193"," ",Math.abs(_),"% vs previous 24h")},k=HS.find(_=>_.value===l)?.column,N=_=>({padding:"12px 0",textAlign:"right",color:f.textCell,fontWeight:_===k?"600":"400"}),D=({label:_,children:M,trend:z,sparkline:$,sparklineColor:U})=>he.default.createElement("div",{style:{background:f.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${f.border}`}},he.default.createElement("div",{style:{fontSize:"11px",color:f.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},_),M,z,$&&he.default.createElement("div",{style:{marginTop:"16px",height:"40px"}},he.default.createElement("svg",{viewBox:"0 0 100 30",style:{width:"100%",height:"100%"},preserveAspectRatio:"none"},he.default.createElement("polyline",{points:$,fill:"none",stroke:U,strokeWidth:"2"}))));return he.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:f.bg}},he.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:`1px solid ${f.border}`,marginBottom:"16px",paddingBottom:"16px"}},he.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:f.textPrimary,margin:0}},"Metrics"),he.default.createElement("p",{style:{fontSize:"14px",color:f.textSecondary,marginTop:"4px"}},"Requests, latency, errors and token usage \u2014 last 24 hours")),he.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},he.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:"16px",marginBottom:"16px"}},he.default.createElement(D,{label:"Total Requests",trend:b(p.requests_change),sparkline:RP(x),sparklineColor:"#ef4444"},he.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},c(p.total_requests))),he.default.createElement(D,{label:"Avg Latency",trend:b(p.latency_change,!0),sparkline:RP(m),sparklineColor:"#22c55e"},he.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},p.avg_latency_ms,he.default.createElement("span",{style:{fontSize:"14px",color:f.textMuted,marginLeft:"4px"}},"ms"))),he.default.createElement(D,{label:"Error Rate"},he.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:p.error_rate>5?"#ef4444":f.textPrimary,fontFamily:"monospace"}},p.error_rate,he.default.createElement("span",{style:{fontSize:"14px",color:f.textMuted,marginLeft:"4px"}},"%")),he.default.createElement("div",{style:{fontSize:"13px",color:f.textSecondary,marginTop:"8px"}},p.errors," error",p.errors===1?"":"s"," in period")),he.default.createElement(D,{label:"Total Cost"},he.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},d(p.total_cost)),he.default.createElement("div",{style:{fontSize:"13px",color:f.textSecondary,marginTop:"8px"}},"estimated, this period")),he.default.createElement(D,{label:"Tokens Used"},he.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},c(p.tokens_used)),he.default.createElement("div",{style:{fontSize:"13px",marginTop:"8px",display:"flex",gap:"12px",flexWrap:"wrap"}},he.default.createElement("span",{style:{color:f.tokenIn}},"\u2193 ",c(p.tokens_input)),he.default.createElement("span",{style:{color:f.tokenOut}},"\u2191 ",c(p.tokens_output)),p.tokens_thinking>0&&he.default.createElement("span",{style:{color:f.tokenThinking}},"\u{1F9E0} ",c(p.tokens_thinking)))),he.default.createElement(D,{label:"Active Agents"},he.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",color:f.textPrimary,fontFamily:"monospace"}},p.unique_agents),he.default.createElement("div",{style:{fontSize:"13px",color:f.textSecondary,marginTop:"8px"}},"with traffic in period"))),he.default.createElement("div",{style:{background:f.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${f.border}`,marginBottom:"16px"}},he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"16px"}},he.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:f.textPrimary}},"Requests / Hour"),he.default.createElement("span",{style:{fontSize:"13px",color:f.textSecondary}},"Last 24h")),he.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",justifyContent:"space-between",height:"120px",gap:"4px"}},g.map((_,M)=>he.default.createElement("div",{key:M,style:{flex:1,height:`${Math.max(_.count/v*100,2)}%`,background:_.active?"linear-gradient(180deg, #ef4444 0%, #dc2626 100%)":"linear-gradient(180deg, #fca5a5 0%, #f87171 100%)",opacity:_.count===0&&!_.active?.25:1,borderRadius:"4px 4px 0 0",transition:"all 0.2s ease"},title:`${_.count} requests at ${_.hour}`}))),he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginTop:"8px"}},g.map((_,M)=>he.default.createElement("span",{key:M,style:{flex:1,textAlign:"center",fontSize:"10px",color:f.textMuted}},M%4===0||_.active?_.active?"Now":_.hour:"")))),he.default.createElement("div",{style:{background:f.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${f.border}`}},he.default.createElement("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"16px",gap:"12px",flexWrap:"wrap"}},he.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:f.textPrimary,margin:0}},"Agent Statistics"),he.default.createElement("span",{style:{fontSize:"12px",color:f.textMuted}},"Ranked by ",HS.find(_=>_.value===l)?.label.toLowerCase()," \u2014 click a column to change")),h.length===0?he.default.createElement("div",{style:{textAlign:"center",padding:"24px 0",color:f.textSecondary,fontSize:"14px"}},y?"No traffic yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No per-agent data for this period"):he.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},he.default.createElement("thead",null,he.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:f.textSecondary,borderBottom:`1px solid ${f.border}`}},he.default.createElement("th",{style:{paddingBottom:"12px",fontWeight:"500"}},"Agent"),HS.map(_=>{let M=l===_.value;return he.default.createElement("th",{key:_.value,style:{paddingBottom:"12px",fontWeight:"500",textAlign:"right"}},he.default.createElement("button",{onClick:()=>s(_.value),title:`Rank agents by ${_.label.toLowerCase()}`,style:{background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit",fontWeight:M?"600":"500",color:M?f.textPrimary:f.textSecondary}},_.label,M?" \u2193":""))}))),he.default.createElement("tbody",null,h.map((_,M)=>he.default.createElement("tr",{key:_.name,style:{borderBottom:M0?f.badgeText:f.textCell}},_.errors))))))))}var ue=Q(R());var cQ=6e4,dQ=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],ej={mcp:{light:"#7c3aed",dark:"#c4b5fd",bgLight:"#f5f3ff",bgDark:"rgba(124,58,237,0.15)"},builtin:{light:"#2563eb",dark:"#93c5fd",bgLight:"#eff6ff",bgDark:"rgba(37,99,235,0.15)"},agent:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.12)"}},Uf=e=>e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e),tj=e=>e==null?"\u2014":e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,fQ=e=>{if(!e)return"\u2014";let t=new Date(e),r=Math.round((Date.now()-t.getTime())/6e4);if(r<1)return"just now";if(r<60)return`${r}m ago`;let n=Math.round(r/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`};function FS({onOpenServer:e}){let{darkMode:t}=Ze(),[r,n]=(0,ue.useState)(null),[a,i]=(0,ue.useState)(!0),[o,l]=(0,ue.useState)(null),[s,u]=(0,ue.useState)("all"),[c,d]=(0,ue.useState)(""),[f,p]=(0,ue.useState)(168),[g,h]=(0,ue.useState)(null),x=(0,ue.useCallback)(async()=>{try{let M=new URLSearchParams({hours:String(f)});s!=="all"&&M.set("origin",s),c.trim()&&M.set("q",c.trim());let z=await fetch(`/api/tools?${M}`);if(!z.ok)throw new Error(`Request failed (${z.status})`);n(await z.json()),l(null)}catch(M){l(M.message)}finally{i(!1)}},[s,c,f]);(0,ue.useEffect)(()=>{let M=setTimeout(x,c?250:0);return()=>clearTimeout(M)},[x,c]),(0,ue.useEffect)(()=>{let M=setInterval(x,cQ);return()=>clearInterval(M)},[x]);let m={bg:t?"transparent":"#f9fafb",cardBg:t?"rgba(255,255,255,0.05)":"#ffffff",border:t?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:t?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af",textCell:t?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:t?"rgba(239,68,68,0.2)":"#fef2f2",inputBg:t?"rgba(255,255,255,0.06)":"#ffffff"},v=M=>{let z=ej[M]||ej.agent;return{fg:t?z.dark:z.light,bg:t?z.bgDark:z.bgLight}};if(a&&!r)return ue.default.createElement("div",{className:"flex items-center justify-center h-64"},ue.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(o&&!r)return ue.default.createElement("div",{style:{padding:"24px"}},ue.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:m.textPrimary,margin:0}},"Tools"),ue.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:m.errorBg,borderRadius:"8px",color:m.error,fontSize:"14px"}},"Failed to load tools: ",o));let{tools:y=[],summary:b={},origins:k={},sources:N={}}=r||{},D=!N.telemetry&&!N.generations&&!N.messages&&!N.declared,_=({label:M,value:z,hint:$,tone:U})=>ue.default.createElement("div",{style:{background:m.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${m.border}`}},ue.default.createElement("div",{style:{fontSize:"11px",color:m.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},M),ue.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:U||m.textPrimary}},z),$&&ue.default.createElement("div",{style:{fontSize:"13px",color:m.textSecondary,marginTop:"8px"}},$));return ue.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:m.bg}},ue.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${m.border}`,marginBottom:"16px"}},ue.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},ue.default.createElement("div",null,ue.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:m.textPrimary,margin:0}},"Tools"),ue.default.createElement("p",{style:{fontSize:"14px",color:m.textSecondary,marginTop:"4px"}},"Detected from telemetry spans, generation request bodies, and agent records \u2014 nothing to register by hand")),ue.default.createElement("div",{style:{display:"flex",gap:"4px"}},dQ.map(M=>ue.default.createElement("button",{key:M.value,onClick:()=>p(M.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${f===M.value?"#ef4444":m.border}`,background:f===M.value?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:f===M.value?"#ef4444":m.textSecondary}},M.label))))),ue.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},ue.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},ue.default.createElement(_,{label:"Tools Detected",value:Uf(b.total_tools),hint:`${b.active_tools||0} called in this window`}),ue.default.createElement(_,{label:"Tool Calls",value:Uf(b.total_calls),hint:`${tj(b.avg_duration_ms)} average`}),ue.default.createElement(_,{label:"Error Rate",value:`${b.error_rate||0}%`,tone:b.error_rate>5?m.error:m.textPrimary,hint:`${b.total_errors||0} failed call${b.total_errors===1?"":"s"}`}),ue.default.createElement(_,{label:"From MCP",value:Uf(b.mcp_tools),hint:`across ${b.mcp_servers_active||0} active server${b.mcp_servers_active===1?"":"s"}`}),ue.default.createElement(_,{label:"Never Called",value:Uf(b.unused_tools),hint:"offered or configured, unused"})),ue.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap",alignItems:"center"}},Object.entries(k).map(([M,z])=>ue.default.createElement("button",{key:M,onClick:()=>u(M),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${s===M?"#ef4444":m.border}`,background:s===M?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:s===M?"#ef4444":m.textSecondary}},z)),ue.default.createElement("input",{value:c,onChange:M=>d(M.target.value),placeholder:"Filter by name\u2026",style:{marginLeft:"auto",padding:"6px 12px",fontSize:"13px",borderRadius:"6px",minWidth:"200px",border:`1px solid ${m.border}`,background:m.inputBg,color:m.textPrimary}})),ue.default.createElement("div",{style:{background:m.cardBg,borderRadius:"12px",border:`1px solid ${m.border}`,overflow:"hidden"}},y.length===0?ue.default.createElement("div",{style:{textAlign:"center",padding:"48px 24px",color:m.textSecondary,fontSize:"14px"}},D?"No tool activity yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No tools match these filters"):ue.default.createElement("div",{style:{overflowX:"auto"}},ue.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:"760px"}},ue.default.createElement("thead",null,ue.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:m.textSecondary,borderBottom:`1px solid ${m.border}`}},ue.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Tool"),ue.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Source"),ue.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Calls"),ue.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Errors"),ue.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Avg"),ue.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Last seen"))),ue.default.createElement("tbody",null,y.map((M,z)=>{let $=v(M.origin),U=g===M.name;return ue.default.createElement(ue.default.Fragment,{key:M.name},ue.default.createElement("tr",{onClick:()=>h(U?null:M.name),style:{borderBottom:z{G.stopPropagation(),M.mcp_server&&e&&e(M.mcp_server)},style:{fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:"none",background:$.bg,color:$.fg,fontFamily:"monospace",cursor:M.mcp_server&&e?"pointer":"default"},title:M.mcp_server?`Open ${M.mcp_server} in MCP Services`:M.source_label},M.source_label)),ue.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:m.textCell,fontFamily:"monospace"}},Uf(M.calls)),ue.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",fontFamily:"monospace",color:M.errors>0?m.error:m.textCell}},M.errors),ue.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:m.textCell,fontFamily:"monospace"}},tj(M.avg_duration_ms)),ue.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:m.textMuted,fontSize:"13px"}},fQ(M.last_seen))),U&&ue.default.createElement("tr",{style:{borderBottom:zue.default.createElement("span",{key:M,style:{color:N[M]?m.textSecondary:m.textMuted,opacity:N[M]?1:.5}},N[M]?"\u25CF":"\u25CB"," ",z)))))}function pQ({tool:e,colors:t,tone:r,darkMode:n}){let a=({label:i,children:o})=>ue.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},ue.default.createElement("span",{style:{color:t.textMuted,minWidth:"108px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},i),ue.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},o));return ue.default.createElement("div",{style:{display:"grid",gap:"8px",padding:"12px 16px",borderRadius:"8px",background:n?"rgba(0,0,0,0.25)":"#ffffff",border:`1px solid ${t.border}`}},ue.default.createElement(a,{label:"Full name"},ue.default.createElement("code",{style:{fontFamily:"monospace"}},e.name)),e.description&&ue.default.createElement(a,{label:"Description"},e.description),ue.default.createElement(a,{label:"Parameters"},e.parameters?.length>0?ue.default.createElement("code",{style:{fontFamily:"monospace",color:r.fg}},e.parameters.join(", ")):ue.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),ue.default.createElement(a,{label:"Agents"},e.agents?.length>0?e.agents.join(", "):ue.default.createElement("span",{style:{color:t.textMuted}},"\u2014")),e.configured_by?.length>0&&ue.default.createElement(a,{label:"Configured by"},e.configured_by.join(", ")),ue.default.createElement(a,{label:"Call breakdown"},ue.default.createElement("span",{style:{fontFamily:"monospace"}},e.traced_calls," traced \xB7 ",e.requested," requested \xB7 ",e.results," results")),e.sample_arguments&&ue.default.createElement(a,{label:"Last arguments"},ue.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",color:t.textMuted}},e.sample_arguments)),e.last_error&&ue.default.createElement(a,{label:"Last error"},ue.default.createElement("span",{style:{color:t.error}},e.last_error)),ue.default.createElement(a,{label:"Detected from"},e.detected_from?.join(", ")||"\u2014"))}var me=Q(R());var mQ=6e4,gQ=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],vQ=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],rj={active:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.15)"},configured:{light:"#b45309",dark:"#fcd34d",bgLight:"#fffbeb",bgDark:"rgba(245,158,11,0.15)"},available:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"},idle:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"}},Hf=e=>e==null?"0":e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e);function WS({focusServer:e,onOpenTools:t}){let{darkMode:r}=Ze(),[n,a]=(0,me.useState)(null),[i,o]=(0,me.useState)(!0),[l,s]=(0,me.useState)(null),[u,c]=(0,me.useState)("all"),[d,f]=(0,me.useState)(168),[p,g]=(0,me.useState)(e||null),[h,x]=(0,me.useState)(null),[m,v]=(0,me.useState)(null),y=(0,me.useCallback)(async()=>{try{let j=await fetch(`/api/mcp_servers?hours=${d}`);if(!j.ok)throw new Error(`Request failed (${j.status})`);a(await j.json()),s(null)}catch(j){s(j.message)}finally{o(!1)}},[d]);(0,me.useEffect)(()=>{y();let j=setInterval(y,mQ);return()=>clearInterval(j)},[y]),(0,me.useEffect)(()=>{e&&g(e)},[e]);let b={bg:r?"transparent":"#f9fafb",cardBg:r?"rgba(255,255,255,0.05)":"#ffffff",border:r?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:r?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:r?"#ffffff":"#111827",textSecondary:r?"rgba(255,255,255,0.6)":"#6b7280",textMuted:r?"rgba(255,255,255,0.4)":"#9ca3af",textCell:r?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:r?"rgba(239,68,68,0.2)":"#fef2f2",codeBg:r?"rgba(0,0,0,0.35)":"#f9fafb"},k=j=>{let V=rj[j]||rj.available;return{fg:r?V.dark:V.light,bg:r?V.bgDark:V.bgLight}},N=async j=>{x(j.key),v(null);try{let V=await fetch(`/api/mcp_servers/${encodeURIComponent(j.key)}/launch`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":document.querySelector('meta[name="csrf-token"]')?.content||""}}),w=await V.json();if(!V.ok)throw new Error(w.reason||w.error||`Launch failed (${V.status})`);v({kind:"ok",text:`${j.name} is starting in a sandbox (${w.sandbox.session_id.slice(0,8)}\u2026)`}),y()}catch(V){v({kind:"error",text:V.message})}finally{x(null)}};if(i&&!n)return me.default.createElement("div",{className:"flex items-center justify-center h-64"},me.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(l&&!n)return me.default.createElement("div",{style:{padding:"24px"}},me.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:b.textPrimary,margin:0}},"MCP Services"),me.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:b.errorBg,borderRadius:"8px",color:b.error,fontSize:"14px"}},"Failed to load MCP services: ",l));let{servers:D=[],summary:_={},sandboxes:M=[],statuses:z={}}=n||{},$=u==="all"?D:D.filter(j=>j.status===u),U=new Set(M.flatMap(j=>j.mcp_servers||[])),G=({label:j,value:V,hint:w})=>me.default.createElement("div",{style:{background:b.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${b.border}`}},me.default.createElement("div",{style:{fontSize:"11px",color:b.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},j),me.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:b.textPrimary}},V),w&&me.default.createElement("div",{style:{fontSize:"13px",color:b.textSecondary,marginTop:"8px"}},w));return me.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:b.bg}},me.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${b.border}`,marginBottom:"16px"}},me.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},me.default.createElement("div",null,me.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:b.textPrimary,margin:0}},"MCP Services"),me.default.createElement("p",{style:{fontSize:"14px",color:b.textSecondary,marginTop:"4px"}},"Servers detected from your agents' traffic, plus the defaults you can connect or run in a sandbox")),me.default.createElement("div",{style:{display:"flex",gap:"4px"}},gQ.map(j=>me.default.createElement("button",{key:j.value,onClick:()=>f(j.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${d===j.value?"#ef4444":b.border}`,background:d===j.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:d===j.value?"#ef4444":b.textSecondary}},j.label))))),me.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},me.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},me.default.createElement(G,{label:"Active",value:Hf(_.active),hint:"called in this window"}),me.default.createElement(G,{label:"Configured",value:Hf(_.configured),hint:"declared, no traffic yet"}),me.default.createElement(G,{label:"Available",value:Hf(_.available),hint:"defaults you can connect"}),me.default.createElement(G,{label:"Tool Calls",value:Hf(_.total_calls),hint:"through MCP servers"})),m&&me.default.createElement("div",{style:{marginBottom:"16px",padding:"12px 16px",borderRadius:"8px",fontSize:"14px",background:m.kind==="error"?b.errorBg:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:m.kind==="error"?b.error:r?"#86efac":"#15803d"}},m.text),me.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap"}},vQ.map(j=>me.default.createElement("button",{key:j.value,onClick:()=>c(j.value),title:z[j.value]||"Every MCP service known to this workspace",style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${u===j.value?"#ef4444":b.border}`,background:u===j.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:u===j.value?"#ef4444":b.textSecondary}},j.label))),me.default.createElement("div",{style:{display:"grid",gap:"12px"}},$.length===0?me.default.createElement("div",{style:{background:b.cardBg,borderRadius:"12px",border:`1px solid ${b.border}`,textAlign:"center",padding:"48px 24px",color:b.textSecondary,fontSize:"14px"}},"No MCP services in this state"):$.map(j=>{let V=k(j.status),w=p===j.key,O=U.has(j.key);return me.default.createElement("div",{key:j.key,style:{background:b.cardBg,borderRadius:"12px",border:`1px solid ${w?V.fg:b.border}`,overflow:"hidden"}},me.default.createElement("div",{onClick:()=>g(w?null:j.key),style:{padding:"16px 20px",cursor:"pointer",display:"flex",alignItems:"center",gap:"16px",flexWrap:"wrap"}},me.default.createElement("div",{style:{flex:1,minWidth:"220px"}},me.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},me.default.createElement("span",{style:{fontSize:"15px",fontWeight:"600",color:b.textPrimary}},j.name),me.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:V.bg,color:V.fg,textTransform:"uppercase",letterSpacing:"0.04em"}},j.status),j.first_party&&me.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(239,68,68,0.15)":"#fef2f2",color:"#ef4444"}},"first-party"),!j.known&&me.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:b.borderLight,color:b.textMuted},title:"Seen in your traffic but not in the platform catalog"},"undocumented"),O&&me.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:r?"#86efac":"#15803d"}},"\u25CF sandbox running")),j.description&&me.default.createElement("div",{style:{fontSize:"13px",color:b.textSecondary,marginTop:"4px"}},j.description)),me.default.createElement("div",{style:{display:"flex",gap:"24px",alignItems:"center"}},me.default.createElement("div",{style:{textAlign:"right"}},me.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:b.textPrimary}},Hf(j.calls)),me.default.createElement("div",{style:{fontSize:"11px",color:b.textMuted}},"calls")),me.default.createElement("div",{style:{textAlign:"right"}},me.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:j.errors>0?b.error:b.textPrimary}},j.errors||0),me.default.createElement("div",{style:{fontSize:"11px",color:b.textMuted}},"errors")),j.launchable&&me.default.createElement("button",{onClick:E=>{E.stopPropagation(),N(j)},disabled:h===j.key,style:{padding:"8px 14px",fontSize:"13px",borderRadius:"6px",border:"none",background:h===j.key?b.borderLight:"#ef4444",color:h===j.key?b.textMuted:"#ffffff",cursor:h===j.key?"wait":"pointer",fontWeight:"500",whiteSpace:"nowrap"},title:`Start ${j.name} in a sandbox session`},h===j.key?"Starting\u2026":O?"Start another":"Start in sandbox"))),w&&me.default.createElement(hQ,{server:j,colors:b,tone:V,onOpenTools:t}))})),M.length>0&&me.default.createElement("div",{style:{marginTop:"24px",background:b.cardBg,borderRadius:"12px",border:`1px solid ${b.border}`,padding:"20px"}},me.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:b.textPrimary,margin:"0 0 12px 0"}},"Running sandboxes"),me.default.createElement("div",{style:{display:"grid",gap:"8px"}},M.map(j=>me.default.createElement("div",{key:j.session_id,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontSize:"13px",color:b.textCell,flexWrap:"wrap"}},me.default.createElement("span",{style:{fontFamily:"monospace"}},(j.mcp_servers||[]).join(", ")||j.sandbox_type),me.default.createElement("span",{style:{color:b.textMuted}},j.status," \xB7 ",j.runs_count,"/",j.max_runs," runs \xB7 expires ",new Date(j.expires_at).toLocaleTimeString())))))))}function hQ({server:e,colors:t,tone:r,onOpenTools:n}){let a=({label:o,children:l})=>me.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},me.default.createElement("span",{style:{color:t.textMuted,minWidth:"120px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},o),me.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},l)),i=e.command||e.url;return me.default.createElement("div",{style:{padding:"0 20px 20px 20px",display:"grid",gap:"10px"}},me.default.createElement("div",{style:{height:"1px",background:t.borderLight,marginBottom:"4px"}}),i&&me.default.createElement(a,{label:e.transport==="http"?"Endpoint":"Command"},me.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",padding:"4px 8px",borderRadius:"4px",background:t.codeBg,display:"inline-block"}},i)),e.transport&&me.default.createElement(a,{label:"Transport"},e.transport),e.categories?.length>0&&me.default.createElement(a,{label:"Categories"},e.categories.join(", ")),e.requires_credentials?.length>0&&me.default.createElement(a,{label:"Requires"},e.requires_credentials.join(", ")),me.default.createElement(a,{label:e.tool_count>0?"Tools used":"Tools offered"},e.tools?.length>0?me.default.createElement("span",{style:{display:"flex",gap:"6px",flexWrap:"wrap"}},e.tools.map(o=>me.default.createElement("code",{key:o,style:{fontFamily:"monospace",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r.bg,color:r.fg}},o))):me.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),e.agents?.length>0&&me.default.createElement(a,{label:"Used by"},e.agents.join(", ")),e.configured_by?.length>0&&me.default.createElement(a,{label:"Configured by"},e.configured_by.join(", ")),e.last_seen&&me.default.createElement(a,{label:"Last call"},new Date(e.last_seen).toLocaleString()),me.default.createElement("div",{style:{display:"flex",gap:"12px",marginTop:"4px",flexWrap:"wrap"}},e.docs_url&&me.default.createElement("a",{href:e.docs_url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"13px",color:"#ef4444",textDecoration:"none"}},"Documentation \u2192"),e.calls>0&&n&&me.default.createElement("button",{onClick:()=>n(e.key),style:{fontSize:"13px",color:"#ef4444",background:"none",border:"none",padding:0,cursor:"pointer"}},"View its tools \u2192")))}var B=Q(R());var So=Q(R());var by={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},Et={log(...e){this.enabled&&(e.push(Date.now()),by.logger.log("[ActionCable]",...e))}},Ff=()=>new Date().getTime(),xy=e=>(Ff()-e)/1e3,Wf=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=Ff(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),Et.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=Ff(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),Et.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=Ff()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,Et.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=Ff(),Et.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){let{staleThreshold:t,reconnectionBackoffRate:r}=this.constructor,n=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),i=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+i)}reconnectIfStale(){this.connectionIsStale()&&(Et.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${xy(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?Et.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${xy(this.disconnectedAt)} s`):(Et.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return xy(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&xy(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(Et.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};Wf.staleThreshold=6;Wf.reconnectionBackoffRate=.15;var aj={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},{message_types:Vf,protocols:qS}=aj,yQ=qS.slice(0,qS.length-1),nj=[].indexOf,qf=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new Wf(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return Et.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...qS,...this.consumer.subprotocols||[]];return Et.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new by.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(Et.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){Et.log("Failed to reopen WebSocket",t)}finally{Et.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return nj.call(yQ,this.getProtocol())>=0}isState(...t){return nj.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in by.WebSocket)if(by.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase()}return null}installEventHandlers(){for(let t in this.events){let r=this.events[t].bind(this);this.webSocket[`on${t}`]=r}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}};qf.reopenDelay=500;qf.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:a,type:i}=JSON.parse(e.data);switch(this.monitor.recordMessage(),i){case Vf.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case Vf.disconnect:return Et.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:a});case Vf.ping:return null;case Vf.confirmation:return this.subscriptions.confirmSubscription(t),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(t,"connected",{reconnected:!0})):this.subscriptions.notify(t,"connected",{reconnected:!1});case Vf.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(Et.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return Et.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(Et.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){Et.log("WebSocket onerror event")}};var xQ=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},YS=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),xQ(this,n)}perform(t,r={}){return r.action=t,this.send(r)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}},KS=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(Et.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):Et.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){Et.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((r=>r!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map((t=>{Et.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},GS=class{constructor(t){this.consumer=t,this.guarantor=new KS(this),this.subscriptions=[]}create(t,r){let n=t,a=typeof n=="object"?n:{channel:n},i=new YS(this.consumer,a,r);return this.add(i)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((r=>(this.forget(r),this.notify(r,"rejected"),r)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((r=>r!==t)),t}findAll(t){return this.subscriptions.filter((r=>r.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...r){return this.subscriptions.map((n=>this.notify(n,t,...r)))}notify(t,r,...n){let a;return typeof t=="string"?a=this.findAll(t):a=[t],a.map((i=>typeof i[r]=="function"?i[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){Et.log(`Subscription confirmed ${t}`),this.findAll(t).map((r=>this.guarantor.forget(r)))}sendCommand(t,r){let{identifier:n}=t;return this.consumer.send({command:r,identifier:n})}},XS=class{constructor(t){this._url=t,this.subscriptions=new GS(this),this.connection=new qf(this),this.subprotocols=[]}get url(){return bQ(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}};function bQ(e){if(typeof e=="function"&&(e=e()),e&&!/^wss?:/i.test(e)){let t=document.createElement("a");return t.href=e,t.href=t.href,t.protocol=t.protocol.replace("http","ws"),t.href}else return e}function ij(e=wQ("url")||aj.default_mount_path){return new XS(e)}function wQ(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var wy=null;function SQ(){if(wy===null)try{wy=ij()}catch{wy=!1}return wy||null}function oj(e,t,r,n=!0){let a=(0,So.useRef)(null),i=(0,So.useRef)(r);return(0,So.useEffect)(()=>{i.current=r},[r]),(0,So.useEffect)(()=>{if(!n||!e)return;let l=SQ();return a.current=l.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(s){console.log(`[ActionCable] Received on ${e}:`,s),i.current&&i.current(s)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{a.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),a.current.unsubscribe(),a.current=null)}},[e,JSON.stringify(t),n]),{send:(0,So.useCallback)((l,s)=>{a.current&&a.current.perform(l,s)},[])}}var Sy=[{id:"anthropic",name:"Anthropic",model:"claude-haiku-4-5",color:"bg-orange-500"},{id:"openai",name:"OpenAI",model:"gpt-4o",color:"bg-green-500"},{id:"ollama",name:"Ollama",model:"llama3.1:8b",color:"bg-purple-500"}],AQ={playwright_mcp:[{name:"Screenshot Example.com",task:"Take a screenshot of https://example.com",description:"Navigate to example.com and capture a screenshot"},{name:"Extract Hacker News Headlines",task:"Go to https://news.ycombinator.com and list the top 5 story titles with their scores",description:"Scrape the front page of Hacker News"},{name:"Check Wikipedia",task:"Navigate to https://en.wikipedia.org/wiki/Artificial_intelligence and extract the first paragraph",description:"Extract content from Wikipedia"},{name:"GitHub Trending",task:"Visit https://github.com/trending and list the top 3 trending repositories",description:"Check GitHub's trending repositories"}],comparison:[{name:"Explain Ruby Blocks",task:"Explain how Ruby blocks work with a simple example",description:"Compare how each model explains Ruby concepts"},{name:"Write a Haiku",task:"Write a haiku about programming",description:"Compare creative output across models"},{name:"Debug This Code",task:"What's wrong with this code? def add(a, b); a - b; end; puts add(2, 3)",description:"Compare debugging abilities"},{name:"Summarize AI",task:"Summarize the current state of AI in 3 sentences",description:"Compare factual knowledge and conciseness"}]},lj={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function ZS({initialType:e="playwright_mcp",onClose:t}){let[r,n]=(0,B.useState)(e),[a,i]=(0,B.useState)(null),[o,l]=(0,B.useState)(""),[s,u]=(0,B.useState)([]),[c,d]=(0,B.useState)(null),[f,p]=(0,B.useState)(!1),[g,h]=(0,B.useState)(!1),[x,m]=(0,B.useState)(null),[v,y]=(0,B.useState)(null),[b,k]=(0,B.useState)(!1),[N,D]=(0,B.useState)(null),[_,M]=(0,B.useState)(!1),z=(0,B.useRef)(null),[$,U]=(0,B.useState)(["anthropic"]),[G,j]=(0,B.useState)(!1),[V,w]=(0,B.useState)({}),[O,E]=(0,B.useState)([]),C=(0,B.useCallback)(A=>{switch(console.log("[SandboxRunner] Received ActionCable message:",A),A.type){case"run_started":G?w(I=>({...I,[A.provider]:{status:"running",started_at:A.started_at,provider:A.provider}})):d(I=>({...I,status:"running",provider:A.provider}));break;case"run_complete":G?(w(I=>({...I,[A.provider]:{...A.run,provider:A.provider}})),E(I=>I.filter(K=>K!==A.provider)),A.sandbox&&(i(A.sandbox),u(A.sandbox.runs||[]))):(d(A.run),p(!1),A.sandbox&&(i(A.sandbox),u(A.sandbox.runs||[]))),E(I=>{let K=I.filter(L=>L!==A.provider);return K.length===0&&p(!1),K});break;case"run_error":G?(w(I=>({...I,[A.provider]:{status:"failed",error:A.error,provider:A.provider}})),E(I=>I.filter(K=>K!==A.provider))):(d(I=>({...I,status:"failed",error:A.error})),p(!1)),A.sandbox&&i(A.sandbox);break}},[G]);oj("SandboxChannel",{session_id:a?.session_id},C,!!a?.session_id),(0,B.useEffect)(()=>{T(),S()},[r]);let S=async()=>{try{let A=await fetch("/api/usage");if(A.ok){let I=await A.json();D(I.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,B.useEffect)(()=>{if(!a?.expires_at)return;let A=setInterval(()=>{let I=new Date,K=new Date(a.expires_at),L=Math.max(0,Math.floor((K-I)/1e3));y(L),L===0&&(i(ye=>({...ye,status:"expired"})),clearInterval(A))},1e3);return()=>clearInterval(A)},[a?.expires_at]),(0,B.useEffect)(()=>{z.current&&(z.current.scrollTop=z.current.scrollHeight)},[c?.result]);let T=async()=>{h(!0),m(null);try{let A=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:r})});if(!A.ok)throw new Error("Failed to create sandbox session");let I=await A.json();i(I.sandbox),u([]),d(null)}catch(A){m(A.message)}finally{h(!1)}},F=async()=>{!o.trim()||f||!a||(G&&$.length>1?await J():await X($[0]||"anthropic"))},X=async A=>{p(!0),d({status:"running",task:o,provider:A,result:"",started_at:new Date().toISOString()});try{let I=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:o,provider:A})}),K=await I.json();if(I.status===402&&K.upgrade_required){D(K.usage),k(!0),d(L=>({...L,status:"failed",error:K.message||"Plan limit reached"})),p(!1);return}if(!I.ok)throw new Error(K.error||"Task execution failed");K.usage&&D(K.usage),ge(K.run_id)}catch(I){d(K=>({...K,status:"failed",error:I.message})),p(!1)}},J=async()=>{p(!0),E([...$]),w({});let A={};$.forEach(I=>{A[I]={status:"running",result:"",started_at:new Date().toISOString()}}),w(A);try{let I=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:o,providers:$,sandbox_id:a?.session_id,sandbox_type:r})});if(!I.ok){let L=await I.json();throw new Error(L.error||"Comparison failed")}let K=await I.json();K.sandbox&&i(K.sandbox),setTimeout(()=>{O.length>0&&se()},6e4)}catch(I){$.forEach(K=>{w(L=>({...L,[K]:{status:"failed",error:I.message}}))}),p(!1),E([])}},se=async()=>{if(a?.session_id)try{let I=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(I.sandbox),u(I.sandbox.runs||[]),(I.sandbox.runs||[]).forEach(ye=>{ye.provider&&w(xe=>({...xe,[ye.provider]:{...ye,provider:ye.provider}}))}),$.every(ye=>{let xe=V[ye];return xe?.status==="completed"||xe?.status==="failed"})&&(p(!1),E([]))}catch(A){console.error("Polling error:",A)}},ce=A=>{U(I=>I.includes(A)?I.length===1?I:I.filter(K=>K!==A):[...I,A])},ge=async A=>{let I=async()=>{try{let L=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(L.sandbox);let ye=L.sandbox.runs||[],xe=ye[ye.length-1];if(xe&&(d(xe),u(ye),xe.status==="completed"||xe.status==="failed")){p(!1);return}setTimeout(I,1e3)}catch{p(!1)}};I()},Te=A=>{A.key==="Enter"&&(A.metaKey||A.ctrlKey)&&F()},ie=A=>{if(!A)return"--:--";let I=Math.floor(A/60),K=A%60;return`${I}:${K.toString().padStart(2,"0")}`},_e=A=>{switch(A){case"completed":return"text-green-600 bg-green-100";case"failed":return"text-red-600 bg-red-100";case"running":return"text-blue-600 bg-blue-100";case"ready":return"text-emerald-600 bg-emerald-100";case"expired":return"text-orange-600 bg-orange-100";default:return"text-gray-600 bg-gray-100"}},W=a?.status==="ready"&&a?.runs_count{M(!0);try{await nc({planSlug:"pro",billingInterval:A})}catch(I){console.error("Checkout error:",I),m(I.message||"Failed to initiate checkout. Please try again."),M(!1)}};return B.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},B.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},B.default.createElement("div",{className:"flex items-center justify-between"},B.default.createElement("div",{className:"flex items-center space-x-4"},B.default.createElement(At,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),B.default.createElement("div",null,B.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),B.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),B.default.createElement("div",{className:"flex items-center space-x-4"},a&&B.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},B.default.createElement("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${_e(a.status)}`},a.status),B.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),B.default.createElement("span",{className:`font-mono ${v<60?"text-red-500":"text-gray-500"}`},ie(v))),t&&B.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},B.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},B.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),B.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},B.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},B.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},B.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},B.default.createElement("textarea",{value:o,onChange:A=>l(A.target.value),onKeyDown:Te,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!W,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-rose-500 focus:border-transparent resize-none disabled:bg-gray-100"}),B.default.createElement("div",{className:"flex items-center justify-between mt-3"},B.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",B.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",B.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),B.default.createElement("button",{onClick:F,disabled:!o.trim()||!W,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${o.trim()&&W?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?B.default.createElement(B.default.Fragment,null,B.default.createElement("span",{className:"animate-spin"},"\u25E0"),B.default.createElement("span",null,"Running...")):B.default.createElement(B.default.Fragment,null,B.default.createElement("span",null,"\u25B6"),B.default.createElement("span",null,"Run"))))),B.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},B.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},B.default.createElement("h3",{className:"font-medium text-gray-900"},G&&Object.keys(V).length>0?"Comparison Results":"Output"),c&&!G&&B.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${_e(c.status)}`},c.status),G&&O.length>0&&B.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",O.length," provider(s)...")),B.default.createElement("div",{ref:z,className:"flex-1 overflow-auto bg-gray-50"},g?B.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},B.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):x?B.default.createElement("div",{className:"text-red-600 p-4"},x):G&&Object.keys(V).length>0?B.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},$.map(A=>{let I=Sy.find(L=>L.id===A),K=V[A];return B.default.createElement("div",{key:A,className:"p-4"},B.default.createElement("div",{className:"flex items-center justify-between mb-2"},B.default.createElement("div",{className:"flex items-center space-x-2"},B.default.createElement("div",{className:`w-3 h-3 rounded-full ${I?.color||"bg-gray-400"}`}),B.default.createElement("span",{className:"font-medium text-gray-900"},I?.name||A),B.default.createElement("span",{className:"text-xs text-gray-500"},I?.model)),K&&B.default.createElement("div",{className:"flex items-center space-x-2"},B.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${_e(K.status)}`},K.status),K.tokens&&B.default.createElement("span",{className:"text-xs text-gray-500"},K.tokens," tokens"),K.duration_ms&&B.default.createElement("span",{className:"text-xs text-gray-500"},(K.duration_ms/1e3).toFixed(1),"s"))),B.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},K?.status==="running"?B.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},B.default.createElement("span",{className:"animate-pulse"},"\u25CF"),B.default.createElement("span",null,"Processing...")):K?.error?B.default.createElement("div",{className:"text-red-600"},K.error):K?.result?B.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},K.result):B.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):c?B.default.createElement("div",{className:"p-4 font-mono text-sm"},c.provider&&B.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},B.default.createElement("div",{className:`w-2 h-2 rounded-full ${Sy.find(A=>A.id===c.provider)?.color||"bg-gray-400"}`}),B.default.createElement("span",{className:"text-sm text-gray-600"},Sy.find(A=>A.id===c.provider)?.name||c.provider)),c.status==="running"?B.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},B.default.createElement("span",{className:"animate-pulse"},"\u25CF"),B.default.createElement("span",null,"Executing task...")):c.error?B.default.createElement("div",{className:"text-red-600"},B.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),B.default.createElement("pre",{className:"whitespace-pre-wrap"},c.error)):B.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},c.result||"Processing...")):B.default.createElement("div",{className:"text-gray-400 text-center py-12"},B.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),B.default.createElement("p",{className:"text-xs"},G?`Compare results across ${$.length} providers`:"Task will execute using the selected provider"))))),B.default.createElement("div",{className:"space-y-4 overflow-auto"},B.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},B.default.createElement("div",{className:"flex items-center justify-between mb-3"},B.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),B.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},B.default.createElement("input",{type:"checkbox",checked:G,onChange:A=>j(A.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),B.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),B.default.createElement("div",{className:"space-y-2"},Sy.map(A=>B.default.createElement("label",{key:A.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${$.includes(A.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},B.default.createElement("div",{className:"flex items-center space-x-3"},B.default.createElement("input",{type:"checkbox",checked:$.includes(A.id),onChange:()=>ce(A.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),B.default.createElement("div",{className:`w-2 h-2 rounded-full ${A.color}`}),B.default.createElement("span",{className:"text-sm font-medium text-gray-900"},A.name)),B.default.createElement("span",{className:"text-xs text-gray-500"},A.model)))),G&&$.length>1&&B.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},B.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",$.length," providers simultaneously"))),B.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},B.default.createElement("div",{className:"flex items-center justify-between mb-3"},B.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),G&&B.default.createElement("button",{onClick:()=>n(r==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},r==="comparison"?"Browser Tasks":"Comparison Tasks")),B.default.createElement("div",{className:"space-y-2"},AQ[r]?.map((A,I)=>B.default.createElement("button",{key:I,onClick:()=>l(A.task),disabled:!W,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},B.default.createElement("div",{className:"font-medium text-sm text-gray-900"},A.name),B.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},A.description))))),B.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},B.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},N?.plan==="free"?"Free Tier":`${N?.plan?.toUpperCase()||"FREE"} Plan`),N&&B.default.createElement("div",{className:"mb-4"},B.default.createElement("div",{className:"flex justify-between text-sm mb-1"},B.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),B.default.createElement("span",{className:`font-medium ${N.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},N.runs_used," / ",N.runs_limit)),B.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},B.default.createElement("div",{className:`h-2 rounded-full transition-all ${N.runs_remaining<=1?"bg-rose-500":"bg-emerald-500"}`,style:{width:`${Math.min(N.runs_used/N.runs_limit*100,100)}%`}})),N.runs_remaining<=1&&B.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},N.runs_remaining===0?"Limit reached!":"Almost at limit!")),B.default.createElement("dl",{className:"space-y-2 text-sm"},B.default.createElement("div",{className:"flex justify-between"},B.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),B.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||lj.max_runs)),B.default.createElement("div",{className:"flex justify-between"},B.default.createElement("dt",{className:"text-gray-500"},"Timeout"),B.default.createElement("dd",{className:"text-gray-900"},lj.timeout_seconds,"s per task"))),N?.plan==="free"&&B.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},B.default.createElement("button",{onClick:()=>k(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),s.length>0&&B.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},B.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},B.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),B.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},s.slice().reverse().map((A,I)=>B.default.createElement("div",{key:A.id||I,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>d(A)},B.default.createElement("div",{className:"flex items-center justify-between mb-1"},B.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${_e(A.status||"completed")}`},A.status||"completed"),B.default.createElement("span",{className:"text-xs text-gray-400"},A.tokens||0," tokens")),B.default.createElement("p",{className:"text-sm text-gray-600 truncate"},A.task))))),a?.status==="expired"&&B.default.createElement("button",{onClick:T,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),b&&B.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},B.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},B.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},B.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),B.default.createElement("p",{className:"text-rose-100 text-sm"},"You've used ",N?.runs_used||0," of ",N?.runs_limit||25," trial runs. Choose a plan to continue.")),B.default.createElement("div",{className:"p-6"},B.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},B.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},B.default.createElement("div",{className:"text-center mb-4"},B.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),B.default.createElement("div",{className:"mt-2"},B.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),B.default.createElement("span",{className:"text-gray-500"},"/mo"))),B.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),B.default.createElement("button",{disabled:!0,className:"w-full py-2 px-4 border border-gray-300 text-gray-400 rounded-lg text-sm cursor-not-allowed"},"Current Plan")),B.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},B.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},B.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),B.default.createElement("div",{className:"text-center mb-4 mt-2"},B.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),B.default.createElement("div",{className:"mt-2"},B.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),B.default.createElement("span",{className:"text-gray-500"},"/mo")),B.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),B.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),B.default.createElement("button",{onClick:()=>q("monthly"),disabled:_,className:"w-full py-2 px-4 bg-rose-500 text-white rounded-lg text-sm font-semibold hover:bg-rose-600 transition-colors disabled:opacity-50"},_?"Loading...":"Upgrade to Pro")),B.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},B.default.createElement("div",{className:"text-center mb-4"},B.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),B.default.createElement("div",{className:"mt-2"},B.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),B.default.createElement("span",{className:"text-gray-500"},"/mo")),B.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),B.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),B.default.createElement("li",{className:"flex items-start"},B.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),B.default.createElement("a",{href:"mailto:sales@activeagents.ai",className:"block w-full py-2 px-4 border border-gray-300 text-gray-700 rounded-lg text-sm font-semibold text-center hover:bg-gray-50 transition-colors"},"Contact Sales")))),B.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},B.default.createElement("button",{onClick:()=>k(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var fe=Q(R());var Ay={SCREENSHOT:"screenshot",IFRAME:"iframe"},sj={navigate:"[->]",click:"[*]",type:"[T]",form_fill:"[F]",key_press:"[K]",snapshot:"[S]",hover:"[~]",select:"[v]",file_upload:"[^]",dialog:"[!]",evaluate:"[js]",wait:"[..]",scroll:"[|]",drag:"[<>]"},QS={navigate:"#3b82f6",click:"#ef4444",type:"#10b981",form_fill:"#8b5cf6",key_press:"#f59e0b",snapshot:"#06b6d4",hover:"#ec4899",select:"#6366f1",file_upload:"#14b8a6",dialog:"#f97316",evaluate:"#a855f7",wait:"#94a3b8",scroll:"#64748b",drag:"#ea580c"},NQ=` @keyframes ripple { 0% { transform: translate(-50%, -50%) scale(0.5); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(2); opacity: 0; } @@ -75,10 +75,10 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } } -`;function WS({recordingId:e,onHandoff:t,onClose:r}){let{darkMode:n}=it(),[a,i]=(0,de.useState)([]),[o,l]=(0,de.useState)(e),[s,u]=(0,de.useState)(null),[c,d]=(0,de.useState)([]),[f,p]=(0,de.useState)(!0),[v,g]=(0,de.useState)(null),[b,m]=(0,de.useState)(!1),[h,x]=(0,de.useState)(0),[w,E]=(0,de.useState)(1),[C,T]=(0,de.useState)(null),_=(0,de.useRef)(null),I=(0,de.useRef)(null),z=(0,de.useRef)(null),[B,$]=(0,de.useState)(xy.IFRAME),[X,H]=(0,de.useState)({x:0,y:0,visible:!1}),[q,y]=(0,de.useState)(null);(0,de.useEffect)(()=>{N()},[]),(0,de.useEffect)(()=>{o&&k(o)},[o]);let N=async()=>{try{let F=await fetch("/api/session_recordings");if(F.ok){let Y=await F.json();i(Y.recordings||[]),!o&&Y.recordings?.length>0&&l(Y.recordings[0].id)}}catch(F){console.error("Failed to load recordings list:",F)}};(0,de.useEffect)(()=>{if(!b||c.length===0){I.current&&clearTimeout(I.current);return}let F=c[h],Y=c[h+1];if(!Y){m(!1);return}let S=(Y.timestamp_ms-F.timestamp_ms)/w;return I.current=setTimeout(()=>{x(P=>P+1)},Math.max(S,50)),()=>{I.current&&clearTimeout(I.current)}},[b,h,c,w]),(0,de.useEffect)(()=>{let F=c[h];F?.screenshot_url?(T(F.screenshot_url),$(xy.SCREENSHOT)):B===xy.IFRAME&&O(F)},[h,c,B]);let O=(0,de.useCallback)(F=>{if(!F||!z.current)return;let Y=z.current;try{let S=s?.metadata?.page_url||"/";switch(Y.src!==S&&Y.src.includes(S),F.action_type){case"navigate":H({x:50,y:50,visible:!0}),y(null);break;case"click":case"focus":H({x:200,y:300,visible:!0}),y(F.selector),M(F.selector);break;case"type":H({x:200,y:300,visible:!0}),y(F.selector),A(F.selector,F.value);break;case"submit":H({x:250,y:400,visible:!0}),y(F.selector);break;case"scroll":H({x:300,y:200,visible:!0}),y(null);break;case"handoff":H({x:0,y:0,visible:!1}),y(null);break;default:H({x:150,y:250,visible:!0}),y(F.selector)}}catch(S){console.log("Could not simulate action in iframe:",S)}},[s]),M=F=>{if(!(!F||!z.current))try{let Y=z.current.contentDocument||z.current.contentWindow?.document;if(!Y)return;Y.querySelectorAll(".session-replay-highlight").forEach(P=>{P.classList.remove("session-replay-highlight"),P.style.outline=""});let S=Y.querySelector(F);S&&(S.classList.add("session-replay-highlight"),S.style.outline="3px solid #ef4444",S.style.outlineOffset="2px",S.scrollIntoView({behavior:"smooth",block:"center"}))}catch{}},A=(F,Y)=>{if(!(!F||!Y||!z.current))try{let S=z.current.contentDocument||z.current.contentWindow?.document;if(!S)return;let P=S.querySelector(F);if(P&&(P.tagName==="INPUT"||P.tagName==="TEXTAREA")){let K=0,j=setInterval(()=>{K{if(!F){u(null),d([]),x(0),m(!1),p(!1),g(null);return}p(!0),g(null);try{let Y=await fetch(`/api/session_recordings/${F}`);if(!Y.ok)throw new Error("Failed to load recording");let S=await Y.json();if(u(S.recording),x(0),m(!1),S.recording?.id){let P=await fetch(`/api/session_recordings/${S.recording.id}/actions`);if(P.ok){let K=await P.json();d(K.actions||S.recording.timeline||[])}else d(S.recording.timeline||[])}}catch(Y){g(Y.message)}finally{p(!1)}},V=()=>{h>=c.length-1&&x(0),m(!b)},G=()=>{m(!1),x(F=>Math.min(F+1,c.length-1))},Q=()=>{m(!1),x(F=>Math.max(F-1,0))},se=F=>{if(!_.current||c.length===0)return;let Y=_.current.getBoundingClientRect(),K=(F.clientX-Y.left)/Y.width*(s?.duration_ms||c[c.length-1]?.timestamp_ms||0),j=c.findIndex((he,ge)=>{let xe=c[ge+1];return!xe||K{if(s?.id)try{let F=await fetch(`/api/session_recordings/${s.id}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!F.ok)throw new Error("Handoff not available");let Y=await F.json();t&&t(Y)}catch(F){g(F.message)}},pe=F=>{if(!F)return"0:00";let Y=Math.floor(F/1e3),S=Math.floor(Y/60),P=Y%60;return`${S}:${P.toString().padStart(2,"0")}`},Oe=c[h],ie=s?.duration_ms?(Oe?.timestamp_ms||0)/s.duration_ms*100:0;return f?de.default.createElement("div",{className:"flex items-center justify-center h-64"},de.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):v?de.default.createElement("div",{className:"flex items-center justify-center h-64"},de.default.createElement("div",{className:"text-red-500"},v)):s?de.default.createElement("div",{className:n?"":"bg-white rounded-xl border border-gray-200",style:n?{background:"linear-gradient(180deg, #1a1a2e 0%, #16213e 100%)",borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}:{}},de.default.createElement("style",{dangerouslySetInnerHTML:{__html:lQ}}),de.default.createElement("div",{className:n?"":"border-b border-gray-200 p-4",style:n?{padding:"16px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",display:"flex",alignItems:"center",justifyContent:"space-between"}:{display:"flex",alignItems:"center",justifyContent:"space-between"}},de.default.createElement("div",null,de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},de.default.createElement("h2",{className:n?"":"text-xl font-semibold text-gray-900",style:n?{fontSize:"20px",fontWeight:"600",color:"white",margin:0}:{}},s.name||"Session Replay"),a.length>1&&de.default.createElement("select",{value:o||"",onChange:F=>l(Number(F.target.value)),style:{padding:"6px 12px",borderRadius:"6px",border:n?"1px solid rgba(255,255,255,0.2)":"1px solid #d1d5db",background:n?"rgba(255,255,255,0.1)":"white",color:n?"white":"#374151",fontSize:"14px",cursor:"pointer"}},a.map(F=>de.default.createElement("option",{key:F.id,value:F.id},F.name," (",new Date(F.created_at).toLocaleDateString(),")")))),de.default.createElement("p",{className:n?"":"text-sm text-gray-500 mt-1",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}:{}},s.action_count," actions | ",pe(s.duration_ms)," duration")),de.default.createElement("div",{className:"flex items-center gap-3"},s.handoff_state&&de.default.createElement("button",{onClick:ue,className:n?"":"px-4 py-2 bg-gradient-to-r from-red-500 to-rose-500 text-white rounded-lg hover:from-red-600 hover:to-rose-600 font-medium",style:n?{padding:"10px 20px",background:"linear-gradient(90deg, #ef4444 0%, #f43f5e 100%)",color:"white",borderRadius:"8px",border:"none",fontWeight:"500",cursor:"pointer",fontSize:"14px"}:{}},"Take Over Session"),r&&de.default.createElement("button",{onClick:r,className:n?"":"text-gray-400 hover:text-gray-600",style:n?{color:"rgba(255,255,255,0.6)",background:"none",border:"none",cursor:"pointer"}:{}},de.default.createElement("span",{style:{fontSize:"20px"}},"x")))),de.default.createElement("div",{className:n?"":"flex h-[500px]",style:n?{display:"flex",height:"500px"}:{}},de.default.createElement("div",{className:n?"":"flex-1 bg-gray-100 flex items-center justify-center relative",style:n?{flex:1,background:"rgba(0,0,0,0.3)",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden"}:{overflow:"hidden"}},B===xy.SCREENSHOT&&C?de.default.createElement("img",{src:C,alt:"Session screenshot",className:"max-w-full max-h-full object-contain"}):de.default.createElement("div",{style:{width:"100%",height:"100%",position:"relative",overflow:"hidden"}},de.default.createElement("iframe",{ref:z,src:s?.metadata?.page_url||"/",style:{border:"none",transform:"scale(0.75)",transformOrigin:"top left",width:"133.33%",height:"133.33%",pointerEvents:"none"},sandbox:"allow-same-origin allow-scripts"}),X.visible&&de.default.createElement("div",{style:{position:"absolute",left:`${X.x}px`,top:`${X.y}px`,width:"24px",height:"24px",pointerEvents:"none",zIndex:100,transition:"all 0.3s ease-out"}},de.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",style:{width:"100%",height:"100%"}},de.default.createElement("path",{d:"M4 4L12 20L14 14L20 12L4 4Z",fill:"#ef4444",stroke:"white",strokeWidth:"2"})),Oe?.action_type==="click"&&de.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"40px",height:"40px",borderRadius:"50%",border:"3px solid #ef4444",animation:"ripple 0.6s ease-out",opacity:0}})),q&&de.default.createElement("div",{style:{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.8)",color:"#60a5fa",padding:"8px 12px",borderRadius:"6px",fontSize:"12px",fontFamily:_e.mono,zIndex:100}},q),Oe&&de.default.createElement("div",{style:{position:"absolute",top:"60px",left:"16px",background:"rgba(0,0,0,0.8)",color:"white",padding:"8px 16px",borderRadius:"6px",fontSize:"13px",display:"flex",alignItems:"center",gap:"8px",zIndex:100}},de.default.createElement("span",{style:{color:qS[Oe.action_type]||"#94a3b8",fontWeight:"600"}},RP[Oe.action_type]||"[?]"),de.default.createElement("span",null,Oe.action_type),Oe.value&&de.default.createElement("span",{style:{color:"rgba(255,255,255,0.6)",maxWidth:"200px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},": ",Oe.value))),de.default.createElement("div",{className:n?"":"absolute top-4 left-4 flex items-center gap-2 text-white px-3 py-1 rounded-full text-sm",style:{position:"absolute",top:"16px",left:"16px",display:"flex",alignItems:"center",gap:"8px",background:s?.status==="recording"?"#ef4444":b?"#10b981":"#6b7280",color:"white",padding:"6px 12px",borderRadius:"999px",fontSize:"13px",fontWeight:"500"}},s?.status==="recording"?de.default.createElement("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:"white",animation:"pulse 1.5s ease-in-out infinite"}}):b?de.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},de.default.createElement("path",{d:"M0 0L10 6L0 12V0Z"})):de.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},de.default.createElement("rect",{x:"0",y:"0",width:"3",height:"12"}),de.default.createElement("rect",{x:"7",y:"0",width:"3",height:"12"})),s?.status==="recording"?"REC":b?"Playing":"Paused"),Oe?.selector&&de.default.createElement("div",{className:n?"":"absolute bottom-4 left-4 bg-black/75 text-white px-3 py-1 rounded text-sm font-mono",style:n?{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.75)",color:"white",padding:"6px 12px",borderRadius:"6px",fontSize:"13px",fontFamily:_e.mono}:{}},Oe.selector)),de.default.createElement("div",{className:n?"":"w-80 border-l border-gray-200 flex flex-col",style:n?{width:"320px",borderLeft:"1px solid rgba(255,255,255,0.1)",display:"flex",flexDirection:"column"}:{}},de.default.createElement("div",{className:n?"":"flex-1 overflow-auto",style:n?{flex:1,overflowY:"auto"}:{}},de.default.createElement("div",{className:n?"":"p-3 border-b border-gray-100 font-medium text-sm text-gray-700",style:n?{padding:"12px 16px",borderBottom:"1px solid rgba(255,255,255,0.1)",fontWeight:"500",fontSize:"14px",color:"rgba(255,255,255,0.8)"}:{}},"Actions (",c.length,")"),c.map((F,Y)=>{let S=Y===h,P=Y{x(Y),m(!1)},className:n?"":`px-4 py-3 cursor-pointer border-b border-gray-50 hover:bg-gray-50 ${S?"bg-red-50 border-l-2 border-l-red-500":""}`,style:n?{padding:"12px 16px",cursor:"pointer",borderBottom:"1px solid rgba(255,255,255,0.05)",background:S?"rgba(239, 68, 68, 0.15)":"transparent",borderLeft:S?"3px solid #ef4444":"3px solid transparent",opacity:P?.6:1}:{opacity:P?.6:1}},de.default.createElement("div",{className:"flex items-center gap-2"},de.default.createElement("span",{style:{color:K,fontFamily:_e.mono,fontSize:"12px",fontWeight:"600"}},RP[F.action_type]||"[?]"),de.default.createElement("span",{className:n?"":"text-sm font-medium text-gray-900",style:n?{fontSize:"14px",fontWeight:"500",color:"white"}:{}},F.action_type),de.default.createElement("span",{className:n?"":"text-xs text-gray-400 ml-auto",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.4)",marginLeft:"auto"}:{}},pe(F.timestamp_ms))),F.value&&de.default.createElement("div",{className:n?"":"text-xs text-gray-500 mt-1 truncate",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.5)",marginTop:"4px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},F.value.length>50?F.value.substring(0,50)+"...":F.value),F.selector&&de.default.createElement("div",{className:n?"":"text-xs text-blue-500 mt-1 font-mono truncate",style:n?{fontSize:"11px",color:"#60a5fa",marginTop:"4px",fontFamily:_e.mono,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},F.selector))})))),de.default.createElement("div",{className:n?"":"border-t border-gray-200 p-4",style:n?{borderTop:"1px solid rgba(255,255,255,0.1)",padding:"16px 24px"}:{}},de.default.createElement("div",{ref:_,onClick:se,className:n?"":"h-2 bg-gray-200 rounded-full mb-4 cursor-pointer relative",style:n?{height:"8px",background:"rgba(255,255,255,0.1)",borderRadius:"4px",marginBottom:"16px",cursor:"pointer",position:"relative"}:{}},de.default.createElement("div",{className:n?"":"absolute h-full bg-red-500 rounded-full",style:{width:`${ie}%`,height:"100%",background:"#ef4444",borderRadius:"4px",position:"absolute"}}),c.map((F,Y)=>{let S=s?.duration_ms?F.timestamp_ms/s.duration_ms*100:0,P=qS[F.action_type]||"#94a3b8";return de.default.createElement("div",{key:Y,className:n?"":"absolute w-1 h-3 -top-0.5 transform -translate-x-1/2",style:{left:`${S}%`,width:"3px",height:"12px",top:"-2px",transform:"translateX(-50%)",background:Y===h?P:"rgba(255,255,255,0.3)",borderRadius:"2px",position:"absolute"}})})),de.default.createElement("div",{className:n?"":"flex items-center justify-between",style:n?{display:"flex",alignItems:"center",justifyContent:"space-between"}:{}},de.default.createElement("div",{className:"flex items-center gap-4"},de.default.createElement("div",{className:"flex items-center gap-2"},de.default.createElement("button",{onClick:Q,disabled:h===0,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:h===0?"not-allowed":"pointer",opacity:h===0?.5:1}:{}},"<<"),de.default.createElement("button",{onClick:V,className:n?"":"p-3 rounded-full bg-red-500 text-white hover:bg-red-600",style:n?{padding:"12px 24px",background:"#ef4444",border:"none",borderRadius:"999px",color:"white",cursor:"pointer",fontWeight:"500"}:{}},b?"Pause":"Play"),de.default.createElement("button",{onClick:G,disabled:h>=c.length-1,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:h>=c.length-1?"not-allowed":"pointer",opacity:h>=c.length-1?.5:1}:{}},">>")),de.default.createElement("span",{className:n?"":"text-sm text-gray-600 font-mono",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.7)",fontFamily:_e.mono}:{}},pe(Oe?.timestamp_ms||0)," / ",pe(s?.duration_ms||0))),de.default.createElement("div",{className:"flex items-center gap-2"},de.default.createElement("span",{className:n?"":"text-sm text-gray-500",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.5)"}:{}},"Speed:"),[.5,1,2,4].map(F=>de.default.createElement("button",{key:F,onClick:()=>E(F),className:n?"":`px-2 py-1 rounded text-sm ${w===F?"bg-red-500 text-white":"bg-gray-100 text-gray-600"}`,style:n?{padding:"4px 10px",background:w===F?"#ef4444":"rgba(255,255,255,0.1)",color:"white",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"13px"}:{}},F,"x")))))):de.default.createElement("div",{className:"flex items-center justify-center h-64"},de.default.createElement("div",{className:"text-gray-500"},"No recording available"))}var le=J(R());var by=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function KS({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:a}=it(),[i,o]=(0,le.useState)(null),[l,s]=(0,le.useState)(!1),[u,c]=(0,le.useState)(!1),[d,f]=(0,le.useState)(!1),[p,v]=(0,le.useState)(null);(0,le.useEffect)(()=>{fetch("/api/usage").then(E=>E.ok?E.json():null).then(E=>o(E?.usage||null)).catch(()=>o(null))},[]);let g=async()=>{f(!0),v(null);try{await tc({planSlug:"pro"})}catch(E){v(E.message),f(!1)}},b=()=>{e?.telemetry_api_key&&navigator.clipboard.writeText(e.telemetry_api_key).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)})},m={backgroundColor:a?"#1f1f1f":"#ffffff",borderColor:a?"#2a2a2a":"#e5e7eb"},h=r?.plan_name||"Free",x={free:{seats:1,workspaces:1,agents:3,traces:"250/mo trial"},pro:{seats:5,workspaces:3,agents:"Unlimited",traces:"25,000/mo"},enterprise:{seats:"Unlimited",workspaces:"Unlimited",agents:"Unlimited",traces:"500,000+/mo"}},w=x[h.toLowerCase()]||x.free;return le.default.createElement("div",{className:"p-6 space-y-6"},le.default.createElement("div",null,le.default.createElement("h2",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},"Organization"),le.default.createElement("p",{className:`mt-1 ${a?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),le.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Workspace"),le.default.createElement("div",{className:"space-y-3"},le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Name"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Owner"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Created"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("div",{className:"flex items-center justify-between mb-4"},le.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Current Plan"),le.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},h)),le.default.createElement("div",{className:"space-y-3"},le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Team Seats"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},w.seats)),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Workspaces"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},w.workspaces)),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Agents"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},w.agents)),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Traces"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},w.traces))),h.toLowerCase()!=="enterprise"&&le.default.createElement(le.default.Fragment,null,le.default.createElement("button",{onClick:g,disabled:d,className:"mt-4 w-full px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},d?"Redirecting to checkout\u2026":"Upgrade Plan"),p&&le.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},p)))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("div",{className:"flex items-center justify-between mb-4"},le.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Team Members"),le.default.createElement("button",{className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),le.default.createElement("div",{className:"overflow-hidden"},le.default.createElement("table",{className:"min-w-full"},le.default.createElement("thead",null,le.default.createElement("tr",{className:a?"border-b border-gray-700":"border-b border-gray-200"},le.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Member"),le.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Role"),le.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Status"))),le.default.createElement("tbody",null,le.default.createElement("tr",null,le.default.createElement("td",{className:"py-3 px-4"},le.default.createElement("div",{className:"flex items-center space-x-3"},le.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},le.default.createElement("span",{className:"text-red-600 font-medium text-sm"},t?.name?.charAt(0).toUpperCase()||"U")),le.default.createElement("div",null,le.default.createElement("p",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.name||"You"),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},t?.email)))),le.default.createElement("td",{className:"py-3 px-4"},le.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},"Owner")),le.default.createElement("td",{className:"py-3 px-4"},le.default.createElement("span",{className:"flex items-center text-green-600"},le.default.createElement("span",{className:"w-2 h-2 bg-green-500 rounded-full mr-2"}),"Active"))))))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Usage This Month"),le.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},n),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Agents")),le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},by(i?.traces_used),i?.traces_limit>0&&le.default.createElement("span",{className:`text-sm font-normal ${a?"text-gray-500":"text-gray-400"}`}," / ",by(i.traces_limit))),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Traces")),le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},by(i?.runs_used)),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Executions")),le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},by(i?.tokens_used)),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Tokens")))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${a?"text-white":"text-gray-900"}`},"Telemetry"),le.default.createElement("p",{className:`text-sm mb-4 ${a?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",le.default.createElement("code",{className:`px-1 rounded text-xs ${a?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),le.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${a?"bg-black text-gray-300":"bg-gray-900 text-gray-100"}`},`telemetry: +`;function JS({recordingId:e,onHandoff:t,onClose:r}){let{darkMode:n}=Ze(),[a,i]=(0,fe.useState)([]),[o,l]=(0,fe.useState)(e),[s,u]=(0,fe.useState)(null),[c,d]=(0,fe.useState)([]),[f,p]=(0,fe.useState)(!0),[g,h]=(0,fe.useState)(null),[x,m]=(0,fe.useState)(!1),[v,y]=(0,fe.useState)(0),[b,k]=(0,fe.useState)(1),[N,D]=(0,fe.useState)(null),_=(0,fe.useRef)(null),M=(0,fe.useRef)(null),z=(0,fe.useRef)(null),[$,U]=(0,fe.useState)(Ay.IFRAME),[G,j]=(0,fe.useState)({x:0,y:0,visible:!1}),[V,w]=(0,fe.useState)(null);(0,fe.useEffect)(()=>{O()},[]),(0,fe.useEffect)(()=>{o&&T(o)},[o]);let O=async()=>{try{let W=await fetch("/api/session_recordings");if(W.ok){let q=await W.json();i(q.recordings||[]),!o&&q.recordings?.length>0&&l(q.recordings[0].id)}}catch(W){console.error("Failed to load recordings list:",W)}};(0,fe.useEffect)(()=>{if(!x||c.length===0){M.current&&clearTimeout(M.current);return}let W=c[v],q=c[v+1];if(!q){m(!1);return}let A=(q.timestamp_ms-W.timestamp_ms)/b;return M.current=setTimeout(()=>{y(I=>I+1)},Math.max(A,50)),()=>{M.current&&clearTimeout(M.current)}},[x,v,c,b]),(0,fe.useEffect)(()=>{let W=c[v];W?.screenshot_url?(D(W.screenshot_url),U(Ay.SCREENSHOT)):$===Ay.IFRAME&&E(W)},[v,c,$]);let E=(0,fe.useCallback)(W=>{if(!W||!z.current)return;let q=z.current;try{let A=s?.metadata?.page_url||"/";switch(q.src!==A&&q.src.includes(A),W.action_type){case"navigate":j({x:50,y:50,visible:!0}),w(null);break;case"click":case"focus":j({x:200,y:300,visible:!0}),w(W.selector),C(W.selector);break;case"type":j({x:200,y:300,visible:!0}),w(W.selector),S(W.selector,W.value);break;case"submit":j({x:250,y:400,visible:!0}),w(W.selector);break;case"scroll":j({x:300,y:200,visible:!0}),w(null);break;case"handoff":j({x:0,y:0,visible:!1}),w(null);break;default:j({x:150,y:250,visible:!0}),w(W.selector)}}catch(A){console.log("Could not simulate action in iframe:",A)}},[s]),C=W=>{if(!(!W||!z.current))try{let q=z.current.contentDocument||z.current.contentWindow?.document;if(!q)return;q.querySelectorAll(".session-replay-highlight").forEach(I=>{I.classList.remove("session-replay-highlight"),I.style.outline=""});let A=q.querySelector(W);A&&(A.classList.add("session-replay-highlight"),A.style.outline="3px solid #ef4444",A.style.outlineOffset="2px",A.scrollIntoView({behavior:"smooth",block:"center"}))}catch{}},S=(W,q)=>{if(!(!W||!q||!z.current))try{let A=z.current.contentDocument||z.current.contentWindow?.document;if(!A)return;let I=A.querySelector(W);if(I&&(I.tagName==="INPUT"||I.tagName==="TEXTAREA")){let K=0,L=setInterval(()=>{K{if(!W){u(null),d([]),y(0),m(!1),p(!1),h(null);return}p(!0),h(null);try{let q=await fetch(`/api/session_recordings/${W}`);if(!q.ok)throw new Error("Failed to load recording");let A=await q.json();if(u(A.recording),y(0),m(!1),A.recording?.id){let I=await fetch(`/api/session_recordings/${A.recording.id}/actions`);if(I.ok){let K=await I.json();d(K.actions||A.recording.timeline||[])}else d(A.recording.timeline||[])}}catch(q){h(q.message)}finally{p(!1)}},F=()=>{v>=c.length-1&&y(0),m(!x)},X=()=>{m(!1),y(W=>Math.min(W+1,c.length-1))},J=()=>{m(!1),y(W=>Math.max(W-1,0))},se=W=>{if(!_.current||c.length===0)return;let q=_.current.getBoundingClientRect(),K=(W.clientX-q.left)/q.width*(s?.duration_ms||c[c.length-1]?.timestamp_ms||0),L=c.findIndex((ye,xe)=>{let we=c[xe+1];return!we||K{if(s?.id)try{let W=await fetch(`/api/session_recordings/${s.id}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!W.ok)throw new Error("Handoff not available");let q=await W.json();t&&t(q)}catch(W){h(W.message)}},ge=W=>{if(!W)return"0:00";let q=Math.floor(W/1e3),A=Math.floor(q/60),I=q%60;return`${A}:${I.toString().padStart(2,"0")}`},Te=c[v],ie=s?.duration_ms?(Te?.timestamp_ms||0)/s.duration_ms*100:0;return f?fe.default.createElement("div",{className:"flex items-center justify-center h-64"},fe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):g?fe.default.createElement("div",{className:"flex items-center justify-center h-64"},fe.default.createElement("div",{className:"text-red-500"},g)):s?fe.default.createElement("div",{className:n?"":"bg-white rounded-xl border border-gray-200",style:n?{background:"linear-gradient(180deg, #1a1a2e 0%, #16213e 100%)",borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}:{}},fe.default.createElement("style",{dangerouslySetInnerHTML:{__html:NQ}}),fe.default.createElement("div",{className:n?"":"border-b border-gray-200 p-4",style:n?{padding:"16px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",display:"flex",alignItems:"center",justifyContent:"space-between"}:{display:"flex",alignItems:"center",justifyContent:"space-between"}},fe.default.createElement("div",null,fe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},fe.default.createElement("h2",{className:n?"":"text-xl font-semibold text-gray-900",style:n?{fontSize:"20px",fontWeight:"600",color:"white",margin:0}:{}},s.name||"Session Replay"),a.length>1&&fe.default.createElement("select",{value:o||"",onChange:W=>l(Number(W.target.value)),style:{padding:"6px 12px",borderRadius:"6px",border:n?"1px solid rgba(255,255,255,0.2)":"1px solid #d1d5db",background:n?"rgba(255,255,255,0.1)":"white",color:n?"white":"#374151",fontSize:"14px",cursor:"pointer"}},a.map(W=>fe.default.createElement("option",{key:W.id,value:W.id},W.name," (",new Date(W.created_at).toLocaleDateString(),")")))),fe.default.createElement("p",{className:n?"":"text-sm text-gray-500 mt-1",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}:{}},s.action_count," actions | ",ge(s.duration_ms)," duration")),fe.default.createElement("div",{className:"flex items-center gap-3"},s.handoff_state&&fe.default.createElement("button",{onClick:ce,className:n?"":"px-4 py-2 bg-gradient-to-r from-red-500 to-rose-500 text-white rounded-lg hover:from-red-600 hover:to-rose-600 font-medium",style:n?{padding:"10px 20px",background:"linear-gradient(90deg, #ef4444 0%, #f43f5e 100%)",color:"white",borderRadius:"8px",border:"none",fontWeight:"500",cursor:"pointer",fontSize:"14px"}:{}},"Take Over Session"),r&&fe.default.createElement("button",{onClick:r,className:n?"":"text-gray-400 hover:text-gray-600",style:n?{color:"rgba(255,255,255,0.6)",background:"none",border:"none",cursor:"pointer"}:{}},fe.default.createElement("span",{style:{fontSize:"20px"}},"x")))),fe.default.createElement("div",{className:n?"":"flex h-[500px]",style:n?{display:"flex",height:"500px"}:{}},fe.default.createElement("div",{className:n?"":"flex-1 bg-gray-100 flex items-center justify-center relative",style:n?{flex:1,background:"rgba(0,0,0,0.3)",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden"}:{overflow:"hidden"}},$===Ay.SCREENSHOT&&N?fe.default.createElement("img",{src:N,alt:"Session screenshot",className:"max-w-full max-h-full object-contain"}):fe.default.createElement("div",{style:{width:"100%",height:"100%",position:"relative",overflow:"hidden"}},fe.default.createElement("iframe",{ref:z,src:s?.metadata?.page_url||"/",style:{border:"none",transform:"scale(0.75)",transformOrigin:"top left",width:"133.33%",height:"133.33%",pointerEvents:"none"},sandbox:"allow-same-origin allow-scripts"}),G.visible&&fe.default.createElement("div",{style:{position:"absolute",left:`${G.x}px`,top:`${G.y}px`,width:"24px",height:"24px",pointerEvents:"none",zIndex:100,transition:"all 0.3s ease-out"}},fe.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",style:{width:"100%",height:"100%"}},fe.default.createElement("path",{d:"M4 4L12 20L14 14L20 12L4 4Z",fill:"#ef4444",stroke:"white",strokeWidth:"2"})),Te?.action_type==="click"&&fe.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"40px",height:"40px",borderRadius:"50%",border:"3px solid #ef4444",animation:"ripple 0.6s ease-out",opacity:0}})),V&&fe.default.createElement("div",{style:{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.8)",color:"#60a5fa",padding:"8px 12px",borderRadius:"6px",fontSize:"12px",fontFamily:Ee.mono,zIndex:100}},V),Te&&fe.default.createElement("div",{style:{position:"absolute",top:"60px",left:"16px",background:"rgba(0,0,0,0.8)",color:"white",padding:"8px 16px",borderRadius:"6px",fontSize:"13px",display:"flex",alignItems:"center",gap:"8px",zIndex:100}},fe.default.createElement("span",{style:{color:QS[Te.action_type]||"#94a3b8",fontWeight:"600"}},sj[Te.action_type]||"[?]"),fe.default.createElement("span",null,Te.action_type),Te.value&&fe.default.createElement("span",{style:{color:"rgba(255,255,255,0.6)",maxWidth:"200px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},": ",Te.value))),fe.default.createElement("div",{className:n?"":"absolute top-4 left-4 flex items-center gap-2 text-white px-3 py-1 rounded-full text-sm",style:{position:"absolute",top:"16px",left:"16px",display:"flex",alignItems:"center",gap:"8px",background:s?.status==="recording"?"#ef4444":x?"#10b981":"#6b7280",color:"white",padding:"6px 12px",borderRadius:"999px",fontSize:"13px",fontWeight:"500"}},s?.status==="recording"?fe.default.createElement("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:"white",animation:"pulse 1.5s ease-in-out infinite"}}):x?fe.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},fe.default.createElement("path",{d:"M0 0L10 6L0 12V0Z"})):fe.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},fe.default.createElement("rect",{x:"0",y:"0",width:"3",height:"12"}),fe.default.createElement("rect",{x:"7",y:"0",width:"3",height:"12"})),s?.status==="recording"?"REC":x?"Playing":"Paused"),Te?.selector&&fe.default.createElement("div",{className:n?"":"absolute bottom-4 left-4 bg-black/75 text-white px-3 py-1 rounded text-sm font-mono",style:n?{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.75)",color:"white",padding:"6px 12px",borderRadius:"6px",fontSize:"13px",fontFamily:Ee.mono}:{}},Te.selector)),fe.default.createElement("div",{className:n?"":"w-80 border-l border-gray-200 flex flex-col",style:n?{width:"320px",borderLeft:"1px solid rgba(255,255,255,0.1)",display:"flex",flexDirection:"column"}:{}},fe.default.createElement("div",{className:n?"":"flex-1 overflow-auto",style:n?{flex:1,overflowY:"auto"}:{}},fe.default.createElement("div",{className:n?"":"p-3 border-b border-gray-100 font-medium text-sm text-gray-700",style:n?{padding:"12px 16px",borderBottom:"1px solid rgba(255,255,255,0.1)",fontWeight:"500",fontSize:"14px",color:"rgba(255,255,255,0.8)"}:{}},"Actions (",c.length,")"),c.map((W,q)=>{let A=q===v,I=q{y(q),m(!1)},className:n?"":`px-4 py-3 cursor-pointer border-b border-gray-50 hover:bg-gray-50 ${A?"bg-red-50 border-l-2 border-l-red-500":""}`,style:n?{padding:"12px 16px",cursor:"pointer",borderBottom:"1px solid rgba(255,255,255,0.05)",background:A?"rgba(239, 68, 68, 0.15)":"transparent",borderLeft:A?"3px solid #ef4444":"3px solid transparent",opacity:I?.6:1}:{opacity:I?.6:1}},fe.default.createElement("div",{className:"flex items-center gap-2"},fe.default.createElement("span",{style:{color:K,fontFamily:Ee.mono,fontSize:"12px",fontWeight:"600"}},sj[W.action_type]||"[?]"),fe.default.createElement("span",{className:n?"":"text-sm font-medium text-gray-900",style:n?{fontSize:"14px",fontWeight:"500",color:"white"}:{}},W.action_type),fe.default.createElement("span",{className:n?"":"text-xs text-gray-400 ml-auto",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.4)",marginLeft:"auto"}:{}},ge(W.timestamp_ms))),W.value&&fe.default.createElement("div",{className:n?"":"text-xs text-gray-500 mt-1 truncate",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.5)",marginTop:"4px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},W.value.length>50?W.value.substring(0,50)+"...":W.value),W.selector&&fe.default.createElement("div",{className:n?"":"text-xs text-blue-500 mt-1 font-mono truncate",style:n?{fontSize:"11px",color:"#60a5fa",marginTop:"4px",fontFamily:Ee.mono,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},W.selector))})))),fe.default.createElement("div",{className:n?"":"border-t border-gray-200 p-4",style:n?{borderTop:"1px solid rgba(255,255,255,0.1)",padding:"16px 24px"}:{}},fe.default.createElement("div",{ref:_,onClick:se,className:n?"":"h-2 bg-gray-200 rounded-full mb-4 cursor-pointer relative",style:n?{height:"8px",background:"rgba(255,255,255,0.1)",borderRadius:"4px",marginBottom:"16px",cursor:"pointer",position:"relative"}:{}},fe.default.createElement("div",{className:n?"":"absolute h-full bg-red-500 rounded-full",style:{width:`${ie}%`,height:"100%",background:"#ef4444",borderRadius:"4px",position:"absolute"}}),c.map((W,q)=>{let A=s?.duration_ms?W.timestamp_ms/s.duration_ms*100:0,I=QS[W.action_type]||"#94a3b8";return fe.default.createElement("div",{key:q,className:n?"":"absolute w-1 h-3 -top-0.5 transform -translate-x-1/2",style:{left:`${A}%`,width:"3px",height:"12px",top:"-2px",transform:"translateX(-50%)",background:q===v?I:"rgba(255,255,255,0.3)",borderRadius:"2px",position:"absolute"}})})),fe.default.createElement("div",{className:n?"":"flex items-center justify-between",style:n?{display:"flex",alignItems:"center",justifyContent:"space-between"}:{}},fe.default.createElement("div",{className:"flex items-center gap-4"},fe.default.createElement("div",{className:"flex items-center gap-2"},fe.default.createElement("button",{onClick:J,disabled:v===0,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:v===0?"not-allowed":"pointer",opacity:v===0?.5:1}:{}},"<<"),fe.default.createElement("button",{onClick:F,className:n?"":"p-3 rounded-full bg-red-500 text-white hover:bg-red-600",style:n?{padding:"12px 24px",background:"#ef4444",border:"none",borderRadius:"999px",color:"white",cursor:"pointer",fontWeight:"500"}:{}},x?"Pause":"Play"),fe.default.createElement("button",{onClick:X,disabled:v>=c.length-1,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:v>=c.length-1?"not-allowed":"pointer",opacity:v>=c.length-1?.5:1}:{}},">>")),fe.default.createElement("span",{className:n?"":"text-sm text-gray-600 font-mono",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.7)",fontFamily:Ee.mono}:{}},ge(Te?.timestamp_ms||0)," / ",ge(s?.duration_ms||0))),fe.default.createElement("div",{className:"flex items-center gap-2"},fe.default.createElement("span",{className:n?"":"text-sm text-gray-500",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.5)"}:{}},"Speed:"),[.5,1,2,4].map(W=>fe.default.createElement("button",{key:W,onClick:()=>k(W),className:n?"":`px-2 py-1 rounded text-sm ${b===W?"bg-red-500 text-white":"bg-gray-100 text-gray-600"}`,style:n?{padding:"4px 10px",background:b===W?"#ef4444":"rgba(255,255,255,0.1)",color:"white",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"13px"}:{}},W,"x")))))):fe.default.createElement("div",{className:"flex items-center justify-center h-64"},fe.default.createElement("div",{className:"text-gray-500"},"No recording available"))}var le=Q(R());var Ny=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function RS({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:a}=Ze(),[i,o]=(0,le.useState)(null),[l,s]=(0,le.useState)(!1),[u,c]=(0,le.useState)(!1),[d,f]=(0,le.useState)(!1),[p,g]=(0,le.useState)(null);(0,le.useEffect)(()=>{fetch("/api/usage").then(k=>k.ok?k.json():null).then(k=>o(k?.usage||null)).catch(()=>o(null))},[]);let h=async()=>{f(!0),g(null);try{await nc({planSlug:"pro"})}catch(k){g(k.message),f(!1)}},x=()=>{e?.telemetry_api_key&&navigator.clipboard.writeText(e.telemetry_api_key).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)})},m={backgroundColor:a?"#1f1f1f":"#ffffff",borderColor:a?"#2a2a2a":"#e5e7eb"},v=r?.plan_name||"Free",y={free:{seats:1,workspaces:1,agents:3,traces:"250/mo trial"},pro:{seats:5,workspaces:3,agents:"Unlimited",traces:"25,000/mo"},enterprise:{seats:"Unlimited",workspaces:"Unlimited",agents:"Unlimited",traces:"500,000+/mo"}},b=y[v.toLowerCase()]||y.free;return le.default.createElement("div",{className:"p-6 space-y-6"},le.default.createElement("div",null,le.default.createElement("h2",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},"Organization"),le.default.createElement("p",{className:`mt-1 ${a?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),le.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Workspace"),le.default.createElement("div",{className:"space-y-3"},le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Name"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Owner"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Created"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("div",{className:"flex items-center justify-between mb-4"},le.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Current Plan"),le.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},v)),le.default.createElement("div",{className:"space-y-3"},le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Team Seats"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},b.seats)),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Workspaces"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},b.workspaces)),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Agents"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},b.agents)),le.default.createElement("div",{className:"flex justify-between items-center"},le.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Traces"),le.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},b.traces))),v.toLowerCase()!=="enterprise"&&le.default.createElement(le.default.Fragment,null,le.default.createElement("button",{onClick:h,disabled:d,className:"mt-4 w-full px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},d?"Redirecting to checkout\u2026":"Upgrade Plan"),p&&le.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},p)))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("div",{className:"flex items-center justify-between mb-4"},le.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Team Members"),le.default.createElement("button",{className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),le.default.createElement("div",{className:"overflow-hidden"},le.default.createElement("table",{className:"min-w-full"},le.default.createElement("thead",null,le.default.createElement("tr",{className:a?"border-b border-gray-700":"border-b border-gray-200"},le.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Member"),le.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Role"),le.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Status"))),le.default.createElement("tbody",null,le.default.createElement("tr",null,le.default.createElement("td",{className:"py-3 px-4"},le.default.createElement("div",{className:"flex items-center space-x-3"},le.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},le.default.createElement("span",{className:"text-red-600 font-medium text-sm"},t?.name?.charAt(0).toUpperCase()||"U")),le.default.createElement("div",null,le.default.createElement("p",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.name||"You"),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},t?.email)))),le.default.createElement("td",{className:"py-3 px-4"},le.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},"Owner")),le.default.createElement("td",{className:"py-3 px-4"},le.default.createElement("span",{className:"flex items-center text-green-600"},le.default.createElement("span",{className:"w-2 h-2 bg-green-500 rounded-full mr-2"}),"Active"))))))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Usage This Month"),le.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},n),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Agents")),le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},Ny(i?.traces_used),i?.traces_limit>0&&le.default.createElement("span",{className:`text-sm font-normal ${a?"text-gray-500":"text-gray-400"}`}," / ",Ny(i.traces_limit))),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Traces")),le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},Ny(i?.runs_used)),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Executions")),le.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},le.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},Ny(i?.tokens_used)),le.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Tokens")))),le.default.createElement("div",{className:"border rounded-lg p-6",style:m},le.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${a?"text-white":"text-gray-900"}`},"Telemetry"),le.default.createElement("p",{className:`text-sm mb-4 ${a?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",le.default.createElement("code",{className:`px-1 rounded text-xs ${a?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),le.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${a?"bg-black text-gray-300":"bg-gray-900 text-gray-100"}`},`telemetry: enabled: true endpoint: ${window.location.origin}/v1/traces - api_key: <%= ENV["ACTIVEAGENTS_API_KEY"] %>`),le.default.createElement("div",{className:"flex items-center justify-between gap-3"},le.default.createElement("div",{className:"min-w-0 flex-1"},le.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${a?"text-gray-500":"text-gray-400"}`},"API Key"),le.default.createElement("code",{className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${a?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},e?.telemetry_api_key?u?e.telemetry_api_key:"\u2022".repeat(24):"Not available")),le.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},le.default.createElement("button",{onClick:()=>c(!u),className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},u?"Hide":"Show"),le.default.createElement("button",{onClick:b,className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},l?"Copied!":"Copy")))))}var ae=J(R());var ej={openai:{label:"OpenAI",icon:"\u{1F916}",placeholder:"sk-\u2026"},anthropic:{label:"Anthropic",icon:"\u{1F9E0}",placeholder:"sk-ant-\u2026"},openrouter:{label:"OpenRouter",icon:"\u{1F500}",placeholder:"sk-or-\u2026"},ollama:{label:"Ollama",icon:"\u{1F999}",placeholder:"http://localhost:11434/v1"}};function GS({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=it(),[a,i]=(0,ae.useState)("profile"),[o,l]=(0,ae.useState)([]),[s,u]=(0,ae.useState)([]),[c,d]=(0,ae.useState)(!1),[f,p]=(0,ae.useState)(""),[v,g]=(0,ae.useState)(!1),[b,m]=(0,ae.useState)(null),[h,x]=(0,ae.useState)(!1),[w,E]=(0,ae.useState)(null),[C,T]=(0,ae.useState)(null),[_,I]=(0,ae.useState)(""),[z,B]=(0,ae.useState)(!1),$=(0,ae.useCallback)(async()=>{try{let[A,k]=await Promise.all([fetch("/api/api_keys"),fetch("/api/provider_keys")]);if(!A.ok||!k.ok)throw new Error("Failed to load keys");let V=await A.json(),G=await k.json();l(V.api_keys||[]),u(G.provider_keys||[]),E(null)}catch{E("Could not load API keys. Are you signed in?")}finally{d(!0)}},[]);(0,ae.useEffect)(()=>{a==="api-keys"&&!c&&$()},[a,c,$]);let X=async()=>{if(!(!f.trim()||v)){g(!0),E(null);try{let A=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.trim()})});if(!A.ok)throw new Error("create failed");let k=await A.json();m(k.api_key),x(!1),p(""),await $()}catch{E("Could not create the API key.")}finally{g(!1)}}},H=async A=>{if(window.confirm("Revoke this API key? Requests using it will stop working immediately."))try{if(!(await fetch(`/api/api_keys/${A}`,{method:"DELETE"})).ok)throw new Error("delete failed");b&&b.id===A&&m(null),await $()}catch{E("Could not revoke the API key.")}},q=async A=>{if(!(!_.trim()||z)){B(!0),E(null);try{let k=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:A,credential:_.trim()})});if(!k.ok){let V=await k.json().catch(()=>({}));throw new Error(Array.isArray(V.error)?V.error.join(", "):"save failed")}T(null),I(""),await $()}catch(k){E(`Could not save the ${ej[A]?.label||A} credential${k.message!=="save failed"?`: ${k.message}`:"."}`)}finally{B(!1)}}},y=async A=>{if(window.confirm("Remove this provider credential? Runs will fall back to the platform default credentials, or fail until a key is configured."))try{if(!(await fetch(`/api/provider_keys/${A}`,{method:"DELETE"})).ok)throw new Error("delete failed");await $()}catch{E("Could not remove the provider credential.")}},N=async A=>{try{await navigator.clipboard.writeText(A),x(!0),setTimeout(()=>x(!1),2e3)}catch{}},O={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return ae.default.createElement("div",{className:"p-6 space-y-6"},ae.default.createElement("div",null,ae.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),ae.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),ae.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},ae.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(A=>ae.default.createElement("button",{key:A.id,onClick:()=>i(A.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${a===A.id?"border-red-500 text-red-500":`border-transparent ${r?"text-gray-400 hover:text-gray-300":"text-gray-500 hover:text-gray-700"}`}`},A.label)))),a==="profile"&&ae.default.createElement("div",{className:"space-y-6"},ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),ae.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},ae.default.createElement("div",null,ae.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),ae.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[0]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),ae.default.createElement("div",null,ae.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),ae.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[1]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),ae.default.createElement("div",{className:"md:col-span-2"},ae.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),ae.default.createElement("input",{type:"email",defaultValue:e?.email||"",disabled:!0,className:`w-full px-3 py-2 border rounded-lg cursor-not-allowed ${r?"bg-gray-900 border-gray-700 text-gray-500":"bg-gray-100 border-gray-300 text-gray-500"}`}))),ae.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),ae.default.createElement("div",{className:"flex items-center justify-between"},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Dark Mode"),ae.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Use dark theme across the dashboard")),ae.default.createElement("button",{onClick:n,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${r?"bg-red-500":"bg-gray-300"}`},ae.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${r?"translate-x-6":"translate-x-1"}`}))))),a==="api-keys"&&ae.default.createElement("div",{className:"space-y-6"},ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("div",{className:"flex items-center justify-between mb-4"},ae.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),ae.default.createElement("div",{className:"flex items-center space-x-2"},ae.default.createElement("input",{type:"text",value:f,onChange:A=>p(A.target.value),onKeyDown:A=>A.key==="Enter"&&X(),placeholder:"Key name (e.g. production)",className:`px-3 py-2 border rounded-lg text-sm ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),ae.default.createElement("button",{onClick:X,disabled:!f.trim()||v,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},v?"Creating\u2026":"+ Create New Key"))),ae.default.createElement("div",{className:`p-4 rounded-lg mb-4 ${r?"bg-yellow-900/20 border border-yellow-800":"bg-yellow-50 border border-yellow-200"}`},ae.default.createElement("p",{className:`text-sm ${r?"text-yellow-300":"text-yellow-800"}`},"\u26A0\uFE0F API keys are secrets. Never share them or commit them to version control.")),w&&ae.default.createElement("div",{className:`p-4 rounded-lg mb-4 text-sm ${r?"bg-red-900/20 border border-red-800 text-red-300":"bg-red-50 border border-red-200 text-red-700"}`},w),b&&ae.default.createElement("div",{className:`p-4 rounded-lg mb-4 border ${r?"bg-green-900/20 border-green-800":"bg-green-50 border-green-200"}`},ae.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",b.name,"\u201D created. Copy it now \u2014 it won't be shown again."),ae.default.createElement("div",{className:"flex items-center space-x-2"},ae.default.createElement("code",{className:`flex-1 px-3 py-2 rounded text-sm font-mono break-all ${r?"bg-gray-900 text-green-300":"bg-white text-green-800 border border-green-200"}`},b.token),ae.default.createElement("button",{onClick:()=>N(b.token),className:`px-3 py-2 text-sm rounded ${r?"bg-gray-700 text-gray-200 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},h?"Copied!":"Copy"),ae.default.createElement("button",{onClick:()=>m(null),className:`px-3 py-2 text-sm rounded ${r?"text-gray-400 hover:text-gray-200":"text-gray-500 hover:text-gray-700"}`},"Dismiss"))),o.length===0?ae.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},ae.default.createElement("p",null,c?"No API keys yet":"Loading\u2026"),c&&ae.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):ae.default.createElement("div",{className:"space-y-2"},o.map(A=>ae.default.createElement("div",{key:A.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},A.name),ae.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},A.masked_token,ae.default.createElement("span",{className:"font-sans"}," \xB7 created ",new Date(A.created_at).toLocaleDateString(),A.last_used_at?` \xB7 last used ${new Date(A.last_used_at).toLocaleDateString()}`:" \xB7 never used"))),ae.default.createElement("button",{onClick:()=>H(A.id),className:`px-3 py-1 text-sm rounded ${r?"bg-red-900/40 text-red-300 hover:bg-red-900/60":"bg-red-50 text-red-600 hover:bg-red-100"}`},"Revoke"))))),ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Provider API Keys"),ae.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"Configure your own LLM provider credentials. Agent runs and evaluations on this account use these instead of the platform defaults. Keys are encrypted at rest."),ae.default.createElement("div",{className:"space-y-4"},s.map(({provider:A,host_based:k,configured:V,hint:G})=>{let Q=ej[A]||{label:A,icon:"\u{1F511}",placeholder:""},se=C===A;return ae.default.createElement("div",{key:A,className:"p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},ae.default.createElement("div",{className:"flex items-center justify-between"},ae.default.createElement("div",{className:"flex items-center space-x-3"},ae.default.createElement("span",{className:"text-xl"},Q.icon),ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},Q.label),ae.default.createElement("p",{className:`text-sm ${V?r?"text-green-400":"text-green-600":r?"text-gray-400":"text-gray-500"}`},V?k?G:`Configured (${G})`:"Not configured"))),ae.default.createElement("div",{className:"flex items-center space-x-2"},V&&!se&&ae.default.createElement("button",{onClick:()=>y(A),className:`px-3 py-1 text-sm rounded ${r?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),ae.default.createElement("button",{onClick:()=>{T(se?null:A),I("")},className:`px-3 py-1 text-sm rounded ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},se?"Cancel":V?"Update":"Configure"))),se&&ae.default.createElement("div",{className:"mt-3 flex items-center space-x-2"},ae.default.createElement("input",{type:k?"text":"password",value:_,onChange:ue=>I(ue.target.value),onKeyDown:ue=>ue.key==="Enter"&&q(A),placeholder:k?Q.placeholder:`${Q.label} API key (${Q.placeholder})`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),ae.default.createElement("button",{onClick:()=>q(A),disabled:!_.trim()||z,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},z?"Saving\u2026":"Save")),k&&se&&ae.default.createElement("p",{className:`mt-2 text-xs ${r?"text-gray-500":"text-gray-400"}`},"URL of your Ollama server's OpenAI-compatible endpoint. For a locally running Ollama use http://localhost:11434/v1 (the hosted platform needs a publicly reachable URL, e.g. a tunnel)."))})))),a==="notifications"&&ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),ae.default.createElement("div",{className:"space-y-4"},[{label:"Agent execution alerts",desc:"Get notified when agents fail or complete",enabled:!0},{label:"Weekly usage reports",desc:"Summary of traces, costs, and performance",enabled:!0},{label:"Security alerts",desc:"Important security notifications",enabled:!0},{label:"Product updates",desc:"New features and improvements",enabled:!1}].map((A,k)=>ae.default.createElement("div",{key:k,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},A.label),ae.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},A.desc)),ae.default.createElement("button",{className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${A.enabled?"bg-red-500":r?"bg-gray-700":"bg-gray-300"}`},ae.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${A.enabled?"translate-x-6":"translate-x-1"}`})))))),a==="billing"&&ae.default.createElement("div",{className:"space-y-6"},ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),ae.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),ae.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),ae.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),ae.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),ae.default.createElement("button",{className:`mt-4 px-4 py-2 rounded-lg ${r?"bg-gray-700 text-gray-300":"bg-gray-200 text-gray-700"}`},"Add Payment Method")),ae.default.createElement("div",{className:"border rounded-lg p-6",style:O},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),ae.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}function sQ({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:a=null}){let{darkMode:i}=it(),[o,l]=(0,ze.useState)(t),[s,u]=(0,ze.useState)("list"),[c,d]=(0,ze.useState)(null),[f,p]=(0,ze.useState)(!1),[v,g]=(0,ze.useState)(null),[b,m]=(0,ze.useState)(!1),[h,x]=(0,ze.useState)("recent");(0,ze.useEffect)(()=>{let y=()=>{let N=window.location.pathname;if(N.includes("/traces"))u("traces");else if(N.includes("/metrics"))u("metrics");else if(N.includes("/interactions")&&!N.includes("/agents/"))u("interactions");else if(N.includes("/evaluations"))u("evaluations");else if(N.includes("/analytics")&&!N.includes("/agents/"))u("analytics");else if(N.includes("/agents/new"))u("builder");else if(N.match(/\/agents\/\d+\/(interactions|history)/)){let O=N.match(/\/agents\/(\d+)/)?.[1];N.includes("/history")&&window.history.replaceState({},"",N.replace("/history","/interactions")),O&&w(O,"history")}else if(N.match(/\/agents\/\d+\/analytics/)){let O=N.match(/\/agents\/(\d+)/)?.[1];O&&w(O,"agent-analytics")}else if(N.match(/\/agents\/\d+\/edit/)){let O=N.match(/\/agents\/(\d+)/)?.[1];O&&w(O,"editor")}else if(N.match(/\/agents\/\d+\/run/)){let O=N.match(/\/agents\/(\d+)/)?.[1];O&&w(O,"runner")}else if(N.match(/\/agents\/\d+\/?$/)){let O=N.match(/\/agents\/(\d+)/)?.[1];O&&w(O,"history")}else N.includes("/benchmarks")?u("benchmarks"):N.includes("/replay")?u("replay"):N.includes("/sandbox")||N.includes("/demo")?u("sandbox"):N.includes("/organization")?u("organization"):N.includes("/settings")?u("settings"):u("list")};return y(),window.addEventListener("popstate",y),window.addEventListener("dashboard:navigate",y),()=>{window.removeEventListener("popstate",y),window.removeEventListener("dashboard:navigate",y)}},[]);let w=async(y,N)=>{p(!0);try{let M=await(await fetch(`/api/agents/${y}`)).json();d(M.agent),u(N)}catch{T("Failed to load agent","error")}finally{p(!1)}},E=async(y=h)=>{p(!0);try{let O=await(await fetch(`/api/agents?sort=${y}`)).json();l(O.agents)}catch{T("Failed to refresh agents","error")}finally{p(!1)}},C=y=>{x(y),E(y)},T=(y,N="info")=>{g({message:y,type:N}),setTimeout(()=>g(null),3e3)},_=async y=>{p(!0);try{let N=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:y})});if(N.ok){let O=await N.json();l([O.agent,...o]),d(O.agent),u("editor"),T("Agent created successfully!","success"),window.history.pushState({},"",Je(`/agents/${O.agent.id}/edit`))}else{let O=await N.json();T(O.errors?.join(", ")||"Failed to create agent","error")}}catch{T("Failed to create agent","error")}finally{p(!1)}},I=async(y,N)=>{p(!0);try{let O=await fetch(`/api/agents/${y}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:N})});if(O.ok){let M=await O.json();l(o.map(A=>A.id===y?M.agent:A)),d(M.agent),T("Agent updated!","success")}else{let M=await O.json();T(M.errors?.join(", ")||"Failed to update agent","error")}}catch{T("Failed to update agent","error")}finally{p(!1)}},z=async y=>{if(confirm("Are you sure you want to delete this agent?")){p(!0);try{(await fetch(`/api/agents/${y}`,{method:"DELETE"})).ok&&(l(o.filter(O=>O.id!==y)),d(null),u("list"),T("Agent deleted","success"),window.history.pushState({},"",Je()))}catch{T("Failed to delete agent","error")}finally{p(!1)}}},B=async y=>{p(!0);try{let N=await fetch(`/api/agents/${y}/duplicate`,{method:"POST"});if(N.ok){let O=await N.json();l([O.agent,...o]),T("Agent duplicated!","success")}}catch{T("Failed to duplicate agent","error")}finally{p(!1)}},$=y=>{l([y,...o]),d(y),u("editor"),m(!1),T("Agent created from template!","success"),window.history.pushState({},"",Je(`/agents/${y.id}/edit`))},X=["editor","runner","agent-analytics","history"],H=(y,N=null)=>{N?.id&&X.includes(y)&&N.instructions===void 0?w(N.id,y):(d(N),u(y));let O=Je();y==="builder"?O=Je("/agents/new"):y==="editor"&&N?O=Je(`/agents/${N.id}/edit`):y==="runner"&&N?O=Je(`/agents/${N.id}/run`):y==="agent-analytics"&&N?O=Je(`/agents/${N.id}/analytics`):y==="history"&&N?O=Je(`/agents/${N.id}/interactions`):y==="analytics"?O=Je("/analytics"):y==="traces"?O=Je("/traces"):y==="metrics"?O=Je("/metrics"):y==="interactions"?O=Je("/interactions"):y==="evaluations"?O=Je("/evaluations"):y==="benchmarks"?O=Je("/benchmarks"):y==="replay"?O=Je("/replay"):y==="sandbox"?O=Je("/sandbox"):y==="organization"?O=Je("/organization"):y==="settings"&&(O=Je("/settings")),window.history.pushState({},"",O)},q=()=>{switch(s){case"builder":return ze.default.createElement(ub,{meta:r,onSave:_,onCancel:()=>H("list"),isLoading:f});case"editor":return c?ze.default.createElement(my,{key:`editor-${c.id}`,agent:c,meta:r,onSave:y=>I(c.id,y),onDelete:()=>z(c.id),onRun:()=>H("runner",c),onDuplicate:()=>B(c.id),onRunReport:()=>H("history",c),onBack:()=>H("list"),isLoading:f}):null;case"runner":return c?ze.default.createElement(MS,{agent:c,onBack:()=>H("editor",c)}):null;case"agent-analytics":return c?ze.default.createElement(my,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:y=>I(c.id,y),onDelete:()=>z(c.id),onRun:()=>H("runner",c),onDuplicate:()=>B(c.id),onRunReport:()=>H("history",c),onBack:()=>H("list"),isLoading:f}):null;case"history":return c?ze.default.createElement(PS,{agent:c,onBack:()=>H("editor",c)}):null;case"analytics":return ze.default.createElement(DS,{onSelectAgent:y=>{w(y.id,"agent-analytics")}});case"traces":return ze.default.createElement(zl,null);case"metrics":return ze.default.createElement(BS,null);case"interactions":return ze.default.createElement(Si,null);case"evaluations":return ze.default.createElement(zf,null);case"replay":return ze.default.createElement(WS,{onHandoff:y=>{T("Taking over session...","info"),H("sandbox")},onClose:()=>H("list")});case"sandbox":return ze.default.createElement(YS,{initialType:"playwright_mcp",onClose:()=>H("list")});case"organization":return ze.default.createElement(KS,{user:e,account:n,subscription:a,agentCount:o.length});case"settings":return ze.default.createElement(GS,{user:e});default:return ze.default.createElement(sb,{agents:o,meta:r,onSelect:y=>H("editor",y),onNew:()=>H("builder"),onBrowseTemplates:()=>m(!0),onDuplicate:B,onDelete:z,onRefresh:E,sort:h,onSortChange:C,isLoading:f})}};return ze.default.createElement("div",{className:"min-h-screen flex",style:{backgroundColor:i?"#0f0f0f":"#f9fafb"}},ze.default.createElement(IS,{currentView:s,onNavigate:H,agentCount:o.length,account:n,user:e,gemVersion:r.activeagentVersion}),ze.default.createElement("div",{className:"flex-1 flex flex-col"},ze.default.createElement(zS,{user:e,account:n}),ze.default.createElement("main",{className:"flex-1 p-6 overflow-auto"},q())),b&&ze.default.createElement(jS,{onUseTemplate:$,onClose:()=>m(!1)}),v&&ze.default.createElement("div",{className:`fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-lg transition-all transform ${v.type==="error"?"bg-red-500":v.type==="success"?"bg-green-500":"bg-blue-500"} text-white`},v.message),f&&ze.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},ze.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${i?"bg-gray-800":"bg-white"}`},ze.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function XS(e){return ze.default.createElement($_,null,ze.default.createElement(_P,null,ze.default.createElement(sQ,{...e})))}var uQ="active-agent-dashboard";function cQ(e){let t=e.replace(/\/$/,"");if(!t)return;let r=window.fetch.bind(window);window.fetch=(n,a)=>{if(typeof n=="string"&&n.startsWith("/api/"))return r(`${t}${n}`,a);if(n instanceof Request&&new URL(n.url,window.location.origin).pathname.startsWith("/api/")){let i=new URL(n.url,window.location.origin);return r(new Request(`${t}${i.pathname}${i.search}`,n),a)}return r(n,a)}}function tj(){let e=document.getElementById(uQ);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,cQ(t.mountPath||"/"),(0,nj.createRoot)(e).render(rj.default.createElement(XS,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",tj):tj(); + api_key: <%= ENV["ACTIVEAGENTS_API_KEY"] %>`),le.default.createElement("div",{className:"flex items-center justify-between gap-3"},le.default.createElement("div",{className:"min-w-0 flex-1"},le.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${a?"text-gray-500":"text-gray-400"}`},"API Key"),le.default.createElement("code",{className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${a?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},e?.telemetry_api_key?u?e.telemetry_api_key:"\u2022".repeat(24):"Not available")),le.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},le.default.createElement("button",{onClick:()=>c(!u),className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},u?"Hide":"Show"),le.default.createElement("button",{onClick:x,className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},l?"Copied!":"Copy")))))}var ae=Q(R());var uj={openai:{label:"OpenAI",icon:"\u{1F916}",placeholder:"sk-\u2026"},anthropic:{label:"Anthropic",icon:"\u{1F9E0}",placeholder:"sk-ant-\u2026"},openrouter:{label:"OpenRouter",icon:"\u{1F500}",placeholder:"sk-or-\u2026"},ollama:{label:"Ollama",icon:"\u{1F999}",placeholder:"http://localhost:11434/v1"}};function eA({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=Ze(),[a,i]=(0,ae.useState)("profile"),[o,l]=(0,ae.useState)([]),[s,u]=(0,ae.useState)([]),[c,d]=(0,ae.useState)(!1),[f,p]=(0,ae.useState)(""),[g,h]=(0,ae.useState)(!1),[x,m]=(0,ae.useState)(null),[v,y]=(0,ae.useState)(!1),[b,k]=(0,ae.useState)(null),[N,D]=(0,ae.useState)(null),[_,M]=(0,ae.useState)(""),[z,$]=(0,ae.useState)(!1),U=(0,ae.useCallback)(async()=>{try{let[S,T]=await Promise.all([fetch("/api/api_keys"),fetch("/api/provider_keys")]);if(!S.ok||!T.ok)throw new Error("Failed to load keys");let F=await S.json(),X=await T.json();l(F.api_keys||[]),u(X.provider_keys||[]),k(null)}catch{k("Could not load API keys. Are you signed in?")}finally{d(!0)}},[]);(0,ae.useEffect)(()=>{a==="api-keys"&&!c&&U()},[a,c,U]);let G=async()=>{if(!(!f.trim()||g)){h(!0),k(null);try{let S=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.trim()})});if(!S.ok)throw new Error("create failed");let T=await S.json();m(T.api_key),y(!1),p(""),await U()}catch{k("Could not create the API key.")}finally{h(!1)}}},j=async S=>{if(window.confirm("Revoke this API key? Requests using it will stop working immediately."))try{if(!(await fetch(`/api/api_keys/${S}`,{method:"DELETE"})).ok)throw new Error("delete failed");x&&x.id===S&&m(null),await U()}catch{k("Could not revoke the API key.")}},V=async S=>{if(!(!_.trim()||z)){$(!0),k(null);try{let T=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:S,credential:_.trim()})});if(!T.ok){let F=await T.json().catch(()=>({}));throw new Error(Array.isArray(F.error)?F.error.join(", "):"save failed")}D(null),M(""),await U()}catch(T){k(`Could not save the ${uj[S]?.label||S} credential${T.message!=="save failed"?`: ${T.message}`:"."}`)}finally{$(!1)}}},w=async S=>{if(window.confirm("Remove this provider credential? Runs will fall back to the platform default credentials, or fail until a key is configured."))try{if(!(await fetch(`/api/provider_keys/${S}`,{method:"DELETE"})).ok)throw new Error("delete failed");await U()}catch{k("Could not remove the provider credential.")}},O=async S=>{try{await navigator.clipboard.writeText(S),y(!0),setTimeout(()=>y(!1),2e3)}catch{}},E={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return ae.default.createElement("div",{className:"p-6 space-y-6"},ae.default.createElement("div",null,ae.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),ae.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),ae.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},ae.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(S=>ae.default.createElement("button",{key:S.id,onClick:()=>i(S.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${a===S.id?"border-red-500 text-red-500":`border-transparent ${r?"text-gray-400 hover:text-gray-300":"text-gray-500 hover:text-gray-700"}`}`},S.label)))),a==="profile"&&ae.default.createElement("div",{className:"space-y-6"},ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),ae.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},ae.default.createElement("div",null,ae.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),ae.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[0]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),ae.default.createElement("div",null,ae.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),ae.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[1]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),ae.default.createElement("div",{className:"md:col-span-2"},ae.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),ae.default.createElement("input",{type:"email",defaultValue:e?.email||"",disabled:!0,className:`w-full px-3 py-2 border rounded-lg cursor-not-allowed ${r?"bg-gray-900 border-gray-700 text-gray-500":"bg-gray-100 border-gray-300 text-gray-500"}`}))),ae.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),ae.default.createElement("div",{className:"flex items-center justify-between"},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Dark Mode"),ae.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Use dark theme across the dashboard")),ae.default.createElement("button",{onClick:n,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${r?"bg-red-500":"bg-gray-300"}`},ae.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${r?"translate-x-6":"translate-x-1"}`}))))),a==="api-keys"&&ae.default.createElement("div",{className:"space-y-6"},ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("div",{className:"flex items-center justify-between mb-4"},ae.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),ae.default.createElement("div",{className:"flex items-center space-x-2"},ae.default.createElement("input",{type:"text",value:f,onChange:S=>p(S.target.value),onKeyDown:S=>S.key==="Enter"&&G(),placeholder:"Key name (e.g. production)",className:`px-3 py-2 border rounded-lg text-sm ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),ae.default.createElement("button",{onClick:G,disabled:!f.trim()||g,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},g?"Creating\u2026":"+ Create New Key"))),ae.default.createElement("div",{className:`p-4 rounded-lg mb-4 ${r?"bg-yellow-900/20 border border-yellow-800":"bg-yellow-50 border border-yellow-200"}`},ae.default.createElement("p",{className:`text-sm ${r?"text-yellow-300":"text-yellow-800"}`},"\u26A0\uFE0F API keys are secrets. Never share them or commit them to version control.")),b&&ae.default.createElement("div",{className:`p-4 rounded-lg mb-4 text-sm ${r?"bg-red-900/20 border border-red-800 text-red-300":"bg-red-50 border border-red-200 text-red-700"}`},b),x&&ae.default.createElement("div",{className:`p-4 rounded-lg mb-4 border ${r?"bg-green-900/20 border-green-800":"bg-green-50 border-green-200"}`},ae.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",x.name,"\u201D created. Copy it now \u2014 it won't be shown again."),ae.default.createElement("div",{className:"flex items-center space-x-2"},ae.default.createElement("code",{className:`flex-1 px-3 py-2 rounded text-sm font-mono break-all ${r?"bg-gray-900 text-green-300":"bg-white text-green-800 border border-green-200"}`},x.token),ae.default.createElement("button",{onClick:()=>O(x.token),className:`px-3 py-2 text-sm rounded ${r?"bg-gray-700 text-gray-200 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},v?"Copied!":"Copy"),ae.default.createElement("button",{onClick:()=>m(null),className:`px-3 py-2 text-sm rounded ${r?"text-gray-400 hover:text-gray-200":"text-gray-500 hover:text-gray-700"}`},"Dismiss"))),o.length===0?ae.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},ae.default.createElement("p",null,c?"No API keys yet":"Loading\u2026"),c&&ae.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):ae.default.createElement("div",{className:"space-y-2"},o.map(S=>ae.default.createElement("div",{key:S.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},S.name),ae.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},S.masked_token,ae.default.createElement("span",{className:"font-sans"}," \xB7 created ",new Date(S.created_at).toLocaleDateString(),S.last_used_at?` \xB7 last used ${new Date(S.last_used_at).toLocaleDateString()}`:" \xB7 never used"))),ae.default.createElement("button",{onClick:()=>j(S.id),className:`px-3 py-1 text-sm rounded ${r?"bg-red-900/40 text-red-300 hover:bg-red-900/60":"bg-red-50 text-red-600 hover:bg-red-100"}`},"Revoke"))))),ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Provider API Keys"),ae.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"Configure your own LLM provider credentials. Agent runs and evaluations on this account use these instead of the platform defaults. Keys are encrypted at rest."),ae.default.createElement("div",{className:"space-y-4"},s.map(({provider:S,host_based:T,configured:F,hint:X})=>{let J=uj[S]||{label:S,icon:"\u{1F511}",placeholder:""},se=N===S;return ae.default.createElement("div",{key:S,className:"p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},ae.default.createElement("div",{className:"flex items-center justify-between"},ae.default.createElement("div",{className:"flex items-center space-x-3"},ae.default.createElement("span",{className:"text-xl"},J.icon),ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},J.label),ae.default.createElement("p",{className:`text-sm ${F?r?"text-green-400":"text-green-600":r?"text-gray-400":"text-gray-500"}`},F?T?X:`Configured (${X})`:"Not configured"))),ae.default.createElement("div",{className:"flex items-center space-x-2"},F&&!se&&ae.default.createElement("button",{onClick:()=>w(S),className:`px-3 py-1 text-sm rounded ${r?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),ae.default.createElement("button",{onClick:()=>{D(se?null:S),M("")},className:`px-3 py-1 text-sm rounded ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},se?"Cancel":F?"Update":"Configure"))),se&&ae.default.createElement("div",{className:"mt-3 flex items-center space-x-2"},ae.default.createElement("input",{type:T?"text":"password",value:_,onChange:ce=>M(ce.target.value),onKeyDown:ce=>ce.key==="Enter"&&V(S),placeholder:T?J.placeholder:`${J.label} API key (${J.placeholder})`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),ae.default.createElement("button",{onClick:()=>V(S),disabled:!_.trim()||z,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},z?"Saving\u2026":"Save")),T&&se&&ae.default.createElement("p",{className:`mt-2 text-xs ${r?"text-gray-500":"text-gray-400"}`},"URL of your Ollama server's OpenAI-compatible endpoint. For a locally running Ollama use http://localhost:11434/v1 (the hosted platform needs a publicly reachable URL, e.g. a tunnel)."))})))),a==="notifications"&&ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),ae.default.createElement("div",{className:"space-y-4"},[{label:"Agent execution alerts",desc:"Get notified when agents fail or complete",enabled:!0},{label:"Weekly usage reports",desc:"Summary of traces, costs, and performance",enabled:!0},{label:"Security alerts",desc:"Important security notifications",enabled:!0},{label:"Product updates",desc:"New features and improvements",enabled:!1}].map((S,T)=>ae.default.createElement("div",{key:T,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},S.label),ae.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},S.desc)),ae.default.createElement("button",{className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${S.enabled?"bg-red-500":r?"bg-gray-700":"bg-gray-300"}`},ae.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${S.enabled?"translate-x-6":"translate-x-1"}`})))))),a==="billing"&&ae.default.createElement("div",{className:"space-y-6"},ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),ae.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},ae.default.createElement("div",null,ae.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),ae.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),ae.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),ae.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),ae.default.createElement("button",{className:`mt-4 px-4 py-2 rounded-lg ${r?"bg-gray-700 text-gray-300":"bg-gray-200 text-gray-700"}`},"Add Payment Method")),ae.default.createElement("div",{className:"border rounded-lg p-6",style:E},ae.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),ae.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}function CQ({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:a=null}){let{darkMode:i}=Ze(),[o,l]=(0,Le.useState)(t),[s,u]=(0,Le.useState)("list"),[c,d]=(0,Le.useState)(null),[f,p]=(0,Le.useState)(!1),[g,h]=(0,Le.useState)(null),[x,m]=(0,Le.useState)(!1),[v,y]=(0,Le.useState)("recent"),[b,k]=(0,Le.useState)(null);(0,Le.useEffect)(()=>{let E=()=>{let C=window.location.pathname;if(C.includes("/traces"))u("traces");else if(C.includes("/metrics"))u("metrics");else if(C.includes("/interactions")&&!C.includes("/agents/"))u("interactions");else if(C.includes("/tools"))u("tools");else if(C.includes("/mcp")){let S=C.match(/\/mcp\/([^/?#]+)/)?.[1];S&&k(decodeURIComponent(S)),u("mcp")}else if(C.includes("/evaluations"))u("evaluations");else if(C.includes("/analytics")&&!C.includes("/agents/"))u("analytics");else if(C.includes("/agents/new"))u("builder");else if(C.match(/\/agents\/\d+\/(interactions|history)/)){let S=C.match(/\/agents\/(\d+)/)?.[1];C.includes("/history")&&window.history.replaceState({},"",C.replace("/history","/interactions")),S&&N(S,"history")}else if(C.match(/\/agents\/\d+\/analytics/)){let S=C.match(/\/agents\/(\d+)/)?.[1];S&&N(S,"agent-analytics")}else if(C.match(/\/agents\/\d+\/edit/)){let S=C.match(/\/agents\/(\d+)/)?.[1];S&&N(S,"editor")}else if(C.match(/\/agents\/\d+\/run/)){let S=C.match(/\/agents\/(\d+)/)?.[1];S&&N(S,"runner")}else if(C.match(/\/agents\/\d+\/?$/)){let S=C.match(/\/agents\/(\d+)/)?.[1];S&&N(S,"history")}else C.includes("/benchmarks")?u("benchmarks"):C.includes("/replay")?u("replay"):C.includes("/sandbox")||C.includes("/demo")?u("sandbox"):C.includes("/organization")?u("organization"):C.includes("/settings")?u("settings"):u("list")};return E(),window.addEventListener("popstate",E),window.addEventListener("dashboard:navigate",E),()=>{window.removeEventListener("popstate",E),window.removeEventListener("dashboard:navigate",E)}},[]);let N=async(E,C)=>{p(!0);try{let T=await(await fetch(`/api/agents/${E}`)).json();d(T.agent),u(C)}catch{M("Failed to load agent","error")}finally{p(!1)}},D=async(E=v)=>{p(!0);try{let S=await(await fetch(`/api/agents?sort=${E}`)).json();l(S.agents)}catch{M("Failed to refresh agents","error")}finally{p(!1)}},_=E=>{y(E),D(E)},M=(E,C="info")=>{h({message:E,type:C}),setTimeout(()=>h(null),3e3)},z=async E=>{p(!0);try{let C=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:E})});if(C.ok){let S=await C.json();l([S.agent,...o]),d(S.agent),u("editor"),M("Agent created successfully!","success"),window.history.pushState({},"",Xe(`/agents/${S.agent.id}/edit`))}else{let S=await C.json();M(S.errors?.join(", ")||"Failed to create agent","error")}}catch{M("Failed to create agent","error")}finally{p(!1)}},$=async(E,C)=>{p(!0);try{let S=await fetch(`/api/agents/${E}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:C})});if(S.ok){let T=await S.json();l(o.map(F=>F.id===E?T.agent:F)),d(T.agent),M("Agent updated!","success")}else{let T=await S.json();M(T.errors?.join(", ")||"Failed to update agent","error")}}catch{M("Failed to update agent","error")}finally{p(!1)}},U=async E=>{if(confirm("Are you sure you want to delete this agent?")){p(!0);try{(await fetch(`/api/agents/${E}`,{method:"DELETE"})).ok&&(l(o.filter(S=>S.id!==E)),d(null),u("list"),M("Agent deleted","success"),window.history.pushState({},"",Xe()))}catch{M("Failed to delete agent","error")}finally{p(!1)}}},G=async E=>{p(!0);try{let C=await fetch(`/api/agents/${E}/duplicate`,{method:"POST"});if(C.ok){let S=await C.json();l([S.agent,...o]),M("Agent duplicated!","success")}}catch{M("Failed to duplicate agent","error")}finally{p(!1)}},j=E=>{l([E,...o]),d(E),u("editor"),m(!1),M("Agent created from template!","success"),window.history.pushState({},"",Xe(`/agents/${E.id}/edit`))},V=["editor","runner","agent-analytics","history"],w=(E,C=null)=>{C?.id&&V.includes(E)&&C.instructions===void 0?N(C.id,E):(d(C),u(E));let S=Xe();E==="builder"?S=Xe("/agents/new"):E==="editor"&&C?S=Xe(`/agents/${C.id}/edit`):E==="runner"&&C?S=Xe(`/agents/${C.id}/run`):E==="agent-analytics"&&C?S=Xe(`/agents/${C.id}/analytics`):E==="history"&&C?S=Xe(`/agents/${C.id}/interactions`):E==="analytics"?S=Xe("/analytics"):E==="traces"?S=Xe("/traces"):E==="metrics"?S=Xe("/metrics"):E==="interactions"?S=Xe("/interactions"):E==="tools"?S=Xe("/tools"):E==="mcp"?S=Xe("/mcp"):E==="evaluations"?S=Xe("/evaluations"):E==="benchmarks"?S=Xe("/benchmarks"):E==="replay"?S=Xe("/replay"):E==="sandbox"?S=Xe("/sandbox"):E==="organization"?S=Xe("/organization"):E==="settings"&&(S=Xe("/settings")),window.history.pushState({},"",S)},O=()=>{switch(s){case"builder":return Le.default.createElement(pb,{meta:r,onSave:z,onCancel:()=>w("list"),isLoading:f});case"editor":return c?Le.default.createElement(yy,{key:`editor-${c.id}`,agent:c,meta:r,onSave:E=>$(c.id,E),onDelete:()=>U(c.id),onRun:()=>w("runner",c),onDuplicate:()=>G(c.id),onRunReport:()=>w("history",c),onBack:()=>w("list"),isLoading:f}):null;case"runner":return c?Le.default.createElement(IS,{agent:c,onBack:()=>w("editor",c)}):null;case"agent-analytics":return c?Le.default.createElement(yy,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:E=>$(c.id,E),onDelete:()=>U(c.id),onRun:()=>w("runner",c),onDuplicate:()=>G(c.id),onRunReport:()=>w("history",c),onBack:()=>w("list"),isLoading:f}):null;case"history":return c?Le.default.createElement(LS,{agent:c,onBack:()=>w("editor",c)}):null;case"analytics":return Le.default.createElement(zS,{onSelectAgent:E=>{N(E.id,"agent-analytics")}});case"traces":return Le.default.createElement(Bl,null);case"metrics":return Le.default.createElement(VS,null);case"interactions":return Le.default.createElement(Ni,null);case"tools":return Le.default.createElement(FS,{onOpenServer:E=>{k(E),w("mcp")}});case"mcp":return Le.default.createElement(WS,{focusServer:b,onOpenTools:()=>{k(null),w("tools")}});case"evaluations":return Le.default.createElement(Bf,null);case"replay":return Le.default.createElement(JS,{onHandoff:E=>{M("Taking over session...","info"),w("sandbox")},onClose:()=>w("list")});case"sandbox":return Le.default.createElement(ZS,{initialType:"playwright_mcp",onClose:()=>w("list")});case"organization":return Le.default.createElement(RS,{user:e,account:n,subscription:a,agentCount:o.length});case"settings":return Le.default.createElement(eA,{user:e});default:return Le.default.createElement(fb,{agents:o,meta:r,onSelect:E=>w("editor",E),onNew:()=>w("builder"),onBrowseTemplates:()=>m(!0),onDuplicate:G,onDelete:U,onRefresh:D,sort:v,onSortChange:_,isLoading:f})}};return Le.default.createElement("div",{className:"min-h-screen flex",style:{backgroundColor:i?"#0f0f0f":"#f9fafb"}},Le.default.createElement($S,{currentView:s,onNavigate:w,agentCount:o.length,account:n,user:e,gemVersion:r.activeagentVersion}),Le.default.createElement("div",{className:"flex-1 flex flex-col"},Le.default.createElement(US,{user:e,account:n}),Le.default.createElement("main",{className:"flex-1 p-6 overflow-auto"},O())),x&&Le.default.createElement(BS,{onUseTemplate:j,onClose:()=>m(!1)}),g&&Le.default.createElement("div",{className:`fixed bottom-4 right-4 px-6 py-3 rounded-lg shadow-lg transition-all transform ${g.type==="error"?"bg-red-500":g.type==="success"?"bg-green-500":"bg-blue-500"} text-white`},g.message),f&&Le.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},Le.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${i?"bg-gray-800":"bg-white"}`},Le.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function tA(e){return Le.default.createElement(Y_,null,Le.default.createElement(DP,null,Le.default.createElement(CQ,{...e})))}var _Q="active-agent-dashboard";function kQ(e){let t=e.replace(/\/$/,"");if(!t)return;let r=window.fetch.bind(window);window.fetch=(n,a)=>{if(typeof n=="string"&&n.startsWith("/api/"))return r(`${t}${n}`,a);if(n instanceof Request&&new URL(n.url,window.location.origin).pathname.startsWith("/api/")){let i=new URL(n.url,window.location.origin);return r(new Request(`${t}${i.pathname}${i.search}`,n),a)}return r(n,a)}}function cj(){let e=document.getElementById(_Q);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,kQ(t.mountPath||"/"),(0,fj.createRoot)(e).render(dj.default.createElement(tA,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",cj):cj(); /*! Bundled license information: react/cjs/react.production.js: diff --git a/actionagent/app/controllers/action_agent/api/mcp_servers_controller.rb b/actionagent/app/controllers/action_agent/api/mcp_servers_controller.rb new file mode 100644 index 00000000..a2d64a46 --- /dev/null +++ b/actionagent/app/controllers/action_agent/api/mcp_servers_controller.rb @@ -0,0 +1,156 @@ +# frozen_string_literal: true + +module ActionAgent + module Api + # Read API for MCP services, plus sandbox provisioning for the servers + # that can be started on demand. Backs the dashboard MCP Services view. + # + # The list is the union of three things: servers detected from telemetry + # and solid_agent records (ToolDiscovery), servers an agent declares in + # its configuration, and the default catalog (McpCatalog). An install + # therefore sees both what it is already using and what it could turn on. + class McpServersController < BaseController + before_action :require_owner! + # Launching provisions a sandbox and runs a server in it, so it answers + # to the same two gates as any other execution: the read-only kill + # switch, and whatever limits the host app imposes. + before_action :require_execution_enabled!, only: [ :launch ] + before_action :enforce_execution_quota!, only: [ :launch ] + before_action :set_catalog_entry, only: [ :show, :launch ] + + STATUS_LABELS = { + "active" => "Called in this window", + "configured" => "Declared by an agent, no traffic yet", + "available" => "Available to connect", + "idle" => "Seen previously, no traffic in this window" + }.freeze + + # GET /api/mcp_servers + def index + finder = discovery + tools = finder.detected_tools + servers = finder.servers(tools) + + render json: { + servers: servers, + catalog: McpCatalog.all, + summary: summary_for(servers), + sandboxes: active_sandboxes, + window_hours: finder.window_hours, + statuses: STATUS_LABELS + } + end + + # GET /api/mcp_servers/:id + # + # One server with the tools detected for it, so the view can expand a + # row without refetching the whole inventory. + def show + finder = discovery + tools = finder.detected_tools + server = finder.servers(tools).find { |row| row[:key] == params[:id] } + + render json: { + server: server || @catalog_entry, + tools: tools.select { |tool| tool[:mcp_server] == params[:id] } + } + end + + # POST /api/mcp_servers/:id/launch + # + # Starts the server inside a sandbox session. Only catalog entries + # marked +sandbox: true+ are launchable — the rest need credentials + # the dashboard has nowhere safe to source, so they are listed but not + # startable. + def launch + unless @catalog_entry[:sandbox] + return render json: { + error: "#{@catalog_entry[:name]} can't be started from the dashboard", + reason: launch_blocked_reason(@catalog_entry) + }, status: :unprocessable_entity + end + + sandbox = SandboxSession.new( + sandbox_type: @catalog_entry[:sandbox_type] || "terminal", + mcp_servers: [ @catalog_entry[:key] ] + ) + # A sandbox belongs to whoever opened it, which is how + # SandboxesController assigns them too — not to whatever + # `current_owner` resolves to, since that is the account in a + # multi-tenant install and this model prefers :user. Both are set + # when the host app has them; a single-user install declares neither + # association, so both are skipped. + # respond_to? alone isn't enough: the association is declared from + # configuration, but a host app's pre-existing table may not carry + # the column behind it. + assign_owner(sandbox, :user, current_user) + assign_owner(sandbox, :account, current_account) + + if sandbox.save + sandbox.provision! + sandbox.reload + record_execution_usage + render json: { sandbox: sandbox.summary, server: @catalog_entry }, status: :created + else + render json: { error: sandbox.errors.full_messages }, status: :unprocessable_entity + end + end + + private + + def discovery + ToolDiscovery.new(traces: owned_traces, agents: owner_agents, hours: window_hours) + end + + def assign_owner(sandbox, association, record) + return if record.nil? + return unless sandbox.respond_to?(:"#{association}=") + return unless sandbox.has_attribute?(:"#{association}_id") + + sandbox.public_send(:"#{association}=", record) + end + + def set_catalog_entry + @catalog_entry = McpCatalog.find(params[:id]) + render json: { error: "Unknown MCP server: #{params[:id]}" }, status: :not_found if @catalog_entry.nil? + end + + def launch_blocked_reason(entry) + if entry[:requires_credentials].any? + "Needs #{entry[:requires_credentials].to_sentence}. Configure it on an agent instead." + else + "This server runs outside the sandbox environment." + end + end + + def summary_for(servers) + { + total: servers.size, + active: servers.count { |server| server[:status] == "active" }, + configured: servers.count { |server| server[:status] == "configured" }, + available: servers.count { |server| server[:status] == "available" }, + launchable: servers.count { |server| server[:launchable] }, + # Servers seen in traffic that the catalog doesn't describe — worth + # surfacing, since they're the ones nobody documented. + unknown: servers.count { |server| !server[:known] }, + total_calls: servers.sum { |server| server[:calls] } + } + end + + # Running sandboxes started with an MCP server, so the view can show + # "running" beside the launch button instead of starting a second copy. + def active_sandboxes + owned(SandboxSession) + .active + .where(SandboxSession.json_array_not_empty_sql(:mcp_servers)) + .recent + .limit(20) + .map { |sandbox| sandbox.summary.merge(mcp_servers: Array(sandbox.mcp_servers)) } + end + + def window_hours + params.fetch(:hours, ToolDiscovery::DEFAULT_WINDOW_HOURS).to_i + end + end + end +end diff --git a/actionagent/app/controllers/action_agent/api/tools_controller.rb b/actionagent/app/controllers/action_agent/api/tools_controller.rb new file mode 100644 index 00000000..7eba60ef --- /dev/null +++ b/actionagent/app/controllers/action_agent/api/tools_controller.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +module ActionAgent + module Api + # Read API for the tool inventory, backing the dashboard Tools view. + # + # Nothing here is registered by hand: ToolDiscovery derives the + # inventory from the tool roster each generation request offered, from + # telemetry tool spans, and from solid_agent generation/message records, + # then unions it with the tools each agent has enabled in the builder so + # configured-but-unused tools are visible too. + class ToolsController < BaseController + before_action :require_owner! + + # Filter labels for the view's origin tabs, so the set of buckets is + # defined server-side alongside the classification that produces them. + ORIGIN_FILTERS = { + "all" => "All tools", + ToolDiscovery::ORIGIN_MCP => "MCP", + ToolDiscovery::ORIGIN_BUILTIN => "Dashboard", + ToolDiscovery::ORIGIN_AGENT => "Agent-defined" + }.freeze + + # GET /api/tools + def index + inventory = discovery.inventory + + render json: inventory.merge( + tools: filtered(inventory[:tools]), + origins: ORIGIN_FILTERS + ) + end + + private + + def discovery + ToolDiscovery.new(traces: owned_traces, agents: owner_agents, hours: window_hours) + end + + def filtered(tools) + if ORIGIN_FILTERS.key?(params[:origin].to_s) && params[:origin] != "all" + tools = tools.select { |tool| tool[:origin] == params[:origin] } + end + tools = tools.select { |tool| tool[:mcp_server] == params[:server] } if params[:server].present? + + if (query = params[:q].to_s.strip.downcase).present? + tools = tools.select { |tool| tool[:name].downcase.include?(query) } + end + + tools + end + + def window_hours + params.fetch(:hours, ToolDiscovery::DEFAULT_WINDOW_HOURS).to_i + end + end + end +end diff --git a/actionagent/app/models/action_agent/agent_generation.rb b/actionagent/app/models/action_agent/agent_generation.rb index 8d416db0..df39c2da 100644 --- a/actionagent/app/models/action_agent/agent_generation.rb +++ b/actionagent/app/models/action_agent/agent_generation.rb @@ -9,7 +9,7 @@ class AgentGeneration < ApplicationRecord scope :recent, -> { order(created_at: :desc) } scope :by_model, ->(model) { where(model: model) } - scope :with_tool_calls, -> { where.not(tool_calls: []) } + scope :with_tool_calls, -> { where(json_array_not_empty_sql(:tool_calls)) } scope :with_trace, ->(trace_id) { where(trace_id: trace_id) } def total_tokens diff --git a/actionagent/app/models/action_agent/sandbox_session.rb b/actionagent/app/models/action_agent/sandbox_session.rb index a4caccff..3f706439 100644 --- a/actionagent/app/models/action_agent/sandbox_session.rb +++ b/actionagent/app/models/action_agent/sandbox_session.rb @@ -44,6 +44,13 @@ class SandboxSession < ApplicationRecord scope :anonymous, -> { where(user_id: nil) } scope :recent, -> { order(created_at: :desc) } + # Catalog entries for the MCP servers this session was started with. + # Unknown keys are dropped rather than raising — a session outlives a + # catalog edit. + def mcp_catalog_entries + Array(mcp_servers).filter_map { |key| McpCatalog.find(key) } + end + # Check if session is still valid def active? !expired? && !failed? && !completed? && expires_at > Time.current @@ -124,7 +131,8 @@ def summary total_tokens: total_tokens, expires_at: expires_at&.iso8601, created_at: created_at.iso8601, - cloud_run_url: cloud_run_url + cloud_run_url: cloud_run_url, + mcp_servers: Array(mcp_servers) } end diff --git a/actionagent/app/models/action_agent/telemetry_trace.rb b/actionagent/app/models/action_agent/telemetry_trace.rb index edd1e9ca..78d79067 100644 --- a/actionagent/app/models/action_agent/telemetry_trace.rb +++ b/actionagent/app/models/action_agent/telemetry_trace.rb @@ -168,6 +168,75 @@ def tool_spans spans&.select { |s| s["type"] == "tool" } || [] end + # Returns each tool call in this trace, normalized for display. + # + # Tool spans are tagged with their origin at instrumentation time + # (ActiveAgent::Telemetry::ToolOrigin), but traces ingested before that + # shipped — or sent by another SDK — only carry +tool.name+. Those are + # classified on read from the same naming convention, so a dashboard + # sees consistent attribution across old and new traces. + # + # @return [Array] one entry per tool span with :name, :base_name, + # :origin, :mcp_server, :duration_ms, :status, :error, :arguments and + # :result + def tool_usage + tool_spans.map do |span| + attributes = span["attributes"] || {} + name = attributes["tool.name"] || span["name"].to_s.delete_prefix("tool.") + classification = classify_tool(name, attributes) + + { + name: name, + base_name: attributes["tool.base_name"] || classification[:tool], + origin: attributes["tool.origin"] || classification[:origin], + mcp_server: attributes["tool.mcp_server"] || classification[:server], + duration_ms: span["duration_ms"], + status: span["status"], + error: attributes["error.message"], + arguments: attributes["tool.input.args"], + result: attributes["tool.output.result"] + } + end + end + + # Returns the tools this trace's generation request OFFERED the + # provider, whether or not the model went on to call any of them. + # + # Instrumentation records the roster on the prompt span as + # +prompt.input.tools+ (name, description, parameter keys), which is + # the agent's declared tool surface for that generation. Reading it + # here is what lets a dashboard show a tool that exists but has never + # been invoked — a state that tool spans alone can't express. + # + # @return [Array] entries with :name, :description, :parameters, + # :origin and :mcp_server + def declared_tools + Array(tool_roster).filter_map do |tool| + next unless tool.is_a?(Hash) + + name = (tool["name"] || tool[:name]).to_s + next if name.empty? + + classification = ActiveAgent::Telemetry::ToolOrigin.classify(name) + { + name: name, + description: (tool["description"] || tool[:description]).presence, + parameters: normalize_parameters(tool["parameters"] || tool[:parameters]), + origin: classification[:origin], + mcp_server: classification[:server] + } + end + end + + # Returns the distinct MCP servers this trace touched — both the ones + # it called and the ones it was merely offered. + # + # @return [Array] server names, in first-seen order + def mcp_servers + (tool_usage.filter_map { |tool| tool[:mcp_server] } + + declared_tools.filter_map { |tool| tool[:mcp_server] }).uniq + end + # Returns total token count. # # @return [Integer] Total tokens used @@ -241,5 +310,48 @@ def model llm_span.dig("attributes", "llm.model") end + + private + + # The offered roster, as stored. Instrumentation writes JSON onto the + # prompt span; +llm.tools+ is accepted as an alias because some SDK + # versions put the roster on the llm span instead, and a payload that + # arrived already decoded is passed straight through. + def tool_roster + raw = spans.to_a.filter_map do |span| + attributes = span["attributes"] || {} + attributes["prompt.input.tools"].presence || attributes["llm.tools"].presence + end.first + return nil if raw.blank? + return raw unless raw.is_a?(String) + + JSON.parse(raw) + rescue JSON::ParserError + nil + end + + # The roster records parameters as a name list, but a raw JSON Schema + # arrives instead when an SDK forwards tool definitions verbatim. + def normalize_parameters(parameters) + return [] if parameters.blank? + return parameters.map(&:to_s) if parameters.is_a?(Array) + + if parameters.is_a?(Hash) + properties = parameters["properties"] || parameters[:properties] + return properties.keys.map(&:to_s) if properties.is_a?(Hash) + end + + [] + end + + # Recovers a tool's origin for traces that predate origin tagging. + # Prefers an explicit server attribute when the SDK sent one, then + # falls back to the shared name-convention classifier. + def classify_tool(name, attributes) + explicit = attributes["mcp.server"] || attributes["tool.server"] + return { origin: "mcp", server: explicit, tool: name } if explicit.present? + + ActiveAgent::Telemetry::ToolOrigin.classify(name) + end end end diff --git a/actionagent/app/models/concerns/action_agent/adapter_aware.rb b/actionagent/app/models/concerns/action_agent/adapter_aware.rb index cb9b2479..d4d36ed7 100644 --- a/actionagent/app/models/concerns/action_agent/adapter_aware.rb +++ b/actionagent/app/models/concerns/action_agent/adapter_aware.rb @@ -25,6 +25,20 @@ def hour_bucket_sql(column = :timestamp) end end + # SQL matching rows whose JSON array +column+ actually has entries. + # + # `where.not(column: [])` cannot express this and is not a slower way + # of doing it — Active Record reads the empty array as an empty IN + # list, so the condition compiles to `1=1` and matches every row. + # +column+ is always a literal from this codebase, never user input. + def json_array_not_empty_sql(column) + case connection.adapter_name.to_s.downcase + when /postgres/ then "COALESCE(jsonb_array_length(#{column}::jsonb), 0) > 0" + when /mysql/ then "COALESCE(JSON_LENGTH(#{column}), 0) > 0" + else "COALESCE(json_array_length(#{column}), 0) > 0" + end + end + # PostgreSQL hands back a Time; the others a UTC string. def hour_bucket_epoch(value) return value.to_i if value.is_a?(Time) || value.is_a?(DateTime) diff --git a/actionagent/app/services/action_agent/mcp_catalog.rb b/actionagent/app/services/action_agent/mcp_catalog.rb new file mode 100644 index 00000000..0f1a8c7e --- /dev/null +++ b/actionagent/app/services/action_agent/mcp_catalog.rb @@ -0,0 +1,247 @@ +# frozen_string_literal: true + +module ActionAgent + # The catalog of MCP servers the dashboard knows about. + # + # Serves three jobs that would otherwise each need their own list: + # + # 1. **Listing** — the MCP Services view shows these as the servers a + # workspace can connect, whether or not it has used one yet. + # 2. **Attribution** — telemetry only carries the tool name a provider + # invoked. When that name is namespaced (+mcp__playwright__…+) the server + # is explicit; when it isn't, TOOL_HINTS maps well-known bare tool names + # back to the server that serves them, so a workspace running the + # reference servers still gets grouped traffic instead of a flat list. + # 3. **Provisioning** — entries marked +sandbox: true+ can be started inside + # a sandbox session, using the command recorded here. + # + # Detection never depends on this catalog: a server that isn't listed still + # shows up in the MCP Services view (as +known: false+) the moment a + # namespaced tool call from it is ingested. The catalog only adds names, + # descriptions, and the ability to launch. + class McpCatalog + # Whether a server can be started inside a sandbox session. Servers that + # need workspace-specific credentials (github, slack, postgres) are + # listable and attributable but not launchable from the dashboard — there + # is nowhere safe to source their secrets from yet. + SERVERS = [ + { + key: "playwright", + name: "Playwright", + description: "Drives a real browser: navigate pages, snapshot the accessibility tree, click elements.", + transport: "stdio", + command: "npx @playwright/mcp@latest", + package: "@playwright/mcp", + categories: %w[browser automation], + docs_url: "https://github.com/microsoft/playwright-mcp", + sandbox: true, + sandbox_type: "playwright_mcp", + # The platform's own Playwright tools (AgentToolbox "playwright_mcp") + # invoke these bare, without the mcp__ namespace. + tool_hints: %w[browser_navigate browser_snapshot browser_click browser_type browser_take_screenshot] + }, + { + key: "filesystem", + name: "Filesystem", + description: "Reads and writes files under an allow-listed set of directories.", + transport: "stdio", + command: "npx @modelcontextprotocol/server-filesystem", + package: "@modelcontextprotocol/server-filesystem", + categories: %w[files], + docs_url: "https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem", + sandbox: true, + sandbox_type: "terminal", + tool_hints: %w[read_file read_text_file write_file edit_file list_directory directory_tree move_file search_files] + }, + { + key: "fetch", + name: "Fetch", + description: "Fetches a URL and converts the page to markdown for the model to read.", + transport: "stdio", + command: "uvx mcp-server-fetch", + package: "mcp-server-fetch", + categories: %w[web], + docs_url: "https://github.com/modelcontextprotocol/servers/tree/main/src/fetch", + sandbox: true, + sandbox_type: "research", + tool_hints: %w[fetch fetch_url] + }, + { + key: "git", + name: "Git", + description: "Reads and manipulates a local git repository: status, diff, log, commit.", + transport: "stdio", + command: "uvx mcp-server-git", + package: "mcp-server-git", + categories: %w[code vcs], + docs_url: "https://github.com/modelcontextprotocol/servers/tree/main/src/git", + sandbox: true, + sandbox_type: "terminal", + tool_hints: %w[git_status git_diff git_log git_commit git_add git_create_branch] + }, + { + key: "memory", + name: "Memory", + description: "A persistent knowledge graph the agent can write facts to and recall across runs.", + transport: "stdio", + command: "npx @modelcontextprotocol/server-memory", + package: "@modelcontextprotocol/server-memory", + categories: %w[memory], + docs_url: "https://github.com/modelcontextprotocol/servers/tree/main/src/memory", + sandbox: true, + sandbox_type: "terminal", + tool_hints: %w[create_entities create_relations add_observations search_nodes read_graph] + }, + { + key: "sequential-thinking", + name: "Sequential Thinking", + description: "Gives the model a scratchpad for multi-step reasoning it can revise as it goes.", + transport: "stdio", + command: "npx @modelcontextprotocol/server-sequential-thinking", + package: "@modelcontextprotocol/server-sequential-thinking", + categories: %w[reasoning], + docs_url: "https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking", + sandbox: true, + sandbox_type: "research", + tool_hints: %w[sequentialthinking] + }, + { + key: "github", + name: "GitHub", + description: "Reads and writes GitHub issues, pull requests, and repository contents.", + transport: "http", + url: "https://api.githubcopilot.com/mcp/", + categories: %w[code vcs], + docs_url: "https://github.com/github/github-mcp-server", + sandbox: false, + requires_credentials: [ "GITHUB_TOKEN" ], + tool_hints: %w[create_issue get_issue list_issues create_pull_request get_file_contents search_code] + }, + { + key: "slack", + name: "Slack", + description: "Posts messages and reads channel history in a connected Slack workspace.", + transport: "stdio", + command: "npx @modelcontextprotocol/server-slack", + package: "@modelcontextprotocol/server-slack", + categories: %w[communication], + docs_url: "https://github.com/modelcontextprotocol/servers/tree/main/src/slack", + sandbox: false, + requires_credentials: [ "SLACK_BOT_TOKEN", "SLACK_TEAM_ID" ], + tool_hints: %w[slack_post_message slack_list_channels slack_get_channel_history] + }, + { + key: "postgres", + name: "Postgres", + description: "Runs read-only SQL against a Postgres database and inspects its schema.", + transport: "stdio", + command: "npx @modelcontextprotocol/server-postgres", + package: "@modelcontextprotocol/server-postgres", + categories: %w[data], + docs_url: "https://github.com/modelcontextprotocol/servers/tree/main/src/postgres", + sandbox: false, + requires_credentials: [ "DATABASE_URL" ], + tool_hints: %w[query describe_table list_tables] + }, + { + key: "activeagents", + name: "Active Agent", + description: "This dashboard's own agents, exposed as MCP tools and agent:// resources over Streamable HTTP.", + transport: "http", + # Relative to wherever the engine is mounted — the same /mcp + # route the dashboard serves. + url: "/mcp", + categories: %w[agents platform], + docs_url: "https://docs.activeagents.ai/mcp", + sandbox: false, + first_party: true, + requires_credentials: [ "Platform API key" ], + tool_hints: %w[call_agent list_agents] + } + ].freeze + + # key => entry, for O(1) lookup by name. + BY_KEY = SERVERS.index_by { |server| server[:key] }.freeze + + # Bare tool name => server key. Built from each entry's tool_hints, so + # adding a server to SERVERS is all it takes to teach attribution about + # its tools. First declaration wins on collision (a name served by two + # catalog entries stays with the earlier, more specific one). + TOOL_HINTS = SERVERS.each_with_object({}) do |server, map| + Array(server[:tool_hints]).each { |tool| map[tool] ||= server[:key] } + end.freeze + + class << self + # Every catalog entry, as API-shaped hashes. + # + # @return [Array] + def all + SERVERS.map { |server| present(server) } + end + + # Entries that can be started inside a sandbox session. + # + # @return [Array] + def launchable + all.select { |server| server[:sandbox] } + end + + # @param key [String, Symbol] + # @return [Hash, nil] the catalog entry, or nil when unknown + def find(key) + entry = BY_KEY[key.to_s] + present(entry) if entry + end + + # @param key [String, Symbol] + # @return [Boolean] whether the server can be started in a sandbox + def launchable?(key) + BY_KEY[key.to_s]&.fetch(:sandbox, false) || false + end + + # The catalog server a bare (non-namespaced) tool name belongs to. + # + # Only consulted after namespace parsing fails — an explicit + # +mcp__server__tool+ name always wins over a hint, because the trace + # said so and this table is only an educated guess. + # + # @param tool_name [String, Symbol] + # @return [String, nil] the server key + def server_for_tool(tool_name) + TOOL_HINTS[tool_name.to_s] + end + + # The display name for a server key, falling back to the key itself for + # servers detected in telemetry but absent from the catalog. + # + # @param key [String, Symbol] + # @return [String] + def display_name(key) + BY_KEY[key.to_s]&.fetch(:name) || key.to_s + end + + private + + # Drops the internal-only tool_hints and normalizes optional keys so + # every entry serializes with the same shape. + def present(server) + { + key: server[:key], + name: server[:name], + description: server[:description], + transport: server[:transport], + command: server[:command], + url: server[:url], + package: server[:package], + categories: Array(server[:categories]), + docs_url: server[:docs_url], + sandbox: server.fetch(:sandbox, false), + sandbox_type: server[:sandbox_type], + first_party: server.fetch(:first_party, false), + requires_credentials: Array(server[:requires_credentials]), + tools: Array(server[:tool_hints]) + } + end + end + end +end diff --git a/actionagent/app/services/action_agent/tool_discovery.rb b/actionagent/app/services/action_agent/tool_discovery.rb new file mode 100644 index 00000000..924bd634 --- /dev/null +++ b/actionagent/app/services/action_agent/tool_discovery.rb @@ -0,0 +1,617 @@ +# frozen_string_literal: true + +module ActionAgent + # Builds the dashboard's tool and MCP-server inventory by reading what + # agents actually called, rather than what someone remembered to register. + # + # Four record sources are merged, because each one sees a different slice + # of the same traffic: + # + # * **The offered tool roster** — the tools array in each generation + # request, recorded on the prompt span as +prompt.input.tools+ and on + # each solid_agent generation as +provenance["tools"]+. The only source + # that sees a tool the model was given and never called, and the only + # one carrying descriptions and parameter names. + # * **Telemetry tool spans** — the only source for agents running in a + # host app and reporting in over the wire, and where timing and error + # rates come from. + # * **solid_agent generations** (+agent_generations.tool_calls+) — every + # tool call the model *requested*, including ones that never produced a + # span because the run died first. + # * **solid_agent messages** (+agent_messages+ with +role: "tool"+) — the + # results that came back, which is where a tool's arguments survive even + # when telemetry is disabled. + # + # Counting a tool once per source would multiply-count a dashboard-executed + # run, which writes all four. So each source feeds a distinct counter + # (+calls+, +requested+, +results+) and +calls+ falls back to the largest + # observed count when telemetry is absent — a self-hosted install with + # telemetry off still gets real numbers instead of zeros. + # + # MCP attribution comes from ActiveAgent::Telemetry::ToolOrigin (the + # +mcp__server__tool+ convention, tagged onto spans at instrumentation + # time), then McpCatalog's hints for bare tool names, then the tool is + # treated as a method the agent class defines. + # + # Scopes are passed in rather than derived, so the caller's ownership + # rules (single-user, per-user, or multi-tenant) decide what is visible. + class ToolDiscovery + DEFAULT_WINDOW_HOURS = 24 * 7 + MAX_WINDOW_HOURS = 24 * 90 + + # The inventory is derived by reading records rather than by maintaining + # a summary table, and the window alone does not bound how many rows a + # busy account has in it — a 90-day window over a high-traffic workspace + # is millions. Scans stop here and say so rather than pinning a worker + # for the length of a request. A precomputed summary is the real answer; + # this keeps the page responsive until there is one. + MAX_SCAN_ROWS = 20_000 + + # Origin values, matching the framework's ToolOrigin plus the + # dashboard-only "builtin" bucket for AgentToolbox's executable tools. + ORIGIN_MCP = "mcp" + ORIGIN_BUILTIN = "builtin" + ORIGIN_AGENT = "agent" + + attr_reader :traces, :agents, :window_hours, :since + + # @param traces [ActiveRecord::Relation] the traces the caller may read + # @param agents [ActiveRecord::Relation] the agents the caller may reach + # @param hours [Integer] how far back to look + def initialize(traces:, agents:, hours: DEFAULT_WINDOW_HOURS) + @traces = traces + @agents = agents + @window_hours = hours.to_i.clamp(1, MAX_WINDOW_HOURS) + @since = @window_hours.hours.ago + end + + # The full inventory: every tool seen in the window, plus the MCP servers + # they roll up into and the configured-but-unused surface. + # + # @return [Hash] + def inventory + tools = detected_tools + { + tools: tools, + servers: servers_for(tools), + summary: summary_for(tools), + window_hours: window_hours, + sources: source_availability + } + end + + # Detected tools, most-used first. + # + # @return [Array] + def detected_tools + index = {} + + merge_declared_tools(index) + merge_trace_tools(index) + merge_generation_tools(index) + merge_message_tools(index) + merge_configured_tools(index) + + index.values.map { |entry| finalize(entry) }.sort_by { |tool| [ -tool[:calls], tool[:name] ] } + end + + # MCP servers, detected traffic joined against the catalog so unused + # defaults are still listed (as +status: "available"+). + # + # @return [Array] + def servers(tools = detected_tools) + servers_for(tools) + end + + # Tools AgentToolbox implements inside the dashboard. Neither MCP nor + # agent-defined — the engine runs them — so they get their own origin + # rather than being mislabeled as methods on the agent class. Resolved + # lazily: referencing an autoloaded constant while this class is being + # defined would bind whatever happened to be loaded first. + def self.builtin_tools + @builtin_tools ||= AgentToolbox::DEFINITIONS.values.flatten + .map { |definition| definition[:name].to_s }.to_set + end + + private + + # --- sources ------------------------------------------------------- + + # The roster each generation request OFFERED the provider, from the + # solid_agent side. The trace side is read in merge_trace_tools, which + # already has each trace loaded. + def merge_declared_tools(index) + declared_generations.each do |generation| + provenance = generation.provenance + next unless provenance.is_a?(Hash) + + Array(provenance["tools"]).each do |declared| + next unless declared.is_a?(Hash) + + absorb_declaration( + index, + { + name: declared["name"], + description: declared["description"], + parameters: Array(declared["parameters"]) + }, + agent: provenance["agent_class"], + source: "provenance", + at: generation.created_at + ) + end + end + end + + def absorb_declaration(index, declared, agent:, source:, at:) + entry = entry_for(index, declared[:name]) + return if entry.nil? + + entry[:declared] = true + entry[:description] ||= declared[:description].presence + entry[:parameters] = declared[:parameters] if entry[:parameters].blank? && declared[:parameters].present? + entry[:agents] << agent if agent.present? + entry[:sources] << source + apply_origin(entry, **classify(declared[:name])) + touch(entry, at) + end + + # Tool spans from telemetry. Read in Ruby rather than SQL because the + # spans are a nested JSON array; traversing it in SQL would be a + # PostgreSQL-only query, and the dashboard runs on SQLite and MySQL too. + def merge_trace_tools(index) + scanned = 0 + + traces_scope.find_each(batch_size: 200) do |trace| + scanned += 1 + break if scanned > MAX_SCAN_ROWS + + agent_label = trace.agent_class.presence + + # Same pass, two readings of one trace: what the request offered, + # and what the model then called. + trace.declared_tools.each do |declared| + absorb_declaration(index, declared, agent: agent_label, source: "request", at: trace.timestamp) + end + + trace.tool_usage.each do |usage| + entry = entry_for(index, usage[:name]) + next if entry.nil? + + entry[:calls] += 1 + entry[:errors] += 1 if usage[:status].to_s == "ERROR" || usage[:error].present? + if (duration = usage[:duration_ms]) + entry[:duration_total] += duration.to_f + entry[:duration_samples] += 1 + end + entry[:agents] << agent_label if agent_label + entry[:sources] << "telemetry" + entry[:sample_arguments] ||= usage[:arguments].presence + entry[:last_error] ||= usage[:error].presence + apply_origin(entry, **resolve_origin(usage[:name], usage[:mcp_server])) + touch(entry, trace.timestamp) + end + end + + warn_if_capped(scanned, "traces") + end + + # A capped scan is a partial inventory, so it is never silent. + def warn_if_capped(count, what) + return if count < MAX_SCAN_ROWS + + Rails.logger.warn( + "[ActionAgent] tool discovery stopped at #{MAX_SCAN_ROWS} #{what}; " \ + "the inventory for this window may be incomplete" + ) + end + + # Tool calls the model asked for, recorded on each solid_agent + # generation. Selected columns only — raw_response on these rows can be + # large and nothing here reads it. + def merge_generation_tools(index) + generations_scope.find_each(batch_size: 500) do |generation| + Array(generation.tool_calls).each do |call| + name = call_name(call) + entry = entry_for(index, name) + next if entry.nil? + + entry[:requested] += 1 + entry[:sources] << "generations" + entry[:sample_arguments] ||= stringify_arguments(call["arguments"] || call[:arguments]) + apply_origin(entry, **classify(name)) + touch(entry, generation.created_at) + end + end + end + + # Tool results persisted as conversation messages. These carry the + # arguments a tool was actually invoked with, which telemetry truncates. + def merge_message_tools(index) + messages_scope.find_each(batch_size: 500) do |message| + entry = entry_for(index, message.tool_name) + next if entry.nil? + + entry[:results] += 1 + entry[:sources] << "messages" + entry[:sample_arguments] ||= stringify_arguments(message.tool_arguments) + apply_origin(entry, **classify(message.tool_name)) + touch(entry, message.created_at) + end + end + + # Tools an agent has enabled in the builder but that have no traffic in + # the window. Listing them keeps the view honest: "configured, never + # called" is a real and useful state, and it's the difference between a + # tool that is broken and one that simply isn't wired up yet. + def merge_configured_tools(index) + agents.find_each(batch_size: 200) do |agent| + Array(agent.tools).each do |tool_name| + # An agent enables a capability ("playwright"); the model calls + # the functions that capability exposes. Expand to the real tool + # names so configured and detected rows describe the same things. + expand_configured(tool_name).each do |name| + entry = entry_for(index, name) + next if entry.nil? + + entry[:configured_by] << agent.name + apply_origin(entry, **classify(name)) + end + end + + Array(agent.mcp_servers).each do |server| + key = mcp_server_key(server) + next if key.blank? + + configured_servers[key] << agent.name + end + end + end + + # --- scopes -------------------------------------------------------- + + def traces_scope + traces.where(timestamp: since..) + end + + def generations_scope + AgentGeneration + .select(:id, :agent_context_id, :tool_calls, :created_at) + .where(agent_context_id: context_ids, created_at: since..) + .where(AgentGeneration.json_array_not_empty_sql(:tool_calls)) + end + + def messages_scope + AgentMessage + .select(:id, :agent_context_id, :tool_name, :tool_arguments, :created_at) + .where(agent_context_id: context_ids, created_at: since.., role: "tool") + .where.not(tool_name: nil) + end + + # Generations whose provenance carries the offered tool roster. + # + # PostgreSQL can ask that of the column directly; everywhere else the + # rows are read and filtered in Ruby, which is why this returns records + # rather than a relation. The window already bounds how many. + def declared_generations + @declared_generations ||= begin + scope = AgentGeneration + .select(:id, :agent_context_id, :provenance, :created_at) + .where(agent_context_id: context_ids, created_at: since..) + + rows = + if AgentGeneration.postgres? + scope.where(Arel.sql("jsonb_exists(provenance, 'tools')")).limit(MAX_SCAN_ROWS).to_a + else + # No portable way to ask this of the column, so the rows are read + # and filtered in Ruby. Capped, because the window alone does not + # bound how many a busy account has. + scope.limit(MAX_SCAN_ROWS).to_a.select do |generation| + generation.provenance.is_a?(Hash) && generation.provenance.key?("tools") + end + end + + warn_if_capped(rows.length, "provenance generations") + rows + end + end + + # Whether any generation in the window carries an offered tool roster, + # asked as cheaply as the adapter allows. Kept separate from + # declared_generations so source_availability never materialises rows + # just to decide a boolean. + def declared_generations? + scope = AgentGeneration.where(agent_context_id: context_ids, created_at: since..) + + if AgentGeneration.postgres? + scope.where(Arel.sql("jsonb_exists(provenance, 'tools')")).limit(1).exists? + else + declared_generations.any? + end + end + + def context_ids + @context_ids ||= AgentContext.for_agents(agents).pluck(:id) + end + + # Which record sources actually had rows in the window. The view uses + # this to explain an empty inventory ("no telemetry reported yet") + # instead of showing a bare zero. + def source_availability + { + telemetry: traces_scope.limit(1).exists?, + generations: generations_scope.limit(1).exists?, + messages: messages_scope.limit(1).exists?, + declared: declared_generations? + } + end + + # --- aggregation --------------------------------------------------- + + def entry_for(index, name) + name = name.to_s.strip + return nil if name.blank? + + index[name] ||= { + name: name, + calls: 0, + requested: 0, + results: 0, + errors: 0, + duration_total: 0.0, + duration_samples: 0, + agents: Set.new, + sources: Set.new, + configured_by: Set.new, + origin: nil, + mcp_server: nil, + sample_arguments: nil, + last_error: nil, + declared: false, + description: nil, + parameters: [], + first_seen: nil, + last_seen: nil + } + end + + # An explicit MCP server always wins: it came from the trace itself. A + # catalog hint only fills a gap, and never downgrades an already-known + # origin (a tool seen once as namespaced stays MCP even if a later bare + # call for the same name arrives). + def apply_origin(entry, origin:, server: nil) + if server.present? + entry[:mcp_server] ||= server + entry[:origin] = ORIGIN_MCP + return + end + + entry[:origin] ||= origin + end + + # Origin for a tool a trace reported. A server named by the trace is + # taken at face value; anything else is re-classified here, because a + # trace can only tell MCP from not-MCP and knows nothing about the + # dashboard's own toolbox. + def resolve_origin(name, explicit_server) + return { origin: ORIGIN_MCP, server: explicit_server } if explicit_server.present? + + classify(name) + end + + def classify(name) + name = name.to_s + classification = ActiveAgent::Telemetry::ToolOrigin.classify(name) + return { origin: ORIGIN_MCP, server: classification[:server] } if classification[:server].present? + + if (hinted = McpCatalog.server_for_tool(name)) + # A catalog hint is weaker evidence than a namespaced name: the tool + # is *probably* this server's, but a builtin of the same name is the + # dashboard's own implementation, so builtins win the tie. + return { origin: ORIGIN_BUILTIN, server: nil } if builtin?(name) + + return { origin: ORIGIN_MCP, server: hinted } + end + + return { origin: ORIGIN_BUILTIN, server: nil } if builtin?(name) + + { origin: ORIGIN_AGENT, server: nil } + end + + def builtin?(name) + self.class.builtin_tools.include?(name) + end + + def touch(entry, timestamp) + return if timestamp.blank? + + entry[:first_seen] = timestamp if entry[:first_seen].nil? || timestamp < entry[:first_seen] + entry[:last_seen] = timestamp if entry[:last_seen].nil? || timestamp > entry[:last_seen] + end + + def finalize(entry) + # Telemetry is the authoritative call count, but an install with + # telemetry disabled would otherwise report every tool as 0 calls + # while plainly showing results. Fall back to the strongest signal. + calls = [ entry[:calls], entry[:requested], entry[:results] ].max + origin = entry[:origin] || ORIGIN_AGENT + + { + name: entry[:name], + base_name: base_name(entry[:name]), + origin: origin, + mcp_server: entry[:mcp_server], + source_label: source_label(origin, entry[:mcp_server]), + description: entry[:description], + parameters: entry[:parameters], + # Offered to the model in a generation request body, as opposed to + # only ever inferred from a call that happened. + declared: entry[:declared], + calls: calls, + traced_calls: entry[:calls], + requested: entry[:requested], + results: entry[:results], + errors: entry[:errors], + error_rate: calls.positive? ? (entry[:errors].to_f / calls * 100).round(1) : 0.0, + avg_duration_ms: entry[:duration_samples].positive? ? (entry[:duration_total] / entry[:duration_samples]).round(0) : nil, + agents: entry[:agents].to_a.sort, + configured_by: entry[:configured_by].to_a.sort, + detected_from: entry[:sources].to_a.sort, + # Wired up but never called — the state that tells you a tool is + # available and simply unused, rather than missing. A declared tool + # counts here too: the model was offered it and never reached for it. + unused: calls.zero? && (entry[:configured_by].any? || entry[:declared]), + sample_arguments: entry[:sample_arguments], + last_error: entry[:last_error], + first_seen: entry[:first_seen]&.iso8601, + last_seen: entry[:last_seen]&.iso8601 + } + end + + def base_name(name) + ActiveAgent::Telemetry::ToolOrigin.classify(name)[:tool] + end + + def source_label(origin, server) + case origin + when ORIGIN_MCP then server.present? ? "MCP · #{McpCatalog.display_name(server)}" : "MCP" + when ORIGIN_BUILTIN then "Dashboard toolbox" + else "Agent-defined" + end + end + + # --- servers ------------------------------------------------------- + + # Rolls detected tools up into servers, then unions with the catalog so + # the view lists defaults this install hasn't connected yet. + def servers_for(tools) + detected = Hash.new { |hash, key| hash[key] = { tools: [], calls: 0, errors: 0, last_seen: nil } } + + tools.each do |tool| + key = tool[:mcp_server] + next if key.blank? + + bucket = detected[key] + bucket[:tools] << tool + bucket[:calls] += tool[:calls] + bucket[:errors] += tool[:errors] + if tool[:last_seen].present? && (bucket[:last_seen].nil? || tool[:last_seen] > bucket[:last_seen]) + bucket[:last_seen] = tool[:last_seen] + end + end + + keys = (McpCatalog::BY_KEY.keys + detected.keys + configured_servers.keys).uniq + + # detected has a default block that would materialize a bucket on + # lookup, so unseen servers are passed through as an explicit nil. + keys.map { |key| server_row(key, (detected[key] if detected.key?(key))) } + .sort_by { |server| [ -server[:calls], server[:status] == "available" ? 1 : 0, server[:name].downcase ] } + end + + def server_row(key, bucket) + catalog = McpCatalog.find(key) + configured = configured_servers[key].to_a.sort + calls = bucket ? bucket[:calls] : 0 + + { + key: key, + name: catalog ? catalog[:name] : key, + description: catalog&.fetch(:description, nil), + transport: catalog&.fetch(:transport, nil), + command: catalog&.fetch(:command, nil), + url: catalog&.fetch(:url, nil), + categories: catalog ? catalog[:categories] : [], + docs_url: catalog&.fetch(:docs_url, nil), + first_party: catalog ? catalog[:first_party] : false, + requires_credentials: catalog ? catalog[:requires_credentials] : [], + launchable: catalog ? catalog[:sandbox] : false, + sandbox_type: catalog&.fetch(:sandbox_type, nil), + # Catalog membership is what "known" means — a server detected purely + # from traffic is real but undocumented here, and the view says so. + known: !catalog.nil?, + status: server_status(calls, configured, catalog), + calls: calls, + errors: bucket ? bucket[:errors] : 0, + tool_count: bucket ? bucket[:tools].size : 0, + tools: bucket ? bucket[:tools].map { |tool| tool[:base_name] }.uniq.sort : catalog_tool_names(catalog), + agents: bucket ? bucket[:tools].flat_map { |tool| tool[:agents] }.uniq.sort : [], + configured_by: configured, + last_seen: bucket ? bucket[:last_seen] : nil + } + end + + # "active" — traffic in the window + # "configured"— an agent declares it, but nothing called it yet + # "available" — a catalog default this install has never used + def server_status(calls, configured, catalog) + return "active" if calls.positive? + return "configured" if configured.any? + return "available" if catalog + + "idle" + end + + def catalog_tool_names(catalog) + catalog ? catalog[:tools] : [] + end + + def configured_servers + @configured_servers ||= Hash.new { |hash, key| hash[key] = Set.new } + end + + # An agent's mcp_servers entries are free-form: a bare string name, or a + # hash from the builder ({"name" => "playwright", "url" => ...}). + def mcp_server_key(server) + return server.to_s.strip if server.is_a?(String) + return nil unless server.respond_to?(:[]) + + (server["key"] || server[:key] || server["name"] || server[:name]).to_s.strip.presence + end + + # --- summary ------------------------------------------------------- + + def summary_for(tools) + called = tools.select { |tool| tool[:calls].positive? } + total_calls = called.sum { |tool| tool[:calls] } + total_errors = called.sum { |tool| tool[:errors] } + timed = called.filter_map { |tool| tool[:avg_duration_ms] } + + { + total_tools: tools.size, + active_tools: called.size, + unused_tools: tools.count { |tool| tool[:unused] }, + declared_tools: tools.count { |tool| tool[:declared] }, + mcp_tools: tools.count { |tool| tool[:origin] == ORIGIN_MCP }, + total_calls: total_calls, + total_errors: total_errors, + error_rate: total_calls.positive? ? (total_errors.to_f / total_calls * 100).round(1) : 0.0, + avg_duration_ms: timed.any? ? (timed.sum / timed.size).round(0) : nil, + mcp_servers_active: tools.filter_map { |tool| tool[:mcp_server] if tool[:calls].positive? }.uniq.size + } + end + + def call_name(call) + return nil unless call.respond_to?(:[]) + + (call["name"] || call[:name] || call.dig("function", "name")).to_s.presence + end + + def stringify_arguments(arguments) + return nil if arguments.blank? + return arguments if arguments.is_a?(String) + + arguments.to_json + rescue StandardError + nil + end + + # A builder capability maps to the function names it exposes; anything + # not in the toolbox is passed through under its own name. + def expand_configured(capability) + definitions = AgentToolbox::DEFINITIONS[capability.to_s] + return [ capability.to_s ] if definitions.blank? + + definitions.map { |definition| definition[:name].to_s } + end + end +end diff --git a/actionagent/config/routes.rb b/actionagent/config/routes.rb index 44a96b70..bb720bc2 100644 --- a/actionagent/config/routes.rb +++ b/actionagent/config/routes.rb @@ -65,6 +65,19 @@ end end + # Tool inventory — auto-detected from the tool roster each generation + # request offered, telemetry tool spans, and solid_agent records. + resources :tools, only: [ :index ] + + # MCP services — detected servers unioned with the default catalog + # (McpCatalog), plus on-demand sandbox provisioning. Keys are catalog + # slugs like "sequential-thinking", so the id segment allows dashes. + resources :mcp_servers, only: [ :index, :show ], id: /[^\/]+/ do + member do + post :launch + end + end + resources :instance_tiers, only: [ :index, :show ] do collection do get :recommend diff --git a/actionagent/frontend/components/dashboard/McpServersView.jsx b/actionagent/frontend/components/dashboard/McpServersView.jsx new file mode 100644 index 00000000..2cd7ed32 --- /dev/null +++ b/actionagent/frontend/components/dashboard/McpServersView.jsx @@ -0,0 +1,396 @@ +import React, { useState, useEffect, useCallback } from 'react'; +import { useTheme } from '../../contexts/ThemeContext'; + +const REFRESH_INTERVAL_MS = 60000; + +const WINDOWS = [ + { value: 24, label: '24h' }, + { value: 24 * 7, label: '7d' }, + { value: 24 * 30, label: '30d' }, +]; + +// Status ordering doubles as the filter row. "All" first, then the states +// in the order a workspace grows through them. +const STATUS_FILTERS = [ + { value: 'all', label: 'All' }, + { value: 'active', label: 'Active' }, + { value: 'configured', label: 'Configured' }, + { value: 'available', label: 'Available' }, +]; + +const STATUS_TONES = { + active: { light: '#15803d', dark: '#86efac', bgLight: '#f0fdf4', bgDark: 'rgba(34,197,94,0.15)' }, + configured: { light: '#b45309', dark: '#fcd34d', bgLight: '#fffbeb', bgDark: 'rgba(245,158,11,0.15)' }, + available: { light: '#4b5563', dark: 'rgba(255,255,255,0.6)', bgLight: '#f3f4f6', bgDark: 'rgba(255,255,255,0.08)' }, + idle: { light: '#4b5563', dark: 'rgba(255,255,255,0.6)', bgLight: '#f3f4f6', bgDark: 'rgba(255,255,255,0.08)' }, +}; + +const formatNumber = (num) => { + if (num == null) return '0'; + if (num >= 1000) return `${(num / 1000).toFixed(1)}K`; + return String(num); +}; + +/** + * McpServersView — the MCP services this workspace uses, plus the default + * catalog it could turn on. + * + * Rows come from three places at once: servers detected in telemetry and + * solid_agent records (via the `mcp__server__tool` naming convention), + * servers an agent declares in its config, and the platform's default + * catalog. A server therefore appears whether it has been used, merely + * configured, or never touched — and the ones that can run in a sandbox + * can be started from here. + */ +export default function McpServersView({ focusServer, onOpenTools }) { + const { darkMode } = useTheme(); + const [data, setData] = useState(null); + const [isLoading, setIsLoading] = useState(true); + const [loadError, setLoadError] = useState(null); + const [status, setStatus] = useState('all'); + const [hours, setHours] = useState(24 * 7); + const [expanded, setExpanded] = useState(focusServer || null); + const [launching, setLaunching] = useState(null); + const [notice, setNotice] = useState(null); + + const fetchServers = useCallback(async () => { + try { + const response = await fetch(`/api/mcp_servers?hours=${hours}`); + if (!response.ok) throw new Error(`Request failed (${response.status})`); + setData(await response.json()); + setLoadError(null); + } catch (error) { + setLoadError(error.message); + } finally { + setIsLoading(false); + } + }, [hours]); + + useEffect(() => { + fetchServers(); + const interval = setInterval(fetchServers, REFRESH_INTERVAL_MS); + return () => clearInterval(interval); + }, [fetchServers]); + + useEffect(() => { + if (focusServer) setExpanded(focusServer); + }, [focusServer]); + + const colors = { + bg: darkMode ? 'transparent' : '#f9fafb', + cardBg: darkMode ? 'rgba(255,255,255,0.05)' : '#ffffff', + border: darkMode ? 'rgba(255,255,255,0.1)' : '#e5e7eb', + borderLight: darkMode ? 'rgba(255,255,255,0.05)' : '#f3f4f6', + textPrimary: darkMode ? '#ffffff' : '#111827', + textSecondary: darkMode ? 'rgba(255,255,255,0.6)' : '#6b7280', + textMuted: darkMode ? 'rgba(255,255,255,0.4)' : '#9ca3af', + textCell: darkMode ? 'rgba(255,255,255,0.7)' : '#4b5563', + error: '#ef4444', + errorBg: darkMode ? 'rgba(239,68,68,0.2)' : '#fef2f2', + codeBg: darkMode ? 'rgba(0,0,0,0.35)' : '#f9fafb', + }; + + const tone = (key) => { + const palette = STATUS_TONES[key] || STATUS_TONES.available; + return { fg: darkMode ? palette.dark : palette.light, bg: darkMode ? palette.bgDark : palette.bgLight }; + }; + + const launch = async (server) => { + setLaunching(server.key); + setNotice(null); + try { + const response = await fetch(`/api/mcp_servers/${encodeURIComponent(server.key)}/launch`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]')?.content || '', + }, + }); + const body = await response.json(); + if (!response.ok) throw new Error(body.reason || body.error || `Launch failed (${response.status})`); + + setNotice({ kind: 'ok', text: `${server.name} is starting in a sandbox (${body.sandbox.session_id.slice(0, 8)}…)` }); + fetchServers(); + } catch (error) { + setNotice({ kind: 'error', text: error.message }); + } finally { + setLaunching(null); + } + }; + + if (isLoading && !data) { + return ( +
+
+
+ ); + } + + if (loadError && !data) { + return ( +
+

MCP Services

+
+ Failed to load MCP services: {loadError} +
+
+ ); + } + + const { servers = [], summary = {}, sandboxes = [], statuses = {} } = data || {}; + const visible = status === 'all' ? servers : servers.filter((server) => server.status === status); + const runningKeys = new Set(sandboxes.flatMap((sandbox) => sandbox.mcp_servers || [])); + + const StatCard = ({ label, value, hint }) => ( +
+
{label}
+
{value}
+ {hint &&
{hint}
} +
+ ); + + return ( +
+
+
+
+

MCP Services

+

+ Servers detected from your agents' traffic, plus the defaults you can connect or run in a sandbox +

+
+
+ {WINDOWS.map((window) => ( + + ))} +
+
+
+ +
+
+ + + + +
+ + {notice && ( +
+ {notice.text} +
+ )} + +
+ {STATUS_FILTERS.map((filter) => ( + + ))} +
+ +
+ {visible.length === 0 ? ( +
+ No MCP services in this state +
+ ) : ( + visible.map((server) => { + const statusTone = tone(server.status); + const isOpen = expanded === server.key; + const isRunning = runningKeys.has(server.key); + + return ( +
+
setExpanded(isOpen ? null : server.key)} + style={{ padding: '16px 20px', cursor: 'pointer', display: 'flex', alignItems: 'center', gap: '16px', flexWrap: 'wrap' }} + > +
+
+ {server.name} + + {server.status} + + {server.first_party && ( + + first-party + + )} + {!server.known && ( + + undocumented + + )} + {isRunning && ( + + ● sandbox running + + )} +
+ {server.description && ( +
{server.description}
+ )} +
+ +
+
+
{formatNumber(server.calls)}
+
calls
+
+
+
0 ? colors.error : colors.textPrimary }}>{server.errors || 0}
+
errors
+
+ {server.launchable && ( + + )} +
+
+ + {isOpen && ( + + )} +
+ ); + }) + )} +
+ + {sandboxes.length > 0 && ( +
+

Running sandboxes

+
+ {sandboxes.map((sandbox) => ( +
+ {(sandbox.mcp_servers || []).join(', ') || sandbox.sandbox_type} + + {sandbox.status} · {sandbox.runs_count}/{sandbox.max_runs} runs · expires {new Date(sandbox.expires_at).toLocaleTimeString()} + +
+ ))} +
+
+ )} +
+
+ ); +} + +// Expanded card: how to connect the server, what it exposes, and who uses it. +function ServerDetail({ server, colors, tone, onOpenTools }) { + const Row = ({ label, children }) => ( +
+ {label} + {children} +
+ ); + + const connection = server.command || server.url; + + return ( +
+
+ + {connection && ( + + + {connection} + + + )} + {server.transport && {server.transport}} + {server.categories?.length > 0 && {server.categories.join(', ')}} + {server.requires_credentials?.length > 0 && ( + {server.requires_credentials.join(', ')} + )} + + 0 ? 'Tools used' : 'Tools offered'}> + {server.tools?.length > 0 ? ( + + {server.tools.map((tool) => ( + + {tool} + + ))} + + ) : ( + none recorded + )} + + + {server.agents?.length > 0 && {server.agents.join(', ')}} + {server.configured_by?.length > 0 && {server.configured_by.join(', ')}} + {server.last_seen && {new Date(server.last_seen).toLocaleString()}} + +
+ {server.docs_url && ( + + Documentation → + + )} + {server.calls > 0 && onOpenTools && ( + + )} +
+
+ ); +} diff --git a/actionagent/frontend/components/dashboard/Sidebar.jsx b/actionagent/frontend/components/dashboard/Sidebar.jsx index 3128c3d6..9c89d39a 100644 --- a/actionagent/frontend/components/dashboard/Sidebar.jsx +++ b/actionagent/frontend/components/dashboard/Sidebar.jsx @@ -31,6 +31,8 @@ export default function Sidebar({ currentView, onNavigate, agentCount, account, const observabilityItems = [ { id: 'traces', label: 'Traces', icon: ICONS.nav.traces }, { id: 'interactions', label: 'Interactions', icon: ICONS.nav.interactions }, + { id: 'tools', label: 'Tools', icon: ICONS.nav.tools }, + { id: 'mcp', label: 'MCP Services', icon: ICONS.nav.mcp }, { id: 'metrics', label: 'Metrics', icon: ICONS.nav.metrics }, { id: 'evaluations', label: 'Evaluations', icon: ICONS.nav.evaluations }, { id: 'replay', label: 'Session Replay', icon: ICONS.nav.replay }, diff --git a/actionagent/frontend/components/dashboard/ToolsView.jsx b/actionagent/frontend/components/dashboard/ToolsView.jsx new file mode 100644 index 00000000..93d66e5e --- /dev/null +++ b/actionagent/frontend/components/dashboard/ToolsView.jsx @@ -0,0 +1,367 @@ +import React, { useState, useEffect, useCallback } from 'react'; +import { useTheme } from '../../contexts/ThemeContext'; + +const REFRESH_INTERVAL_MS = 60000; + +// Windows worth offering: a day for "what is happening now", a week as the +// default (tool usage is bursty enough that 24h often reads as empty), and +// a month for the full surface. +const WINDOWS = [ + { value: 24, label: '24h' }, + { value: 24 * 7, label: '7d' }, + { value: 24 * 30, label: '30d' }, +]; + +// Origin drives the accent a row carries, so where a tool comes from is +// legible without reading the label. +const ORIGIN_COLORS = { + mcp: { light: '#7c3aed', dark: '#c4b5fd', bgLight: '#f5f3ff', bgDark: 'rgba(124,58,237,0.15)' }, + builtin: { light: '#2563eb', dark: '#93c5fd', bgLight: '#eff6ff', bgDark: 'rgba(37,99,235,0.15)' }, + agent: { light: '#15803d', dark: '#86efac', bgLight: '#f0fdf4', bgDark: 'rgba(34,197,94,0.12)' }, +}; + +const formatNumber = (num) => { + if (num == null) return '0'; + if (num >= 1000000) return `${(num / 1000000).toFixed(1)}M`; + if (num >= 1000) return `${(num / 1000).toFixed(1)}K`; + return String(num); +}; + +const formatDuration = (ms) => { + if (ms == null) return '—'; + return ms >= 1000 ? `${(ms / 1000).toFixed(2)}s` : `${Math.round(ms)}ms`; +}; + +const formatWhen = (iso) => { + if (!iso) return '—'; + const then = new Date(iso); + const minutes = Math.round((Date.now() - then.getTime()) / 60000); + if (minutes < 1) return 'just now'; + if (minutes < 60) return `${minutes}m ago`; + const hours = Math.round(minutes / 60); + if (hours < 24) return `${hours}h ago`; + return `${Math.round(hours / 24)}d ago`; +}; + +/** + * ToolsView — every tool this workspace's agents can reach, discovered + * rather than registered. + * + * The inventory is assembled server-side (ToolDiscovery) from telemetry + * tool spans, the tool roster in each generation request, and solid_agent + * generation/message records. Nothing here is hand-maintained, so a tool + * appears the first time an agent is offered it — not when someone + * remembers to add it to a list. + */ +export default function ToolsView({ onOpenServer }) { + const { darkMode } = useTheme(); + const [data, setData] = useState(null); + const [isLoading, setIsLoading] = useState(true); + const [loadError, setLoadError] = useState(null); + const [origin, setOrigin] = useState('all'); + const [query, setQuery] = useState(''); + const [hours, setHours] = useState(24 * 7); + const [expanded, setExpanded] = useState(null); + + const fetchTools = useCallback(async () => { + try { + const params = new URLSearchParams({ hours: String(hours) }); + if (origin !== 'all') params.set('origin', origin); + if (query.trim()) params.set('q', query.trim()); + + const response = await fetch(`/api/tools?${params}`); + if (!response.ok) throw new Error(`Request failed (${response.status})`); + setData(await response.json()); + setLoadError(null); + } catch (error) { + setLoadError(error.message); + } finally { + setIsLoading(false); + } + }, [origin, query, hours]); + + // Typing in the filter shouldn't fire a request per keystroke. + useEffect(() => { + const timer = setTimeout(fetchTools, query ? 250 : 0); + return () => clearTimeout(timer); + }, [fetchTools, query]); + + useEffect(() => { + const interval = setInterval(fetchTools, REFRESH_INTERVAL_MS); + return () => clearInterval(interval); + }, [fetchTools]); + + const colors = { + bg: darkMode ? 'transparent' : '#f9fafb', + cardBg: darkMode ? 'rgba(255,255,255,0.05)' : '#ffffff', + border: darkMode ? 'rgba(255,255,255,0.1)' : '#e5e7eb', + borderLight: darkMode ? 'rgba(255,255,255,0.05)' : '#f3f4f6', + textPrimary: darkMode ? '#ffffff' : '#111827', + textSecondary: darkMode ? 'rgba(255,255,255,0.6)' : '#6b7280', + textMuted: darkMode ? 'rgba(255,255,255,0.4)' : '#9ca3af', + textCell: darkMode ? 'rgba(255,255,255,0.7)' : '#4b5563', + error: '#ef4444', + errorBg: darkMode ? 'rgba(239,68,68,0.2)' : '#fef2f2', + inputBg: darkMode ? 'rgba(255,255,255,0.06)' : '#ffffff', + }; + + const accent = (originKey) => { + const palette = ORIGIN_COLORS[originKey] || ORIGIN_COLORS.agent; + return { + fg: darkMode ? palette.dark : palette.light, + bg: darkMode ? palette.bgDark : palette.bgLight, + }; + }; + + if (isLoading && !data) { + return ( +
+
+
+ ); + } + + if (loadError && !data) { + return ( +
+

Tools

+
+ Failed to load tools: {loadError} +
+
+ ); + } + + const { tools = [], summary = {}, origins = {}, sources = {} } = data || {}; + const nothingReported = !sources.telemetry && !sources.generations && !sources.messages && !sources.declared; + + const StatCard = ({ label, value, hint, tone }) => ( +
+
{label}
+
{value}
+ {hint &&
{hint}
} +
+ ); + + return ( +
+
+
+
+

Tools

+

+ Detected from telemetry spans, generation request bodies, and agent records — nothing to register by hand +

+
+
+ {WINDOWS.map((window) => ( + + ))} +
+
+
+ +
+
+ + + 5 ? colors.error : colors.textPrimary} + hint={`${summary.total_errors || 0} failed call${summary.total_errors === 1 ? '' : 's'}`} + /> + + +
+ + {/* Filters */} +
+ {Object.entries(origins).map(([key, label]) => ( + + ))} + setQuery(event.target.value)} + placeholder="Filter by name…" + style={{ + marginLeft: 'auto', padding: '6px 12px', fontSize: '13px', borderRadius: '6px', minWidth: '200px', + border: `1px solid ${colors.border}`, background: colors.inputBg, color: colors.textPrimary, + }} + /> +
+ +
+ {tools.length === 0 ? ( +
+ {nothingReported + ? "No tool activity yet — run an agent, or point your app's ActiveAgent telemetry at this workspace" + : 'No tools match these filters'} +
+ ) : ( +
+ + + + + + + + + {/* "Seen", not "used": a tool offered in a request + roster but never called still has a timestamp. */} + + + + + {tools.map((tool, index) => { + const tone = accent(tool.origin); + const isOpen = expanded === tool.name; + return ( + + setExpanded(isOpen ? null : tool.name)} + style={{ + borderBottom: index < tools.length - 1 || isOpen ? `1px solid ${colors.borderLight}` : 'none', + cursor: 'pointer', + background: isOpen ? (darkMode ? 'rgba(255,255,255,0.03)' : '#fafafa') : 'transparent', + }} + > + + + + + + + + {isOpen && ( + + + + )} + + ); + })} + +
ToolSourceCallsErrorsAvgLast seen
+
+ + {tool.base_name} + + {tool.unused && ( + + unused + + )} +
+ {tool.description && ( +
+ {tool.description} +
+ )} +
+ + {formatNumber(tool.calls)} 0 ? colors.error : colors.textCell }}> + {tool.errors} + {formatDuration(tool.avg_duration_ms)}{formatWhen(tool.last_seen)}
+ +
+
+ )} +
+ + {/* Where the inventory came from — makes an empty or partial list + explainable instead of just sparse. */} +
+ Detected from: + {[ + ['telemetry', 'telemetry spans'], + ['declared', 'request tool rosters'], + ['generations', 'generation records'], + ['messages', 'tool messages'], + ].map(([key, label]) => ( + + {sources[key] ? '●' : '○'} {label} + + ))} +
+
+
+ ); +} + +// Expanded row: the tool's full name, parameters, who uses it, and the +// arguments it was last called with. +function ToolDetail({ tool, colors, tone, darkMode }) { + const Row = ({ label, children }) => ( +
+ {label} + {children} +
+ ); + + return ( +
+ {tool.name} + {tool.description && {tool.description}} + + {tool.parameters?.length > 0 + ? {tool.parameters.join(', ')} + : none recorded} + + + {tool.agents?.length > 0 ? tool.agents.join(', ') : } + + {tool.configured_by?.length > 0 && {tool.configured_by.join(', ')}} + + + {tool.traced_calls} traced · {tool.requested} requested · {tool.results} results + + + {tool.sample_arguments && ( + + {tool.sample_arguments} + + )} + {tool.last_error && ( + {tool.last_error} + )} + {tool.detected_from?.join(', ') || '—'} +
+ ); +} diff --git a/actionagent/frontend/pages/Dashboard.jsx b/actionagent/frontend/pages/Dashboard.jsx index ea854e1a..f99bbc71 100644 --- a/actionagent/frontend/pages/Dashboard.jsx +++ b/actionagent/frontend/pages/Dashboard.jsx @@ -11,6 +11,8 @@ import Header from '../components/dashboard/Header'; import TracesView from '../components/dashboard/TracesView'; import MetricsView from '../components/dashboard/MetricsView'; import InteractionsView from '../components/dashboard/InteractionsView'; +import ToolsView from '../components/dashboard/ToolsView'; +import McpServersView from '../components/dashboard/McpServersView'; import EvaluationsView from '../components/dashboard/EvaluationsView'; import SandboxRunner from '../components/dashboard/SandboxRunner'; import SessionReplayView from '../components/dashboard/SessionReplayView'; @@ -35,6 +37,9 @@ function DashboardContent({ user, initialAgents = [], meta = {}, account = null, const [notification, setNotification] = useState(null); const [showTemplateLibrary, setShowTemplateLibrary] = useState(false); const [agentSort, setAgentSort] = useState('recent'); + // Which MCP service the MCP view should open expanded — set when a tool + // row links to the server that serves it, or from a /mcp/:server URL. + const [focusServer, setFocusServer] = useState(null); // Parse the URL into a view. Runs on mount and on popstate, so browser // back/forward and in-app pushState navigation (e.g. a Traces agent card @@ -48,6 +53,13 @@ function DashboardContent({ user, initialAgents = [], meta = {}, account = null, setCurrentView('metrics'); } else if (path.includes('/interactions') && !path.includes('/agents/')) { setCurrentView('interactions'); + } else if (path.includes('/tools')) { + setCurrentView('tools'); + } else if (path.includes('/mcp')) { + // /mcp/:server deep-links straight to one service. + const key = path.match(/\/mcp\/([^/?#]+)/)?.[1]; + if (key) setFocusServer(decodeURIComponent(key)); + setCurrentView('mcp'); } else if (path.includes('/evaluations')) { setCurrentView('evaluations'); } else if (path.includes('/analytics') && !path.includes('/agents/')) { @@ -268,6 +280,8 @@ function DashboardContent({ user, initialAgents = [], meta = {}, account = null, else if (view === 'traces') path = dashboardPath('/traces'); else if (view === 'metrics') path = dashboardPath('/metrics'); else if (view === 'interactions') path = dashboardPath('/interactions'); + else if (view === 'tools') path = dashboardPath('/tools'); + else if (view === 'mcp') path = dashboardPath('/mcp'); else if (view === 'evaluations') path = dashboardPath('/evaluations'); else if (view === 'benchmarks') path = dashboardPath('/benchmarks'); else if (view === 'replay') path = dashboardPath('/replay'); @@ -350,6 +364,25 @@ function DashboardContent({ user, initialAgents = [], meta = {}, account = null, return ; case 'interactions': return ; + case 'tools': + return ( + { + setFocusServer(key); + navigateTo('mcp'); + }} + /> + ); + case 'mcp': + return ( + { + setFocusServer(null); + navigateTo('tools'); + }} + /> + ); case 'evaluations': return ; case 'replay': diff --git a/actionagent/frontend/utils/designTokens.js b/actionagent/frontend/utils/designTokens.js index ca220f28..bb9e5eec 100644 --- a/actionagent/frontend/utils/designTokens.js +++ b/actionagent/frontend/utils/designTokens.js @@ -64,6 +64,8 @@ export const ICONS = { interactions: '<>', benchmarks: '%%', replay: '[>]', + tools: '[]', + mcp: '{}', docs: '?', github: '*', }, diff --git a/actionagent/lib/generators/action_agent/templates/create_active_agent_dashboard_tables.rb.erb b/actionagent/lib/generators/action_agent/templates/create_active_agent_dashboard_tables.rb.erb index 5c4baf43..5142afab 100644 --- a/actionagent/lib/generators/action_agent/templates/create_active_agent_dashboard_tables.rb.erb +++ b/actionagent/lib/generators/action_agent/templates/create_active_agent_dashboard_tables.rb.erb @@ -209,6 +209,10 @@ class CreateActiveAgentDashboardTables < ActiveRecord::Migration<%= migration_ve t.string :cloud_run_job_id t.string :cloud_run_url t.column :runs, json_type, default: [] + # MCP servers this session was started with, so the MCP Services view + # can show a launched server as running rather than offering to start + # a second copy. + t.column :mcp_servers, json_type, default: [] t.integer :runs_count, default: 0 t.integer :max_runs, default: 10 t.integer :timeout_seconds, default: 300 diff --git a/actionagent/test/telemetry_trace_test.rb b/actionagent/test/telemetry_trace_test.rb index f8542ee3..34f2ab41 100644 --- a/actionagent/test/telemetry_trace_test.rb +++ b/actionagent/test/telemetry_trace_test.rb @@ -108,6 +108,89 @@ def llm_span(tokens:, status: "OK") assert_equal "mock", trace.provider assert_equal "mock-model", trace.model end + + def tool_span(attributes, id: "tool1", status: "OK") + { + "span_id" => id, "parent_span_id" => "llm1", "name" => "tool.#{attributes['tool.name']}", + "type" => "tool", "duration_ms" => 42.0, "status" => status, "attributes" => attributes + } + end + + def prompt_span(roster) + { + "span_id" => "prompt1", "parent_span_id" => "root1", "name" => "prompt", + "type" => "prompt", "duration_ms" => 2.0, "status" => "OK", + "attributes" => { "prompt.input.tools" => roster.to_json } + } + end + + test "normalizes tool calls with the origin attributes instrumentation recorded" do + trace = ActiveAgent::TelemetryTrace.create_from_payload( + payload(spans: [ + root_span, llm_span(tokens: {}), + tool_span({ + "tool.name" => "mcp__playwright__browser_click", "tool.origin" => "mcp", + "tool.mcp_server" => "playwright", "tool.base_name" => "browser_click", + "tool.input.args" => '{"ref":"e12"}' + }) + ]) + ) + + usage = trace.tool_usage.first + assert_equal "mcp", usage[:origin] + assert_equal "playwright", usage[:mcp_server] + assert_equal "browser_click", usage[:base_name] + assert_equal '{"ref":"e12"}', usage[:arguments] + assert_equal 42.0, usage[:duration_ms] + end + + test "classifies tool calls on read when the trace predates origin tagging" do + trace = ActiveAgent::TelemetryTrace.create_from_payload( + payload(spans: [ root_span, llm_span(tokens: {}), tool_span({ "tool.name" => "mcp__git__git_status" }) ]) + ) + + usage = trace.tool_usage.first + assert_equal "mcp", usage[:origin] + assert_equal "git", usage[:mcp_server] + assert_equal "git_status", usage[:base_name] + end + + test "reads the tool roster the generation request offered" do + trace = ActiveAgent::TelemetryTrace.create_from_payload( + payload(spans: [ + root_span, + prompt_span([ { "name" => "mcp__fetch__fetch", "description" => "Fetch a URL", "parameters" => [ "url" ] } ]), + llm_span(tokens: {}) + ]) + ) + + declared = trace.declared_tools.first + assert_equal "mcp__fetch__fetch", declared[:name] + assert_equal "Fetch a URL", declared[:description] + assert_equal [ "url" ], declared[:parameters] + assert_equal "fetch", declared[:mcp_server] + end + + test "mcp_servers covers both offered and called servers" do + trace = ActiveAgent::TelemetryTrace.create_from_payload( + payload(spans: [ + root_span, + prompt_span([ { "name" => "mcp__memory__read_graph" } ]), + llm_span(tokens: {}), + tool_span({ "tool.name" => "mcp__git__git_status" }) + ]) + ) + + assert_equal %w[git memory], trace.mcp_servers + end + + test "tool readers are empty for a trace with neither tool spans nor a roster" do + trace = ActiveAgent::TelemetryTrace.create_from_payload(payload(spans: [ root_span, llm_span(tokens: {}) ])) + + assert_empty trace.tool_usage + assert_empty trace.declared_tools + assert_empty trace.mcp_servers + end end TelemetryTraceTest.ensure_table! diff --git a/actionagent/test/tool_discovery_test.rb b/actionagent/test/tool_discovery_test.rb new file mode 100644 index 00000000..147690fb --- /dev/null +++ b/actionagent/test/tool_discovery_test.rb @@ -0,0 +1,425 @@ +# frozen_string_literal: true + +require "test_helper" +require_relative "telemetry_trace_test" + +# The Tools and MCP Services API, exercised through the engine mounted in the +# dummy app at /activeagents. The inventory is derived rather than +# registered, so these cover each record source it reads and the way they +# combine — including the case where one run writes to several at once. +class ToolDiscoveryApiTest < ActionDispatch::IntegrationTest + def setup + ActionAgent::Agent.delete_all + ActionAgent::TelemetryTrace.delete_all + ActionAgent::AgentContext.delete_all + ActionAgent::SandboxSession.delete_all + end + + def create_agent(name: "Support", **attributes) + ActionAgent::Agent.create!( + { name: name, provider: "openai", model: "gpt-4o-mini" }.merge(attributes) + ) + end + + # A trace carrying an offered tool roster and/or executed tool spans, + # shaped the way ActiveAgent's instrumentation emits them. + def create_trace(agent_class: "SupportAgent", declared: [], calls: [], timestamp: Time.current) + spans = [ + { + "span_id" => "r1", "parent_span_id" => nil, "name" => "#{agent_class}.respond", + "type" => "root", "duration_ms" => 1000.0, "status" => "OK", + "attributes" => { "agent.class" => agent_class, "agent.action" => "respond" } + } + ] + + if declared.any? + spans << { + "span_id" => "p1", "parent_span_id" => "r1", "name" => "prompt", + "type" => "prompt", "duration_ms" => 5.0, "status" => "OK", + "attributes" => { "prompt.input.tools" => declared.to_json } + } + end + + calls.each_with_index do |call, index| + attributes = { "tool.name" => call[:name] } + attributes["error.message"] = call[:error] if call[:error] + attributes["tool.input.args"] = call[:args] if call[:args] + spans << { + "span_id" => "t#{index}", "parent_span_id" => "r1", "name" => "tool.#{call[:name]}", + "type" => "tool", "duration_ms" => call.fetch(:duration, 100.0), + "status" => call[:error] ? "ERROR" : "OK", "attributes" => attributes + } + end + + ActionAgent::TelemetryTrace.create_from_payload( + { + "trace_id" => SecureRandom.hex(16), "service_name" => "app", + "environment" => "production", "timestamp" => timestamp.iso8601(6), "spans" => spans + } + ) + end + + def create_context(agent:, tool_calls: [], provenance_tools: nil, tool_messages: []) + context = ActionAgent::AgentContext.create!( + agent_name: "SupportAgent", action_name: "respond", contextable: agent + ) + provenance = { "agent_class" => "SupportAgent" } + provenance["tools"] = provenance_tools if provenance_tools + + if tool_calls.any? || provenance_tools + context.generations.create!( + model: "gpt-4o", provider: "openai", finish_reason: "tool_calls", + tool_calls: tool_calls, provenance: provenance + ) + end + + tool_messages.each do |name| + context.add_tool_message(tool_call_id: SecureRandom.hex(4), tool_name: name, result: "ok") + end + + context + end + + def tools_response + get "/activeagents/api/tools" + assert_response :success + JSON.parse(response.body) + end + + def tool_named(name, body = tools_response) + body["tools"].find { |row| row["name"] == name } + end + + # --- sources ---------------------------------------------------------- + + test "detects tools called in telemetry spans" do + create_trace(calls: [ { name: "lookup_order", duration: 200.0 } ]) + + tool = tool_named("lookup_order") + + assert_equal 1, tool["calls"] + assert_equal 200, tool["avg_duration_ms"] + assert_equal "agent", tool["origin"] + assert_includes tool["detected_from"], "telemetry" + assert_includes tool["agents"], "SupportAgent" + end + + test "attributes namespaced tool calls to their MCP server" do + create_trace(calls: [ { name: "mcp__playwright__browser_navigate" } ]) + + tool = tool_named("mcp__playwright__browser_navigate") + + assert_equal "mcp", tool["origin"] + assert_equal "playwright", tool["mcp_server"] + assert_equal "browser_navigate", tool["base_name"] + assert_equal "MCP · Playwright", tool["source_label"] + end + + test "detects tools offered in the generation request body but never called" do + create_trace(declared: [ { "name" => "never_called", "description" => "Offered only", "parameters" => [ "id" ] } ]) + + tool = tool_named("never_called") + + assert tool["declared"] + assert tool["unused"] + assert_equal 0, tool["calls"] + assert_equal "Offered only", tool["description"] + assert_equal [ "id" ], tool["parameters"] + assert_includes tool["detected_from"], "request" + end + + test "detects tools from solid_agent generation provenance" do + create_context( + agent: create_agent, + provenance_tools: [ { "name" => "solid_tool", "description" => "From provenance", "parameters" => [ "x" ] } ] + ) + + tool = tool_named("solid_tool") + + assert tool["declared"] + assert_equal "From provenance", tool["description"] + assert_includes tool["detected_from"], "provenance" + end + + test "detects tools from solid_agent tool_calls and tool messages" do + create_context( + agent: create_agent, + tool_calls: [ { "name" => "send_email", "arguments" => { "to" => "a@b.c" } } ], + tool_messages: [ "send_email" ] + ) + + tool = tool_named("send_email") + + assert_equal 1, tool["requested"] + assert_equal 1, tool["results"] + # No telemetry span for this tool, so the count falls back to the + # strongest signal present rather than reporting zero. + assert_equal 1, tool["calls"] + assert_includes tool["detected_from"], "generations" + assert_includes tool["detected_from"], "messages" + end + + test "counts a run written to every source only once" do + agent = create_agent + create_trace(calls: [ { name: "send_email" } ]) + create_context(agent: agent, tool_calls: [ { "name" => "send_email" } ], tool_messages: [ "send_email" ]) + + tool = tool_named("send_email") + + assert_equal 1, tool["calls"], "telemetry is authoritative; generations/messages must not add to it" + assert_equal 1, tool["traced_calls"] + end + + test "reports errors and error rate from tool spans" do + create_trace(calls: [ { name: "flaky_tool", error: "boom" }, { name: "flaky_tool" } ]) + + tool = tool_named("flaky_tool") + + assert_equal 2, tool["calls"] + assert_equal 1, tool["errors"] + assert_equal 50.0, tool["error_rate"] + assert_equal "boom", tool["last_error"] + end + + test "lists tools an agent configured but never called" do + create_agent(tools: [ "code" ]) + + # The "code" capability exposes calculate(); the view lists the real + # tool name, not the builder's capability label. + tool = tool_named("calculate") + + assert tool["unused"] + assert_equal "builtin", tool["origin"] + assert_includes tool["configured_by"], "Support" + end + + test "classifies dashboard toolbox tools as builtin" do + create_trace(calls: [ { name: "web_search" } ]) + + tool = tool_named("web_search") + + assert_equal "builtin", tool["origin"] + assert_equal "Dashboard toolbox", tool["source_label"] + end + + test "counts only traffic inside the requested window" do + create_trace(calls: [ { name: "old_tool" } ], timestamp: 10.days.ago, agent_class: "OldAgent") + create_trace(calls: [ { name: "new_tool" } ]) + + get "/activeagents/api/tools", params: { hours: 24 } + body = JSON.parse(response.body) + tools = body["tools"].index_by { |row| row["name"] } + + assert_equal 1, tools["new_tool"]["calls"] + assert_equal 1, body.dig("summary", "total_calls") + + # Aged-out traffic contributes no calls. Whether the tool stays listed + # at all depends on the install: where AgentRegistrar has recorded the + # agent behind it, that agent's tools remain part of its configuration, + # because the window bounds traffic and not configuration. So this + # asserts the count rather than absence. + assert_equal 0, tools["old_tool"]["calls"] if tools.key?("old_tool") + end + + test "filters by origin and by search query" do + create_trace(calls: [ { name: "mcp__playwright__browser_click" }, { name: "lookup_order" } ]) + + get "/activeagents/api/tools", params: { origin: "mcp" } + assert_equal [ "mcp__playwright__browser_click" ], JSON.parse(response.body)["tools"].map { |row| row["name"] } + + get "/activeagents/api/tools", params: { q: "lookup" } + assert_equal [ "lookup_order" ], JSON.parse(response.body)["tools"].map { |row| row["name"] } + end + + test "summarizes the inventory and reports which sources had data" do + create_trace( + declared: [ { "name" => "idle_tool", "description" => "never used" } ], + calls: [ { name: "mcp__playwright__browser_click" } ] + ) + + body = tools_response + + assert_equal 1, body.dig("summary", "active_tools") + assert_equal 1, body.dig("summary", "mcp_tools") + assert_equal 1, body.dig("summary", "total_calls") + assert_equal 1, body.dig("summary", "mcp_servers_active") + assert body.dig("sources", "telemetry") + assert_not body.dig("sources", "declared") + end +end + +# The MCP Services API: detected servers unioned with the default catalog, +# and starting a catalog server inside a sandbox. +class McpServersApiTest < ActionDispatch::IntegrationTest + def setup + ActionAgent::Agent.delete_all + ActionAgent::TelemetryTrace.delete_all + ActionAgent::SandboxSession.delete_all + end + + def create_agent(name: "Support", **attributes) + ActionAgent::Agent.create!( + { name: name, provider: "openai", model: "gpt-4o-mini" }.merge(attributes) + ) + end + + def create_trace(tool_names, agent_class: "SupportAgent") + spans = [ + { + "span_id" => "r1", "parent_span_id" => nil, "name" => "#{agent_class}.respond", + "type" => "root", "duration_ms" => 900.0, "status" => "OK", + "attributes" => { "agent.class" => agent_class, "agent.action" => "respond" } + } + ] + Array(tool_names).each_with_index do |name, index| + spans << { + "span_id" => "t#{index}", "parent_span_id" => "r1", "name" => "tool.#{name}", + "type" => "tool", "duration_ms" => 50.0, "status" => "OK", + "attributes" => { "tool.name" => name } + } + end + + ActionAgent::TelemetryTrace.create_from_payload( + { + "trace_id" => SecureRandom.hex(16), "service_name" => "app", + "environment" => "production", "timestamp" => Time.current.iso8601(6), "spans" => spans + } + ) + end + + def servers_response + get "/activeagents/api/mcp_servers" + assert_response :success + JSON.parse(response.body) + end + + def server_named(key, body = servers_response) + body["servers"].find { |server| server["key"] == key } + end + + test "lists the default catalog even with no traffic" do + body = servers_response + + keys = body["servers"].map { |server| server["key"] } + assert_includes keys, "playwright" + assert_includes keys, "github" + + playwright = server_named("playwright", body) + assert_equal "available", playwright["status"] + assert_equal 0, playwright["calls"] + assert playwright["known"] + assert playwright["launchable"] + # A catalog entry advertises its tools before any have been called. + assert_includes playwright["tools"], "browser_navigate" + end + + test "marks a server active once its tools are called" do + create_trace([ "mcp__playwright__browser_navigate", "mcp__playwright__browser_click" ]) + + playwright = server_named("playwright") + + assert_equal "active", playwright["status"] + assert_equal 2, playwright["calls"] + assert_equal 2, playwright["tool_count"] + assert_equal [ "browser_click", "browser_navigate" ], playwright["tools"] + assert_includes playwright["agents"], "SupportAgent" + end + + test "surfaces a detected server that is not in the catalog" do + create_trace([ "mcp__acme_internal__do_thing" ]) + + acme = server_named("acme_internal") + + assert_not_nil acme, "a server seen in traffic should be listed even when undocumented" + assert_equal "active", acme["status"] + assert_not acme["known"] + assert_not acme["launchable"] + end + + test "marks a server configured when an agent declares it without traffic" do + create_agent(mcp_servers: [ "filesystem" ]) + + filesystem = server_named("filesystem") + + assert_equal "configured", filesystem["status"] + assert_includes filesystem["configured_by"], "Support" + end + + test "accepts an agent mcp_servers entry given as a hash" do + create_agent(mcp_servers: [ { "name" => "git", "url" => "http://localhost:9000" } ]) + + assert_equal "configured", server_named("git")["status"] + end + + test "summarizes servers by status" do + create_trace([ "mcp__playwright__browser_navigate" ]) + create_agent(mcp_servers: [ "filesystem" ]) + + summary = servers_response["summary"] + + assert_equal 1, summary["active"] + assert_equal 1, summary["configured"] + assert summary["available"].positive? + assert_equal 1, summary["total_calls"] + end + + test "shows one server with the tools detected for it" do + create_trace([ "mcp__playwright__browser_navigate" ]) + + get "/activeagents/api/mcp_servers/playwright" + + assert_response :success + body = JSON.parse(response.body) + assert_equal "playwright", body.dig("server", "key") + assert_equal [ "mcp__playwright__browser_navigate" ], body["tools"].map { |tool| tool["name"] } + end + + test "returns not found for an unknown server" do + get "/activeagents/api/mcp_servers/nope" + + assert_response :not_found + end + + test "launches a launchable server in a sandbox" do + assert_difference -> { ActionAgent::SandboxSession.count }, 1 do + post "/activeagents/api/mcp_servers/playwright/launch" + end + + assert_response :created + body = JSON.parse(response.body) + assert_equal "playwright", body.dig("server", "key") + assert_equal [ "playwright" ], body.dig("sandbox", "mcp_servers") + + sandbox = ActionAgent::SandboxSession.order(:created_at).last + assert_equal "playwright_mcp", sandbox.sandbox_type + assert_equal [ "playwright" ], sandbox.mcp_servers + end + + test "refuses to launch a server that needs credentials" do + assert_no_difference -> { ActionAgent::SandboxSession.count } do + post "/activeagents/api/mcp_servers/github/launch" + end + + assert_response :unprocessable_entity + assert_match(/GITHUB_TOKEN/, JSON.parse(response.body)["reason"]) + end + + test "lists running sandboxes so a launched server is not started twice" do + post "/activeagents/api/mcp_servers/filesystem/launch" + assert_response :created + + running = servers_response["sandboxes"] + + assert_equal 1, running.size + assert_equal [ "filesystem" ], running.first["mcp_servers"] + end + + test "a catalog server resolves to its entry and its launchability" do + assert ActionAgent::McpCatalog.launchable?("playwright") + assert_not ActionAgent::McpCatalog.launchable?("github") + assert_nil ActionAgent::McpCatalog.find("nope") + assert_equal "Playwright", ActionAgent::McpCatalog.display_name("playwright") + # An unknown key displays as itself rather than blank. + assert_equal "acme", ActionAgent::McpCatalog.display_name("acme") + end +end diff --git a/lib/active_agent/telemetry.rb b/lib/active_agent/telemetry.rb index b68156fe..0a4d96ee 100644 --- a/lib/active_agent/telemetry.rb +++ b/lib/active_agent/telemetry.rb @@ -54,6 +54,7 @@ module Telemetry autoload :Span autoload :Reporter autoload :Instrumentation + autoload :ToolOrigin class << self # Returns the telemetry configuration instance. diff --git a/lib/active_agent/telemetry/instrumentation.rb b/lib/active_agent/telemetry/instrumentation.rb index e285290c..2b2934c2 100644 --- a/lib/active_agent/telemetry/instrumentation.rb +++ b/lib/active_agent/telemetry/instrumentation.rb @@ -147,6 +147,7 @@ def process_prompt tool_span = span.add_span("tool.#{tool_call[:name]}", span_type: :tool) tool_span.set_attribute("tool.name", tool_call[:name]) tool_span.set_attribute("tool.id", tool_call[:id]) if tool_call[:id] + ToolOrigin.annotate(tool_span, tool_call[:name]) tool_span.finish end end @@ -202,6 +203,9 @@ def tools_function tool_span = parent.add_span("tool.#{tool_name}", span_type: :tool) tool_span.set_attribute("tool.name", tool_name.to_s) + # Records which MCP server (if any) serves this tool, so tool + # traffic can be grouped by service downstream. + ToolOrigin.annotate(tool_span, tool_name) arguments = kwargs.presence || (args.length == 1 ? args.first : args.presence) if arguments.present? tool_span.set_attribute("tool.input.args", agent.send(:telemetry_truncate, JSON.generate(arguments))) diff --git a/lib/active_agent/telemetry/tool_origin.rb b/lib/active_agent/telemetry/tool_origin.rb new file mode 100644 index 00000000..a8459699 --- /dev/null +++ b/lib/active_agent/telemetry/tool_origin.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +module ActiveAgent + module Telemetry + # Classifies where a tool call came from, so dashboards can group tool + # traffic by the service that serves it instead of showing a flat list + # of names. + # + # Telemetry only ever sees the name a provider used to invoke the tool, + # so the origin has to be recovered from naming conventions. The MCP + # ecosystem settled on a namespaced form — +mcp____+ — + # which most clients (Claude Code, Cursor, the Ruby MCP clients) emit + # verbatim, and that is the strongest signal available. Everything else + # falls back to "the agent class defines this method". + # + # Classification happens at instrumentation time rather than at read + # time so the attribution is recorded in the span itself: a trace stays + # self-describing, and consumers (the gem dashboard, activeagents.ai, + # any OTLP exporter) all read the same fields instead of each + # re-implementing the guess. + # + # @example Namespaced MCP tool + # ToolOrigin.classify("mcp__playwright__browser_navigate") + # # => { origin: "mcp", server: "playwright", tool: "browser_navigate" } + # + # @example Agent-defined method + # ToolOrigin.classify("lookup_order") + # # => { origin: "agent", server: nil, tool: "lookup_order" } + module ToolOrigin + # +mcp____+. The tool half may itself contain "__", so + # only the first two segments are structural. + MCP_PATTERN = /\Amcp__([^_]+(?:_[^_]+)*?)__(.+)\z/ + + # Origin values written to +tool.origin+. + MCP = "mcp" + AGENT = "agent" + + module_function + + # Classifies a tool name. + # + # @param name [String, Symbol] the tool name as the provider invoked it + # @return [Hash] +:origin+ ("mcp" or "agent"), +:server+ (MCP server + # name or nil), and +:tool+ (the bare tool name with any namespace + # stripped) + def classify(name) + name = name.to_s + + if (match = MCP_PATTERN.match(name)) + { origin: MCP, server: match[1], tool: match[2] } + else + { origin: AGENT, server: nil, tool: name } + end + end + + # Whether a tool name is namespaced to an MCP server. + # + # @param name [String, Symbol] + # @return [Boolean] + def mcp?(name) + MCP_PATTERN.match?(name.to_s) + end + + # The MCP server a tool belongs to, if any. + # + # @param name [String, Symbol] + # @return [String, nil] + def server_for(name) + classify(name)[:server] + end + + # Writes the classification onto a span. Only sets +tool.mcp_server+ + # when there is a server to name, so agent-defined tools don't carry + # an empty attribute. + # + # @param span [ActiveAgent::Telemetry::Span] + # @param name [String, Symbol] the tool name + # @return [Hash] the classification, for callers that also want it + def annotate(span, name) + classification = classify(name) + span.set_attribute("tool.origin", classification[:origin]) + if classification[:server] + span.set_attribute("tool.mcp_server", classification[:server]) + span.set_attribute("tool.base_name", classification[:tool]) + end + classification + end + end + end +end diff --git a/test/dummy/db/migrate/004_create_active_agent_dashboard_tables.rb b/test/dummy/db/migrate/004_create_active_agent_dashboard_tables.rb index bc4bd6d7..2b624a32 100644 --- a/test/dummy/db/migrate/004_create_active_agent_dashboard_tables.rb +++ b/test/dummy/db/migrate/004_create_active_agent_dashboard_tables.rb @@ -209,6 +209,7 @@ def change t.string :cloud_run_job_id t.string :cloud_run_url t.column :runs, json_type, default: [] + t.column :mcp_servers, json_type, default: [] t.integer :runs_count, default: 0 t.integer :max_runs, default: 10 t.integer :timeout_seconds, default: 300 diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb index fa348e1e..aafae6db 100644 --- a/test/dummy/db/schema.rb +++ b/test/dummy/db/schema.rb @@ -280,6 +280,7 @@ t.datetime "expires_at" t.datetime "last_activity_at" t.integer "max_runs", default: 10 + t.json "mcp_servers", default: [] t.json "runs", default: [] t.integer "runs_count", default: 0 t.string "sandbox_type", default: "playwright_mcp" diff --git a/test/telemetry/tool_origin_test.rb b/test/telemetry/tool_origin_test.rb new file mode 100644 index 00000000..d193089a --- /dev/null +++ b/test/telemetry/tool_origin_test.rb @@ -0,0 +1,76 @@ +# frozen_string_literal: true + +require "test_helper" + +class ToolOriginTest < ActiveSupport::TestCase + ToolOrigin = ActiveAgent::Telemetry::ToolOrigin + + test "classifies a namespaced MCP tool" do + result = ToolOrigin.classify("mcp__playwright__browser_navigate") + + assert_equal "mcp", result[:origin] + assert_equal "playwright", result[:server] + assert_equal "browser_navigate", result[:tool] + end + + test "classifies an agent-defined tool" do + result = ToolOrigin.classify("lookup_order") + + assert_equal "agent", result[:origin] + assert_nil result[:server] + assert_equal "lookup_order", result[:tool] + end + + test "keeps underscores inside a server name" do + result = ToolOrigin.classify("mcp__github_enterprise__create_issue") + + assert_equal "github_enterprise", result[:server] + assert_equal "create_issue", result[:tool] + end + + test "keeps underscores inside a tool name" do + result = ToolOrigin.classify("mcp__fs__read_text_file") + + assert_equal "fs", result[:server] + assert_equal "read_text_file", result[:tool] + end + + test "treats a bare mcp-prefixed name without a tool half as agent-defined" do + result = ToolOrigin.classify("mcp__playwright") + + assert_equal "agent", result[:origin] + assert_nil result[:server] + end + + test "handles symbols and blank names" do + assert_equal "mcp", ToolOrigin.classify(:"mcp__fetch__fetch")[:origin] + assert_equal "agent", ToolOrigin.classify(nil)[:origin] + assert_equal "", ToolOrigin.classify(nil)[:tool] + end + + test "mcp? and server_for mirror classify" do + assert ToolOrigin.mcp?("mcp__slack__post_message") + assert_not ToolOrigin.mcp?("post_message") + assert_equal "slack", ToolOrigin.server_for("mcp__slack__post_message") + assert_nil ToolOrigin.server_for("post_message") + end + + test "annotate writes origin attributes onto the span" do + span = ActiveAgent::Telemetry::Span.new("tool.mcp__playwright__browser_click", trace_id: "t1", span_type: :tool) + + ToolOrigin.annotate(span, "mcp__playwright__browser_click") + + assert_equal "mcp", span.attributes["tool.origin"] + assert_equal "playwright", span.attributes["tool.mcp_server"] + assert_equal "browser_click", span.attributes["tool.base_name"] + end + + test "annotate leaves no server attribute for agent-defined tools" do + span = ActiveAgent::Telemetry::Span.new("tool.lookup_order", trace_id: "t1", span_type: :tool) + + ToolOrigin.annotate(span, "lookup_order") + + assert_equal "agent", span.attributes["tool.origin"] + assert_not span.attributes.key?("tool.mcp_server") + end +end