← back to Bertha
chore(alshi-dash,kalshi-dash): update 6 files (.js) [+20/-15] Files changed: D kalshi-dash/dist/assets/index-CGoDMavW.js D kalshi-dash/dist/assets/index-Ggn7I0OX.css M kalshi-dash/dist/index.html M kalshi-dash/src/pages/Dashboard.jsx ?? kalshi-dash/dist/assets/index-Cfq6Mp9p.js ?? kalshi-dash/dist/assets/index-wV2sMfbv.css
ffb04de2541982d2dc1f6e59b41ed1cc7efa50c6 · 2026-02-27 17:34:01 +0000 · DW Commit Agent
Files touched
R087 kalshi-dash/dist/assets/index-CGoDMavW.js kalshi-dash/dist/assets/index-Cfq6Mp9p.jsD kalshi-dash/dist/assets/index-Ggn7I0OX.cssA kalshi-dash/dist/assets/index-wV2sMfbv.cssM kalshi-dash/dist/index.htmlM kalshi-dash/src/pages/Dashboard.jsx
Diff
commit ffb04de2541982d2dc1f6e59b41ed1cc7efa50c6
Author: DW Commit Agent <commit-agent@dw-agents.com>
Date: Fri Feb 27 17:34:01 2026 +0000
chore(alshi-dash,kalshi-dash): update 6 files (.js) [+20/-15]
Files changed:
D kalshi-dash/dist/assets/index-CGoDMavW.js
D kalshi-dash/dist/assets/index-Ggn7I0OX.css
M kalshi-dash/dist/index.html
M kalshi-dash/src/pages/Dashboard.jsx
?? kalshi-dash/dist/assets/index-Cfq6Mp9p.js
?? kalshi-dash/dist/assets/index-wV2sMfbv.css
---
.../{index-CGoDMavW.js => index-Cfq6Mp9p.js} | 2 +-
kalshi-dash/dist/assets/index-Ggn7I0OX.css | 1 -
kalshi-dash/dist/assets/index-wV2sMfbv.css | 1 +
kalshi-dash/dist/index.html | 4 ++--
kalshi-dash/src/pages/Dashboard.jsx | 27 +++++++++++++---------
5 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/kalshi-dash/dist/assets/index-CGoDMavW.js b/kalshi-dash/dist/assets/index-Cfq6Mp9p.js
similarity index 87%
rename from kalshi-dash/dist/assets/index-CGoDMavW.js
rename to kalshi-dash/dist/assets/index-Cfq6Mp9p.js
index 71bd562..e9e41f3 100644
--- a/kalshi-dash/dist/assets/index-CGoDMavW.js
+++ b/kalshi-dash/dist/assets/index-Cfq6Mp9p.js
@@ -137,4 +137,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tX(e,t){if(e){if(typeof e=="string")return f1(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return f1(e,t)}}function f1(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function rX(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(d){u=!0,i=d}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function nX(e){if(Array.isArray(e))return e}function Kh(){return Kh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Kh.apply(this,arguments)}var iX=function(t,r){var n;return P.isValidElement(t)?n=P.cloneElement(t,r):Z(t)?n=t(r):n=P.createElement("line",Kh({},r,{className:"recharts-reference-line-line"})),n},aX=function(t,r,n,i,a,o,s,l,u){var d=a.x,f=a.y,p=a.width,v=a.height;if(n){var g=u.y,x=t.y.apply(g,{position:o});if(wr(u,"discard")&&!t.y.isInRange(x))return null;var b=[{x:d+p,y:x},{x:d,y:x}];return l==="left"?b.reverse():b}if(r){var y=u.x,h=t.x.apply(y,{position:o});if(wr(u,"discard")&&!t.x.isInRange(h))return null;var m=[{x:h,y:f+v},{x:h,y:f}];return s==="top"?m.reverse():m}if(i){var S=u.segment,w=S.map(function(j){return t.apply(j,{position:o})});return wr(u,"discard")&&kG(w,function(j){return!t.isInRange(j)})?null:w}return null};function oX(e){var t=e.x,r=e.y,n=e.segment,i=e.xAxisId,a=e.yAxisId,o=e.shape,s=e.className,l=e.alwaysShow,u=FY(),d=mN(i),f=vN(a),p=WY();if(!u||!p)return null;ur(l===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var v=ry({x:d.scale,y:f.scale}),g=Ve(t),x=Ve(r),b=n&&n.length===2,y=aX(v,g,x,b,p,e.position,d.orientation,f.orientation,e);if(!y)return null;var h=JY(y,2),m=h[0],S=m.x,w=m.y,j=h[1],_=j.x,O=j.y,k=wr(e,"hidden")?"url(#".concat(u,")"):void 0,A=u1(u1({clipPath:k},X(e,!0)),{},{x1:S,y1:w,x2:_,y2:O});return P.createElement(ie,{className:te("recharts-reference-line",s)},iX(o,A),qe.renderCallByParent(e,yY({x1:S,y1:w,x2:_,y2:O})))}var ly=function(e){function t(){return KY(this,t),YY(this,t,arguments)}return QY(t,e),GY(t,[{key:"render",value:function(){return P.createElement(oX,this.props)}}])}(P.Component);sy(ly,"displayName","ReferenceLine");sy(ly,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle"});function Vh(){return Vh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Vh.apply(this,arguments)}function Ea(e){"@babel/helpers - typeof";return Ea=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ea(e)}function d1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function p1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?d1(Object(r),!0).forEach(function(n){kf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function sX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function lX(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,bN(n.key),n)}}function cX(e,t,r){return t&&lX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function uX(e,t,r){return t=mu(t),fX(e,xN()?Reflect.construct(t,r||[],mu(e).constructor):t.apply(e,r))}function fX(e,t){if(t&&(Ea(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return dX(e)}function dX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function xN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(xN=function(){return!!e})()}function mu(e){return mu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},mu(e)}function pX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Gh(e,t)}function Gh(e,t){return Gh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Gh(e,t)}function kf(e,t,r){return t=bN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function bN(e){var t=hX(e,"string");return Ea(t)=="symbol"?t:t+""}function hX(e,t){if(Ea(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ea(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var mX=function(t){var r=t.x,n=t.y,i=t.xAxis,a=t.yAxis,o=ry({x:i.scale,y:a.scale}),s=o.apply({x:r,y:n},{bandAware:!0});return wr(t,"discard")&&!o.isInRange(s)?null:s},Ef=function(e){function t(){return sX(this,t),uX(this,t,arguments)}return pX(t,e),cX(t,[{key:"render",value:function(){var n=this.props,i=n.x,a=n.y,o=n.r,s=n.alwaysShow,l=n.clipPathId,u=Ve(i),d=Ve(a);if(ur(s===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.'),!u||!d)return null;var f=mX(this.props);if(!f)return null;var p=f.x,v=f.y,g=this.props,x=g.shape,b=g.className,y=wr(this.props,"hidden")?"url(#".concat(l,")"):void 0,h=p1(p1({clipPath:y},X(this.props,!0)),{},{cx:p,cy:v});return P.createElement(ie,{className:te("recharts-reference-dot",b)},t.renderDot(x,h),qe.renderCallByParent(this.props,{x:p-o,y:v-o,width:2*o,height:2*o}))}}])}(P.Component);kf(Ef,"displayName","ReferenceDot");kf(Ef,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#fff",stroke:"#ccc",fillOpacity:1,strokeWidth:1});kf(Ef,"renderDot",function(e,t){var r;return P.isValidElement(e)?r=P.cloneElement(e,t):Z(e)?r=e(t):r=P.createElement(wf,Vh({},t,{cx:t.cx,cy:t.cy,className:"recharts-reference-dot-dot"})),r});function Yh(){return Yh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Yh.apply(this,arguments)}function $a(e){"@babel/helpers - typeof";return $a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$a(e)}function h1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function m1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?h1(Object(r),!0).forEach(function(n){$f(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function vX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yX(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,jN(n.key),n)}}function gX(e,t,r){return t&&yX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function xX(e,t,r){return t=vu(t),bX(e,wN()?Reflect.construct(t,r||[],vu(e).constructor):t.apply(e,r))}function bX(e,t){if(t&&($a(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return wX(e)}function wX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(wN=function(){return!!e})()}function vu(e){return vu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},vu(e)}function jX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Xh(e,t)}function Xh(e,t){return Xh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Xh(e,t)}function $f(e,t,r){return t=jN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function jN(e){var t=SX(e,"string");return $a(t)=="symbol"?t:t+""}function SX(e,t){if($a(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if($a(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var _X=function(t,r,n,i,a){var o=a.x1,s=a.x2,l=a.y1,u=a.y2,d=a.xAxis,f=a.yAxis;if(!d||!f)return null;var p=ry({x:d.scale,y:f.scale}),v={x:t?p.x.apply(o,{position:"start"}):p.x.rangeMin,y:n?p.y.apply(l,{position:"start"}):p.y.rangeMin},g={x:r?p.x.apply(s,{position:"end"}):p.x.rangeMax,y:i?p.y.apply(u,{position:"end"}):p.y.rangeMax};return wr(a,"discard")&&(!p.isInRange(v)||!p.isInRange(g))?null:lN(v,g)},Tf=function(e){function t(){return vX(this,t),xX(this,t,arguments)}return jX(t,e),gX(t,[{key:"render",value:function(){var n=this.props,i=n.x1,a=n.x2,o=n.y1,s=n.y2,l=n.className,u=n.alwaysShow,d=n.clipPathId;ur(u===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var f=Ve(i),p=Ve(a),v=Ve(o),g=Ve(s),x=this.props.shape;if(!f&&!p&&!v&&!g&&!x)return null;var b=_X(f,p,v,g,this.props);if(!b&&!x)return null;var y=wr(this.props,"hidden")?"url(#".concat(d,")"):void 0;return P.createElement(ie,{className:te("recharts-reference-area",l)},t.renderRect(x,m1(m1({clipPath:y},X(this.props,!0)),b)),qe.renderCallByParent(this.props,b))}}])}(P.Component);$f(Tf,"displayName","ReferenceArea");$f(Tf,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#ccc",fillOpacity:.5,stroke:"none",strokeWidth:1});$f(Tf,"renderRect",function(e,t){var r;return P.isValidElement(e)?r=P.cloneElement(e,t):Z(e)?r=e(t):r=P.createElement(ty,Yh({},t,{className:"recharts-reference-area-rect"})),r});function SN(e,t,r){if(t<1)return[];if(t===1&&r===void 0)return e;for(var n=[],i=0;i<e.length;i+=t)n.push(e[i]);return n}function OX(e,t,r){var n={width:e.width+t.width,height:e.height+t.height};return xY(n,r)}function NX(e,t,r){var n=r==="width",i=e.x,a=e.y,o=e.width,s=e.height;return t===1?{start:n?i:a,end:n?i+o:a+s}:{start:n?i+o:a+s,end:n?i:a}}function yu(e,t,r,n,i){if(e*t<e*n||e*t>e*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function PX(e,t){return SN(e,t+1)}function AX(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,s=t.end,l=0,u=1,d=o,f=function(){var g=n==null?void 0:n[l];if(g===void 0)return{v:SN(n,u)};var x=l,b,y=function(){return b===void 0&&(b=r(g,x)),b},h=g.coordinate,m=l===0||yu(e,h,y,d,s);m||(l=0,d=o,u+=1),m&&(d=h+e*(y()/2+i),l+=u)},p;u<=a.length;)if(p=f(),p)return p.v;return[]}function Rs(e){"@babel/helpers - typeof";return Rs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Rs(e)}function v1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function at(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?v1(Object(r),!0).forEach(function(n){kX(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function kX(e,t,r){return t=EX(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function EX(e){var t=$X(e,"string");return Rs(t)=="symbol"?t:t+""}function $X(e,t){if(Rs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Rs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function TX(e,t,r,n,i){for(var a=(n||[]).slice(),o=a.length,s=t.start,l=t.end,u=function(p){var v=a[p],g,x=function(){return g===void 0&&(g=r(v,p)),g};if(p===o-1){var b=e*(v.coordinate+e*x()/2-l);a[p]=v=at(at({},v),{},{tickCoord:b>0?v.coordinate-b*e:v.coordinate})}else a[p]=v=at(at({},v),{},{tickCoord:v.coordinate});var y=yu(e,v.tickCoord,x,s,l);y&&(l=v.tickCoord-e*(x()/2+i),a[p]=at(at({},v),{},{isShow:!0}))},d=o-1;d>=0;d--)u(d);return a}function CX(e,t,r,n,i,a){var o=(n||[]).slice(),s=o.length,l=t.start,u=t.end;if(a){var d=n[s-1],f=r(d,s-1),p=e*(d.coordinate+e*f/2-u);o[s-1]=d=at(at({},d),{},{tickCoord:p>0?d.coordinate-p*e:d.coordinate});var v=yu(e,d.tickCoord,function(){return f},l,u);v&&(u=d.tickCoord-e*(f/2+i),o[s-1]=at(at({},d),{},{isShow:!0}))}for(var g=a?s-1:s,x=function(h){var m=o[h],S,w=function(){return S===void 0&&(S=r(m,h)),S};if(h===0){var j=e*(m.coordinate-e*w()/2-l);o[h]=m=at(at({},m),{},{tickCoord:j<0?m.coordinate-j*e:m.coordinate})}else o[h]=m=at(at({},m),{},{tickCoord:m.coordinate});var _=yu(e,m.tickCoord,w,l,u);_&&(l=m.tickCoord+e*(w()/2+i),o[h]=at(at({},m),{},{isShow:!0}))},b=0;b<g;b++)x(b);return o}function cy(e,t,r){var n=e.tick,i=e.ticks,a=e.viewBox,o=e.minTickGap,s=e.orientation,l=e.interval,u=e.tickFormatter,d=e.unit,f=e.angle;if(!i||!i.length||!n)return[];if(U(l)||wi.isSsr)return PX(i,typeof l=="number"&&U(l)?l:0);var p=[],v=s==="top"||s==="bottom"?"width":"height",g=d&&v==="width"?Io(d,{fontSize:t,letterSpacing:r}):{width:0,height:0},x=function(m,S){var w=Z(u)?u(m.value,S):m.value;return v==="width"?OX(Io(w,{fontSize:t,letterSpacing:r}),g,f):Io(w,{fontSize:t,letterSpacing:r})[v]},b=i.length>=2?ut(i[1].coordinate-i[0].coordinate):1,y=NX(a,b,v);return l==="equidistantPreserveStart"?AX(b,y,x,i,o):(l==="preserveStart"||l==="preserveStartEnd"?p=CX(b,y,x,i,o,l==="preserveStartEnd"):p=TX(b,y,x,i,o),p.filter(function(h){return h.isShow}))}var MX=["viewBox"],IX=["viewBox"],LX=["ticks"];function Ta(e){"@babel/helpers - typeof";return Ta=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ta(e)}function Ki(){return Ki=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ki.apply(this,arguments)}function y1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ze(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?y1(Object(r),!0).forEach(function(n){uy(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Md(e,t){if(e==null)return{};var r=DX(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function DX(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function RX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ON(n.key),n)}}function BX(e,t,r){return t&&g1(e.prototype,t),r&&g1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function FX(e,t,r){return t=gu(t),zX(e,_N()?Reflect.construct(t,r||[],gu(e).constructor):t.apply(e,r))}function zX(e,t){if(t&&(Ta(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return UX(e)}function UX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _N(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(_N=function(){return!!e})()}function gu(e){return gu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},gu(e)}function WX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&qh(e,t)}function qh(e,t){return qh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},qh(e,t)}function uy(e,t,r){return t=ON(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ON(e){var t=HX(e,"string");return Ta(t)=="symbol"?t:t+""}function HX(e,t){if(Ta(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ta(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var to=function(e){function t(r){var n;return RX(this,t),n=FX(this,t,[r]),n.state={fontSize:"",letterSpacing:""},n}return WX(t,e),BX(t,[{key:"shouldComponentUpdate",value:function(n,i){var a=n.viewBox,o=Md(n,MX),s=this.props,l=s.viewBox,u=Md(s,IX);return!Ji(a,l)||!Ji(o,u)||!Ji(i,this.state)}},{key:"componentDidMount",value:function(){var n=this.layerReference;if(n){var i=n.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];i&&this.setState({fontSize:window.getComputedStyle(i).fontSize,letterSpacing:window.getComputedStyle(i).letterSpacing})}}},{key:"getTickLineCoord",value:function(n){var i=this.props,a=i.x,o=i.y,s=i.width,l=i.height,u=i.orientation,d=i.tickSize,f=i.mirror,p=i.tickMargin,v,g,x,b,y,h,m=f?-1:1,S=n.tickSize||d,w=U(n.tickCoord)?n.tickCoord:n.coordinate;switch(u){case"top":v=g=n.coordinate,b=o+ +!f*l,x=b-m*S,h=x-m*p,y=w;break;case"left":x=b=n.coordinate,g=a+ +!f*s,v=g-m*S,y=v-m*p,h=w;break;case"right":x=b=n.coordinate,g=a+ +f*s,v=g+m*S,y=v+m*p,h=w;break;default:v=g=n.coordinate,b=o+ +f*l,x=b+m*S,h=x+m*p,y=w;break}return{line:{x1:v,y1:x,x2:g,y2:b},tick:{x:y,y:h}}}},{key:"getTickTextAnchor",value:function(){var n=this.props,i=n.orientation,a=n.mirror,o;switch(i){case"left":o=a?"start":"end";break;case"right":o=a?"end":"start";break;default:o="middle";break}return o}},{key:"getTickVerticalAnchor",value:function(){var n=this.props,i=n.orientation,a=n.mirror,o="end";switch(i){case"left":case"right":o="middle";break;case"top":o=a?"start":"end";break;default:o=a?"end":"start";break}return o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,s=n.height,l=n.orientation,u=n.mirror,d=n.axisLine,f=ze(ze(ze({},X(this.props,!1)),X(d,!1)),{},{fill:"none"});if(l==="top"||l==="bottom"){var p=+(l==="top"&&!u||l==="bottom"&&u);f=ze(ze({},f),{},{x1:i,y1:a+p*s,x2:i+o,y2:a+p*s})}else{var v=+(l==="left"&&!u||l==="right"&&u);f=ze(ze({},f),{},{x1:i+v*o,y1:a,x2:i+v*o,y2:a+s})}return P.createElement("line",Ki({},f,{className:te("recharts-cartesian-axis-line",It(d,"className"))}))}},{key:"renderTicks",value:function(n,i,a){var o=this,s=this.props,l=s.tickLine,u=s.stroke,d=s.tick,f=s.tickFormatter,p=s.unit,v=cy(ze(ze({},this.props),{},{ticks:n}),i,a),g=this.getTickTextAnchor(),x=this.getTickVerticalAnchor(),b=X(this.props,!1),y=X(d,!1),h=ze(ze({},b),{},{fill:"none"},X(l,!1)),m=v.map(function(S,w){var j=o.getTickLineCoord(S),_=j.line,O=j.tick,k=ze(ze(ze(ze({textAnchor:g,verticalAnchor:x},b),{},{stroke:"none",fill:u},y),O),{},{index:w,payload:S,visibleTicksCount:v.length,tickFormatter:f});return P.createElement(ie,Ki({className:"recharts-cartesian-axis-tick",key:"tick-".concat(S.value,"-").concat(S.coordinate,"-").concat(S.tickCoord)},fi(o.props,S,w)),l&&P.createElement("line",Ki({},h,_,{className:te("recharts-cartesian-axis-tick-line",It(l,"className"))})),d&&t.renderTickItem(d,k,"".concat(Z(f)?f(S.value,w):S.value).concat(p||"")))});return P.createElement("g",{className:"recharts-cartesian-axis-ticks"},m)}},{key:"render",value:function(){var n=this,i=this.props,a=i.axisLine,o=i.width,s=i.height,l=i.ticksGenerator,u=i.className,d=i.hide;if(d)return null;var f=this.props,p=f.ticks,v=Md(f,LX),g=p;return Z(l)&&(g=p&&p.length>0?l(this.props):l(v)),o<=0||s<=0||!g||!g.length?null:P.createElement(ie,{className:te("recharts-cartesian-axis",u),ref:function(b){n.layerReference=b}},a&&this.renderAxisLine(),this.renderTicks(g,this.state.fontSize,this.state.letterSpacing),qe.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var o,s=te(i.className,"recharts-cartesian-axis-tick-value");return P.isValidElement(n)?o=P.cloneElement(n,ze(ze({},i),{},{className:s})):Z(n)?o=n(ze(ze({},i),{},{className:s})):o=P.createElement(pi,Ki({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])}(N.Component);uy(to,"displayName","CartesianAxis");uy(to,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var KX=["x1","y1","x2","y2","key"],VX=["offset"];function vi(e){"@babel/helpers - typeof";return vi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vi(e)}function x1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function st(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?x1(Object(r),!0).forEach(function(n){GX(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function GX(e,t,r){return t=YX(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function YX(e){var t=XX(e,"string");return vi(t)=="symbol"?t:t+""}function XX(e,t){if(vi(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(vi(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Jn(){return Jn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Jn.apply(this,arguments)}function b1(e,t){if(e==null)return{};var r=qX(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function qX(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var QX=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,i=t.x,a=t.y,o=t.width,s=t.height,l=t.ry;return P.createElement("rect",{x:i,y:a,ry:l,width:o,height:s,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function NN(e,t){var r;if(P.isValidElement(e))r=P.cloneElement(e,t);else if(Z(e))r=e(t);else{var n=t.x1,i=t.y1,a=t.x2,o=t.y2,s=t.key,l=b1(t,KX),u=X(l,!1);u.offset;var d=b1(u,VX);r=P.createElement("line",Jn({},d,{x1:n,y1:i,x2:a,y2:o,fill:"none",key:s}))}return r}function ZX(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=st(st({},e),{},{x1:t,y1:s,x2:t+r,y2:s,key:"line-".concat(l),index:l});return NN(i,u)});return P.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function JX(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=st(st({},e),{},{x1:s,y1:t,x2:s,y2:t+r,key:"line-".concat(l),index:l});return NN(i,u)});return P.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function eq(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length)return null;var d=s.map(function(p){return Math.round(p+i-i)}).sort(function(p,v){return p-v});i!==d[0]&&d.unshift(0);var f=d.map(function(p,v){var g=!d[v+1],x=g?i+o-p:d[v+1]-p;if(x<=0)return null;var b=v%t.length;return P.createElement("rect",{key:"react-".concat(v),y:p,x:n,height:x,width:a,stroke:"none",fill:t[b],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return P.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function tq(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var d=u.map(function(p){return Math.round(p+a-a)}).sort(function(p,v){return p-v});a!==d[0]&&d.unshift(0);var f=d.map(function(p,v){var g=!d[v+1],x=g?a+s-p:d[v+1]-p;if(x<=0)return null;var b=v%n.length;return P.createElement("rect",{key:"react-".concat(v),x:p,y:o,width:x,height:l,stroke:"none",fill:n[b],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return P.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var rq=function(t,r){var n=t.xAxis,i=t.width,a=t.height,o=t.offset;return jO(cy(st(st(st({},to.defaultProps),n),{},{ticks:Ir(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,r)},nq=function(t,r){var n=t.yAxis,i=t.width,a=t.height,o=t.offset;return jO(cy(st(st(st({},to.defaultProps),n),{},{ticks:Ir(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,r)},ki={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function fy(e){var t,r,n,i,a,o,s=ay(),l=oy(),u=HY(),d=st(st({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:ki.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:ki.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:ki.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:ki.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:ki.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:ki.verticalFill,x:U(e.x)?e.x:u.left,y:U(e.y)?e.y:u.top,width:U(e.width)?e.width:u.width,height:U(e.height)?e.height:u.height}),f=d.x,p=d.y,v=d.width,g=d.height,x=d.syncWithTicks,b=d.horizontalValues,y=d.verticalValues,h=zY(),m=UY();if(!U(v)||v<=0||!U(g)||g<=0||!U(f)||f!==+f||!U(p)||p!==+p)return null;var S=d.verticalCoordinatesGenerator||rq,w=d.horizontalCoordinatesGenerator||nq,j=d.horizontalPoints,_=d.verticalPoints;if((!j||!j.length)&&Z(w)){var O=b&&b.length,k=w({yAxis:m?st(st({},m),{},{ticks:O?b:m.ticks}):void 0,width:s,height:l,offset:u},O?!0:x);ur(Array.isArray(k),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(vi(k),"]")),Array.isArray(k)&&(j=k)}if((!_||!_.length)&&Z(S)){var A=y&&y.length,$=S({xAxis:h?st(st({},h),{},{ticks:A?y:h.ticks}):void 0,width:s,height:l,offset:u},A?!0:x);ur(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(vi($),"]")),Array.isArray($)&&(_=$)}return P.createElement("g",{className:"recharts-cartesian-grid"},P.createElement(QX,{fill:d.fill,fillOpacity:d.fillOpacity,x:d.x,y:d.y,width:d.width,height:d.height,ry:d.ry}),P.createElement(ZX,Jn({},d,{offset:u,horizontalPoints:j,xAxis:h,yAxis:m})),P.createElement(JX,Jn({},d,{offset:u,verticalPoints:_,xAxis:h,yAxis:m})),P.createElement(eq,Jn({},d,{horizontalPoints:j})),P.createElement(tq,Jn({},d,{verticalPoints:_})))}fy.displayName="CartesianGrid";var iq=["layout","type","stroke","connectNulls","isRange","ref"],aq=["key"],PN;function Ca(e){"@babel/helpers - typeof";return Ca=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ca(e)}function AN(e,t){if(e==null)return{};var r=oq(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function oq(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ei(){return ei=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ei.apply(this,arguments)}function w1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function en(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?w1(Object(r),!0).forEach(function(n){yr(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):w1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function sq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,EN(n.key),n)}}function lq(e,t,r){return t&&j1(e.prototype,t),r&&j1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function cq(e,t,r){return t=xu(t),uq(e,kN()?Reflect.construct(t,r||[],xu(e).constructor):t.apply(e,r))}function uq(e,t){if(t&&(Ca(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return fq(e)}function fq(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(kN=function(){return!!e})()}function xu(e){return xu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},xu(e)}function dq(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Qh(e,t)}function Qh(e,t){return Qh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Qh(e,t)}function yr(e,t,r){return t=EN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function EN(e){var t=pq(e,"string");return Ca(t)=="symbol"?t:t+""}function pq(e,t){if(Ca(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ca(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Qr=function(e){function t(){var r;sq(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=cq(this,t,[].concat(i)),yr(r,"state",{isAnimationFinished:!0}),yr(r,"id",Ya("recharts-area-")),yr(r,"handleAnimationEnd",function(){var o=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),Z(o)&&o()}),yr(r,"handleAnimationStart",function(){var o=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),Z(o)&&o()}),r}return dq(t,e),lq(t,[{key:"renderDots",value:function(n,i,a){var o=this.props.isAnimationActive,s=this.state.isAnimationFinished;if(o&&!s)return null;var l=this.props,u=l.dot,d=l.points,f=l.dataKey,p=X(this.props,!1),v=X(u,!0),g=d.map(function(b,y){var h=en(en(en({key:"dot-".concat(y),r:3},p),v),{},{index:y,cx:b.x,cy:b.y,dataKey:f,value:b.value,payload:b.payload,points:d});return t.renderDotItem(u,h)}),x={clipPath:n?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return P.createElement(ie,ei({className:"recharts-area-dots"},x),g)}},{key:"renderHorizontalRect",value:function(n){var i=this.props,a=i.baseLine,o=i.points,s=i.strokeWidth,l=o[0].x,u=o[o.length-1].x,d=n*Math.abs(l-u),f=fn(o.map(function(p){return p.y||0}));return U(a)&&typeof a=="number"?f=Math.max(a,f):a&&Array.isArray(a)&&a.length&&(f=Math.max(fn(a.map(function(p){return p.y||0})),f)),U(f)?P.createElement("rect",{x:l<u?l:l-d,y:0,width:d,height:Math.floor(f+(s?parseInt("".concat(s),10):1))}):null}},{key:"renderVerticalRect",value:function(n){var i=this.props,a=i.baseLine,o=i.points,s=i.strokeWidth,l=o[0].y,u=o[o.length-1].y,d=n*Math.abs(l-u),f=fn(o.map(function(p){return p.x||0}));return U(a)&&typeof a=="number"?f=Math.max(a,f):a&&Array.isArray(a)&&a.length&&(f=Math.max(fn(a.map(function(p){return p.x||0})),f)),U(f)?P.createElement("rect",{x:0,y:l<u?l:l-d,width:f+(s?parseInt("".concat(s),10):1),height:Math.floor(d)}):null}},{key:"renderClipRect",value:function(n){var i=this.props.layout;return i==="vertical"?this.renderVerticalRect(n):this.renderHorizontalRect(n)}},{key:"renderAreaStatically",value:function(n,i,a,o){var s=this.props,l=s.layout,u=s.type,d=s.stroke,f=s.connectNulls,p=s.isRange;s.ref;var v=AN(s,iq);return P.createElement(ie,{clipPath:a?"url(#clipPath-".concat(o,")"):null},P.createElement(na,ei({},X(v,!0),{points:n,connectNulls:f,type:u,baseLine:i,layout:l,stroke:"none",className:"recharts-area-area"})),d!=="none"&&P.createElement(na,ei({},X(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:f,fill:"none",points:n})),d!=="none"&&p&&P.createElement(na,ei({},X(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:f,fill:"none",points:i})))}},{key:"renderAreaWithAnimation",value:function(n,i){var a=this,o=this.props,s=o.points,l=o.baseLine,u=o.isAnimationActive,d=o.animationBegin,f=o.animationDuration,p=o.animationEasing,v=o.animationId,g=this.state,x=g.prevPoints,b=g.prevBaseLine;return P.createElement(Sr,{begin:d,duration:f,isActive:u,easing:p,from:{t:0},to:{t:1},key:"area-".concat(v),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(y){var h=y.t;if(x){var m=x.length/s.length,S=s.map(function(O,k){var A=Math.floor(k*m);if(x[A]){var $=x[A],E=jt($.x,O.x),I=jt($.y,O.y);return en(en({},O),{},{x:E(h),y:I(h)})}return O}),w;if(U(l)&&typeof l=="number"){var j=jt(b,l);w=j(h)}else if(J(l)||Ga(l)){var _=jt(b,0);w=_(h)}else w=l.map(function(O,k){var A=Math.floor(k*m);if(b[A]){var $=b[A],E=jt($.x,O.x),I=jt($.y,O.y);return en(en({},O),{},{x:E(h),y:I(h)})}return O});return a.renderAreaStatically(S,w,n,i)}return P.createElement(ie,null,P.createElement("defs",null,P.createElement("clipPath",{id:"animationClipPath-".concat(i)},a.renderClipRect(h))),P.createElement(ie,{clipPath:"url(#animationClipPath-".concat(i,")")},a.renderAreaStatically(s,l,n,i)))})}},{key:"renderArea",value:function(n,i){var a=this.props,o=a.points,s=a.baseLine,l=a.isAnimationActive,u=this.state,d=u.prevPoints,f=u.prevBaseLine,p=u.totalLength;return l&&o&&o.length&&(!d&&p>0||!ba(d,o)||!ba(f,s))?this.renderAreaWithAnimation(n,i):this.renderAreaStatically(o,s,n,i)}},{key:"render",value:function(){var n,i=this.props,a=i.hide,o=i.dot,s=i.points,l=i.className,u=i.top,d=i.left,f=i.xAxis,p=i.yAxis,v=i.width,g=i.height,x=i.isAnimationActive,b=i.id;if(a||!s||!s.length)return null;var y=this.state.isAnimationFinished,h=s.length===1,m=te("recharts-area",l),S=f&&f.allowDataOverflow,w=p&&p.allowDataOverflow,j=S||w,_=J(b)?this.id:b,O=(n=X(o,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},k=O.r,A=k===void 0?3:k,$=O.strokeWidth,E=$===void 0?2:$,I=LC(o)?o:{},L=I.clipDot,M=L===void 0?!0:L,R=A*2+E;return P.createElement(ie,{className:m},S||w?P.createElement("defs",null,P.createElement("clipPath",{id:"clipPath-".concat(_)},P.createElement("rect",{x:S?d:d-v/2,y:w?u:u-g/2,width:S?v:v*2,height:w?g:g*2})),!M&&P.createElement("clipPath",{id:"clipPath-dots-".concat(_)},P.createElement("rect",{x:d-R/2,y:u-R/2,width:v+R,height:g+R}))):null,h?null:this.renderArea(j,_),(o||h)&&this.renderDots(j,M,_),(!x||y)&&Br.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,curBaseLine:n.baseLine,prevPoints:i.curPoints,prevBaseLine:i.curBaseLine}:n.points!==i.curPoints||n.baseLine!==i.curBaseLine?{curPoints:n.points,curBaseLine:n.baseLine}:null}}])}(N.PureComponent);PN=Qr;yr(Qr,"displayName","Area");yr(Qr,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!wi.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});yr(Qr,"getBaseValue",function(e,t,r,n){var i=e.layout,a=e.baseValue,o=t.props.baseValue,s=o??a;if(U(s)&&typeof s=="number")return s;var l=i==="horizontal"?n:r,u=l.scale.domain();if(l.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return s==="dataMin"?f:s==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return s==="dataMin"?u[0]:s==="dataMax"?u[1]:u[0]});yr(Qr,"getComposedData",function(e){var t=e.props,r=e.item,n=e.xAxis,i=e.yAxis,a=e.xAxisTicks,o=e.yAxisTicks,s=e.bandSize,l=e.dataKey,u=e.stackedData,d=e.dataStartIndex,f=e.displayedData,p=e.offset,v=t.layout,g=u&&u.length,x=PN.getBaseValue(t,r,n,i),b=v==="horizontal",y=!1,h=f.map(function(S,w){var j;g?j=u[d+w]:(j=He(S,l),Array.isArray(j)?y=!0:j=[x,j]);var _=j[1]==null||g&&He(S,l)==null;return b?{x:qx({axis:n,ticks:a,bandSize:s,entry:S,index:w}),y:_?null:i.scale(j[1]),value:j,payload:S}:{x:_?null:n.scale(j[1]),y:qx({axis:i,ticks:o,bandSize:s,entry:S,index:w}),value:j,payload:S}}),m;return g||y?m=h.map(function(S){var w=Array.isArray(S.value)?S.value[0]:null;return b?{x:S.x,y:w!=null&&S.y!=null?i.scale(w):null}:{x:w!=null?n.scale(w):null,y:S.y}}):m=b?i.scale(x):n.scale(x),en({points:h,baseLine:m,layout:v,isRange:y},p)});yr(Qr,"renderDotItem",function(e,t){var r;if(P.isValidElement(e))r=P.cloneElement(e,t);else if(Z(e))r=e(t);else{var n=te("recharts-area-dot",typeof e!="boolean"?e.className:""),i=t.key,a=AN(t,aq);r=P.createElement(wf,ei({},a,{key:i,className:n}))}return r});function Ma(e){"@babel/helpers - typeof";return Ma=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ma(e)}function hq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mq(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,CN(n.key),n)}}function vq(e,t,r){return t&&mq(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function yq(e,t,r){return t=bu(t),gq(e,$N()?Reflect.construct(t,r||[],bu(e).constructor):t.apply(e,r))}function gq(e,t){if(t&&(Ma(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return xq(e)}function xq(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $N(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return($N=function(){return!!e})()}function bu(e){return bu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},bu(e)}function bq(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Zh(e,t)}function Zh(e,t){return Zh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Zh(e,t)}function TN(e,t,r){return t=CN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function CN(e){var t=wq(e,"string");return Ma(t)=="symbol"?t:t+""}function wq(e,t){if(Ma(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ma(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Jh(){return Jh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Jh.apply(this,arguments)}function jq(e){var t=e.xAxisId,r=ay(),n=oy(),i=mN(t);return i==null?null:N.createElement(to,Jh({},i,{className:te("recharts-".concat(i.axisType," ").concat(i.axisType),i.className),viewBox:{x:0,y:0,width:r,height:n},ticksGenerator:function(o){return Ir(o,!0)}}))}var Mn=function(e){function t(){return hq(this,t),yq(this,t,arguments)}return bq(t,e),vq(t,[{key:"render",value:function(){return N.createElement(jq,this.props)}}])}(N.Component);TN(Mn,"displayName","XAxis");TN(Mn,"defaultProps",{allowDecimals:!0,hide:!1,orientation:"bottom",width:0,height:30,mirror:!1,xAxisId:0,tickCount:5,type:"category",padding:{left:0,right:0},allowDataOverflow:!1,scale:"auto",reversed:!1,allowDuplicatedCategory:!0});function Ia(e){"@babel/helpers - typeof";return Ia=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ia(e)}function Sq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _q(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,LN(n.key),n)}}function Oq(e,t,r){return t&&_q(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Nq(e,t,r){return t=wu(t),Pq(e,MN()?Reflect.construct(t,r||[],wu(e).constructor):t.apply(e,r))}function Pq(e,t){if(t&&(Ia(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Aq(e)}function Aq(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function MN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(MN=function(){return!!e})()}function wu(e){return wu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},wu(e)}function kq(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&em(e,t)}function em(e,t){return em=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},em(e,t)}function IN(e,t,r){return t=LN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function LN(e){var t=Eq(e,"string");return Ia(t)=="symbol"?t:t+""}function Eq(e,t){if(Ia(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ia(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function tm(){return tm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},tm.apply(this,arguments)}var $q=function(t){var r=t.yAxisId,n=ay(),i=oy(),a=vN(r);return a==null?null:N.createElement(to,tm({},a,{className:te("recharts-".concat(a.axisType," ").concat(a.axisType),a.className),viewBox:{x:0,y:0,width:n,height:i},ticksGenerator:function(s){return Ir(s,!0)}}))},In=function(e){function t(){return Sq(this,t),Nq(this,t,arguments)}return kq(t,e),Oq(t,[{key:"render",value:function(){return N.createElement($q,this.props)}}])}(N.Component);IN(In,"displayName","YAxis");IN(In,"defaultProps",{allowDuplicatedCategory:!0,allowDecimals:!0,hide:!1,orientation:"left",width:60,height:0,mirror:!1,yAxisId:0,tickCount:5,type:"number",padding:{top:0,bottom:0},allowDataOverflow:!1,scale:"auto",reversed:!1});function S1(e){return Iq(e)||Mq(e)||Cq(e)||Tq()}function Tq(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cq(e,t){if(e){if(typeof e=="string")return rm(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return rm(e,t)}}function Mq(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Iq(e){if(Array.isArray(e))return rm(e)}function rm(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var nm=function(t,r,n,i,a){var o=Xt(t,ly),s=Xt(t,Ef),l=[].concat(S1(o),S1(s)),u=Xt(t,Tf),d="".concat(i,"Id"),f=i[0],p=r;if(l.length&&(p=l.reduce(function(x,b){if(b.props[d]===n&&wr(b.props,"extendDomain")&&U(b.props[f])){var y=b.props[f];return[Math.min(x[0],y),Math.max(x[1],y)]}return x},p)),u.length){var v="".concat(f,"1"),g="".concat(f,"2");p=u.reduce(function(x,b){if(b.props[d]===n&&wr(b.props,"extendDomain")&&U(b.props[v])&&U(b.props[g])){var y=b.props[v],h=b.props[g];return[Math.min(x[0],y,h),Math.max(x[1],y,h)]}return x},p)}return a&&a.length&&(p=a.reduce(function(x,b){return U(b)?[Math.min(x[0],b),Math.max(x[1],b)]:x},p)),p},DN={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function i(l,u,d){this.fn=l,this.context=u,this.once=d||!1}function a(l,u,d,f,p){if(typeof d!="function")throw new TypeError("The listener must be a function");var v=new i(d,f||l,p),g=r?r+u:u;return l._events[g]?l._events[g].fn?l._events[g]=[l._events[g],v]:l._events[g].push(v):(l._events[g]=v,l._eventsCount++),l}function o(l,u){--l._eventsCount===0?l._events=new n:delete l._events[u]}function s(){this._events=new n,this._eventsCount=0}s.prototype.eventNames=function(){var u=[],d,f;if(this._eventsCount===0)return u;for(f in d=this._events)t.call(d,f)&&u.push(r?f.slice(1):f);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(d)):u},s.prototype.listeners=function(u){var d=r?r+u:u,f=this._events[d];if(!f)return[];if(f.fn)return[f.fn];for(var p=0,v=f.length,g=new Array(v);p<v;p++)g[p]=f[p].fn;return g},s.prototype.listenerCount=function(u){var d=r?r+u:u,f=this._events[d];return f?f.fn?1:f.length:0},s.prototype.emit=function(u,d,f,p,v,g){var x=r?r+u:u;if(!this._events[x])return!1;var b=this._events[x],y=arguments.length,h,m;if(b.fn){switch(b.once&&this.removeListener(u,b.fn,void 0,!0),y){case 1:return b.fn.call(b.context),!0;case 2:return b.fn.call(b.context,d),!0;case 3:return b.fn.call(b.context,d,f),!0;case 4:return b.fn.call(b.context,d,f,p),!0;case 5:return b.fn.call(b.context,d,f,p,v),!0;case 6:return b.fn.call(b.context,d,f,p,v,g),!0}for(m=1,h=new Array(y-1);m<y;m++)h[m-1]=arguments[m];b.fn.apply(b.context,h)}else{var S=b.length,w;for(m=0;m<S;m++)switch(b[m].once&&this.removeListener(u,b[m].fn,void 0,!0),y){case 1:b[m].fn.call(b[m].context);break;case 2:b[m].fn.call(b[m].context,d);break;case 3:b[m].fn.call(b[m].context,d,f);break;case 4:b[m].fn.call(b[m].context,d,f,p);break;default:if(!h)for(w=1,h=new Array(y-1);w<y;w++)h[w-1]=arguments[w];b[m].fn.apply(b[m].context,h)}}return!0},s.prototype.on=function(u,d,f){return a(this,u,d,f,!1)},s.prototype.once=function(u,d,f){return a(this,u,d,f,!0)},s.prototype.removeListener=function(u,d,f,p){var v=r?r+u:u;if(!this._events[v])return this;if(!d)return o(this,v),this;var g=this._events[v];if(g.fn)g.fn===d&&(!p||g.once)&&(!f||g.context===f)&&o(this,v);else{for(var x=0,b=[],y=g.length;x<y;x++)(g[x].fn!==d||p&&!g[x].once||f&&g[x].context!==f)&&b.push(g[x]);b.length?this._events[v]=b.length===1?b[0]:b:o(this,v)}return this},s.prototype.removeAllListeners=function(u){var d;return u?(d=r?r+u:u,this._events[d]&&o(this,d)):(this._events=new n,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=r,s.EventEmitter=s,e.exports=s})(DN);var Lq=DN.exports;const Dq=fe(Lq);var Id=new Dq,Ld="recharts.syncMouseEvents";function Bs(e){"@babel/helpers - typeof";return Bs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bs(e)}function Rq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bq(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,RN(n.key),n)}}function Fq(e,t,r){return t&&Bq(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Dd(e,t,r){return t=RN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function RN(e){var t=zq(e,"string");return Bs(t)=="symbol"?t:t+""}function zq(e,t){if(Bs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Bs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Uq=function(){function e(){Rq(this,e),Dd(this,"activeIndex",0),Dd(this,"coordinateList",[]),Dd(this,"layout","horizontal")}return Fq(e,[{key:"setDetails",value:function(r){var n,i=r.coordinateList,a=i===void 0?null:i,o=r.container,s=o===void 0?null:o,l=r.layout,u=l===void 0?null:l,d=r.offset,f=d===void 0?null:d,p=r.mouseHandlerCallback,v=p===void 0?null:p;this.coordinateList=(n=a??this.coordinateList)!==null&&n!==void 0?n:[],this.container=s??this.container,this.layout=u??this.layout,this.offset=f??this.offset,this.mouseHandlerCallback=v??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(r){if(this.coordinateList.length!==0)switch(r.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"setIndex",value:function(r){this.activeIndex=r}},{key:"spoofMouse",value:function(){var r,n;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var i=this.container.getBoundingClientRect(),a=i.x,o=i.y,s=i.height,l=this.coordinateList[this.activeIndex].coordinate,u=((r=window)===null||r===void 0?void 0:r.scrollX)||0,d=((n=window)===null||n===void 0?void 0:n.scrollY)||0,f=a+l+u,p=o+this.offset.top+s/2+d;this.mouseHandlerCallback({pageX:f,pageY:p})}}}])}();function Wq(e,t,r){if(r==="number"&&t===!0&&Array.isArray(e)){var n=e==null?void 0:e[0],i=e==null?void 0:e[1];if(n&&i&&U(n)&&U(i))return!0}return!1}function Hq(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-i,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}function BN(e){var t=e.cx,r=e.cy,n=e.radius,i=e.startAngle,a=e.endAngle,o=xe(t,r,n,i),s=xe(t,r,n,a);return{points:[o,s],cx:t,cy:r,radius:n,startAngle:i,endAngle:a}}function Kq(e,t,r){var n,i,a,o;if(e==="horizontal")n=t.x,a=n,i=r.top,o=r.top+r.height;else if(e==="vertical")i=t.y,o=i,n=r.left,a=r.left+r.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var s=t.cx,l=t.cy,u=t.innerRadius,d=t.outerRadius,f=t.angle,p=xe(s,l,u,f),v=xe(s,l,d,f);n=p.x,i=p.y,a=v.x,o=v.y}else return BN(t);return[{x:n,y:i},{x:a,y:o}]}function Fs(e){"@babel/helpers - typeof";return Fs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fs(e)}function _1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Tl(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_1(Object(r),!0).forEach(function(n){Vq(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Vq(e,t,r){return t=Gq(t),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 Fs(t)=="symbol"?t:t+""}function Yq(e,t){if(Fs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Fs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Xq(e){var t,r,n=e.element,i=e.tooltipEventType,a=e.isActive,o=e.activeCoordinate,s=e.activePayload,l=e.offset,u=e.activeTooltipIndex,d=e.tooltipAxisBandSize,f=e.layout,p=e.chartName,v=(t=n.props.cursor)!==null&&t!==void 0?t:(r=n.type.defaultProps)===null||r===void 0?void 0:r.cursor;if(!n||!v||!a||!o||p!=="ScatterChart"&&i!=="axis")return null;var g,x=na;if(p==="ScatterChart")g=o,x=yK;else if(p==="BarChart")g=Hq(f,o,l,d),x=ty;else if(f==="radial"){var b=BN(o),y=b.cx,h=b.cy,m=b.radius,S=b.startAngle,w=b.endAngle;g={cx:y,cy:h,startAngle:S,endAngle:w,innerRadius:m,outerRadius:m},x=CO}else g={points:Kq(f,o,l)},x=na;var j=Tl(Tl(Tl(Tl({stroke:"#ccc",pointerEvents:"none"},l),g),X(v,!1)),{},{payload:s,payloadIndex:u,className:te("recharts-tooltip-cursor",v.className)});return N.isValidElement(v)?N.cloneElement(v,j):N.createElement(x,j)}var qq=["item"],Qq=["children","className","width","height","style","compact","title","desc"];function La(e){"@babel/helpers - typeof";return La=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},La(e)}function Vi(){return Vi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Vi.apply(this,arguments)}function O1(e,t){return eQ(e)||Jq(e,t)||zN(e,t)||Zq()}function Zq(){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 Jq(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(d){u=!0,i=d}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function eQ(e){if(Array.isArray(e))return e}function N1(e,t){if(e==null)return{};var r=tQ(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function tQ(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function rQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nQ(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,UN(n.key),n)}}function iQ(e,t,r){return t&&nQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function aQ(e,t,r){return t=ju(t),oQ(e,FN()?Reflect.construct(t,r||[],ju(e).constructor):t.apply(e,r))}function oQ(e,t){if(t&&(La(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return sQ(e)}function sQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function FN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(FN=function(){return!!e})()}function ju(e){return ju=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ju(e)}function lQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&im(e,t)}function im(e,t){return im=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},im(e,t)}function Da(e){return fQ(e)||uQ(e)||zN(e)||cQ()}function cQ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function zN(e,t){if(e){if(typeof e=="string")return am(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return am(e,t)}}function uQ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fQ(e){if(Array.isArray(e))return am(e)}function am(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function P1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function C(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?P1(Object(r),!0).forEach(function(n){Q(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Q(e,t,r){return t=UN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UN(e){var t=dQ(e,"string");return La(t)=="symbol"?t:t+""}function dQ(e,t){if(La(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(La(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var pQ={xAxis:["bottom","top"],yAxis:["left","right"]},hQ={width:"100%",height:"100%"},WN={x:0,y:0};function Cl(e){return e}var mQ=function(t,r){return r==="horizontal"?t.x:r==="vertical"?t.y:r==="centric"?t.angle:t.radius},vQ=function(t,r,n,i){var a=r.find(function(d){return d&&d.index===n});if(a){if(t==="horizontal")return{x:a.coordinate,y:i.y};if(t==="vertical")return{x:i.x,y:a.coordinate};if(t==="centric"){var o=a.coordinate,s=i.radius;return C(C(C({},i),xe(i.cx,i.cy,s,o)),{},{angle:o,radius:s})}var l=a.coordinate,u=i.angle;return C(C(C({},i),xe(i.cx,i.cy,l,u)),{},{angle:u,radius:l})}return WN},Cf=function(t,r){var n=r.graphicalItems,i=r.dataStartIndex,a=r.dataEndIndex,o=(n??[]).reduce(function(s,l){var u=l.props.data;return u&&u.length?[].concat(Da(s),Da(u)):s},[]);return o.length>0?o:t&&t.length&&U(i)&&U(a)?t.slice(i,a+1):[]};function HN(e){return e==="number"?[0,"auto"]:void 0}var om=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,s=Cf(r,t);return n<0||!a||!a.length||n>=s.length?null:a.reduce(function(l,u){var d,f=(d=u.props.data)!==null&&d!==void 0?d:r;f&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(f=f.slice(t.dataStartIndex,t.dataEndIndex+1));var p;if(o.dataKey&&!o.allowDuplicatedCategory){var v=f===void 0?s:f;p=wc(v,o.dataKey,i)}else p=f&&f[n]||s[n];return p?[].concat(Da(l),[PO(u,p)]):l},[])},A1=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=mQ(a,n),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,d=DU(o,s,u,l);if(d>=0&&u){var f=u[d]&&u[d].value,p=om(t,r,d,f),v=vQ(n,s,d,a);return{activeTooltipIndex:d,activeLabel:f,activePayload:p,activeCoordinate:v}}return null},yQ=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,d=t.layout,f=t.children,p=t.stackOffset,v=wO(d,a);return n.reduce(function(g,x){var b,y=x.type.defaultProps!==void 0?C(C({},x.type.defaultProps),x.props):x.props,h=y.type,m=y.dataKey,S=y.allowDataOverflow,w=y.allowDuplicatedCategory,j=y.scale,_=y.ticks,O=y.includeHidden,k=y[o];if(g[k])return g;var A=Cf(t.data,{graphicalItems:i.filter(function(H){var q,ae=o in H.props?H.props[o]:(q=H.type.defaultProps)===null||q===void 0?void 0:q[o];return ae===k}),dataStartIndex:l,dataEndIndex:u}),$=A.length,E,I,L;Wq(y.domain,S,h)&&(E=wh(y.domain,null,S),v&&(h==="number"||j!=="auto")&&(L=Do(A,m,"category")));var M=HN(h);if(!E||E.length===0){var R,F=(R=y.domain)!==null&&R!==void 0?R:M;if(m){if(E=Do(A,m,h),h==="category"&&v){var T=NC(E);w&&T?(I=E,E=cu(0,$)):w||(E=eb(F,E,x).reduce(function(H,q){return H.indexOf(q)>=0?H:[].concat(Da(H),[q])},[]))}else if(h==="category")w?E=E.filter(function(H){return H!==""&&!J(H)}):E=eb(F,E,x).reduce(function(H,q){return H.indexOf(q)>=0||q===""||J(q)?H:[].concat(Da(H),[q])},[]);else if(h==="number"){var D=UU(A,i.filter(function(H){var q,ae,_e=o in H.props?H.props[o]:(q=H.type.defaultProps)===null||q===void 0?void 0:q[o],Ce="hide"in H.props?H.props.hide:(ae=H.type.defaultProps)===null||ae===void 0?void 0:ae.hide;return _e===k&&(O||!Ce)}),m,a,d);D&&(E=D)}v&&(h==="number"||j!=="auto")&&(L=Do(A,m,"category"))}else v?E=cu(0,$):s&&s[k]&&s[k].hasStack&&h==="number"?E=p==="expand"?[0,1]:NO(s[k].stackGroups,l,u):E=bO(A,i.filter(function(H){var q=o in H.props?H.props[o]:H.type.defaultProps[o],ae="hide"in H.props?H.props.hide:H.type.defaultProps.hide;return q===k&&(O||!ae)}),h,d,!0);if(h==="number")E=nm(f,E,k,a,_),F&&(E=wh(F,E,S));else if(h==="category"&&F){var B=F,K=E.every(function(H){return B.indexOf(H)>=0});K&&(E=B)}}return C(C({},g),{},Q({},k,C(C({},y),{},{axisType:a,domain:E,categoricalDomain:L,duplicateDomain:I,originalDomain:(b=y.domain)!==null&&b!==void 0?b:M,isCategorical:v,layout:d})))},{})},gQ=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,d=t.layout,f=t.children,p=Cf(t.data,{graphicalItems:n,dataStartIndex:l,dataEndIndex:u}),v=p.length,g=wO(d,a),x=-1;return n.reduce(function(b,y){var h=y.type.defaultProps!==void 0?C(C({},y.type.defaultProps),y.props):y.props,m=h[o],S=HN("number");if(!b[m]){x++;var w;return g?w=cu(0,v):s&&s[m]&&s[m].hasStack?(w=NO(s[m].stackGroups,l,u),w=nm(f,w,m,a)):(w=wh(S,bO(p,n.filter(function(j){var _,O,k=o in j.props?j.props[o]:(_=j.type.defaultProps)===null||_===void 0?void 0:_[o],A="hide"in j.props?j.props.hide:(O=j.type.defaultProps)===null||O===void 0?void 0:O.hide;return k===m&&!A}),"number",d),i.defaultProps.allowDataOverflow),w=nm(f,w,m,a)),C(C({},b),{},Q({},m,C(C({axisType:a},i.defaultProps),{},{hide:!0,orientation:It(pQ,"".concat(a,".").concat(x%2),null),domain:w,originalDomain:S,isCategorical:g,layout:d})))}return b},{})},xQ=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,d=t.children,f="".concat(i,"Id"),p=Xt(d,a),v={};return p&&p.length?v=yQ(t,{axes:p,graphicalItems:o,axisType:i,axisIdKey:f,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):o&&o.length&&(v=gQ(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:f,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),v},bQ=function(t){var r=sn(t),n=Ir(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:Av(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:qc(r,n)}},k1=function(t){var r=t.children,n=t.defaultShowTooltip,i=$t(r,Pa),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},wQ=function(t){return!t||!t.length?!1:t.some(function(r){var n=Dr(r&&r.type);return n&&n.indexOf("Bar")>=0})},E1=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},jQ=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,s=t.yAxisMap,l=s===void 0?{}:s,u=n.width,d=n.height,f=n.children,p=n.margin||{},v=$t(f,Pa),g=$t(f,ea),x=Object.keys(l).reduce(function(w,j){var _=l[j],O=_.orientation;return!_.mirror&&!_.hide?C(C({},w),{},Q({},O,w[O]+_.width)):w},{left:p.left||0,right:p.right||0}),b=Object.keys(o).reduce(function(w,j){var _=o[j],O=_.orientation;return!_.mirror&&!_.hide?C(C({},w),{},Q({},O,It(w,"".concat(O))+_.height)):w},{top:p.top||0,bottom:p.bottom||0}),y=C(C({},b),x),h=y.bottom;v&&(y.bottom+=v.props.height||Pa.defaultProps.height),g&&r&&(y=FU(y,i,n,r));var m=u-y.left-y.right,S=d-y.top-y.bottom;return C(C({brushBottom:h},y),{},{width:Math.max(m,0),height:Math.max(S,0)})},SQ=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},dy=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,s=o===void 0?["axis"]:o,l=t.axisComponents,u=t.legendContent,d=t.formatAxisMap,f=t.defaultProps,p=function(y,h){var m=h.graphicalItems,S=h.stackGroups,w=h.offset,j=h.updateId,_=h.dataStartIndex,O=h.dataEndIndex,k=y.barSize,A=y.layout,$=y.barGap,E=y.barCategoryGap,I=y.maxBarSize,L=E1(A),M=L.numericAxisName,R=L.cateAxisName,F=wQ(m),T=[];return m.forEach(function(D,B){var K=Cf(y.data,{graphicalItems:[D],dataStartIndex:_,dataEndIndex:O}),H=D.type.defaultProps!==void 0?C(C({},D.type.defaultProps),D.props):D.props,q=H.dataKey,ae=H.maxBarSize,_e=H["".concat(M,"Id")],Ce=H["".concat(R,"Id")],Bt={},yt=l.reduce(function(Ln,Dn){var Mf=h["".concat(Dn.axisType,"Map")],py=H["".concat(Dn.axisType,"Id")];Mf&&Mf[py]||Dn.axisType==="zAxis"||mi();var hy=Mf[py];return C(C({},Ln),{},Q(Q({},Dn.axisType,hy),"".concat(Dn.axisType,"Ticks"),Ir(hy)))},Bt),V=yt[R],ee=yt["".concat(R,"Ticks")],re=S&&S[_e]&&S[_e].hasStack&&QU(D,S[_e].stackGroups),z=Dr(D.type).indexOf("Bar")>=0,Ee=qc(V,ee),oe=[],Be=F&&RU({barSize:k,stackGroups:S,totalSize:SQ(yt,R)});if(z){var Fe,gt,Zr=J(ae)?I:ae,Oi=(Fe=(gt=qc(V,ee,!0))!==null&>!==void 0?gt:Zr)!==null&&Fe!==void 0?Fe:0;oe=BU({barGap:$,barCategoryGap:E,bandSize:Oi!==Ee?Oi:Ee,sizeList:Be[Ce],maxBarSize:Zr}),Oi!==Ee&&(oe=oe.map(function(Ln){return C(C({},Ln),{},{position:C(C({},Ln.position),{},{offset:Ln.position.offset-Oi/2})})}))}var el=D&&D.type&&D.type.getComposedData;el&&T.push({props:C(C({},el(C(C({},yt),{},{displayedData:K,props:y,dataKey:q,item:D,bandSize:Ee,barPosition:oe,offset:w,stackedData:re,layout:A,dataStartIndex:_,dataEndIndex:O}))),{},Q(Q(Q({key:D.key||"item-".concat(B)},M,yt[M]),R,yt[R]),"animationId",j)),childIndex:BC(D,y.children),item:D})}),T},v=function(y,h){var m=y.props,S=y.dataStartIndex,w=y.dataEndIndex,j=y.updateId;if(!Gg({props:m}))return null;var _=m.children,O=m.layout,k=m.stackOffset,A=m.data,$=m.reverseStackOrder,E=E1(O),I=E.numericAxisName,L=E.cateAxisName,M=Xt(_,n),R=XU(A,M,"".concat(I,"Id"),"".concat(L,"Id"),k,$),F=l.reduce(function(H,q){var ae="".concat(q.axisType,"Map");return C(C({},H),{},Q({},ae,xQ(m,C(C({},q),{},{graphicalItems:M,stackGroups:q.axisType===I&&R,dataStartIndex:S,dataEndIndex:w}))))},{}),T=jQ(C(C({},F),{},{props:m,graphicalItems:M}),h==null?void 0:h.legendBBox);Object.keys(F).forEach(function(H){F[H]=d(m,F[H],T,H.replace("Map",""),r)});var D=F["".concat(L,"Map")],B=bQ(D),K=p(m,C(C({},F),{},{dataStartIndex:S,dataEndIndex:w,updateId:j,graphicalItems:M,stackGroups:R,offset:T}));return C(C({formattedGraphicalItems:K,graphicalItems:M,offset:T,stackGroups:R},B),F)},g=function(b){function y(h){var m,S,w;return rQ(this,y),w=aQ(this,y,[h]),Q(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Q(w,"accessibilityManager",new Uq),Q(w,"handleLegendBBoxUpdate",function(j){if(j){var _=w.state,O=_.dataStartIndex,k=_.dataEndIndex,A=_.updateId;w.setState(C({legendBBox:j},v({props:w.props,dataStartIndex:O,dataEndIndex:k,updateId:A},C(C({},w.state),{},{legendBBox:j}))))}}),Q(w,"handleReceiveSyncEvent",function(j,_,O){if(w.props.syncId===j){if(O===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(_)}}),Q(w,"handleBrushChange",function(j){var _=j.startIndex,O=j.endIndex;if(_!==w.state.dataStartIndex||O!==w.state.dataEndIndex){var k=w.state.updateId;w.setState(function(){return C({dataStartIndex:_,dataEndIndex:O},v({props:w.props,dataStartIndex:_,dataEndIndex:O,updateId:k},w.state))}),w.triggerSyncEvent({dataStartIndex:_,dataEndIndex:O})}}),Q(w,"handleMouseEnter",function(j){var _=w.getMouseInfo(j);if(_){var O=C(C({},_),{},{isTooltipActive:!0});w.setState(O),w.triggerSyncEvent(O);var k=w.props.onMouseEnter;Z(k)&&k(O,j)}}),Q(w,"triggeredAfterMouseMove",function(j){var _=w.getMouseInfo(j),O=_?C(C({},_),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(O),w.triggerSyncEvent(O);var k=w.props.onMouseMove;Z(k)&&k(O,j)}),Q(w,"handleItemMouseEnter",function(j){w.setState(function(){return{isTooltipActive:!0,activeItem:j,activePayload:j.tooltipPayload,activeCoordinate:j.tooltipPosition||{x:j.cx,y:j.cy}}})}),Q(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),Q(w,"handleMouseMove",function(j){j.persist(),w.throttleTriggeredAfterMouseMove(j)}),Q(w,"handleMouseLeave",function(j){w.throttleTriggeredAfterMouseMove.cancel();var _={isTooltipActive:!1};w.setState(_),w.triggerSyncEvent(_);var O=w.props.onMouseLeave;Z(O)&&O(_,j)}),Q(w,"handleOuterEvent",function(j){var _=RC(j),O=It(w.props,"".concat(_));if(_&&Z(O)){var k,A;/.*touch.*/i.test(_)?A=w.getMouseInfo(j.changedTouches[0]):A=w.getMouseInfo(j),O((k=A)!==null&&k!==void 0?k:{},j)}}),Q(w,"handleClick",function(j){var _=w.getMouseInfo(j);if(_){var O=C(C({},_),{},{isTooltipActive:!0});w.setState(O),w.triggerSyncEvent(O);var k=w.props.onClick;Z(k)&&k(O,j)}}),Q(w,"handleMouseDown",function(j){var _=w.props.onMouseDown;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"handleMouseUp",function(j){var _=w.props.onMouseUp;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"handleTouchMove",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(j.changedTouches[0])}),Q(w,"handleTouchStart",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.handleMouseDown(j.changedTouches[0])}),Q(w,"handleTouchEnd",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.handleMouseUp(j.changedTouches[0])}),Q(w,"handleDoubleClick",function(j){var _=w.props.onDoubleClick;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"handleContextMenu",function(j){var _=w.props.onContextMenu;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"triggerSyncEvent",function(j){w.props.syncId!==void 0&&Id.emit(Ld,w.props.syncId,j,w.eventEmitterSymbol)}),Q(w,"applySyncEvent",function(j){var _=w.props,O=_.layout,k=_.syncMethod,A=w.state.updateId,$=j.dataStartIndex,E=j.dataEndIndex;if(j.dataStartIndex!==void 0||j.dataEndIndex!==void 0)w.setState(C({dataStartIndex:$,dataEndIndex:E},v({props:w.props,dataStartIndex:$,dataEndIndex:E,updateId:A},w.state)));else if(j.activeTooltipIndex!==void 0){var I=j.chartX,L=j.chartY,M=j.activeTooltipIndex,R=w.state,F=R.offset,T=R.tooltipTicks;if(!F)return;if(typeof k=="function")M=k(T,j);else if(k==="value"){M=-1;for(var D=0;D<T.length;D++)if(T[D].value===j.activeLabel){M=D;break}}var B=C(C({},F),{},{x:F.left,y:F.top}),K=Math.min(I,B.x+B.width),H=Math.min(L,B.y+B.height),q=T[M]&&T[M].value,ae=om(w.state,w.props.data,M),_e=T[M]?{x:O==="horizontal"?T[M].coordinate:K,y:O==="horizontal"?H:T[M].coordinate}:WN;w.setState(C(C({},j),{},{activeLabel:q,activeCoordinate:_e,activePayload:ae,activeTooltipIndex:M}))}else w.setState(j)}),Q(w,"renderCursor",function(j){var _,O=w.state,k=O.isTooltipActive,A=O.activeCoordinate,$=O.activePayload,E=O.offset,I=O.activeTooltipIndex,L=O.tooltipAxisBandSize,M=w.getTooltipEventType(),R=(_=j.props.active)!==null&&_!==void 0?_:k,F=w.props.layout,T=j.key||"_recharts-cursor";return P.createElement(Xq,{key:T,activeCoordinate:A,activePayload:$,activeTooltipIndex:I,chartName:r,element:j,isActive:R,layout:F,offset:E,tooltipAxisBandSize:L,tooltipEventType:M})}),Q(w,"renderPolarAxis",function(j,_,O){var k=It(j,"type.axisType"),A=It(w.state,"".concat(k,"Map")),$=j.type.defaultProps,E=$!==void 0?C(C({},$),j.props):j.props,I=A&&A[E["".concat(k,"Id")]];return N.cloneElement(j,C(C({},I),{},{className:te(k,I.className),key:j.key||"".concat(_,"-").concat(O),ticks:Ir(I,!0)}))}),Q(w,"renderPolarGrid",function(j){var _=j.props,O=_.radialLines,k=_.polarAngles,A=_.polarRadius,$=w.state,E=$.radiusAxisMap,I=$.angleAxisMap,L=sn(E),M=sn(I),R=M.cx,F=M.cy,T=M.innerRadius,D=M.outerRadius;return N.cloneElement(j,{polarAngles:Array.isArray(k)?k:Ir(M,!0).map(function(B){return B.coordinate}),polarRadius:Array.isArray(A)?A:Ir(L,!0).map(function(B){return B.coordinate}),cx:R,cy:F,innerRadius:T,outerRadius:D,key:j.key||"polar-grid",radialLines:O})}),Q(w,"renderLegend",function(){var j=w.state.formattedGraphicalItems,_=w.props,O=_.children,k=_.width,A=_.height,$=w.props.margin||{},E=k-($.left||0)-($.right||0),I=gO({children:O,formattedGraphicalItems:j,legendWidth:E,legendContent:u});if(!I)return null;var L=I.item,M=N1(I,qq);return N.cloneElement(L,C(C({},M),{},{chartWidth:k,chartHeight:A,margin:$,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),Q(w,"renderTooltip",function(){var j,_=w.props,O=_.children,k=_.accessibilityLayer,A=$t(O,bt);if(!A)return null;var $=w.state,E=$.isTooltipActive,I=$.activeCoordinate,L=$.activePayload,M=$.activeLabel,R=$.offset,F=(j=A.props.active)!==null&&j!==void 0?j:E;return N.cloneElement(A,{viewBox:C(C({},R),{},{x:R.left,y:R.top}),active:F,label:M,payload:F?L:[],coordinate:I,accessibilityLayer:k})}),Q(w,"renderBrush",function(j){var _=w.props,O=_.margin,k=_.data,A=w.state,$=A.offset,E=A.dataStartIndex,I=A.dataEndIndex,L=A.updateId;return N.cloneElement(j,{key:j.key||"_recharts-brush",onChange:Al(w.handleBrushChange,j.props.onChange),data:k,x:U(j.props.x)?j.props.x:$.left,y:U(j.props.y)?j.props.y:$.top+$.height+$.brushBottom-(O.bottom||0),width:U(j.props.width)?j.props.width:$.width,startIndex:E,endIndex:I,updateId:"brush-".concat(L)})}),Q(w,"renderReferenceElement",function(j,_,O){if(!j)return null;var k=w,A=k.clipPathId,$=w.state,E=$.xAxisMap,I=$.yAxisMap,L=$.offset,M=j.type.defaultProps||{},R=j.props,F=R.xAxisId,T=F===void 0?M.xAxisId:F,D=R.yAxisId,B=D===void 0?M.yAxisId:D;return N.cloneElement(j,{key:j.key||"".concat(_,"-").concat(O),xAxis:E[T],yAxis:I[B],viewBox:{x:L.left,y:L.top,width:L.width,height:L.height},clipPathId:A})}),Q(w,"renderActivePoints",function(j){var _=j.item,O=j.activePoint,k=j.basePoint,A=j.childIndex,$=j.isRange,E=[],I=_.props.key,L=_.item.type.defaultProps!==void 0?C(C({},_.item.type.defaultProps),_.item.props):_.item.props,M=L.activeDot,R=L.dataKey,F=C(C({index:A,dataKey:R,cx:O.x,cy:O.y,r:4,fill:ey(_.item),strokeWidth:2,stroke:"#fff",payload:O.payload,value:O.value},X(M,!1)),jc(M));return E.push(y.renderActiveDot(M,F,"".concat(I,"-activePoint-").concat(A))),k?E.push(y.renderActiveDot(M,C(C({},F),{},{cx:k.x,cy:k.y}),"".concat(I,"-basePoint-").concat(A))):$&&E.push(null),E}),Q(w,"renderGraphicChild",function(j,_,O){var k=w.filterFormatItem(j,_,O);if(!k)return null;var A=w.getTooltipEventType(),$=w.state,E=$.isTooltipActive,I=$.tooltipAxis,L=$.activeTooltipIndex,M=$.activeLabel,R=w.props.children,F=$t(R,bt),T=k.props,D=T.points,B=T.isRange,K=T.baseLine,H=k.item.type.defaultProps!==void 0?C(C({},k.item.type.defaultProps),k.item.props):k.item.props,q=H.activeDot,ae=H.hide,_e=H.activeBar,Ce=H.activeShape,Bt=!!(!ae&&E&&F&&(q||_e||Ce)),yt={};A!=="axis"&&F&&F.props.trigger==="click"?yt={onClick:Al(w.handleItemMouseEnter,j.props.onClick)}:A!=="axis"&&(yt={onMouseLeave:Al(w.handleItemMouseLeave,j.props.onMouseLeave),onMouseEnter:Al(w.handleItemMouseEnter,j.props.onMouseEnter)});var V=N.cloneElement(j,C(C({},k.props),yt));function ee(Dn){return typeof I.dataKey=="function"?I.dataKey(Dn.payload):null}if(Bt)if(L>=0){var re,z;if(I.dataKey&&!I.allowDuplicatedCategory){var Ee=typeof I.dataKey=="function"?ee:"payload.".concat(I.dataKey.toString());re=wc(D,Ee,M),z=B&&K&&wc(K,Ee,M)}else re=D==null?void 0:D[L],z=B&&K&&K[L];if(Ce||_e){var oe=j.props.activeIndex!==void 0?j.props.activeIndex:L;return[N.cloneElement(j,C(C(C({},k.props),yt),{},{activeIndex:oe})),null,null]}if(!J(re))return[V].concat(Da(w.renderActivePoints({item:k,activePoint:re,basePoint:z,childIndex:L,isRange:B})))}else{var Be,Fe=(Be=w.getItemByXY(w.state.activeCoordinate))!==null&&Be!==void 0?Be:{graphicalItem:V},gt=Fe.graphicalItem,Zr=gt.item,Oi=Zr===void 0?j:Zr,el=gt.childIndex,Ln=C(C(C({},k.props),yt),{},{activeIndex:el});return[N.cloneElement(Oi,Ln),null,null]}return B?[V,null,null]:[V,null]}),Q(w,"renderCustomized",function(j,_,O){return N.cloneElement(j,C(C({key:"recharts-customized-".concat(O)},w.props),w.state))}),Q(w,"renderMap",{CartesianGrid:{handler:Cl,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:Cl},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:Cl},YAxis:{handler:Cl},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((m=h.id)!==null&&m!==void 0?m:Ya("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=g_(w.triggeredAfterMouseMove,(S=h.throttleDelay)!==null&&S!==void 0?S:1e3/60),w.state={},w}return lQ(y,b),iQ(y,[{key:"componentDidMount",value:function(){var m,S;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(m=this.props.margin.left)!==null&&m!==void 0?m:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var m=this.props,S=m.children,w=m.data,j=m.height,_=m.layout,O=$t(S,bt);if(O){var k=O.props.defaultIndex;if(!(typeof k!="number"||k<0||k>this.state.tooltipTicks.length-1)){var A=this.state.tooltipTicks[k]&&this.state.tooltipTicks[k].value,$=om(this.state,w,k,A),E=this.state.tooltipTicks[k].coordinate,I=(this.state.offset.top+j)/2,L=_==="horizontal",M=L?{x:E,y:I}:{y:E,x:I},R=this.state.formattedGraphicalItems.find(function(T){var D=T.item;return D.type.name==="Scatter"});R&&(M=C(C({},M),R.props.points[k].tooltipPosition),$=R.props.points[k].tooltipPayload);var F={activeTooltipIndex:k,isTooltipActive:!0,activeLabel:A,activePayload:$,activeCoordinate:M};this.setState(F),this.renderCursor(O),this.accessibilityManager.setIndex(k)}}}},{key:"getSnapshotBeforeUpdate",value:function(m,S){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==S.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==m.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==m.margin){var w,j;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(j=this.props.margin.top)!==null&&j!==void 0?j:0}})}return null}},{key:"componentDidUpdate",value:function(m){Lp([$t(m.children,bt)],[$t(this.props.children,bt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var m=$t(this.props.children,bt);if(m&&typeof m.props.shared=="boolean"){var S=m.props.shared?"axis":"item";return s.indexOf(S)>=0?S:a}return a}},{key:"getMouseInfo",value:function(m){if(!this.container)return null;var S=this.container,w=S.getBoundingClientRect(),j=fB(w),_={chartX:Math.round(m.pageX-j.left),chartY:Math.round(m.pageY-j.top)},O=w.width/S.offsetWidth||1,k=this.inRange(_.chartX,_.chartY,O);if(!k)return null;var A=this.state,$=A.xAxisMap,E=A.yAxisMap,I=this.getTooltipEventType(),L=A1(this.state,this.props.data,this.props.layout,k);if(I!=="axis"&&$&&E){var M=sn($).scale,R=sn(E).scale,F=M&&M.invert?M.invert(_.chartX):null,T=R&&R.invert?R.invert(_.chartY):null;return C(C({},_),{},{xValue:F,yValue:T},L)}return L?C(C({},_),L):null}},{key:"inRange",value:function(m,S){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,j=this.props.layout,_=m/w,O=S/w;if(j==="horizontal"||j==="vertical"){var k=this.state.offset,A=_>=k.left&&_<=k.left+k.width&&O>=k.top&&O<=k.top+k.height;return A?{x:_,y:O}:null}var $=this.state,E=$.angleAxisMap,I=$.radiusAxisMap;if(E&&I){var L=sn(E);return nb({x:_,y:O},L)}return null}},{key:"parseEventsOfWrapper",value:function(){var m=this.props.children,S=this.getTooltipEventType(),w=$t(m,bt),j={};w&&S==="axis"&&(w.props.trigger==="click"?j={onClick:this.handleClick}:j={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var _=jc(this.props,this.handleOuterEvent);return C(C({},_),j)}},{key:"addListener",value:function(){Id.on(Ld,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){Id.removeListener(Ld,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(m,S,w){for(var j=this.state.formattedGraphicalItems,_=0,O=j.length;_<O;_++){var k=j[_];if(k.item===m||k.props.key===m.key||S===Dr(k.item.type)&&w===k.childIndex)return k}return null}},{key:"renderClipPath",value:function(){var m=this.clipPathId,S=this.state.offset,w=S.left,j=S.top,_=S.height,O=S.width;return P.createElement("defs",null,P.createElement("clipPath",{id:m},P.createElement("rect",{x:w,y:j,height:_,width:O})))}},{key:"getXScales",value:function(){var m=this.state.xAxisMap;return m?Object.entries(m).reduce(function(S,w){var j=O1(w,2),_=j[0],O=j[1];return C(C({},S),{},Q({},_,O.scale))},{}):null}},{key:"getYScales",value:function(){var m=this.state.yAxisMap;return m?Object.entries(m).reduce(function(S,w){var j=O1(w,2),_=j[0],O=j[1];return C(C({},S),{},Q({},_,O.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(m){var S;return(S=this.state.xAxisMap)===null||S===void 0||(S=S[m])===null||S===void 0?void 0:S.scale}},{key:"getYScaleByAxisId",value:function(m){var S;return(S=this.state.yAxisMap)===null||S===void 0||(S=S[m])===null||S===void 0?void 0:S.scale}},{key:"getItemByXY",value:function(m){var S=this.state,w=S.formattedGraphicalItems,j=S.activeItem;if(w&&w.length)for(var _=0,O=w.length;_<O;_++){var k=w[_],A=k.props,$=k.item,E=$.type.defaultProps!==void 0?C(C({},$.type.defaultProps),$.props):$.props,I=Dr($.type);if(I==="Bar"){var L=(A.data||[]).find(function(T){return QH(m,T)});if(L)return{graphicalItem:k,payload:L}}else if(I==="RadialBar"){var M=(A.data||[]).find(function(T){return nb(m,T)});if(M)return{graphicalItem:k,payload:M}}else if(Nf(k,j)||Pf(k,j)||Ms(k,j)){var R=BV({graphicalItem:k,activeTooltipItem:j,itemData:E.data}),F=E.activeIndex===void 0?R:E.activeIndex;return{graphicalItem:C(C({},k),{},{childIndex:F}),payload:Ms(k,j)?E.data[R]:k.props.data[R]}}}return null}},{key:"render",value:function(){var m=this;if(!Gg(this))return null;var S=this.props,w=S.children,j=S.className,_=S.width,O=S.height,k=S.style,A=S.compact,$=S.title,E=S.desc,I=N1(S,Qq),L=X(I,!1);if(A)return P.createElement(l1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},P.createElement(Rp,Vi({},L,{width:_,height:O,title:$,desc:E}),this.renderClipPath(),Xg(w,this.renderMap)));if(this.props.accessibilityLayer){var M,R;L.tabIndex=(M=this.props.tabIndex)!==null&&M!==void 0?M:0,L.role=(R=this.props.role)!==null&&R!==void 0?R:"application",L.onKeyDown=function(T){m.accessibilityManager.keyboardEvent(T)},L.onFocus=function(){m.accessibilityManager.focus()}}var F=this.parseEventsOfWrapper();return P.createElement(l1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},P.createElement("div",Vi({className:te("recharts-wrapper",j),style:C({position:"relative",cursor:"default",width:_,height:O},k)},F,{ref:function(D){m.container=D}}),P.createElement(Rp,Vi({},L,{width:_,height:O,title:$,desc:E,style:hQ}),this.renderClipPath(),Xg(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(N.Component);Q(g,"displayName",r),Q(g,"defaultProps",C({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},f)),Q(g,"getDerivedStateFromProps",function(b,y){var h=b.dataKey,m=b.data,S=b.children,w=b.width,j=b.height,_=b.layout,O=b.stackOffset,k=b.margin,A=y.dataStartIndex,$=y.dataEndIndex;if(y.updateId===void 0){var E=k1(b);return C(C(C({},E),{},{updateId:0},v(C(C({props:b},E),{},{updateId:0}),y)),{},{prevDataKey:h,prevData:m,prevWidth:w,prevHeight:j,prevLayout:_,prevStackOffset:O,prevMargin:k,prevChildren:S})}if(h!==y.prevDataKey||m!==y.prevData||w!==y.prevWidth||j!==y.prevHeight||_!==y.prevLayout||O!==y.prevStackOffset||!Ji(k,y.prevMargin)){var I=k1(b),L={chartX:y.chartX,chartY:y.chartY,isTooltipActive:y.isTooltipActive},M=C(C({},A1(y,m,_)),{},{updateId:y.updateId+1}),R=C(C(C({},I),L),M);return C(C(C({},R),v(C({props:b},R),y)),{},{prevDataKey:h,prevData:m,prevWidth:w,prevHeight:j,prevLayout:_,prevStackOffset:O,prevMargin:k,prevChildren:S})}if(!Lp(S,y.prevChildren)){var F,T,D,B,K=$t(S,Pa),H=K&&(F=(T=K.props)===null||T===void 0?void 0:T.startIndex)!==null&&F!==void 0?F:A,q=K&&(D=(B=K.props)===null||B===void 0?void 0:B.endIndex)!==null&&D!==void 0?D:$,ae=H!==A||q!==$,_e=!J(m),Ce=_e&&!ae?y.updateId:y.updateId+1;return C(C({updateId:Ce},v(C(C({props:b},y),{},{updateId:Ce,dataStartIndex:H,dataEndIndex:q}),y)),{},{prevChildren:S,dataStartIndex:H,dataEndIndex:q})}return null}),Q(g,"renderActiveDot",function(b,y,h){var m;return N.isValidElement(b)?m=N.cloneElement(b,y):Z(b)?m=b(y):m=P.createElement(wf,y),P.createElement(ie,{className:"recharts-active-dot",key:h},m)});var x=N.forwardRef(function(y,h){return P.createElement(g,Vi({},y,{ref:h}))});return x.displayName=g.displayName,x},KN=dy({chartName:"BarChart",GraphicalChild:Cn,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Mn},{axisType:"yAxis",AxisComp:In}],formatAxisMap:sN}),VN=dy({chartName:"PieChart",GraphicalChild:Nr,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:Of},{axisType:"radiusAxis",AxisComp:Sf}],formatAxisMap:sW,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}}),GN=dy({chartName:"AreaChart",GraphicalChild:Qr,axisComponents:[{axisType:"xAxis",AxisComp:Mn},{axisType:"yAxis",AxisComp:In}],formatAxisMap:sN});function Ml({cents:e}){const t=Number(e||0),r=(t/100).toFixed(2);return t>0?c.jsxs("span",{className:"text-green-400 font-mono font-bold",children:["+$",r]}):t<0?c.jsxs("span",{className:"text-red-400 font-mono font-bold",children:["-$",Math.abs(t/100).toFixed(2)]}):c.jsx("span",{className:"text-gray-500 font-mono",children:"$0.00"})}function $1({wins:e,losses:t}){const r=e+t;if(!r)return c.jsx("span",{className:"text-gray-500",children:"—"});const n=(e/r*100).toFixed(0);return c.jsxs("span",{className:n>=80?"text-green-400":n>=50?"text-amber-400":"text-red-400",children:[e,"/",r," (",n,"%)"]})}function T1({wins:e,losses:t,pnl:r}){const n=e+t,i=n>0?e/n:0;return i>=.9&&r>0?c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-green-500/20 text-green-400 border border-green-500/30",children:"ADD MORE"}):i>=.65&&r>0?c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-amber-500/20 text-amber-400 border border-amber-500/30",children:"HOLD"}):r<0?c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-red-500/20 text-red-400 border border-red-500/30",children:"REDUCE"}):c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-gray-500/20 text-gray-400 border border-gray-600",children:"WATCH"})}function _Q({opportunities:e}){const t=e||[];if(!t.length)return c.jsxs("div",{className:"card border border-gray-700/50 bg-gradient-to-br from-gray-800/30 to-transparent",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[c.jsx("span",{className:"text-lg",children:"🔍"}),c.jsx("h2",{className:"font-semibold",children:"Best Opportunities Right Now"})]}),c.jsx("p",{className:"text-gray-500 text-sm text-center py-6",children:"No fresh signals — waiting for next pipeline cycle..."})]});const r=[{bg:"from-amber-500/15 to-amber-500/5",border:"border-amber-500/30",medal:"🥇",rank:"bg-amber-500/20 text-amber-400"},{bg:"from-gray-400/10 to-gray-400/5",border:"border-gray-400/30",medal:"🥈",rank:"bg-gray-400/20 text-gray-300"},{bg:"from-orange-700/10 to-orange-700/5",border:"border-orange-700/30",medal:"🥉",rank:"bg-orange-700/20 text-orange-400"}];return c.jsxs("div",{className:"card border border-amber-500/20 bg-gradient-to-br from-amber-500/5 via-transparent to-green-500/5",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[c.jsx("span",{className:"text-lg",children:"🎯"}),c.jsx("h2",{className:"font-semibold",children:"Best Opportunities Right Now"}),c.jsx("span",{className:"ml-auto text-[10px] text-gray-500 uppercase font-medium",children:"Live Signals"})]}),c.jsx("div",{className:"space-y-3",children:t.map((n,i)=>{const a=r[i]||r[2],o=n.hist_trades>0;return c.jsx("div",{className:`rounded-xl p-4 bg-gradient-to-r ${a.bg} border ${a.border}`,children:c.jsxs("div",{className:"flex items-start gap-3",children:[c.jsx("span",{className:"text-2xl mt-1",children:a.medal}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("div",{className:"flex items-center gap-2 mb-1",children:c.jsx("a",{href:n.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-semibold text-gray-100 hover:text-amber-400 truncate transition",children:n.title})}),c.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-2",children:[c.jsxs("span",{className:`px-2 py-0.5 rounded text-[10px] font-bold ${n.direction==="NO"?"bg-red-500/20 text-red-400 border border-red-500/30":"bg-green-500/20 text-green-400 border border-green-500/30"}`,children:["BUY ",n.direction]}),c.jsxs("span",{className:"text-xs text-gray-400",children:["Edge: ",c.jsxs("span",{className:"text-amber-400 font-bold",children:[n.edge_pct,"%"]})]}),c.jsxs("span",{className:"text-xs text-gray-400",children:["Conf: ",c.jsxs("span",{className:"text-blue-400 font-bold",children:[n.confidence,"%"]})]}),n.price_cents>0&&c.jsxs("span",{className:"text-xs text-gray-400",children:["Price: ",c.jsxs("span",{className:"font-mono text-gray-200",children:[n.price_cents,"¢"]})]}),o&&c.jsxs("span",{className:"text-xs text-gray-400",children:["History: ",c.jsxs("span",{className:`font-bold ${parseFloat(n.hist_wr)>=80?"text-green-400":parseFloat(n.hist_wr)>=50?"text-amber-400":"text-red-400"}`,children:[n.hist_wr,"% WR"]}),c.jsxs("span",{className:"text-gray-500 ml-1",children:["(",n.hist_trades," trades, ",n.hist_pnl/100>=0?"+":"","$",(n.hist_pnl/100).toFixed(0),")"]})]}),!o&&c.jsx("span",{className:"text-[10px] text-gray-600 italic",children:"New market — no history"})]}),c.jsx("p",{className:"text-[11px] text-gray-400 leading-relaxed",children:n.why})]})]})},n.ticker)})})]})}function OQ({topMarkets:e}){const t=(e||[]).slice(0,3);if(!t.length)return null;const r=t.reduce((i,a)=>i+a.wins/(a.wins+a.losses),0)/t.length*100,n=t.length>0?Math.round(t.reduce((i,a)=>{const o=a.wins/(a.wins+a.losses||1);return i+(o>=.9?95:80)},0)/t.length):95;return c.jsxs("div",{className:"card border border-green-500/15 bg-gradient-to-br from-green-500/5 via-transparent to-amber-500/5",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[c.jsx("span",{className:"text-lg",children:"⚡"}),c.jsx("h2",{className:"font-semibold",children:"Winning Strategy — Live Flow"})]}),c.jsx("div",{className:"flex items-center justify-between gap-2 mb-5",children:[{icon:"📡",label:"Signal Found",sub:"AI scans 135 markets",color:"from-blue-500/20 to-blue-500/5",border:"border-blue-500/30"},{icon:"→",label:"",sub:"",color:"",border:"",isArrow:!0},{icon:"🎯",label:`Buy NO at ${n}¢`,sub:"High-prob event",color:"from-amber-500/20 to-amber-500/5",border:"border-amber-500/30"},{icon:"→",label:"",sub:"",color:"",border:"",isArrow:!0},{icon:"⏱️",label:"Hold 5min–2hr",sub:"TP +3¢ / SL -5¢",color:"from-purple-500/20 to-purple-500/5",border:"border-purple-500/30"},{icon:"→",label:"",sub:"",color:"",border:"",isArrow:!0},{icon:"💰",label:`Collect ${100-n}¢`,sub:`${r.toFixed(0)}% of the time`,color:"from-green-500/20 to-green-500/5",border:"border-green-500/30"}].map((i,a)=>i.isArrow?c.jsx("div",{className:"text-gray-600 text-xl animate-pulse",children:"→"},a):c.jsxs("div",{className:`flex-1 rounded-xl p-3 bg-gradient-to-b ${i.color} border ${i.border} text-center`,children:[c.jsx("div",{className:"text-2xl mb-1",children:i.icon}),c.jsx("p",{className:"text-xs font-semibold text-gray-200",children:i.label}),c.jsx("p",{className:"text-[10px] text-gray-500",children:i.sub})]},a))}),c.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-3 text-center border border-gray-700",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Cost Per Trade"}),c.jsxs("p",{className:"text-lg font-bold text-amber-400",children:[n,"¢"]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"buying NO side"})]}),c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-3 text-center border border-gray-700",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Profit on Win"}),c.jsxs("p",{className:"text-lg font-bold text-green-400",children:[100-n,"¢"]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"per contract"})]}),c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-3 text-center border border-gray-700",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Return Multiple"}),c.jsxs("p",{className:"text-lg font-bold text-green-400",children:[((100-n)/n*100).toFixed(0),"%"]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"per winning trade"})]})]})]})}function NQ({topMarkets:e,worstMarkets:t,strategies:r}){const n=(e||[]).filter(l=>l.wins/(l.wins+l.losses||1)>=.9&&l.pnl>0),i=(t||[]).filter(l=>l.pnl<-5e3),a=(r||[]).filter(l=>l.pnl<-1e4&&l.win_rate<20).slice(0,3),o=[];n.length>0&&o.push({priority:"HIGH",color:"green",icon:"🚀",title:`Double down on ${n.length} near-certain markets`,detail:n.slice(0,2).map(l=>{var u;return((u=l.title)==null?void 0:u.split("?")[0])||l.ticker}).join(", "),reason:`${n.length} markets have 90%+ win rate — the edge is proven`}),i.length>0&&o.push({priority:"HIGH",color:"red",icon:"🛑",title:`Exit ${i.length} bleeding market(s)`,detail:i.slice(0,2).map(l=>{var u;return((u=l.title)==null?void 0:u.split("?")[0])||l.ticker}).join(", "),reason:`0% win rate, losing $${Math.abs(i.reduce((l,u)=>l+u.pnl,0)/100).toFixed(0)} total`}),a.length>0&&o.push({priority:"MED",color:"amber",icon:"⚙️",title:`Consider disabling ${a.length} strategy(ies)`,detail:a.map(l=>l.name).join(", "),reason:"Sub-20% win rate — these are coin flips minus fees"}),o.push({priority:"INFO",color:"blue",icon:"📊",title:"Keep hyper-trading high-prob NO markets",detail:"The 95¢+ NO strategy is the #1 edge — scale it up",reason:"Compounding small spreads at 99%+ win rate = consistent returns"});const s={green:{bg:"bg-green-500/10",border:"border-green-500/25",text:"text-green-400",badge:"bg-green-500/20"},red:{bg:"bg-red-500/10",border:"border-red-500/25",text:"text-red-400",badge:"bg-red-500/20"},amber:{bg:"bg-amber-500/10",border:"border-amber-500/25",text:"text-amber-400",badge:"bg-amber-500/20"},blue:{bg:"bg-blue-500/10",border:"border-blue-500/25",text:"text-blue-400",badge:"bg-blue-500/20"}};return c.jsxs("div",{className:"card border border-amber-500/15 bg-gradient-to-br from-amber-500/5 to-transparent",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[c.jsx("span",{className:"text-lg",children:"🎯"}),c.jsx("h2",{className:"font-semibold",children:"What To Do Next"})]}),c.jsx("div",{className:"space-y-3",children:o.map((l,u)=>{const d=s[l.color];return c.jsxs("div",{className:`rounded-xl p-3 ${d.bg} border ${d.border} flex gap-3`,children:[c.jsx("span",{className:"text-xl mt-0.5",children:l.icon}),c.jsxs("div",{className:"flex-1",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[c.jsx("span",{className:`text-[9px] font-bold px-1.5 py-0.5 rounded ${d.badge} ${d.text} uppercase`,children:l.priority}),c.jsx("span",{className:`text-sm font-semibold ${d.text}`,children:l.title})]}),c.jsx("p",{className:"text-xs text-gray-300",children:l.detail}),c.jsx("p",{className:"text-[10px] text-gray-500 mt-1",children:l.reason})]})]},u)})})]})}function PQ({strategies:e}){const t=[...e||[]].sort((n,i)=>i.pnl-n.pnl).slice(0,10);if(!t.length)return null;Math.max(...t.map(n=>Math.abs(n.pnl)));const r=t.map(n=>({name:n.name,pnl:n.pnl/100,fill:n.pnl>=0?"#22c55e":"#ef4444"}));return c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"📈"}),c.jsx("h2",{className:"font-semibold",children:"Strategy P&L — Top 10"})]}),c.jsx(va,{width:"100%",height:250,children:c.jsxs(KN,{data:r,layout:"vertical",margin:{left:70,right:20},children:[c.jsx(fy,{strokeDasharray:"3 3",stroke:"#1f2937",horizontal:!1}),c.jsx(Mn,{type:"number",stroke:"#6b7280",tickFormatter:n=>`$${n}`}),c.jsx(In,{type:"category",dataKey:"name",stroke:"#6b7280",tick:{fontSize:11},width:65}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8},formatter:n=>[`$${n.toFixed(2)}`,"P&L"]}),c.jsx(Cn,{dataKey:"pnl",radius:[0,4,4,0],children:r.map((n,i)=>c.jsx(di,{fill:n.fill},i))})]})})]})}function AQ({todayWins:e,todayLosses:t}){const r=(e||0)+(t||0);if(!r)return null;const n=(e/r*100).toFixed(1),i=[{name:"Wins",value:e,fill:"#22c55e"},{name:"Losses",value:t,fill:"#ef4444"}];return c.jsxs("div",{className:"card flex flex-col items-center justify-center",children:[c.jsx("h3",{className:"text-xs text-gray-500 uppercase mb-2",children:"Today's Win Rate"}),c.jsxs("div",{className:"relative",style:{width:140,height:140},children:[c.jsx(va,{width:"100%",height:"100%",children:c.jsx(VN,{children:c.jsx(Nr,{data:i,innerRadius:45,outerRadius:65,paddingAngle:2,dataKey:"value",startAngle:90,endAngle:-270,children:i.map((a,o)=>c.jsx(di,{fill:a.fill},o))})})}),c.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[c.jsxs("span",{className:`text-2xl font-bold ${Number(n)>=50?"text-green-400":"text-red-400"}`,children:[n,"%"]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[r.toLocaleString()," trades"]})]})]}),c.jsxs("div",{className:"flex gap-4 mt-2 text-xs",children:[c.jsxs("span",{className:"text-green-400",children:[e==null?void 0:e.toLocaleString()," W"]}),c.jsxs("span",{className:"text-red-400",children:[t==null?void 0:t.toLocaleString()," L"]})]})]})}function kQ(){var d;const[e,t]=N.useState(null),[r,n]=N.useState(!0);N.useEffect(()=>{i();const f=setInterval(i,3e4);return()=>clearInterval(f)},[]);async function i(){try{const f=await ht("/dashboard");t(f)}catch{}n(!1)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const a=e||{},o=(a.pnl_history||[]).map((f,p)=>({day:p+1,pnl:f})),s=a.today_trades>0?(a.today_wins/a.today_trades*100).toFixed(1):"0",l=(a.strategies||[]).filter(f=>f.pnl>0).slice(0,5),u=(a.strategies||[]).filter(f=>f.pnl<0).slice(-5).reverse();return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Dashboard"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Ken event contracts overview"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`badge ${a.env==="prod"?"bg-green":"bg-yellow"}`,children:(a.env||"DEMO").toUpperCase()}),a.safe_mode&&c.jsx("span",{className:"badge bg-yellow",children:"SAFE MODE"})]})]}),c.jsx("div",{className:"grid grid-cols-5 gap-4",children:[{label:"Balance",value:a.balance?`$${(a.balance/100).toLocaleString(void 0,{minimumFractionDigits:2})}`:"—",color:"text-green-400"},{label:"Positions",value:a.position_count??"—",color:"text-amber-400"},{label:"Open Markets",value:a.open_orders??"—",color:"text-blue-400"},{label:"Today P&L",value:a.daily_pnl?`$${(a.daily_pnl/100).toLocaleString(void 0,{minimumFractionDigits:2})}`:"$0.00",color:(a.daily_pnl||0)>=0?"text-green-400":"text-red-400"},{label:"Markets Tracked",value:a.markets_tracked??"—",color:"text-purple-400"}].map(f=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:f.label}),c.jsx("p",{className:`stat-v ${f.color}`,children:f.value})]},f.label))}),a.seed_money>0&&c.jsxs("div",{className:"card border border-blue-500/20 bg-gradient-to-r from-blue-500/5 via-transparent to-green-500/5",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"💰"}),c.jsx("h2",{className:"font-semibold",children:"Capital & Economics"})]}),c.jsxs("div",{className:"grid grid-cols-6 gap-3 text-center",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Seed Money"}),c.jsxs("p",{className:"text-lg font-bold text-blue-400",children:["$",(a.seed_money/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsxs("p",{className:"text-[10px] text-gray-600",children:[a.num_portfolios," portfolios"]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Current Balance"}),c.jsxs("p",{className:"text-lg font-bold text-green-400",children:["$",(a.balance/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"all portfolios"})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Net P&L"}),c.jsxs("p",{className:`text-lg font-bold ${a.net_pnl_from_seed>=0?"text-green-400":"text-red-400"}`,children:[a.net_pnl_from_seed>=0?"+":"","$",(a.net_pnl_from_seed/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsxs("p",{className:`text-[10px] ${a.roi_pct>=0?"text-green-500":"text-red-500"}`,children:[a.roi_pct>=0?"+":"",a.roi_pct,"% ROI"]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Capital Deployed"}),c.jsxs("p",{className:"text-lg font-bold text-amber-400",children:["$",(a.total_invested/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"total traded"})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Capital at Risk"}),c.jsxs("p",{className:"text-lg font-bold text-red-400",children:["$",(a.capital_at_risk/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"open positions"})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Daily Budget"}),c.jsxs("p",{className:"text-lg font-bold text-purple-400",children:["$",(a.daily_budget/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"across strategies"})]})]}),((d=a.daily_economics)==null?void 0:d.length)>0&&c.jsxs("div",{className:"mt-4 pt-3 border-t border-gray-700/50",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-2",children:"Daily Breakdown (Last 7 Days)"}),c.jsx("div",{className:"grid grid-cols-7 gap-1 text-center text-[10px]",children:(a.daily_economics||[]).slice(0,7).reverse().map((f,p)=>{const v=new Date(f.day+"T12:00:00").toLocaleDateString("en-US",{weekday:"short",month:"numeric",day:"numeric"});return c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-2 border border-gray-700/50",children:[c.jsx("p",{className:"text-gray-500 font-medium",children:v}),c.jsxs("p",{className:`font-bold font-mono ${f.net_pnl>=0?"text-green-400":"text-red-400"}`,children:[f.net_pnl>=0?"+":"","$",(f.net_pnl/100).toFixed(0)]}),c.jsxs("p",{className:"text-gray-600",children:[f.trades," trades"]}),c.jsxs("p",{className:"text-gray-600",children:[f.wins,"W / ",f.losses,"L"]})]},p)})})]})]}),c.jsx(_Q,{opportunities:a.top_opportunities}),c.jsxs("div",{className:"card border border-amber-500/20 bg-gradient-to-r from-amber-500/5 to-transparent",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"📊"}),c.jsx("h2",{className:"font-semibold",children:"Today's Lessons"}),c.jsx("span",{className:"ml-auto text-xs text-gray-500",children:new Date().toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"})})]}),c.jsxs("div",{className:"grid grid-cols-4 gap-4 text-center",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Trades Resolved"}),c.jsx("p",{className:"text-xl font-bold text-amber-400",children:(a.today_trades||0).toLocaleString()})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Wins / Losses"}),c.jsxs("p",{className:"text-xl font-bold",children:[c.jsx("span",{className:"text-green-400",children:a.today_wins||0}),c.jsx("span",{className:"text-gray-600 mx-1",children:"/"}),c.jsx("span",{className:"text-red-400",children:a.today_losses||0})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Win Rate"}),c.jsxs("p",{className:`text-xl font-bold ${Number(s)>=50?"text-green-400":"text-red-400"}`,children:[s,"%"]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Day P&L"}),c.jsxs("p",{className:`text-xl font-bold ${(a.daily_pnl||0)>=0?"text-green-400":"text-red-400"}`,children:[(a.daily_pnl||0)>=0?"+":"","$",((a.daily_pnl||0)/100).toLocaleString(void 0,{minimumFractionDigits:2})]})]})]})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsx("div",{className:"col-span-2",children:c.jsx(OQ,{topMarkets:a.top_markets})}),c.jsx(AQ,{todayWins:a.today_wins,todayLosses:a.today_losses})]}),c.jsx(NQ,{topMarkets:a.top_markets,worstMarkets:a.worst_markets,strategies:a.strategies}),(a.top_markets||[]).length>0&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"🏆"}),c.jsx("h2",{className:"font-semibold",children:"Top Markets — Money Makers"})]}),c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left",children:"Market"}),c.jsx("th",{className:"text-right",children:"Trades"}),c.jsx("th",{className:"text-right",children:"Wins"}),c.jsx("th",{className:"text-right",children:"P&L"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Signal"})]})}),c.jsx("tbody",{children:(a.top_markets||[]).map((f,p)=>c.jsxs("tr",{children:[c.jsxs("td",{className:"max-w-[300px]",children:[c.jsx("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-200 hover:text-amber-400 transition truncate block",children:f.title}),c.jsx("span",{className:"text-[10px] font-mono text-gray-600",children:f.ticker})]}),c.jsx("td",{className:"text-right font-mono text-sm text-gray-400",children:f.trades}),c.jsx("td",{className:"text-right text-sm",children:c.jsx($1,{wins:f.wins,losses:f.losses})}),c.jsx("td",{className:"text-right text-sm",children:c.jsx(Ml,{cents:f.pnl})}),c.jsx("td",{className:"text-xs text-gray-400 whitespace-nowrap",children:f.edge}),c.jsx("td",{className:"text-center",children:c.jsx(T1,{wins:f.wins,losses:f.losses,pnl:f.pnl})})]},p))})]})})]}),(a.worst_markets||[]).length>0&&c.jsxs("div",{className:"card border border-red-500/10",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"⚠️"}),c.jsx("h2",{className:"font-semibold text-red-400",children:"Bleeding Markets — Consider Exiting"})]}),c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left",children:"Market"}),c.jsx("th",{className:"text-right",children:"Trades"}),c.jsx("th",{className:"text-right",children:"Wins"}),c.jsx("th",{className:"text-right",children:"P&L"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Signal"})]})}),c.jsx("tbody",{children:(a.worst_markets||[]).map((f,p)=>c.jsxs("tr",{children:[c.jsxs("td",{className:"max-w-[300px]",children:[c.jsx("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-200 hover:text-red-400 transition truncate block",children:f.title}),c.jsx("span",{className:"text-[10px] font-mono text-gray-600",children:f.ticker})]}),c.jsx("td",{className:"text-right font-mono text-sm text-gray-400",children:f.trades}),c.jsx("td",{className:"text-right text-sm",children:c.jsx($1,{wins:f.wins,losses:f.losses})}),c.jsx("td",{className:"text-right text-sm",children:c.jsx(Ml,{cents:f.pnl})}),c.jsx("td",{className:"text-xs text-gray-400 whitespace-nowrap",children:f.edge}),c.jsx("td",{className:"text-center",children:c.jsx(T1,{wins:f.wins,losses:f.losses,pnl:f.pnl})})]},p))})]})})]}),o.length>0&&c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"P&L History (Daily)"}),c.jsx(va,{width:"100%",height:200,children:c.jsxs(GN,{data:o,children:[c.jsx(fy,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Mn,{dataKey:"day",stroke:"#6b7280"}),c.jsx(In,{stroke:"#6b7280",tickFormatter:f=>`$${f}`}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8}}),c.jsx(Qr,{type:"monotone",dataKey:"pnl",stroke:"#f59e0b",fill:"#f59e0b",fillOpacity:.1})]})})]}),c.jsx(PQ,{strategies:a.strategies}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"🥇"}),c.jsx("h2",{className:"font-semibold",children:"Top Strategies"})]}),c.jsxs("div",{className:"space-y-2",children:[l.map((f,p)=>c.jsxs("div",{className:"flex items-center justify-between py-1.5 border-b border-gray-800 last:border-0",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-sm font-medium text-gray-200",children:f.name}),c.jsx("span",{className:"ml-2 text-[10px] text-gray-600",children:f.strategy})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[f.win_rate,"% WR"]}),c.jsx(Ml,{cents:f.pnl})]})]},p)),l.length===0&&c.jsx("p",{className:"text-gray-600 text-sm text-center py-4",children:"No profitable strategies yet"})]})]}),c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"📉"}),c.jsx("h2",{className:"font-semibold",children:"Losing Strategies"})]}),c.jsxs("div",{className:"space-y-2",children:[u.map((f,p)=>c.jsxs("div",{className:"flex items-center justify-between py-1.5 border-b border-gray-800 last:border-0",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-sm font-medium text-gray-300",children:f.name}),c.jsx("span",{className:"ml-2 text-[10px] text-gray-600",children:f.strategy})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[f.win_rate,"% WR"]}),c.jsx(Ml,{cents:f.pnl})]})]},p)),u.length===0&&c.jsx("p",{className:"text-gray-600 text-sm text-center py-4",children:"No losing strategies"})]})]})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Recent Fills"}),(a.recent_fills||[]).length>0?c.jsx("div",{className:"space-y-2",children:(a.recent_fills||[]).slice(0,5).map((f,p)=>{var v;return c.jsxs("div",{className:"flex items-center justify-between text-sm",children:[c.jsxs("div",{children:[c.jsx("span",{className:"font-mono text-xs text-gray-400",children:f.ticker}),c.jsx("span",{className:`ml-2 badge ${f.side==="yes"?"bg-green":"bg-red"}`,children:(v=f.side)==null?void 0:v.toUpperCase()})]}),c.jsxs("span",{className:"font-mono text-gray-300",children:[f.count,"@",f.yes_price,"c"]})]},p)})}):c.jsx("p",{className:"text-gray-600 text-sm text-center py-6",children:"No recent fills"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Quick Actions"}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs(Yl,{to:"/markets",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg bg-amber-500/10 flex items-center justify-center",children:c.jsx("svg",{className:"w-4 h-4 text-amber-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"})})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium",children:"Browse Markets"}),c.jsx("p",{className:"text-xs text-gray-500",children:"Find weather contracts"})]})]}),c.jsxs(Yl,{to:"/positions",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg bg-green-500/10 flex items-center justify-center",children:c.jsx("svg",{className:"w-4 h-4 text-green-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium",children:"View Positions"}),c.jsx("p",{className:"text-xs text-gray-500",children:"Current portfolio"})]})]}),c.jsxs(Yl,{to:"/settings",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg bg-blue-500/10 flex items-center justify-center",children:c.jsxs("svg",{className:"w-4 h-4 text-blue-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:[c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",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.066 2.573c1.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.573 1.066c-.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.066-2.573c-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"}),c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})]})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium",children:"Scan Config"}),c.jsx("p",{className:"text-xs text-gray-500",children:"Intervals & risk params"})]})]})]})]})]})]})}function EQ(){const[e,t]=N.useState([]),[r,n]=N.useState([]),[i,a]=N.useState(!0),[o,s]=N.useState(null),[l,u]=N.useState(null),[d,f]=N.useState(!1),[p,v]=N.useState("");N.useEffect(()=>{g()},[]);async function g(){a(!0);try{const h=await he("/kalshi",{action:"get_events",params:{status:"open",limit:100}});t(h.events||[])}catch{}a(!1)}async function x(h){s(h),n([]);try{const m=await he("/kalshi",{action:"get_markets",params:{event_ticker:h}});n(m.markets||[])}catch{}}async function b(h){f(!0),u(null);try{const m=await he("/kalshi",{action:"get_orderbook",ticker:h});m.success&&u({...m.orderbook,ticker:h})}catch{}f(!1)}const y=e.filter(h=>!p||(h.title||"").toLowerCase().includes(p.toLowerCase())||(h.category||"").toLowerCase().includes(p.toLowerCase()));return i?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Markets"}),c.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," events loaded"]})]}),c.jsx("button",{onClick:g,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsx("input",{type:"text",value:p,onChange:h=>v(h.target.value),placeholder:"Filter by name or category...",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none"}),c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Event"}),c.jsx("th",{children:"Category"}),c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Markets"}),c.jsx("th",{children:"Action"})]})}),c.jsx("tbody",{children:y.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:5,className:"text-center text-gray-500 py-8",children:"No events found"})}):y.slice(0,50).map(h=>c.jsxs("tr",{children:[c.jsx("td",{className:"max-w-[300px]",children:c.jsx("span",{className:"truncate block font-medium",children:h.title})}),c.jsx("td",{children:c.jsx("span",{className:"badge bg-orange",children:h.category||"—"})}),c.jsx("td",{className:"font-mono text-xs text-gray-500",children:h.event_ticker}),c.jsx("td",{className:"text-sm",children:h.mutually_exclusive?"ME":"—"}),c.jsx("td",{children:c.jsx("button",{onClick:()=>x(h.event_ticker),className:"text-xs text-amber-400 hover:text-amber-300",children:"View Contracts"})})]},h.event_ticker))})]})}),o&&r.length>0&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-3",children:[c.jsxs("h2",{className:"font-semibold",children:["Contracts — ",o]}),c.jsx("button",{onClick:()=>{s(null),n([])},className:"text-xs text-gray-500 hover:text-gray-300",children:"Close"})]}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Contract"}),c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Yes Bid"}),c.jsx("th",{children:"Yes Ask"}),c.jsx("th",{children:"Volume"}),c.jsx("th",{children:"Book"})]})}),c.jsx("tbody",{children:r.map(h=>c.jsxs("tr",{children:[c.jsx("td",{className:"max-w-[250px]",children:c.jsx("span",{className:"truncate block text-sm",children:h.title||h.subtitle||h.ticker})}),c.jsx("td",{className:"font-mono text-xs text-gray-500",children:h.ticker}),c.jsxs("td",{className:"font-mono text-green-400",children:[h.yes_bid??"—","c"]}),c.jsxs("td",{className:"font-mono text-red-400",children:[h.yes_ask??"—","c"]}),c.jsx("td",{className:"font-mono text-gray-400",children:h.volume??"—"}),c.jsx("td",{children:c.jsx("button",{onClick:()=>b(h.ticker),className:"text-xs text-amber-400 hover:text-amber-300",children:"Orderbook"})})]},h.ticker))})]})]}),(l||d)&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsxs("h2",{className:"font-semibold",children:["Orderbook — ",(l==null?void 0:l.ticker)||"..."]}),c.jsx("button",{onClick:()=>u(null),className:"text-xs text-gray-500 hover:text-gray-300",children:"Close"})]}),d?c.jsx("div",{className:"flex items-center justify-center h-32",children:c.jsx("div",{className:"animate-spin w-6 h-6 border-2 border-amber-500 border-t-transparent rounded-full"})}):l?c.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-green-400 mb-2",children:"YES Bids"}),c.jsxs("div",{className:"space-y-1",children:[c.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[c.jsx("span",{children:"Price"}),c.jsx("span",{children:"Qty"})]}),(l.yes||[]).slice(0,10).map((h,m)=>c.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[c.jsx("div",{className:"absolute inset-0 bg-green-500/10",style:{width:`${Math.min((h[1]||0)*2,100)}%`}}),c.jsxs("span",{className:"font-mono text-green-400 relative z-10",children:[h[0],"c"]}),c.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:h[1]})]},m))]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-red-400 mb-2",children:"NO Bids"}),c.jsxs("div",{className:"space-y-1",children:[c.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[c.jsx("span",{children:"Price"}),c.jsx("span",{children:"Qty"})]}),(l.no||[]).slice(0,10).map((h,m)=>c.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[c.jsx("div",{className:"absolute inset-0 bg-red-500/10",style:{width:`${Math.min((h[1]||0)*2,100)}%`}}),c.jsxs("span",{className:"font-mono text-red-400 relative z-10",children:[h[0],"c"]}),c.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:h[1]})]},m))]})]})]}):null]})]})}function $Q(){const[e,t]=N.useState([]),[r,n]=N.useState(!0);N.useEffect(()=>{i();const o=setInterval(i,15e3);return()=>clearInterval(o)},[]);async function i(){try{const o=await he("/kalshi",{action:"get_positions"});t(o.market_positions||o.positions||[])}catch{}n(!1)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const a=e.reduce((o,s)=>o+(s.realized_pnl||0),0);return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Positions"}),c.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," active positions"]})]}),c.jsx("button",{onClick:i,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Positions"}),c.jsx("p",{className:"stat-v text-amber-400",children:e.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Total Realized P&L"}),c.jsxs("p",{className:`stat-v ${a>=0?"text-green-400":"text-red-400"}`,children:["$",(a/1e4).toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Fees Paid"}),c.jsxs("p",{className:"stat-v text-gray-400",children:["$",(e.reduce((o,s)=>o+(s.fees_paid||0),0)/1e4).toFixed(2)]})]})]}),c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Contracts"}),c.jsx("th",{children:"Cost"}),c.jsx("th",{children:"Realized P&L"}),c.jsx("th",{children:"Fees"})]})}),c.jsx("tbody",{children:e.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No open positions"})}):e.map((o,s)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-sm",children:o.ticker||o.market_ticker}),c.jsx("td",{children:(o.market_exposure||o.position)>0?c.jsx("span",{className:"badge bg-green",children:"YES"}):(o.market_exposure||o.position)<0?c.jsx("span",{className:"badge bg-red",children:"NO"}):c.jsx("span",{className:"text-gray-500",children:"—"})}),c.jsx("td",{className:"font-mono",children:Math.abs(o.market_exposure||o.position||0)}),c.jsxs("td",{className:"font-mono text-gray-400",children:["$",((o.position_cost||0)/1e4).toFixed(2)]}),c.jsxs("td",{className:`font-mono ${(o.realized_pnl||0)>=0?"text-green-400":"text-red-400"}`,children:["$",((o.realized_pnl||0)/1e4).toFixed(2)]}),c.jsxs("td",{className:"font-mono text-gray-400",children:["$",((o.fees_paid||0)/1e4).toFixed(2)]})]},s))})]})})]})}function TQ(){const[e,t]=N.useState([]),[r,n]=N.useState([]),[i,a]=N.useState(!0),[o,s]=N.useState("orders");N.useEffect(()=>{l()},[]);async function l(){a(!0);try{const[d,f]=await Promise.all([he("/kalshi",{action:"get_orders"}),he("/kalshi",{action:"get_fills"})]);t(d.orders||[]),n(f.fills||[])}catch{}a(!1)}async function u(d){try{await he("/kalshi",{action:"cancel_order",order_id:d}),l()}catch{}}return i?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Orders & Fills"}),c.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," orders, ",r.length," fills"]})]}),c.jsx("button",{onClick:l,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsxs("div",{className:"flex gap-2",children:[c.jsxs("button",{onClick:()=>s("orders"),className:`btn text-sm ${o==="orders"?"btn-p":"btn-o"}`,children:["Orders (",e.length,")"]}),c.jsxs("button",{onClick:()=>s("fills"),className:`btn text-sm ${o==="fills"?"btn-p":"btn-o"}`,children:["Fills (",r.length,")"]})]}),o==="orders"?c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Action"}),c.jsx("th",{children:"Type"}),c.jsx("th",{children:"Price"}),c.jsx("th",{children:"Qty"}),c.jsx("th",{children:"Filled"}),c.jsx("th",{children:"Status"}),c.jsx("th",{})]})}),c.jsx("tbody",{children:e.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:9,className:"text-center text-gray-500 py-8",children:"No orders"})}):e.map((d,f)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-xs",children:d.ticker}),c.jsx("td",{children:c.jsx("span",{className:`badge ${d.side==="yes"?"bg-green":"bg-red"}`,children:(d.side||"").toUpperCase()})}),c.jsx("td",{className:"text-xs text-gray-400",children:(d.action||"").toUpperCase()}),c.jsx("td",{className:"text-xs",children:d.type}),c.jsxs("td",{className:"font-mono",children:[d.yes_price||d.no_price||"—","c"]}),c.jsx("td",{className:"font-mono",children:d.count||d.remaining_count||0}),c.jsx("td",{className:"font-mono text-green-400",children:d.count-(d.remaining_count||0)}),c.jsx("td",{children:c.jsx("span",{className:`badge ${d.status==="resting"?"bg-blue":d.status==="filled"?"bg-green":d.status==="canceled"?"bg-red":"bg-yellow"}`,children:d.status})}),c.jsx("td",{children:d.status==="resting"&&c.jsx("button",{onClick:()=>u(d.order_id),className:"text-xs text-red-400 hover:text-red-300",children:"Cancel"})})]},f))})]})}):c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Action"}),c.jsx("th",{children:"Price"}),c.jsx("th",{children:"Qty"}),c.jsx("th",{children:"Taker"}),c.jsx("th",{children:"Time"})]})}),c.jsx("tbody",{children:r.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:7,className:"text-center text-gray-500 py-8",children:"No fills"})}):r.map((d,f)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-xs",children:d.ticker}),c.jsx("td",{children:c.jsx("span",{className:`badge ${d.side==="yes"?"bg-green":"bg-red"}`,children:(d.side||"").toUpperCase()})}),c.jsx("td",{className:"text-xs text-gray-400",children:(d.action||"").toUpperCase()}),c.jsxs("td",{className:"font-mono",children:[d.yes_price||d.no_price||"—","c"]}),c.jsx("td",{className:"font-mono",children:d.count}),c.jsx("td",{children:d.is_taker?c.jsx("span",{className:"text-yellow-400 text-xs",children:"TAKER"}):c.jsx("span",{className:"text-green-400 text-xs",children:"MAKER"})}),c.jsx("td",{className:"text-xs text-gray-500",children:d.created_time?new Date(d.created_time).toLocaleString():"—"})]},f))})]})})]})}function CQ(){const[e,t]=N.useState(null),[r,n]=N.useState(!0);N.useEffect(()=>{i()},[]);async function i(){n(!0);try{const o=await he("/weather",{action:"get_data"});t(o)}catch{}n(!1)}async function a(){n(!0);try{const o=await he("/weather",{action:"fetch_all"});t(o)}catch{}n(!1)}return r?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Weather Data"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"NWS settlement data for Ken weather contracts"})]}),c.jsx("button",{onClick:a,className:"btn btn-p text-sm",children:"Fetch Latest"})]}),c.jsx("div",{className:"grid grid-cols-4 gap-4",children:["Stations","Forecasts","Observations","Metrics"].map((o,s)=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:o}),c.jsx("p",{className:"stat-v text-blue-400",children:(e==null?void 0:e[o.toLowerCase()])||"—"})]},o))}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Settlement Rule Reference"}),c.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Temperature Contracts"}),c.jsxs("ul",{className:"space-y-1 text-xs text-gray-400",children:[c.jsx("li",{children:"Source: NWS Daily Climate Report (final)"}),c.jsx("li",{children:"Station: Market-specified (e.g. KORD, KLGA)"}),c.jsx("li",{children:"Values: Tmax/Tmin in degrees F"}),c.jsx("li",{children:"Missing data: treated as 0"})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Precipitation Contracts"}),c.jsxs("ul",{className:"space-y-1 text-xs text-gray-400",children:[c.jsx("li",{children:"Source: NWS Daily Climate Report (first complete)"}),c.jsx("li",{children:"Trace: counted as 0.00 inches"}),c.jsx("li",{children:"Missing: counted as 0.00 inches"}),c.jsx("li",{children:"Revisions: do NOT change settlement"})]})]})]})]}),((e==null?void 0:e.outcomes)||[]).length>0&&c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Recent Observations"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Station"}),c.jsx("th",{children:"Metric"}),c.jsx("th",{children:"Value"}),c.jsx("th",{children:"Source"}),c.jsx("th",{children:"Date"})]})}),c.jsx("tbody",{children:e.outcomes.map((o,s)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-sm",children:o.station_id}),c.jsx("td",{children:c.jsx("span",{className:"badge bg-blue",children:o.metric})}),c.jsxs("td",{className:"font-mono",children:[o.value,o.units]}),c.jsx("td",{className:"text-xs text-gray-400",children:o.source}),c.jsx("td",{className:"text-xs text-gray-400",children:o.period_end})]},s))})]})]})]})}const MQ={aggressive:"#ef4444",conservative:"#3b82f6",weather:"#06b6d4",momentum:"#f59e0b",contrarian:"#a855f7",ai_enhanced:"#ec4899",mc_validated:"#8b5cf6",scalper:"#10b981",patient:"#6366f1",random:"#f97316",penny_pincher:"#84cc16",spray_pray:"#14b8a6",nickel_slots:"#eab308",degen_lite:"#e11d48",politics_junkie:"#7c3aed",double_down:"#dc2626",volatility_rider:"#0ea5e9",whale:"#1d4ed8",yolo:"#be123c",full_send:"#ea580c",kelly_criterion:"#4f46e5",sharpe_sniper:"#059669",bayesian_blend:"#7c3aed",ensemble_lock:"#0891b2",mean_revert:"#4338ca",info_ratio:"#b45309",anti_fomo:"#64748b",nightcrawler:"#334155",heatseeker:"#dc2626",quant_core:"#2563eb"},IQ="#f59e0b";function YN(e){return e.startsWith("etf_")?IQ:MQ[e]||"#6b7280"}function LQ({won:e,lost:t,total:r}){if(!r)return c.jsx("span",{className:"text-[10px] text-gray-600",children:"no trades"});const n=e/r*100,i=t/r*100;return c.jsxs("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800 w-full",children:[e>0&&c.jsx("div",{className:"bg-green-500",style:{width:`${n}%`}}),t>0&&c.jsx("div",{className:"bg-red-500",style:{width:`${i}%`}})]})}function DQ({streak:e}){if(e===0)return c.jsx("span",{className:"text-gray-600 text-xs",children:"—"});const t=e>0;return c.jsxs("span",{className:`text-xs font-mono font-bold ${t?"text-green-400":"text-red-400"}`,children:[t?"+":"",e]})}function RQ({p:e,dailyPnl:t,expanded:r,onToggle:n}){const i=(e.total_returned_cents-e.total_invested_cents)/100,a=e.trades_won+e.trades_lost+e.trades_expired,o=e.total_invested_cents/100,s=e.total_returned_cents/100,l=a>0,u=YN(e.strategy);return c.jsx("div",{className:`rounded-xl border transition-all cursor-pointer hover:border-gray-600 ${l?"bg-gray-900/60 border-gray-700/60":"bg-gray-900/20 border-gray-800/40 opacity-60"} ${r?"col-span-2 row-span-2":""}`,onClick:n,children:c.jsxs("div",{className:"p-3",children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2.5 h-2.5 rounded-full",style:{background:u}}),c.jsx("span",{className:"font-semibold text-sm text-gray-100",children:e.name}),c.jsxs("span",{className:"text-[10px] text-gray-500 font-mono",children:["#",e.id]})]}),c.jsxs("span",{className:`text-sm font-mono font-bold ${i>=0?"text-green-400":"text-red-400"}`,children:[i>=0?"+":"",i.toFixed(2)]})]}),c.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[c.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded-md font-mono",style:{background:`${u}15`,color:u,border:`1px solid ${u}30`},children:e.strategy}),c.jsx(DQ,{streak:e.streak})]}),c.jsxs("div",{className:"mb-2",children:[c.jsx(LQ,{won:e.trades_won,lost:e.trades_lost,total:a}),c.jsxs("div",{className:"flex justify-between mt-1",children:[c.jsxs("span",{className:"text-[10px] text-gray-500",children:[e.trades_won,"W / ",e.trades_lost,"L"]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[e.win_rate||0,"%"]})]})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Invested"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:["$",o.toFixed(2)]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Returned"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:["$",s.toFixed(2)]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Budget/Day"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:["$",(e.daily_budget_cents/100).toFixed(2)]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Today"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:[e.trades_today," trades"]})]})]}),r&&t&&t.length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t border-gray-800",children:[c.jsx("p",{className:"text-[10px] text-gray-500 mb-1",children:"Cumulative P&L"}),c.jsx(va,{width:"100%",height:80,children:c.jsxs(GN,{data:t,children:[c.jsx(Mn,{dataKey:"date",hide:!0}),c.jsx(In,{hide:!0,domain:["dataMin","dataMax"]}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8,fontSize:11},formatter:d=>[`$${(d/100).toFixed(2)}`,"P&L"],labelFormatter:d=>d}),c.jsx(Qr,{type:"monotone",dataKey:"cumulative",stroke:u,fill:u,fillOpacity:.1,strokeWidth:1.5,dot:!1})]})}),c.jsx("p",{className:"text-[10px] text-gray-600 mt-1",children:e.description})]})]})})}function BQ(){const[e,t]=N.useState([]),[r,n]=N.useState({}),[i,a]=N.useState(!0),[o,s]=N.useState("all"),[l,u]=N.useState("pnl"),[d,f]=N.useState(null);N.useEffect(()=>{p()},[]);async function p(){try{const[m,S]=await Promise.all([ht("/portfolios"),ht("/portfolio-trades?include_history=true").catch(()=>({}))]);t(m||[]),S!=null&&S.byPortfolio&&n(S.byPortfolio)}catch{}a(!1)}const v=N.useMemo(()=>{let m=[...e];return o==="active"&&(m=m.filter(S=>S.trades_won+S.trades_lost>0)),o==="dormant"&&(m=m.filter(S=>S.trades_won+S.trades_lost===0)),o==="etf"&&(m=m.filter(S=>S.strategy.startsWith("etf_"))),o==="core"&&(m=m.filter(S=>!S.strategy.startsWith("etf_"))),l==="pnl"&&m.sort((S,w)=>w.total_returned_cents-w.total_invested_cents-(S.total_returned_cents-S.total_invested_cents)),l==="winrate"&&m.sort((S,w)=>(w.win_rate||0)-(S.win_rate||0)),l==="invested"&&m.sort((S,w)=>w.total_invested_cents-S.total_invested_cents),l==="name"&&m.sort((S,w)=>S.name.localeCompare(w.name)),l==="id"&&m.sort((S,w)=>S.id-w.id),m},[e,o,l]),g=N.useMemo(()=>{const m=e.reduce(($,E)=>$+E.total_invested_cents,0),S=e.reduce(($,E)=>$+E.total_returned_cents,0),w=e.reduce(($,E)=>$+E.trades_won,0),j=e.reduce(($,E)=>$+E.trades_lost,0),_=e.filter($=>$.trades_won+$.trades_lost>0).length,O=e.length-_,k=[...e].sort(($,E)=>E.total_returned_cents-E.total_invested_cents-($.total_returned_cents-$.total_invested_cents))[0],A=[...e].sort(($,E)=>$.total_returned_cents-$.total_invested_cents-(E.total_returned_cents-E.total_invested_cents))[0];return{totalInvested:m,totalReturned:S,totalWins:w,totalLosses:j,active:_,dormant:O,bestPf:k,worstPf:A}},[e]),x=N.useMemo(()=>[...e].map(m=>({name:m.name,pnl:(m.total_returned_cents-m.total_invested_cents)/100,strategy:m.strategy})).filter(m=>m.pnl!==0).sort((m,S)=>S.pnl-m.pnl).slice(0,20),[e]),b=N.useMemo(()=>{const m={};return e.forEach(S=>{const w=S.strategy.startsWith("etf_")?"ETF Baskets":S.strategy;m[w]||(m[w]={name:w,value:0}),m[w].value+=S.total_invested_cents}),Object.values(m).filter(S=>S.value>0).sort((S,w)=>w.value-S.value)},[e]);if(i)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const y=(g.totalReturned-g.totalInvested)/100,h=g.totalWins+g.totalLosses;return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Portfauxlios"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"All 50 portfolios — performance, P&L, and strategy breakdown"})]}),c.jsx("div",{className:"grid grid-cols-6 gap-3",children:[{label:"Total P&L",value:`${y>=0?"+":""}$${y.toFixed(2)}`,color:y>=0?"text-green-400":"text-red-400"},{label:"Invested",value:`$${(g.totalInvested/100).toFixed(2)}`,color:"text-amber-400"},{label:"Returned",value:`$${(g.totalReturned/100).toFixed(2)}`,color:"text-blue-400"},{label:"Win Rate",value:h?`${(g.totalWins/h*100).toFixed(1)}%`:"0%",color:"text-purple-400"},{label:"Active",value:g.active,color:"text-green-400"},{label:"Dormant",value:g.dormant,color:"text-gray-500"}].map(m=>c.jsxs("div",{className:"card text-center",children:[c.jsx("div",{className:`text-lg font-bold font-mono ${m.color}`,children:m.value}),c.jsx("div",{className:"text-[10px] text-gray-500 uppercase tracking-wider mt-1",children:m.label})]},m.label))}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card col-span-2",children:[c.jsx("h2",{className:"font-semibold text-sm mb-3",children:"P&L by Portfolio"}),x.length>0?c.jsx(va,{width:"100%",height:220,children:c.jsxs(KN,{data:x,margin:{left:10,right:10},children:[c.jsx(Mn,{dataKey:"name",tick:{fill:"#6b7280",fontSize:9},angle:-45,textAnchor:"end",height:60}),c.jsx(In,{tick:{fill:"#6b7280",fontSize:10},tickFormatter:m=>`$${m}`}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8,fontSize:11},formatter:m=>[`$${m.toFixed(2)}`,"P&L"]}),c.jsx(Cn,{dataKey:"pnl",radius:[4,4,0,0],children:x.map((m,S)=>c.jsx(di,{fill:m.pnl>=0?"#22c55e":"#ef4444",fillOpacity:.8},S))})]})}):c.jsx("div",{className:"text-center text-gray-600 py-10 text-sm",children:"No P&L data yet"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold text-sm mb-3",children:"Capital Allocation"}),b.length>0?c.jsx(va,{width:"100%",height:220,children:c.jsxs(VN,{children:[c.jsx(Nr,{data:b,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",innerRadius:40,outerRadius:75,paddingAngle:2,strokeWidth:0,children:b.map((m,S)=>c.jsx(di,{fill:YN(m.name==="ETF Baskets"?"etf_":m.name),fillOpacity:.8},S))}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8,fontSize:11},formatter:m=>[`$${(m/100).toFixed(2)}`,"Invested"]})]})}):c.jsx("div",{className:"text-center text-gray-600 py-10 text-sm",children:"No allocations yet"})]})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[g.bestPf&&c.jsxs("div",{className:"card border-green-500/20",children:[c.jsx("div",{className:"flex items-center gap-2 mb-1",children:c.jsx("span",{className:"text-green-400 text-xs font-semibold uppercase tracking-wider",children:"Best Performer"})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"font-bold text-gray-100",children:g.bestPf.name}),c.jsx("span",{className:"text-green-400 font-mono font-bold",children:((g.bestPf.total_returned_cents-g.bestPf.total_invested_cents)/100).toFixed(2)})]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[g.bestPf.strategy," — ",g.bestPf.win_rate||0,"% win rate"]})]}),g.worstPf&&c.jsxs("div",{className:"card border-red-500/20",children:[c.jsx("div",{className:"flex items-center gap-2 mb-1",children:c.jsx("span",{className:"text-red-400 text-xs font-semibold uppercase tracking-wider",children:"Worst Performer"})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"font-bold text-gray-100",children:g.worstPf.name}),c.jsx("span",{className:"text-red-400 font-mono font-bold",children:((g.worstPf.total_returned_cents-g.worstPf.total_invested_cents)/100).toFixed(2)})]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[g.worstPf.strategy," — ",g.worstPf.win_rate||0,"% win rate"]})]})]}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("div",{className:"flex gap-2",children:["all","active","dormant","etf","core"].map(m=>c.jsx("button",{onClick:()=>s(m),className:`px-3 py-1.5 rounded-lg text-xs font-medium transition ${o===m?"bg-amber-500/15 text-amber-400 border border-amber-500/30":"bg-gray-800/40 text-gray-400 hover:text-gray-200 border border-transparent"}`,children:m==="all"?`All (${e.length})`:m==="active"?`Active (${g.active})`:m==="dormant"?`Dormant (${g.dormant})`:m==="etf"?"ETF Baskets":"Core Strategies"},m))}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"text-xs text-gray-500",children:"Sort:"}),["pnl","winrate","invested","name","id"].map(m=>c.jsx("button",{onClick:()=>u(m),className:`px-2 py-1 rounded text-[11px] transition ${l===m?"text-amber-400 bg-amber-500/10":"text-gray-500 hover:text-gray-300"}`,children:m==="pnl"?"P&L":m==="winrate"?"Win%":m.charAt(0).toUpperCase()+m.slice(1)},m))]})]}),c.jsx("div",{className:"grid grid-cols-4 gap-3",children:v.map(m=>{var S;return c.jsx(RQ,{p:m,dailyPnl:((S=r[m.id])==null?void 0:S.daily)||[],expanded:d===m.id,onToggle:()=>f(d===m.id?null:m.id)},m.id)})}),v.length===0&&c.jsx("div",{className:"text-center py-12 text-gray-500",children:"No portfolios match this filter"})]})}const FQ=[{label:"30s",ms:3e4},{label:"1m",ms:6e4},{label:"2m",ms:12e4},{label:"5m",ms:3e5},{label:"8m",ms:48e4},{label:"10m",ms:6e5},{label:"15m",ms:9e5},{label:"30m",ms:18e5},{label:"60m",ms:36e5}];function zQ(e){return e>=36e5?`${e/36e5}h`:e>=6e4?`${e/6e4}m`:`${e/1e3}s`}function Il({label:e,value:t,onChange:r,description:n}){return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-200",children:e}),c.jsx("p",{className:"text-[10px] text-gray-500",children:n})]}),c.jsx("span",{className:"font-mono text-amber-400 text-lg font-bold",children:zQ(t)})]}),c.jsx("div",{className:"flex flex-wrap gap-1.5",children:FQ.map(i=>c.jsx("button",{onClick:()=>r(i.ms),className:`px-2.5 py-1 rounded text-xs font-medium transition ${t===i.ms?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800/60 text-gray-500 border border-gray-700 hover:border-gray-500 hover:text-gray-300"}`,children:i.label},i.ms))})]})}function UQ(){const[e,t]=N.useState(null),[r,n]=N.useState(!0),[i,a]=N.useState(""),[o,s]=N.useState(""),[l,u]=N.useState("demo"),[d,f]=N.useState(!1),[p,v]=N.useState(null),[g,x]=N.useState(null),[b,y]=N.useState(null),[h,m]=N.useState(!1);N.useEffect(()=>{S(),w();const A=setInterval(w,3e4);return()=>clearInterval(A)},[]);async function S(){try{const A=await he("/kalshi",{action:"status"});t(A),A.env&&u(A.env)}catch{}n(!1)}async function w(){try{const A=await ht("/scan-config");x(A)}catch{}}async function j(A,$){m(!0),y(null);try{const E=await ht("/scan-config",{method:"POST",body:JSON.stringify({[A]:$})});E.success?(x(E),y({type:"ok",text:`Updated ${A.replace(/_/g," ")}`})):y({type:"err",text:E.error||"Failed"})}catch{y({type:"err",text:"Connection error"})}m(!1),setTimeout(()=>y(null),3e3)}async function _(){f(!0),v(null);try{const A=await he("/kalshi",{action:"save_keys",api_key:i,private_key:o,env:l});A.success?(v({type:"ok",text:"Keys saved"}),S(),a(""),s("")):v({type:"err",text:A.error||"Failed"})}catch{v({type:"err",text:"Connection error"})}f(!1)}async function O(){try{await he("/kalshi",{action:"disconnect"}),S()}catch{}}async function k(){v(null);try{const A=await he("/kalshi",{action:"test_connection"});v({type:A.success?"ok":"err",text:A.success?`Connected! Exchange: ${A.exchange_status}`:"Connection failed"})}catch{v({type:"err",text:"Connection error"})}}return r?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),g&&c.jsxs("div",{className:"card space-y-5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"font-semibold",children:"Scan & Pipeline Configuration"}),c.jsx("p",{className:"text-[10px] text-gray-500",children:"Adjust intervals, thresholds, and risk parameters in real-time"})]}),h&&c.jsx("span",{className:"text-xs text-amber-400 animate-pulse",children:"Saving..."})]}),b&&c.jsx("p",{className:`text-xs px-3 py-1.5 rounded ${b.type==="ok"?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"}`,children:b.text}),c.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 bg-gray-800/40 rounded-lg border border-gray-700",children:[c.jsx("span",{className:"text-[10px] text-gray-500 uppercase font-medium",children:"Cached Markets"}),c.jsx("span",{className:"font-mono text-xl font-bold text-amber-400",children:g.cached_markets||0})]}),c.jsx(Il,{label:"Market Scan",description:"How often to fetch & analyze all active Kalshi markets",value:g.scan_interval_ms,onChange:A=>j("scan_interval_ms",A)}),c.jsx(Il,{label:"Signal Pipeline",description:"News sentiment + probability + Monte Carlo signal generation",value:g.signal_pipeline_ms,onChange:A=>j("signal_pipeline_ms",A)}),c.jsx(Il,{label:"Intelligence Sweep",description:"Reddit, news feeds, Bluesky, Mastodon, Lemmy + 20 more sources",value:g.reddit_interval_ms,onChange:A=>j("reddit_interval_ms",A)}),c.jsx(Il,{label:"Trade Resolution",description:"Take-profit/stop-loss check on open portfolio positions",value:g.resolve_interval_ms,onChange:A=>j("resolve_interval_ms",A)}),c.jsxs("div",{className:"border-t border-gray-700 pt-4 space-y-4",children:[c.jsx("h3",{className:"text-sm font-semibold text-gray-300",children:"Risk Parameters"}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-200",children:"Min Edge Threshold"}),c.jsx("p",{className:"text-[10px] text-gray-500",children:"Minimum statistical edge required to approve a signal"})]}),c.jsxs("span",{className:"font-mono text-amber-400 text-lg font-bold",children:[(g.min_edge_threshold*100).toFixed(1),"%"]})]}),c.jsx("div",{className:"flex flex-wrap gap-1.5",children:[.01,.02,.03,.05,.08,.1,.15,.2].map(A=>c.jsxs("button",{onClick:()=>j("min_edge_threshold",A),className:`px-2.5 py-1 rounded text-xs font-medium transition ${Math.abs(g.min_edge_threshold-A)<.001?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800/60 text-gray-500 border border-gray-700 hover:border-gray-500 hover:text-gray-300"}`,children:[(A*100).toFixed(0),"%"]},A))})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-200",children:"Min Liquidity (24h Vol)"}),c.jsx("p",{className:"text-[10px] text-gray-500",children:"Minimum 24-hour trading volume to consider a market"})]}),c.jsx("span",{className:"font-mono text-amber-400 text-lg font-bold",children:g.min_liquidity})]}),c.jsx("div",{className:"flex flex-wrap gap-1.5",children:[0,10,25,50,100,250,500,1e3].map(A=>c.jsx("button",{onClick:()=>j("min_liquidity",A),className:`px-2.5 py-1 rounded text-xs font-medium transition ${g.min_liquidity===A?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800/60 text-gray-500 border border-gray-700 hover:border-gray-500 hover:text-gray-300"}`,children:A===0?"None":A},A))})]})]})]}),c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[c.jsx("span",{className:`w-3 h-3 rounded-full ${e!=null&&e.connected?"bg-green-500 pulse-g":"bg-gray-600"}`}),c.jsx("h2",{className:"font-semibold",children:"Ken API Connection"})]}),e!=null&&e.connected?c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"API Key"}),c.jsx("span",{className:"font-mono text-gray-300",children:e.api_key_masked||"***"})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Environment"}),c.jsx("span",{className:e.env==="prod"?"text-green-400":"text-yellow-400",children:(e.env||"demo").toUpperCase()})]}),c.jsxs("div",{className:"flex gap-2 mt-3",children:[c.jsx("button",{onClick:k,className:"btn btn-o text-sm",children:"Test Connection"}),c.jsx("button",{onClick:O,className:"btn btn-d text-sm",children:"Disconnect"})]})]}):c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"flex gap-2",children:[c.jsx("button",{onClick:()=>u("demo"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${l==="demo"?"bg-yellow-500/15 text-yellow-400 border border-yellow-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Demo"}),c.jsx("button",{onClick:()=>u("prod"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${l==="prod"?"bg-green-500/15 text-green-400 border border-green-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Production"})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs text-gray-400 mb-1",children:"API Key ID"}),c.jsx("input",{type:"text",value:i,onChange:A=>a(A.target.value),placeholder:"Your API key",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono"})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs text-gray-400 mb-1",children:"Private Key (PEM)"}),c.jsx("textarea",{value:o,onChange:A=>s(A.target.value),placeholder:"-----BEGIN RSA PRIVATE KEY-----",rows:4,className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono text-xs"})]}),c.jsx("button",{onClick:_,disabled:d||!i,className:"btn btn-p w-full",children:d?"Saving...":"Save & Connect"})]}),p&&c.jsx("p",{className:`text-xs mt-2 ${p.type==="ok"?"text-green-400":"text-red-400"}`,children:p.text})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Ken API Reference"}),c.jsxs("div",{className:"grid grid-cols-2 gap-4 text-xs text-gray-400",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 uppercase mb-1 font-medium",children:"Environments"}),c.jsxs("p",{children:["Demo: ",c.jsx("span",{className:"font-mono text-amber-400",children:"demo-api.kalshi.co"})]}),c.jsxs("p",{children:["Prod: ",c.jsx("span",{className:"font-mono text-green-400",children:"api.elections.kalshi.com"})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 uppercase mb-1 font-medium",children:"Auth"}),c.jsx("p",{children:"Method: RSA-PSS + SHA-256"}),c.jsx("p",{children:"Headers: KALSHI-ACCESS-KEY, TIMESTAMP, SIGNATURE"})]})]})]})]})}const WQ={BUY_YES:"bg-green",BUY_NO:"bg-red"};function HQ(){var v,g,x,b,y,h;const[e,t]=N.useState(null),[r,n]=N.useState(null),[i,a]=N.useState(!0),[o,s]=N.useState("signals");N.useEffect(()=>{l();const m=setInterval(l,3e4);return()=>clearInterval(m)},[]);async function l(){try{const[m,S]=await Promise.all([ht("/signals"),ht("/signals/dashboard")]);t(m),n(S)}catch{}a(!1)}if(i)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const u=(r==null?void 0:r.stats)||{},d=(e==null?void 0:e.signals)||[],f=(e==null?void 0:e.probabilityShifts)||[],p=(r==null?void 0:r.sourceBreakdown)||[];return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Signal Pipeline"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"News → Sentiment → Probability → Signals → Risk"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[((v=e==null?void 0:e.pipeline)==null?void 0:v.cachedMarkets)||0," markets tracked"]}),c.jsx("button",{onClick:l,className:"btn btn-o text-sm",children:"Refresh"})]})]}),c.jsx("div",{className:"grid grid-cols-6 gap-3",children:[{label:"Signals (24h)",value:u.total_signals||0,color:"text-amber-400"},{label:"Approved",value:u.approved_signals||0,color:"text-green-400"},{label:"BUY YES",value:u.buy_yes||0,color:"text-green-400"},{label:"BUY NO",value:u.buy_no||0,color:"text-red-400"},{label:"Avg Edge",value:u.avg_edge?`${(u.avg_edge*100).toFixed(1)}%`:"—",color:"text-blue-400"},{label:"Avg Confidence",value:u.avg_confidence?`${(u.avg_confidence*100).toFixed(0)}%`:"—",color:"text-purple-400"}].map(m=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:m.label}),c.jsx("p",{className:`text-xl font-bold ${m.color}`,children:m.value})]},m.label))}),c.jsx("div",{className:"flex gap-1 border-b border-gray-800 pb-1",children:["signals","shifts","sources"].map(m=>c.jsx("button",{onClick:()=>s(m),className:`px-4 py-2 text-sm rounded-t-lg transition ${o===m?"bg-gray-800 text-amber-400 font-medium":"text-gray-500 hover:text-gray-300"}`,children:m==="signals"?"Strategy Signals":m==="shifts"?"Probability Shifts":"Source Breakdown"},m))}),o==="signals"&&c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Market"}),c.jsx("th",{children:"Direction"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Size"}),c.jsx("th",{children:"Confidence"}),c.jsx("th",{children:"Risk"}),c.jsx("th",{children:"Reasoning"})]})}),c.jsx("tbody",{children:d.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:8,className:"text-center text-gray-500 py-8",children:"No signals yet"})}):d.map(m=>c.jsxs("tr",{children:[c.jsx("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:new Date(m.created_at).toLocaleTimeString()}),c.jsx("td",{className:"font-mono text-xs max-w-[200px] truncate",children:m.kalshi_url?c.jsx("a",{href:m.kalshi_url,target:"_blank",rel:"noopener noreferrer",className:"text-amber-400 hover:text-amber-300 underline decoration-amber-400/30 hover:decoration-amber-300",children:m.market_id}):m.market_id}),c.jsx("td",{children:c.jsx("span",{className:`badge ${WQ[m.direction]||"bg-yellow"}`,children:m.direction})}),c.jsxs("td",{className:`font-mono ${parseFloat(m.expected_edge)>0?"text-green-400":"text-red-400"}`,children:[(parseFloat(m.expected_edge)*100).toFixed(1),"%"]}),c.jsx("td",{className:"font-mono text-gray-400",children:m.size_recommendation}),c.jsx("td",{children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-16 h-1.5 bg-gray-700 rounded-full overflow-hidden",children:c.jsx("div",{className:`h-full rounded-full ${parseFloat(m.confidence)>.7?"bg-green-500":parseFloat(m.confidence)>.5?"bg-amber-500":"bg-red-500"}`,style:{width:`${parseFloat(m.confidence)*100}%`}})}),c.jsxs("span",{className:"text-xs text-gray-400",children:[(parseFloat(m.confidence)*100).toFixed(0),"%"]})]})}),c.jsx("td",{children:c.jsx("span",{className:`badge ${m.risk_approved?"bg-green":"bg-red"}`,children:m.risk_approved?"APPROVED":"BLOCKED"})}),c.jsx("td",{className:"text-xs text-gray-400 max-w-[300px] truncate",children:m.reasoning})]},m.id))})]})}),o==="shifts"&&c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Market"}),c.jsx("th",{children:"Prior"}),c.jsx("th",{children:"Impact"}),c.jsx("th",{children:"Adjusted"}),c.jsx("th",{children:"Market Price"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Articles"})]})}),c.jsx("tbody",{children:f.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:8,className:"text-center text-gray-500 py-8",children:"No probability shifts yet"})}):f.map((m,S)=>{const w=parseFloat(m.edge)||0;return c.jsxs("tr",{children:[c.jsx("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:new Date(m.created_at).toLocaleTimeString()}),c.jsx("td",{className:"font-mono text-xs max-w-[200px] truncate",children:m.kalshi_url?c.jsx("a",{href:m.kalshi_url,target:"_blank",rel:"noopener noreferrer",className:"text-amber-400 hover:text-amber-300 underline decoration-amber-400/30 hover:decoration-amber-300",children:m.market_id}):m.market_id}),c.jsxs("td",{className:"font-mono text-gray-400",children:[(parseFloat(m.prior_probability)*100).toFixed(1),"%"]}),c.jsxs("td",{className:`font-mono ${parseFloat(m.sentiment_impact)>0?"text-green-400":"text-red-400"}`,children:[parseFloat(m.sentiment_impact)>0?"+":"",(parseFloat(m.sentiment_impact)*100).toFixed(2),"%"]}),c.jsxs("td",{className:"font-mono text-amber-400",children:[(parseFloat(m.adjusted_probability)*100).toFixed(1),"%"]}),c.jsxs("td",{className:"font-mono text-gray-400",children:[(parseFloat(m.market_probability)*100).toFixed(1),"%"]}),c.jsxs("td",{className:`font-mono font-bold ${w>0?"text-green-400":w<0?"text-red-400":"text-gray-400"}`,children:[w>0?"+":"",(w*100).toFixed(1),"%"]}),c.jsx("td",{className:"text-gray-400",children:m.num_articles})]},S)})})]})}),o==="sources"&&c.jsx("div",{className:"card",children:c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Active Sources (last hour)"}),c.jsx("div",{className:"space-y-2",children:p.length===0?c.jsx("p",{className:"text-gray-600 text-sm",children:"No recent data"}):p.map((m,S)=>c.jsxs("div",{className:"flex items-center justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-sm font-medium",children:m.source}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[m.cnt," items"]}),c.jsxs("span",{className:`text-xs font-mono ${parseFloat(m.avg_sent)>.05?"text-green-400":parseFloat(m.avg_sent)<-.05?"text-red-400":"text-gray-400"}`,children:[parseFloat(m.avg_sent)>0?"+":"",(parseFloat(m.avg_sent)*100).toFixed(0),"%"]})]})]},S))})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Pipeline Config"}),c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Market Scan"}),c.jsx("span",{children:"Every 15 min"})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Signal Pipeline"}),c.jsx("span",{children:"Every 5 min"})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Intelligence Sweep"}),c.jsx("span",{children:"Every 30 min"})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Min Edge Threshold"}),c.jsxs("span",{children:[((((x=(g=e==null?void 0:e.pipeline)==null?void 0:g.riskLimits)==null?void 0:x.minEdgeThreshold)||.05)*100).toFixed(0),"%"]})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Min Liquidity"}),c.jsxs("span",{children:[((y=(b=e==null?void 0:e.pipeline)==null?void 0:b.riskLimits)==null?void 0:y.minLiquidity)||100," vol"]})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Cached Markets"}),c.jsx("span",{className:"text-amber-400",children:((h=e==null?void 0:e.pipeline)==null?void 0:h.cachedMarkets)||0})]})]})]})]})})]})}const C1={reddit_hot:"🔴",reddit:"📋",google_news:"📰",hackernews:"🟠",metaculus:"🔮",manifold:"📊",gdelt_tv:"📺",youtube:"▶️",lemmy:"🟢",lobsters:"🦞",tildes:"~",bluesky:"🦋",mastodon:"🐘",predictit:"💰",fred:"📈",nws:"⛈️",govtrack:"🏛️",discord:"💬"};function KQ(){const[e,t]=N.useState(null),[r,n]=N.useState(!0),[i,a]=N.useState(""),[o,s]=N.useState("captured_at"),[l,u]=N.useState("desc");N.useEffect(()=>{d();const h=setInterval(d,6e4);return()=>clearInterval(h)},[]);async function d(){try{const h=await ht("/intelligence");t(h)}catch{}n(!1)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const f=(e==null?void 0:e.totals)||{},p=(e==null?void 0:e.sourceCounts)||[],v=((e==null?void 0:e.recent)||[]).filter(h=>!i||h.source.toLowerCase().includes(i.toLowerCase())||(h.post_title||"").toLowerCase().includes(i.toLowerCase())||(h.keyword||"").toLowerCase().includes(i.toLowerCase()));function g(h){o===h?u(m=>m==="asc"?"desc":"asc"):(s(h),u(h==="captured_at"?"desc":"asc"))}const x=(h,m)=>{let S,w;switch(o){case"captured_at":S=new Date(h.captured_at),w=new Date(m.captured_at);break;case"source":S=h.source||"",w=m.source||"";break;case"keyword":S=h.keyword||h.subreddit||"",w=m.keyword||m.subreddit||"";break;case"post_title":S=(h.post_title||"").toLowerCase(),w=(m.post_title||"").toLowerCase();break;case"score":S=Number(h.score||0),w=Number(m.score||0);break;case"sentiment":S=parseFloat(h.sentiment_score||0),w=parseFloat(m.sentiment_score||0);break;default:return 0}return S<w?l==="asc"?-1:1:S>w?l==="asc"?1:-1:0},b=[...v].sort(x),y=({col:h,label:m})=>c.jsxs("th",{onClick:()=>g(h),className:"cursor-pointer select-none hover:text-amber-400 transition",children:[m," ",o===h?l==="asc"?"▲":"▼":c.jsx("span",{className:"text-gray-600",children:"⇅"})]});return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Intelligence Feed"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Real-time data from 20+ sources"})]}),c.jsx("button",{onClick:d,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Total Items"}),c.jsx("p",{className:"text-xl font-bold text-amber-400",children:Number(f.total_items||0).toLocaleString()})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Last Hour"}),c.jsx("p",{className:"text-xl font-bold text-green-400",children:f.last_hour||0})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Last 4 Hours"}),c.jsx("p",{className:"text-xl font-bold text-blue-400",children:f.last_4h||0})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Avg Sentiment (1h)"}),c.jsx("p",{className:`text-xl font-bold ${parseFloat(f.avg_sentiment_1h)>0?"text-green-400":parseFloat(f.avg_sentiment_1h)<0?"text-red-400":"text-gray-400"}`,children:f.avg_sentiment_1h?`${(parseFloat(f.avg_sentiment_1h)*100).toFixed(1)}%`:"—"})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Active Sources"}),c.jsx("div",{className:"flex flex-wrap gap-2",children:p.map((h,m)=>c.jsxs("button",{onClick:()=>a(i===h.source?"":h.source),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs transition ${i===h.source?"bg-amber-500/20 text-amber-400 border border-amber-500/30":"bg-gray-800/50 text-gray-400 border border-gray-700 hover:border-gray-600"}`,children:[c.jsx("span",{children:C1[h.source]||"📡"}),c.jsx("span",{className:"font-medium",children:h.source}),c.jsx("span",{className:"text-gray-500",children:h.cnt}),c.jsxs("span",{className:`font-mono ${parseFloat(h.avg_sent)>.05?"text-green-400":parseFloat(h.avg_sent)<-.05?"text-red-400":"text-gray-500"}`,children:[parseFloat(h.avg_sent)>0?"+":"",(parseFloat(h.avg_sent)*100).toFixed(0),"%"]})]},m))})]}),c.jsx("input",{type:"text",value:i,onChange:h=>a(h.target.value),placeholder:"Filter by source, keyword, or title...",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none"}),c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx(y,{col:"captured_at",label:"Time"}),c.jsx(y,{col:"source",label:"Source"}),c.jsx(y,{col:"keyword",label:"Topic"}),c.jsx(y,{col:"post_title",label:"Title"}),c.jsx(y,{col:"score",label:"Score"}),c.jsx(y,{col:"sentiment",label:"Sentiment"})]})}),c.jsx("tbody",{children:b.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No items match filter"})}):b.slice(0,50).map((h,m)=>c.jsxs("tr",{children:[c.jsx("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:new Date(h.captured_at).toLocaleTimeString()}),c.jsx("td",{children:c.jsxs("span",{className:"badge bg-blue text-xs",children:[C1[h.source]||"📡"," ",h.source]})}),c.jsx("td",{className:"text-xs text-gray-500",children:h.keyword||h.subreddit||"—"}),c.jsx("td",{className:"max-w-[400px]",children:h.post_url?c.jsx("a",{href:h.post_url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-300 hover:text-amber-400 truncate block",children:h.post_title}):c.jsx("span",{className:"text-sm text-gray-300 truncate block",children:h.post_title})}),c.jsxs("td",{className:"font-mono text-xs text-gray-400",children:[h.score||0,h.num_comments?` / ${h.num_comments}c`:""]}),c.jsx("td",{children:c.jsxs("span",{className:`font-mono text-xs ${parseFloat(h.sentiment_score)>.1?"text-green-400":parseFloat(h.sentiment_score)<-.1?"text-red-400":"text-gray-500"}`,children:[parseFloat(h.sentiment_score)>0?"+":"",(parseFloat(h.sentiment_score)*100).toFixed(0),"%"]})})]},m))})]})})]})}function VQ(){const[e,t]=N.useState(null),[r,n]=N.useState(null),[i,a]=N.useState(null),[o,s]=N.useState(!0),[l,u]=N.useState("");N.useEffect(()=>{d();const y=setInterval(d,15e3);return()=>clearInterval(y)},[]);async function d(){try{const[y,h,m]=await Promise.all([he("/trading/mode",{action:"get"}),ht("/trading/history"),ht("/system")]);t(y),n(h),a(m)}catch{}s(!1)}async function f(y,h={}){u(y);try{await he("/trading/mode",{action:y,...h}),await d()}catch{}u("")}if(o)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const p=(e==null?void 0:e.trade_config)||{},v=(e==null?void 0:e.trader_state)||{},g=(r==null?void 0:r.summary)||{},x=(r==null?void 0:r.trades)||[],b=(i==null?void 0:i.memory)||{};return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Trading Control"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Mode, execution, and P&L"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`badge ${(e==null?void 0:e.env)==="prod"?"bg-green":"bg-yellow"}`,children:((e==null?void 0:e.env)||"demo").toUpperCase()}),(e==null?void 0:e.safe_mode)&&c.jsx("span",{className:"badge bg-yellow",children:"SAFE"}),(e==null?void 0:e.auto_trader_enabled)&&c.jsx("span",{className:"badge bg-green",children:"AUTO"})]})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Environment"}),c.jsxs("div",{className:"flex gap-2 mb-3",children:[c.jsx("button",{onClick:()=>f("switch_env",{env:"demo"}),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${(e==null?void 0:e.env)==="demo"?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800 text-gray-500 border border-gray-700"}`,disabled:l==="switch_env",children:"DEMO"}),c.jsx("button",{onClick:()=>f("switch_env",{env:"prod"}),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${(e==null?void 0:e.env)==="prod"?"bg-green-500/20 text-green-400 border border-green-500/40":"bg-gray-800 text-gray-500 border border-gray-700"}`,disabled:l==="switch_env",children:"PROD"})]}),c.jsxs("p",{className:"text-[10px] text-gray-600",children:["API keys: ",e!=null&&e.kalshi_connected?"Configured":"Not set"]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Safe Mode"}),c.jsx("button",{onClick:()=>f("toggle_safe_mode"),className:`w-full py-3 rounded-lg text-sm font-bold transition ${e!=null&&e.safe_mode?"bg-yellow-500/20 text-yellow-400 border border-yellow-500/40":"bg-red-500/20 text-red-400 border border-red-500/40"}`,disabled:l==="toggle_safe_mode",children:e!=null&&e.safe_mode?"SAFE MODE ON — Click to Disable":"SAFE MODE OFF — LIVE TRADING"}),c.jsx("p",{className:"text-[10px] text-gray-600 mt-2",children:e!=null&&e.safe_mode?"No real orders will be placed":"Real orders will be executed!"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Auto Trader"}),c.jsx("button",{onClick:()=>f("toggle_auto_trader"),className:`w-full py-3 rounded-lg text-sm font-bold transition ${e!=null&&e.auto_trader_enabled?"bg-green-500/20 text-green-400 border border-green-500/40":"bg-gray-800 text-gray-500 border border-gray-700"}`,disabled:l==="toggle_auto_trader",children:e!=null&&e.auto_trader_enabled?"AUTO TRADER: ON":"AUTO TRADER: OFF"}),c.jsxs("p",{className:"text-[10px] text-gray-600 mt-2",children:["Min confidence: ",p.min_confidence,"% | Budget: $",(p.budget_cents/100).toFixed(0)]})]})]}),c.jsx("div",{className:"grid grid-cols-6 gap-3",children:[{label:"Total Trades",value:g.total_trades||0,color:"text-amber-400"},{label:"Open",value:g.open_trades||0,color:"text-blue-400"},{label:"Wins",value:g.winning_trades||0,color:"text-green-400"},{label:"Losses",value:g.losing_trades||0,color:"text-red-400"},{label:"Total P&L",value:g.total_pnl?`$${(parseInt(g.total_pnl)/100).toFixed(2)}`:"$0.00",color:parseInt(g.total_pnl||0)>=0?"text-green-400":"text-red-400"},{label:"Exposure",value:`$${(parseInt(g.open_exposure||0)/100).toFixed(2)}`,color:"text-purple-400"}].map(y=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:y.label}),c.jsx("p",{className:`text-lg font-bold ${y.color}`,children:y.value})]},y.label))}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Trade Config"}),c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Budget"}),c.jsxs("span",{className:"font-mono",children:["$",(p.budget_cents/100).toFixed(0)]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Max per trade"}),c.jsxs("span",{className:"font-mono",children:["$",(p.max_position_cents/100).toFixed(0)]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Max positions"}),c.jsx("span",{className:"font-mono",children:p.max_open_positions})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Daily loss limit"}),c.jsxs("span",{className:"font-mono",children:["$",(p.daily_loss_limit_cents/100).toFixed(0)]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Min confidence"}),c.jsxs("span",{className:"font-mono",children:[p.min_confidence,"%"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Take profit"}),c.jsxs("span",{className:"font-mono",children:[p.take_profit_pct,"%"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Stop loss"}),c.jsxs("span",{className:"font-mono",children:[p.stop_loss_pct,"%"]})]})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"System Health"}),c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Memory (RSS)"}),c.jsxs("span",{className:"font-mono",children:[b.rss_mb||"?","MB"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Heap Used"}),c.jsxs("span",{className:"font-mono",children:[b.heapUsed_mb||"?","MB"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Heap Total"}),c.jsxs("span",{className:"font-mono",children:[b.heapTotal_mb||"?","MB"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Uptime"}),c.jsxs("span",{className:"font-mono",children:[(i==null?void 0:i.uptime_hours)||"?","h"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Cached Markets"}),c.jsx("span",{className:"font-mono text-amber-400",children:(i==null?void 0:i.cachedMarkets)||0})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"PID"}),c.jsx("span",{className:"font-mono text-gray-400",children:(i==null?void 0:i.pid)||"?"})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Available Budget"}),c.jsxs("span",{className:"font-mono text-green-400",children:["$",((v.available||0)/100).toFixed(2)]})]})]})]})]}),c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsx("h3",{className:"font-semibold mb-3",children:"Trade History"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Market"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Qty"}),c.jsx("th",{children:"Entry"}),c.jsx("th",{children:"Exit"}),c.jsx("th",{children:"P&L"}),c.jsx("th",{children:"Type"}),c.jsx("th",{children:"Status"})]})}),c.jsx("tbody",{children:x.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:9,className:"text-center text-gray-500 py-8",children:"No trades yet — signals are generating, waiting for execution"})}):x.map((y,h)=>{const m=parseInt(y.pnl_cents)||0;return c.jsxs("tr",{children:[c.jsxs("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:[new Date(y.created_at).toLocaleDateString()," ",new Date(y.created_at).toLocaleTimeString()]}),c.jsx("td",{className:"max-w-[200px] truncate text-sm",children:y.title||y.ticker}),c.jsx("td",{children:c.jsx("span",{className:`badge ${y.side==="yes"?"bg-green":"bg-red"}`,children:(y.side||"").toUpperCase()})}),c.jsx("td",{className:"font-mono text-gray-400",children:y.count}),c.jsxs("td",{className:"font-mono text-gray-400",children:[y.price_cents,"c"]}),c.jsx("td",{className:"font-mono text-gray-400",children:y.exit_price?`${y.exit_price}c`:"—"}),c.jsx("td",{className:`font-mono font-bold ${m>0?"text-green-400":m<0?"text-red-400":"text-gray-500"}`,children:m!==0?`${m>0?"+":""}$${(m/100).toFixed(2)}`:"—"}),c.jsx("td",{className:"text-xs text-gray-500",children:y.signal_type}),c.jsx("td",{children:c.jsx("span",{className:`badge ${y.status==="open"?"bg-blue":y.status==="profit"?"bg-green":y.status==="stopped"?"bg-red":"bg-yellow"}`,children:y.status})})]},h)})})]})]})]})}function GQ(){return c.jsx(_k,{children:c.jsxs(yk,{children:[c.jsx(xt,{path:"/login",element:c.jsx(Ck,{})}),c.jsx(xt,{path:"/setup",element:c.jsx(Gk,{})}),c.jsxs(xt,{path:"/",element:c.jsx(Ik,{}),children:[c.jsx(xt,{index:!0,element:c.jsx(kQ,{})}),c.jsx(xt,{path:"markets",element:c.jsx(EQ,{})}),c.jsx(xt,{path:"positions",element:c.jsx($Q,{})}),c.jsx(xt,{path:"orders",element:c.jsx(TQ,{})}),c.jsx(xt,{path:"signals",element:c.jsx(HQ,{})}),c.jsx(xt,{path:"intelligence",element:c.jsx(KQ,{})}),c.jsx(xt,{path:"trading",element:c.jsx(VQ,{})}),c.jsx(xt,{path:"weather",element:c.jsx(CQ,{})}),c.jsx(xt,{path:"risk",element:c.jsx(BQ,{})}),c.jsx(xt,{path:"settings",element:c.jsx(UQ,{})})]})]})})}Rd.createRoot(document.getElementById("root")).render(c.jsx(GQ,{}));
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function zN(e,t){if(e){if(typeof e=="string")return am(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return am(e,t)}}function uQ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fQ(e){if(Array.isArray(e))return am(e)}function am(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function P1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function C(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?P1(Object(r),!0).forEach(function(n){Q(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Q(e,t,r){return t=UN(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UN(e){var t=dQ(e,"string");return La(t)=="symbol"?t:t+""}function dQ(e,t){if(La(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(La(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var pQ={xAxis:["bottom","top"],yAxis:["left","right"]},hQ={width:"100%",height:"100%"},WN={x:0,y:0};function Cl(e){return e}var mQ=function(t,r){return r==="horizontal"?t.x:r==="vertical"?t.y:r==="centric"?t.angle:t.radius},vQ=function(t,r,n,i){var a=r.find(function(d){return d&&d.index===n});if(a){if(t==="horizontal")return{x:a.coordinate,y:i.y};if(t==="vertical")return{x:i.x,y:a.coordinate};if(t==="centric"){var o=a.coordinate,s=i.radius;return C(C(C({},i),xe(i.cx,i.cy,s,o)),{},{angle:o,radius:s})}var l=a.coordinate,u=i.angle;return C(C(C({},i),xe(i.cx,i.cy,l,u)),{},{angle:u,radius:l})}return WN},Cf=function(t,r){var n=r.graphicalItems,i=r.dataStartIndex,a=r.dataEndIndex,o=(n??[]).reduce(function(s,l){var u=l.props.data;return u&&u.length?[].concat(Da(s),Da(u)):s},[]);return o.length>0?o:t&&t.length&&U(i)&&U(a)?t.slice(i,a+1):[]};function HN(e){return e==="number"?[0,"auto"]:void 0}var om=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,s=Cf(r,t);return n<0||!a||!a.length||n>=s.length?null:a.reduce(function(l,u){var d,f=(d=u.props.data)!==null&&d!==void 0?d:r;f&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(f=f.slice(t.dataStartIndex,t.dataEndIndex+1));var p;if(o.dataKey&&!o.allowDuplicatedCategory){var v=f===void 0?s:f;p=wc(v,o.dataKey,i)}else p=f&&f[n]||s[n];return p?[].concat(Da(l),[PO(u,p)]):l},[])},A1=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=mQ(a,n),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,d=DU(o,s,u,l);if(d>=0&&u){var f=u[d]&&u[d].value,p=om(t,r,d,f),v=vQ(n,s,d,a);return{activeTooltipIndex:d,activeLabel:f,activePayload:p,activeCoordinate:v}}return null},yQ=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,d=t.layout,f=t.children,p=t.stackOffset,v=wO(d,a);return n.reduce(function(g,x){var b,y=x.type.defaultProps!==void 0?C(C({},x.type.defaultProps),x.props):x.props,h=y.type,m=y.dataKey,S=y.allowDataOverflow,w=y.allowDuplicatedCategory,j=y.scale,_=y.ticks,O=y.includeHidden,k=y[o];if(g[k])return g;var A=Cf(t.data,{graphicalItems:i.filter(function(H){var q,ae=o in H.props?H.props[o]:(q=H.type.defaultProps)===null||q===void 0?void 0:q[o];return ae===k}),dataStartIndex:l,dataEndIndex:u}),$=A.length,E,I,L;Wq(y.domain,S,h)&&(E=wh(y.domain,null,S),v&&(h==="number"||j!=="auto")&&(L=Do(A,m,"category")));var M=HN(h);if(!E||E.length===0){var R,F=(R=y.domain)!==null&&R!==void 0?R:M;if(m){if(E=Do(A,m,h),h==="category"&&v){var T=NC(E);w&&T?(I=E,E=cu(0,$)):w||(E=eb(F,E,x).reduce(function(H,q){return H.indexOf(q)>=0?H:[].concat(Da(H),[q])},[]))}else if(h==="category")w?E=E.filter(function(H){return H!==""&&!J(H)}):E=eb(F,E,x).reduce(function(H,q){return H.indexOf(q)>=0||q===""||J(q)?H:[].concat(Da(H),[q])},[]);else if(h==="number"){var D=UU(A,i.filter(function(H){var q,ae,_e=o in H.props?H.props[o]:(q=H.type.defaultProps)===null||q===void 0?void 0:q[o],Ce="hide"in H.props?H.props.hide:(ae=H.type.defaultProps)===null||ae===void 0?void 0:ae.hide;return _e===k&&(O||!Ce)}),m,a,d);D&&(E=D)}v&&(h==="number"||j!=="auto")&&(L=Do(A,m,"category"))}else v?E=cu(0,$):s&&s[k]&&s[k].hasStack&&h==="number"?E=p==="expand"?[0,1]:NO(s[k].stackGroups,l,u):E=bO(A,i.filter(function(H){var q=o in H.props?H.props[o]:H.type.defaultProps[o],ae="hide"in H.props?H.props.hide:H.type.defaultProps.hide;return q===k&&(O||!ae)}),h,d,!0);if(h==="number")E=nm(f,E,k,a,_),F&&(E=wh(F,E,S));else if(h==="category"&&F){var B=F,K=E.every(function(H){return B.indexOf(H)>=0});K&&(E=B)}}return C(C({},g),{},Q({},k,C(C({},y),{},{axisType:a,domain:E,categoricalDomain:L,duplicateDomain:I,originalDomain:(b=y.domain)!==null&&b!==void 0?b:M,isCategorical:v,layout:d})))},{})},gQ=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,d=t.layout,f=t.children,p=Cf(t.data,{graphicalItems:n,dataStartIndex:l,dataEndIndex:u}),v=p.length,g=wO(d,a),x=-1;return n.reduce(function(b,y){var h=y.type.defaultProps!==void 0?C(C({},y.type.defaultProps),y.props):y.props,m=h[o],S=HN("number");if(!b[m]){x++;var w;return g?w=cu(0,v):s&&s[m]&&s[m].hasStack?(w=NO(s[m].stackGroups,l,u),w=nm(f,w,m,a)):(w=wh(S,bO(p,n.filter(function(j){var _,O,k=o in j.props?j.props[o]:(_=j.type.defaultProps)===null||_===void 0?void 0:_[o],A="hide"in j.props?j.props.hide:(O=j.type.defaultProps)===null||O===void 0?void 0:O.hide;return k===m&&!A}),"number",d),i.defaultProps.allowDataOverflow),w=nm(f,w,m,a)),C(C({},b),{},Q({},m,C(C({axisType:a},i.defaultProps),{},{hide:!0,orientation:It(pQ,"".concat(a,".").concat(x%2),null),domain:w,originalDomain:S,isCategorical:g,layout:d})))}return b},{})},xQ=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,d=t.children,f="".concat(i,"Id"),p=Xt(d,a),v={};return p&&p.length?v=yQ(t,{axes:p,graphicalItems:o,axisType:i,axisIdKey:f,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):o&&o.length&&(v=gQ(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:f,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),v},bQ=function(t){var r=sn(t),n=Ir(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:Av(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:qc(r,n)}},k1=function(t){var r=t.children,n=t.defaultShowTooltip,i=$t(r,Pa),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},wQ=function(t){return!t||!t.length?!1:t.some(function(r){var n=Dr(r&&r.type);return n&&n.indexOf("Bar")>=0})},E1=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},jQ=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,s=t.yAxisMap,l=s===void 0?{}:s,u=n.width,d=n.height,f=n.children,p=n.margin||{},v=$t(f,Pa),g=$t(f,ea),x=Object.keys(l).reduce(function(w,j){var _=l[j],O=_.orientation;return!_.mirror&&!_.hide?C(C({},w),{},Q({},O,w[O]+_.width)):w},{left:p.left||0,right:p.right||0}),b=Object.keys(o).reduce(function(w,j){var _=o[j],O=_.orientation;return!_.mirror&&!_.hide?C(C({},w),{},Q({},O,It(w,"".concat(O))+_.height)):w},{top:p.top||0,bottom:p.bottom||0}),y=C(C({},b),x),h=y.bottom;v&&(y.bottom+=v.props.height||Pa.defaultProps.height),g&&r&&(y=FU(y,i,n,r));var m=u-y.left-y.right,S=d-y.top-y.bottom;return C(C({brushBottom:h},y),{},{width:Math.max(m,0),height:Math.max(S,0)})},SQ=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},dy=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,s=o===void 0?["axis"]:o,l=t.axisComponents,u=t.legendContent,d=t.formatAxisMap,f=t.defaultProps,p=function(y,h){var m=h.graphicalItems,S=h.stackGroups,w=h.offset,j=h.updateId,_=h.dataStartIndex,O=h.dataEndIndex,k=y.barSize,A=y.layout,$=y.barGap,E=y.barCategoryGap,I=y.maxBarSize,L=E1(A),M=L.numericAxisName,R=L.cateAxisName,F=wQ(m),T=[];return m.forEach(function(D,B){var K=Cf(y.data,{graphicalItems:[D],dataStartIndex:_,dataEndIndex:O}),H=D.type.defaultProps!==void 0?C(C({},D.type.defaultProps),D.props):D.props,q=H.dataKey,ae=H.maxBarSize,_e=H["".concat(M,"Id")],Ce=H["".concat(R,"Id")],Bt={},yt=l.reduce(function(Ln,Dn){var Mf=h["".concat(Dn.axisType,"Map")],py=H["".concat(Dn.axisType,"Id")];Mf&&Mf[py]||Dn.axisType==="zAxis"||mi();var hy=Mf[py];return C(C({},Ln),{},Q(Q({},Dn.axisType,hy),"".concat(Dn.axisType,"Ticks"),Ir(hy)))},Bt),V=yt[R],ee=yt["".concat(R,"Ticks")],re=S&&S[_e]&&S[_e].hasStack&&QU(D,S[_e].stackGroups),z=Dr(D.type).indexOf("Bar")>=0,Ee=qc(V,ee),oe=[],Be=F&&RU({barSize:k,stackGroups:S,totalSize:SQ(yt,R)});if(z){var Fe,gt,Zr=J(ae)?I:ae,Oi=(Fe=(gt=qc(V,ee,!0))!==null&>!==void 0?gt:Zr)!==null&&Fe!==void 0?Fe:0;oe=BU({barGap:$,barCategoryGap:E,bandSize:Oi!==Ee?Oi:Ee,sizeList:Be[Ce],maxBarSize:Zr}),Oi!==Ee&&(oe=oe.map(function(Ln){return C(C({},Ln),{},{position:C(C({},Ln.position),{},{offset:Ln.position.offset-Oi/2})})}))}var el=D&&D.type&&D.type.getComposedData;el&&T.push({props:C(C({},el(C(C({},yt),{},{displayedData:K,props:y,dataKey:q,item:D,bandSize:Ee,barPosition:oe,offset:w,stackedData:re,layout:A,dataStartIndex:_,dataEndIndex:O}))),{},Q(Q(Q({key:D.key||"item-".concat(B)},M,yt[M]),R,yt[R]),"animationId",j)),childIndex:BC(D,y.children),item:D})}),T},v=function(y,h){var m=y.props,S=y.dataStartIndex,w=y.dataEndIndex,j=y.updateId;if(!Gg({props:m}))return null;var _=m.children,O=m.layout,k=m.stackOffset,A=m.data,$=m.reverseStackOrder,E=E1(O),I=E.numericAxisName,L=E.cateAxisName,M=Xt(_,n),R=XU(A,M,"".concat(I,"Id"),"".concat(L,"Id"),k,$),F=l.reduce(function(H,q){var ae="".concat(q.axisType,"Map");return C(C({},H),{},Q({},ae,xQ(m,C(C({},q),{},{graphicalItems:M,stackGroups:q.axisType===I&&R,dataStartIndex:S,dataEndIndex:w}))))},{}),T=jQ(C(C({},F),{},{props:m,graphicalItems:M}),h==null?void 0:h.legendBBox);Object.keys(F).forEach(function(H){F[H]=d(m,F[H],T,H.replace("Map",""),r)});var D=F["".concat(L,"Map")],B=bQ(D),K=p(m,C(C({},F),{},{dataStartIndex:S,dataEndIndex:w,updateId:j,graphicalItems:M,stackGroups:R,offset:T}));return C(C({formattedGraphicalItems:K,graphicalItems:M,offset:T,stackGroups:R},B),F)},g=function(b){function y(h){var m,S,w;return rQ(this,y),w=aQ(this,y,[h]),Q(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Q(w,"accessibilityManager",new Uq),Q(w,"handleLegendBBoxUpdate",function(j){if(j){var _=w.state,O=_.dataStartIndex,k=_.dataEndIndex,A=_.updateId;w.setState(C({legendBBox:j},v({props:w.props,dataStartIndex:O,dataEndIndex:k,updateId:A},C(C({},w.state),{},{legendBBox:j}))))}}),Q(w,"handleReceiveSyncEvent",function(j,_,O){if(w.props.syncId===j){if(O===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(_)}}),Q(w,"handleBrushChange",function(j){var _=j.startIndex,O=j.endIndex;if(_!==w.state.dataStartIndex||O!==w.state.dataEndIndex){var k=w.state.updateId;w.setState(function(){return C({dataStartIndex:_,dataEndIndex:O},v({props:w.props,dataStartIndex:_,dataEndIndex:O,updateId:k},w.state))}),w.triggerSyncEvent({dataStartIndex:_,dataEndIndex:O})}}),Q(w,"handleMouseEnter",function(j){var _=w.getMouseInfo(j);if(_){var O=C(C({},_),{},{isTooltipActive:!0});w.setState(O),w.triggerSyncEvent(O);var k=w.props.onMouseEnter;Z(k)&&k(O,j)}}),Q(w,"triggeredAfterMouseMove",function(j){var _=w.getMouseInfo(j),O=_?C(C({},_),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(O),w.triggerSyncEvent(O);var k=w.props.onMouseMove;Z(k)&&k(O,j)}),Q(w,"handleItemMouseEnter",function(j){w.setState(function(){return{isTooltipActive:!0,activeItem:j,activePayload:j.tooltipPayload,activeCoordinate:j.tooltipPosition||{x:j.cx,y:j.cy}}})}),Q(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),Q(w,"handleMouseMove",function(j){j.persist(),w.throttleTriggeredAfterMouseMove(j)}),Q(w,"handleMouseLeave",function(j){w.throttleTriggeredAfterMouseMove.cancel();var _={isTooltipActive:!1};w.setState(_),w.triggerSyncEvent(_);var O=w.props.onMouseLeave;Z(O)&&O(_,j)}),Q(w,"handleOuterEvent",function(j){var _=RC(j),O=It(w.props,"".concat(_));if(_&&Z(O)){var k,A;/.*touch.*/i.test(_)?A=w.getMouseInfo(j.changedTouches[0]):A=w.getMouseInfo(j),O((k=A)!==null&&k!==void 0?k:{},j)}}),Q(w,"handleClick",function(j){var _=w.getMouseInfo(j);if(_){var O=C(C({},_),{},{isTooltipActive:!0});w.setState(O),w.triggerSyncEvent(O);var k=w.props.onClick;Z(k)&&k(O,j)}}),Q(w,"handleMouseDown",function(j){var _=w.props.onMouseDown;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"handleMouseUp",function(j){var _=w.props.onMouseUp;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"handleTouchMove",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(j.changedTouches[0])}),Q(w,"handleTouchStart",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.handleMouseDown(j.changedTouches[0])}),Q(w,"handleTouchEnd",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.handleMouseUp(j.changedTouches[0])}),Q(w,"handleDoubleClick",function(j){var _=w.props.onDoubleClick;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"handleContextMenu",function(j){var _=w.props.onContextMenu;if(Z(_)){var O=w.getMouseInfo(j);_(O,j)}}),Q(w,"triggerSyncEvent",function(j){w.props.syncId!==void 0&&Id.emit(Ld,w.props.syncId,j,w.eventEmitterSymbol)}),Q(w,"applySyncEvent",function(j){var _=w.props,O=_.layout,k=_.syncMethod,A=w.state.updateId,$=j.dataStartIndex,E=j.dataEndIndex;if(j.dataStartIndex!==void 0||j.dataEndIndex!==void 0)w.setState(C({dataStartIndex:$,dataEndIndex:E},v({props:w.props,dataStartIndex:$,dataEndIndex:E,updateId:A},w.state)));else if(j.activeTooltipIndex!==void 0){var I=j.chartX,L=j.chartY,M=j.activeTooltipIndex,R=w.state,F=R.offset,T=R.tooltipTicks;if(!F)return;if(typeof k=="function")M=k(T,j);else if(k==="value"){M=-1;for(var D=0;D<T.length;D++)if(T[D].value===j.activeLabel){M=D;break}}var B=C(C({},F),{},{x:F.left,y:F.top}),K=Math.min(I,B.x+B.width),H=Math.min(L,B.y+B.height),q=T[M]&&T[M].value,ae=om(w.state,w.props.data,M),_e=T[M]?{x:O==="horizontal"?T[M].coordinate:K,y:O==="horizontal"?H:T[M].coordinate}:WN;w.setState(C(C({},j),{},{activeLabel:q,activeCoordinate:_e,activePayload:ae,activeTooltipIndex:M}))}else w.setState(j)}),Q(w,"renderCursor",function(j){var _,O=w.state,k=O.isTooltipActive,A=O.activeCoordinate,$=O.activePayload,E=O.offset,I=O.activeTooltipIndex,L=O.tooltipAxisBandSize,M=w.getTooltipEventType(),R=(_=j.props.active)!==null&&_!==void 0?_:k,F=w.props.layout,T=j.key||"_recharts-cursor";return P.createElement(Xq,{key:T,activeCoordinate:A,activePayload:$,activeTooltipIndex:I,chartName:r,element:j,isActive:R,layout:F,offset:E,tooltipAxisBandSize:L,tooltipEventType:M})}),Q(w,"renderPolarAxis",function(j,_,O){var k=It(j,"type.axisType"),A=It(w.state,"".concat(k,"Map")),$=j.type.defaultProps,E=$!==void 0?C(C({},$),j.props):j.props,I=A&&A[E["".concat(k,"Id")]];return N.cloneElement(j,C(C({},I),{},{className:te(k,I.className),key:j.key||"".concat(_,"-").concat(O),ticks:Ir(I,!0)}))}),Q(w,"renderPolarGrid",function(j){var _=j.props,O=_.radialLines,k=_.polarAngles,A=_.polarRadius,$=w.state,E=$.radiusAxisMap,I=$.angleAxisMap,L=sn(E),M=sn(I),R=M.cx,F=M.cy,T=M.innerRadius,D=M.outerRadius;return N.cloneElement(j,{polarAngles:Array.isArray(k)?k:Ir(M,!0).map(function(B){return B.coordinate}),polarRadius:Array.isArray(A)?A:Ir(L,!0).map(function(B){return B.coordinate}),cx:R,cy:F,innerRadius:T,outerRadius:D,key:j.key||"polar-grid",radialLines:O})}),Q(w,"renderLegend",function(){var j=w.state.formattedGraphicalItems,_=w.props,O=_.children,k=_.width,A=_.height,$=w.props.margin||{},E=k-($.left||0)-($.right||0),I=gO({children:O,formattedGraphicalItems:j,legendWidth:E,legendContent:u});if(!I)return null;var L=I.item,M=N1(I,qq);return N.cloneElement(L,C(C({},M),{},{chartWidth:k,chartHeight:A,margin:$,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),Q(w,"renderTooltip",function(){var j,_=w.props,O=_.children,k=_.accessibilityLayer,A=$t(O,bt);if(!A)return null;var $=w.state,E=$.isTooltipActive,I=$.activeCoordinate,L=$.activePayload,M=$.activeLabel,R=$.offset,F=(j=A.props.active)!==null&&j!==void 0?j:E;return N.cloneElement(A,{viewBox:C(C({},R),{},{x:R.left,y:R.top}),active:F,label:M,payload:F?L:[],coordinate:I,accessibilityLayer:k})}),Q(w,"renderBrush",function(j){var _=w.props,O=_.margin,k=_.data,A=w.state,$=A.offset,E=A.dataStartIndex,I=A.dataEndIndex,L=A.updateId;return N.cloneElement(j,{key:j.key||"_recharts-brush",onChange:Al(w.handleBrushChange,j.props.onChange),data:k,x:U(j.props.x)?j.props.x:$.left,y:U(j.props.y)?j.props.y:$.top+$.height+$.brushBottom-(O.bottom||0),width:U(j.props.width)?j.props.width:$.width,startIndex:E,endIndex:I,updateId:"brush-".concat(L)})}),Q(w,"renderReferenceElement",function(j,_,O){if(!j)return null;var k=w,A=k.clipPathId,$=w.state,E=$.xAxisMap,I=$.yAxisMap,L=$.offset,M=j.type.defaultProps||{},R=j.props,F=R.xAxisId,T=F===void 0?M.xAxisId:F,D=R.yAxisId,B=D===void 0?M.yAxisId:D;return N.cloneElement(j,{key:j.key||"".concat(_,"-").concat(O),xAxis:E[T],yAxis:I[B],viewBox:{x:L.left,y:L.top,width:L.width,height:L.height},clipPathId:A})}),Q(w,"renderActivePoints",function(j){var _=j.item,O=j.activePoint,k=j.basePoint,A=j.childIndex,$=j.isRange,E=[],I=_.props.key,L=_.item.type.defaultProps!==void 0?C(C({},_.item.type.defaultProps),_.item.props):_.item.props,M=L.activeDot,R=L.dataKey,F=C(C({index:A,dataKey:R,cx:O.x,cy:O.y,r:4,fill:ey(_.item),strokeWidth:2,stroke:"#fff",payload:O.payload,value:O.value},X(M,!1)),jc(M));return E.push(y.renderActiveDot(M,F,"".concat(I,"-activePoint-").concat(A))),k?E.push(y.renderActiveDot(M,C(C({},F),{},{cx:k.x,cy:k.y}),"".concat(I,"-basePoint-").concat(A))):$&&E.push(null),E}),Q(w,"renderGraphicChild",function(j,_,O){var k=w.filterFormatItem(j,_,O);if(!k)return null;var A=w.getTooltipEventType(),$=w.state,E=$.isTooltipActive,I=$.tooltipAxis,L=$.activeTooltipIndex,M=$.activeLabel,R=w.props.children,F=$t(R,bt),T=k.props,D=T.points,B=T.isRange,K=T.baseLine,H=k.item.type.defaultProps!==void 0?C(C({},k.item.type.defaultProps),k.item.props):k.item.props,q=H.activeDot,ae=H.hide,_e=H.activeBar,Ce=H.activeShape,Bt=!!(!ae&&E&&F&&(q||_e||Ce)),yt={};A!=="axis"&&F&&F.props.trigger==="click"?yt={onClick:Al(w.handleItemMouseEnter,j.props.onClick)}:A!=="axis"&&(yt={onMouseLeave:Al(w.handleItemMouseLeave,j.props.onMouseLeave),onMouseEnter:Al(w.handleItemMouseEnter,j.props.onMouseEnter)});var V=N.cloneElement(j,C(C({},k.props),yt));function ee(Dn){return typeof I.dataKey=="function"?I.dataKey(Dn.payload):null}if(Bt)if(L>=0){var re,z;if(I.dataKey&&!I.allowDuplicatedCategory){var Ee=typeof I.dataKey=="function"?ee:"payload.".concat(I.dataKey.toString());re=wc(D,Ee,M),z=B&&K&&wc(K,Ee,M)}else re=D==null?void 0:D[L],z=B&&K&&K[L];if(Ce||_e){var oe=j.props.activeIndex!==void 0?j.props.activeIndex:L;return[N.cloneElement(j,C(C(C({},k.props),yt),{},{activeIndex:oe})),null,null]}if(!J(re))return[V].concat(Da(w.renderActivePoints({item:k,activePoint:re,basePoint:z,childIndex:L,isRange:B})))}else{var Be,Fe=(Be=w.getItemByXY(w.state.activeCoordinate))!==null&&Be!==void 0?Be:{graphicalItem:V},gt=Fe.graphicalItem,Zr=gt.item,Oi=Zr===void 0?j:Zr,el=gt.childIndex,Ln=C(C(C({},k.props),yt),{},{activeIndex:el});return[N.cloneElement(Oi,Ln),null,null]}return B?[V,null,null]:[V,null]}),Q(w,"renderCustomized",function(j,_,O){return N.cloneElement(j,C(C({key:"recharts-customized-".concat(O)},w.props),w.state))}),Q(w,"renderMap",{CartesianGrid:{handler:Cl,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:Cl},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:Cl},YAxis:{handler:Cl},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((m=h.id)!==null&&m!==void 0?m:Ya("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=g_(w.triggeredAfterMouseMove,(S=h.throttleDelay)!==null&&S!==void 0?S:1e3/60),w.state={},w}return lQ(y,b),iQ(y,[{key:"componentDidMount",value:function(){var m,S;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(m=this.props.margin.left)!==null&&m!==void 0?m:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var m=this.props,S=m.children,w=m.data,j=m.height,_=m.layout,O=$t(S,bt);if(O){var k=O.props.defaultIndex;if(!(typeof k!="number"||k<0||k>this.state.tooltipTicks.length-1)){var A=this.state.tooltipTicks[k]&&this.state.tooltipTicks[k].value,$=om(this.state,w,k,A),E=this.state.tooltipTicks[k].coordinate,I=(this.state.offset.top+j)/2,L=_==="horizontal",M=L?{x:E,y:I}:{y:E,x:I},R=this.state.formattedGraphicalItems.find(function(T){var D=T.item;return D.type.name==="Scatter"});R&&(M=C(C({},M),R.props.points[k].tooltipPosition),$=R.props.points[k].tooltipPayload);var F={activeTooltipIndex:k,isTooltipActive:!0,activeLabel:A,activePayload:$,activeCoordinate:M};this.setState(F),this.renderCursor(O),this.accessibilityManager.setIndex(k)}}}},{key:"getSnapshotBeforeUpdate",value:function(m,S){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==S.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==m.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==m.margin){var w,j;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(j=this.props.margin.top)!==null&&j!==void 0?j:0}})}return null}},{key:"componentDidUpdate",value:function(m){Lp([$t(m.children,bt)],[$t(this.props.children,bt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var m=$t(this.props.children,bt);if(m&&typeof m.props.shared=="boolean"){var S=m.props.shared?"axis":"item";return s.indexOf(S)>=0?S:a}return a}},{key:"getMouseInfo",value:function(m){if(!this.container)return null;var S=this.container,w=S.getBoundingClientRect(),j=fB(w),_={chartX:Math.round(m.pageX-j.left),chartY:Math.round(m.pageY-j.top)},O=w.width/S.offsetWidth||1,k=this.inRange(_.chartX,_.chartY,O);if(!k)return null;var A=this.state,$=A.xAxisMap,E=A.yAxisMap,I=this.getTooltipEventType(),L=A1(this.state,this.props.data,this.props.layout,k);if(I!=="axis"&&$&&E){var M=sn($).scale,R=sn(E).scale,F=M&&M.invert?M.invert(_.chartX):null,T=R&&R.invert?R.invert(_.chartY):null;return C(C({},_),{},{xValue:F,yValue:T},L)}return L?C(C({},_),L):null}},{key:"inRange",value:function(m,S){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,j=this.props.layout,_=m/w,O=S/w;if(j==="horizontal"||j==="vertical"){var k=this.state.offset,A=_>=k.left&&_<=k.left+k.width&&O>=k.top&&O<=k.top+k.height;return A?{x:_,y:O}:null}var $=this.state,E=$.angleAxisMap,I=$.radiusAxisMap;if(E&&I){var L=sn(E);return nb({x:_,y:O},L)}return null}},{key:"parseEventsOfWrapper",value:function(){var m=this.props.children,S=this.getTooltipEventType(),w=$t(m,bt),j={};w&&S==="axis"&&(w.props.trigger==="click"?j={onClick:this.handleClick}:j={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var _=jc(this.props,this.handleOuterEvent);return C(C({},_),j)}},{key:"addListener",value:function(){Id.on(Ld,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){Id.removeListener(Ld,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(m,S,w){for(var j=this.state.formattedGraphicalItems,_=0,O=j.length;_<O;_++){var k=j[_];if(k.item===m||k.props.key===m.key||S===Dr(k.item.type)&&w===k.childIndex)return k}return null}},{key:"renderClipPath",value:function(){var m=this.clipPathId,S=this.state.offset,w=S.left,j=S.top,_=S.height,O=S.width;return P.createElement("defs",null,P.createElement("clipPath",{id:m},P.createElement("rect",{x:w,y:j,height:_,width:O})))}},{key:"getXScales",value:function(){var m=this.state.xAxisMap;return m?Object.entries(m).reduce(function(S,w){var j=O1(w,2),_=j[0],O=j[1];return C(C({},S),{},Q({},_,O.scale))},{}):null}},{key:"getYScales",value:function(){var m=this.state.yAxisMap;return m?Object.entries(m).reduce(function(S,w){var j=O1(w,2),_=j[0],O=j[1];return C(C({},S),{},Q({},_,O.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(m){var S;return(S=this.state.xAxisMap)===null||S===void 0||(S=S[m])===null||S===void 0?void 0:S.scale}},{key:"getYScaleByAxisId",value:function(m){var S;return(S=this.state.yAxisMap)===null||S===void 0||(S=S[m])===null||S===void 0?void 0:S.scale}},{key:"getItemByXY",value:function(m){var S=this.state,w=S.formattedGraphicalItems,j=S.activeItem;if(w&&w.length)for(var _=0,O=w.length;_<O;_++){var k=w[_],A=k.props,$=k.item,E=$.type.defaultProps!==void 0?C(C({},$.type.defaultProps),$.props):$.props,I=Dr($.type);if(I==="Bar"){var L=(A.data||[]).find(function(T){return QH(m,T)});if(L)return{graphicalItem:k,payload:L}}else if(I==="RadialBar"){var M=(A.data||[]).find(function(T){return nb(m,T)});if(M)return{graphicalItem:k,payload:M}}else if(Nf(k,j)||Pf(k,j)||Ms(k,j)){var R=BV({graphicalItem:k,activeTooltipItem:j,itemData:E.data}),F=E.activeIndex===void 0?R:E.activeIndex;return{graphicalItem:C(C({},k),{},{childIndex:F}),payload:Ms(k,j)?E.data[R]:k.props.data[R]}}}return null}},{key:"render",value:function(){var m=this;if(!Gg(this))return null;var S=this.props,w=S.children,j=S.className,_=S.width,O=S.height,k=S.style,A=S.compact,$=S.title,E=S.desc,I=N1(S,Qq),L=X(I,!1);if(A)return P.createElement(l1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},P.createElement(Rp,Vi({},L,{width:_,height:O,title:$,desc:E}),this.renderClipPath(),Xg(w,this.renderMap)));if(this.props.accessibilityLayer){var M,R;L.tabIndex=(M=this.props.tabIndex)!==null&&M!==void 0?M:0,L.role=(R=this.props.role)!==null&&R!==void 0?R:"application",L.onKeyDown=function(T){m.accessibilityManager.keyboardEvent(T)},L.onFocus=function(){m.accessibilityManager.focus()}}var F=this.parseEventsOfWrapper();return P.createElement(l1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},P.createElement("div",Vi({className:te("recharts-wrapper",j),style:C({position:"relative",cursor:"default",width:_,height:O},k)},F,{ref:function(D){m.container=D}}),P.createElement(Rp,Vi({},L,{width:_,height:O,title:$,desc:E,style:hQ}),this.renderClipPath(),Xg(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(N.Component);Q(g,"displayName",r),Q(g,"defaultProps",C({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},f)),Q(g,"getDerivedStateFromProps",function(b,y){var h=b.dataKey,m=b.data,S=b.children,w=b.width,j=b.height,_=b.layout,O=b.stackOffset,k=b.margin,A=y.dataStartIndex,$=y.dataEndIndex;if(y.updateId===void 0){var E=k1(b);return C(C(C({},E),{},{updateId:0},v(C(C({props:b},E),{},{updateId:0}),y)),{},{prevDataKey:h,prevData:m,prevWidth:w,prevHeight:j,prevLayout:_,prevStackOffset:O,prevMargin:k,prevChildren:S})}if(h!==y.prevDataKey||m!==y.prevData||w!==y.prevWidth||j!==y.prevHeight||_!==y.prevLayout||O!==y.prevStackOffset||!Ji(k,y.prevMargin)){var I=k1(b),L={chartX:y.chartX,chartY:y.chartY,isTooltipActive:y.isTooltipActive},M=C(C({},A1(y,m,_)),{},{updateId:y.updateId+1}),R=C(C(C({},I),L),M);return C(C(C({},R),v(C({props:b},R),y)),{},{prevDataKey:h,prevData:m,prevWidth:w,prevHeight:j,prevLayout:_,prevStackOffset:O,prevMargin:k,prevChildren:S})}if(!Lp(S,y.prevChildren)){var F,T,D,B,K=$t(S,Pa),H=K&&(F=(T=K.props)===null||T===void 0?void 0:T.startIndex)!==null&&F!==void 0?F:A,q=K&&(D=(B=K.props)===null||B===void 0?void 0:B.endIndex)!==null&&D!==void 0?D:$,ae=H!==A||q!==$,_e=!J(m),Ce=_e&&!ae?y.updateId:y.updateId+1;return C(C({updateId:Ce},v(C(C({props:b},y),{},{updateId:Ce,dataStartIndex:H,dataEndIndex:q}),y)),{},{prevChildren:S,dataStartIndex:H,dataEndIndex:q})}return null}),Q(g,"renderActiveDot",function(b,y,h){var m;return N.isValidElement(b)?m=N.cloneElement(b,y):Z(b)?m=b(y):m=P.createElement(wf,y),P.createElement(ie,{className:"recharts-active-dot",key:h},m)});var x=N.forwardRef(function(y,h){return P.createElement(g,Vi({},y,{ref:h}))});return x.displayName=g.displayName,x},KN=dy({chartName:"BarChart",GraphicalChild:Cn,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Mn},{axisType:"yAxis",AxisComp:In}],formatAxisMap:sN}),VN=dy({chartName:"PieChart",GraphicalChild:Nr,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:Of},{axisType:"radiusAxis",AxisComp:Sf}],formatAxisMap:sW,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}}),GN=dy({chartName:"AreaChart",GraphicalChild:Qr,axisComponents:[{axisType:"xAxis",AxisComp:Mn},{axisType:"yAxis",AxisComp:In}],formatAxisMap:sN});function Ml({cents:e}){const t=Number(e||0),r=(t/100).toFixed(2);return t>0?c.jsxs("span",{className:"text-green-400 font-mono font-bold",children:["+$",r]}):t<0?c.jsxs("span",{className:"text-red-400 font-mono font-bold",children:["-$",Math.abs(t/100).toFixed(2)]}):c.jsx("span",{className:"text-gray-500 font-mono",children:"$0.00"})}function $1({wins:e,losses:t}){const r=e+t;if(!r)return c.jsx("span",{className:"text-gray-500",children:"—"});const n=(e/r*100).toFixed(0);return c.jsxs("span",{className:n>=80?"text-green-400":n>=50?"text-amber-400":"text-red-400",children:[e,"/",r," (",n,"%)"]})}function T1({wins:e,losses:t,pnl:r}){const n=e+t,i=n>0?e/n:0;return i>=.9&&r>0?c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-green-500/20 text-green-400 border border-green-500/30",children:"ADD MORE"}):i>=.65&&r>0?c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-amber-500/20 text-amber-400 border border-amber-500/30",children:"HOLD"}):r<0?c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-red-500/20 text-red-400 border border-red-500/30",children:"REDUCE"}):c.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold bg-gray-500/20 text-gray-400 border border-gray-600",children:"WATCH"})}function _Q({opportunities:e}){const t=e||[];if(!t.length)return c.jsxs("div",{className:"card border border-gray-700/50 bg-gradient-to-br from-gray-800/30 to-transparent",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[c.jsx("span",{className:"text-lg",children:"🔍"}),c.jsx("h2",{className:"font-semibold",children:"Best Opportunities Right Now"})]}),c.jsx("p",{className:"text-gray-500 text-sm text-center py-6",children:"No fresh signals — waiting for next pipeline cycle..."})]});const r=[{bg:"from-amber-500/15 to-amber-500/5",border:"border-amber-500/30",medal:"🥇",rank:"bg-amber-500/20 text-amber-400"},{bg:"from-gray-400/10 to-gray-400/5",border:"border-gray-400/30",medal:"🥈",rank:"bg-gray-400/20 text-gray-300"},{bg:"from-orange-700/10 to-orange-700/5",border:"border-orange-700/30",medal:"🥉",rank:"bg-orange-700/20 text-orange-400"}];return c.jsxs("div",{className:"card border border-amber-500/20 bg-gradient-to-br from-amber-500/5 via-transparent to-green-500/5",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[c.jsx("span",{className:"text-lg",children:"🎯"}),c.jsx("h2",{className:"font-semibold",children:"Best Opportunities Right Now"}),c.jsx("span",{className:"ml-auto text-[10px] text-gray-500 uppercase font-medium",children:"Live Signals"})]}),c.jsx("div",{className:"space-y-3",children:t.map((n,i)=>{const a=r[i]||r[2],o=n.hist_trades>0;return c.jsx("div",{className:`rounded-xl p-4 bg-gradient-to-r ${a.bg} border ${a.border}`,children:c.jsxs("div",{className:"flex items-start gap-3",children:[c.jsx("span",{className:"text-2xl mt-1",children:a.medal}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("div",{className:"flex items-center gap-2 mb-1",children:c.jsx("a",{href:n.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-semibold text-gray-100 hover:text-amber-400 truncate transition",children:n.title})}),c.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-2",children:[c.jsxs("span",{className:`px-2 py-0.5 rounded text-[10px] font-bold ${n.direction==="NO"?"bg-red-500/20 text-red-400 border border-red-500/30":"bg-green-500/20 text-green-400 border border-green-500/30"}`,children:["BUY ",n.direction]}),c.jsxs("span",{className:"text-xs text-gray-400",children:["Edge: ",c.jsxs("span",{className:"text-amber-400 font-bold",children:[n.edge_pct,"%"]})]}),c.jsxs("span",{className:"text-xs text-gray-400",children:["Conf: ",c.jsxs("span",{className:"text-blue-400 font-bold",children:[n.confidence,"%"]})]}),n.price_cents>0&&c.jsxs("span",{className:"text-xs text-gray-400",children:["Price: ",c.jsxs("span",{className:"font-mono text-gray-200",children:[n.price_cents,"¢"]})]}),o&&c.jsxs("span",{className:"text-xs text-gray-400",children:["History: ",c.jsxs("span",{className:`font-bold ${parseFloat(n.hist_wr)>=80?"text-green-400":parseFloat(n.hist_wr)>=50?"text-amber-400":"text-red-400"}`,children:[n.hist_wr,"% WR"]}),c.jsxs("span",{className:"text-gray-500 ml-1",children:["(",n.hist_trades," trades, ",n.hist_pnl/100>=0?"+":"","$",(n.hist_pnl/100).toFixed(0),")"]})]}),!o&&c.jsx("span",{className:"text-[10px] text-gray-600 italic",children:"New market — no history"})]}),c.jsx("p",{className:"text-[11px] text-gray-400 leading-relaxed",children:n.why})]})]})},n.ticker)})})]})}function OQ({topMarkets:e,seedMoney:t,balance:r}){const n=(e||[]).slice(0,3);if(!n.length)return null;const i=n.reduce((u,d)=>u+d.wins/(d.wins+d.losses),0)/n.length*100,a=n.length>0?Math.round(n.reduce((u,d)=>{const f=d.wins/(d.wins+d.losses||1);return u+(f>=.9?95:80)},0)/n.length):95,o=t?t/100:5e4,s=r?r/100:o,l=o>0?(s-o)/o*100:0;return c.jsxs("div",{className:"card border border-green-500/15 bg-gradient-to-br from-green-500/5 via-transparent to-amber-500/5",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[c.jsx("span",{className:"text-lg",children:"⚡"}),c.jsx("h2",{className:"font-semibold",children:"Winning Strategy — Live Flow"})]}),c.jsx("div",{className:"flex items-center justify-between gap-2 mb-5",children:[{icon:"🏦",label:`Start: $${o.toLocaleString()}`,sub:`Now $${s.toLocaleString()} (${l>=0?"+":""}${l.toFixed(1)}%)`,color:"from-cyan-500/20 to-cyan-500/5",border:"border-cyan-500/30",isStart:!0},{icon:"→",isArrow:!0},{icon:"📡",label:"Signal Found",sub:"AI scans 135 markets",color:"from-blue-500/20 to-blue-500/5",border:"border-blue-500/30"},{icon:"→",isArrow:!0},{icon:"🎯",label:`Buy NO at ${a}¢`,sub:"High-prob event",color:"from-amber-500/20 to-amber-500/5",border:"border-amber-500/30"},{icon:"→",isArrow:!0},{icon:"⏱️",label:"Hold 5min–2hr",sub:"TP +3¢ / SL -5¢",color:"from-purple-500/20 to-purple-500/5",border:"border-purple-500/30"},{icon:"→",isArrow:!0},{icon:"💰",label:`Collect ${100-a}¢`,sub:`${i.toFixed(0)}% of the time`,color:"from-green-500/20 to-green-500/5",border:"border-green-500/30"}].map((u,d)=>u.isArrow?c.jsx("div",{className:"text-gray-600 text-lg animate-pulse",children:"→"},d):c.jsxs("div",{className:`flex-1 rounded-xl p-3 bg-gradient-to-b ${u.color} border ${u.border} text-center ${u.isStart?"ring-1 ring-cyan-500/30":""}`,children:[c.jsx("div",{className:"text-2xl mb-1",children:u.icon}),c.jsx("p",{className:`text-xs font-semibold ${u.isStart?"text-cyan-300":"text-gray-200"}`,children:u.label}),c.jsx("p",{className:`text-[10px] ${u.isStart&&l>=0?"text-green-500":u.isStart?"text-red-400":"text-gray-500"}`,children:u.sub})]},d))}),c.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-3 text-center border border-gray-700",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Cost Per Trade"}),c.jsxs("p",{className:"text-lg font-bold text-amber-400",children:[a,"¢"]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"buying NO side"})]}),c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-3 text-center border border-gray-700",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Profit on Win"}),c.jsxs("p",{className:"text-lg font-bold text-green-400",children:[100-a,"¢"]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"per contract"})]}),c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-3 text-center border border-gray-700",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Return Multiple"}),c.jsxs("p",{className:"text-lg font-bold text-green-400",children:[((100-a)/a*100).toFixed(0),"%"]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"per winning trade"})]})]})]})}function NQ({topMarkets:e,worstMarkets:t,strategies:r}){const n=(e||[]).filter(l=>l.wins/(l.wins+l.losses||1)>=.9&&l.pnl>0),i=(t||[]).filter(l=>l.pnl<-5e3),a=(r||[]).filter(l=>l.pnl<-1e4&&l.win_rate<20).slice(0,3),o=[];n.length>0&&o.push({priority:"HIGH",color:"green",icon:"🚀",title:`Double down on ${n.length} near-certain markets`,detail:n.slice(0,2).map(l=>{var u;return((u=l.title)==null?void 0:u.split("?")[0])||l.ticker}).join(", "),reason:`${n.length} markets have 90%+ win rate — the edge is proven`}),i.length>0&&o.push({priority:"HIGH",color:"red",icon:"🛑",title:`Exit ${i.length} bleeding market(s)`,detail:i.slice(0,2).map(l=>{var u;return((u=l.title)==null?void 0:u.split("?")[0])||l.ticker}).join(", "),reason:`0% win rate, losing $${Math.abs(i.reduce((l,u)=>l+u.pnl,0)/100).toFixed(0)} total`}),a.length>0&&o.push({priority:"MED",color:"amber",icon:"⚙️",title:`Consider disabling ${a.length} strategy(ies)`,detail:a.map(l=>l.name).join(", "),reason:"Sub-20% win rate — these are coin flips minus fees"}),o.push({priority:"INFO",color:"blue",icon:"📊",title:"Keep hyper-trading high-prob NO markets",detail:"The 95¢+ NO strategy is the #1 edge — scale it up",reason:"Compounding small spreads at 99%+ win rate = consistent returns"});const s={green:{bg:"bg-green-500/10",border:"border-green-500/25",text:"text-green-400",badge:"bg-green-500/20"},red:{bg:"bg-red-500/10",border:"border-red-500/25",text:"text-red-400",badge:"bg-red-500/20"},amber:{bg:"bg-amber-500/10",border:"border-amber-500/25",text:"text-amber-400",badge:"bg-amber-500/20"},blue:{bg:"bg-blue-500/10",border:"border-blue-500/25",text:"text-blue-400",badge:"bg-blue-500/20"}};return c.jsxs("div",{className:"card border border-amber-500/15 bg-gradient-to-br from-amber-500/5 to-transparent",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[c.jsx("span",{className:"text-lg",children:"🎯"}),c.jsx("h2",{className:"font-semibold",children:"What To Do Next"})]}),c.jsx("div",{className:"space-y-3",children:o.map((l,u)=>{const d=s[l.color];return c.jsxs("div",{className:`rounded-xl p-3 ${d.bg} border ${d.border} flex gap-3`,children:[c.jsx("span",{className:"text-xl mt-0.5",children:l.icon}),c.jsxs("div",{className:"flex-1",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[c.jsx("span",{className:`text-[9px] font-bold px-1.5 py-0.5 rounded ${d.badge} ${d.text} uppercase`,children:l.priority}),c.jsx("span",{className:`text-sm font-semibold ${d.text}`,children:l.title})]}),c.jsx("p",{className:"text-xs text-gray-300",children:l.detail}),c.jsx("p",{className:"text-[10px] text-gray-500 mt-1",children:l.reason})]})]},u)})})]})}function PQ({strategies:e}){const t=[...e||[]].sort((n,i)=>i.pnl-n.pnl).slice(0,10);if(!t.length)return null;Math.max(...t.map(n=>Math.abs(n.pnl)));const r=t.map(n=>({name:n.name,pnl:n.pnl/100,fill:n.pnl>=0?"#22c55e":"#ef4444"}));return c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"📈"}),c.jsx("h2",{className:"font-semibold",children:"Strategy P&L — Top 10"})]}),c.jsx(va,{width:"100%",height:250,children:c.jsxs(KN,{data:r,layout:"vertical",margin:{left:70,right:20},children:[c.jsx(fy,{strokeDasharray:"3 3",stroke:"#1f2937",horizontal:!1}),c.jsx(Mn,{type:"number",stroke:"#6b7280",tickFormatter:n=>`$${n}`}),c.jsx(In,{type:"category",dataKey:"name",stroke:"#6b7280",tick:{fontSize:11},width:65}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8},formatter:n=>[`$${n.toFixed(2)}`,"P&L"]}),c.jsx(Cn,{dataKey:"pnl",radius:[0,4,4,0],children:r.map((n,i)=>c.jsx(di,{fill:n.fill},i))})]})})]})}function AQ({todayWins:e,todayLosses:t}){const r=(e||0)+(t||0);if(!r)return null;const n=(e/r*100).toFixed(1),i=[{name:"Wins",value:e,fill:"#22c55e"},{name:"Losses",value:t,fill:"#ef4444"}];return c.jsxs("div",{className:"card flex flex-col items-center justify-center",children:[c.jsx("h3",{className:"text-xs text-gray-500 uppercase mb-2",children:"Today's Win Rate"}),c.jsxs("div",{className:"relative",style:{width:140,height:140},children:[c.jsx(va,{width:"100%",height:"100%",children:c.jsx(VN,{children:c.jsx(Nr,{data:i,innerRadius:45,outerRadius:65,paddingAngle:2,dataKey:"value",startAngle:90,endAngle:-270,children:i.map((a,o)=>c.jsx(di,{fill:a.fill},o))})})}),c.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[c.jsxs("span",{className:`text-2xl font-bold ${Number(n)>=50?"text-green-400":"text-red-400"}`,children:[n,"%"]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[r.toLocaleString()," trades"]})]})]}),c.jsxs("div",{className:"flex gap-4 mt-2 text-xs",children:[c.jsxs("span",{className:"text-green-400",children:[e==null?void 0:e.toLocaleString()," W"]}),c.jsxs("span",{className:"text-red-400",children:[t==null?void 0:t.toLocaleString()," L"]})]})]})}function kQ(){var d;const[e,t]=N.useState(null),[r,n]=N.useState(!0);N.useEffect(()=>{i();const f=setInterval(i,3e4);return()=>clearInterval(f)},[]);async function i(){try{const f=await ht("/dashboard");t(f)}catch{}n(!1)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const a=e||{},o=(a.pnl_history||[]).map((f,p)=>({day:p+1,pnl:f})),s=a.today_trades>0?(a.today_wins/a.today_trades*100).toFixed(1):"0",l=(a.strategies||[]).filter(f=>f.pnl>0).slice(0,5),u=(a.strategies||[]).filter(f=>f.pnl<0).slice(-5).reverse();return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Dashboard"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Ken event contracts overview"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`badge ${a.env==="prod"?"bg-green":"bg-yellow"}`,children:(a.env||"DEMO").toUpperCase()}),a.safe_mode&&c.jsx("span",{className:"badge bg-yellow",children:"SAFE MODE"})]})]}),c.jsx("div",{className:"grid grid-cols-5 gap-4",children:[{label:"Balance",value:a.balance?`$${(a.balance/100).toLocaleString(void 0,{minimumFractionDigits:2})}`:"—",color:"text-green-400"},{label:"Positions",value:a.position_count??"—",color:"text-amber-400"},{label:"Open Markets",value:a.open_orders??"—",color:"text-blue-400"},{label:"Today P&L",value:a.daily_pnl?`$${(a.daily_pnl/100).toLocaleString(void 0,{minimumFractionDigits:2})}`:"$0.00",color:(a.daily_pnl||0)>=0?"text-green-400":"text-red-400"},{label:"Markets Tracked",value:a.markets_tracked??"—",color:"text-purple-400"}].map(f=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:f.label}),c.jsx("p",{className:`stat-v ${f.color}`,children:f.value})]},f.label))}),a.seed_money>0&&c.jsxs("div",{className:"card border border-blue-500/20 bg-gradient-to-r from-blue-500/5 via-transparent to-green-500/5",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"💰"}),c.jsx("h2",{className:"font-semibold",children:"Capital & Economics"})]}),c.jsxs("div",{className:"grid grid-cols-6 gap-3 text-center",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Seed Money"}),c.jsxs("p",{className:"text-lg font-bold text-blue-400",children:["$",(a.seed_money/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsxs("p",{className:"text-[10px] text-gray-600",children:[a.num_portfolios," portfolios"]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Current Balance"}),c.jsxs("p",{className:"text-lg font-bold text-green-400",children:["$",(a.balance/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"all portfolios"})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Net P&L"}),c.jsxs("p",{className:`text-lg font-bold ${a.net_pnl_from_seed>=0?"text-green-400":"text-red-400"}`,children:[a.net_pnl_from_seed>=0?"+":"","$",(a.net_pnl_from_seed/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsxs("p",{className:`text-[10px] ${a.roi_pct>=0?"text-green-500":"text-red-500"}`,children:[a.roi_pct>=0?"+":"",a.roi_pct,"% ROI"]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Capital Deployed"}),c.jsxs("p",{className:"text-lg font-bold text-amber-400",children:["$",(a.total_invested/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"total traded"})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Capital at Risk"}),c.jsxs("p",{className:"text-lg font-bold text-red-400",children:["$",(a.capital_at_risk/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"open positions"})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Daily Budget"}),c.jsxs("p",{className:"text-lg font-bold text-purple-400",children:["$",(a.daily_budget/100).toLocaleString(void 0,{minimumFractionDigits:0})]}),c.jsx("p",{className:"text-[10px] text-gray-600",children:"across strategies"})]})]}),((d=a.daily_economics)==null?void 0:d.length)>0&&c.jsxs("div",{className:"mt-4 pt-3 border-t border-gray-700/50",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-2",children:"Daily Breakdown (Last 7 Days)"}),c.jsx("div",{className:"grid grid-cols-7 gap-1 text-center text-[10px]",children:(a.daily_economics||[]).slice(0,7).reverse().map((f,p)=>{const v=new Date(f.day).toLocaleDateString("en-US",{weekday:"short",month:"numeric",day:"numeric",timeZone:"America/Los_Angeles"});return c.jsxs("div",{className:"rounded-lg bg-gray-800/40 p-2 border border-gray-700/50",children:[c.jsx("p",{className:"text-gray-500 font-medium",children:v}),c.jsxs("p",{className:`font-bold font-mono ${f.net_pnl>=0?"text-green-400":"text-red-400"}`,children:[f.net_pnl>=0?"+":"","$",(f.net_pnl/100).toFixed(0)]}),c.jsxs("p",{className:"text-gray-600",children:[f.trades," trades"]}),c.jsxs("p",{className:"text-gray-600",children:[f.wins,"W / ",f.losses,"L"]})]},p)})})]})]}),c.jsx(_Q,{opportunities:a.top_opportunities}),c.jsxs("div",{className:"card border border-amber-500/20 bg-gradient-to-r from-amber-500/5 to-transparent",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"📊"}),c.jsx("h2",{className:"font-semibold",children:"Today's Lessons"}),c.jsx("span",{className:"ml-auto text-xs text-gray-500",children:new Date().toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"})})]}),c.jsxs("div",{className:"grid grid-cols-4 gap-4 text-center",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Trades Resolved"}),c.jsx("p",{className:"text-xl font-bold text-amber-400",children:(a.today_trades||0).toLocaleString()})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Wins / Losses"}),c.jsxs("p",{className:"text-xl font-bold",children:[c.jsx("span",{className:"text-green-400",children:a.today_wins||0}),c.jsx("span",{className:"text-gray-600 mx-1",children:"/"}),c.jsx("span",{className:"text-red-400",children:a.today_losses||0})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Win Rate"}),c.jsxs("p",{className:`text-xl font-bold ${Number(s)>=50?"text-green-400":"text-red-400"}`,children:[s,"%"]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase",children:"Day P&L"}),c.jsxs("p",{className:`text-xl font-bold ${(a.daily_pnl||0)>=0?"text-green-400":"text-red-400"}`,children:[(a.daily_pnl||0)>=0?"+":"","$",((a.daily_pnl||0)/100).toLocaleString(void 0,{minimumFractionDigits:2})]})]})]})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsx("div",{className:"col-span-2",children:c.jsx(OQ,{topMarkets:a.top_markets,seedMoney:a.seed_money,balance:a.balance})}),c.jsx(AQ,{todayWins:a.today_wins,todayLosses:a.today_losses})]}),c.jsx(NQ,{topMarkets:a.top_markets,worstMarkets:a.worst_markets,strategies:a.strategies}),(a.top_markets||[]).length>0&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"🏆"}),c.jsx("h2",{className:"font-semibold",children:"Top Markets — Money Makers"})]}),c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left",children:"Market"}),c.jsx("th",{className:"text-right",children:"Trades"}),c.jsx("th",{className:"text-right",children:"Wins"}),c.jsx("th",{className:"text-right",children:"P&L"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Signal"})]})}),c.jsx("tbody",{children:(a.top_markets||[]).map((f,p)=>c.jsxs("tr",{children:[c.jsxs("td",{className:"max-w-[300px]",children:[c.jsx("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-200 hover:text-amber-400 transition truncate block",children:f.title}),c.jsx("span",{className:"text-[10px] font-mono text-gray-600",children:f.ticker})]}),c.jsx("td",{className:"text-right font-mono text-sm text-gray-400",children:f.trades}),c.jsx("td",{className:"text-right text-sm",children:c.jsx($1,{wins:f.wins,losses:f.losses})}),c.jsx("td",{className:"text-right text-sm",children:c.jsx(Ml,{cents:f.pnl})}),c.jsx("td",{className:"text-xs text-gray-400 whitespace-nowrap",children:f.edge}),c.jsx("td",{className:"text-center",children:c.jsx(T1,{wins:f.wins,losses:f.losses,pnl:f.pnl})})]},p))})]})})]}),(a.worst_markets||[]).length>0&&c.jsxs("div",{className:"card border border-red-500/10",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"⚠️"}),c.jsx("h2",{className:"font-semibold text-red-400",children:"Bleeding Markets — Consider Exiting"})]}),c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left",children:"Market"}),c.jsx("th",{className:"text-right",children:"Trades"}),c.jsx("th",{className:"text-right",children:"Wins"}),c.jsx("th",{className:"text-right",children:"P&L"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Signal"})]})}),c.jsx("tbody",{children:(a.worst_markets||[]).map((f,p)=>c.jsxs("tr",{children:[c.jsxs("td",{className:"max-w-[300px]",children:[c.jsx("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-200 hover:text-red-400 transition truncate block",children:f.title}),c.jsx("span",{className:"text-[10px] font-mono text-gray-600",children:f.ticker})]}),c.jsx("td",{className:"text-right font-mono text-sm text-gray-400",children:f.trades}),c.jsx("td",{className:"text-right text-sm",children:c.jsx($1,{wins:f.wins,losses:f.losses})}),c.jsx("td",{className:"text-right text-sm",children:c.jsx(Ml,{cents:f.pnl})}),c.jsx("td",{className:"text-xs text-gray-400 whitespace-nowrap",children:f.edge}),c.jsx("td",{className:"text-center",children:c.jsx(T1,{wins:f.wins,losses:f.losses,pnl:f.pnl})})]},p))})]})})]}),o.length>0&&c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"P&L History (Daily)"}),c.jsx(va,{width:"100%",height:200,children:c.jsxs(GN,{data:o,children:[c.jsx(fy,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Mn,{dataKey:"day",stroke:"#6b7280"}),c.jsx(In,{stroke:"#6b7280",tickFormatter:f=>`$${f}`}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8}}),c.jsx(Qr,{type:"monotone",dataKey:"pnl",stroke:"#f59e0b",fill:"#f59e0b",fillOpacity:.1})]})})]}),c.jsx(PQ,{strategies:a.strategies}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"🥇"}),c.jsx("h2",{className:"font-semibold",children:"Top Strategies"})]}),c.jsxs("div",{className:"space-y-2",children:[l.map((f,p)=>c.jsxs("div",{className:"flex items-center justify-between py-1.5 border-b border-gray-800 last:border-0",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-sm font-medium text-gray-200",children:f.name}),c.jsx("span",{className:"ml-2 text-[10px] text-gray-600",children:f.strategy})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[f.win_rate,"% WR"]}),c.jsx(Ml,{cents:f.pnl})]})]},p)),l.length===0&&c.jsx("p",{className:"text-gray-600 text-sm text-center py-4",children:"No profitable strategies yet"})]})]}),c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("span",{className:"text-lg",children:"📉"}),c.jsx("h2",{className:"font-semibold",children:"Losing Strategies"})]}),c.jsxs("div",{className:"space-y-2",children:[u.map((f,p)=>c.jsxs("div",{className:"flex items-center justify-between py-1.5 border-b border-gray-800 last:border-0",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-sm font-medium text-gray-300",children:f.name}),c.jsx("span",{className:"ml-2 text-[10px] text-gray-600",children:f.strategy})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[f.win_rate,"% WR"]}),c.jsx(Ml,{cents:f.pnl})]})]},p)),u.length===0&&c.jsx("p",{className:"text-gray-600 text-sm text-center py-4",children:"No losing strategies"})]})]})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Recent Fills"}),(a.recent_fills||[]).length>0?c.jsx("div",{className:"space-y-2",children:(a.recent_fills||[]).slice(0,5).map((f,p)=>{var v;return c.jsxs("div",{className:"flex items-center justify-between text-sm",children:[c.jsxs("div",{children:[c.jsx("span",{className:"font-mono text-xs text-gray-400",children:f.ticker}),c.jsx("span",{className:`ml-2 badge ${f.side==="yes"?"bg-green":"bg-red"}`,children:(v=f.side)==null?void 0:v.toUpperCase()})]}),c.jsxs("span",{className:"font-mono text-gray-300",children:[f.count,"@",f.yes_price,"c"]})]},p)})}):c.jsx("p",{className:"text-gray-600 text-sm text-center py-6",children:"No recent fills"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Quick Actions"}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs(Yl,{to:"/markets",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg bg-amber-500/10 flex items-center justify-center",children:c.jsx("svg",{className:"w-4 h-4 text-amber-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"})})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium",children:"Browse Markets"}),c.jsx("p",{className:"text-xs text-gray-500",children:"Find weather contracts"})]})]}),c.jsxs(Yl,{to:"/positions",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg bg-green-500/10 flex items-center justify-center",children:c.jsx("svg",{className:"w-4 h-4 text-green-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium",children:"View Positions"}),c.jsx("p",{className:"text-xs text-gray-500",children:"Current portfolio"})]})]}),c.jsxs(Yl,{to:"/settings",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg bg-blue-500/10 flex items-center justify-center",children:c.jsxs("svg",{className:"w-4 h-4 text-blue-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:[c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",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.066 2.573c1.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.573 1.066c-.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.066-2.573c-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"}),c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})]})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium",children:"Scan Config"}),c.jsx("p",{className:"text-xs text-gray-500",children:"Intervals & risk params"})]})]})]})]})]})]})}function EQ(){const[e,t]=N.useState([]),[r,n]=N.useState([]),[i,a]=N.useState(!0),[o,s]=N.useState(null),[l,u]=N.useState(null),[d,f]=N.useState(!1),[p,v]=N.useState("");N.useEffect(()=>{g()},[]);async function g(){a(!0);try{const h=await he("/kalshi",{action:"get_events",params:{status:"open",limit:100}});t(h.events||[])}catch{}a(!1)}async function x(h){s(h),n([]);try{const m=await he("/kalshi",{action:"get_markets",params:{event_ticker:h}});n(m.markets||[])}catch{}}async function b(h){f(!0),u(null);try{const m=await he("/kalshi",{action:"get_orderbook",ticker:h});m.success&&u({...m.orderbook,ticker:h})}catch{}f(!1)}const y=e.filter(h=>!p||(h.title||"").toLowerCase().includes(p.toLowerCase())||(h.category||"").toLowerCase().includes(p.toLowerCase()));return i?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Markets"}),c.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," events loaded"]})]}),c.jsx("button",{onClick:g,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsx("input",{type:"text",value:p,onChange:h=>v(h.target.value),placeholder:"Filter by name or category...",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none"}),c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Event"}),c.jsx("th",{children:"Category"}),c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Markets"}),c.jsx("th",{children:"Action"})]})}),c.jsx("tbody",{children:y.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:5,className:"text-center text-gray-500 py-8",children:"No events found"})}):y.slice(0,50).map(h=>c.jsxs("tr",{children:[c.jsx("td",{className:"max-w-[300px]",children:c.jsx("span",{className:"truncate block font-medium",children:h.title})}),c.jsx("td",{children:c.jsx("span",{className:"badge bg-orange",children:h.category||"—"})}),c.jsx("td",{className:"font-mono text-xs text-gray-500",children:h.event_ticker}),c.jsx("td",{className:"text-sm",children:h.mutually_exclusive?"ME":"—"}),c.jsx("td",{children:c.jsx("button",{onClick:()=>x(h.event_ticker),className:"text-xs text-amber-400 hover:text-amber-300",children:"View Contracts"})})]},h.event_ticker))})]})}),o&&r.length>0&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-3",children:[c.jsxs("h2",{className:"font-semibold",children:["Contracts — ",o]}),c.jsx("button",{onClick:()=>{s(null),n([])},className:"text-xs text-gray-500 hover:text-gray-300",children:"Close"})]}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Contract"}),c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Yes Bid"}),c.jsx("th",{children:"Yes Ask"}),c.jsx("th",{children:"Volume"}),c.jsx("th",{children:"Book"})]})}),c.jsx("tbody",{children:r.map(h=>c.jsxs("tr",{children:[c.jsx("td",{className:"max-w-[250px]",children:c.jsx("span",{className:"truncate block text-sm",children:h.title||h.subtitle||h.ticker})}),c.jsx("td",{className:"font-mono text-xs text-gray-500",children:h.ticker}),c.jsxs("td",{className:"font-mono text-green-400",children:[h.yes_bid??"—","c"]}),c.jsxs("td",{className:"font-mono text-red-400",children:[h.yes_ask??"—","c"]}),c.jsx("td",{className:"font-mono text-gray-400",children:h.volume??"—"}),c.jsx("td",{children:c.jsx("button",{onClick:()=>b(h.ticker),className:"text-xs text-amber-400 hover:text-amber-300",children:"Orderbook"})})]},h.ticker))})]})]}),(l||d)&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsxs("h2",{className:"font-semibold",children:["Orderbook — ",(l==null?void 0:l.ticker)||"..."]}),c.jsx("button",{onClick:()=>u(null),className:"text-xs text-gray-500 hover:text-gray-300",children:"Close"})]}),d?c.jsx("div",{className:"flex items-center justify-center h-32",children:c.jsx("div",{className:"animate-spin w-6 h-6 border-2 border-amber-500 border-t-transparent rounded-full"})}):l?c.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-green-400 mb-2",children:"YES Bids"}),c.jsxs("div",{className:"space-y-1",children:[c.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[c.jsx("span",{children:"Price"}),c.jsx("span",{children:"Qty"})]}),(l.yes||[]).slice(0,10).map((h,m)=>c.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[c.jsx("div",{className:"absolute inset-0 bg-green-500/10",style:{width:`${Math.min((h[1]||0)*2,100)}%`}}),c.jsxs("span",{className:"font-mono text-green-400 relative z-10",children:[h[0],"c"]}),c.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:h[1]})]},m))]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-red-400 mb-2",children:"NO Bids"}),c.jsxs("div",{className:"space-y-1",children:[c.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[c.jsx("span",{children:"Price"}),c.jsx("span",{children:"Qty"})]}),(l.no||[]).slice(0,10).map((h,m)=>c.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[c.jsx("div",{className:"absolute inset-0 bg-red-500/10",style:{width:`${Math.min((h[1]||0)*2,100)}%`}}),c.jsxs("span",{className:"font-mono text-red-400 relative z-10",children:[h[0],"c"]}),c.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:h[1]})]},m))]})]})]}):null]})]})}function $Q(){const[e,t]=N.useState([]),[r,n]=N.useState(!0);N.useEffect(()=>{i();const o=setInterval(i,15e3);return()=>clearInterval(o)},[]);async function i(){try{const o=await he("/kalshi",{action:"get_positions"});t(o.market_positions||o.positions||[])}catch{}n(!1)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const a=e.reduce((o,s)=>o+(s.realized_pnl||0),0);return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Positions"}),c.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," active positions"]})]}),c.jsx("button",{onClick:i,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Positions"}),c.jsx("p",{className:"stat-v text-amber-400",children:e.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Total Realized P&L"}),c.jsxs("p",{className:`stat-v ${a>=0?"text-green-400":"text-red-400"}`,children:["$",(a/1e4).toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Fees Paid"}),c.jsxs("p",{className:"stat-v text-gray-400",children:["$",(e.reduce((o,s)=>o+(s.fees_paid||0),0)/1e4).toFixed(2)]})]})]}),c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Contracts"}),c.jsx("th",{children:"Cost"}),c.jsx("th",{children:"Realized P&L"}),c.jsx("th",{children:"Fees"})]})}),c.jsx("tbody",{children:e.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No open positions"})}):e.map((o,s)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-sm",children:o.ticker||o.market_ticker}),c.jsx("td",{children:(o.market_exposure||o.position)>0?c.jsx("span",{className:"badge bg-green",children:"YES"}):(o.market_exposure||o.position)<0?c.jsx("span",{className:"badge bg-red",children:"NO"}):c.jsx("span",{className:"text-gray-500",children:"—"})}),c.jsx("td",{className:"font-mono",children:Math.abs(o.market_exposure||o.position||0)}),c.jsxs("td",{className:"font-mono text-gray-400",children:["$",((o.position_cost||0)/1e4).toFixed(2)]}),c.jsxs("td",{className:`font-mono ${(o.realized_pnl||0)>=0?"text-green-400":"text-red-400"}`,children:["$",((o.realized_pnl||0)/1e4).toFixed(2)]}),c.jsxs("td",{className:"font-mono text-gray-400",children:["$",((o.fees_paid||0)/1e4).toFixed(2)]})]},s))})]})})]})}function TQ(){const[e,t]=N.useState([]),[r,n]=N.useState([]),[i,a]=N.useState(!0),[o,s]=N.useState("orders");N.useEffect(()=>{l()},[]);async function l(){a(!0);try{const[d,f]=await Promise.all([he("/kalshi",{action:"get_orders"}),he("/kalshi",{action:"get_fills"})]);t(d.orders||[]),n(f.fills||[])}catch{}a(!1)}async function u(d){try{await he("/kalshi",{action:"cancel_order",order_id:d}),l()}catch{}}return i?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Orders & Fills"}),c.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," orders, ",r.length," fills"]})]}),c.jsx("button",{onClick:l,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsxs("div",{className:"flex gap-2",children:[c.jsxs("button",{onClick:()=>s("orders"),className:`btn text-sm ${o==="orders"?"btn-p":"btn-o"}`,children:["Orders (",e.length,")"]}),c.jsxs("button",{onClick:()=>s("fills"),className:`btn text-sm ${o==="fills"?"btn-p":"btn-o"}`,children:["Fills (",r.length,")"]})]}),o==="orders"?c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Action"}),c.jsx("th",{children:"Type"}),c.jsx("th",{children:"Price"}),c.jsx("th",{children:"Qty"}),c.jsx("th",{children:"Filled"}),c.jsx("th",{children:"Status"}),c.jsx("th",{})]})}),c.jsx("tbody",{children:e.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:9,className:"text-center text-gray-500 py-8",children:"No orders"})}):e.map((d,f)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-xs",children:d.ticker}),c.jsx("td",{children:c.jsx("span",{className:`badge ${d.side==="yes"?"bg-green":"bg-red"}`,children:(d.side||"").toUpperCase()})}),c.jsx("td",{className:"text-xs text-gray-400",children:(d.action||"").toUpperCase()}),c.jsx("td",{className:"text-xs",children:d.type}),c.jsxs("td",{className:"font-mono",children:[d.yes_price||d.no_price||"—","c"]}),c.jsx("td",{className:"font-mono",children:d.count||d.remaining_count||0}),c.jsx("td",{className:"font-mono text-green-400",children:d.count-(d.remaining_count||0)}),c.jsx("td",{children:c.jsx("span",{className:`badge ${d.status==="resting"?"bg-blue":d.status==="filled"?"bg-green":d.status==="canceled"?"bg-red":"bg-yellow"}`,children:d.status})}),c.jsx("td",{children:d.status==="resting"&&c.jsx("button",{onClick:()=>u(d.order_id),className:"text-xs text-red-400 hover:text-red-300",children:"Cancel"})})]},f))})]})}):c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Ticker"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Action"}),c.jsx("th",{children:"Price"}),c.jsx("th",{children:"Qty"}),c.jsx("th",{children:"Taker"}),c.jsx("th",{children:"Time"})]})}),c.jsx("tbody",{children:r.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:7,className:"text-center text-gray-500 py-8",children:"No fills"})}):r.map((d,f)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-xs",children:d.ticker}),c.jsx("td",{children:c.jsx("span",{className:`badge ${d.side==="yes"?"bg-green":"bg-red"}`,children:(d.side||"").toUpperCase()})}),c.jsx("td",{className:"text-xs text-gray-400",children:(d.action||"").toUpperCase()}),c.jsxs("td",{className:"font-mono",children:[d.yes_price||d.no_price||"—","c"]}),c.jsx("td",{className:"font-mono",children:d.count}),c.jsx("td",{children:d.is_taker?c.jsx("span",{className:"text-yellow-400 text-xs",children:"TAKER"}):c.jsx("span",{className:"text-green-400 text-xs",children:"MAKER"})}),c.jsx("td",{className:"text-xs text-gray-500",children:d.created_time?new Date(d.created_time).toLocaleString():"—"})]},f))})]})})]})}function CQ(){const[e,t]=N.useState(null),[r,n]=N.useState(!0);N.useEffect(()=>{i()},[]);async function i(){n(!0);try{const o=await he("/weather",{action:"get_data"});t(o)}catch{}n(!1)}async function a(){n(!0);try{const o=await he("/weather",{action:"fetch_all"});t(o)}catch{}n(!1)}return r?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Weather Data"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"NWS settlement data for Ken weather contracts"})]}),c.jsx("button",{onClick:a,className:"btn btn-p text-sm",children:"Fetch Latest"})]}),c.jsx("div",{className:"grid grid-cols-4 gap-4",children:["Stations","Forecasts","Observations","Metrics"].map((o,s)=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:o}),c.jsx("p",{className:"stat-v text-blue-400",children:(e==null?void 0:e[o.toLowerCase()])||"—"})]},o))}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Settlement Rule Reference"}),c.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Temperature Contracts"}),c.jsxs("ul",{className:"space-y-1 text-xs text-gray-400",children:[c.jsx("li",{children:"Source: NWS Daily Climate Report (final)"}),c.jsx("li",{children:"Station: Market-specified (e.g. KORD, KLGA)"}),c.jsx("li",{children:"Values: Tmax/Tmin in degrees F"}),c.jsx("li",{children:"Missing data: treated as 0"})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Precipitation Contracts"}),c.jsxs("ul",{className:"space-y-1 text-xs text-gray-400",children:[c.jsx("li",{children:"Source: NWS Daily Climate Report (first complete)"}),c.jsx("li",{children:"Trace: counted as 0.00 inches"}),c.jsx("li",{children:"Missing: counted as 0.00 inches"}),c.jsx("li",{children:"Revisions: do NOT change settlement"})]})]})]})]}),((e==null?void 0:e.outcomes)||[]).length>0&&c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Recent Observations"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Station"}),c.jsx("th",{children:"Metric"}),c.jsx("th",{children:"Value"}),c.jsx("th",{children:"Source"}),c.jsx("th",{children:"Date"})]})}),c.jsx("tbody",{children:e.outcomes.map((o,s)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-sm",children:o.station_id}),c.jsx("td",{children:c.jsx("span",{className:"badge bg-blue",children:o.metric})}),c.jsxs("td",{className:"font-mono",children:[o.value,o.units]}),c.jsx("td",{className:"text-xs text-gray-400",children:o.source}),c.jsx("td",{className:"text-xs text-gray-400",children:o.period_end})]},s))})]})]})]})}const MQ={aggressive:"#ef4444",conservative:"#3b82f6",weather:"#06b6d4",momentum:"#f59e0b",contrarian:"#a855f7",ai_enhanced:"#ec4899",mc_validated:"#8b5cf6",scalper:"#10b981",patient:"#6366f1",random:"#f97316",penny_pincher:"#84cc16",spray_pray:"#14b8a6",nickel_slots:"#eab308",degen_lite:"#e11d48",politics_junkie:"#7c3aed",double_down:"#dc2626",volatility_rider:"#0ea5e9",whale:"#1d4ed8",yolo:"#be123c",full_send:"#ea580c",kelly_criterion:"#4f46e5",sharpe_sniper:"#059669",bayesian_blend:"#7c3aed",ensemble_lock:"#0891b2",mean_revert:"#4338ca",info_ratio:"#b45309",anti_fomo:"#64748b",nightcrawler:"#334155",heatseeker:"#dc2626",quant_core:"#2563eb"},IQ="#f59e0b";function YN(e){return e.startsWith("etf_")?IQ:MQ[e]||"#6b7280"}function LQ({won:e,lost:t,total:r}){if(!r)return c.jsx("span",{className:"text-[10px] text-gray-600",children:"no trades"});const n=e/r*100,i=t/r*100;return c.jsxs("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800 w-full",children:[e>0&&c.jsx("div",{className:"bg-green-500",style:{width:`${n}%`}}),t>0&&c.jsx("div",{className:"bg-red-500",style:{width:`${i}%`}})]})}function DQ({streak:e}){if(e===0)return c.jsx("span",{className:"text-gray-600 text-xs",children:"—"});const t=e>0;return c.jsxs("span",{className:`text-xs font-mono font-bold ${t?"text-green-400":"text-red-400"}`,children:[t?"+":"",e]})}function RQ({p:e,dailyPnl:t,expanded:r,onToggle:n}){const i=(e.total_returned_cents-e.total_invested_cents)/100,a=e.trades_won+e.trades_lost+e.trades_expired,o=e.total_invested_cents/100,s=e.total_returned_cents/100,l=a>0,u=YN(e.strategy);return c.jsx("div",{className:`rounded-xl border transition-all cursor-pointer hover:border-gray-600 ${l?"bg-gray-900/60 border-gray-700/60":"bg-gray-900/20 border-gray-800/40 opacity-60"} ${r?"col-span-2 row-span-2":""}`,onClick:n,children:c.jsxs("div",{className:"p-3",children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2.5 h-2.5 rounded-full",style:{background:u}}),c.jsx("span",{className:"font-semibold text-sm text-gray-100",children:e.name}),c.jsxs("span",{className:"text-[10px] text-gray-500 font-mono",children:["#",e.id]})]}),c.jsxs("span",{className:`text-sm font-mono font-bold ${i>=0?"text-green-400":"text-red-400"}`,children:[i>=0?"+":"",i.toFixed(2)]})]}),c.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[c.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded-md font-mono",style:{background:`${u}15`,color:u,border:`1px solid ${u}30`},children:e.strategy}),c.jsx(DQ,{streak:e.streak})]}),c.jsxs("div",{className:"mb-2",children:[c.jsx(LQ,{won:e.trades_won,lost:e.trades_lost,total:a}),c.jsxs("div",{className:"flex justify-between mt-1",children:[c.jsxs("span",{className:"text-[10px] text-gray-500",children:[e.trades_won,"W / ",e.trades_lost,"L"]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[e.win_rate||0,"%"]})]})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Invested"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:["$",o.toFixed(2)]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Returned"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:["$",s.toFixed(2)]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Budget/Day"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:["$",(e.daily_budget_cents/100).toFixed(2)]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Today"}),c.jsxs("span",{className:"text-gray-300 font-mono",children:[e.trades_today," trades"]})]})]}),r&&t&&t.length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t border-gray-800",children:[c.jsx("p",{className:"text-[10px] text-gray-500 mb-1",children:"Cumulative P&L"}),c.jsx(va,{width:"100%",height:80,children:c.jsxs(GN,{data:t,children:[c.jsx(Mn,{dataKey:"date",hide:!0}),c.jsx(In,{hide:!0,domain:["dataMin","dataMax"]}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8,fontSize:11},formatter:d=>[`$${(d/100).toFixed(2)}`,"P&L"],labelFormatter:d=>d}),c.jsx(Qr,{type:"monotone",dataKey:"cumulative",stroke:u,fill:u,fillOpacity:.1,strokeWidth:1.5,dot:!1})]})}),c.jsx("p",{className:"text-[10px] text-gray-600 mt-1",children:e.description})]})]})})}function BQ(){const[e,t]=N.useState([]),[r,n]=N.useState({}),[i,a]=N.useState(!0),[o,s]=N.useState("all"),[l,u]=N.useState("pnl"),[d,f]=N.useState(null);N.useEffect(()=>{p()},[]);async function p(){try{const[m,S]=await Promise.all([ht("/portfolios"),ht("/portfolio-trades?include_history=true").catch(()=>({}))]);t(m||[]),S!=null&&S.byPortfolio&&n(S.byPortfolio)}catch{}a(!1)}const v=N.useMemo(()=>{let m=[...e];return o==="active"&&(m=m.filter(S=>S.trades_won+S.trades_lost>0)),o==="dormant"&&(m=m.filter(S=>S.trades_won+S.trades_lost===0)),o==="etf"&&(m=m.filter(S=>S.strategy.startsWith("etf_"))),o==="core"&&(m=m.filter(S=>!S.strategy.startsWith("etf_"))),l==="pnl"&&m.sort((S,w)=>w.total_returned_cents-w.total_invested_cents-(S.total_returned_cents-S.total_invested_cents)),l==="winrate"&&m.sort((S,w)=>(w.win_rate||0)-(S.win_rate||0)),l==="invested"&&m.sort((S,w)=>w.total_invested_cents-S.total_invested_cents),l==="name"&&m.sort((S,w)=>S.name.localeCompare(w.name)),l==="id"&&m.sort((S,w)=>S.id-w.id),m},[e,o,l]),g=N.useMemo(()=>{const m=e.reduce(($,E)=>$+E.total_invested_cents,0),S=e.reduce(($,E)=>$+E.total_returned_cents,0),w=e.reduce(($,E)=>$+E.trades_won,0),j=e.reduce(($,E)=>$+E.trades_lost,0),_=e.filter($=>$.trades_won+$.trades_lost>0).length,O=e.length-_,k=[...e].sort(($,E)=>E.total_returned_cents-E.total_invested_cents-($.total_returned_cents-$.total_invested_cents))[0],A=[...e].sort(($,E)=>$.total_returned_cents-$.total_invested_cents-(E.total_returned_cents-E.total_invested_cents))[0];return{totalInvested:m,totalReturned:S,totalWins:w,totalLosses:j,active:_,dormant:O,bestPf:k,worstPf:A}},[e]),x=N.useMemo(()=>[...e].map(m=>({name:m.name,pnl:(m.total_returned_cents-m.total_invested_cents)/100,strategy:m.strategy})).filter(m=>m.pnl!==0).sort((m,S)=>S.pnl-m.pnl).slice(0,20),[e]),b=N.useMemo(()=>{const m={};return e.forEach(S=>{const w=S.strategy.startsWith("etf_")?"ETF Baskets":S.strategy;m[w]||(m[w]={name:w,value:0}),m[w].value+=S.total_invested_cents}),Object.values(m).filter(S=>S.value>0).sort((S,w)=>w.value-S.value)},[e]);if(i)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const y=(g.totalReturned-g.totalInvested)/100,h=g.totalWins+g.totalLosses;return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Portfauxlios"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"All 50 portfolios — performance, P&L, and strategy breakdown"})]}),c.jsx("div",{className:"grid grid-cols-6 gap-3",children:[{label:"Total P&L",value:`${y>=0?"+":""}$${y.toFixed(2)}`,color:y>=0?"text-green-400":"text-red-400"},{label:"Invested",value:`$${(g.totalInvested/100).toFixed(2)}`,color:"text-amber-400"},{label:"Returned",value:`$${(g.totalReturned/100).toFixed(2)}`,color:"text-blue-400"},{label:"Win Rate",value:h?`${(g.totalWins/h*100).toFixed(1)}%`:"0%",color:"text-purple-400"},{label:"Active",value:g.active,color:"text-green-400"},{label:"Dormant",value:g.dormant,color:"text-gray-500"}].map(m=>c.jsxs("div",{className:"card text-center",children:[c.jsx("div",{className:`text-lg font-bold font-mono ${m.color}`,children:m.value}),c.jsx("div",{className:"text-[10px] text-gray-500 uppercase tracking-wider mt-1",children:m.label})]},m.label))}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card col-span-2",children:[c.jsx("h2",{className:"font-semibold text-sm mb-3",children:"P&L by Portfolio"}),x.length>0?c.jsx(va,{width:"100%",height:220,children:c.jsxs(KN,{data:x,margin:{left:10,right:10},children:[c.jsx(Mn,{dataKey:"name",tick:{fill:"#6b7280",fontSize:9},angle:-45,textAnchor:"end",height:60}),c.jsx(In,{tick:{fill:"#6b7280",fontSize:10},tickFormatter:m=>`$${m}`}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8,fontSize:11},formatter:m=>[`$${m.toFixed(2)}`,"P&L"]}),c.jsx(Cn,{dataKey:"pnl",radius:[4,4,0,0],children:x.map((m,S)=>c.jsx(di,{fill:m.pnl>=0?"#22c55e":"#ef4444",fillOpacity:.8},S))})]})}):c.jsx("div",{className:"text-center text-gray-600 py-10 text-sm",children:"No P&L data yet"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold text-sm mb-3",children:"Capital Allocation"}),b.length>0?c.jsx(va,{width:"100%",height:220,children:c.jsxs(VN,{children:[c.jsx(Nr,{data:b,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",innerRadius:40,outerRadius:75,paddingAngle:2,strokeWidth:0,children:b.map((m,S)=>c.jsx(di,{fill:YN(m.name==="ETF Baskets"?"etf_":m.name),fillOpacity:.8},S))}),c.jsx(bt,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8,fontSize:11},formatter:m=>[`$${(m/100).toFixed(2)}`,"Invested"]})]})}):c.jsx("div",{className:"text-center text-gray-600 py-10 text-sm",children:"No allocations yet"})]})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[g.bestPf&&c.jsxs("div",{className:"card border-green-500/20",children:[c.jsx("div",{className:"flex items-center gap-2 mb-1",children:c.jsx("span",{className:"text-green-400 text-xs font-semibold uppercase tracking-wider",children:"Best Performer"})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"font-bold text-gray-100",children:g.bestPf.name}),c.jsx("span",{className:"text-green-400 font-mono font-bold",children:((g.bestPf.total_returned_cents-g.bestPf.total_invested_cents)/100).toFixed(2)})]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[g.bestPf.strategy," — ",g.bestPf.win_rate||0,"% win rate"]})]}),g.worstPf&&c.jsxs("div",{className:"card border-red-500/20",children:[c.jsx("div",{className:"flex items-center gap-2 mb-1",children:c.jsx("span",{className:"text-red-400 text-xs font-semibold uppercase tracking-wider",children:"Worst Performer"})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"font-bold text-gray-100",children:g.worstPf.name}),c.jsx("span",{className:"text-red-400 font-mono font-bold",children:((g.worstPf.total_returned_cents-g.worstPf.total_invested_cents)/100).toFixed(2)})]}),c.jsxs("span",{className:"text-[10px] text-gray-500",children:[g.worstPf.strategy," — ",g.worstPf.win_rate||0,"% win rate"]})]})]}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("div",{className:"flex gap-2",children:["all","active","dormant","etf","core"].map(m=>c.jsx("button",{onClick:()=>s(m),className:`px-3 py-1.5 rounded-lg text-xs font-medium transition ${o===m?"bg-amber-500/15 text-amber-400 border border-amber-500/30":"bg-gray-800/40 text-gray-400 hover:text-gray-200 border border-transparent"}`,children:m==="all"?`All (${e.length})`:m==="active"?`Active (${g.active})`:m==="dormant"?`Dormant (${g.dormant})`:m==="etf"?"ETF Baskets":"Core Strategies"},m))}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"text-xs text-gray-500",children:"Sort:"}),["pnl","winrate","invested","name","id"].map(m=>c.jsx("button",{onClick:()=>u(m),className:`px-2 py-1 rounded text-[11px] transition ${l===m?"text-amber-400 bg-amber-500/10":"text-gray-500 hover:text-gray-300"}`,children:m==="pnl"?"P&L":m==="winrate"?"Win%":m.charAt(0).toUpperCase()+m.slice(1)},m))]})]}),c.jsx("div",{className:"grid grid-cols-4 gap-3",children:v.map(m=>{var S;return c.jsx(RQ,{p:m,dailyPnl:((S=r[m.id])==null?void 0:S.daily)||[],expanded:d===m.id,onToggle:()=>f(d===m.id?null:m.id)},m.id)})}),v.length===0&&c.jsx("div",{className:"text-center py-12 text-gray-500",children:"No portfolios match this filter"})]})}const FQ=[{label:"30s",ms:3e4},{label:"1m",ms:6e4},{label:"2m",ms:12e4},{label:"5m",ms:3e5},{label:"8m",ms:48e4},{label:"10m",ms:6e5},{label:"15m",ms:9e5},{label:"30m",ms:18e5},{label:"60m",ms:36e5}];function zQ(e){return e>=36e5?`${e/36e5}h`:e>=6e4?`${e/6e4}m`:`${e/1e3}s`}function Il({label:e,value:t,onChange:r,description:n}){return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-200",children:e}),c.jsx("p",{className:"text-[10px] text-gray-500",children:n})]}),c.jsx("span",{className:"font-mono text-amber-400 text-lg font-bold",children:zQ(t)})]}),c.jsx("div",{className:"flex flex-wrap gap-1.5",children:FQ.map(i=>c.jsx("button",{onClick:()=>r(i.ms),className:`px-2.5 py-1 rounded text-xs font-medium transition ${t===i.ms?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800/60 text-gray-500 border border-gray-700 hover:border-gray-500 hover:text-gray-300"}`,children:i.label},i.ms))})]})}function UQ(){const[e,t]=N.useState(null),[r,n]=N.useState(!0),[i,a]=N.useState(""),[o,s]=N.useState(""),[l,u]=N.useState("demo"),[d,f]=N.useState(!1),[p,v]=N.useState(null),[g,x]=N.useState(null),[b,y]=N.useState(null),[h,m]=N.useState(!1);N.useEffect(()=>{S(),w();const A=setInterval(w,3e4);return()=>clearInterval(A)},[]);async function S(){try{const A=await he("/kalshi",{action:"status"});t(A),A.env&&u(A.env)}catch{}n(!1)}async function w(){try{const A=await ht("/scan-config");x(A)}catch{}}async function j(A,$){m(!0),y(null);try{const E=await ht("/scan-config",{method:"POST",body:JSON.stringify({[A]:$})});E.success?(x(E),y({type:"ok",text:`Updated ${A.replace(/_/g," ")}`})):y({type:"err",text:E.error||"Failed"})}catch{y({type:"err",text:"Connection error"})}m(!1),setTimeout(()=>y(null),3e3)}async function _(){f(!0),v(null);try{const A=await he("/kalshi",{action:"save_keys",api_key:i,private_key:o,env:l});A.success?(v({type:"ok",text:"Keys saved"}),S(),a(""),s("")):v({type:"err",text:A.error||"Failed"})}catch{v({type:"err",text:"Connection error"})}f(!1)}async function O(){try{await he("/kalshi",{action:"disconnect"}),S()}catch{}}async function k(){v(null);try{const A=await he("/kalshi",{action:"test_connection"});v({type:A.success?"ok":"err",text:A.success?`Connected! Exchange: ${A.exchange_status}`:"Connection failed"})}catch{v({type:"err",text:"Connection error"})}}return r?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),g&&c.jsxs("div",{className:"card space-y-5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"font-semibold",children:"Scan & Pipeline Configuration"}),c.jsx("p",{className:"text-[10px] text-gray-500",children:"Adjust intervals, thresholds, and risk parameters in real-time"})]}),h&&c.jsx("span",{className:"text-xs text-amber-400 animate-pulse",children:"Saving..."})]}),b&&c.jsx("p",{className:`text-xs px-3 py-1.5 rounded ${b.type==="ok"?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"}`,children:b.text}),c.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 bg-gray-800/40 rounded-lg border border-gray-700",children:[c.jsx("span",{className:"text-[10px] text-gray-500 uppercase font-medium",children:"Cached Markets"}),c.jsx("span",{className:"font-mono text-xl font-bold text-amber-400",children:g.cached_markets||0})]}),c.jsx(Il,{label:"Market Scan",description:"How often to fetch & analyze all active Kalshi markets",value:g.scan_interval_ms,onChange:A=>j("scan_interval_ms",A)}),c.jsx(Il,{label:"Signal Pipeline",description:"News sentiment + probability + Monte Carlo signal generation",value:g.signal_pipeline_ms,onChange:A=>j("signal_pipeline_ms",A)}),c.jsx(Il,{label:"Intelligence Sweep",description:"Reddit, news feeds, Bluesky, Mastodon, Lemmy + 20 more sources",value:g.reddit_interval_ms,onChange:A=>j("reddit_interval_ms",A)}),c.jsx(Il,{label:"Trade Resolution",description:"Take-profit/stop-loss check on open portfolio positions",value:g.resolve_interval_ms,onChange:A=>j("resolve_interval_ms",A)}),c.jsxs("div",{className:"border-t border-gray-700 pt-4 space-y-4",children:[c.jsx("h3",{className:"text-sm font-semibold text-gray-300",children:"Risk Parameters"}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-200",children:"Min Edge Threshold"}),c.jsx("p",{className:"text-[10px] text-gray-500",children:"Minimum statistical edge required to approve a signal"})]}),c.jsxs("span",{className:"font-mono text-amber-400 text-lg font-bold",children:[(g.min_edge_threshold*100).toFixed(1),"%"]})]}),c.jsx("div",{className:"flex flex-wrap gap-1.5",children:[.01,.02,.03,.05,.08,.1,.15,.2].map(A=>c.jsxs("button",{onClick:()=>j("min_edge_threshold",A),className:`px-2.5 py-1 rounded text-xs font-medium transition ${Math.abs(g.min_edge_threshold-A)<.001?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800/60 text-gray-500 border border-gray-700 hover:border-gray-500 hover:text-gray-300"}`,children:[(A*100).toFixed(0),"%"]},A))})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-200",children:"Min Liquidity (24h Vol)"}),c.jsx("p",{className:"text-[10px] text-gray-500",children:"Minimum 24-hour trading volume to consider a market"})]}),c.jsx("span",{className:"font-mono text-amber-400 text-lg font-bold",children:g.min_liquidity})]}),c.jsx("div",{className:"flex flex-wrap gap-1.5",children:[0,10,25,50,100,250,500,1e3].map(A=>c.jsx("button",{onClick:()=>j("min_liquidity",A),className:`px-2.5 py-1 rounded text-xs font-medium transition ${g.min_liquidity===A?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800/60 text-gray-500 border border-gray-700 hover:border-gray-500 hover:text-gray-300"}`,children:A===0?"None":A},A))})]})]})]}),c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[c.jsx("span",{className:`w-3 h-3 rounded-full ${e!=null&&e.connected?"bg-green-500 pulse-g":"bg-gray-600"}`}),c.jsx("h2",{className:"font-semibold",children:"Ken API Connection"})]}),e!=null&&e.connected?c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"API Key"}),c.jsx("span",{className:"font-mono text-gray-300",children:e.api_key_masked||"***"})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Environment"}),c.jsx("span",{className:e.env==="prod"?"text-green-400":"text-yellow-400",children:(e.env||"demo").toUpperCase()})]}),c.jsxs("div",{className:"flex gap-2 mt-3",children:[c.jsx("button",{onClick:k,className:"btn btn-o text-sm",children:"Test Connection"}),c.jsx("button",{onClick:O,className:"btn btn-d text-sm",children:"Disconnect"})]})]}):c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"flex gap-2",children:[c.jsx("button",{onClick:()=>u("demo"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${l==="demo"?"bg-yellow-500/15 text-yellow-400 border border-yellow-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Demo"}),c.jsx("button",{onClick:()=>u("prod"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${l==="prod"?"bg-green-500/15 text-green-400 border border-green-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Production"})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs text-gray-400 mb-1",children:"API Key ID"}),c.jsx("input",{type:"text",value:i,onChange:A=>a(A.target.value),placeholder:"Your API key",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono"})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs text-gray-400 mb-1",children:"Private Key (PEM)"}),c.jsx("textarea",{value:o,onChange:A=>s(A.target.value),placeholder:"-----BEGIN RSA PRIVATE KEY-----",rows:4,className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono text-xs"})]}),c.jsx("button",{onClick:_,disabled:d||!i,className:"btn btn-p w-full",children:d?"Saving...":"Save & Connect"})]}),p&&c.jsx("p",{className:`text-xs mt-2 ${p.type==="ok"?"text-green-400":"text-red-400"}`,children:p.text})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Ken API Reference"}),c.jsxs("div",{className:"grid grid-cols-2 gap-4 text-xs text-gray-400",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 uppercase mb-1 font-medium",children:"Environments"}),c.jsxs("p",{children:["Demo: ",c.jsx("span",{className:"font-mono text-amber-400",children:"demo-api.kalshi.co"})]}),c.jsxs("p",{children:["Prod: ",c.jsx("span",{className:"font-mono text-green-400",children:"api.elections.kalshi.com"})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 uppercase mb-1 font-medium",children:"Auth"}),c.jsx("p",{children:"Method: RSA-PSS + SHA-256"}),c.jsx("p",{children:"Headers: KALSHI-ACCESS-KEY, TIMESTAMP, SIGNATURE"})]})]})]})]})}const WQ={BUY_YES:"bg-green",BUY_NO:"bg-red"};function HQ(){var v,g,x,b,y,h;const[e,t]=N.useState(null),[r,n]=N.useState(null),[i,a]=N.useState(!0),[o,s]=N.useState("signals");N.useEffect(()=>{l();const m=setInterval(l,3e4);return()=>clearInterval(m)},[]);async function l(){try{const[m,S]=await Promise.all([ht("/signals"),ht("/signals/dashboard")]);t(m),n(S)}catch{}a(!1)}if(i)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const u=(r==null?void 0:r.stats)||{},d=(e==null?void 0:e.signals)||[],f=(e==null?void 0:e.probabilityShifts)||[],p=(r==null?void 0:r.sourceBreakdown)||[];return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Signal Pipeline"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"News → Sentiment → Probability → Signals → Risk"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[((v=e==null?void 0:e.pipeline)==null?void 0:v.cachedMarkets)||0," markets tracked"]}),c.jsx("button",{onClick:l,className:"btn btn-o text-sm",children:"Refresh"})]})]}),c.jsx("div",{className:"grid grid-cols-6 gap-3",children:[{label:"Signals (24h)",value:u.total_signals||0,color:"text-amber-400"},{label:"Approved",value:u.approved_signals||0,color:"text-green-400"},{label:"BUY YES",value:u.buy_yes||0,color:"text-green-400"},{label:"BUY NO",value:u.buy_no||0,color:"text-red-400"},{label:"Avg Edge",value:u.avg_edge?`${(u.avg_edge*100).toFixed(1)}%`:"—",color:"text-blue-400"},{label:"Avg Confidence",value:u.avg_confidence?`${(u.avg_confidence*100).toFixed(0)}%`:"—",color:"text-purple-400"}].map(m=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:m.label}),c.jsx("p",{className:`text-xl font-bold ${m.color}`,children:m.value})]},m.label))}),c.jsx("div",{className:"flex gap-1 border-b border-gray-800 pb-1",children:["signals","shifts","sources"].map(m=>c.jsx("button",{onClick:()=>s(m),className:`px-4 py-2 text-sm rounded-t-lg transition ${o===m?"bg-gray-800 text-amber-400 font-medium":"text-gray-500 hover:text-gray-300"}`,children:m==="signals"?"Strategy Signals":m==="shifts"?"Probability Shifts":"Source Breakdown"},m))}),o==="signals"&&c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Market"}),c.jsx("th",{children:"Direction"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Size"}),c.jsx("th",{children:"Confidence"}),c.jsx("th",{children:"Risk"}),c.jsx("th",{children:"Reasoning"})]})}),c.jsx("tbody",{children:d.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:8,className:"text-center text-gray-500 py-8",children:"No signals yet"})}):d.map(m=>c.jsxs("tr",{children:[c.jsx("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:new Date(m.created_at).toLocaleTimeString()}),c.jsx("td",{className:"font-mono text-xs max-w-[200px] truncate",children:m.kalshi_url?c.jsx("a",{href:m.kalshi_url,target:"_blank",rel:"noopener noreferrer",className:"text-amber-400 hover:text-amber-300 underline decoration-amber-400/30 hover:decoration-amber-300",children:m.market_id}):m.market_id}),c.jsx("td",{children:c.jsx("span",{className:`badge ${WQ[m.direction]||"bg-yellow"}`,children:m.direction})}),c.jsxs("td",{className:`font-mono ${parseFloat(m.expected_edge)>0?"text-green-400":"text-red-400"}`,children:[(parseFloat(m.expected_edge)*100).toFixed(1),"%"]}),c.jsx("td",{className:"font-mono text-gray-400",children:m.size_recommendation}),c.jsx("td",{children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-16 h-1.5 bg-gray-700 rounded-full overflow-hidden",children:c.jsx("div",{className:`h-full rounded-full ${parseFloat(m.confidence)>.7?"bg-green-500":parseFloat(m.confidence)>.5?"bg-amber-500":"bg-red-500"}`,style:{width:`${parseFloat(m.confidence)*100}%`}})}),c.jsxs("span",{className:"text-xs text-gray-400",children:[(parseFloat(m.confidence)*100).toFixed(0),"%"]})]})}),c.jsx("td",{children:c.jsx("span",{className:`badge ${m.risk_approved?"bg-green":"bg-red"}`,children:m.risk_approved?"APPROVED":"BLOCKED"})}),c.jsx("td",{className:"text-xs text-gray-400 max-w-[300px] truncate",children:m.reasoning})]},m.id))})]})}),o==="shifts"&&c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Market"}),c.jsx("th",{children:"Prior"}),c.jsx("th",{children:"Impact"}),c.jsx("th",{children:"Adjusted"}),c.jsx("th",{children:"Market Price"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Articles"})]})}),c.jsx("tbody",{children:f.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:8,className:"text-center text-gray-500 py-8",children:"No probability shifts yet"})}):f.map((m,S)=>{const w=parseFloat(m.edge)||0;return c.jsxs("tr",{children:[c.jsx("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:new Date(m.created_at).toLocaleTimeString()}),c.jsx("td",{className:"font-mono text-xs max-w-[200px] truncate",children:m.kalshi_url?c.jsx("a",{href:m.kalshi_url,target:"_blank",rel:"noopener noreferrer",className:"text-amber-400 hover:text-amber-300 underline decoration-amber-400/30 hover:decoration-amber-300",children:m.market_id}):m.market_id}),c.jsxs("td",{className:"font-mono text-gray-400",children:[(parseFloat(m.prior_probability)*100).toFixed(1),"%"]}),c.jsxs("td",{className:`font-mono ${parseFloat(m.sentiment_impact)>0?"text-green-400":"text-red-400"}`,children:[parseFloat(m.sentiment_impact)>0?"+":"",(parseFloat(m.sentiment_impact)*100).toFixed(2),"%"]}),c.jsxs("td",{className:"font-mono text-amber-400",children:[(parseFloat(m.adjusted_probability)*100).toFixed(1),"%"]}),c.jsxs("td",{className:"font-mono text-gray-400",children:[(parseFloat(m.market_probability)*100).toFixed(1),"%"]}),c.jsxs("td",{className:`font-mono font-bold ${w>0?"text-green-400":w<0?"text-red-400":"text-gray-400"}`,children:[w>0?"+":"",(w*100).toFixed(1),"%"]}),c.jsx("td",{className:"text-gray-400",children:m.num_articles})]},S)})})]})}),o==="sources"&&c.jsx("div",{className:"card",children:c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Active Sources (last hour)"}),c.jsx("div",{className:"space-y-2",children:p.length===0?c.jsx("p",{className:"text-gray-600 text-sm",children:"No recent data"}):p.map((m,S)=>c.jsxs("div",{className:"flex items-center justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-sm font-medium",children:m.source}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsxs("span",{className:"text-xs text-gray-500",children:[m.cnt," items"]}),c.jsxs("span",{className:`text-xs font-mono ${parseFloat(m.avg_sent)>.05?"text-green-400":parseFloat(m.avg_sent)<-.05?"text-red-400":"text-gray-400"}`,children:[parseFloat(m.avg_sent)>0?"+":"",(parseFloat(m.avg_sent)*100).toFixed(0),"%"]})]})]},S))})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Pipeline Config"}),c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Market Scan"}),c.jsx("span",{children:"Every 15 min"})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Signal Pipeline"}),c.jsx("span",{children:"Every 5 min"})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Intelligence Sweep"}),c.jsx("span",{children:"Every 30 min"})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Min Edge Threshold"}),c.jsxs("span",{children:[((((x=(g=e==null?void 0:e.pipeline)==null?void 0:g.riskLimits)==null?void 0:x.minEdgeThreshold)||.05)*100).toFixed(0),"%"]})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Min Liquidity"}),c.jsxs("span",{children:[((y=(b=e==null?void 0:e.pipeline)==null?void 0:b.riskLimits)==null?void 0:y.minLiquidity)||100," vol"]})]}),c.jsxs("div",{className:"flex justify-between p-2 rounded bg-gray-800/30",children:[c.jsx("span",{className:"text-gray-500",children:"Cached Markets"}),c.jsx("span",{className:"text-amber-400",children:((h=e==null?void 0:e.pipeline)==null?void 0:h.cachedMarkets)||0})]})]})]})]})})]})}const C1={reddit_hot:"🔴",reddit:"📋",google_news:"📰",hackernews:"🟠",metaculus:"🔮",manifold:"📊",gdelt_tv:"📺",youtube:"▶️",lemmy:"🟢",lobsters:"🦞",tildes:"~",bluesky:"🦋",mastodon:"🐘",predictit:"💰",fred:"📈",nws:"⛈️",govtrack:"🏛️",discord:"💬"};function KQ(){const[e,t]=N.useState(null),[r,n]=N.useState(!0),[i,a]=N.useState(""),[o,s]=N.useState("captured_at"),[l,u]=N.useState("desc");N.useEffect(()=>{d();const h=setInterval(d,6e4);return()=>clearInterval(h)},[]);async function d(){try{const h=await ht("/intelligence");t(h)}catch{}n(!1)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const f=(e==null?void 0:e.totals)||{},p=(e==null?void 0:e.sourceCounts)||[],v=((e==null?void 0:e.recent)||[]).filter(h=>!i||h.source.toLowerCase().includes(i.toLowerCase())||(h.post_title||"").toLowerCase().includes(i.toLowerCase())||(h.keyword||"").toLowerCase().includes(i.toLowerCase()));function g(h){o===h?u(m=>m==="asc"?"desc":"asc"):(s(h),u(h==="captured_at"?"desc":"asc"))}const x=(h,m)=>{let S,w;switch(o){case"captured_at":S=new Date(h.captured_at),w=new Date(m.captured_at);break;case"source":S=h.source||"",w=m.source||"";break;case"keyword":S=h.keyword||h.subreddit||"",w=m.keyword||m.subreddit||"";break;case"post_title":S=(h.post_title||"").toLowerCase(),w=(m.post_title||"").toLowerCase();break;case"score":S=Number(h.score||0),w=Number(m.score||0);break;case"sentiment":S=parseFloat(h.sentiment_score||0),w=parseFloat(m.sentiment_score||0);break;default:return 0}return S<w?l==="asc"?-1:1:S>w?l==="asc"?1:-1:0},b=[...v].sort(x),y=({col:h,label:m})=>c.jsxs("th",{onClick:()=>g(h),className:"cursor-pointer select-none hover:text-amber-400 transition",children:[m," ",o===h?l==="asc"?"▲":"▼":c.jsx("span",{className:"text-gray-600",children:"⇅"})]});return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Intelligence Feed"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Real-time data from 20+ sources"})]}),c.jsx("button",{onClick:d,className:"btn btn-o text-sm",children:"Refresh"})]}),c.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Total Items"}),c.jsx("p",{className:"text-xl font-bold text-amber-400",children:Number(f.total_items||0).toLocaleString()})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Last Hour"}),c.jsx("p",{className:"text-xl font-bold text-green-400",children:f.last_hour||0})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Last 4 Hours"}),c.jsx("p",{className:"text-xl font-bold text-blue-400",children:f.last_4h||0})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:"Avg Sentiment (1h)"}),c.jsx("p",{className:`text-xl font-bold ${parseFloat(f.avg_sentiment_1h)>0?"text-green-400":parseFloat(f.avg_sentiment_1h)<0?"text-red-400":"text-gray-400"}`,children:f.avg_sentiment_1h?`${(parseFloat(f.avg_sentiment_1h)*100).toFixed(1)}%`:"—"})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Active Sources"}),c.jsx("div",{className:"flex flex-wrap gap-2",children:p.map((h,m)=>c.jsxs("button",{onClick:()=>a(i===h.source?"":h.source),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs transition ${i===h.source?"bg-amber-500/20 text-amber-400 border border-amber-500/30":"bg-gray-800/50 text-gray-400 border border-gray-700 hover:border-gray-600"}`,children:[c.jsx("span",{children:C1[h.source]||"📡"}),c.jsx("span",{className:"font-medium",children:h.source}),c.jsx("span",{className:"text-gray-500",children:h.cnt}),c.jsxs("span",{className:`font-mono ${parseFloat(h.avg_sent)>.05?"text-green-400":parseFloat(h.avg_sent)<-.05?"text-red-400":"text-gray-500"}`,children:[parseFloat(h.avg_sent)>0?"+":"",(parseFloat(h.avg_sent)*100).toFixed(0),"%"]})]},m))})]}),c.jsx("input",{type:"text",value:i,onChange:h=>a(h.target.value),placeholder:"Filter by source, keyword, or title...",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none"}),c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx(y,{col:"captured_at",label:"Time"}),c.jsx(y,{col:"source",label:"Source"}),c.jsx(y,{col:"keyword",label:"Topic"}),c.jsx(y,{col:"post_title",label:"Title"}),c.jsx(y,{col:"score",label:"Score"}),c.jsx(y,{col:"sentiment",label:"Sentiment"})]})}),c.jsx("tbody",{children:b.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No items match filter"})}):b.slice(0,50).map((h,m)=>c.jsxs("tr",{children:[c.jsx("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:new Date(h.captured_at).toLocaleTimeString()}),c.jsx("td",{children:c.jsxs("span",{className:"badge bg-blue text-xs",children:[C1[h.source]||"📡"," ",h.source]})}),c.jsx("td",{className:"text-xs text-gray-500",children:h.keyword||h.subreddit||"—"}),c.jsx("td",{className:"max-w-[400px]",children:h.post_url?c.jsx("a",{href:h.post_url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-300 hover:text-amber-400 truncate block",children:h.post_title}):c.jsx("span",{className:"text-sm text-gray-300 truncate block",children:h.post_title})}),c.jsxs("td",{className:"font-mono text-xs text-gray-400",children:[h.score||0,h.num_comments?` / ${h.num_comments}c`:""]}),c.jsx("td",{children:c.jsxs("span",{className:`font-mono text-xs ${parseFloat(h.sentiment_score)>.1?"text-green-400":parseFloat(h.sentiment_score)<-.1?"text-red-400":"text-gray-500"}`,children:[parseFloat(h.sentiment_score)>0?"+":"",(parseFloat(h.sentiment_score)*100).toFixed(0),"%"]})})]},m))})]})})]})}function VQ(){const[e,t]=N.useState(null),[r,n]=N.useState(null),[i,a]=N.useState(null),[o,s]=N.useState(!0),[l,u]=N.useState("");N.useEffect(()=>{d();const y=setInterval(d,15e3);return()=>clearInterval(y)},[]);async function d(){try{const[y,h,m]=await Promise.all([he("/trading/mode",{action:"get"}),ht("/trading/history"),ht("/system")]);t(y),n(h),a(m)}catch{}s(!1)}async function f(y,h={}){u(y);try{await he("/trading/mode",{action:y,...h}),await d()}catch{}u("")}if(o)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const p=(e==null?void 0:e.trade_config)||{},v=(e==null?void 0:e.trader_state)||{},g=(r==null?void 0:r.summary)||{},x=(r==null?void 0:r.trades)||[],b=(i==null?void 0:i.memory)||{};return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Trading Control"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Mode, execution, and P&L"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`badge ${(e==null?void 0:e.env)==="prod"?"bg-green":"bg-yellow"}`,children:((e==null?void 0:e.env)||"demo").toUpperCase()}),(e==null?void 0:e.safe_mode)&&c.jsx("span",{className:"badge bg-yellow",children:"SAFE"}),(e==null?void 0:e.auto_trader_enabled)&&c.jsx("span",{className:"badge bg-green",children:"AUTO"})]})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Environment"}),c.jsxs("div",{className:"flex gap-2 mb-3",children:[c.jsx("button",{onClick:()=>f("switch_env",{env:"demo"}),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${(e==null?void 0:e.env)==="demo"?"bg-amber-500/20 text-amber-400 border border-amber-500/40":"bg-gray-800 text-gray-500 border border-gray-700"}`,disabled:l==="switch_env",children:"DEMO"}),c.jsx("button",{onClick:()=>f("switch_env",{env:"prod"}),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${(e==null?void 0:e.env)==="prod"?"bg-green-500/20 text-green-400 border border-green-500/40":"bg-gray-800 text-gray-500 border border-gray-700"}`,disabled:l==="switch_env",children:"PROD"})]}),c.jsxs("p",{className:"text-[10px] text-gray-600",children:["API keys: ",e!=null&&e.kalshi_connected?"Configured":"Not set"]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Safe Mode"}),c.jsx("button",{onClick:()=>f("toggle_safe_mode"),className:`w-full py-3 rounded-lg text-sm font-bold transition ${e!=null&&e.safe_mode?"bg-yellow-500/20 text-yellow-400 border border-yellow-500/40":"bg-red-500/20 text-red-400 border border-red-500/40"}`,disabled:l==="toggle_safe_mode",children:e!=null&&e.safe_mode?"SAFE MODE ON — Click to Disable":"SAFE MODE OFF — LIVE TRADING"}),c.jsx("p",{className:"text-[10px] text-gray-600 mt-2",children:e!=null&&e.safe_mode?"No real orders will be placed":"Real orders will be executed!"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Auto Trader"}),c.jsx("button",{onClick:()=>f("toggle_auto_trader"),className:`w-full py-3 rounded-lg text-sm font-bold transition ${e!=null&&e.auto_trader_enabled?"bg-green-500/20 text-green-400 border border-green-500/40":"bg-gray-800 text-gray-500 border border-gray-700"}`,disabled:l==="toggle_auto_trader",children:e!=null&&e.auto_trader_enabled?"AUTO TRADER: ON":"AUTO TRADER: OFF"}),c.jsxs("p",{className:"text-[10px] text-gray-600 mt-2",children:["Min confidence: ",p.min_confidence,"% | Budget: $",(p.budget_cents/100).toFixed(0)]})]})]}),c.jsx("div",{className:"grid grid-cols-6 gap-3",children:[{label:"Total Trades",value:g.total_trades||0,color:"text-amber-400"},{label:"Open",value:g.open_trades||0,color:"text-blue-400"},{label:"Wins",value:g.winning_trades||0,color:"text-green-400"},{label:"Losses",value:g.losing_trades||0,color:"text-red-400"},{label:"Total P&L",value:g.total_pnl?`$${(parseInt(g.total_pnl)/100).toFixed(2)}`:"$0.00",color:parseInt(g.total_pnl||0)>=0?"text-green-400":"text-red-400"},{label:"Exposure",value:`$${(parseInt(g.open_exposure||0)/100).toFixed(2)}`,color:"text-purple-400"}].map(y=>c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-[10px] text-gray-500 uppercase mb-1",children:y.label}),c.jsx("p",{className:`text-lg font-bold ${y.color}`,children:y.value})]},y.label))}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"Trade Config"}),c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Budget"}),c.jsxs("span",{className:"font-mono",children:["$",(p.budget_cents/100).toFixed(0)]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Max per trade"}),c.jsxs("span",{className:"font-mono",children:["$",(p.max_position_cents/100).toFixed(0)]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Max positions"}),c.jsx("span",{className:"font-mono",children:p.max_open_positions})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Daily loss limit"}),c.jsxs("span",{className:"font-mono",children:["$",(p.daily_loss_limit_cents/100).toFixed(0)]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Min confidence"}),c.jsxs("span",{className:"font-mono",children:[p.min_confidence,"%"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Take profit"}),c.jsxs("span",{className:"font-mono",children:[p.take_profit_pct,"%"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Stop loss"}),c.jsxs("span",{className:"font-mono",children:[p.stop_loss_pct,"%"]})]})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-3",children:"System Health"}),c.jsxs("div",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Memory (RSS)"}),c.jsxs("span",{className:"font-mono",children:[b.rss_mb||"?","MB"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Heap Used"}),c.jsxs("span",{className:"font-mono",children:[b.heapUsed_mb||"?","MB"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Heap Total"}),c.jsxs("span",{className:"font-mono",children:[b.heapTotal_mb||"?","MB"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Uptime"}),c.jsxs("span",{className:"font-mono",children:[(i==null?void 0:i.uptime_hours)||"?","h"]})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Cached Markets"}),c.jsx("span",{className:"font-mono text-amber-400",children:(i==null?void 0:i.cachedMarkets)||0})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"PID"}),c.jsx("span",{className:"font-mono text-gray-400",children:(i==null?void 0:i.pid)||"?"})]}),c.jsxs("div",{className:"flex justify-between p-2 bg-gray-800/30 rounded",children:[c.jsx("span",{className:"text-gray-500",children:"Available Budget"}),c.jsxs("span",{className:"font-mono text-green-400",children:["$",((v.available||0)/100).toFixed(2)]})]})]})]})]}),c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsx("h3",{className:"font-semibold mb-3",children:"Trade History"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Market"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Qty"}),c.jsx("th",{children:"Entry"}),c.jsx("th",{children:"Exit"}),c.jsx("th",{children:"P&L"}),c.jsx("th",{children:"Type"}),c.jsx("th",{children:"Status"})]})}),c.jsx("tbody",{children:x.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:9,className:"text-center text-gray-500 py-8",children:"No trades yet — signals are generating, waiting for execution"})}):x.map((y,h)=>{const m=parseInt(y.pnl_cents)||0;return c.jsxs("tr",{children:[c.jsxs("td",{className:"text-xs text-gray-500 whitespace-nowrap",children:[new Date(y.created_at).toLocaleDateString()," ",new Date(y.created_at).toLocaleTimeString()]}),c.jsx("td",{className:"max-w-[200px] truncate text-sm",children:y.title||y.ticker}),c.jsx("td",{children:c.jsx("span",{className:`badge ${y.side==="yes"?"bg-green":"bg-red"}`,children:(y.side||"").toUpperCase()})}),c.jsx("td",{className:"font-mono text-gray-400",children:y.count}),c.jsxs("td",{className:"font-mono text-gray-400",children:[y.price_cents,"c"]}),c.jsx("td",{className:"font-mono text-gray-400",children:y.exit_price?`${y.exit_price}c`:"—"}),c.jsx("td",{className:`font-mono font-bold ${m>0?"text-green-400":m<0?"text-red-400":"text-gray-500"}`,children:m!==0?`${m>0?"+":""}$${(m/100).toFixed(2)}`:"—"}),c.jsx("td",{className:"text-xs text-gray-500",children:y.signal_type}),c.jsx("td",{children:c.jsx("span",{className:`badge ${y.status==="open"?"bg-blue":y.status==="profit"?"bg-green":y.status==="stopped"?"bg-red":"bg-yellow"}`,children:y.status})})]},h)})})]})]})]})}function GQ(){return c.jsx(_k,{children:c.jsxs(yk,{children:[c.jsx(xt,{path:"/login",element:c.jsx(Ck,{})}),c.jsx(xt,{path:"/setup",element:c.jsx(Gk,{})}),c.jsxs(xt,{path:"/",element:c.jsx(Ik,{}),children:[c.jsx(xt,{index:!0,element:c.jsx(kQ,{})}),c.jsx(xt,{path:"markets",element:c.jsx(EQ,{})}),c.jsx(xt,{path:"positions",element:c.jsx($Q,{})}),c.jsx(xt,{path:"orders",element:c.jsx(TQ,{})}),c.jsx(xt,{path:"signals",element:c.jsx(HQ,{})}),c.jsx(xt,{path:"intelligence",element:c.jsx(KQ,{})}),c.jsx(xt,{path:"trading",element:c.jsx(VQ,{})}),c.jsx(xt,{path:"weather",element:c.jsx(CQ,{})}),c.jsx(xt,{path:"risk",element:c.jsx(BQ,{})}),c.jsx(xt,{path:"settings",element:c.jsx(UQ,{})})]})]})})}Rd.createRoot(document.getElementById("root")).render(c.jsx(GQ,{}));
diff --git a/kalshi-dash/dist/assets/index-Ggn7I0OX.css b/kalshi-dash/dist/assets/index-Ggn7I0OX.css
deleted file mode 100644
index 0fabd0a..0000000
--- a/kalshi-dash/dist/assets/index-Ggn7I0OX.css
+++ /dev/null
@@ -1 +0,0 @@
-*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-top-2{top:-.5rem}.left-1{left:.25rem}.left-6{left:1.5rem}.right-3{right:.75rem}.top-1{top:.25rem}.top-1\/2{top:50%}.z-10{z-index:10}.col-span-2{grid-column:span 2 / span 2}.row-span-2{grid-row:span 2 / span 2}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-full{height:100%}.max-h-48{max-height:12rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[1600px\]{max-width:1600px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-\[300px\]{max-width:300px}.max-w-\[400px\]{max-width:400px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1{row-gap:.25rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-amber-500\/15{border-color:#f59e0b26}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/30{border-color:#f59e0b4d}.border-amber-500\/40{border-color:#f59e0b66}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/25{border-color:#3b82f640}.border-blue-500\/30{border-color:#3b82f64d}.border-gray-400\/30{border-color:#9ca3af4d}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-700\/50{border-color:#37415180}.border-gray-700\/60{border-color:#37415199}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-gray-800\/40{border-color:#1f293766}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/15{border-color:#22c55e26}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/25{border-color:#22c55e40}.border-green-500\/30{border-color:#22c55e4d}.border-green-500\/40{border-color:#22c55e66}.border-orange-700\/30{border-color:#c2410c4d}.border-purple-500\/30{border-color:#a855f74d}.border-red-500\/10{border-color:#ef44441a}.border-red-500\/20{border-color:#ef444433}.border-red-500\/25{border-color:#ef444440}.border-red-500\/30{border-color:#ef44444d}.border-red-500\/40{border-color:#ef444466}.border-transparent{border-color:transparent}.border-yellow-500\/30{border-color:#eab3084d}.border-yellow-500\/40{border-color:#eab30866}.border-t-transparent{border-top-color:transparent}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-gray-400\/20{background-color:#9ca3af33}.bg-gray-500\/20{background-color:#6b728033}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/30{background-color:#1f29374d}.bg-gray-800\/40{background-color:#1f293766}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-900\/20{background-color:#11182733}.bg-gray-900\/50{background-color:#11182780}.bg-gray-900\/60{background-color:#11182799}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/15{background-color:#22c55e26}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/30{background-color:#22c55e4d}.bg-green-500\/5{background-color:#22c55e0d}.bg-orange-700\/20{background-color:#c2410c33}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(250 204 21 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/15{background-color:#eab30826}.bg-yellow-500\/20{background-color:#eab30833}.bg-yellow-500\/30{background-color:#eab3084d}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-500\/15{--tw-gradient-from: rgb(245 158 11 / .15) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500\/5{--tw-gradient-from: rgb(245 158 11 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/20{--tw-gradient-from: rgb(59 130 246 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/5{--tw-gradient-from: rgb(59 130 246 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-400\/10{--tw-gradient-from: rgb(156 163 175 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(156 163 175 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-800\/30{--tw-gradient-from: rgb(31 41 55 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500\/20{--tw-gradient-from: rgb(34 197 94 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500\/5{--tw-gradient-from: rgb(34 197 94 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-700\/10{--tw-gradient-from: rgb(194 65 12 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(194 65 12 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500\/20{--tw-gradient-from: rgb(168 85 247 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-amber-500\/5{--tw-gradient-to: rgb(245 158 11 / .05) var(--tw-gradient-to-position)}.to-blue-500\/5{--tw-gradient-to: rgb(59 130 246 / .05) var(--tw-gradient-to-position)}.to-gray-400\/5{--tw-gradient-to: rgb(156 163 175 / .05) var(--tw-gradient-to-position)}.to-green-500\/5{--tw-gradient-to: rgb(34 197 94 / .05) var(--tw-gradient-to-position)}.to-orange-700\/5{--tw-gradient-to: rgb(194 65 12 / .05) var(--tw-gradient-to-position)}.to-purple-500\/5{--tw-gradient-to: rgb(168 85 247 / .05) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pr-10{padding-right:2.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.decoration-amber-400\/30{text-decoration-color:#fbbf244d}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}:root{--bg: #0a0e1a;--card: #111827;--border: #1e293b;--accent: #f59e0b}body{background:var(--bg);color:#e2e8f0;font-family:Inter,sans-serif;margin:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#374151;border-radius:3px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.stat-v{font-size:1.75rem;font-weight:700;line-height:1}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:.75rem;font-weight:600}.bg-green{background:#10b98126;color:#10b981}.bg-red{background:#ef444426;color:#ef4444}.bg-yellow{background:#f59e0b26;color:#f59e0b}.bg-blue{background:#3b82f626;color:#3b82f6}.bg-orange{background:#f9731626;color:#f97316}.pulse-g{animation:pg 2s infinite}@keyframes pg{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 6px #f59e0b00}}.btn{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;border:none;transition:all .15s}.btn-p{background:#f59e0b;color:#111}.btn-p:hover{background:#d97706}.btn-d{background:#ef4444;color:#fff}.btn-d:hover{background:#dc2626}.btn-s{background:#10b981;color:#fff}.btn-s:hover{background:#059669}.btn-o{background:transparent;border:1px solid var(--border);color:#9ca3af}.btn-o:hover{border-color:#f59e0b;color:#f59e0b}table{width:100%;border-collapse:collapse}th{text-align:left;padding:.75rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:1px solid var(--border)}td{padding:.75rem;border-bottom:1px solid rgba(30,41,59,.5);font-size:.85rem}tr:hover td{background:#f59e0b08}.kalshi-gradient{background:linear-gradient(135deg,#f59e0b,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.last\:border-0:last-child{border-width:0px}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-gray-600:hover{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.hover\:bg-gray-800\/50:hover{background-color:#1f293780}.hover\:bg-gray-800\/60:hover{background-color:#1f293799}.hover\:text-amber-300:hover{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.hover\:text-amber-400:hover{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:decoration-amber-300:hover{text-decoration-color:#fcd34d}.focus\:border-amber-500:focus{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:opacity-50:disabled{opacity:.5}
diff --git a/kalshi-dash/dist/assets/index-wV2sMfbv.css b/kalshi-dash/dist/assets/index-wV2sMfbv.css
new file mode 100644
index 0000000..ef03048
--- /dev/null
+++ b/kalshi-dash/dist/assets/index-wV2sMfbv.css
@@ -0,0 +1 @@
+*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-top-2{top:-.5rem}.left-1{left:.25rem}.left-6{left:1.5rem}.right-3{right:.75rem}.top-1{top:.25rem}.top-1\/2{top:50%}.z-10{z-index:10}.col-span-2{grid-column:span 2 / span 2}.row-span-2{grid-row:span 2 / span 2}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-full{height:100%}.max-h-48{max-height:12rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[1600px\]{max-width:1600px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-\[300px\]{max-width:300px}.max-w-\[400px\]{max-width:400px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1{row-gap:.25rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-amber-500\/15{border-color:#f59e0b26}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/30{border-color:#f59e0b4d}.border-amber-500\/40{border-color:#f59e0b66}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/25{border-color:#3b82f640}.border-blue-500\/30{border-color:#3b82f64d}.border-cyan-500\/30{border-color:#06b6d44d}.border-gray-400\/30{border-color:#9ca3af4d}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-700\/50{border-color:#37415180}.border-gray-700\/60{border-color:#37415199}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-gray-800\/40{border-color:#1f293766}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/15{border-color:#22c55e26}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/25{border-color:#22c55e40}.border-green-500\/30{border-color:#22c55e4d}.border-green-500\/40{border-color:#22c55e66}.border-orange-700\/30{border-color:#c2410c4d}.border-purple-500\/30{border-color:#a855f74d}.border-red-500\/10{border-color:#ef44441a}.border-red-500\/20{border-color:#ef444433}.border-red-500\/25{border-color:#ef444440}.border-red-500\/30{border-color:#ef44444d}.border-red-500\/40{border-color:#ef444466}.border-transparent{border-color:transparent}.border-yellow-500\/30{border-color:#eab3084d}.border-yellow-500\/40{border-color:#eab30866}.border-t-transparent{border-top-color:transparent}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-gray-400\/20{background-color:#9ca3af33}.bg-gray-500\/20{background-color:#6b728033}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/30{background-color:#1f29374d}.bg-gray-800\/40{background-color:#1f293766}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-900\/20{background-color:#11182733}.bg-gray-900\/50{background-color:#11182780}.bg-gray-900\/60{background-color:#11182799}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/15{background-color:#22c55e26}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/30{background-color:#22c55e4d}.bg-green-500\/5{background-color:#22c55e0d}.bg-orange-700\/20{background-color:#c2410c33}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(250 204 21 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/15{background-color:#eab30826}.bg-yellow-500\/20{background-color:#eab30833}.bg-yellow-500\/30{background-color:#eab3084d}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-500\/15{--tw-gradient-from: rgb(245 158 11 / .15) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500\/5{--tw-gradient-from: rgb(245 158 11 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/20{--tw-gradient-from: rgb(59 130 246 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/5{--tw-gradient-from: rgb(59 130 246 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-500\/20{--tw-gradient-from: rgb(6 182 212 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-400\/10{--tw-gradient-from: rgb(156 163 175 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(156 163 175 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-800\/30{--tw-gradient-from: rgb(31 41 55 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500\/20{--tw-gradient-from: rgb(34 197 94 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500\/5{--tw-gradient-from: rgb(34 197 94 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-700\/10{--tw-gradient-from: rgb(194 65 12 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(194 65 12 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500\/20{--tw-gradient-from: rgb(168 85 247 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-amber-500\/5{--tw-gradient-to: rgb(245 158 11 / .05) var(--tw-gradient-to-position)}.to-blue-500\/5{--tw-gradient-to: rgb(59 130 246 / .05) var(--tw-gradient-to-position)}.to-cyan-500\/5{--tw-gradient-to: rgb(6 182 212 / .05) var(--tw-gradient-to-position)}.to-gray-400\/5{--tw-gradient-to: rgb(156 163 175 / .05) var(--tw-gradient-to-position)}.to-green-500\/5{--tw-gradient-to: rgb(34 197 94 / .05) var(--tw-gradient-to-position)}.to-orange-700\/5{--tw-gradient-to: rgb(194 65 12 / .05) var(--tw-gradient-to-position)}.to-purple-500\/5{--tw-gradient-to: rgb(168 85 247 / .05) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pr-10{padding-right:2.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.decoration-amber-400\/30{text-decoration-color:#fbbf244d}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-cyan-500\/30{--tw-ring-color: rgb(6 182 212 / .3)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}:root{--bg: #0a0e1a;--card: #111827;--border: #1e293b;--accent: #f59e0b}body{background:var(--bg);color:#e2e8f0;font-family:Inter,sans-serif;margin:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#374151;border-radius:3px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.stat-v{font-size:1.75rem;font-weight:700;line-height:1}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:.75rem;font-weight:600}.bg-green{background:#10b98126;color:#10b981}.bg-red{background:#ef444426;color:#ef4444}.bg-yellow{background:#f59e0b26;color:#f59e0b}.bg-blue{background:#3b82f626;color:#3b82f6}.bg-orange{background:#f9731626;color:#f97316}.pulse-g{animation:pg 2s infinite}@keyframes pg{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 6px #f59e0b00}}.btn{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;border:none;transition:all .15s}.btn-p{background:#f59e0b;color:#111}.btn-p:hover{background:#d97706}.btn-d{background:#ef4444;color:#fff}.btn-d:hover{background:#dc2626}.btn-s{background:#10b981;color:#fff}.btn-s:hover{background:#059669}.btn-o{background:transparent;border:1px solid var(--border);color:#9ca3af}.btn-o:hover{border-color:#f59e0b;color:#f59e0b}table{width:100%;border-collapse:collapse}th{text-align:left;padding:.75rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:1px solid var(--border)}td{padding:.75rem;border-bottom:1px solid rgba(30,41,59,.5);font-size:.85rem}tr:hover td{background:#f59e0b08}.kalshi-gradient{background:linear-gradient(135deg,#f59e0b,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.last\:border-0:last-child{border-width:0px}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-gray-600:hover{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.hover\:bg-gray-800\/50:hover{background-color:#1f293780}.hover\:bg-gray-800\/60:hover{background-color:#1f293799}.hover\:text-amber-300:hover{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.hover\:text-amber-400:hover{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:decoration-amber-300:hover{text-decoration-color:#fcd34d}.focus\:border-amber-500:focus{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:opacity-50:disabled{opacity:.5}
diff --git a/kalshi-dash/dist/index.html b/kalshi-dash/dist/index.html
index e3db1c6..52bce46 100644
--- a/kalshi-dash/dist/index.html
+++ b/kalshi-dash/dist/index.html
@@ -6,8 +6,8 @@
<title>Ken - Event Contracts Trading</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
- <script type="module" crossorigin src="/assets/index-CGoDMavW.js"></script>
- <link rel="stylesheet" crossorigin href="/assets/index-Ggn7I0OX.css">
+ <script type="module" crossorigin src="/assets/index-Cfq6Mp9p.js"></script>
+ <link rel="stylesheet" crossorigin href="/assets/index-wV2sMfbv.css">
</head>
<body>
<div id="root"></div>
diff --git a/kalshi-dash/src/pages/Dashboard.jsx b/kalshi-dash/src/pages/Dashboard.jsx
index be4b0a2..880e07c 100644
--- a/kalshi-dash/src/pages/Dashboard.jsx
+++ b/kalshi-dash/src/pages/Dashboard.jsx
@@ -105,7 +105,7 @@ function TopOpportunities({ opportunities }) {
}
// ── Strategy Insight: Animated Flow Diagram ──
-function StrategyFlowDiagram({ topMarkets }) {
+function StrategyFlowDiagram({ topMarkets, seedMoney, balance }) {
const best = (topMarkets || []).slice(0, 3);
if (!best.length) return null;
const avgWinRate = best.reduce((s, m) => s + m.wins / (m.wins + m.losses), 0) / best.length * 100;
@@ -113,6 +113,9 @@ function StrategyFlowDiagram({ topMarkets }) {
const wr = m.wins / (m.wins + m.losses || 1);
return s + (wr >= 0.9 ? 95 : 80);
}, 0) / best.length) : 95;
+ const seedDollars = seedMoney ? (seedMoney / 100) : 50000;
+ const balDollars = balance ? (balance / 100) : seedDollars;
+ const pnlPct = seedDollars > 0 ? ((balDollars - seedDollars) / seedDollars * 100) : 0;
return (
<div className="card border border-green-500/15 bg-gradient-to-br from-green-500/5 via-transparent to-amber-500/5">
@@ -121,23 +124,25 @@ function StrategyFlowDiagram({ topMarkets }) {
<h2 className="font-semibold">Winning Strategy — Live Flow</h2>
</div>
- {/* Animated Flow: Signal → Trade → Profit */}
+ {/* Animated Flow: Start → Signal → Trade → Hold → Profit */}
<div className="flex items-center justify-between gap-2 mb-5">
{[
+ { icon: '🏦', label: `Start: $${seedDollars.toLocaleString()}`, sub: `Now $${balDollars.toLocaleString()} (${pnlPct >= 0 ? '+' : ''}${pnlPct.toFixed(1)}%)`, color: 'from-cyan-500/20 to-cyan-500/5', border: 'border-cyan-500/30', isStart: true },
+ { icon: '→', isArrow: true },
{ icon: '📡', label: 'Signal Found', sub: 'AI scans 135 markets', color: 'from-blue-500/20 to-blue-500/5', border: 'border-blue-500/30' },
- { icon: '→', label: '', sub: '', color: '', border: '', isArrow: true },
+ { icon: '→', isArrow: true },
{ icon: '🎯', label: `Buy NO at ${avgEntry}¢`, sub: 'High-prob event', color: 'from-amber-500/20 to-amber-500/5', border: 'border-amber-500/30' },
- { icon: '→', label: '', sub: '', color: '', border: '', isArrow: true },
+ { icon: '→', isArrow: true },
{ icon: '⏱️', label: 'Hold 5min–2hr', sub: 'TP +3¢ / SL -5¢', color: 'from-purple-500/20 to-purple-500/5', border: 'border-purple-500/30' },
- { icon: '→', label: '', sub: '', color: '', border: '', isArrow: true },
+ { icon: '→', isArrow: true },
{ icon: '💰', label: `Collect ${100 - avgEntry}¢`, sub: `${avgWinRate.toFixed(0)}% of the time`, color: 'from-green-500/20 to-green-500/5', border: 'border-green-500/30' },
].map((step, i) => step.isArrow ? (
- <div key={i} className="text-gray-600 text-xl animate-pulse">→</div>
+ <div key={i} className="text-gray-600 text-lg animate-pulse">→</div>
) : (
- <div key={i} className={`flex-1 rounded-xl p-3 bg-gradient-to-b ${step.color} border ${step.border} text-center`}>
+ <div key={i} className={`flex-1 rounded-xl p-3 bg-gradient-to-b ${step.color} border ${step.border} text-center ${step.isStart ? 'ring-1 ring-cyan-500/30' : ''}`}>
<div className="text-2xl mb-1">{step.icon}</div>
- <p className="text-xs font-semibold text-gray-200">{step.label}</p>
- <p className="text-[10px] text-gray-500">{step.sub}</p>
+ <p className={`text-xs font-semibold ${step.isStart ? 'text-cyan-300' : 'text-gray-200'}`}>{step.label}</p>
+ <p className={`text-[10px] ${step.isStart && pnlPct >= 0 ? 'text-green-500' : step.isStart ? 'text-red-400' : 'text-gray-500'}`}>{step.sub}</p>
</div>
))}
</div>
@@ -418,7 +423,7 @@ export default function Dashboard() {
<p className="text-[10px] text-gray-500 uppercase mb-2">Daily Breakdown (Last 7 Days)</p>
<div className="grid grid-cols-7 gap-1 text-center text-[10px]">
{(d.daily_economics || []).slice(0, 7).reverse().map((e, i) => {
- const dayLabel = new Date(e.day + 'T12:00:00').toLocaleDateString('en-US', { weekday: 'short', month: 'numeric', day: 'numeric' });
+ const dayLabel = new Date(e.day).toLocaleDateString('en-US', { weekday: 'short', month: 'numeric', day: 'numeric', timeZone: 'America/Los_Angeles' });
return (
<div key={i} className="rounded-lg bg-gray-800/40 p-2 border border-gray-700/50">
<p className="text-gray-500 font-medium">{dayLabel}</p>
@@ -475,7 +480,7 @@ export default function Dashboard() {
{/* Dynamic Strategy Graphics */}
<div className="grid grid-cols-3 gap-4">
<div className="col-span-2">
- <StrategyFlowDiagram topMarkets={d.top_markets} />
+ <StrategyFlowDiagram topMarkets={d.top_markets} seedMoney={d.seed_money} balance={d.balance} />
</div>
<WinRateDonut todayWins={d.today_wins} todayLosses={d.today_losses} />
</div>
← 48f43de chore(alshi-dash,kalshi-dash): update 7 files (.js) [+418/-1
·
back to Bertha
·
chore(alshi-dash,kalshi-dash): update 5 files (.js) [+73/-59 e08eab1 →