1import{r as h,j as t}from"./metal-fx-C6GZ_SKA.js";import A from"./AssetIconPro-Dr3HzX7A.js";import{S as F,H as p,d as i,T as r,h as l,E as P,R as g}from"./shared-OtDZU4QY.js";import{fm as z,cj as O,eT as N,a2 as I,$ as q,a0 as B}from"./index-D1yBc__G.js";import"./TokenIcon-Ck8Z5kz-.js";import"./motion-BHwmuFpx.js";const W=5e-4,v=s=>s.notional*W*(s.status==="Open"?1:2),k=s=>(s.pnl??0)-v(s),H=[{id:"t-1041877-6",at:"2026-08-23T15:09:00",asset:"BTC",side:"Long",qty:.1546,notional:11951,entry:77288,exit:null,pnl:null,slippage:0,holdMin:null,status:"Open"},{id:"t-1041877-5",at:"2026-07-30T11:22:00",asset:"BTC",side:"Long",qty:.08,notional:5167,entry:64590,exit:72660,pnl:645.6,slippage:0,holdMin:1445,status:"Win"},{id:"t-1041877-4",at:"2026-07-27T16:11:00",asset:"BTC",side:"Short",qty:.05,notional:3261,entry:65220,exit:64914,pnl:15.3,slippage:.292,holdMin:16,status:"Win"},{id:"t-1041877-3",at:"2026-07-20T17:27:00",asset:"BTC",side:"Short",qty:.02,notional:1298,entry:64890,exit:65963,pnl:-21.46,slippage:0,holdMin:966,status:"Loss"},{id:"t-1041877-2",at:"2026-07-20T16:18:00",asset:"BTC",side:"Long",qty:.06,notional:3884,entry:64734,exit:65e3,pnl:15.96,slippage:0,holdMin:887,status:"Win"}],U=["7D","30D","All time"],J=[{key:"at",label:"Date"},{key:"asset",label:"Asset"},{key:"side",label:"Side"},{key:"qty",label:"Size"},{key:"entry",label:"Entry / Exit"},{key:"pnl",label:"P&L"},{key:"slippage",label:"Slippage"},{key:"net",label:"Net P&L"},{key:"holdMin",label:"Hold"},{key:"status",label:"Status"}],w="grid grid-cols-[136px_minmax(0,0.8fr)_minmax(0,0.6fr)_minmax(0,0.8fr)_minmax(0,1fr)_minmax(0,0.85fr)_minmax(0,0.8fr)_minmax(0,0.85fr)_minmax(0,0.75fr)_64px] items-center gap-3",G=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function X(s){const[a,o]=s.split("T"),[d,x,f]=a.split("-").map(Number);return`${G[x-1]} ${f}, ${d}, ${o.slice(0,5)}`}const b=(s,a=2)=>`$${Math.abs(s).toLocaleString("en-US",{minimumFractionDigits:a,maximumFractionDigits:a})}`,T=s=>`${s<0?"â":"+"}${b(s)}`;function K(s){if(s===null)return"â";const a=Math.floor(s/1440),o=Math.floor(s%1440/60),d=s%60;return a?`${a}d ${o}h`:o?`${o}h ${d}m`:`${d}m`}function Q({status:s}){const a=s==="Win"?i:s==="Loss"?g:r,o=s==="Open"?[10,4,18]:[22,8,32];return t.jsx("span",{className:"inline-flex h-[20px] items-center justify-center rounded-full px-2.5 text-[10.5px] font-medium tabular-nums",style:{color:s==="Open"?r:a,background:`linear-gradient(180deg, color-mix(in srgb, ${a} ${o[0]}%, transparent), color-mix(in srgb, ${a} ${o[1]}%, transparent))`,boxShadow:`inset 0 0 0 1px color-mix(in srgb, ${a} ${o[2]}%, transparent), inset 0 1px 0 0 color-mix(in srgb, ${a} 14%, transparent)`},children:s})}function V({rows:s=H,title:a="Trading Journal",context:o={name:"$50K Challenge",ref:"#1041877",phase:"Phase 1"},pages:d=12}){const x=z(),[f,E]=h.useState("7D"),[u,M]=h.useState({key:"at",dir:-1}),[m,j]=h.useState(1),[D,$]=h.useState(null),S=(e,n)=>n==="net"?k(e):n==="at"?e.at:e[n]??-1/0,L=[...s].sort((e,n)=>{const c=S(e,u.key),y=S(n,u.key);return(c<y?-1:c>y?1:0)*u.dir}),C=e=>M(n=>({key:e,dir:n.key===e?n.dir===1?-1:1:-1})),R=d<=6?Array.from({length:d},(e,n)=>n+1):[1,2,3,4,5,0,d];return t.jsxs("div",{className:"flex w-full max-w-[800px] flex-col items-center gap-4",style:{fontFamily:F},children:[o&&t.jsxs("div",{className:"inline-flex items-center gap-2.5 rounded-full py-1.5 pl-3 pr-2.5 text-[12px]",style:{background:"color-mix(in srgb, var(--foreground) 4%, transparent)",boxShadow:`inset 0 0 0 1px ${p}`},children:[t.jsx("span",{"aria-hidden":!0,className:"h-1.5 w-1.5 rounded-full",style:{background:i,boxShadow:`0 0 6px ${i}`}}),t.jsx("span",{className:"font-medium",style:{color:r},children:o.name}),t.jsx("span",{className:"tabular-nums",style:{color:l},children:o.ref}),t.jsx("span",{className:"rounded-full px-2 py-0.5 text-[10.5px] font-medium",style:{color:i,background:`color-mix(in srgb, ${i} 12%, transparent)`,boxShadow:`inset 0 0 0 1px color-mix(in srgb, ${i} 28%, transparent)`},children:o.phase})]}),t.jsxs("div",{className:"w-full overflow-hidden rounded-xl",style:{background:"var(--card)",boxShadow:`inset 0 0 0 1px ${p}, inset 0 1px 0 0 color-mix(in srgb, var(--foreground) 4%, transparent)`},children:[t.jsxs("div",{className:"flex items-center gap-3 px-4 py-3",style:{borderBottom:`1px solid ${p}`},children:[t.jsx("span",{className:"grid h-6 w-6 place-items-center rounded-md",style:{color:l,boxShadow:`inset 0 0 0 1px ${p}`},children:t.jsx(O,{size:13,strokeWidth:1.75})}),t.jsx("span",{className:"text-[13px] font-medium",style:{color:r},children:a}),t.jsx("div",{"aria-label":"Range",className:"ms-auto relative inline-flex rounded-lg p-[3px]",role:"radiogroup",style:{background:"color-mix(in srgb, var(--foreground) 3%, transparent)"},children:U.map(e=>{const n=e===f;return t.jsxs("button",{"aria-checked":n,className:"relative z-10 h-6 rounded-md px-2.5 text-[11px] font-medium tabular-nums transition-colors duration-200",onClick:()=>E(e),role:"radio",style:{color:n?r:l},type:"button",children:[n&&t.jsx(N.span,{className:"absolute inset-0 -z-10 rounded-md",layoutId:"journal-range",style:{background:"color-mix(in srgb, var(--foreground) 8%, transparent)",boxShadow:`inset 0 0 0 1px ${p}`},transition:x?{duration:0}:{duration:.25,ease:[.22,1,.36,1]}}),e]},e)})})]}),t.jsx("div",{className:`${w} px-4 py-2`,style:{borderBottom:`1px solid ${p}`},children:J.map(e=>{const n=u.key===e.key;return t.jsxs("button",{"aria-sort":n?u.dir===1?"ascending":"descending":"none",className:"group inline-flex items-center gap-1 whitespace-nowrap text-[10.5px] transition-colors duration-150",onClick:()=>C(e.key),style:{color:n?r:l},type:"button",children:[e.label,t.jsx(I,{className:"transition-opacity duration-150",size:11,strokeWidth:1.75,style:{opacity:n?.9:.4}})]},e.key)})}),t.jsx("div",{className:"relative",children:L.map((e,n)=>{const c=e.status==="Open",y=k(e),_=D===e.id;return t.jsxs("div",{className:`${w} relative px-4 py-3`,onPointerEnter:()=>$(e.id),onPointerLeave:()=>
1$(null),style:{borderTop:n===0?void 0:`1px solid ${p}`},children:[c&&t.jsx("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-y-0 left-0 w-full",style:{background:`linear-gradient(90deg, color-mix(in srgb, ${i} 13%, transparent), color-mix(in srgb, ${i} 4%, transparent) 38%, transparent 62%)`}}),c&&t.jsx("span",{"aria-hidden":!0,className:"absolute inset-y-2 left-0 w-[2px] rounded-full",style:{background:i}}),_&&!c&&t.jsx(N.span,{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",layoutId:"journal-hover",style:{background:"linear-gradient(90deg, color-mix(in srgb, var(--foreground) 5%, transparent), transparent 70%)"},transition:x?{duration:0}:{duration:.2,ease:P}}),t.jsx("span",{className:"relative whitespace-nowrap text-[12px] tabular-nums",style:{color:c?r:l},children:X(e.at)}),t.jsxs("span",{className:"relative flex items-center gap-2",children:[t.jsx(A,{color:"var(--coin-btc, #f7931a)",size:18,symbol:e.asset}),t.jsx("span",{className:"text-[12px] font-medium",style:{color:r},children:e.asset})]}),t.jsx("span",{className:"relative text-[12px] font-medium",style:{color:e.side==="Long"?i:g},children:e.side}),t.jsxs("span",{className:"relative flex flex-col leading-tight",children:[t.jsx("span",{className:"text-[12px] tabular-nums",style:{color:r},children:e.qty.toFixed(4)}),t.jsx("span",{className:"text-[10.5px] tabular-nums",style:{color:l},children:b(e.notional,0)})]}),t.jsxs("span",{className:"relative flex flex-col leading-tight",children:[t.jsx("span",{className:"text-[12px] tabular-nums",style:{color:r},children:e.entry.toLocaleString("en-US",{minimumFractionDigits:2})}),t.jsx("span",{className:"text-[10.5px] tabular-nums",style:{color:l},children:e.exit===null?"â":e.exit.toLocaleString("en-US",{minimumFractionDigits:2})})]}),t.jsx("span",{className:"relative text-[12px] font-medium tabular-nums",style:{color:e.pnl===null?l:e.pnl<0?g:i},children:e.pnl===null?"â":T(e.pnl)}),t.jsx("span",{className:"relative text-[12px] tabular-nums",style:{color:e.slippage?r:l},children:e.slippage?`+${e.slippage.toFixed(3)}%`:"0.000%"}),t.jsx("span",{className:"relative text-[12px] font-medium tabular-nums",style:{color:c?l:y<0?g:i},title:`gross ${e.pnl===null?"0.00":e.pnl.toFixed(2)} â fees ${v(e).toFixed(2)} (0.05% à ${b(e.notional,0)} à ${c?1:2} sides)`,children:c?`â${b(v(e))}`:T(y)}),t.jsx("span",{className:"relative whitespace-nowrap text-[12px] tabular-nums",style:{color:l},children:K(e.holdMin)}),t.jsx("span",{className:"relative flex justify-end",children:t.jsx(Q,{status:e.status})})]},e.id)})})]}),t.jsxs("nav",{"aria-label":"Pages",className:"flex items-center gap-1.5",children:[t.jsx("button",{"aria-label":"Previous page",className:"grid h-7 w-7 place-items-center rounded-full transition-colors duration-150 disabled:pointer-events-none disabled:opacity-35",disabled:m===1,onClick:()=>j(e=>Math.max(1,e-1)),style:{color:l,boxShadow:`inset 0 0 0 1px ${p}`},type:"button",children:t.jsx(q,{size:13})}),R.map((e,n)=>e===0?t.jsx("span",{className:"w-5 text-center text-[11px]",style:{color:l},children:"â¦"},`gap-${n}`):t.jsxs("button",{"aria-current":e===m?"page":void 0,className:"relative h-7 min-w-7 rounded-full px-2 text-[11px] tabular-nums transition-colors duration-150",onClick:()=>j(e),style:{color:e===m?r:l},type:"button",children:[e===m&&t.jsx(N.span,{"aria-hidden":!0,className:"absolute inset-0 -z-10 rounded-full",layoutId:"journal-page",style:{background:"color-mix(in srgb, var(--foreground) 8%, transparent)",boxShadow:`inset 0 0 0 1px ${p}`},transition:x?{duration:0}:{duration:.25,ease:[.22,1,.36,1]}}),String(e).padStart(2,"0")]},e)),t.jsx("button",{"aria-label":"Next page",className:"grid h-7 w-7 place-items-center rounded-full transition-colors duration-150 disabled:pointer-events-none disabled:opacity-35",disabled:m===d,onClick:()=>j(e=>Math.min(d,e+1)),style:{color:l,boxShadow:`inset 0 0 0 1px ${p}`},type:"button",children:t.jsx(B,{size:13})})]})]})}function ae(){return t.jsx("div",{className:"flex min-h-[420px] w-full items-start justify-center p-6 pt-8",children:t.jsx(V,{})})}
1export{ae as Demo,V 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.