1import{r as a,j as e}from"./ui-vendor-efoDfjla.js";import{u as K,D as W,d as I}from"./DashboardLayout-DP1N6NDa.js";import{a as G,c as p}from"./index-Dy-yis_s.js";import{u as H}from"./verifyBanner-kWyVOa9H.js";import{TRADOVATE_RETURN_TO_KEY as X}from"./TradovateCallback-BLPtI8tL.js";import{o as b,P as J,R as Q,L as z,E as Z,X as f,i as ee,l as te}from"./utils-vendor-BXji2ymy.js";import"./router-vendor-CSWcbrtA.js";import"./query-vendor-BYBWvLyW.js";const se="Check these numbers against your prop firm before you trade. We start from your firm's published rules â if you've already traded this account, your real remaining drawdown may differ.";function xe(){const{accounts:i,loading:q,error:g,needsUpgrade:j,isFetching:O,refetch:o}=G(),[r,l]=a.useState(null),[v,F]=a.useState(""),[N,w]=a.useState(""),[y,E]=a.useState("eod_trailing"),[C,_]=a.useState(!1),[B,d]=a.useState(""),[k]=K(),D=i.filter(t=>!t.drawdown_verified_at).map(t=>t.tradovate_account_id),[A,P]=H(D),[U,u]=a.useState(null),[c,S]=a.useState(""),[M,T]=a.useState(!1),x=a.useCallback(async(t,s)=>{T(!0);try{await p.apiCall.invoke({url:"/api/v1/tradovate/account-nickname",method:"PUT",data:{tradovate_account_id:t,nickname:s}}),u(null),await o()}catch{}finally{T(!1)}},[o]),L=t=>U===t.tradovate_account_id?e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("input",{autoFocus:!0,t
1ype:"text",maxLength:30,value:c,disabled:M,placeholder:"Name",onChange:s=>S(s.target.value),onKeyDown:s=>{s.key==="Enter"&&x(t.tradovate_account_id,c.trim()||null),s.key==="Escape"&&u(null)},onBlur:()=>x(t.tradovate_account_id,c.trim()||null),className:"w-36 h-7 px-2 rounded-md bg-[#0D1117] border border-[#22C55E]/50 text-sm font-bold text-[#F0F6FC] placeholder:text-[#484F58] focus:outline-none"}),M?e.jsx(z,{className:"w-3.5 h-3.5 text-[#22C55E] animate-spin"}):e.jsxs(e.Fragment,{children:[e.jsx("button",{onMouseDown:s=>s.preventDefault(),onClick:()=>x(t.tradovate_account_id,c.trim()||null),className:"text-[#22C55E] hover:text-[#16A34A]",title:"Save name","aria-label":"Save name",children:e.jsx(ee,{className:"w-3.5 h-3.5"})}),t.nickname&&e.jsx("button",{onMouseDown:s=>s.preventDefault(),onClick:()=>x(t.tradovate_account_id,null),className:"text-[#8B949E] hover:text-[#EF4444]",title:"Clear name (show account ID only)","aria-label":"Clear name",children:e.jsx(f,{className:"w-3.5 h-3.5"})})]})]}):e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[e.jsx("p",{className:"text-sm font-bold text-[#F0F6FC] truncate",children:I(t.account_name,t.nickname,k)}),e.jsx("button",{onClick:()=>{u(t.tradovate_account_id),S(t.nickname||"")},className:"text-[#484F58] hover:text-[#F0F6FC] flex-shrink-0",title:t.nickname?"Edit name":"Add name","aria-label":"Edit name",children:e.jsx(te,{className:"w-3 h-3"})})]}),R=a.useCallback(async()=>{var t;try{localStorage.setItem(X,"/auto");const s=await p.apiCall.invoke({url:"/api/v1/tradovate/auth/start",method:"GET"});(t=s==null?void 0:s.data)!=null&&t.authorize_url&&(window.location.href=s.data.authorize_url)}catch{}},[]),$=t=>{l(t),F(t.remaining_drawdown>0?String(Math.round(t.remaining_drawdown)):""),w(t.trailing_distance>0?String(Math.round(t.trailing_distance)):""),E(t.drawdown_type||"eod_trailing"),d("")},V=async()=>{if(!r)return;const t=Number(v),s=Number(N)||t;if(!t||t<=0){d("Enter your remaining drawdown (from your firm's dashboard).");return}_(!0),d("");try{const n=Math.round((r.net_liq-t)*100)/100;await p.apiCall.invoke({url:"/api/v1/tradovate/account-overrides",method:"POST",data:{tradovate_account_id:r.tradovate_account_id,trailing_drawdown:s,floor_override:n,drawdown_type:y}}),l(null),await o()}catch(n){d((n==null?void 0:n.message)||"Failed to save")}finally{_(!1)}},m=t=>t.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}),Y=t=>t==="intraday_trailing"||t==="intraday"?"Intraday":t==="eod_trailing"||t==="eod"?"EOD":t==="static"?"Static":"â";return e.jsx(W,{children:e.jsxs("div",{className:"max-w-6xl mx-auto px-4 py-8 space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-9 h-9 rounded-lg bg-[#22C55E]/10 flex items-center justify-center",children:e.jsx(b,{className:"w-4 h-4 text-[#22C55E]"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-lg font-extrabold text-[#F0F6FC]",children:"Auto Mode â Account Details"}),e.jsx("p",{className:"text-xs text-[#8B949E]",children:"Every connected account, in full. The live blotter is on your Dashboard."})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[!j&&i.length>0&&e.jsxs("button",{onClick:R,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-xs font-semibold text-[#8B949E] hover:text-[#F0F6FC] bg-[#161B22] border border-[#21262D] transition-colors",children:[e.jsx(J,{className:"w-3.5 h-3.5"}),"Connect"]}),e.jsxs("button",{onClick:()=>o(),className:"flex items-center gap-2 px-3 py-2 rounded-lg text-xs font-semibold text-[#8B949E] hover:text-[#F0F6FC] bg-[#161B22] border border-[#21262D] transition-colors",children:[e.jsx(Q,{className:`w-3.5 h-3.5 ${O?"animate-spin":""}`}),"Refresh"]})]})]}),j?e.jsxs("div",{className:"bg-[#161B22] rounded-xl p-10 border border-[#A855F7]/40 text-center space-y-4",children:[e.jsx(b,{className:"w-10 h-10 text-[#A855F7] mx-auto"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-bold text-[#F0F6FC]",children:"Auto Mode requires the Auto Mode plan"}),e.jsx("p",{className:"text-xs text-[#8B949E] mt-1 max-w-md mx-auto",children:"Live drawdown tracking, synced accounts, and fleet position sizing are part of the Auto Mode plan. Your current plan includes Manual Mode only."})]}),e.jsx("button",{onClick:()=>window.location.href="/pricing",className:"inline-flex items-center gap-2 px-5 py-2.5 rounded-lg bg-[#22C55E] hover:bg-[#16A34A] text-black text-sm font-bold transition-colors",children:"Upgrade to Auto Mode"})]}):q&&i.length===0?e.jsx("div",{className:"flex items-center justify-center py-20",children:e.jsx(z,{className:"w-6 h-6 text-[#22C55E] animate-spin"})}):i.length===0?e.jsxs("div",{className:"bg-[#161B22] rounded-xl p-10 border border-[#21262D] text-center space-y-4",children:[e.jsx(b,{className:"w-10 h-10 text-[#484F58] mx-auto"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-[#F0F6FC]",children:"No connected accounts"}),e.jsx("p",{className:"text-xs text-[#8B949E] mt-1",children:"Connect your brokerage to see every account's details here."}),g&&e.jsx("p",{className:"text-xs text-[#EF4444] mt-2",children:g})]}),e.jsxs("button",{onClick:R,className:"inline-flex items-center gap-2 px-5 py-2.5 rounded-lg bg-[#22C55E] hover:bg-[#16A34A] text-[#0D1117] text-sm font-bold transition-colors",children:[e.jsx(Z,{className:"w-4 h-4"}),"Connect Brokerage"]})]}):e.jsxs(e.Fragment,{children:[D.length>0&&!A&&e.jsxs("div",{className:"rounded-lg border border-[#F59E0B]/40 bg-[#F59E0B]/10 px-4 py-3 mb-4 flex items-start gap-3",children:[e.jsx("p",{className:"text-xs text-[#F59E0B] leading-relaxed flex-1",children:se}),e.jsx("button",{onClick:P,className:"text-[#F59E0B]/70 hover:text-[#F59E0B] flex-shrink-0",title:"Dismiss â returns if a new unverified account appears","aria-label":"Dismiss verification reminder",children:e.jsx(f,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:i.map(t=>{const s=t.trailing_distance>0?Math.min(100,Math.max(0,t.remaining_drawdown/t.trailing_distance*100)):0,n=t.trailing_distance>0&&t.remaining_drawdown<t.trailing_distance*.25,h=t.remaining_drawdown<=0;return t.needs_config?e.jsxs("div",{className:"bg-[#161B22] rounded-xl p-5 border border-[#F59E0B]/30 space-y-3",children:[e.jsxs("div",{children:[L(t),e.jsx("p",{className:"text-xs text-[#8B949E]",children:t.organization_name})]}),e.jsx("p",{className:"text-xs text-[#F59E0B]",children:"This account needs its drawdown set up."}),e.jsx("button",{onClick:()=>$(t),className:"w-full py-2 rounded-lg bg-[#F59E0B]/10 border border-[#F59E0B]/30 text-[#F59E0B] text-xs font-bold hover:bg-[#F59E0B]/20 transition-colors",children:"Configure Drawdown"})]},t.tradovate_account_id):e.jsxs("div",{className:`bg-[#161B22] rounded-xl p-5 border ${h?"border-[#
1EF4444]/50":n?"border-[#F59E0B]/30":"border-[#21262D]"} space-y-4`,children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{children:[L(t),e.jsx("p",{className:"text-xs text-[#8B949E] mt-0.5",children:t.organization_name})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold text-[#3B82F6] bg-[#3B82F6]/10 border border-[#3B82F6]/20",children:[Y(t.drawdown_type)," $",t.trailing_distance.toLocaleString()]}),!t.drawdown_verified_at&&!A&&e.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-bold text-[#F59E0B] bg-[#F59E0B]/10 border border-[#F59E0B]/30",title:"Confirm this account's real remaining drawdown",children:"Unverified"}),t.has_override&&e.jsx("span",{className:"px-1.5 py-0.5 rounded text-[9px] font-bold text-[#A855F7] bg-[#A855F7]/10 border border-[#A855F7]/20",children:"Confirmed"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-[#8B949E]",children:"Current Equity"}),e.jsxs("span",{className:"text-sm font-bold text-[#F0F6FC] font-mono",children:["$",m(t.net_liq)]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-[#8B949E]",children:"High-Water Mark"}),e.jsxs("span",{className:"text-xs text-[#8B949E] font-mono",children:["$",m(t.max_net_liq)]})]}),t.daily_loss_limit!=null&&e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-[#8B949E]",children:"Daily Loss Limit"}),e.jsxs("span",{className:"text-xs text-[#F59E0B] font-mono",children:["$",t.daily_loss_limit.toLocaleString()]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-[#8B949E]",children:"Remaining Drawdown"}),e.jsxs("span",{className:`text-sm font-bold font-mono ${h?"text-[#EF4444]":n?"text-[#F59E0B]":"text-[#22C55E]"}`,children:["$",m(Math.max(0,t.remaining_drawdown))]})]}),e.jsx("div",{className:"w-full h-1.5 rounded-full bg-[#0D1117] overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full ${h?"bg-[#EF4444]":n?"bg-[#F59E0B]":"bg-[#22C55E]"}`,style:{width:`${s}%`}})}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("p",{className:"text-[10px] text-[#484F58]",children:["Floor: $",m(t.floor)]}),e.jsxs("p",{className:"text-[10px] text-[#484F58]",children:[s.toFixed(0),"% remaining"]})]})]}),e.jsx("button",{onClick:()=>$(t),className:"w-full py-1.5 rounded-lg text-[10px] font-semibold text-[#8B949E] hover:text-[#F0F6FC] bg-[#0D1117] border border-[#21262D] hover:border-[#30363D] transition-colors",children:"Confirm / Edit Drawdown"})]},t.tradovate_account_id)})})]}),e.jsx("p",{className:"text-center text-[#30363D] text-[10px]",children:"Live data from your connected brokerage. For educational purposes only â always verify with your prop firm."}),r&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",children:e.jsxs("div",{className:"bg-[#161B22] rounded-xl border border-[#21262D] p-6 w-full max-w-md mx-4 space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-extrabold text-[#F0F6FC]",children:"Confirm Drawdown"}),e.jsxs("p",{className:"text-xs text-[#8B949E] mt-0.5",children:[I(r.account_name,r.nickname,k)," ","â ",r.organization_name]})]}),e.jsx("button",{onClick:()=>l(null),className:"text-[#484F58] hover:text-[#F0F6FC]","aria-label":"Close",children:e.jsx(f,{className:"w-4 h-4"})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-semibold text-[#F0F6FC]",children:"Remaining drawdown right now ($)"}),e.jsx("p",{className:"text-[10px] text-[#8B949E] mb-1.5",children:"Copy this from your prop firm's dashboard."}),e.jsx("input",{type:"number",min:"0",step:"any",value:v,onChange:t=>F(t.target.value),placeholder:"1288",className:"w-full h-10 px-3 rounded-lg bg-[#0D1117] border border-[#21262D] text-sm text-[#F0F6FC] placeholder:text-[#484F58] focus:outline-none focus:border-[#22C55E]/50"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-semibold text-[#F0F6FC]",children:"Trailing amount ($)"}),e.jsx("input",{type:"number",min:"0",step:"any",value:N,onChange:t=>w(t.target.value),placeholder:"2000",className:"w-full h-10 px-3 mt-1.5 rounded-lg bg-[#0D1117] border border-[#21262D] text-sm text-[#F0F6FC] placeholder:text-[#484F58] focus:outline-none focus:border-[#22C55E]/50"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-semibold text-[#F0F6FC]",children:"Type"}),e.jsxs("select",{value:y,onChange:t=>E(t.target.value),className:"w-full h-10 px-2 mt-1.5 rounded-lg bg-[#0D1117] border border-[#21262D] text-sm text-[#F0F6FC] focus:outline-none focus:border-[#22C55E]/50",children:[e.jsx("option",{value:"eod_trailing",children:"EOD Trailing"}),e.jsx("option",{value:"intraday_trailing",children:"Intraday Trailing"}),e.jsx("option",{value:"static",children:"Static"})]})]})]}),B&&e.jsx("p",{className:"text-xs text-[#EF4444]",children:B}),e.jsxs("div",{className:"flex gap-3 pt-1",children:[e.jsx("button",{onClick:V,disabled:C,className:"flex-1 h-10 rounded-lg bg-[#22C55E] hover:bg-[#16A34A] text-[#0D1117] text-sm font-bold transition-colors disabled:opacity-50",children:C?"Saving...":"Save"}),e.jsx("button",{onClick:()=>l(null),className:"px-5 h-10 rounded-lg bg-[#0D1117] border border-[#21262D] text-sm font-semibold text-[#8B949E] hover:text-[#F0F6FC] transition-colors",children:"Cancel"})]})]})})]})})}export{xe as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.