@liberfi.io/ui-portfolio 3.0.79 → 3.0.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -292,7 +292,7 @@ declare function BatchActionButton({ label, disabled, onClick, }: BatchActionBut
292
292
  * Format the elapsed time between `from` and `now` as a short age string
293
293
  * (e.g. "5m", "2h", "3d"). Returns "--" if `from` is unavailable.
294
294
  */
295
- declare function formatAgeShort(from: Date | string | number | undefined, now?: Date | number): string;
295
+ declare function formatAgeShort(from: Date | string | number | undefined, formatAge: (ageMilliseconds: number) => string, now?: Date | number): string;
296
296
  declare function truncateMiddle(input: string | undefined, head?: number, tail?: number): string;
297
297
 
298
298
  interface TagBadgeProps {
package/dist/index.d.ts CHANGED
@@ -292,7 +292,7 @@ declare function BatchActionButton({ label, disabled, onClick, }: BatchActionBut
292
292
  * Format the elapsed time between `from` and `now` as a short age string
293
293
  * (e.g. "5m", "2h", "3d"). Returns "--" if `from` is unavailable.
294
294
  */
295
- declare function formatAgeShort(from: Date | string | number | undefined, now?: Date | number): string;
295
+ declare function formatAgeShort(from: Date | string | number | undefined, formatAge: (ageMilliseconds: number) => string, now?: Date | number): string;
296
296
  declare function truncateMiddle(input: string | undefined, head?: number, tail?: number): string;
297
297
 
298
298
  interface TagBadgeProps {
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var react=require('react'),uiChainSelect=require('@liberfi.io/ui-chain-select'),utils=require('@liberfi.io/utils'),walletConnector=require('@liberfi.io/wallet-connector'),i18n=require('@liberfi.io/i18n'),ui=require('@liberfi.io/ui'),jsxRuntime=require('react/jsx-runtime'),recharts=require('recharts'),reactQuery=require('@tanstack/react-query'),react$1=require('@liberfi.io/react'),realtimeCursorCollection=require('@liberfi.io/utils/realtime-cursor-collection');var xt=react.createContext(null);var gt=react.createContext(null);var yt=react.createContext({}),Ot=react.createContext({});function Pt(){let t=react.useContext(yt);if(!t)throw new Error("usePortfolioContext must be used within a PortfolioProvider");return t}function Mt(){let{summary:t,summaryStatus:e}=Pt();return {data:t,...e}}function Et(){let{status:t,signIn:e,signOut:o}=walletConnector.useAuth(),{data:r}=Mt(),{chain:s,chainNamespace:a}=uiChainSelect.useCurrentChain(),n=walletConnector.useConnectedWallet(s),i=react.useMemo(()=>utils.getNativeToken(s),[s]),l=react.useMemo(()=>r?.balanceInUsd?utils.formatAmountInUsd(r.balanceInUsd):"--",[r?.balanceInUsd]),u=react.useMemo(()=>r?.balanceInNative?utils.formatAmount(r.balanceInNative):"--",[r?.balanceInNative]);return {status:t,signIn:e,signOut:o,balanceUsdFormatted:l,balanceNativeFormatted:u,nativeToken:i,chainNamespace:a,walletAddress:n?.address??""}}function Lt({status:t,signIn:e,signOut:o,balanceUsdFormatted:r,balanceNativeFormatted:s,nativeToken:a,chainNamespace:n,walletAddress:i,actions:l}){let{t:u}=i18n.useTranslation(),{isMobile:p}=ui.useScreen(),{isOpen:f,onClose:x,onOpenChange:d}=ui.useDisclosure(),m=ui.useCopyToClipboard(),h=react.useCallback(()=>{m(i,()=>ui.toast.success(u("common.primaryAddressCopied",{network:n.toUpperCase()})));},[m,n,i,u]);return t==="unauthenticated"?jsxRuntime.jsx(ui.Button,{isIconOnly:p,size:"sm",color:"primary",radius:"full",disableRipple:true,onPress:e,startContent:p?void 0:jsxRuntime.jsx(ui.SignInIcon,{width:16,height:16}),"aria-label":u("common.signIn"),children:p?jsxRuntime.jsx(ui.SignInIcon,{width:16,height:16}):u("common.signIn")}):t==="authenticating"?jsxRuntime.jsx(ui.Button,{isIconOnly:p,size:"sm",color:"primary",radius:"full",disableRipple:true,isLoading:true,isDisabled:true,"aria-label":u("common.signingIn"),children:u("common.signingIn")}):t==="deauthenticating"?jsxRuntime.jsx(ui.Button,{isIconOnly:p,size:"sm",color:"primary",radius:"full",disableRipple:true,isLoading:true,isDisabled:true,"aria-label":u("common.signingOut"),children:u("common.signingOut")}):jsxRuntime.jsxs(ui.StyledPopover,{placement:p?"bottom":"bottom-end",isOpen:f,onOpenChange:d,triggerScaleOnOpen:false,children:[jsxRuntime.jsx(ui.PopoverTrigger,{children:jsxRuntime.jsx(ui.Button,{size:"sm",className:"bg-content2",radius:"full",disableRipple:true,startContent:jsxRuntime.jsx(ui.WalletIcon,{width:16,height:16,className:"text-text-muted"}),endContent:jsxRuntime.jsx(ui.ChevronDownIcon,{width:16,height:16,className:ui.cn("text-text-muted transition-transform",f&&"rotate-180")}),children:a&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(ui.TokenIcon,{symbol:a.symbol,size:16}),jsxRuntime.jsx("span",{className:"text-xs text-foreground",children:p?s:`${s} ${a.symbol}`})]})})}),jsxRuntime.jsx(ui.PopoverContent,{children:jsxRuntime.jsxs("div",{className:"w-70 flex flex-col gap-3 py-4",children:[jsxRuntime.jsxs("div",{className:"px-4 flex items-start justify-between",children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-xs text-text-muted",children:u("common.totalValue")}),jsxRuntime.jsx("span",{className:"text-base font-semibold text-foreground",children:r})]}),jsxRuntime.jsx("div",{className:"flex items-start justify-end gap-0.5",children:jsxRuntime.jsx(ui.StyledTooltip,{content:u("common.copyPrimaryAddress",{network:n.toUpperCase()}),children:jsxRuntime.jsx(ui.Button,{className:"text-xs bg-transparent text-text-muted hover:text-foreground h-4 min-h-4 gap-1",startContent:jsxRuntime.jsx(ui.CopyIcon,{width:14,height:14}),disableRipple:true,disableAnimation:true,onPress:h,children:n.toUpperCase()})})})]}),jsxRuntime.jsx(ui.Divider,{}),jsxRuntime.jsxs("div",{className:"grid grid-cols-4 gap-2 px-4",children:[l?.map(c=>jsxRuntime.jsxs("button",{type:"button",className:"flex cursor-pointer flex-col items-center justify-center gap-1 rounded-md py-2 text-foreground transition-colors hover:text-primary",onClick:()=>{c.onPress(),x();},children:[c.icon,jsxRuntime.jsx("span",{className:"w-full truncate text-center text-xs",children:c.label})]},c.key)),jsxRuntime.jsxs("button",{type:"button",className:"flex cursor-pointer flex-col items-center justify-center gap-1 rounded-md py-2 text-danger transition-colors hover:text-danger/80",onClick:()=>{o(),x();},children:[jsxRuntime.jsx(ui.SignOutIcon,{width:16,height:16}),jsxRuntime.jsx("span",{className:"w-full truncate text-center text-xs",children:u("common.signOut")})]})]})]})})]})}function co({actions:t}){let e=Et();return jsxRuntime.jsx(Lt,{status:e.status,signIn:e.signIn,signOut:e.signOut,balanceUsdFormatted:e.balanceUsdFormatted,balanceNativeFormatted:e.balanceNativeFormatted,nativeToken:e.nativeToken,chainNamespace:e.chainNamespace,walletAddress:e.walletAddress,actions:t})}function Hr(t){if(!t)return 0;let e=Number(t);return Number.isFinite(e)?e:0}function I(t){return utils.formatAmountInUsd(t)}function bt(t){let e=I(Math.abs(t));return t>0?`+${e}`:t<0?`-${e.replace("-","")}`:e}function he(t){return `${t>0?"+":""}${t.toFixed(2)}%`}function Se(t){let o=Math.abs(t).toFixed(2).split("."),r=Number(o[0]).toLocaleString("en-US"),s=`.${o[1]}`;return {sign:t<0?"-$":"$",integer:r,decimal:s}}function at(t,e=4,o=4){return t.length<=e+o+3?t:`${t.slice(0,e)}\u2026${t.slice(-o)}`}function Ft(t){return utils.formatAmount(t)}function Ne(t,e){return `https://solscan.io/tx/${t}`}var uo=["#C8FF00","#00E676","#0066FF","#FF6B9D","#8B7BFF","#FF5252","#FFB74D","#4DD0E1"],Br="#3A3A4E";function Ce(t){let e=t.reduce((n,i)=>n+i.value,0);if(e<=0)return {items:[]};let o=[...t].sort((n,i)=>i.value-n.value),r=[],s=0,a=0;for(let n of o){let i=n.value/e*100;i<2?s+=n.value:(r.push({name:n.name,symbol:n.symbol,percent:i,value:n.value,color:uo[a%uo.length]}),a++);}return s>0&&r.push({name:"Other",symbol:"OTHER",percent:s/e*100,value:s,color:Br}),{items:r}}function Ae(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:false})}function Kt({walletId:t,wallets:e,isViewing:o,viewingAddress:r,onSelectWallet:s,onCopyAddress:a,onSearch:n}){let{t:i}=i18n.useTranslation(),[l,u]=react.useState(false),[p,f]=react.useState(""),x=react.useRef(null),d=!t&&!o,m=e.find(S=>S.id===t),h=o?i("portfolio.address.external"):d?i("portfolio.address.allWallets"):m?.name??"",c=o?at(r??""):d?i("portfolio.address.aggregated"):at(m?.address??""),g=o?"bg-text-muted":"bg-positive",N=react.useCallback(()=>{let S=p.trim();S.length>=32&&(n(S),f(""));},[p,n]),D=react.useCallback(S=>{S.key==="Enter"&&N();},[N]);return jsxRuntime.jsxs("div",{className:"flex items-center justify-between gap-4 pb-4",children:[jsxRuntime.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[jsxRuntime.jsxs("div",{className:"relative",ref:x,children:[jsxRuntime.jsxs("button",{type:"button",className:ui.cn("flex items-center gap-2 rounded-lg border px-2.5 py-1.5 transition-colors",o?"border-positive/20 bg-positive/4":"border-border-subtle bg-surface-raised hover:border-border-control hover:bg-surface-strong",o&&"pointer-events-none"),onClick:()=>!o&&u(S=>!S),children:[jsxRuntime.jsx("span",{className:ui.cn("h-[7px] w-[7px] flex-shrink-0 rounded-full",g)}),jsxRuntime.jsx("span",{className:"text-[11px] font-medium text-text-secondary",children:h}),jsxRuntime.jsx("span",{className:"font-mono text-xs text-foreground",children:c}),!o&&jsxRuntime.jsx("svg",{className:ui.cn("text-text-muted transition-transform",l&&"rotate-180"),width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:jsxRuntime.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})]}),l&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>u(false)}),jsxRuntime.jsxs("div",{className:"absolute left-0 top-[calc(100%+4px)] z-50 min-w-[260px] rounded-lg border border-border-subtle bg-surface-raised p-1 shadow-[0_8px_32px_rgba(0,0,0,0.4)]",children:[jsxRuntime.jsxs("button",{type:"button",className:ui.cn("flex w-full items-center gap-2 rounded-[5px] px-2.5 py-2 transition-colors hover:bg-surface-strong",d&&"bg-positive/7"),onClick:()=>{s(void 0),u(false);},children:[jsxRuntime.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-positive"}),jsxRuntime.jsx("span",{className:"min-w-[60px] text-[11px] font-medium text-text-secondary",children:i("portfolio.address.allWallets")}),jsxRuntime.jsx("span",{className:"text-[11px] text-text-disabled",children:i("portfolio.address.aggregated")})]}),e.map(S=>jsxRuntime.jsxs("button",{type:"button",className:ui.cn("flex w-full items-center gap-2 rounded-[5px] px-2.5 py-2 transition-colors hover:bg-surface-strong",t===S.id&&"bg-positive/7"),onClick:()=>{s(S.id),u(false);},children:[jsxRuntime.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-positive"}),jsxRuntime.jsx("span",{className:"min-w-[60px] text-[11px] font-medium text-text-secondary",children:S.name}),jsxRuntime.jsx("span",{className:"font-mono text-[11px] text-text-muted",children:at(S.address)}),jsxRuntime.jsx("span",{className:"ml-auto font-mono text-[11px] font-medium text-foreground",children:S.balance})]},S.id))]})]})]}),jsxRuntime.jsx("button",{type:"button",className:ui.cn("rounded p-1 text-text-muted transition-colors hover:bg-surface-strong hover:text-brand-primary",d&&!o&&"pointer-events-none opacity-40"),onClick:a,disabled:d&&!o,"aria-label":i("portfolio.address.copy"),children:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[jsxRuntime.jsx("rect",{x:"4.5",y:"4.5",width:"7",height:"7",rx:"1.5",stroke:"currentColor",strokeWidth:"1.2"}),jsxRuntime.jsx("path",{d:"M9.5 4.5V3a1.5 1.5 0 0 0-1.5-1.5H3A1.5 1.5 0 0 0 1.5 3v5A1.5 1.5 0 0 0 3 9.5h1.5",stroke:"currentColor",strokeWidth:"1.2"})]})}),jsxRuntime.jsx("span",{className:ui.cn("flex-shrink-0 rounded-[3px] px-1.5 py-[3px] text-[9px] font-semibold uppercase tracking-wider",o?"bg-positive/7 text-positive animate-[pulse-glow_2s_ease-in-out_infinite]":"bg-positive/10 text-positive"),children:i(o?"portfolio.address.viewing":"portfolio.address.owner")})]}),jsxRuntime.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1.5",children:[jsxRuntime.jsxs("div",{className:"flex h-[34px] w-[240px] items-center gap-1.5 rounded-lg border border-border-subtle bg-surface-raised px-2.5 transition-all focus-within:w-[300px] focus-within:border-focus",children:[jsxRuntime.jsxs("svg",{className:"flex-shrink-0 text-text-muted",width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11L14.5 14.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{className:"flex-1 border-none bg-transparent font-mono text-xs text-foreground caret-brand-primary outline-none placeholder:font-sans placeholder:text-[11px] placeholder:text-text-muted",placeholder:i("portfolio.address.search.placeholder"),spellCheck:false,value:p,onChange:S=>f(S.target.value),onKeyDown:D})]}),jsxRuntime.jsx("button",{type:"button",className:"whitespace-nowrap rounded-[5px] border border-border-subtle bg-surface-interactive px-3 py-1.5 text-[11px] font-medium text-text-secondary transition-colors hover:border-positive hover:bg-action-primary hover:text-text-inverse",onClick:N,children:i("portfolio.address.search.view")})]})]})}var vt=(r=>(r.SPOT="spot",r.PERPS="perps",r.PREDICTION="prediction",r))(vt||{}),Vt=(o=>(o.NET_WORTH="networth",o.PNL="pnl",o))(Vt||{}),qt=(s=>(s.ONE_DAY="1D",s.SEVEN_DAY="7D",s.THIRTY_DAY="30D",s.MAX="Max",s))(qt||{}),we={"1D":1,"7D":7,"30D":30,Max:365},Te=(o=>(o.LONG="long",o.SHORT="short",o))(Te||{}),ke=(r=>(r.SWAP="swap",r.SEND="send",r.RECEIVE="receive",r))(ke||{}),De=(o=>(o.ACTIVE="active",o.PENDING="pending",o))(De||{}),Re=(o=>(o.WON="won",o.LOST="lost",o))(Re||{}),Ie=(r=>(r.POLYMARKET="polymarket",r.DRIFT="drift",r.METADAO="metadao",r))(Ie||{});var Lr=[{key:"spot",labelKey:"portfolio.tabs.spot"},{key:"perps",labelKey:"portfolio.tabs.perps"},{key:"prediction",labelKey:"portfolio.tabs.prediction"}];function Fr(t,e,o,r){switch(t){case "spot":return e;case "perps":return o;case "prediction":return r}}function _t({activeTab:t,onTabChange:e,spotValue:o=0,perpsValue:r=0,predictionValue:s=0}){let{t:a}=i18n.useTranslation();return jsxRuntime.jsx("div",{className:"flex gap-1 border-b border-border-subtle pb-0 pt-5",children:Lr.map(({key:n,labelKey:i})=>{let l=t===n,u=Fr(n,o,r,s);return jsxRuntime.jsxs("button",{type:"button",className:ui.cn("relative flex items-center gap-2 border-b-2 px-4 pb-3 pt-2.5 text-[13px] font-medium transition-colors",l?"border-positive text-foreground":"border-transparent text-text-muted hover:text-text-secondary"),onClick:()=>e(n),children:[a(i),!l&&jsxRuntime.jsx("span",{className:"rounded-[10px] bg-surface-raised px-2 py-0.5 font-mono text-[11px] text-text-muted",children:I(u)})]},n)})})}function $t({overview:t}){let{t:e}=i18n.useTranslation(),o=t?.totalValue??0,r=t?.uPnl??0,s=t?.realizedPnl??0,a=t?.totalProfit??0,{sign:n,integer:i,decimal:l}=Se(o);return jsxRuntime.jsxs("div",{className:"flex items-center gap-4 pb-4",children:[jsxRuntime.jsx("div",{className:"flex items-baseline gap-3",children:jsxRuntime.jsxs("div",{className:"font-mono text-[26px] font-bold leading-none tracking-tight",children:[jsxRuntime.jsx("span",{className:"mr-px text-lg font-medium text-positive",children:n}),i,jsxRuntime.jsx("span",{className:"text-base font-normal text-text-muted",children:l})]})}),jsxRuntime.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[jsxRuntime.jsx(Ue,{label:e("portfolio.balance.uPnl"),value:r}),jsxRuntime.jsx(go,{}),jsxRuntime.jsx(Ue,{label:e("portfolio.balance.realized"),value:s}),jsxRuntime.jsx(go,{}),jsxRuntime.jsx(Ue,{label:e("portfolio.balance.totalProfit"),value:a})]})]})}function Ue({label:t,value:e}){return jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx("span",{className:"text-[11px] text-text-muted",children:t}),jsxRuntime.jsx("span",{className:ui.cn("font-mono text-xs font-medium",e>0?"text-positive":e<0?"text-negative":"text-text-muted"),children:bt(e)})]})}function go(){return jsxRuntime.jsx("div",{className:"h-3.5 w-px bg-surface-strong"})}var Zr=["1D","7D","30D","Max"];function yo(t,e){let o=new Date(t);return e==="1D"?o.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:false}):o.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function Jr(t){return t==="pnl"?"change":"netWorth"}function Gt({curveType:t,curvePeriod:e,data:o,isLoading:r,onTypeChange:s,onPeriodChange:a}){let{t:n}=i18n.useTranslation(),i=o?.points,l=Jr(t),u=t==="pnl",p=react.useMemo(()=>(i??[]).map(c=>u?c.change:c.netWorth),[i,u]),f=p.some(c=>c<0),{minVal:x,maxVal:d}=react.useMemo(()=>{if(p.length===0)return {minVal:0,maxVal:100};let c=Math.min(...p),g=Math.max(...p),N=g-c||1;return {minVal:c-N*.1,maxVal:g+N*.1}},[p]),m=react.useMemo(()=>{let c=i??[];if(c.length===0)return [];let g=Math.min(7,c.length),N=Math.max(1,Math.floor((c.length-1)/(g-1))),D=[];for(let w=0;w<c.length;w+=N)D.push({ts:c[w].timestamp,label:yo(c[w].timestamp,e)});let S=c[c.length-1];return D[D.length-1]?.ts!==S.timestamp&&D.push({ts:S.timestamp,label:yo(S.timestamp,e)}),D},[i,e]),h=p[p.length-1]??0;return jsxRuntime.jsxs("div",{className:"overflow-hidden rounded-lg border border-border-subtle bg-surface-base",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between px-4 pt-3",children:[jsxRuntime.jsxs("div",{className:"flex gap-0.5 rounded-[5px] bg-surface-raised p-0.5",children:[jsxRuntime.jsx(Po,{label:n("portfolio.curve.netWorth"),active:t==="networth",onClick:()=>s("networth")}),jsxRuntime.jsx(Po,{label:n("portfolio.curve.pnl"),active:t==="pnl",onClick:()=>s("pnl")})]}),jsxRuntime.jsx("div",{className:"flex gap-0.5",children:Zr.map(c=>jsxRuntime.jsx("button",{type:"button",className:ui.cn("rounded-[3px] px-2 py-1 text-[10px] font-medium transition-colors",e===c?"bg-positive/7 text-positive":"text-text-muted hover:bg-surface-interactive hover:text-text-secondary"),onClick:()=>a(c),children:c},c))})]}),jsxRuntime.jsx("div",{className:"h-[180px] px-4 pt-2",children:r||(i??[]).length<2?jsxRuntime.jsx("div",{className:"flex h-full items-center justify-center",children:jsxRuntime.jsx("span",{className:"text-xs text-text-muted",children:r?"":n("portfolio.curve.noData")})}):jsxRuntime.jsx(recharts.ResponsiveContainer,{width:"100%",height:"100%",children:jsxRuntime.jsxs(recharts.AreaChart,{data:i,margin:{top:8,right:0,left:0,bottom:0},children:[jsxRuntime.jsxs("defs",{children:[jsxRuntime.jsxs("linearGradient",{id:"gradAccent",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:ui.themeSemanticColors.brand.primary,stopOpacity:.12}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:ui.themeSemanticColors.brand.primary,stopOpacity:0})]}),jsxRuntime.jsxs("linearGradient",{id:"gradGreen",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:ui.themeSemanticColors.market.positive,stopOpacity:.12}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:ui.themeSemanticColors.market.positive,stopOpacity:0})]}),jsxRuntime.jsxs("linearGradient",{id:"gradRed",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:ui.themeSemanticColors.market.negative,stopOpacity:0}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:ui.themeSemanticColors.market.negative,stopOpacity:.1})]})]}),jsxRuntime.jsx(recharts.XAxis,{dataKey:"timestamp",hide:true}),jsxRuntime.jsx(recharts.YAxis,{hide:true,domain:[x,d]}),u&&f&&jsxRuntime.jsx(recharts.ReferenceLine,{y:0,stroke:ui.themeSemanticColors.border.subtle,strokeOpacity:.6,strokeDasharray:"4 4"}),jsxRuntime.jsx(recharts.Area,{type:"monotone",dataKey:l,stroke:u?h>=0?ui.themeSemanticColors.market.positive:ui.themeSemanticColors.market.negative:ui.themeSemanticColors.brand.primary,strokeWidth:1.5,fill:u?h>=0?"url(#gradGreen)":"url(#gradRed)":"url(#gradAccent)",dot:false,isAnimationActive:false})]})})}),jsxRuntime.jsx("div",{className:"flex justify-between px-4 pb-2.5 pt-1",children:m.map(({ts:c,label:g})=>jsxRuntime.jsx("span",{className:"font-mono text-[9px] text-text-disabled",children:g},c))})]})}function Po({label:t,active:e,onClick:o}){return jsxRuntime.jsx("button",{type:"button",className:ui.cn("rounded px-2.5 py-1 text-[11px] font-medium transition-colors",e?"bg-surface-interactive text-foreground":"text-text-muted hover:text-text-secondary"),onClick:o,children:t})}function Yt({data:t,isLoading:e}){let{t:o}=i18n.useTranslation(),r=t?.items,s=r??[],a=react.useMemo(()=>(r??[]).map(n=>({name:n.name,value:n.percent})),[r]);return jsxRuntime.jsxs("div",{className:"flex flex-col overflow-hidden rounded-lg border border-border-subtle bg-surface-base",children:[jsxRuntime.jsx("div",{className:"px-4 pb-2 pt-3",children:jsxRuntime.jsx("span",{className:"text-xs font-semibold text-text-secondary",children:o("portfolio.distribution.title")})}),jsxRuntime.jsx("div",{className:"flex flex-1 items-center justify-center px-4",children:e||s.length===0?jsxRuntime.jsx("div",{className:"flex h-[140px] w-[140px] items-center justify-center",children:jsxRuntime.jsx("span",{className:"text-xs text-text-muted",children:e?"":o("portfolio.distribution.noData")})}):jsxRuntime.jsx(recharts.ResponsiveContainer,{width:140,height:140,children:jsxRuntime.jsx(recharts.PieChart,{children:jsxRuntime.jsx(recharts.Pie,{data:a,cx:"50%",cy:"50%",innerRadius:32,outerRadius:55,dataKey:"value",stroke:"none",isAnimationActive:false,children:s.map((n,i)=>jsxRuntime.jsx(recharts.Cell,{fill:n.color},i))})})})}),jsxRuntime.jsx("div",{className:"px-4 pb-3 pt-2",children:s.map((n,i)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5 py-[3px] text-[11px]",children:[jsxRuntime.jsx("span",{className:"h-[7px] w-[7px] flex-shrink-0 rounded-[2px]",style:{background:n.color}}),jsxRuntime.jsx("span",{className:"min-w-0 flex-1 truncate text-text-secondary",children:n.name}),jsxRuntime.jsxs("span",{className:"font-mono text-[10px] text-text-muted",children:[n.percent.toFixed(1),"%"]}),jsxRuntime.jsx("span",{className:"min-w-[55px] text-right font-mono text-[10px] text-foreground",children:I(n.value)})]},i))})]})}function W(){let t=react.useContext(xt);if(!t)throw new Error("usePortfolioClient must be used within a PortfolioClientProvider");return t}function vo(){let t=react.useContext(gt);if(!t)throw new Error("usePortfolioDataAdapter must be used within a PortfolioClientProvider");return t}function Qe(t){return ["portfolio","overview",t??{}]}async function pi(t,e){return await t.getOverview(e)}function jt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Qe(t),queryFn:async()=>pi(o,t),...e})}function We(t){return ["portfolio","spot","holdings",t??{}]}async function ci(t,e){return await t.getSpotHoldings(e)}function ht(t,e={}){let o=W();return reactQuery.useQuery({queryKey:We(t),queryFn:async()=>ci(o,t),...e})}function Oe(t){return ["portfolio","spot","history",t??{}]}async function fi(t,e){return await t.getSpotHistory(e)}function Xt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Oe(t),queryFn:async()=>fi(o,t),...e})}function Me(t){return ["portfolio","perps","positions",t??{}]}async function xi(t,e){return await t.getPerpsPositions(e)}function Zt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Me(t),queryFn:async()=>xi(o,t),...e})}function Ee(t){return ["portfolio","perps","history",t??{}]}async function yi(t,e){return await t.getPerpsHistory(e)}function Jt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Ee(t),queryFn:async()=>yi(o,t),...e})}function Le(t){return ["portfolio","prediction","active",t??{}]}async function bi(t,e){return await t.getPredictionBets(e)}function te(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Le(t),queryFn:async()=>bi(o,t),...e})}function Fe(t){return ["portfolio","prediction","settled",t??{}]}async function hi(t,e){return await t.getPredictionSettled(e)}function ee(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Fe(t),queryFn:async()=>hi(o,t),...e})}function Ke(t){return ["portfolio","chart",t]}async function Ni(t,e){return await t.getChartData(e)}function oe(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Ke(t),queryFn:async()=>Ni(o,t),...e})}function ho(){return ["portfolio","distribution"]}function re(t){return {data:react.useMemo(()=>Ce(t),[t])}}function So(){let{refetchSummary:t}=Pt();return t}var Ui=15e3;function Co(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function Ao({chain:t,address:e,tokenAddresses:o,pollMs:r=Ui}){let s=!!e&&o.length>0,[a,n]=react.useState({}),i=react$1.useWalletPortfoliosByTokensQuery({chain:t,address:e,tokenAddresses:o},{enabled:s,refetchInterval:r}),l=react$1.useWalletPortfolioPnlsByTokensQuery({chain:t,address:e,tokenAddresses:o},{enabled:s,refetchInterval:r});react.useEffect(()=>{let m=i.data??[],h=new Map;if(l.data)for(let g of l.data)h.set(g.address,g);let c={};for(let g of m)c[g.address]={...g,pnl:h.get(g.address)??null};n(c);},[i.data,l.data]);let u=react.useRef(""),p=react.useRef(new Set),f=o.slice().sort().join(",");f!==u.current&&(u.current=f,p.current=new Set(o));let x=p.current;react$1.useWalletPortfoliosSubscription({chain:t,address:e},m=>{n(h=>{let c=h;for(let g of m){if(!x.has(g.tokenAddress))continue;let N=c[g.tokenAddress];if(!N)continue;let{chain:D,walletAddress:S,tokenAddress:w,...O}=g,q=Co(O);Object.keys(q).length!==0&&(c=c===h?{...h}:c,c[g.tokenAddress]={...N,...q});}return c});},{enabled:s}),react$1.useWalletPortfolioPnlsSubscription({chain:t,address:e},m=>{n(h=>{let c=h;for(let g of m){if(!x.has(g.tokenAddress))continue;let N=c[g.tokenAddress];if(!N||!N.pnl)continue;let{walletAddress:D,tokenAddress:S,...w}=g,O=Co(w);Object.keys(O).length!==0&&(c=c===h?{...h}:c,c[g.tokenAddress]={...N,pnl:{...N.pnl,...O}});}return c});},{enabled:s});let d=react.useCallback(async()=>{await Promise.all([i.refetch(),l.refetch()]);},[i,l]);return {tokens:a,isPending:i.isPending,isFetching:i.isFetching||l.isFetching,isError:i.isError,isSuccess:i.isSuccess,error:i.error,refetch:d}}function ie(t){let{defaultTab:e="spot",walletAddresses:o,chain:r}=t??{},[s,a]=react.useState(e),[n,i]=react.useState(void 0),[l,u]=react.useState(void 0),[p,f]=react.useState("networth"),[x,d]=react.useState("7D"),m=l!==void 0,h=react.useMemo(()=>{if(l)return {walletAddresses:[l],chain:r};if(o?.length)return {walletAddresses:o,chain:r}},[o,l,r]),c=jt(h),g=ht(h),N=oe({period:we[x],...h}),D=re(g.data?.holdings??[]),S=react.useMemo(()=>g.data?.holdings.reduce((M,F)=>M+F.value,0)??0,[g.data]),w=react.useCallback(M=>{u(M);},[]),O=react.useCallback(()=>{u(void 0);},[]),q=react.useCallback(M=>{i(M);},[]);return {activeTab:s,setActiveTab:a,walletId:n,selectWallet:q,viewingAddress:l,isViewing:m,curveType:p,setCurveType:f,curvePeriod:x,setCurvePeriod:d,portfolioQuery:h,overviewQuery:c,curveQuery:N,distributionQuery:D,spotHoldingsQuery:g,spotValue:S,perpsValue:0,predictionValue:0,enterViewing:w,exitViewing:O}}function se(){return jsxRuntime.jsxs("div",{className:"mx-auto max-w-[1280px] px-6",children:[jsxRuntime.jsxs("div",{className:"flex gap-4 border-b border-border-subtle pb-0 pt-5",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-9 w-16 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-9 w-28 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-9 w-32 rounded-md"})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between gap-4 py-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2.5",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-8 w-48 rounded-lg"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-6 w-6 rounded"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-5 w-14 rounded-[3px]"})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-[34px] w-[240px] rounded-lg"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-[34px] w-12 rounded-[5px]"})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-4 pb-4",children:[jsxRuntime.jsxs("div",{className:"flex items-baseline gap-3",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-8 w-48 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-6 w-16 rounded"})]}),jsxRuntime.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-4 w-28 rounded"}),jsxRuntime.jsx("div",{className:"h-3.5 w-px bg-surface-strong"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-4 w-28 rounded"}),jsxRuntime.jsx("div",{className:"h-3.5 w-px bg-surface-strong"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-4 w-20 rounded"})]})]}),jsxRuntime.jsxs("div",{className:"grid grid-cols-[1fr_340px] gap-3 pb-4",children:[jsxRuntime.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-base p-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-4",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-7 w-40 rounded-[5px]"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-6 w-32 rounded"})]}),jsxRuntime.jsx(ui.Skeleton,{className:"h-[180px] w-full rounded-md"}),jsxRuntime.jsx("div",{className:"mt-2 flex justify-between",children:Array.from({length:7}).map((t,e)=>jsxRuntime.jsx(ui.Skeleton,{className:"h-3 w-8 rounded"},e))})]}),jsxRuntime.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-base p-4",children:[jsxRuntime.jsx(ui.Skeleton,{className:"mb-3 h-4 w-24 rounded"}),jsxRuntime.jsx("div",{className:"flex items-center justify-center py-4",children:jsxRuntime.jsx(ui.Skeleton,{className:"h-[140px] w-[140px] rounded-full"})}),jsxRuntime.jsx("div",{className:"space-y-1.5 pt-2",children:Array.from({length:5}).map((t,e)=>jsxRuntime.jsx(ui.Skeleton,{className:"h-4 w-full rounded"},e))})]})]}),jsxRuntime.jsxs("div",{className:"pb-6",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-8 w-40 rounded-[5px]"}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(ui.Skeleton,{className:"h-7 w-40 rounded-[5px]"}),jsxRuntime.jsx(ui.Skeleton,{className:"h-7 w-24 rounded-[5px]"})]})]}),jsxRuntime.jsx(ui.Skeleton,{className:"mb-3 h-5 w-full rounded"}),Array.from({length:5}).map((t,e)=>jsxRuntime.jsx(ui.Skeleton,{className:"mb-2 h-12 w-full rounded-[5px]"},e))]})]})}function ae({viewingAddress:t,onBack:e}){let{t:o}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b border-positive/12 bg-positive/6 px-6 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("div",{className:"flex h-[18px] w-[18px] items-center justify-center rounded-full border border-positive/25 bg-positive/7",children:jsxRuntime.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("path",{d:"M8 3C4.36 3 1.26 5.28 0 8.5c1.26 3.22 4.36 5.5 8 5.5s6.74-2.28 8-5.5C14.74 5.28 11.64 3 8 3z",stroke:"#C8FF00",strokeWidth:"1.3",fill:"none"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8.5",r:"2.5",stroke:"#C8FF00",strokeWidth:"1.3",fill:"none"})]})}),jsxRuntime.jsx("span",{className:"text-xs font-medium text-positive",children:o("portfolio.viewing.banner")}),jsxRuntime.jsx("span",{className:"ml-1 font-mono text-[11px] text-text-secondary",children:at(t)})]}),jsxRuntime.jsxs("button",{type:"button",className:"flex items-center gap-1.5 rounded-[5px] border border-border-subtle bg-surface-interactive px-3 py-1.5 text-[11px] font-medium text-text-secondary transition-colors hover:border-positive hover:bg-action-primary hover:text-text-inverse",onClick:e,children:[jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 2L4 8l6 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),o("portfolio.viewing.back")]})]})}function To({wallets:t=[],onCopyAddress:e,renderHoldings:o,isLoading:r,...s}){let a=ie(s),{activeTab:n,setActiveTab:i,walletId:l,selectWallet:u,viewingAddress:p,isViewing:f,curveType:x,setCurveType:d,curvePeriod:m,setCurvePeriod:h,portfolioQuery:c,overviewQuery:g,curveQuery:N,distributionQuery:D,spotValue:S,perpsValue:w,predictionValue:O,enterViewing:q,exitViewing:M}=a;return r||g.isLoading&&!g.data?jsxRuntime.jsx(se,{}):jsxRuntime.jsxs("div",{children:[f&&p&&jsxRuntime.jsx(ae,{viewingAddress:p,onBack:M}),jsxRuntime.jsxs("div",{className:"mx-auto max-w-[1280px] px-6",children:[jsxRuntime.jsx(_t,{activeTab:n,onTabChange:i,spotValue:S,perpsValue:w,predictionValue:O}),jsxRuntime.jsx(Kt,{walletId:l,wallets:t,isViewing:f,viewingAddress:p,onSelectWallet:u,onCopyAddress:()=>{if(f&&p)e?.(p);else {let U=t.find(Q=>Q.id===l);U&&e?.(U.address);}},onSearch:q}),jsxRuntime.jsx($t,{overview:g.data}),jsxRuntime.jsxs("div",{className:"grid grid-cols-[1fr_340px] gap-3 pb-4",children:[jsxRuntime.jsx(Gt,{curveType:x,curvePeriod:m,data:N.data,isLoading:N.isLoading,onTypeChange:d,onPeriodChange:h}),jsxRuntime.jsx(Yt,{data:D.data,isLoading:false})]}),o?.({activeTab:n,portfolioQuery:c,isViewing:f})]})]})}function Tt({open:t,title:e,message:o,confirmLabel:r,cancelLabel:s,onConfirm:a,onCancel:n}){let{t:i}=i18n.useTranslation();return t?jsxRuntime.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[jsxRuntime.jsx("div",{className:"absolute inset-0 bg-surface-scrim",onClick:n,onKeyDown:l=>{l.key==="Escape"&&n();},role:"button",tabIndex:-1,"aria-label":i("common.closeDialog")}),jsxRuntime.jsxs("div",{className:"relative z-10 w-full max-w-sm rounded-xl border border-border-subtle bg-surface-interactive p-6 shadow-2xl",children:[jsxRuntime.jsx("h3",{className:"text-sm font-semibold text-foreground",children:e}),jsxRuntime.jsx("p",{className:"mt-2 text-xs leading-relaxed text-text-secondary",children:o}),jsxRuntime.jsxs("div",{className:"mt-5 flex items-center justify-end gap-2",children:[jsxRuntime.jsx("button",{type:"button",className:"rounded-lg px-4 py-2 text-xs font-medium text-text-muted transition-colors hover:bg-surface-strong hover:text-foreground",onClick:n,children:s}),jsxRuntime.jsx("button",{type:"button",className:ui.cn("rounded-lg border px-4 py-2 text-xs font-medium transition-colors","border-negative/25 text-negative","hover:border-negative hover:bg-negative/10"),onClick:a,children:r})]})]})]}):null}function le({activeTab:t,portfolioQuery:e,isViewing:o}){let[r,s]=react.useState("holdings"),[a,n]=react.useState("positions"),[i,l]=react.useState("active"),[u,p]=react.useState(""),[f,x]=react.useState(""),[d,m]=react.useState(""),[h,c]=react.useState(false),[g,N]=react.useState(false),D=react.useCallback(()=>{N(Y=>!Y);},[]),S=ht(e,{enabled:t==="spot"}),w=Xt(e,{enabled:t==="spot"&&r==="history"}),O=Zt(e,{enabled:t==="perps"}),q=Jt(e,{enabled:t==="perps"&&a==="history"}),M=te(e,{enabled:t==="prediction"}),F=ee(e,{enabled:t==="prediction"&&i==="settled"}),ft=react.useMemo(()=>(S.data?.holdings??[]).filter(J=>{if(h&&J.value<1&&!J.verified)return false;if(u){let mt=u.toLowerCase();return J.name.toLowerCase().includes(mt)||J.symbol.toLowerCase().includes(mt)}return true}),[S.data?.holdings,h,u]),U=react.useMemo(()=>{let Y=O.data?.positions??[];if(!f)return Y;let J=f.toLowerCase();return Y.filter(mt=>mt.pair.toLowerCase().includes(J))},[O.data?.positions,f]),Q=react.useMemo(()=>{let Y=M.data?.bets??[];if(!d)return Y;let J=d.toLowerCase();return Y.filter(mt=>mt.market.toLowerCase().includes(J))},[M.data?.bets,d]);return {spotSubTab:r,setSpotSubTab:s,perpsSubTab:a,setPerpsSubTab:n,predictionSubTab:i,setPredictionSubTab:l,spotSearch:u,setSpotSearch:p,perpsSearch:f,setPerpsSearch:x,predictionSearch:d,setPredictionSearch:m,hideSmall:h,setHideSmall:c,groupCollapsed:g,toggleGroupCollapsed:D,spotHoldingsQuery:S,spotHistoryQuery:w,perpsPositionsQuery:O,perpsHistoryQuery:q,predictionBetsQuery:M,predictionSettledQuery:F,filteredSpotHoldings:ft,filteredPerpsPositions:U,filteredPredictionBets:Q,isViewing:o}}function rt({tabs:t,activeKey:e,onTabChange:o}){return jsxRuntime.jsx("div",{className:"flex gap-0.5",children:t.map(r=>jsxRuntime.jsx("button",{type:"button",className:ui.cn("rounded-[5px] px-3 py-1.5 text-xs font-medium transition-colors",e===r.key?"bg-surface-interactive text-foreground":"text-text-muted hover:bg-surface-interactive hover:text-text-secondary"),onClick:()=>o(r.key),children:r.label},r.key))})}function it({value:t,onChange:e,placeholder:o}){return jsxRuntime.jsxs("div",{className:"flex h-7 w-40 items-center gap-1 rounded-[5px] border border-border-subtle bg-surface-raised px-2 transition-all focus-within:w-[200px] focus-within:border-focus",children:[jsxRuntime.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:"none",className:"flex-shrink-0 text-text-muted",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11L14.5 14.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{type:"text",className:"flex-1 border-none bg-transparent font-mono text-[11px] text-foreground caret-brand-primary outline-none placeholder:font-sans placeholder:text-[10px] placeholder:text-text-muted",placeholder:o,spellCheck:false,value:t,onChange:r=>e(r.target.value)})]})}function G({title:t,hint:e}){return jsxRuntime.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[jsxRuntime.jsx("span",{className:"text-sm text-text-muted",children:t}),e&&jsxRuntime.jsx("span",{className:"mt-1 text-xs text-text-disabled",children:e})]})}function St({label:t,disabled:e,onClick:o}){return jsxRuntime.jsxs("button",{type:"button",className:ui.cn("flex items-center gap-1 whitespace-nowrap rounded-[5px] border px-3 py-1.5 text-[11px] font-medium transition-colors",e?"pointer-events-none border-border-subtle text-text-disabled":"border-[rgba(255,82,82,0.25)] text-negative hover:border-negative hover:bg-[rgba(255,82,82,0.1)]"),onClick:o,disabled:e,children:[jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),t]})}function ce({state:t,onClosePosition:e,onCloseAll:o}){let{t:r}=i18n.useTranslation(),{perpsSubTab:s,setPerpsSubTab:a,perpsSearch:n,setPerpsSearch:i,filteredPerpsPositions:l,perpsHistoryQuery:u,isViewing:p}=t,f=l.length>0;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx(rt,{tabs:[{key:"positions",label:r("portfolio.perps.openPositions")},{key:"history",label:r("portfolio.perps.tradeHistory")}],activeKey:s,onTabChange:x=>a(x)}),s==="positions"&&!p&&jsxRuntime.jsx(St,{label:r("portfolio.perps.closeAll"),disabled:!f,onClick:()=>o?.()})]}),jsxRuntime.jsx(it,{value:n,onChange:i,placeholder:r("portfolio.perps.search.placeholder")})]}),s==="positions"?jsxRuntime.jsx(Oi,{positions:l,isViewing:p,onClose:e}):jsxRuntime.jsx(Ei,{records:u.data?.records??[],isLoading:u.isLoading})]})}function Oi({positions:t,isViewing:e,onClose:o}){let{t:r}=i18n.useTranslation();return t.length===0?jsxRuntime.jsx(G,{title:r("portfolio.perps.empty"),hint:r("portfolio.perps.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:e?"2fr 1fr .8fr .8fr 1fr":"2fr 1fr .8fr .8fr 1fr 80px"},children:[jsxRuntime.jsx("span",{children:r("portfolio.perps.header.pair")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.size")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.entry")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.mark")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.uPnl")}),!e&&jsxRuntime.jsx("span",{className:"text-right"})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(s=>jsxRuntime.jsx(Mi,{position:s,isViewing:e,onClose:o},s.id))})]})}function Mi({position:t,isViewing:e,onClose:o}){let{t:r}=i18n.useTranslation(),s=t.side==="long",a=t.uPnl>=0;return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:e?"2fr 1fr .8fr .8fr 1fr":"2fr 1fr .8fr .8fr 1fr 80px"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.pair,className:"h-6 w-6 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[9px] font-bold text-text-muted",children:t.pair.slice(0,2)}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx("span",{className:"text-xs font-medium text-foreground",children:t.pair}),jsxRuntime.jsx("span",{className:ui.cn("rounded px-1.5 py-0.5 text-[10px] font-medium",s?"bg-positive/12 text-positive":"bg-negative/12 text-negative"),children:r(s?"perpetuals.positions.long":"perpetuals.positions.short")}),jsxRuntime.jsxs("span",{className:"rounded bg-positive/10 px-1.5 py-0.5 text-[10px] font-medium text-positive",children:[t.leverage,"\xD7"]})]})]}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.size)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.entryPrice)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.markPrice)}),jsxRuntime.jsx("span",{className:ui.cn("text-right font-mono text-xs",a?"text-positive":"text-negative"),children:bt(t.uPnl)}),!e&&jsxRuntime.jsx("div",{className:"flex justify-end",children:jsxRuntime.jsx("button",{type:"button",className:"rounded-[5px] border border-border-subtle px-2.5 py-1 text-[10px] font-medium text-text-muted transition-colors hover:border-negative hover:text-negative",onClick:()=>o?.(t),children:r("portfolio.perps.close")})})]})}function Ei({records:t,isLoading:e}){let{t:o}=i18n.useTranslation();return e?jsxRuntime.jsx("div",{className:"flex items-center justify-center py-16",children:jsxRuntime.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-positive border-t-transparent"})}):t.length===0?jsxRuntime.jsx(G,{title:o("portfolio.perps.history.empty"),hint:o("portfolio.perps.history.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"1.5fr 80px 1fr 1fr 1fr 100px"},children:[jsxRuntime.jsx("span",{children:o("portfolio.perps.history.header.pair")}),jsxRuntime.jsx("span",{children:o("portfolio.perps.history.header.side")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.size")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.pnl")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.closePrice")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.time")})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(r=>jsxRuntime.jsx(Li,{record:r},r.id))})]})}function Li({record:t}){let{t:e}=i18n.useTranslation(),o=t.side==="long",r=t.pnl>=0;return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"1.5fr 80px 1fr 1fr 1fr 100px"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.pair,className:"h-5 w-5 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[8px] font-bold text-text-muted",children:t.pair.slice(0,2)}),jsxRuntime.jsx("span",{className:"text-xs font-medium text-foreground",children:t.pair})]}),jsxRuntime.jsx("span",{children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",o?"bg-positive/12 text-positive":"bg-negative/12 text-negative"),children:e(o?"perpetuals.positions.long":"perpetuals.positions.short")})}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.size)}),jsxRuntime.jsx("span",{className:ui.cn("text-right font-mono text-xs",r?"text-positive":"text-negative"),children:bt(t.pnl)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.closePrice)}),jsxRuntime.jsx("span",{className:"text-right text-[11px] text-text-muted",children:t.time})]})}function ue({state:t,onSellBet:e,onSellAll:o}){let{t:r}=i18n.useTranslation(),{predictionSubTab:s,setPredictionSubTab:a,predictionSearch:n,setPredictionSearch:i,filteredPredictionBets:l,predictionSettledQuery:u,isViewing:p}=t,f=l.length>0;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx(rt,{tabs:[{key:"active",label:r("portfolio.prediction.activeBets")},{key:"settled",label:r("portfolio.prediction.settled")}],activeKey:s,onTabChange:x=>a(x)}),s==="active"&&!p&&jsxRuntime.jsx(St,{label:r("portfolio.prediction.sellAll"),disabled:!f,onClick:()=>o?.()})]}),jsxRuntime.jsx(it,{value:n,onChange:i,placeholder:r("portfolio.prediction.search.placeholder")})]}),s==="active"?jsxRuntime.jsx(Vi,{bets:l,isViewing:p,onSell:e}):jsxRuntime.jsx(_i,{records:u.data?.records??[],isLoading:u.isLoading})]})}var Fi={polymarket:"bg-[rgba(0,102,255,0.12)] text-[#0066FF]",drift:"bg-positive/10 text-positive",metadao:"bg-[rgba(255,107,157,0.1)] text-[#FF6B9D]"},Ki={polymarket:"Polymarket",drift:"Drift",metadao:"MetaDAO"};function Do({source:t}){return jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",Fi[t]),children:Ki[t]})}function Vi({bets:t,isViewing:e,onSell:o}){let{t:r}=i18n.useTranslation();return t.length===0?jsxRuntime.jsx(G,{title:r("portfolio.prediction.empty"),hint:r("portfolio.prediction.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:e?"2.2fr .6fr .7fr .7fr .7fr":"2.2fr .6fr .7fr .7fr .7fr 80px"},children:[jsxRuntime.jsx("span",{children:r("portfolio.prediction.header.market")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.position")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.stake")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.potential")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.status")}),!e&&jsxRuntime.jsx("span",{className:"text-right"})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(s=>jsxRuntime.jsx(qi,{bet:s,isViewing:e,onSell:o},s.id))})]})}function qi({bet:t,isViewing:e,onSell:o}){let{t:r}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:e?"2.2fr .6fr .7fr .7fr .7fr":"2.2fr .6fr .7fr .7fr .7fr 80px"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.market,className:"h-6 w-6 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[9px] font-bold text-text-muted",children:"?"}),jsxRuntime.jsxs("div",{className:"flex flex-col overflow-hidden",children:[jsxRuntime.jsx("span",{className:"truncate text-xs font-medium text-foreground",children:t.market}),jsxRuntime.jsx(Do,{source:t.source})]})]}),jsxRuntime.jsx("span",{className:ui.cn("text-right text-xs font-medium",t.position==="Yes"?"text-positive":"text-negative"),children:t.position}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.stake)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-positive",children:I(t.potential)}),jsxRuntime.jsx("span",{className:"text-right",children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",t.status==="active"?"bg-positive/12 text-positive":"bg-positive/10 text-positive"),children:r(t.status==="active"?"portfolio.prediction.status.active":"portfolio.prediction.status.pending")})}),!e&&jsxRuntime.jsx("div",{className:"flex justify-end",children:jsxRuntime.jsx("button",{type:"button",className:"rounded-[5px] border border-border-subtle px-2.5 py-1 text-[10px] font-medium text-text-muted transition-colors hover:border-negative hover:text-negative",onClick:()=>o?.(t),children:r("portfolio.prediction.sell")})})]})}function _i({records:t,isLoading:e}){let{t:o}=i18n.useTranslation();return e?jsxRuntime.jsx("div",{className:"flex items-center justify-center py-16",children:jsxRuntime.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-positive border-t-transparent"})}):t.length===0?jsxRuntime.jsx(G,{title:o("portfolio.prediction.settled.empty"),hint:o("portfolio.prediction.settled.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"1.5fr .8fr .6fr .7fr .6fr .7fr"},children:[jsxRuntime.jsx("span",{children:o("portfolio.prediction.settled.header.market")}),jsxRuntime.jsx("span",{children:o("portfolio.prediction.settled.header.source")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.position")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.stake")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.result")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.payout")})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(r=>jsxRuntime.jsx(zi,{record:r},r.id))})]})}function zi({record:t}){let{t:e}=i18n.useTranslation(),o=t.result==="won";return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"1.5fr .8fr .6fr .7fr .6fr .7fr"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.market,className:"h-5 w-5 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[8px] font-bold text-text-muted",children:"?"}),jsxRuntime.jsx("span",{className:"truncate text-xs font-medium text-foreground",children:t.market})]}),jsxRuntime.jsx(Do,{source:t.source}),jsxRuntime.jsx("span",{className:ui.cn("text-right text-xs font-medium",t.position==="Yes"?"text-positive":"text-negative"),children:t.position}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.stake)}),jsxRuntime.jsx("span",{className:"text-right",children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",o?"bg-positive/12 text-positive":"bg-negative/12 text-negative"),children:e(o?"portfolio.prediction.result.won":"portfolio.prediction.result.lost")})}),jsxRuntime.jsx("span",{className:ui.cn("text-right font-mono text-xs",o?"text-positive":"text-text-muted"),children:o?`+${I(t.payout)}`:I(t.payout)})]})}function me({state:t}){let{t:e}=i18n.useTranslation(),{spotSubTab:o,setSpotSubTab:r,spotSearch:s,setSpotSearch:a,hideSmall:n,setHideSmall:i,groupCollapsed:l,toggleGroupCollapsed:u,filteredSpotHoldings:p,spotHistoryQuery:f}=t;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsx(rt,{tabs:[{key:"holdings",label:e("portfolio.spot.holdings")},{key:"history",label:e("portfolio.spot.history")}],activeKey:o,onTabChange:x=>r(x)}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(it,{value:s,onChange:a,placeholder:e("portfolio.spot.search.placeholder")}),o==="holdings"&&jsxRuntime.jsxs("label",{className:"flex cursor-pointer items-center gap-1.5 text-[11px] text-text-muted select-none",children:[jsxRuntime.jsx("input",{type:"checkbox",className:"accent-[#C8FF00]",checked:n,onChange:x=>i(x.target.checked)}),e("portfolio.spot.hideSmall")]})]})]}),o==="holdings"?jsxRuntime.jsx($i,{holdings:p,groupCollapsed:l,onToggleGroup:u}):jsxRuntime.jsx(Yi,{records:f.data?.trades??[],isLoading:f.isLoading})]})}function $i({holdings:t,groupCollapsed:e,onToggleGroup:o}){let{t:r}=i18n.useTranslation();return t.length===0?jsxRuntime.jsx(G,{title:r("portfolio.spot.empty"),hint:r("portfolio.spot.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr"},children:[jsxRuntime.jsx("span",{children:r("portfolio.spot.header.asset")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.balance")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.price")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.value")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.24h")})]}),jsxRuntime.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-2 text-[10px] font-medium uppercase tracking-wider text-text-muted transition-colors hover:text-text-secondary",onClick:o,children:[jsxRuntime.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",className:ui.cn("transition-transform",e&&"-rotate-90"),children:jsxRuntime.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),jsxRuntime.jsx("span",{children:r("portfolio.spot.group.tokens")}),jsxRuntime.jsx("span",{className:"text-text-disabled",children:t.length})]}),!e&&jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(s=>jsxRuntime.jsx(Gi,{holding:s},s.tokenAddress))})]})}function Gi({holding:t}){let e=t.change24h>=0;return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2.5 overflow-hidden",children:[t.image?jsxRuntime.jsx("img",{src:t.image,alt:t.symbol,className:"h-7 w-7 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[10px] font-bold text-text-muted",children:t.symbol.slice(0,2)}),jsxRuntime.jsxs("div",{className:"flex flex-col overflow-hidden",children:[jsxRuntime.jsx("span",{className:"truncate text-xs font-medium text-foreground",children:t.name}),jsxRuntime.jsx("span",{className:"text-[10px] text-text-muted",children:t.symbol})]})]}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:Ft(t.balance)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.price)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.value)}),jsxRuntime.jsx("span",{className:ui.cn("text-right font-mono text-xs",e?"text-positive":"text-negative"),children:he(t.change24h)})]})}function Yi({records:t,isLoading:e}){let{t:o}=i18n.useTranslation();return e?jsxRuntime.jsx("div",{className:"flex items-center justify-center py-16",children:jsxRuntime.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-positive border-t-transparent"})}):t.length===0?jsxRuntime.jsx(G,{title:o("portfolio.spot.history.empty"),hint:o("portfolio.spot.history.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"80px 1.5fr 1fr 1fr 100px 80px"},children:[jsxRuntime.jsx("span",{children:o("portfolio.spot.history.header.type")}),jsxRuntime.jsx("span",{children:o("portfolio.spot.history.header.detail")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.amount")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.value")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.time")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.txHash")})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(r=>jsxRuntime.jsx(Zi,{record:r},`${r.txHash}-${r.tokenAddress}`))})]})}var ji={swap:"bg-[rgba(139,123,255,0.12)] text-[#8B7BFF]",send:"bg-negative/12 text-negative",receive:"bg-positive/12 text-positive"};function Xi(t){return t.type==="swap"&&t.sideTokenSymbol?`${t.tokenSymbol} \u2192 ${t.sideTokenSymbol}`:t.tokenName||t.tokenSymbol}function Zi({record:t}){let{t:e}=i18n.useTranslation(),o=Ne(t.txHash,t.chain);return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"80px 1.5fr 1fr 1fr 100px 80px"},children:[jsxRuntime.jsx("span",{children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",ji[t.type]),children:e(`portfolio.spot.history.type.${t.type}`)})}),jsxRuntime.jsx("span",{className:"truncate text-xs text-foreground",children:Xi(t)}),jsxRuntime.jsxs("span",{className:"text-right font-mono text-xs text-foreground",children:[Ft(t.tokenAmount)," ",t.tokenSymbol]}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.valueUsd)}),jsxRuntime.jsx("span",{className:"text-right text-[11px] text-text-muted",children:t.timestamp?Ae(t.timestamp):"\u2014"}),jsxRuntime.jsx("span",{className:"text-right",children:t.txHash?jsxRuntime.jsxs("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:"font-mono text-[11px] text-text-muted transition-colors hover:text-brand-primary",children:[t.txHash.slice(0,4),"\u2026",t.txHash.slice(-3)]}):jsxRuntime.jsx("span",{className:"font-mono text-[11px] text-text-disabled",children:"\u2014"})})]})}function Ro({onClosePosition:t,onCloseAllPositions:e,onSellBet:o,onSellAllBets:r,...s}){let{t:a}=i18n.useTranslation(),n=le(s),[i,l]=react.useState(null),u=react.useCallback(()=>{l("closeAll");},[]),p=react.useCallback(()=>{l("sellAll");},[]),f=react.useCallback(()=>{i==="closeAll"?e?.():i==="sellAll"&&r?.(),l(null);},[i,e,r]),x=react.useCallback(()=>{l(null);},[]);return jsxRuntime.jsxs("div",{className:"rounded-xl border border-border-subtle bg-surface-raised p-4",children:[(()=>{switch(s.activeTab){case "spot":return jsxRuntime.jsx(me,{state:n});case "perps":return jsxRuntime.jsx(ce,{state:n,onClosePosition:t,onCloseAll:u});case "prediction":return jsxRuntime.jsx(ue,{state:n,onSellBet:o,onSellAll:p});default:return null}})(),jsxRuntime.jsx(Tt,{open:i==="closeAll",title:a("portfolio.perps.closeAll"),message:a("portfolio.perps.closeAll.confirm"),confirmLabel:a("portfolio.perps.closeAll.confirmBtn"),cancelLabel:a("portfolio.perps.closeAll.cancel"),onConfirm:f,onCancel:x}),jsxRuntime.jsx(Tt,{open:i==="sellAll",title:a("portfolio.prediction.sellAll"),message:a("portfolio.prediction.sellAll.confirm"),confirmLabel:a("portfolio.prediction.sellAll.confirmBtn"),cancelLabel:a("portfolio.prediction.sellAll.cancel"),onConfirm:f,onCancel:x})]})}function st(t,e=Date.now()){if(t==null)return "--";let o=typeof t=="string"||typeof t=="number"?new Date(t):t,r=typeof e=="number"?new Date(e):e,s=Math.max(0,Math.floor((r.getTime()-o.getTime())/1e3));if(s<60)return `${s}s`;let a=Math.floor(s/60);if(a<60)return `${a}m`;let n=Math.floor(a/60);if(n<24)return `${n}h`;let i=Math.floor(n/24);if(i<30)return `${i}d`;let l=Math.floor(i/30);return l<12?`${l}mo`:`${Math.floor(i/365)}y`}function ct(t,e=4,o=4){return t?t.length<=e+o+1?t:`${t.slice(0,e)}\u2026${t.slice(-o)}`:"--"}var rs={kol:{label:"KOL",labelKey:"common.walletTag.kol",bgClass:"bg-warning/15",textClass:"text-warning"},smart:{label:"Smart",labelKey:"common.walletTag.smart",bgClass:"bg-sky-500/15",textClass:"text-sky-400"},sniper:{label:"Sniper",labelKey:"common.walletTag.sniper",bgClass:"bg-danger/15",textClass:"text-danger"},dev:{label:"Dev",labelKey:"common.walletTag.dev",bgClass:"bg-negative/15",textClass:"text-negative"},bundle:{label:"Bundle",labelKey:"common.walletTag.bundle",bgClass:"bg-purple-500/15",textClass:"text-purple-400"},bluechip:{label:"Bluechip",labelKey:"common.walletTag.bluechip",bgClass:"bg-success/15",textClass:"text-success"},insider:{label:"Insider",labelKey:"common.walletTag.insider",bgClass:"bg-fuchsia-500/15",textClass:"text-fuchsia-400"},fresh:{label:"Fresh",labelKey:"common.walletTag.fresh",bgClass:"bg-teal-500/15",textClass:"text-teal-400"}};function Ho({tag:t,className:e}){let{t:o}=i18n.useTranslation(),r=rs[t]??{label:t,bgClass:"bg-default/20",textClass:"text-text-muted"};return jsxRuntime.jsx("span",{className:ui.cn("inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-medium uppercase leading-none tracking-wide",r.bgClass,r.textClass,e),children:r.labelKey?o(r.labelKey):r.label})}function It({tags:t,className:e,max:o}){if(!t||t.length===0)return null;let r=o!=null&&o>0?t.slice(0,o):t,s=t.length-r.length;return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-wrap items-center gap-1",e),children:[r.map(a=>jsxRuntime.jsx(Ho,{tag:a},a)),s>0&&jsxRuntime.jsxs("span",{className:"inline-flex items-center rounded bg-default/20 px-1.5 py-0.5 text-[10px] font-medium text-text-muted",children:["+",s]})]})}var ns=["timestamp","totalUsd"],as=["all","buy","sell"];function Ge({activities:t,isLoading:e,sortBy:o,onSortByChange:r,typeFilter:s="all",onTypeFilterChange:a,onLoadMore:n,hasMore:i,now:l=Date.now(),nativeDecimals:u=9,nativeSymbol:p="SOL",className:f,onRowClick:x}){let{t:d}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col",f),children:[jsxRuntime.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 px-3 py-2",children:[jsxRuntime.jsx("div",{className:"flex items-center gap-1",children:as.map(m=>jsxRuntime.jsx("button",{type:"button",onClick:()=>a?.(m),className:ui.cn("rounded px-2 py-1 text-[11px] transition-colors",s===m?"bg-default-100 text-foreground":"text-text-muted hover:text-foreground"),children:d(m==="all"?"portfolio.activities.filter.all":m==="buy"?"portfolio.activities.filter.buys":"portfolio.activities.filter.sells")},m))}),jsxRuntime.jsx("div",{className:"flex items-center gap-1",children:ns.map(m=>jsxRuntime.jsx("button",{type:"button",onClick:()=>r(m),className:ui.cn("rounded px-2 py-1 text-[11px] transition-colors",o===m?"bg-default-100 text-foreground":"text-text-muted hover:text-foreground"),children:d(m==="timestamp"?"portfolio.activities.filter.latest":"portfolio.activities.filter.topUsd")},m))})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full min-w-[780px] table-fixed text-[12px]",children:[jsxRuntime.jsx("thead",{className:"text-text-muted",children:jsxRuntime.jsxs("tr",{className:"border-b border-default-100",children:[jsxRuntime.jsx("th",{className:"w-[10%] px-3 py-2 text-left font-normal",children:d("portfolio.activities.header.side")}),jsxRuntime.jsx("th",{className:"w-[25%] px-3 py-2 text-left font-normal",children:d("portfolio.activities.header.token")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.amount")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.usd")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-left font-normal",children:d("portfolio.activities.header.tags")}),jsxRuntime.jsx("th",{className:"w-[10%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.gas")}),jsxRuntime.jsx("th",{className:"w-[10%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.age")})]})}),jsxRuntime.jsxs("tbody",{children:[t.length===0&&!e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:7,className:"py-8 text-center text-text-muted",children:d("portfolio.activities.empty")})}),t.map(m=>jsxRuntime.jsx(ds,{activity:m,now:l,nativeDecimals:u,nativeSymbol:p,onRowClick:x},`${m.txHash}-${m.walletAddress}`)),e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:7,className:"py-4 text-center text-text-muted",children:d("portfolio.common.loading")})})]})]})}),i&&jsxRuntime.jsx("div",{className:"flex justify-center px-3 py-2",children:jsxRuntime.jsx("button",{type:"button",onClick:n,disabled:e,className:"rounded bg-default-100 px-3 py-1 text-[11px] text-text-muted transition-colors hover:bg-default-200 disabled:opacity-50",children:d("portfolio.common.loadMore")})})]})}function ls(t){return t.type==="buy"?t.to:t.type==="sell"?t.from:t.to}function ps(t,e,o){if(!t)return "--";let r=Number(t)/Math.pow(10,e);return Number.isFinite(r)?`${utils.formatAmount(r)} ${o}`:"--"}function ds({activity:t,now:e,nativeDecimals:o,nativeSymbol:r,onRowClick:s}){let a=ls(t),n=t.type==="buy"?"Buy":t.type==="sell"?"Sell":t.type.replace(/_/g," "),i=t.type==="buy"?"text-positive":t.type==="sell"?"text-negative":"text-text-muted";return jsxRuntime.jsxs("tr",{className:ui.cn("border-b border-default-50 hover:bg-default-50/60",s&&"cursor-pointer"),onClick:s?()=>s(t):void 0,children:[jsxRuntime.jsx("td",{className:ui.cn("px-3 py-2 align-middle font-medium capitalize",i),children:n}),jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground",children:a.symbol}),jsxRuntime.jsx("span",{className:"font-mono text-[10px] text-text-muted",children:ct(a.address,6,6)})]})}),jsxRuntime.jsxs("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:[utils.formatAmount(a.amount)," ",a.symbol]}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-foreground",children:a.amountInUsd?utils.formatAmountInUsd(a.amountInUsd):"--"}),jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsx(It,{tags:t.traderTags,max:2})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:ps(t.gasFee,o,r)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:st(t.time,e)})]})}var cs=100;function Oo(){return {getKey:t=>t.txHash,compare:()=>0,include:()=>true,merge:(t,e,o)=>o.previousSource==="page"||o.incomingSource==="page"?o.previousSource==="page"?{item:t,placement:"previous"}:{item:e,placement:"incoming"}:{item:t,placement:"previous"},maxLiveItems:cs}}function Mo(t){return Object.freeze({cursor:null,generation:t,mode:"replace"})}function us(t,e){return t.sortBy==="timestamp"&&t.typeFilter==="all"&&e==null}function Eo(){let{snapshot:t}=realtimeCursorCollection.createRealtimeCursorCollection(Oo());return {collection:t,request:Mo(t.generation)}}function Ht(t,e,o){let{reduce:r}=realtimeCursorCollection.createRealtimeCursorCollection(Oo());switch(e.type){case "reset":{let s=r(t.collection,{type:"reset"});return {collection:s,request:Mo(s.generation)}}case "load-more":return fs(t,r);case "live":return e.items.length===0||!us(o,t.request.cursor)?t:{collection:r(t.collection,{type:"live",items:e.items}),request:t.request};case "page":return e.request.mode==="append"&&e.nextCursor===t.collection.nextCursor?t:{collection:r(t.collection,{type:"page",mode:e.request.mode,generation:e.request.generation,items:e.items,nextCursor:e.nextCursor,hasNextPage:e.hasNextPage}),request:t.request};default:return e}}function fs(t,e){let{collection:o,request:r}=t;if(!o.hasNextPage||o.nextCursor==null||r.mode==="append"&&r.cursor===o.nextCursor&&r.generation===o.generation)return t;let s=e(o,{type:"clear-live"});return {collection:s,request:Object.freeze({cursor:s.nextCursor,generation:s.generation,mode:"append"})}}function Xe({chain:t,address:e,limit:o=50,initialSortBy:r="timestamp",initialTypeFilter:s="all"}){let[a,n]=react.useState(r),[i,l]=react.useState(s),[u,p]=react.useState(Eo),f=react.useRef(true),x=react.useMemo(()=>({sortBy:a,typeFilter:i}),[a,i]),d=react.useRef(x);d.current=x;let m=react.useCallback(()=>{p(U=>Ht(U,{type:"reset"},d.current));},[]),h=react.useCallback(U=>{U!==a&&(n(U),m());},[a,m]),c=react.useCallback(U=>{U!==i&&(l(U),m());},[i,m]);react.useEffect(()=>{if(f.current){f.current=false;return}m();},[t,e,m]);let g=i==="all"?void 0:i,{collection:N,request:D}=u,S=react.useMemo(()=>({chain:t,address:e,cursor:D.cursor??void 0,limit:o,sortBy:a,type:g}),[t,e,D,o,a,g]),{data:w,isPending:O,isFetching:q}=react$1.useWalletActivitiesQuery(S);react.useEffect(()=>{w&&p(U=>Ht(U,{type:"page",request:D,items:w.data,nextCursor:w.endCursor??null,hasNextPage:!!w.hasNext},x));},[w,D,x]),react$1.useWalletActivitiesSubscription({chain:t,address:e},U=>{U?.length&&p(Q=>Ht(Q,{type:"live",items:U},x));});let M=react.useMemo(()=>N.items.slice(),[N]),F=!!(N.hasNextPage&&N.nextCursor),ft=react.useCallback(()=>{p(U=>Ht(U,{type:"load-more"},x));},[x]);return {activities:M,isLoading:O||q,sortBy:a,setSortBy:h,typeFilter:i,setTypeFilter:c,hasMore:F,loadMore:ft}}function gs({chain:t,address:e,limit:o,initialSortBy:r,initialTypeFilter:s,nativeDecimals:a,nativeSymbol:n,className:i,onRowClick:l}){let{activities:u,isLoading:p,sortBy:f,setSortBy:x,typeFilter:d,setTypeFilter:m,hasMore:h,loadMore:c}=Xe({chain:t,address:e,limit:o,initialSortBy:r,initialTypeFilter:s});return jsxRuntime.jsx(Ge,{activities:u,isLoading:p,sortBy:f,onSortByChange:x,typeFilter:d,onTypeFilterChange:m,hasMore:h,onLoadMore:c,className:i,nativeDecimals:a,nativeSymbol:n,onRowClick:l})}function Ze({data:t,isLoading:e,className:o,now:r=Date.now(),onRowClick:s,onLoadMore:a,hasMore:n}){let{t:i}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col",o),children:[jsxRuntime.jsx("div",{className:"flex items-baseline justify-between px-3 py-2",children:jsxRuntime.jsxs("span",{className:"text-xs font-medium text-text-muted",children:[i("portfolio.netWorth.holdings"),t&&jsxRuntime.jsx("span",{className:"ml-2 text-[10px] text-text-muted",children:i("portfolio.netWorth.summary",{value:utils.formatAmountInUsd(t.balanceInUsd)})})]})}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full min-w-[720px] table-fixed text-[12px]",children:[jsxRuntime.jsx("thead",{className:"text-text-muted",children:jsxRuntime.jsxs("tr",{className:"border-b border-default-100",children:[jsxRuntime.jsx("th",{className:"w-[28%] px-3 py-2 text-left font-normal",children:i("portfolio.netWorth.header.token")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:i("portfolio.netWorth.header.amount")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:i("portfolio.netWorth.header.value")}),jsxRuntime.jsx("th",{className:"w-[14%] px-3 py-2 text-right font-normal",children:i("portfolio.netWorth.header.avgCost")}),jsxRuntime.jsx("th",{className:"w-[16%] px-3 py-2 text-left font-normal",children:i("portfolio.netWorth.header.tags")}),jsxRuntime.jsx("th",{className:"w-[12%] px-3 py-2 text-right font-normal",children:i("portfolio.netWorth.header.lastActive")})]})}),jsxRuntime.jsxs("tbody",{children:[(!t||t.portfolios.length===0)&&!e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:6,className:"py-8 text-center text-text-muted",children:i("portfolio.netWorth.empty")})}),t?.portfolios.map(l=>jsxRuntime.jsx(hs,{portfolio:l,now:r,onRowClick:s},`${l.chain}-${l.address}`)),e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:6,className:"py-4 text-center text-text-muted",children:i("portfolio.common.loading")})})]})]})}),n&&jsxRuntime.jsx("div",{className:"flex justify-center px-3 py-2",children:jsxRuntime.jsx("button",{type:"button",onClick:a,disabled:e,className:"rounded bg-default-100 px-3 py-1 text-[11px] text-text-muted transition-colors hover:bg-default-200 disabled:opacity-50",children:i("portfolio.common.loadMore")})})]})}function hs({portfolio:t,now:e,onRowClick:o}){return jsxRuntime.jsxs("tr",{className:ui.cn("border-b border-default-50 hover:bg-default-50/60",o&&"cursor-pointer"),onClick:o?()=>o(t):void 0,children:[jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground",children:t.symbol}),jsxRuntime.jsx("span",{className:"font-mono text-[10px] text-text-muted",children:ct(t.address,6,6)})]})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:utils.formatAmount(t.amount)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-foreground",children:utils.formatAmountInUsd(t.amountInUsd)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.avgCostUsd?utils.formatPriceInUsd(t.avgCostUsd):"--"}),jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsx(It,{tags:t.walletTokenTags,max:2})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.lastActiveAt?st(t.lastActiveAt,e):"--"})]})}function Je({chain:t,address:e,limit:o=50}){let[r,s]=react.useState(void 0),[a,n]=react.useState([]);react.useEffect(()=>{n([]),s(void 0);},[t,e]);let{data:i,isPending:l,isFetching:u}=react$1.useWalletPortfoliosQuery({chain:t,address:e,cursor:r,limit:o});react.useEffect(()=>{i&&n(m=>r==null?[i]:m[m.length-1]?.endCursor===i.endCursor?m:[...m,i]);},[i,r]);let p=react.useMemo(()=>a.length===0?void 0:{...a[0],portfolios:a.flatMap(h=>h.portfolios)},[a]),f=a[a.length-1],x=!!(f?.hasNext&&f.endCursor),d=react.useCallback(()=>{!f?.endCursor||!f.hasNext||s(f.endCursor);},[f]);return {data:p,isLoading:l||u,hasMore:x,loadMore:d}}function As({chain:t,address:e,limit:o,className:r,onRowClick:s}){let{data:a,isLoading:n,hasMore:i,loadMore:l}=Je({chain:t,address:e,limit:o});return jsxRuntime.jsx(Ze,{data:a,isLoading:n,className:r,hasMore:i,onLoadMore:l,onRowClick:s})}function io({data:t,isLoading:e,resolution:o,onResolutionChange:r,positionState:s,onPositionStateChange:a,sortBy:n,onSortByChange:i,hasMore:l,onLoadMore:u,now:p=Date.now(),className:f,onRowClick:x}){let{t:d}=i18n.useTranslation(),m=["7d","30d","90d"].map(g=>({value:g,label:g.toUpperCase()})),h=[{value:"open",label:d("portfolio.pnl.filter.open")},{value:"closed",label:d("portfolio.pnl.filter.closed")},{value:"all",label:d("portfolio.pnl.filter.all")}],c=[{value:"totalPnl",label:d("portfolio.pnl.filter.total")},{value:"realizedPnl",label:d("portfolio.pnl.filter.realized")},{value:"unrealizedPnl",label:d("portfolio.pnl.filter.unrealized")}];return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-2",f),children:[jsxRuntime.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 px-3 py-2",children:[jsxRuntime.jsx(to,{label:d("portfolio.pnl.filter.window"),options:m,value:o,onChange:r}),jsxRuntime.jsx(to,{label:d("portfolio.pnl.filter.status"),options:h,value:s,onChange:a}),jsxRuntime.jsx(to,{label:d("portfolio.pnl.filter.sort"),options:c,value:n,onChange:i})]}),t&&jsxRuntime.jsx(Ts,{data:t}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full min-w-[780px] table-fixed text-[12px]",children:[jsxRuntime.jsx("thead",{className:"text-text-muted",children:jsxRuntime.jsxs("tr",{className:"border-b border-default-100",children:[jsxRuntime.jsx("th",{className:"w-[22%] px-3 py-2 text-left font-normal",children:d("portfolio.pnl.header.token")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.holding")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.total")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.realized")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.unrealized")}),jsxRuntime.jsx("th",{className:"w-[8%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.state")}),jsxRuntime.jsx("th",{className:"w-[9%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.firstBuy")}),jsxRuntime.jsx("th",{className:"w-[9%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.lastSell")})]})}),jsxRuntime.jsxs("tbody",{children:[(!t||t.portfolios.length===0)&&!e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:8,className:"py-8 text-center text-text-muted",children:d("portfolio.pnl.empty")})}),t?.portfolios.map(g=>jsxRuntime.jsx(ks,{pnl:g,now:p,onRowClick:x},`${g.chain}-${g.address}`)),e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:8,className:"py-4 text-center text-text-muted",children:d("portfolio.common.loading")})})]})]})}),l&&jsxRuntime.jsx("div",{className:"flex justify-center px-3 py-2",children:jsxRuntime.jsx("button",{type:"button",onClick:u,disabled:e,className:"rounded bg-default-100 px-3 py-1 text-[11px] text-text-muted transition-colors hover:bg-default-200 disabled:opacity-50",children:d("portfolio.common.loadMore")})})]})}function to({label:t,options:e,value:o,onChange:r}){return jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{className:"text-[10px] uppercase tracking-wide text-text-muted",children:t}),jsxRuntime.jsx("div",{className:"flex items-center gap-1",children:e.map(s=>jsxRuntime.jsx("button",{type:"button",onClick:()=>r(s.value),className:ui.cn("rounded px-2 py-1 text-[11px] transition-colors",o===s.value?"bg-default-100 text-foreground":"text-text-muted hover:text-foreground"),children:s.label},s.value))})]})}function Ts({data:t}){let{t:e}=i18n.useTranslation(),o=t.totalProfitInUsd,r=t.totalProfitRatio,s=t.winRate;return jsxRuntime.jsxs("div",{className:"mx-3 flex flex-wrap items-center gap-x-6 gap-y-2 rounded border border-default-100 bg-default-50 px-4 py-2 text-xs",children:[jsxRuntime.jsx(ye,{label:e("portfolio.pnl.header.total"),value:o?utils.formatAmountInUsd(o,{showPlusGtThanZero:true}):"--",tone:o?$o(o):void 0}),jsxRuntime.jsx(ye,{label:e("portfolio.pnl.summary.return"),value:r?utils.formatPercent(r,{showPlusGtThanZero:true}):"--",tone:r?$o(r):void 0}),jsxRuntime.jsx(ye,{label:e("portfolio.pnl.summary.winRate"),value:s?utils.formatPercent(s):"--"}),jsxRuntime.jsx(ye,{label:e("portfolio.pnl.summary.trades"),value:t.totalTrades!=null?t.totalTrades.toString():"--"})]})}function $o(t){let e=new utils.SafeBigNumber(t);if(e.gt(0))return "bullish";if(e.lt(0))return "bearish"}function ye({label:t,value:e,tone:o}){return jsxRuntime.jsxs("div",{className:"flex flex-col",children:[jsxRuntime.jsx("span",{className:"text-[10px] uppercase tracking-wide text-text-muted",children:t}),jsxRuntime.jsx("span",{className:ui.cn("text-sm font-medium",o==="bullish"?"text-positive":o==="bearish"?"text-negative":"text-foreground"),children:e})]})}function eo({value:t}){if(!t)return jsxRuntime.jsx("span",{className:"text-text-muted",children:"--"});let e=new utils.SafeBigNumber(t),o=e.gt(0)?"text-positive":e.lt(0)?"text-negative":"text-text-muted";return jsxRuntime.jsx("span",{className:o,children:utils.formatAmountInUsd(t,{showPlusGtThanZero:true})})}function ks({pnl:t,now:e,onRowClick:o}){let{t:r}=i18n.useTranslation();return jsxRuntime.jsxs("tr",{className:ui.cn("border-b border-default-50 hover:bg-default-50/60",o&&"cursor-pointer"),onClick:o?()=>o(t):void 0,children:[jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground",children:t.symbol}),jsxRuntime.jsx("span",{className:"font-mono text-[10px] text-text-muted",children:ct(t.address,6,6)})]})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-foreground",children:utils.formatAmountInUsd(t.amountInUsd)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle",children:jsxRuntime.jsx(eo,{value:t.totalProfitInUsd})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle",children:jsxRuntime.jsx(eo,{value:t.realizedProfitInUsd})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle",children:jsxRuntime.jsx(eo,{value:t.unrealizedProfitInUsd})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-[10px]",children:jsxRuntime.jsx("span",{className:ui.cn("rounded px-1.5 py-0.5",t.isClosed?"bg-default/20 text-text-muted":"bg-positive/15 text-positive"),children:r(t.isClosed?"portfolio.pnl.filter.closed":"portfolio.pnl.filter.open")})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.firstBuyAt?st(t.firstBuyAt,e):"--"}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.lastSellAt?st(t.lastSellAt,e):"--"})]})}function so({chain:t,address:e,limit:o=50,initialResolution:r="30d",initialPositionState:s="open",initialSortBy:a="totalPnl"}){let[n,i]=react.useState(r),[l,u]=react.useState(s),[p,f]=react.useState(a),[x,d]=react.useState(void 0),[m,h]=react.useState([]),c=react.useCallback(()=>{d(void 0),h([]);},[]),g=react.useCallback(Q=>{Q!==n&&(i(Q),c());},[n,c]),N=react.useCallback(Q=>{Q!==l&&(u(Q),c());},[l,c]),D=react.useCallback(Q=>{Q!==p&&(f(Q),c());},[p,c]);react.useEffect(()=>{c();},[t,e,c]);let S=react.useMemo(()=>({chain:t,address:e,cursor:x,limit:o,resolution:n,positionState:l,sortBy:p}),[t,e,x,o,n,l,p]),{data:w,isPending:O,isFetching:q}=react$1.useWalletPortfolioPnlsQuery(S);react.useEffect(()=>{w&&h(Q=>x==null?[w]:Q[Q.length-1]?.endCursor===w.endCursor?Q:[...Q,w]);},[w,x]);let M=react.useMemo(()=>m.length===0?void 0:{...m[0],portfolios:m.flatMap(Y=>Y.portfolios)},[m]),F=m[m.length-1],ft=!!(F?.hasNext&&F.endCursor),U=react.useCallback(()=>{!F?.endCursor||!F.hasNext||d(F.endCursor);},[F]);return {data:M,isLoading:O||q,resolution:n,setResolution:g,positionState:l,setPositionState:N,sortBy:p,setSortBy:D,hasMore:ft,loadMore:U}}function Rs({chain:t,address:e,limit:o,initialResolution:r,initialPositionState:s,initialSortBy:a,className:n,onRowClick:i}){let{data:l,isLoading:u,resolution:p,setResolution:f,positionState:x,setPositionState:d,sortBy:m,setSortBy:h,hasMore:c,loadMore:g}=so({chain:t,address:e,limit:o,initialResolution:r,initialPositionState:s,initialSortBy:a});return jsxRuntime.jsx(io,{data:l,isLoading:u,resolution:p,onResolutionChange:f,positionState:x,onPositionStateChange:d,sortBy:m,onSortByChange:h,hasMore:c,onLoadMore:g,className:n,onRowClick:i})}function Us(t){return t instanceof Error?t:new Error(String(t))}async function no(t){try{return {kind:"ok",data:await t()}}catch(e){return {kind:"error",error:Us(e)}}}function ao(t){return {getHoldings:e=>no(()=>t.getSpotHoldings(e)),getNetWorth:e=>no(()=>t.getOverview(e)),getActivitiesPage:e=>no(()=>t.getSpotHistory(e)),async getPerpsPositions(){return {kind:"unsupported",capability:"perps"}},async getPredictionBets(){return {kind:"unsupported",capability:"prediction"}},subscribeActivities(){return {unsubscribe(){}}}}}function Zo({client:t,adapter:e,children:o}){let r=react.useMemo(()=>e??ao(t),[e,t]);return jsxRuntime.jsx(xt.Provider,{value:t,children:jsxRuntime.jsx(gt.Provider,{value:r,children:o})})}var Es=15e3;function Ls(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function Jo({chain:t,address:e,enabled:o=true,summaryPollMs:r=Es}){let{setSummary:s,setSummaryStatus:a,setRefetchSummary:n}=react.useContext(Ot),i=react$1.useWalletPortfoliosQuery({chain:t,address:e},{enabled:o,refetchInterval:r}),l=react$1.useWalletPnlQuery({chain:t,address:e},{enabled:o,refetchInterval:r});react.useEffect(()=>{s(null);},[t,e,s]),react.useEffect(()=>{let p=i.isPending||l.isPending,f=i.isFetching||l.isFetching,x=i.isError||l.isError,d=i.isSuccess&&l.isSuccess;a({status:x?"error":d?"success":"pending",fetchStatus:f?"fetching":"idle",isLoading:p&&f,isPending:p,isFetching:f,isRefetching:d&&f,isError:x,isSuccess:d,error:i.error??l.error,dataUpdatedAt:Math.max(i.dataUpdatedAt,l.dataUpdatedAt)});},[i.isPending,i.isFetching,i.isError,i.isSuccess,i.error,i.dataUpdatedAt,l.isPending,l.isFetching,l.isError,l.isSuccess,l.error,l.dataUpdatedAt,a]),react.useEffect(()=>{let p=i.data,f=l.data;!p||!f||s({...f,balanceInUsd:p.balanceInUsd,balanceInNative:p.balanceInNative});},[i.data,l.data,s]),react$1.useWalletPnlSubscription({chain:t,address:e},p=>{s(f=>{if(!f)return f;let x=f;for(let d of p)x={...x,...Ls(d)};return x});},{enabled:o});let u=react.useCallback(async()=>{await Promise.all([i.refetch(),l.refetch()]);},[i,l]);react.useEffect(()=>{n(u);},[u,n]);}function rr({chain:t,address:e,children:o}){let[r,s]=react.useState(null),[a,n]=react.useState(Vs),i=react.useRef(()=>Promise.resolve()),l=react.useCallback(()=>i.current(),[]),u=react.useCallback(x=>{i.current=x;},[]),p=react.useMemo(()=>({summary:r,summaryStatus:a,refetchSummary:l}),[r,a,l]),f=react.useMemo(()=>({setSummary:s,setSummaryStatus:n,setRefetchSummary:u}),[s,n,u]);return jsxRuntime.jsx(Ot.Provider,{value:f,children:jsxRuntime.jsx(yt.Provider,{value:p,children:jsxRuntime.jsx(Ks,{chain:t,address:e,children:o})})})}function Ks({chain:t,address:e,children:o}){return Jo({chain:t,address:e,enabled:!!e}),jsxRuntime.jsx(jsxRuntime.Fragment,{children:o})}var Vs={status:"pending",fetchStatus:"idle",isLoading:false,isPending:true,isFetching:false,isRefetching:false,isError:false,isSuccess:false,error:null,dataUpdatedAt:0};function _s(t={}){let e=new Set,o=r=>({kind:"ok",data:r});return {async getHoldings(){return o(t.holdings??{holdings:[]})},async getNetWorth(){return o(t.netWorth??{totalValue:0,uPnl:0,realizedPnl:0,totalProfit:0,winRate:0})},async getActivitiesPage(){return o(t.activities??{trades:[],nextCursor:"",hasNext:false})},async getPerpsPositions(){return {kind:"unsupported",capability:"perps"}},async getPredictionBets(){return {kind:"unsupported",capability:"prediction"}},subscribeActivities(r){e.add(r);let s=false;return {unsubscribe(){s||(s=true,e.delete(r));}}}}}
2
- exports.AccountInfoUI=Lt;exports.AccountInfoWidget=co;exports.AddressRowUI=Kt;exports.AssetTab=vt;exports.AssetTabsUI=_t;exports.BalanceRowUI=$t;exports.BatchActionButton=St;exports.CURVE_PERIOD_VALUE=we;exports.ConfirmDialog=Tt;exports.CurveCardUI=Gt;exports.CurvePeriod=qt;exports.CurveType=Vt;exports.DistributionCardUI=Yt;exports.HoldingsEmpty=G;exports.HoldingsSearch=it;exports.HoldingsSectionWidget=Ro;exports.HoldingsSubTabs=rt;exports.PerpsPanelUI=ce;exports.PerpsPositionSide=Te;exports.PortfolioActivities=Ge;exports.PortfolioActivitiesWidget=gs;exports.PortfolioClientContext=xt;exports.PortfolioClientProvider=Zo;exports.PortfolioContext=yt;exports.PortfolioDataAdapterContext=gt;exports.PortfolioNetWorthTokens=Ze;exports.PortfolioNetWorthTokensWidget=As;exports.PortfolioPageSkeleton=se;exports.PortfolioPageWidget=To;exports.PortfolioPnlDetails=io;exports.PortfolioPnlDetailsWidget=Rs;exports.PortfolioProvider=rr;exports.PredictionBetStatus=De;exports.PredictionPanelUI=ue;exports.PredictionResult=Re;exports.PredictionSource=Ie;exports.SpotHistoryType=ke;exports.SpotPanelUI=me;exports.TagBadge=Ho;exports.TagBadgeList=It;exports.ViewingBannerUI=ae;exports.computeDistribution=Ce;exports.createClientPortfolioDataAdapter=ao;exports.createInMemoryPortfolioDataAdapter=_s;exports.curveDataQueryKey=Ke;exports.distributionQueryKey=ho;exports.formatAgeShort=st;exports.formatPercent=he;exports.formatSignedUsd=bt;exports.formatTime=Ae;exports.formatTokenBalance=Ft;exports.formatUsd=I;exports.getExplorerUrl=Ne;exports.overviewQueryKey=Qe;exports.parseDecimal=Hr;exports.perpsHistoryQueryKey=Ee;exports.perpsPositionsQueryKey=Me;exports.predictionBetsQueryKey=Le;exports.predictionSettledQueryKey=Fe;exports.splitUsd=Se;exports.spotHistoryQueryKey=Oe;exports.spotHoldingsQueryKey=We;exports.truncateAddress=at;exports.truncateMiddle=ct;exports.useAccountInfo=Et;exports.useCurveDataQuery=oe;exports.useDistributionQuery=re;exports.useHoldingsSection=le;exports.useOverviewQuery=jt;exports.usePerpsHistoryQuery=Jt;exports.usePerpsPositionsQuery=Zt;exports.usePortfolioActivitiesScript=Xe;exports.usePortfolioClient=W;exports.usePortfolioContext=Pt;exports.usePortfolioDataAdapter=vo;exports.usePortfolioNetWorthTokensScript=Je;exports.usePortfolioPage=ie;exports.usePortfolioPnlDetailsScript=so;exports.usePredictionBetsQuery=te;exports.usePredictionSettledQuery=ee;exports.useRefetchWalletSummary=So;exports.useSpotHistoryQuery=Xt;exports.useSpotHoldingsQuery=ht;exports.useWalletPortfolios=Ao;exports.useWalletSummary=Mt;//# sourceMappingURL=index.js.map
1
+ 'use strict';var react=require('react'),uiChainSelect=require('@liberfi.io/ui-chain-select'),utils=require('@liberfi.io/utils'),walletConnector=require('@liberfi.io/wallet-connector'),i18n=require('@liberfi.io/i18n'),ui$1=require('@liberfi.io/ui'),jsxRuntime=require('react/jsx-runtime'),recharts=require('recharts'),reactQuery=require('@tanstack/react-query'),react$1=require('@liberfi.io/react'),realtimeCursorCollection=require('@liberfi.io/utils/realtime-cursor-collection');var xt=react.createContext(null);var gt=react.createContext(null);var yt=react.createContext({}),Ot=react.createContext({});function Pt(){let t=react.useContext(yt);if(!t)throw new Error("usePortfolioContext must be used within a PortfolioProvider");return t}function Et(){let{summary:t,summaryStatus:e}=Pt();return {data:t,...e}}function Mt(){let{status:t,signIn:e,signOut:o}=walletConnector.useAuth(),{data:r}=Et(),{chain:i,chainNamespace:l}=uiChainSelect.useCurrentChain(),n=walletConnector.useConnectedWallet(i),s=react.useMemo(()=>utils.getNativeToken(i),[i]),a=react.useMemo(()=>r?.balanceInUsd?utils.formatAmountInUsd(r.balanceInUsd):"--",[r?.balanceInUsd]),u=react.useMemo(()=>r?.balanceInNative?utils.formatAmount(r.balanceInNative):"--",[r?.balanceInNative]);return {status:t,signIn:e,signOut:o,balanceUsdFormatted:a,balanceNativeFormatted:u,nativeToken:s,chainNamespace:l,walletAddress:n?.address??""}}function Lt({status:t,signIn:e,signOut:o,balanceUsdFormatted:r,balanceNativeFormatted:i,nativeToken:l,chainNamespace:n,walletAddress:s,actions:a}){let{t:u}=i18n.useTranslation(),{isMobile:p}=ui$1.useScreen(),{isOpen:f,onClose:x,onOpenChange:d}=ui$1.useDisclosure(),m=ui$1.useCopyToClipboard(),h=react.useCallback(()=>{m(s,()=>ui$1.toast.success(u("common.primaryAddressCopied",{network:n.toUpperCase()})));},[m,n,s,u]);return t==="unauthenticated"?jsxRuntime.jsx(ui$1.Button,{isIconOnly:p,size:"sm",color:"primary",radius:"full",disableRipple:true,onPress:e,startContent:p?void 0:jsxRuntime.jsx(ui$1.SignInIcon,{width:16,height:16}),"aria-label":u("common.signIn"),children:p?jsxRuntime.jsx(ui$1.SignInIcon,{width:16,height:16}):u("common.signIn")}):t==="authenticating"?jsxRuntime.jsx(ui$1.Button,{isIconOnly:p,size:"sm",color:"primary",radius:"full",disableRipple:true,isLoading:true,isDisabled:true,"aria-label":u("common.signingIn"),children:u("common.signingIn")}):t==="deauthenticating"?jsxRuntime.jsx(ui$1.Button,{isIconOnly:p,size:"sm",color:"primary",radius:"full",disableRipple:true,isLoading:true,isDisabled:true,"aria-label":u("common.signingOut"),children:u("common.signingOut")}):jsxRuntime.jsxs(ui$1.StyledPopover,{placement:p?"bottom":"bottom-end",isOpen:f,onOpenChange:d,triggerScaleOnOpen:false,children:[jsxRuntime.jsx(ui$1.PopoverTrigger,{children:jsxRuntime.jsx(ui$1.Button,{size:"sm",className:"bg-content2",radius:"full",disableRipple:true,startContent:jsxRuntime.jsx(ui$1.WalletIcon,{width:16,height:16,className:"text-text-muted"}),endContent:jsxRuntime.jsx(ui$1.ChevronDownIcon,{width:16,height:16,className:ui$1.cn("text-text-muted transition-transform",f&&"rotate-180")}),children:l&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(ui$1.TokenIcon,{symbol:l.symbol,size:16}),jsxRuntime.jsx("span",{className:"text-xs text-foreground",children:p?i:`${i} ${l.symbol}`})]})})}),jsxRuntime.jsx(ui$1.PopoverContent,{children:jsxRuntime.jsxs("div",{className:"w-70 flex flex-col gap-3 py-4",children:[jsxRuntime.jsxs("div",{className:"px-4 flex items-start justify-between",children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-xs text-text-muted",children:u("common.totalValue")}),jsxRuntime.jsx("span",{className:"text-base font-semibold text-foreground",children:r})]}),jsxRuntime.jsx("div",{className:"flex items-start justify-end gap-0.5",children:jsxRuntime.jsx(ui$1.StyledTooltip,{content:u("common.copyPrimaryAddress",{network:n.toUpperCase()}),children:jsxRuntime.jsx(ui$1.Button,{className:"text-xs bg-transparent text-text-muted hover:text-foreground h-4 min-h-4 gap-1",startContent:jsxRuntime.jsx(ui$1.CopyIcon,{width:14,height:14}),disableRipple:true,disableAnimation:true,onPress:h,children:n.toUpperCase()})})})]}),jsxRuntime.jsx(ui$1.Divider,{}),jsxRuntime.jsxs("div",{className:"grid grid-cols-4 gap-2 px-4",children:[a?.map(c=>jsxRuntime.jsxs("button",{type:"button",className:"flex cursor-pointer flex-col items-center justify-center gap-1 rounded-md py-2 text-foreground transition-colors hover:text-primary",onClick:()=>{c.onPress(),x();},children:[c.icon,jsxRuntime.jsx("span",{className:"w-full truncate text-center text-xs",children:c.label})]},c.key)),jsxRuntime.jsxs("button",{type:"button",className:"flex cursor-pointer flex-col items-center justify-center gap-1 rounded-md py-2 text-danger transition-colors hover:text-danger/80",onClick:()=>{o(),x();},children:[jsxRuntime.jsx(ui$1.SignOutIcon,{width:16,height:16}),jsxRuntime.jsx("span",{className:"w-full truncate text-center text-xs",children:u("common.signOut")})]})]})]})})]})}function co({actions:t}){let e=Mt();return jsxRuntime.jsx(Lt,{status:e.status,signIn:e.signIn,signOut:e.signOut,balanceUsdFormatted:e.balanceUsdFormatted,balanceNativeFormatted:e.balanceNativeFormatted,nativeToken:e.nativeToken,chainNamespace:e.chainNamespace,walletAddress:e.walletAddress,actions:t})}function Br(t){if(!t)return 0;let e=Number(t);return Number.isFinite(e)?e:0}function I(t){return utils.formatAmountInUsd(t)}function bt(t){let e=I(Math.abs(t));return t>0?`+${e}`:t<0?`-${e.replace("-","")}`:e}function he(t){return `${t>0?"+":""}${t.toFixed(2)}%`}function Se(t){let o=Math.abs(t).toFixed(2).split("."),r=Number(o[0]).toLocaleString("en-US"),i=`.${o[1]}`;return {sign:t<0?"-$":"$",integer:r,decimal:i}}function at(t,e=4,o=4){return t.length<=e+o+3?t:`${t.slice(0,e)}\u2026${t.slice(-o)}`}function Ft(t){return utils.formatAmount(t)}function Ne(t,e){return `https://solscan.io/tx/${t}`}var uo=["#C8FF00","#00E676","#0066FF","#FF6B9D","#8B7BFF","#FF5252","#FFB74D","#4DD0E1"],Qr="#3A3A4E";function Ce(t){let e=t.reduce((n,s)=>n+s.value,0);if(e<=0)return {items:[]};let o=[...t].sort((n,s)=>s.value-n.value),r=[],i=0,l=0;for(let n of o){let s=n.value/e*100;s<2?i+=n.value:(r.push({name:n.name,symbol:n.symbol,percent:s,value:n.value,color:uo[l%uo.length]}),l++);}return i>0&&r.push({name:"Other",symbol:"OTHER",percent:i/e*100,value:i,color:Qr}),{items:r}}function Ae(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:false})}function Kt({walletId:t,wallets:e,isViewing:o,viewingAddress:r,onSelectWallet:i,onCopyAddress:l,onSearch:n}){let{t:s}=i18n.useTranslation(),[a,u]=react.useState(false),[p,f]=react.useState(""),x=react.useRef(null),d=!t&&!o,m=e.find(N=>N.id===t),h=o?s("portfolio.address.external"):d?s("portfolio.address.allWallets"):m?.name??"",c=o?at(r??""):d?s("portfolio.address.aggregated"):at(m?.address??""),P=o?"bg-text-muted":"bg-positive",S=react.useCallback(()=>{let N=p.trim();N.length>=32&&(n(N),f(""));},[p,n]),D=react.useCallback(N=>{N.key==="Enter"&&S();},[S]);return jsxRuntime.jsxs("div",{className:"flex items-center justify-between gap-4 pb-4",children:[jsxRuntime.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[jsxRuntime.jsxs("div",{className:"relative",ref:x,children:[jsxRuntime.jsxs("button",{type:"button",className:ui$1.cn("flex items-center gap-2 rounded-lg border px-2.5 py-1.5 transition-colors",o?"border-positive/20 bg-positive/4":"border-border-subtle bg-surface-raised hover:border-border-control hover:bg-surface-strong",o&&"pointer-events-none"),onClick:()=>!o&&u(N=>!N),children:[jsxRuntime.jsx("span",{className:ui$1.cn("h-[7px] w-[7px] flex-shrink-0 rounded-full",P)}),jsxRuntime.jsx("span",{className:"text-[11px] font-medium text-text-secondary",children:h}),jsxRuntime.jsx("span",{className:"font-mono text-xs text-foreground",children:c}),!o&&jsxRuntime.jsx("svg",{className:ui$1.cn("text-text-muted transition-transform",a&&"rotate-180"),width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:jsxRuntime.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})]}),a&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>u(false)}),jsxRuntime.jsxs("div",{className:"absolute left-0 top-[calc(100%+4px)] z-50 min-w-[260px] rounded-lg border border-border-subtle bg-surface-raised p-1 shadow-[0_8px_32px_rgba(0,0,0,0.4)]",children:[jsxRuntime.jsxs("button",{type:"button",className:ui$1.cn("flex w-full items-center gap-2 rounded-[5px] px-2.5 py-2 transition-colors hover:bg-surface-strong",d&&"bg-positive/7"),onClick:()=>{i(void 0),u(false);},children:[jsxRuntime.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-positive"}),jsxRuntime.jsx("span",{className:"min-w-[60px] text-[11px] font-medium text-text-secondary",children:s("portfolio.address.allWallets")}),jsxRuntime.jsx("span",{className:"text-[11px] text-text-disabled",children:s("portfolio.address.aggregated")})]}),e.map(N=>jsxRuntime.jsxs("button",{type:"button",className:ui$1.cn("flex w-full items-center gap-2 rounded-[5px] px-2.5 py-2 transition-colors hover:bg-surface-strong",t===N.id&&"bg-positive/7"),onClick:()=>{i(N.id),u(false);},children:[jsxRuntime.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-positive"}),jsxRuntime.jsx("span",{className:"min-w-[60px] text-[11px] font-medium text-text-secondary",children:N.name}),jsxRuntime.jsx("span",{className:"font-mono text-[11px] text-text-muted",children:at(N.address)}),jsxRuntime.jsx("span",{className:"ml-auto font-mono text-[11px] font-medium text-foreground",children:N.balance})]},N.id))]})]})]}),jsxRuntime.jsx("button",{type:"button",className:ui$1.cn("rounded p-1 text-text-muted transition-colors hover:bg-surface-strong hover:text-brand-primary",d&&!o&&"pointer-events-none opacity-40"),onClick:l,disabled:d&&!o,"aria-label":s("portfolio.address.copy"),children:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[jsxRuntime.jsx("rect",{x:"4.5",y:"4.5",width:"7",height:"7",rx:"1.5",stroke:"currentColor",strokeWidth:"1.2"}),jsxRuntime.jsx("path",{d:"M9.5 4.5V3a1.5 1.5 0 0 0-1.5-1.5H3A1.5 1.5 0 0 0 1.5 3v5A1.5 1.5 0 0 0 3 9.5h1.5",stroke:"currentColor",strokeWidth:"1.2"})]})}),jsxRuntime.jsx("span",{className:ui$1.cn("flex-shrink-0 rounded-[3px] px-1.5 py-[3px] text-[9px] font-semibold uppercase tracking-wider",o?"bg-positive/7 text-positive animate-[pulse-glow_2s_ease-in-out_infinite]":"bg-positive/10 text-positive"),children:s(o?"portfolio.address.viewing":"portfolio.address.owner")})]}),jsxRuntime.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1.5",children:[jsxRuntime.jsxs("div",{className:"flex h-[34px] w-[240px] items-center gap-1.5 rounded-lg border border-border-subtle bg-surface-raised px-2.5 transition-all focus-within:w-[300px] focus-within:border-focus",children:[jsxRuntime.jsxs("svg",{className:"flex-shrink-0 text-text-muted",width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11L14.5 14.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{className:"flex-1 border-none bg-transparent font-mono text-xs text-foreground caret-brand-primary outline-none placeholder:font-sans placeholder:text-[11px] placeholder:text-text-muted",placeholder:s("portfolio.address.search.placeholder"),spellCheck:false,value:p,onChange:N=>f(N.target.value),onKeyDown:D})]}),jsxRuntime.jsx("button",{type:"button",className:"whitespace-nowrap rounded-[5px] border border-border-subtle bg-surface-interactive px-3 py-1.5 text-[11px] font-medium text-text-secondary transition-colors hover:border-positive hover:bg-action-primary hover:text-text-inverse",onClick:S,children:s("portfolio.address.search.view")})]})]})}var vt=(r=>(r.SPOT="spot",r.PERPS="perps",r.PREDICTION="prediction",r))(vt||{}),Vt=(o=>(o.NET_WORTH="networth",o.PNL="pnl",o))(Vt||{}),qt=(i=>(i.ONE_DAY="1D",i.SEVEN_DAY="7D",i.THIRTY_DAY="30D",i.MAX="Max",i))(qt||{}),we={"1D":1,"7D":7,"30D":30,Max:365},Te=(o=>(o.LONG="long",o.SHORT="short",o))(Te||{}),ke=(r=>(r.SWAP="swap",r.SEND="send",r.RECEIVE="receive",r))(ke||{}),De=(o=>(o.ACTIVE="active",o.PENDING="pending",o))(De||{}),Re=(o=>(o.WON="won",o.LOST="lost",o))(Re||{}),Ie=(r=>(r.POLYMARKET="polymarket",r.DRIFT="drift",r.METADAO="metadao",r))(Ie||{});var Fr=[{key:"spot",labelKey:"portfolio.tabs.spot"},{key:"perps",labelKey:"portfolio.tabs.perps"},{key:"prediction",labelKey:"portfolio.tabs.prediction"}];function Kr(t,e,o,r){switch(t){case "spot":return e;case "perps":return o;case "prediction":return r}}function _t({activeTab:t,onTabChange:e,spotValue:o=0,perpsValue:r=0,predictionValue:i=0}){let{t:l}=i18n.useTranslation();return jsxRuntime.jsx("div",{className:"flex gap-1 border-b border-border-subtle pb-0 pt-5",children:Fr.map(({key:n,labelKey:s})=>{let a=t===n,u=Kr(n,o,r,i);return jsxRuntime.jsxs("button",{type:"button",className:ui$1.cn("relative flex items-center gap-2 border-b-2 px-4 pb-3 pt-2.5 text-[13px] font-medium transition-colors",a?"border-positive text-foreground":"border-transparent text-text-muted hover:text-text-secondary"),onClick:()=>e(n),children:[l(s),!a&&jsxRuntime.jsx("span",{className:"rounded-[10px] bg-surface-raised px-2 py-0.5 font-mono text-[11px] text-text-muted",children:I(u)})]},n)})})}function Gt({overview:t}){let{t:e}=i18n.useTranslation(),o=t?.totalValue??0,r=t?.uPnl??0,i=t?.realizedPnl??0,l=t?.totalProfit??0,{sign:n,integer:s,decimal:a}=Se(o);return jsxRuntime.jsxs("div",{className:"flex items-center gap-4 pb-4",children:[jsxRuntime.jsx("div",{className:"flex items-baseline gap-3",children:jsxRuntime.jsxs("div",{className:"font-mono text-[26px] font-bold leading-none tracking-tight",children:[jsxRuntime.jsx("span",{className:"mr-px text-lg font-medium text-positive",children:n}),s,jsxRuntime.jsx("span",{className:"text-base font-normal text-text-muted",children:a})]})}),jsxRuntime.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[jsxRuntime.jsx(Ue,{label:e("portfolio.balance.uPnl"),value:r}),jsxRuntime.jsx(go,{}),jsxRuntime.jsx(Ue,{label:e("portfolio.balance.realized"),value:i}),jsxRuntime.jsx(go,{}),jsxRuntime.jsx(Ue,{label:e("portfolio.balance.totalProfit"),value:l})]})]})}function Ue({label:t,value:e}){return jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx("span",{className:"text-[11px] text-text-muted",children:t}),jsxRuntime.jsx("span",{className:ui$1.cn("font-mono text-xs font-medium",e>0?"text-positive":e<0?"text-negative":"text-text-muted"),children:bt(e)})]})}function go(){return jsxRuntime.jsx("div",{className:"h-3.5 w-px bg-surface-strong"})}var Jr=["1D","7D","30D","Max"];function yo(t,e){let o=new Date(t);return e==="1D"?o.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:false}):o.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function ti(t){return t==="pnl"?"change":"netWorth"}function Yt({curveType:t,curvePeriod:e,data:o,isLoading:r,onTypeChange:i,onPeriodChange:l}){let{t:n}=i18n.useTranslation(),s=o?.points,a=ti(t),u=t==="pnl",p=react.useMemo(()=>(s??[]).map(c=>u?c.change:c.netWorth),[s,u]),f=p.some(c=>c<0),{minVal:x,maxVal:d}=react.useMemo(()=>{if(p.length===0)return {minVal:0,maxVal:100};let c=Math.min(...p),P=Math.max(...p),S=P-c||1;return {minVal:c-S*.1,maxVal:P+S*.1}},[p]),m=react.useMemo(()=>{let c=s??[];if(c.length===0)return [];let P=Math.min(7,c.length),S=Math.max(1,Math.floor((c.length-1)/(P-1))),D=[];for(let w=0;w<c.length;w+=S)D.push({ts:c[w].timestamp,label:yo(c[w].timestamp,e)});let N=c[c.length-1];return D[D.length-1]?.ts!==N.timestamp&&D.push({ts:N.timestamp,label:yo(N.timestamp,e)}),D},[s,e]),h=p[p.length-1]??0;return jsxRuntime.jsxs("div",{className:"overflow-hidden rounded-lg border border-border-subtle bg-surface-base",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between px-4 pt-3",children:[jsxRuntime.jsxs("div",{className:"flex gap-0.5 rounded-[5px] bg-surface-raised p-0.5",children:[jsxRuntime.jsx(Po,{label:n("portfolio.curve.netWorth"),active:t==="networth",onClick:()=>i("networth")}),jsxRuntime.jsx(Po,{label:n("portfolio.curve.pnl"),active:t==="pnl",onClick:()=>i("pnl")})]}),jsxRuntime.jsx("div",{className:"flex gap-0.5",children:Jr.map(c=>jsxRuntime.jsx("button",{type:"button",className:ui$1.cn("rounded-[3px] px-2 py-1 text-[10px] font-medium transition-colors",e===c?"bg-positive/7 text-positive":"text-text-muted hover:bg-surface-interactive hover:text-text-secondary"),onClick:()=>l(c),children:c},c))})]}),jsxRuntime.jsx("div",{className:"h-[180px] px-4 pt-2",children:r||(s??[]).length<2?jsxRuntime.jsx("div",{className:"flex h-full items-center justify-center",children:jsxRuntime.jsx("span",{className:"text-xs text-text-muted",children:r?"":n("portfolio.curve.noData")})}):jsxRuntime.jsx(recharts.ResponsiveContainer,{width:"100%",height:"100%",children:jsxRuntime.jsxs(recharts.AreaChart,{data:s,margin:{top:8,right:0,left:0,bottom:0},children:[jsxRuntime.jsxs("defs",{children:[jsxRuntime.jsxs("linearGradient",{id:"gradAccent",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:ui$1.themeSemanticColors.brand.primary,stopOpacity:.12}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:ui$1.themeSemanticColors.brand.primary,stopOpacity:0})]}),jsxRuntime.jsxs("linearGradient",{id:"gradGreen",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:ui$1.themeSemanticColors.market.positive,stopOpacity:.12}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:ui$1.themeSemanticColors.market.positive,stopOpacity:0})]}),jsxRuntime.jsxs("linearGradient",{id:"gradRed",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:ui$1.themeSemanticColors.market.negative,stopOpacity:0}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:ui$1.themeSemanticColors.market.negative,stopOpacity:.1})]})]}),jsxRuntime.jsx(recharts.XAxis,{dataKey:"timestamp",hide:true}),jsxRuntime.jsx(recharts.YAxis,{hide:true,domain:[x,d]}),u&&f&&jsxRuntime.jsx(recharts.ReferenceLine,{y:0,stroke:ui$1.themeSemanticColors.border.subtle,strokeOpacity:.6,strokeDasharray:"4 4"}),jsxRuntime.jsx(recharts.Area,{type:"monotone",dataKey:a,stroke:u?h>=0?ui$1.themeSemanticColors.market.positive:ui$1.themeSemanticColors.market.negative:ui$1.themeSemanticColors.brand.primary,strokeWidth:1.5,fill:u?h>=0?"url(#gradGreen)":"url(#gradRed)":"url(#gradAccent)",dot:false,isAnimationActive:false})]})})}),jsxRuntime.jsx("div",{className:"flex justify-between px-4 pb-2.5 pt-1",children:m.map(({ts:c,label:P})=>jsxRuntime.jsx("span",{className:"font-mono text-[9px] text-text-disabled",children:P},c))})]})}function Po({label:t,active:e,onClick:o}){return jsxRuntime.jsx("button",{type:"button",className:ui$1.cn("rounded px-2.5 py-1 text-[11px] font-medium transition-colors",e?"bg-surface-interactive text-foreground":"text-text-muted hover:text-text-secondary"),onClick:o,children:t})}function $t({data:t,isLoading:e}){let{t:o}=i18n.useTranslation(),r=t?.items,i=r??[],l=react.useMemo(()=>(r??[]).map(n=>({name:n.name,value:n.percent})),[r]);return jsxRuntime.jsxs("div",{className:"flex flex-col overflow-hidden rounded-lg border border-border-subtle bg-surface-base",children:[jsxRuntime.jsx("div",{className:"px-4 pb-2 pt-3",children:jsxRuntime.jsx("span",{className:"text-xs font-semibold text-text-secondary",children:o("portfolio.distribution.title")})}),jsxRuntime.jsx("div",{className:"flex flex-1 items-center justify-center px-4",children:e||i.length===0?jsxRuntime.jsx("div",{className:"flex h-[140px] w-[140px] items-center justify-center",children:jsxRuntime.jsx("span",{className:"text-xs text-text-muted",children:e?"":o("portfolio.distribution.noData")})}):jsxRuntime.jsx(recharts.ResponsiveContainer,{width:140,height:140,children:jsxRuntime.jsx(recharts.PieChart,{children:jsxRuntime.jsx(recharts.Pie,{data:l,cx:"50%",cy:"50%",innerRadius:32,outerRadius:55,dataKey:"value",stroke:"none",isAnimationActive:false,children:i.map((n,s)=>jsxRuntime.jsx(recharts.Cell,{fill:n.color},s))})})})}),jsxRuntime.jsx("div",{className:"px-4 pb-3 pt-2",children:i.map((n,s)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5 py-[3px] text-[11px]",children:[jsxRuntime.jsx("span",{className:"h-[7px] w-[7px] flex-shrink-0 rounded-[2px]",style:{background:n.color}}),jsxRuntime.jsx("span",{className:"min-w-0 flex-1 truncate text-text-secondary",children:n.name}),jsxRuntime.jsxs("span",{className:"font-mono text-[10px] text-text-muted",children:[n.percent.toFixed(1),"%"]}),jsxRuntime.jsx("span",{className:"min-w-[55px] text-right font-mono text-[10px] text-foreground",children:I(n.value)})]},s))})]})}function W(){let t=react.useContext(xt);if(!t)throw new Error("usePortfolioClient must be used within a PortfolioClientProvider");return t}function vo(){let t=react.useContext(gt);if(!t)throw new Error("usePortfolioDataAdapter must be used within a PortfolioClientProvider");return t}function Qe(t){return ["portfolio","overview",t??{}]}async function di(t,e){return await t.getOverview(e)}function jt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Qe(t),queryFn:async()=>di(o,t),...e})}function We(t){return ["portfolio","spot","holdings",t??{}]}async function ui(t,e){return await t.getSpotHoldings(e)}function ht(t,e={}){let o=W();return reactQuery.useQuery({queryKey:We(t),queryFn:async()=>ui(o,t),...e})}function Oe(t){return ["portfolio","spot","history",t??{}]}async function mi(t,e){return await t.getSpotHistory(e)}function Xt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Oe(t),queryFn:async()=>mi(o,t),...e})}function Ee(t){return ["portfolio","perps","positions",t??{}]}async function gi(t,e){return await t.getPerpsPositions(e)}function Zt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Ee(t),queryFn:async()=>gi(o,t),...e})}function Me(t){return ["portfolio","perps","history",t??{}]}async function Pi(t,e){return await t.getPerpsHistory(e)}function Jt(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Me(t),queryFn:async()=>Pi(o,t),...e})}function Le(t){return ["portfolio","prediction","active",t??{}]}async function vi(t,e){return await t.getPredictionBets(e)}function te(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Le(t),queryFn:async()=>vi(o,t),...e})}function Fe(t){return ["portfolio","prediction","settled",t??{}]}async function Si(t,e){return await t.getPredictionSettled(e)}function ee(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Fe(t),queryFn:async()=>Si(o,t),...e})}function Ke(t){return ["portfolio","chart",t]}async function Ci(t,e){return await t.getChartData(e)}function oe(t,e={}){let o=W();return reactQuery.useQuery({queryKey:Ke(t),queryFn:async()=>Ci(o,t),...e})}function ho(){return ["portfolio","distribution"]}function re(t){return {data:react.useMemo(()=>Ce(t),[t])}}function So(){let{refetchSummary:t}=Pt();return t}var Hi=15e3;function Co(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function Ao({chain:t,address:e,tokenAddresses:o,pollMs:r=Hi}){let i=!!e&&o.length>0,[l,n]=react.useState({}),s=react$1.useWalletPortfoliosByTokensQuery({chain:t,address:e,tokenAddresses:o},{enabled:i,refetchInterval:r}),a=react$1.useWalletPortfolioPnlsByTokensQuery({chain:t,address:e,tokenAddresses:o},{enabled:i,refetchInterval:r});react.useEffect(()=>{let m=s.data??[],h=new Map;if(a.data)for(let P of a.data)h.set(P.address,P);let c={};for(let P of m)c[P.address]={...P,pnl:h.get(P.address)??null};n(c);},[s.data,a.data]);let u=react.useRef(""),p=react.useRef(new Set),f=o.slice().sort().join(",");f!==u.current&&(u.current=f,p.current=new Set(o));let x=p.current;react$1.useWalletPortfoliosSubscription({chain:t,address:e},m=>{n(h=>{let c=h;for(let P of m){if(!x.has(P.tokenAddress))continue;let S=c[P.tokenAddress];if(!S)continue;let{chain:D,walletAddress:N,tokenAddress:w,...O}=P,q=Co(O);Object.keys(q).length!==0&&(c=c===h?{...h}:c,c[P.tokenAddress]={...S,...q});}return c});},{enabled:i}),react$1.useWalletPortfolioPnlsSubscription({chain:t,address:e},m=>{n(h=>{let c=h;for(let P of m){if(!x.has(P.tokenAddress))continue;let S=c[P.tokenAddress];if(!S||!S.pnl)continue;let{walletAddress:D,tokenAddress:N,...w}=P,O=Co(w);Object.keys(O).length!==0&&(c=c===h?{...h}:c,c[P.tokenAddress]={...S,pnl:{...S.pnl,...O}});}return c});},{enabled:i});let d=react.useCallback(async()=>{await Promise.all([s.refetch(),a.refetch()]);},[s,a]);return {tokens:l,isPending:s.isPending,isFetching:s.isFetching||a.isFetching,isError:s.isError,isSuccess:s.isSuccess,error:s.error,refetch:d}}function ie(t){let{defaultTab:e="spot",walletAddresses:o,chain:r}=t??{},[i,l]=react.useState(e),[n,s]=react.useState(void 0),[a,u]=react.useState(void 0),[p,f]=react.useState("networth"),[x,d]=react.useState("7D"),m=a!==void 0,h=react.useMemo(()=>{if(a)return {walletAddresses:[a],chain:r};if(o?.length)return {walletAddresses:o,chain:r}},[o,a,r]),c=jt(h),P=ht(h),S=oe({period:we[x],...h}),D=re(P.data?.holdings??[]),N=react.useMemo(()=>P.data?.holdings.reduce((E,F)=>E+F.value,0)??0,[P.data]),w=react.useCallback(E=>{u(E);},[]),O=react.useCallback(()=>{u(void 0);},[]),q=react.useCallback(E=>{s(E);},[]);return {activeTab:i,setActiveTab:l,walletId:n,selectWallet:q,viewingAddress:a,isViewing:m,curveType:p,setCurveType:f,curvePeriod:x,setCurvePeriod:d,portfolioQuery:h,overviewQuery:c,curveQuery:S,distributionQuery:D,spotHoldingsQuery:P,spotValue:N,perpsValue:0,predictionValue:0,enterViewing:w,exitViewing:O}}function se(){return jsxRuntime.jsxs("div",{className:"mx-auto max-w-[1280px] px-6",children:[jsxRuntime.jsxs("div",{className:"flex gap-4 border-b border-border-subtle pb-0 pt-5",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-9 w-16 rounded-md"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-9 w-28 rounded-md"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-9 w-32 rounded-md"})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between gap-4 py-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2.5",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-8 w-48 rounded-lg"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-6 w-6 rounded"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-5 w-14 rounded-[3px]"})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-[34px] w-[240px] rounded-lg"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-[34px] w-12 rounded-[5px]"})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-4 pb-4",children:[jsxRuntime.jsxs("div",{className:"flex items-baseline gap-3",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-8 w-48 rounded-md"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-6 w-16 rounded"})]}),jsxRuntime.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-4 w-28 rounded"}),jsxRuntime.jsx("div",{className:"h-3.5 w-px bg-surface-strong"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-4 w-28 rounded"}),jsxRuntime.jsx("div",{className:"h-3.5 w-px bg-surface-strong"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-4 w-20 rounded"})]})]}),jsxRuntime.jsxs("div",{className:"grid grid-cols-[1fr_340px] gap-3 pb-4",children:[jsxRuntime.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-base p-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-4",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-7 w-40 rounded-[5px]"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-6 w-32 rounded"})]}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-[180px] w-full rounded-md"}),jsxRuntime.jsx("div",{className:"mt-2 flex justify-between",children:Array.from({length:7}).map((t,e)=>jsxRuntime.jsx(ui$1.Skeleton,{className:"h-3 w-8 rounded"},e))})]}),jsxRuntime.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-base p-4",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"mb-3 h-4 w-24 rounded"}),jsxRuntime.jsx("div",{className:"flex items-center justify-center py-4",children:jsxRuntime.jsx(ui$1.Skeleton,{className:"h-[140px] w-[140px] rounded-full"})}),jsxRuntime.jsx("div",{className:"space-y-1.5 pt-2",children:Array.from({length:5}).map((t,e)=>jsxRuntime.jsx(ui$1.Skeleton,{className:"h-4 w-full rounded"},e))})]})]}),jsxRuntime.jsxs("div",{className:"pb-6",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-8 w-40 rounded-[5px]"}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(ui$1.Skeleton,{className:"h-7 w-40 rounded-[5px]"}),jsxRuntime.jsx(ui$1.Skeleton,{className:"h-7 w-24 rounded-[5px]"})]})]}),jsxRuntime.jsx(ui$1.Skeleton,{className:"mb-3 h-5 w-full rounded"}),Array.from({length:5}).map((t,e)=>jsxRuntime.jsx(ui$1.Skeleton,{className:"mb-2 h-12 w-full rounded-[5px]"},e))]})]})}function ae({viewingAddress:t,onBack:e}){let{t:o}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b border-positive/12 bg-positive/6 px-6 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("div",{className:"flex h-[18px] w-[18px] items-center justify-center rounded-full border border-positive/25 bg-positive/7",children:jsxRuntime.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("path",{d:"M8 3C4.36 3 1.26 5.28 0 8.5c1.26 3.22 4.36 5.5 8 5.5s6.74-2.28 8-5.5C14.74 5.28 11.64 3 8 3z",stroke:"#C8FF00",strokeWidth:"1.3",fill:"none"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8.5",r:"2.5",stroke:"#C8FF00",strokeWidth:"1.3",fill:"none"})]})}),jsxRuntime.jsx("span",{className:"text-xs font-medium text-positive",children:o("portfolio.viewing.banner")}),jsxRuntime.jsx("span",{className:"ml-1 font-mono text-[11px] text-text-secondary",children:at(t)})]}),jsxRuntime.jsxs("button",{type:"button",className:"flex items-center gap-1.5 rounded-[5px] border border-border-subtle bg-surface-interactive px-3 py-1.5 text-[11px] font-medium text-text-secondary transition-colors hover:border-positive hover:bg-action-primary hover:text-text-inverse",onClick:e,children:[jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 2L4 8l6 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),o("portfolio.viewing.back")]})]})}function To({wallets:t=[],onCopyAddress:e,renderHoldings:o,isLoading:r,...i}){let l=ie(i),{activeTab:n,setActiveTab:s,walletId:a,selectWallet:u,viewingAddress:p,isViewing:f,curveType:x,setCurveType:d,curvePeriod:m,setCurvePeriod:h,portfolioQuery:c,overviewQuery:P,curveQuery:S,distributionQuery:D,spotValue:N,perpsValue:w,predictionValue:O,enterViewing:q,exitViewing:E}=l;return r||P.isLoading&&!P.data?jsxRuntime.jsx(se,{}):jsxRuntime.jsxs("div",{children:[f&&p&&jsxRuntime.jsx(ae,{viewingAddress:p,onBack:E}),jsxRuntime.jsxs("div",{className:"mx-auto max-w-[1280px] px-6",children:[jsxRuntime.jsx(_t,{activeTab:n,onTabChange:s,spotValue:N,perpsValue:w,predictionValue:O}),jsxRuntime.jsx(Kt,{walletId:a,wallets:t,isViewing:f,viewingAddress:p,onSelectWallet:u,onCopyAddress:()=>{if(f&&p)e?.(p);else {let U=t.find(Q=>Q.id===a);U&&e?.(U.address);}},onSearch:q}),jsxRuntime.jsx(Gt,{overview:P.data}),jsxRuntime.jsxs("div",{className:"grid grid-cols-[1fr_340px] gap-3 pb-4",children:[jsxRuntime.jsx(Yt,{curveType:x,curvePeriod:m,data:S.data,isLoading:S.isLoading,onTypeChange:d,onPeriodChange:h}),jsxRuntime.jsx($t,{data:D.data,isLoading:false})]}),o?.({activeTab:n,portfolioQuery:c,isViewing:f})]})]})}function Tt({open:t,title:e,message:o,confirmLabel:r,cancelLabel:i,onConfirm:l,onCancel:n}){let{t:s}=i18n.useTranslation();return t?jsxRuntime.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[jsxRuntime.jsx("div",{className:"absolute inset-0 bg-surface-scrim",onClick:n,onKeyDown:a=>{a.key==="Escape"&&n();},role:"button",tabIndex:-1,"aria-label":s("common.closeDialog")}),jsxRuntime.jsxs("div",{className:"relative z-10 w-full max-w-sm rounded-xl border border-border-subtle bg-surface-interactive p-6 shadow-2xl",children:[jsxRuntime.jsx("h3",{className:"text-sm font-semibold text-foreground",children:e}),jsxRuntime.jsx("p",{className:"mt-2 text-xs leading-relaxed text-text-secondary",children:o}),jsxRuntime.jsxs("div",{className:"mt-5 flex items-center justify-end gap-2",children:[jsxRuntime.jsx("button",{type:"button",className:"rounded-lg px-4 py-2 text-xs font-medium text-text-muted transition-colors hover:bg-surface-strong hover:text-foreground",onClick:n,children:i}),jsxRuntime.jsx("button",{type:"button",className:ui$1.cn("rounded-lg border px-4 py-2 text-xs font-medium transition-colors","border-negative/25 text-negative","hover:border-negative hover:bg-negative/10"),onClick:l,children:r})]})]})]}):null}function le({activeTab:t,portfolioQuery:e,isViewing:o}){let[r,i]=react.useState("holdings"),[l,n]=react.useState("positions"),[s,a]=react.useState("active"),[u,p]=react.useState(""),[f,x]=react.useState(""),[d,m]=react.useState(""),[h,c]=react.useState(false),[P,S]=react.useState(false),D=react.useCallback(()=>{S($=>!$);},[]),N=ht(e,{enabled:t==="spot"}),w=Xt(e,{enabled:t==="spot"&&r==="history"}),O=Zt(e,{enabled:t==="perps"}),q=Jt(e,{enabled:t==="perps"&&l==="history"}),E=te(e,{enabled:t==="prediction"}),F=ee(e,{enabled:t==="prediction"&&s==="settled"}),ft=react.useMemo(()=>(N.data?.holdings??[]).filter(J=>{if(h&&J.value<1&&!J.verified)return false;if(u){let mt=u.toLowerCase();return J.name.toLowerCase().includes(mt)||J.symbol.toLowerCase().includes(mt)}return true}),[N.data?.holdings,h,u]),U=react.useMemo(()=>{let $=O.data?.positions??[];if(!f)return $;let J=f.toLowerCase();return $.filter(mt=>mt.pair.toLowerCase().includes(J))},[O.data?.positions,f]),Q=react.useMemo(()=>{let $=E.data?.bets??[];if(!d)return $;let J=d.toLowerCase();return $.filter(mt=>mt.market.toLowerCase().includes(J))},[E.data?.bets,d]);return {spotSubTab:r,setSpotSubTab:i,perpsSubTab:l,setPerpsSubTab:n,predictionSubTab:s,setPredictionSubTab:a,spotSearch:u,setSpotSearch:p,perpsSearch:f,setPerpsSearch:x,predictionSearch:d,setPredictionSearch:m,hideSmall:h,setHideSmall:c,groupCollapsed:P,toggleGroupCollapsed:D,spotHoldingsQuery:N,spotHistoryQuery:w,perpsPositionsQuery:O,perpsHistoryQuery:q,predictionBetsQuery:E,predictionSettledQuery:F,filteredSpotHoldings:ft,filteredPerpsPositions:U,filteredPredictionBets:Q,isViewing:o}}function rt({tabs:t,activeKey:e,onTabChange:o}){return jsxRuntime.jsx("div",{className:"flex gap-0.5",children:t.map(r=>jsxRuntime.jsx("button",{type:"button",className:ui$1.cn("rounded-[5px] px-3 py-1.5 text-xs font-medium transition-colors",e===r.key?"bg-surface-interactive text-foreground":"text-text-muted hover:bg-surface-interactive hover:text-text-secondary"),onClick:()=>o(r.key),children:r.label},r.key))})}function it({value:t,onChange:e,placeholder:o}){return jsxRuntime.jsxs("div",{className:"flex h-7 w-40 items-center gap-1 rounded-[5px] border border-border-subtle bg-surface-raised px-2 transition-all focus-within:w-[200px] focus-within:border-focus",children:[jsxRuntime.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:"none",className:"flex-shrink-0 text-text-muted",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11L14.5 14.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{type:"text",className:"flex-1 border-none bg-transparent font-mono text-[11px] text-foreground caret-brand-primary outline-none placeholder:font-sans placeholder:text-[10px] placeholder:text-text-muted",placeholder:o,spellCheck:false,value:t,onChange:r=>e(r.target.value)})]})}function Y({title:t,hint:e}){return jsxRuntime.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[jsxRuntime.jsx("span",{className:"text-sm text-text-muted",children:t}),e&&jsxRuntime.jsx("span",{className:"mt-1 text-xs text-text-disabled",children:e})]})}function St({label:t,disabled:e,onClick:o}){return jsxRuntime.jsxs("button",{type:"button",className:ui$1.cn("flex items-center gap-1 whitespace-nowrap rounded-[5px] border px-3 py-1.5 text-[11px] font-medium transition-colors",e?"pointer-events-none border-border-subtle text-text-disabled":"border-[rgba(255,82,82,0.25)] text-negative hover:border-negative hover:bg-[rgba(255,82,82,0.1)]"),onClick:o,disabled:e,children:[jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),t]})}function ce({state:t,onClosePosition:e,onCloseAll:o}){let{t:r}=i18n.useTranslation(),{perpsSubTab:i,setPerpsSubTab:l,perpsSearch:n,setPerpsSearch:s,filteredPerpsPositions:a,perpsHistoryQuery:u,isViewing:p}=t,f=a.length>0;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx(rt,{tabs:[{key:"positions",label:r("portfolio.perps.openPositions")},{key:"history",label:r("portfolio.perps.tradeHistory")}],activeKey:i,onTabChange:x=>l(x)}),i==="positions"&&!p&&jsxRuntime.jsx(St,{label:r("portfolio.perps.closeAll"),disabled:!f,onClick:()=>o?.()})]}),jsxRuntime.jsx(it,{value:n,onChange:s,placeholder:r("portfolio.perps.search.placeholder")})]}),i==="positions"?jsxRuntime.jsx(Ei,{positions:a,isViewing:p,onClose:e}):jsxRuntime.jsx(Li,{records:u.data?.records??[],isLoading:u.isLoading})]})}function Ei({positions:t,isViewing:e,onClose:o}){let{t:r}=i18n.useTranslation();return t.length===0?jsxRuntime.jsx(Y,{title:r("portfolio.perps.empty"),hint:r("portfolio.perps.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:e?"2fr 1fr .8fr .8fr 1fr":"2fr 1fr .8fr .8fr 1fr 80px"},children:[jsxRuntime.jsx("span",{children:r("portfolio.perps.header.pair")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.size")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.entry")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.mark")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.perps.header.uPnl")}),!e&&jsxRuntime.jsx("span",{className:"text-right"})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(i=>jsxRuntime.jsx(Mi,{position:i,isViewing:e,onClose:o},i.id))})]})}function Mi({position:t,isViewing:e,onClose:o}){let{t:r}=i18n.useTranslation(),i=t.side==="long",l=t.uPnl>=0;return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:e?"2fr 1fr .8fr .8fr 1fr":"2fr 1fr .8fr .8fr 1fr 80px"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.pair,className:"h-6 w-6 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[9px] font-bold text-text-muted",children:t.pair.slice(0,2)}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx("span",{className:"text-xs font-medium text-foreground",children:t.pair}),jsxRuntime.jsx("span",{className:ui$1.cn("rounded px-1.5 py-0.5 text-[10px] font-medium",i?"bg-positive/12 text-positive":"bg-negative/12 text-negative"),children:r(i?"perpetuals.positions.long":"perpetuals.positions.short")}),jsxRuntime.jsxs("span",{className:"rounded bg-positive/10 px-1.5 py-0.5 text-[10px] font-medium text-positive",children:[t.leverage,"\xD7"]})]})]}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.size)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.entryPrice)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.markPrice)}),jsxRuntime.jsx("span",{className:ui$1.cn("text-right font-mono text-xs",l?"text-positive":"text-negative"),children:bt(t.uPnl)}),!e&&jsxRuntime.jsx("div",{className:"flex justify-end",children:jsxRuntime.jsx("button",{type:"button",className:"rounded-[5px] border border-border-subtle px-2.5 py-1 text-[10px] font-medium text-text-muted transition-colors hover:border-negative hover:text-negative",onClick:()=>o?.(t),children:r("portfolio.perps.close")})})]})}function Li({records:t,isLoading:e}){let{t:o}=i18n.useTranslation();return e?jsxRuntime.jsx("div",{className:"flex items-center justify-center py-16",children:jsxRuntime.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-positive border-t-transparent"})}):t.length===0?jsxRuntime.jsx(Y,{title:o("portfolio.perps.history.empty"),hint:o("portfolio.perps.history.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"1.5fr 80px 1fr 1fr 1fr 100px"},children:[jsxRuntime.jsx("span",{children:o("portfolio.perps.history.header.pair")}),jsxRuntime.jsx("span",{children:o("portfolio.perps.history.header.side")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.size")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.pnl")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.closePrice")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.perps.history.header.time")})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(r=>jsxRuntime.jsx(Fi,{record:r},r.id))})]})}function Fi({record:t}){let{t:e}=i18n.useTranslation(),o=t.side==="long",r=t.pnl>=0;return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"1.5fr 80px 1fr 1fr 1fr 100px"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.pair,className:"h-5 w-5 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[8px] font-bold text-text-muted",children:t.pair.slice(0,2)}),jsxRuntime.jsx("span",{className:"text-xs font-medium text-foreground",children:t.pair})]}),jsxRuntime.jsx("span",{children:jsxRuntime.jsx("span",{className:ui$1.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",o?"bg-positive/12 text-positive":"bg-negative/12 text-negative"),children:e(o?"perpetuals.positions.long":"perpetuals.positions.short")})}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.size)}),jsxRuntime.jsx("span",{className:ui$1.cn("text-right font-mono text-xs",r?"text-positive":"text-negative"),children:bt(t.pnl)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.closePrice)}),jsxRuntime.jsx("span",{className:"text-right text-[11px] text-text-muted",children:t.time})]})}function ue({state:t,onSellBet:e,onSellAll:o}){let{t:r}=i18n.useTranslation(),{predictionSubTab:i,setPredictionSubTab:l,predictionSearch:n,setPredictionSearch:s,filteredPredictionBets:a,predictionSettledQuery:u,isViewing:p}=t,f=a.length>0;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx(rt,{tabs:[{key:"active",label:r("portfolio.prediction.activeBets")},{key:"settled",label:r("portfolio.prediction.settled")}],activeKey:i,onTabChange:x=>l(x)}),i==="active"&&!p&&jsxRuntime.jsx(St,{label:r("portfolio.prediction.sellAll"),disabled:!f,onClick:()=>o?.()})]}),jsxRuntime.jsx(it,{value:n,onChange:s,placeholder:r("portfolio.prediction.search.placeholder")})]}),i==="active"?jsxRuntime.jsx(qi,{bets:a,isViewing:p,onSell:e}):jsxRuntime.jsx(zi,{records:u.data?.records??[],isLoading:u.isLoading})]})}var Ki={polymarket:"bg-[rgba(0,102,255,0.12)] text-[#0066FF]",drift:"bg-positive/10 text-positive",metadao:"bg-[rgba(255,107,157,0.1)] text-[#FF6B9D]"},Vi={polymarket:"Polymarket",drift:"Drift",metadao:"MetaDAO"};function Do({source:t}){return jsxRuntime.jsx("span",{className:ui$1.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",Ki[t]),children:Vi[t]})}function qi({bets:t,isViewing:e,onSell:o}){let{t:r}=i18n.useTranslation();return t.length===0?jsxRuntime.jsx(Y,{title:r("portfolio.prediction.empty"),hint:r("portfolio.prediction.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:e?"2.2fr .6fr .7fr .7fr .7fr":"2.2fr .6fr .7fr .7fr .7fr 80px"},children:[jsxRuntime.jsx("span",{children:r("portfolio.prediction.header.market")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.position")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.stake")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.potential")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.prediction.header.status")}),!e&&jsxRuntime.jsx("span",{className:"text-right"})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(i=>jsxRuntime.jsx(_i,{bet:i,isViewing:e,onSell:o},i.id))})]})}function _i({bet:t,isViewing:e,onSell:o}){let{t:r}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:e?"2.2fr .6fr .7fr .7fr .7fr":"2.2fr .6fr .7fr .7fr .7fr 80px"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.market,className:"h-6 w-6 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[9px] font-bold text-text-muted",children:"?"}),jsxRuntime.jsxs("div",{className:"flex flex-col overflow-hidden",children:[jsxRuntime.jsx("span",{className:"truncate text-xs font-medium text-foreground",children:t.market}),jsxRuntime.jsx(Do,{source:t.source})]})]}),jsxRuntime.jsx("span",{className:ui$1.cn("text-right text-xs font-medium",t.position==="Yes"?"text-positive":"text-negative"),children:t.position}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.stake)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-positive",children:I(t.potential)}),jsxRuntime.jsx("span",{className:"text-right",children:jsxRuntime.jsx("span",{className:ui$1.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",t.status==="active"?"bg-positive/12 text-positive":"bg-positive/10 text-positive"),children:r(t.status==="active"?"portfolio.prediction.status.active":"portfolio.prediction.status.pending")})}),!e&&jsxRuntime.jsx("div",{className:"flex justify-end",children:jsxRuntime.jsx("button",{type:"button",className:"rounded-[5px] border border-border-subtle px-2.5 py-1 text-[10px] font-medium text-text-muted transition-colors hover:border-negative hover:text-negative",onClick:()=>o?.(t),children:r("portfolio.prediction.sell")})})]})}function zi({records:t,isLoading:e}){let{t:o}=i18n.useTranslation();return e?jsxRuntime.jsx("div",{className:"flex items-center justify-center py-16",children:jsxRuntime.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-positive border-t-transparent"})}):t.length===0?jsxRuntime.jsx(Y,{title:o("portfolio.prediction.settled.empty"),hint:o("portfolio.prediction.settled.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"1.5fr .8fr .6fr .7fr .6fr .7fr"},children:[jsxRuntime.jsx("span",{children:o("portfolio.prediction.settled.header.market")}),jsxRuntime.jsx("span",{children:o("portfolio.prediction.settled.header.source")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.position")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.stake")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.result")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.prediction.settled.header.payout")})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(r=>jsxRuntime.jsx(Gi,{record:r},r.id))})]})}function Gi({record:t}){let{t:e}=i18n.useTranslation(),o=t.result==="won";return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"1.5fr .8fr .6fr .7fr .6fr .7fr"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[t.icon?jsxRuntime.jsx("img",{src:t.icon,alt:t.market,className:"h-5 w-5 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[8px] font-bold text-text-muted",children:"?"}),jsxRuntime.jsx("span",{className:"truncate text-xs font-medium text-foreground",children:t.market})]}),jsxRuntime.jsx(Do,{source:t.source}),jsxRuntime.jsx("span",{className:ui$1.cn("text-right text-xs font-medium",t.position==="Yes"?"text-positive":"text-negative"),children:t.position}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.stake)}),jsxRuntime.jsx("span",{className:"text-right",children:jsxRuntime.jsx("span",{className:ui$1.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",o?"bg-positive/12 text-positive":"bg-negative/12 text-negative"),children:e(o?"portfolio.prediction.result.won":"portfolio.prediction.result.lost")})}),jsxRuntime.jsx("span",{className:ui$1.cn("text-right font-mono text-xs",o?"text-positive":"text-text-muted"),children:o?`+${I(t.payout)}`:I(t.payout)})]})}function me({state:t}){let{t:e}=i18n.useTranslation(),{spotSubTab:o,setSpotSubTab:r,spotSearch:i,setSpotSearch:l,hideSmall:n,setHideSmall:s,groupCollapsed:a,toggleGroupCollapsed:u,filteredSpotHoldings:p,spotHistoryQuery:f}=t;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between pb-3",children:[jsxRuntime.jsx(rt,{tabs:[{key:"holdings",label:e("portfolio.spot.holdings")},{key:"history",label:e("portfolio.spot.history")}],activeKey:o,onTabChange:x=>r(x)}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(it,{value:i,onChange:l,placeholder:e("portfolio.spot.search.placeholder")}),o==="holdings"&&jsxRuntime.jsxs("label",{className:"flex cursor-pointer items-center gap-1.5 text-[11px] text-text-muted select-none",children:[jsxRuntime.jsx("input",{type:"checkbox",className:"accent-[#C8FF00]",checked:n,onChange:x=>s(x.target.checked)}),e("portfolio.spot.hideSmall")]})]})]}),o==="holdings"?jsxRuntime.jsx(Yi,{holdings:p,groupCollapsed:a,onToggleGroup:u}):jsxRuntime.jsx(ji,{records:f.data?.trades??[],isLoading:f.isLoading})]})}function Yi({holdings:t,groupCollapsed:e,onToggleGroup:o}){let{t:r}=i18n.useTranslation();return t.length===0?jsxRuntime.jsx(Y,{title:r("portfolio.spot.empty"),hint:r("portfolio.spot.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr"},children:[jsxRuntime.jsx("span",{children:r("portfolio.spot.header.asset")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.balance")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.price")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.value")}),jsxRuntime.jsx("span",{className:"text-right",children:r("portfolio.spot.header.24h")})]}),jsxRuntime.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-2 text-[10px] font-medium uppercase tracking-wider text-text-muted transition-colors hover:text-text-secondary",onClick:o,children:[jsxRuntime.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",className:ui$1.cn("transition-transform",e&&"-rotate-90"),children:jsxRuntime.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),jsxRuntime.jsx("span",{children:r("portfolio.spot.group.tokens")}),jsxRuntime.jsx("span",{className:"text-text-disabled",children:t.length})]}),!e&&jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(i=>jsxRuntime.jsx($i,{holding:i},i.tokenAddress))})]})}function $i({holding:t}){let e=t.change24h>=0;return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr"},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2.5 overflow-hidden",children:[t.image?jsxRuntime.jsx("img",{src:t.image,alt:t.symbol,className:"h-7 w-7 flex-shrink-0 rounded-full"}):jsxRuntime.jsx("div",{className:"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-full bg-surface-interactive text-[10px] font-bold text-text-muted",children:t.symbol.slice(0,2)}),jsxRuntime.jsxs("div",{className:"flex flex-col overflow-hidden",children:[jsxRuntime.jsx("span",{className:"truncate text-xs font-medium text-foreground",children:t.name}),jsxRuntime.jsx("span",{className:"text-[10px] text-text-muted",children:t.symbol})]})]}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:Ft(t.balance)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.price)}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-foreground",children:I(t.value)}),jsxRuntime.jsx("span",{className:ui$1.cn("text-right font-mono text-xs",e?"text-positive":"text-negative"),children:he(t.change24h)})]})}function ji({records:t,isLoading:e}){let{t:o}=i18n.useTranslation();return e?jsxRuntime.jsx("div",{className:"flex items-center justify-center py-16",children:jsxRuntime.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-positive border-t-transparent"})}):t.length===0?jsxRuntime.jsx(Y,{title:o("portfolio.spot.history.empty"),hint:o("portfolio.spot.history.empty.hint")}):jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:"grid gap-2 px-3 pb-2 text-[10px] font-medium uppercase tracking-wider text-text-muted",style:{gridTemplateColumns:"80px 1.5fr 1fr 1fr 100px 80px"},children:[jsxRuntime.jsx("span",{children:o("portfolio.spot.history.header.type")}),jsxRuntime.jsx("span",{children:o("portfolio.spot.history.header.detail")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.amount")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.value")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.time")}),jsxRuntime.jsx("span",{className:"text-right",children:o("portfolio.spot.history.header.txHash")})]}),jsxRuntime.jsx("div",{className:"flex flex-col",children:t.map(r=>jsxRuntime.jsx(Ji,{record:r},`${r.txHash}-${r.tokenAddress}`))})]})}var Xi={swap:"bg-[rgba(139,123,255,0.12)] text-[#8B7BFF]",send:"bg-negative/12 text-negative",receive:"bg-positive/12 text-positive"};function Zi(t){return t.type==="swap"&&t.sideTokenSymbol?`${t.tokenSymbol} \u2192 ${t.sideTokenSymbol}`:t.tokenName||t.tokenSymbol}function Ji({record:t}){let{t:e}=i18n.useTranslation(),o=Ne(t.txHash,t.chain);return jsxRuntime.jsxs("div",{className:"grid items-center gap-2 rounded-[5px] px-3 py-2.5 transition-colors hover:bg-surface-interactive",style:{gridTemplateColumns:"80px 1.5fr 1fr 1fr 100px 80px"},children:[jsxRuntime.jsx("span",{children:jsxRuntime.jsx("span",{className:ui$1.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",Xi[t.type]),children:e(`portfolio.spot.history.type.${t.type}`)})}),jsxRuntime.jsx("span",{className:"truncate text-xs text-foreground",children:Zi(t)}),jsxRuntime.jsxs("span",{className:"text-right font-mono text-xs text-foreground",children:[Ft(t.tokenAmount)," ",t.tokenSymbol]}),jsxRuntime.jsx("span",{className:"text-right font-mono text-xs text-text-secondary",children:I(t.valueUsd)}),jsxRuntime.jsx("span",{className:"text-right text-[11px] text-text-muted",children:t.timestamp?Ae(t.timestamp):"\u2014"}),jsxRuntime.jsx("span",{className:"text-right",children:t.txHash?jsxRuntime.jsxs("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:"font-mono text-[11px] text-text-muted transition-colors hover:text-brand-primary",children:[t.txHash.slice(0,4),"\u2026",t.txHash.slice(-3)]}):jsxRuntime.jsx("span",{className:"font-mono text-[11px] text-text-disabled",children:"\u2014"})})]})}function Ro({onClosePosition:t,onCloseAllPositions:e,onSellBet:o,onSellAllBets:r,...i}){let{t:l}=i18n.useTranslation(),n=le(i),[s,a]=react.useState(null),u=react.useCallback(()=>{a("closeAll");},[]),p=react.useCallback(()=>{a("sellAll");},[]),f=react.useCallback(()=>{s==="closeAll"?e?.():s==="sellAll"&&r?.(),a(null);},[s,e,r]),x=react.useCallback(()=>{a(null);},[]);return jsxRuntime.jsxs("div",{className:"rounded-xl border border-border-subtle bg-surface-raised p-4",children:[(()=>{switch(i.activeTab){case "spot":return jsxRuntime.jsx(me,{state:n});case "perps":return jsxRuntime.jsx(ce,{state:n,onClosePosition:t,onCloseAll:u});case "prediction":return jsxRuntime.jsx(ue,{state:n,onSellBet:o,onSellAll:p});default:return null}})(),jsxRuntime.jsx(Tt,{open:s==="closeAll",title:l("portfolio.perps.closeAll"),message:l("portfolio.perps.closeAll.confirm"),confirmLabel:l("portfolio.perps.closeAll.confirmBtn"),cancelLabel:l("portfolio.perps.closeAll.cancel"),onConfirm:f,onCancel:x}),jsxRuntime.jsx(Tt,{open:s==="sellAll",title:l("portfolio.prediction.sellAll"),message:l("portfolio.prediction.sellAll.confirm"),confirmLabel:l("portfolio.prediction.sellAll.confirmBtn"),cancelLabel:l("portfolio.prediction.sellAll.cancel"),onConfirm:f,onCancel:x})]})}function st(t,e,o=Date.now()){if(t==null)return "--";let r=typeof t=="string"||typeof t=="number"?new Date(t):t,i=typeof o=="number"?new Date(o):o;return e(Math.max(0,i.getTime()-r.getTime()))}function ct(t,e=4,o=4){return t?t.length<=e+o+1?t:`${t.slice(0,e)}\u2026${t.slice(-o)}`:"--"}var is={kol:{label:"KOL",labelKey:"common.walletTag.kol",bgClass:"bg-warning/15",textClass:"text-warning"},smart:{label:"Smart",labelKey:"common.walletTag.smart",bgClass:"bg-sky-500/15",textClass:"text-sky-400"},sniper:{label:"Sniper",labelKey:"common.walletTag.sniper",bgClass:"bg-danger/15",textClass:"text-danger"},dev:{label:"Dev",labelKey:"common.walletTag.dev",bgClass:"bg-negative/15",textClass:"text-negative"},bundle:{label:"Bundle",labelKey:"common.walletTag.bundle",bgClass:"bg-purple-500/15",textClass:"text-purple-400"},bluechip:{label:"Bluechip",labelKey:"common.walletTag.bluechip",bgClass:"bg-success/15",textClass:"text-success"},insider:{label:"Insider",labelKey:"common.walletTag.insider",bgClass:"bg-fuchsia-500/15",textClass:"text-fuchsia-400"},fresh:{label:"Fresh",labelKey:"common.walletTag.fresh",bgClass:"bg-teal-500/15",textClass:"text-teal-400"}};function Ho({tag:t,className:e}){let{t:o}=i18n.useTranslation(),r=is[t]??{label:t,bgClass:"bg-default/20",textClass:"text-text-muted"};return jsxRuntime.jsx("span",{className:ui$1.cn("inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-medium uppercase leading-none tracking-wide",r.bgClass,r.textClass,e),children:r.labelKey?o(r.labelKey):r.label})}function It({tags:t,className:e,max:o}){if(!t||t.length===0)return null;let r=o!=null&&o>0?t.slice(0,o):t,i=t.length-r.length;return jsxRuntime.jsxs("div",{className:ui$1.cn("flex flex-wrap items-center gap-1",e),children:[r.map(l=>jsxRuntime.jsx(Ho,{tag:l},l)),i>0&&jsxRuntime.jsxs("span",{className:"inline-flex items-center rounded bg-default/20 px-1.5 py-0.5 text-[10px] font-medium text-text-muted",children:["+",i]})]})}var ls=["timestamp","totalUsd"],ps=["all","buy","sell"];function Ye({activities:t,isLoading:e,sortBy:o,onSortByChange:r,typeFilter:i="all",onTypeFilterChange:l,onLoadMore:n,hasMore:s,now:a=Date.now(),nativeDecimals:u=9,nativeSymbol:p="SOL",className:f,onRowClick:x}){let{t:d}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:ui$1.cn("flex flex-col",f),children:[jsxRuntime.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 px-3 py-2",children:[jsxRuntime.jsx("div",{className:"flex items-center gap-1",children:ps.map(m=>jsxRuntime.jsx("button",{type:"button",onClick:()=>l?.(m),className:ui$1.cn("rounded px-2 py-1 text-[11px] transition-colors",i===m?"bg-default-100 text-foreground":"text-text-muted hover:text-foreground"),children:d(m==="all"?"portfolio.activities.filter.all":m==="buy"?"portfolio.activities.filter.buys":"portfolio.activities.filter.sells")},m))}),jsxRuntime.jsx("div",{className:"flex items-center gap-1",children:ls.map(m=>jsxRuntime.jsx("button",{type:"button",onClick:()=>r(m),className:ui$1.cn("rounded px-2 py-1 text-[11px] transition-colors",o===m?"bg-default-100 text-foreground":"text-text-muted hover:text-foreground"),children:d(m==="timestamp"?"portfolio.activities.filter.latest":"portfolio.activities.filter.topUsd")},m))})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full min-w-[780px] table-fixed text-[12px]",children:[jsxRuntime.jsx("thead",{className:"text-text-muted",children:jsxRuntime.jsxs("tr",{className:"border-b border-default-100",children:[jsxRuntime.jsx("th",{className:"w-[10%] px-3 py-2 text-left font-normal",children:d("portfolio.activities.header.side")}),jsxRuntime.jsx("th",{className:"w-[25%] px-3 py-2 text-left font-normal",children:d("portfolio.activities.header.token")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.amount")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.usd")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-left font-normal",children:d("portfolio.activities.header.tags")}),jsxRuntime.jsx("th",{className:"w-[10%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.gas")}),jsxRuntime.jsx("th",{className:"w-[10%] px-3 py-2 text-right font-normal",children:d("portfolio.activities.header.age")})]})}),jsxRuntime.jsxs("tbody",{children:[t.length===0&&!e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:7,className:"py-8 text-center text-text-muted",children:d("portfolio.activities.empty")})}),t.map(m=>jsxRuntime.jsx(us,{activity:m,now:a,nativeDecimals:u,nativeSymbol:p,onRowClick:x},`${m.txHash}-${m.walletAddress}`)),e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:7,className:"py-4 text-center text-text-muted",children:d("portfolio.common.loading")})})]})]})}),s&&jsxRuntime.jsx("div",{className:"flex justify-center px-3 py-2",children:jsxRuntime.jsx("button",{type:"button",onClick:n,disabled:e,className:"rounded bg-default-100 px-3 py-1 text-[11px] text-text-muted transition-colors hover:bg-default-200 disabled:opacity-50",children:d("portfolio.common.loadMore")})})]})}function ds(t){return t.type==="buy"?t.to:t.type==="sell"?t.from:t.to}function cs(t,e,o){if(!t)return "--";let r=Number(t)/Math.pow(10,e);return Number.isFinite(r)?`${utils.formatAmount(r)} ${o}`:"--"}function us({activity:t,now:e,nativeDecimals:o,nativeSymbol:r,onRowClick:i}){let{formatAge:l}=i18n.useLocalizedTimeFormatter(),n=ds(t),s=t.type==="buy"?"Buy":t.type==="sell"?"Sell":t.type.replace(/_/g," "),a=t.type==="buy"?"text-positive":t.type==="sell"?"text-negative":"text-text-muted";return jsxRuntime.jsxs("tr",{className:ui$1.cn("border-b border-default-50 hover:bg-default-50/60",i&&"cursor-pointer"),onClick:i?()=>i(t):void 0,children:[jsxRuntime.jsx("td",{className:ui$1.cn("px-3 py-2 align-middle font-medium capitalize",a),children:s}),jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground",children:n.symbol}),jsxRuntime.jsx("span",{className:"font-mono text-[10px] text-text-muted",children:ct(n.address,6,6)})]})}),jsxRuntime.jsxs("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:[utils.formatAmount(n.amount)," ",n.symbol]}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-foreground",children:n.amountInUsd?utils.formatAmountInUsd(n.amountInUsd):"--"}),jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsx(It,{tags:t.traderTags,max:2})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:cs(t.gasFee,o,r)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:st(t.time,l,e)})]})}var fs=100;function Oo(){return {getKey:t=>t.txHash,compare:()=>0,include:()=>true,merge:(t,e,o)=>o.previousSource==="page"||o.incomingSource==="page"?o.previousSource==="page"?{item:t,placement:"previous"}:{item:e,placement:"incoming"}:{item:t,placement:"previous"},maxLiveItems:fs}}function Eo(t){return Object.freeze({cursor:null,generation:t,mode:"replace"})}function ms(t,e){return t.sortBy==="timestamp"&&t.typeFilter==="all"&&e==null}function Mo(){let{snapshot:t}=realtimeCursorCollection.createRealtimeCursorCollection(Oo());return {collection:t,request:Eo(t.generation)}}function Ht(t,e,o){let{reduce:r}=realtimeCursorCollection.createRealtimeCursorCollection(Oo());switch(e.type){case "reset":{let i=r(t.collection,{type:"reset"});return {collection:i,request:Eo(i.generation)}}case "load-more":return xs(t,r);case "live":return e.items.length===0||!ms(o,t.request.cursor)?t:{collection:r(t.collection,{type:"live",items:e.items}),request:t.request};case "page":return e.request.mode==="append"&&e.nextCursor===t.collection.nextCursor?t:{collection:r(t.collection,{type:"page",mode:e.request.mode,generation:e.request.generation,items:e.items,nextCursor:e.nextCursor,hasNextPage:e.hasNextPage}),request:t.request};default:return e}}function xs(t,e){let{collection:o,request:r}=t;if(!o.hasNextPage||o.nextCursor==null||r.mode==="append"&&r.cursor===o.nextCursor&&r.generation===o.generation)return t;let i=e(o,{type:"clear-live"});return {collection:i,request:Object.freeze({cursor:i.nextCursor,generation:i.generation,mode:"append"})}}function Xe({chain:t,address:e,limit:o=50,initialSortBy:r="timestamp",initialTypeFilter:i="all"}){let[l,n]=react.useState(r),[s,a]=react.useState(i),[u,p]=react.useState(Mo),f=react.useRef(true),x=react.useMemo(()=>({sortBy:l,typeFilter:s}),[l,s]),d=react.useRef(x);d.current=x;let m=react.useCallback(()=>{p(U=>Ht(U,{type:"reset"},d.current));},[]),h=react.useCallback(U=>{U!==l&&(n(U),m());},[l,m]),c=react.useCallback(U=>{U!==s&&(a(U),m());},[s,m]);react.useEffect(()=>{if(f.current){f.current=false;return}m();},[t,e,m]);let P=s==="all"?void 0:s,{collection:S,request:D}=u,N=react.useMemo(()=>({chain:t,address:e,cursor:D.cursor??void 0,limit:o,sortBy:l,type:P}),[t,e,D,o,l,P]),{data:w,isPending:O,isFetching:q}=react$1.useWalletActivitiesQuery(N);react.useEffect(()=>{w&&p(U=>Ht(U,{type:"page",request:D,items:w.data,nextCursor:w.endCursor??null,hasNextPage:!!w.hasNext},x));},[w,D,x]),react$1.useWalletActivitiesSubscription({chain:t,address:e},U=>{U?.length&&p(Q=>Ht(Q,{type:"live",items:U},x));});let E=react.useMemo(()=>S.items.slice(),[S]),F=!!(S.hasNextPage&&S.nextCursor),ft=react.useCallback(()=>{p(U=>Ht(U,{type:"load-more"},x));},[x]);return {activities:E,isLoading:O||q,sortBy:l,setSortBy:h,typeFilter:s,setTypeFilter:c,hasMore:F,loadMore:ft}}function Ps({chain:t,address:e,limit:o,initialSortBy:r,initialTypeFilter:i,nativeDecimals:l,nativeSymbol:n,className:s,onRowClick:a}){let{activities:u,isLoading:p,sortBy:f,setSortBy:x,typeFilter:d,setTypeFilter:m,hasMore:h,loadMore:c}=Xe({chain:t,address:e,limit:o,initialSortBy:r,initialTypeFilter:i});return jsxRuntime.jsx(Ye,{activities:u,isLoading:p,sortBy:f,onSortByChange:x,typeFilter:d,onTypeFilterChange:m,hasMore:h,onLoadMore:c,className:s,nativeDecimals:l,nativeSymbol:n,onRowClick:a})}function Ze({data:t,isLoading:e,className:o,now:r=Date.now(),onRowClick:i,onLoadMore:l,hasMore:n}){let{t:s}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:ui$1.cn("flex flex-col",o),children:[jsxRuntime.jsx("div",{className:"flex items-baseline justify-between px-3 py-2",children:jsxRuntime.jsxs("span",{className:"text-xs font-medium text-text-muted",children:[s("portfolio.netWorth.holdings"),t&&jsxRuntime.jsx("span",{className:"ml-2 text-[10px] text-text-muted",children:s("portfolio.netWorth.summary",{value:utils.formatAmountInUsd(t.balanceInUsd)})})]})}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full min-w-[720px] table-fixed text-[12px]",children:[jsxRuntime.jsx("thead",{className:"text-text-muted",children:jsxRuntime.jsxs("tr",{className:"border-b border-default-100",children:[jsxRuntime.jsx("th",{className:"w-[28%] px-3 py-2 text-left font-normal",children:s("portfolio.netWorth.header.token")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:s("portfolio.netWorth.header.amount")}),jsxRuntime.jsx("th",{className:"w-[15%] px-3 py-2 text-right font-normal",children:s("portfolio.netWorth.header.value")}),jsxRuntime.jsx("th",{className:"w-[14%] px-3 py-2 text-right font-normal",children:s("portfolio.netWorth.header.avgCost")}),jsxRuntime.jsx("th",{className:"w-[16%] px-3 py-2 text-left font-normal",children:s("portfolio.netWorth.header.tags")}),jsxRuntime.jsx("th",{className:"w-[12%] px-3 py-2 text-right font-normal",children:s("portfolio.netWorth.header.lastActive")})]})}),jsxRuntime.jsxs("tbody",{children:[(!t||t.portfolios.length===0)&&!e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:6,className:"py-8 text-center text-text-muted",children:s("portfolio.netWorth.empty")})}),t?.portfolios.map(a=>jsxRuntime.jsx(Cs,{portfolio:a,now:r,onRowClick:i},`${a.chain}-${a.address}`)),e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:6,className:"py-4 text-center text-text-muted",children:s("portfolio.common.loading")})})]})]})}),n&&jsxRuntime.jsx("div",{className:"flex justify-center px-3 py-2",children:jsxRuntime.jsx("button",{type:"button",onClick:l,disabled:e,className:"rounded bg-default-100 px-3 py-1 text-[11px] text-text-muted transition-colors hover:bg-default-200 disabled:opacity-50",children:s("portfolio.common.loadMore")})})]})}function Cs({portfolio:t,now:e,onRowClick:o}){let{formatAge:r}=i18n.useLocalizedTimeFormatter();return jsxRuntime.jsxs("tr",{className:ui$1.cn("border-b border-default-50 hover:bg-default-50/60",o&&"cursor-pointer"),onClick:o?()=>o(t):void 0,children:[jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground",children:t.symbol}),jsxRuntime.jsx("span",{className:"font-mono text-[10px] text-text-muted",children:ct(t.address,6,6)})]})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:utils.formatAmount(t.amount)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-foreground",children:utils.formatAmountInUsd(t.amountInUsd)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.avgCostUsd?utils.formatPriceInUsd(t.avgCostUsd):"--"}),jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsx(It,{tags:t.walletTokenTags,max:2})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.lastActiveAt?st(t.lastActiveAt,r,e):"--"})]})}function Je({chain:t,address:e,limit:o=50}){let[r,i]=react.useState(void 0),[l,n]=react.useState([]);react.useEffect(()=>{n([]),i(void 0);},[t,e]);let{data:s,isPending:a,isFetching:u}=react$1.useWalletPortfoliosQuery({chain:t,address:e,cursor:r,limit:o});react.useEffect(()=>{s&&n(m=>r==null?[s]:m[m.length-1]?.endCursor===s.endCursor?m:[...m,s]);},[s,r]);let p=react.useMemo(()=>l.length===0?void 0:{...l[0],portfolios:l.flatMap(h=>h.portfolios)},[l]),f=l[l.length-1],x=!!(f?.hasNext&&f.endCursor),d=react.useCallback(()=>{!f?.endCursor||!f.hasNext||i(f.endCursor);},[f]);return {data:p,isLoading:a||u,hasMore:x,loadMore:d}}function ks({chain:t,address:e,limit:o,className:r,onRowClick:i}){let{data:l,isLoading:n,hasMore:s,loadMore:a}=Je({chain:t,address:e,limit:o});return jsxRuntime.jsx(Ze,{data:l,isLoading:n,className:r,hasMore:s,onLoadMore:a,onRowClick:i})}function io({data:t,isLoading:e,resolution:o,onResolutionChange:r,positionState:i,onPositionStateChange:l,sortBy:n,onSortByChange:s,hasMore:a,onLoadMore:u,now:p=Date.now(),className:f,onRowClick:x}){let{t:d}=i18n.useTranslation(),{formatUnit:m}=i18n.useLocalizedTimeFormatter(),h=["7d","30d","90d"].map(S=>({value:S,label:m(Number.parseInt(S,10),"day")})),c=[{value:"open",label:d("portfolio.pnl.filter.open")},{value:"closed",label:d("portfolio.pnl.filter.closed")},{value:"all",label:d("portfolio.pnl.filter.all")}],P=[{value:"totalPnl",label:d("portfolio.pnl.filter.total")},{value:"realizedPnl",label:d("portfolio.pnl.filter.realized")},{value:"unrealizedPnl",label:d("portfolio.pnl.filter.unrealized")}];return jsxRuntime.jsxs("div",{className:ui$1.cn("flex flex-col gap-2",f),children:[jsxRuntime.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 px-3 py-2",children:[jsxRuntime.jsx(to,{label:d("portfolio.pnl.filter.window"),options:h,value:o,onChange:r}),jsxRuntime.jsx(to,{label:d("portfolio.pnl.filter.status"),options:c,value:i,onChange:l}),jsxRuntime.jsx(to,{label:d("portfolio.pnl.filter.sort"),options:P,value:n,onChange:s})]}),t&&jsxRuntime.jsx(Rs,{data:t}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full min-w-[780px] table-fixed text-[12px]",children:[jsxRuntime.jsx("thead",{className:"text-text-muted",children:jsxRuntime.jsxs("tr",{className:"border-b border-default-100",children:[jsxRuntime.jsx("th",{className:"w-[22%] px-3 py-2 text-left font-normal",children:d("portfolio.pnl.header.token")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.holding")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.total")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.realized")}),jsxRuntime.jsx("th",{className:"w-[13%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.unrealized")}),jsxRuntime.jsx("th",{className:"w-[8%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.state")}),jsxRuntime.jsx("th",{className:"w-[9%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.firstBuy")}),jsxRuntime.jsx("th",{className:"w-[9%] px-3 py-2 text-right font-normal",children:d("portfolio.pnl.header.lastSell")})]})}),jsxRuntime.jsxs("tbody",{children:[(!t||t.portfolios.length===0)&&!e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:8,className:"py-8 text-center text-text-muted",children:d("portfolio.pnl.empty")})}),t?.portfolios.map(S=>jsxRuntime.jsx(Is,{pnl:S,now:p,onRowClick:x},`${S.chain}-${S.address}`)),e&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:8,className:"py-4 text-center text-text-muted",children:d("portfolio.common.loading")})})]})]})}),a&&jsxRuntime.jsx("div",{className:"flex justify-center px-3 py-2",children:jsxRuntime.jsx("button",{type:"button",onClick:u,disabled:e,className:"rounded bg-default-100 px-3 py-1 text-[11px] text-text-muted transition-colors hover:bg-default-200 disabled:opacity-50",children:d("portfolio.common.loadMore")})})]})}function to({label:t,options:e,value:o,onChange:r}){return jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{className:"text-[10px] uppercase tracking-wide text-text-muted",children:t}),jsxRuntime.jsx("div",{className:"flex items-center gap-1",children:e.map(i=>jsxRuntime.jsx("button",{type:"button",onClick:()=>r(i.value),className:ui$1.cn("rounded px-2 py-1 text-[11px] transition-colors",o===i.value?"bg-default-100 text-foreground":"text-text-muted hover:text-foreground"),children:i.label},i.value))})]})}function Rs({data:t}){let{t:e}=i18n.useTranslation(),o=t.totalProfitInUsd,r=t.totalProfitRatio,i=t.winRate;return jsxRuntime.jsxs("div",{className:"mx-3 flex flex-wrap items-center gap-x-6 gap-y-2 rounded border border-default-100 bg-default-50 px-4 py-2 text-xs",children:[jsxRuntime.jsx(ye,{label:e("portfolio.pnl.header.total"),value:o?utils.formatAmountInUsd(o,{showPlusGtThanZero:true}):"--",tone:o?Go(o):void 0}),jsxRuntime.jsx(ye,{label:e("portfolio.pnl.summary.return"),value:r?utils.formatPercent(r,{showPlusGtThanZero:true}):"--",tone:r?Go(r):void 0}),jsxRuntime.jsx(ye,{label:e("portfolio.pnl.summary.winRate"),value:i?utils.formatPercent(i):"--"}),jsxRuntime.jsx(ye,{label:e("portfolio.pnl.summary.trades"),value:t.totalTrades!=null?t.totalTrades.toString():"--"})]})}function Go(t){let e=new utils.SafeBigNumber(t);if(e.gt(0))return "bullish";if(e.lt(0))return "bearish"}function ye({label:t,value:e,tone:o}){return jsxRuntime.jsxs("div",{className:"flex flex-col",children:[jsxRuntime.jsx("span",{className:"text-[10px] uppercase tracking-wide text-text-muted",children:t}),jsxRuntime.jsx("span",{className:ui$1.cn("text-sm font-medium",o==="bullish"?"text-positive":o==="bearish"?"text-negative":"text-foreground"),children:e})]})}function eo({value:t}){if(!t)return jsxRuntime.jsx("span",{className:"text-text-muted",children:"--"});let e=new utils.SafeBigNumber(t),o=e.gt(0)?"text-positive":e.lt(0)?"text-negative":"text-text-muted";return jsxRuntime.jsx("span",{className:o,children:utils.formatAmountInUsd(t,{showPlusGtThanZero:true})})}function Is({pnl:t,now:e,onRowClick:o}){let{t:r}=i18n.useTranslation(),{formatAge:i}=i18n.useLocalizedTimeFormatter();return jsxRuntime.jsxs("tr",{className:ui$1.cn("border-b border-default-50 hover:bg-default-50/60",o&&"cursor-pointer"),onClick:o?()=>o(t):void 0,children:[jsxRuntime.jsx("td",{className:"px-3 py-2 align-middle",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground",children:t.symbol}),jsxRuntime.jsx("span",{className:"font-mono text-[10px] text-text-muted",children:ct(t.address,6,6)})]})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-foreground",children:utils.formatAmountInUsd(t.amountInUsd)}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle",children:jsxRuntime.jsx(eo,{value:t.totalProfitInUsd})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle",children:jsxRuntime.jsx(eo,{value:t.realizedProfitInUsd})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle",children:jsxRuntime.jsx(eo,{value:t.unrealizedProfitInUsd})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-[10px]",children:jsxRuntime.jsx("span",{className:ui$1.cn("rounded px-1.5 py-0.5",t.isClosed?"bg-default/20 text-text-muted":"bg-positive/15 text-positive"),children:r(t.isClosed?"portfolio.pnl.filter.closed":"portfolio.pnl.filter.open")})}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.firstBuyAt?st(t.firstBuyAt,i,e):"--"}),jsxRuntime.jsx("td",{className:"px-3 py-2 text-right align-middle text-text-muted",children:t.lastSellAt?st(t.lastSellAt,i,e):"--"})]})}function so({chain:t,address:e,limit:o=50,initialResolution:r="30d",initialPositionState:i="open",initialSortBy:l="totalPnl"}){let[n,s]=react.useState(r),[a,u]=react.useState(i),[p,f]=react.useState(l),[x,d]=react.useState(void 0),[m,h]=react.useState([]),c=react.useCallback(()=>{d(void 0),h([]);},[]),P=react.useCallback(Q=>{Q!==n&&(s(Q),c());},[n,c]),S=react.useCallback(Q=>{Q!==a&&(u(Q),c());},[a,c]),D=react.useCallback(Q=>{Q!==p&&(f(Q),c());},[p,c]);react.useEffect(()=>{c();},[t,e,c]);let N=react.useMemo(()=>({chain:t,address:e,cursor:x,limit:o,resolution:n,positionState:a,sortBy:p}),[t,e,x,o,n,a,p]),{data:w,isPending:O,isFetching:q}=react$1.useWalletPortfolioPnlsQuery(N);react.useEffect(()=>{w&&h(Q=>x==null?[w]:Q[Q.length-1]?.endCursor===w.endCursor?Q:[...Q,w]);},[w,x]);let E=react.useMemo(()=>m.length===0?void 0:{...m[0],portfolios:m.flatMap($=>$.portfolios)},[m]),F=m[m.length-1],ft=!!(F?.hasNext&&F.endCursor),U=react.useCallback(()=>{!F?.endCursor||!F.hasNext||d(F.endCursor);},[F]);return {data:E,isLoading:O||q,resolution:n,setResolution:P,positionState:a,setPositionState:S,sortBy:p,setSortBy:D,hasMore:ft,loadMore:U}}function Hs({chain:t,address:e,limit:o,initialResolution:r,initialPositionState:i,initialSortBy:l,className:n,onRowClick:s}){let{data:a,isLoading:u,resolution:p,setResolution:f,positionState:x,setPositionState:d,sortBy:m,setSortBy:h,hasMore:c,loadMore:P}=so({chain:t,address:e,limit:o,initialResolution:r,initialPositionState:i,initialSortBy:l});return jsxRuntime.jsx(io,{data:a,isLoading:u,resolution:p,onResolutionChange:f,positionState:x,onPositionStateChange:d,sortBy:m,onSortByChange:h,hasMore:c,onLoadMore:P,className:n,onRowClick:s})}function Qs(t){return t instanceof Error?t:new Error(String(t))}async function no(t){try{return {kind:"ok",data:await t()}}catch(e){return {kind:"error",error:Qs(e)}}}function ao(t){return {getHoldings:e=>no(()=>t.getSpotHoldings(e)),getNetWorth:e=>no(()=>t.getOverview(e)),getActivitiesPage:e=>no(()=>t.getSpotHistory(e)),async getPerpsPositions(){return {kind:"unsupported",capability:"perps"}},async getPredictionBets(){return {kind:"unsupported",capability:"prediction"}},subscribeActivities(){return {unsubscribe(){}}}}}function Jo({client:t,adapter:e,children:o}){let r=react.useMemo(()=>e??ao(t),[e,t]);return jsxRuntime.jsx(xt.Provider,{value:t,children:jsxRuntime.jsx(gt.Provider,{value:r,children:o})})}var Ks=15e3;function Vs(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function tr({chain:t,address:e,enabled:o=true,summaryPollMs:r=Ks}){let{setSummary:i,setSummaryStatus:l,setRefetchSummary:n}=react.useContext(Ot),s=react$1.useWalletPortfoliosQuery({chain:t,address:e},{enabled:o,refetchInterval:r}),a=react$1.useWalletPnlQuery({chain:t,address:e},{enabled:o,refetchInterval:r});react.useEffect(()=>{i(null);},[t,e,i]),react.useEffect(()=>{let p=s.isPending||a.isPending,f=s.isFetching||a.isFetching,x=s.isError||a.isError,d=s.isSuccess&&a.isSuccess;l({status:x?"error":d?"success":"pending",fetchStatus:f?"fetching":"idle",isLoading:p&&f,isPending:p,isFetching:f,isRefetching:d&&f,isError:x,isSuccess:d,error:s.error??a.error,dataUpdatedAt:Math.max(s.dataUpdatedAt,a.dataUpdatedAt)});},[s.isPending,s.isFetching,s.isError,s.isSuccess,s.error,s.dataUpdatedAt,a.isPending,a.isFetching,a.isError,a.isSuccess,a.error,a.dataUpdatedAt,l]),react.useEffect(()=>{let p=s.data,f=a.data;!p||!f||i({...f,balanceInUsd:p.balanceInUsd,balanceInNative:p.balanceInNative});},[s.data,a.data,i]),react$1.useWalletPnlSubscription({chain:t,address:e},p=>{i(f=>{if(!f)return f;let x=f;for(let d of p)x={...x,...Vs(d)};return x});},{enabled:o});let u=react.useCallback(async()=>{await Promise.all([s.refetch(),a.refetch()]);},[s,a]);react.useEffect(()=>{n(u);},[u,n]);}function ir({chain:t,address:e,children:o}){let[r,i]=react.useState(null),[l,n]=react.useState(zs),s=react.useRef(()=>Promise.resolve()),a=react.useCallback(()=>s.current(),[]),u=react.useCallback(x=>{s.current=x;},[]),p=react.useMemo(()=>({summary:r,summaryStatus:l,refetchSummary:a}),[r,l,a]),f=react.useMemo(()=>({setSummary:i,setSummaryStatus:n,setRefetchSummary:u}),[i,n,u]);return jsxRuntime.jsx(Ot.Provider,{value:f,children:jsxRuntime.jsx(yt.Provider,{value:p,children:jsxRuntime.jsx(_s,{chain:t,address:e,children:o})})})}function _s({chain:t,address:e,children:o}){return tr({chain:t,address:e,enabled:!!e}),jsxRuntime.jsx(jsxRuntime.Fragment,{children:o})}var zs={status:"pending",fetchStatus:"idle",isLoading:false,isPending:true,isFetching:false,isRefetching:false,isError:false,isSuccess:false,error:null,dataUpdatedAt:0};function Ys(t={}){let e=new Set,o=r=>({kind:"ok",data:r});return {async getHoldings(){return o(t.holdings??{holdings:[]})},async getNetWorth(){return o(t.netWorth??{totalValue:0,uPnl:0,realizedPnl:0,totalProfit:0,winRate:0})},async getActivitiesPage(){return o(t.activities??{trades:[],nextCursor:"",hasNext:false})},async getPerpsPositions(){return {kind:"unsupported",capability:"perps"}},async getPredictionBets(){return {kind:"unsupported",capability:"prediction"}},subscribeActivities(r){e.add(r);let i=false;return {unsubscribe(){i||(i=true,e.delete(r));}}}}}
2
+ exports.AccountInfoUI=Lt;exports.AccountInfoWidget=co;exports.AddressRowUI=Kt;exports.AssetTab=vt;exports.AssetTabsUI=_t;exports.BalanceRowUI=Gt;exports.BatchActionButton=St;exports.CURVE_PERIOD_VALUE=we;exports.ConfirmDialog=Tt;exports.CurveCardUI=Yt;exports.CurvePeriod=qt;exports.CurveType=Vt;exports.DistributionCardUI=$t;exports.HoldingsEmpty=Y;exports.HoldingsSearch=it;exports.HoldingsSectionWidget=Ro;exports.HoldingsSubTabs=rt;exports.PerpsPanelUI=ce;exports.PerpsPositionSide=Te;exports.PortfolioActivities=Ye;exports.PortfolioActivitiesWidget=Ps;exports.PortfolioClientContext=xt;exports.PortfolioClientProvider=Jo;exports.PortfolioContext=yt;exports.PortfolioDataAdapterContext=gt;exports.PortfolioNetWorthTokens=Ze;exports.PortfolioNetWorthTokensWidget=ks;exports.PortfolioPageSkeleton=se;exports.PortfolioPageWidget=To;exports.PortfolioPnlDetails=io;exports.PortfolioPnlDetailsWidget=Hs;exports.PortfolioProvider=ir;exports.PredictionBetStatus=De;exports.PredictionPanelUI=ue;exports.PredictionResult=Re;exports.PredictionSource=Ie;exports.SpotHistoryType=ke;exports.SpotPanelUI=me;exports.TagBadge=Ho;exports.TagBadgeList=It;exports.ViewingBannerUI=ae;exports.computeDistribution=Ce;exports.createClientPortfolioDataAdapter=ao;exports.createInMemoryPortfolioDataAdapter=Ys;exports.curveDataQueryKey=Ke;exports.distributionQueryKey=ho;exports.formatAgeShort=st;exports.formatPercent=he;exports.formatSignedUsd=bt;exports.formatTime=Ae;exports.formatTokenBalance=Ft;exports.formatUsd=I;exports.getExplorerUrl=Ne;exports.overviewQueryKey=Qe;exports.parseDecimal=Br;exports.perpsHistoryQueryKey=Me;exports.perpsPositionsQueryKey=Ee;exports.predictionBetsQueryKey=Le;exports.predictionSettledQueryKey=Fe;exports.splitUsd=Se;exports.spotHistoryQueryKey=Oe;exports.spotHoldingsQueryKey=We;exports.truncateAddress=at;exports.truncateMiddle=ct;exports.useAccountInfo=Mt;exports.useCurveDataQuery=oe;exports.useDistributionQuery=re;exports.useHoldingsSection=le;exports.useOverviewQuery=jt;exports.usePerpsHistoryQuery=Jt;exports.usePerpsPositionsQuery=Zt;exports.usePortfolioActivitiesScript=Xe;exports.usePortfolioClient=W;exports.usePortfolioContext=Pt;exports.usePortfolioDataAdapter=vo;exports.usePortfolioNetWorthTokensScript=Je;exports.usePortfolioPage=ie;exports.usePortfolioPnlDetailsScript=so;exports.usePredictionBetsQuery=te;exports.usePredictionSettledQuery=ee;exports.useRefetchWalletSummary=So;exports.useSpotHistoryQuery=Xt;exports.useSpotHoldingsQuery=ht;exports.useWalletPortfolios=Ao;exports.useWalletSummary=Et;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map