@liberfi.io/ui-predict 4.0.47 → 4.0.49

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
@@ -988,8 +988,9 @@ interface RedeemFormWidgetProps {
988
988
  * for the condition automatically.
989
989
  *
990
990
  * The full flow:
991
- * 1. Backend prepares EIP-712 SafeTx typed data + nonce.
992
- * 2. User signs via eth_signTypedData_v4 (Privy embedded wallet).
991
+ * 1. Backend resolves the active wallet and prepares a signing payload.
992
+ * 2. User signs via personal_sign for legacy Safe or eth_signTypedData_v4
993
+ * for deposit wallet.
993
994
  * 3. Backend submits the signed request to the Polymarket Relayer.
994
995
  */
995
996
  declare function RedeemFormWidget({ event, market, position, onSuccess, onCancel, }: RedeemFormWidgetProps): react_jsx_runtime.JSX.Element;
package/dist/index.d.ts CHANGED
@@ -988,8 +988,9 @@ interface RedeemFormWidgetProps {
988
988
  * for the condition automatically.
989
989
  *
990
990
  * The full flow:
991
- * 1. Backend prepares EIP-712 SafeTx typed data + nonce.
992
- * 2. User signs via eth_signTypedData_v4 (Privy embedded wallet).
991
+ * 1. Backend resolves the active wallet and prepares a signing payload.
992
+ * 2. User signs via personal_sign for legacy Safe or eth_signTypedData_v4
993
+ * for deposit wallet.
993
994
  * 3. Backend submits the signed request to the Polymarket Relayer.
994
995
  */
995
996
  declare function RedeemFormWidget({ event, market, position, onSuccess, onCancel, }: RedeemFormWidgetProps): react_jsx_runtime.JSX.Element;
package/dist/index.js CHANGED
@@ -71,7 +71,7 @@
71
71
  .evt-stat-label{font-size:11px;line-height:16px;min-height:16px;white-space:nowrap}
72
72
  @media(min-width:640px){.evt-stat-label{font-size:12px;line-height:18px;min-height:18px}}
73
73
  `}),jsxRuntime.jsxs("div",{className:"evt-hero-outer",children:[jsxRuntime.jsxs("div",{className:"evt-hero-left",style:{minWidth:0,flex:1,animation:"evtHeroTitleEnter 0.5s cubic-bezier(0.34,1.56,0.64,1) both"},children:[jsxRuntime.jsx("div",{className:"evt-hero-live",style:{marginBottom:16},children:jsxRuntime.jsxs("div",{className:"inline-flex items-center",style:{gap:8,borderRadius:9999,border:"1px solid rgba(63,63,70,0.5)",background:"rgba(39,39,42,0.6)",padding:"6px 12px",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},children:[jsxRuntime.jsxs("span",{style:{position:"relative",display:"flex",width:8,height:8},children:[jsxRuntime.jsx("span",{style:{position:"absolute",display:"inline-flex",width:"100%",height:"100%",borderRadius:9999,background:"#00d492",opacity:.75,animation:"evt-live-ping 1.2s cubic-bezier(0,0,0.2,1) infinite"}}),jsxRuntime.jsx("span",{style:{position:"relative",display:"inline-flex",width:8,height:8,borderRadius:9999,background:"#00bc7d",animation:"evt-live-breathe 2.4s ease-in-out infinite"}})]}),jsxRuntime.jsx("span",{style:{fontSize:12,fontWeight:500,color:"#d4d4d8",letterSpacing:"0.025em"},children:t("predict.events.liveBadge")})]})}),jsxRuntime.jsxs("h1",{className:"evt-hero-title",style:{fontFamily:"var(--font-dm-sans, 'DM Sans', sans-serif)",fontWeight:700,letterSpacing:"-1.2px",lineHeight:1.2,color:"#fff",margin:"0 0 14px"},children:[jsxRuntime.jsxs("span",{style:{color:"#fff"},children:[t("predict.events.titlePrefix")," "]}),jsxRuntime.jsx("span",{style:{backgroundImage:"linear-gradient(to right, #c7ff2e, #a0e515, #17c964)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"},children:t("predict.events.titleHighlight")})]}),jsxRuntime.jsx("p",{className:"evt-hero-subtitle evt-hero-subtitle-text",style:{lineHeight:1.6,color:"#71717a",maxWidth:460},children:String(t("predict.events.heroSubtitle")).split(`
74
- `).map((r,o)=>jsxRuntime.jsxs("span",{children:[o>0&&jsxRuntime.jsx("br",{className:"hidden sm:block"}),r,o===0?" ":""]},o))})]}),jsxRuntime.jsx("div",{className:"evt-stat-grid",style:e?{animation:"evtStatsEnter 0.5s cubic-bezier(0.34,1.56,0.64,1) both",animationDelay:"0.1s"}:{},children:ku.map((r,o)=>jsxRuntime.jsxs("div",{style:{padding:"14px 16px",background:e?`linear-gradient(to bottom, ${r.gradientFrom}, ${r.gradientTo})`:"rgba(255,255,255,0.02)",borderRight:o%2===0?"1px solid rgba(39,39,42,0.4)":"none",borderBottom:o<2?"1px solid rgba(39,39,42,0.4)":"none",...e?{animation:"evtStatCardEnter 0.45s cubic-bezier(0.34,1.56,0.64,1) both",animationDelay:`${150+o*60}ms`}:{}},children:[jsxRuntime.jsx("div",{className:"evt-stat-val",style:{fontWeight:700,fontVariantNumeric:"tabular-nums",color:e?r.valueColor:"transparent",display:"flex",alignItems:"center"},children:e?r.format(e[r.key]):jsxRuntime.jsx("div",{style:{height:16,width:56,borderRadius:4,background:"rgba(255,255,255,0.06)",animation:"evtStatCardEnter 0.6s ease-out both",animationDelay:`${o*80}ms`}})}),jsxRuntime.jsx("div",{className:"evt-stat-label",style:{fontWeight:500,color:e?"#71717a":"transparent",marginTop:2,display:"flex",alignItems:"center"},children:e?t(r.labelKey):jsxRuntime.jsx("div",{style:{height:10,width:64,borderRadius:4,background:"rgba(255,255,255,0.04)",animation:"evtStatCardEnter 0.6s ease-out both",animationDelay:`${50+o*80}ms`}})})]},r.key))})]})]})}function Ms({event:e,market:t,position:r,onSuccess:o,onCancel:n}){let{t:i}=i18n.useTranslation(),{mutateAsync:s}=reactPredict.useRedeemPosition(),{evmAddress:a}=hr(),l=walletConnector.useWallets(),[u,d]=react.useState("idle"),[p,m]=react.useState(null),c=t.provider_meta?.["polymarket.conditionId"],f=t.provider_meta?.["polymarket.negRisk"]??false,g=a??"",v=react.useMemo(()=>l.find(O=>O.chainNamespace===types.ChainNamespace.EVM&&O.isConnected),[l]),x=Cs(r.side,t.outcomes),w=t.outcomes?.[x]?.label??r.side,S=t.result!=null?Cs(t.result,t.outcomes):-1,y=(S>=0?t.outcomes?.[S]:void 0)?.label??t.result??"",k=t.result!=null?x===S:true,P=react.useMemo(()=>k?r.size:0,[k,r.size]),I=react.useCallback(async()=>{if(!(!c||!g||!v)){d("pending"),m(null);try{let O=await v.getEip1193Provider();if(!O)throw new Error("EIP-1193 provider unavailable");await s({wallet_address:g,condition_id:c,neg_risk:f,signMessage:async G=>await O.request({method:"personal_sign",params:[G,g]})}),d("success"),o?.();}catch(O){d("error"),m(O instanceof Error?O.message:i("predict.redeem.error"));}}},[c,g,f,v,s,o,i]),D=walletConnector.useAuthCallback(I),W=u==="idle"&&!!c&&!!g&&!!v&&r.redeemable;return jsxRuntime.jsxs("div",{className:"flex flex-col gap-4 p-4",children:[jsxRuntime.jsx("div",{className:"text-base font-medium text-white",children:e?.title??t.question}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-2 rounded-xl bg-[rgba(39,39,42,0.4)] p-3",children:[jsxRuntime.jsx(Hn,{label:i("predict.positions.side"),value:w,valueClassName:k?"text-green-400":"text-red-400"}),t.result!=null&&jsxRuntime.jsx(Hn,{label:i("predict.redeem.result"),value:y,valueClassName:"text-green-400"}),jsxRuntime.jsx(Hn,{label:i("predict.positions.size"),value:r.size.toFixed(2)}),jsxRuntime.jsx(Hn,{label:i("predict.redeem.expectedPayout"),value:`$${P.toFixed(2)}`,valueClassName:P>0?"text-green-400":"text-zinc-400"})]}),!k&&P===0&&jsxRuntime.jsx("p",{className:"text-sm text-zinc-500",children:i("predict.redeem.noWinnings")}),u==="error"&&p&&jsxRuntime.jsx("p",{className:"text-sm text-red-400",children:p}),u==="success"&&jsxRuntime.jsx("p",{className:"text-sm text-green-400",children:i("predict.redeem.success")}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-2",children:[u!=="success"&&jsxRuntime.jsx(ui.Button,{color:"success",className:"w-full h-12 rounded-xl text-sm font-semibold",isDisabled:!W,isLoading:u==="pending",onPress:D,spinner:jsxRuntime.jsx(ui.Spinner,{size:"sm",color:"current"}),children:i("predict.redeem.confirm")}),n&&u!=="success"&&jsxRuntime.jsx("button",{type:"button",onClick:n,className:"w-full h-12 rounded-xl text-sm font-medium text-zinc-400 hover:text-white hover:bg-[rgba(39,39,42,0.5)] transition-colors cursor-pointer focus-visible:z-10 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",children:i("common.cancel")}),u==="success"&&n&&jsxRuntime.jsx(ui.Button,{className:"w-full h-12 rounded-xl text-sm font-medium",onPress:n,children:i("common.ok")})]})]})}function Hn({label:e,value:t,valueClassName:r="text-white"}){return jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm text-zinc-400",children:e}),jsxRuntime.jsx("span",{className:`text-sm font-medium ${r}`,children:t})]})}function Cs(e,t){let r=e.toLowerCase();if(r==="yes")return 0;if(r==="no"||!t)return 1;let o=t.findIndex(n=>n.label.toLowerCase()===r);return o>=0?o:1}var Au="predict-redeem";function Ts({id:e=Au}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Du,{...t})})}function Du({params:e,isOpen:t,onOpenChange:r}){let{t:o}=i18n.useTranslation(),{isMobile:n}=ui.useScreen();return e?jsxRuntime.jsx(ui.StyledModal,{isOpen:t,onOpenChange:r,size:n?"lg":"md",backdrop:"opaque",hideCloseButton:true,classNames:{base:"!bg-[#18181b] !rounded-[14px] !border !border-[rgba(39,39,42,1)] !shadow-[0_25px_50px_-12px_rgba(0,0,0,0.5)]",body:"!p-0"},children:jsxRuntime.jsx(ui.ModalContent,{children:jsxRuntime.jsxs("div",{className:n?"":"p-2",children:[jsxRuntime.jsxs("div",{className:"px-4 pt-4 pb-1",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold text-white",children:o("predict.redeem.title")}),jsxRuntime.jsx("p",{className:"text-sm text-zinc-400 mt-1",children:o("predict.redeem.description")})]}),jsxRuntime.jsx(Ms,{event:e.event,market:e.market,position:e.position,onSuccess:()=>{setTimeout(()=>r(false),1500);},onCancel:()=>r(false)})]})})}):null}function _s({market:e,initialOutcome:t="yes",slippageBps:r=100,onSuccess:o}){let{t:n}=i18n.useTranslation(),i=react.useRef(o);i.current=o;let{status:s}=walletConnector.useAuth(),a=walletConnector.useWallets(),l=reactPredict.usePredictClient(),u=react.useContext(reactPredict.PolymarketContext),d=reactQuery.useQueryClient(),p=e.source,m=p==="polymarket",c=a.find(C=>C.chainNamespace===types.ChainNamespace.SOLANA&&C.isConnected),f=a.find(C=>C.chainNamespace===types.ChainNamespace.EVM&&C.isConnected&&"switchChain"in C),g=s==="authenticated",v=c?.address,x=f?.address,[b,w]=react.useState(t),[S,h]=react.useState("market"),[y,k]=react.useState(NaN),[P,I]=react.useState(NaN),[D,W]=react.useState(false),[O,G]=react.useState(false),[j,Q]=react.useState(null),[re,te]=react.useState(null),[N,M]=react.useState(false),[U,X]=react.useState(false),[se,R]=react.useState("1h"),[ke,H]=react.useState(30),[Se,bt]=react.useState("minutes"),Te=react.useMemo(()=>{if(p!=="polymarket")return;let C=e.provider_meta?.["polymarket.clobTokenIds"];return C?(typeof C=="string"?JSON.parse(C):C)[b==="yes"?0:1]:void 0},[p,e.provider_meta,b]),{data:Fe,isLoading:nt}=reactPredict.useTickSize(Te),ve=Fe?.minimum_tick_size?String(Fe.minimum_tick_size):"0.01",{data:Ye,isLoading:Le}=reactPredict.useFeeRate(Te),Qe=String(Ye?.base_fee??0),{data:Pt}=reactPredict.useRebateConfig(),Nt=Pt?.builder_enabled&&Pt.builder_code?Pt.builder_code:void 0,Ke=false,ot=null,Be=false,Ve,je,He;try{let C=hr();Ke=C.kalshiKycVerified,ot=C.kalshiKycUrl,Be=C.polymarketSetupVerified,Ve=C.polymarketSafeAddress,je=C.polymarketWalletKind,He=C.polymarketWalletAddress;}catch{}let Re=p==="kalshi"&&!Ke,A=p==="polymarket"&&!Be,de=react.useCallback(async()=>{if(!f||!u)return null;let C=await f.getEip1193Provider();if(!C)return null;let Ie=je==="deposit"&&!!He,Ze=!Ie&&!!Ve,et={address:f.address,signatureType:Ie?3:Ze?2:0,signTypedData:async(it,Mt,st,Me)=>{let We=[];"name"in it&&We.push({name:"name",type:"string"}),"version"in it&&We.push({name:"version",type:"string"}),"chainId"in it&&We.push({name:"chainId",type:"uint256"}),"verifyingContract"in it&&We.push({name:"verifyingContract",type:"address"}),"salt"in it&&We.push({name:"salt",type:"bytes32"});let Vt={EIP712Domain:We,...Mt};return await C.request({method:"eth_signTypedData_v4",params:[f.address,JSON.stringify({domain:it,types:Vt,primaryType:st,message:Me})]})}};return u.credentials??await u.authenticate(et)},[Ve,je,He,f,u]),{data:ze}=reactPredict.useRealtimeOrderbook({slug:e.slug,source:p,outcome:b},{enabled:e.status==="open"}),we=react.useMemo(()=>{let C=reactPredict.pickBestBid(ze,b);if(C!=null&&C>0)return C;let Ie=b==="yes"?0:1,Ze=e.outcomes[Ie];return Ze?.best_bid??Ze?.price??.5},[ze,e.outcomes,b]),Ht=p==="kalshi"?v??"":x??"",{data:rt,isLoading:Ur}=reactPredict.usePositions({source:p,user:Ht},{enabled:!!Ht,refetchInterval:3e4}),F=react.useCallback(async()=>{let C=await de();return C?await reactPredict.buildPolymarketL2Headers(C.address,{apiKey:C.apiKey,secret:C.secret,passphrase:C.passphrase,method:"GET",requestPath:"/data/orders",body:""}):{}},[de]),{data:Pe,isLoading:zt}=reactPredict.useAvailableShares({source:p,user:Ht,market:e.slug,side:b},p==="polymarket"?{getHeaders:F}:void 0,{enabled:!!Ht&&!!e.slug,refetchOnMount:"always"}),Wt=Pe?.total_shares??0,Ut=Pe?.active_order_shares??0,$t=Pe?.available_shares??0,Xe=react.useMemo(()=>p==="polymarket"?reactPredict.getPolymarketSharesPrecision(ve):Pe?.precision??0,[p,ve,Pe?.precision]),co=zt||Ur,uo=e.provider_meta?.["dflow.yesMint"]??"",pn=e.provider_meta?.["dflow.noMint"]??"",Ct=utils$1.SOLANA_TOKENS.stablecoins.USDC.address,po=e.provider_meta?.["dflow.collateralMint"]||"",Kt=b==="yes"?uo:pn,Rt=react.useMemo(()=>rt?rt.positions.find(C=>C.side?.toLowerCase()===b&&C.market?.slug===e.slug)??null:null,[rt,e.slug,b])?.market?.provider_meta,mn=Rt?.["dflow.outcomeMint"]||Kt,tr=Rt?.["dflow.collateralMint"]||po,cr=mn,dr=tr||Ct,Er=react.useMemo(()=>isNaN(y)||y<=0?"0":String(Math.round(y*1e6)),[y]),fo=p==="kalshi"&&!!cr&&!!dr&&!!v&&Er!=="0",{refetch:ur}=reactPredict.useDFlowQuote({inputMint:cr,outputMint:dr,amount:Er,userPublicKey:v??"",slippageBps:100},{enabled:fo}),pr=react.useMemo(()=>isNaN(y)||y<=0?0:y,[y]),yt=react.useMemo(()=>reactPredict.walkOrderbook({orderbook:ze,outcome:b,side:"sell",sharesNeeded:pr,slippageBps:r}),[ze,b,pr,r]),fn=react.useMemo(()=>yt.status==="ok"&&yt.worstPrice!=null&&yt.worstPrice>0?yt.worstPrice:we,[yt,we]),gn=react.useMemo(()=>{if(isNaN(y)||y<=0)return 0;let C=S==="limit"&&m&&!isNaN(P)?P:we;return y*C},[y,S,m,P,we]),mr=react.useCallback(C=>{w(C),I(NaN),k(NaN),G(false);},[]);react.useEffect(()=>{mr(t);},[t,mr]);let hn=react.useCallback(C=>{h(C);},[]);react.useEffect(()=>{S==="limit"&&I(Math.round(we*1e4)/1e4);},[S,b]);let vn=react.useCallback(C=>{if(G(false),isNaN(C)){k(NaN);return}k(he(Math.max(0,C),Xe));},[Xe]),go=react.useCallback(()=>{G(true),k(he($t,Xe));},[$t,Xe]),L=react.useCallback(C=>{if(isNaN(C)){I(NaN);return}I(Math.round(C*1e4)/1e4);},[]),_e=react.useCallback(()=>{k(NaN),I(NaN),h("market"),G(false),X(false),R("1h"),H(30),bt("minutes");},[]),Je=react.useMemo(()=>{let C=[];return isNaN(y)||y<=0?C.push(n("predict.trade.minQuantity",{amount:Cn})):y<Cn&&C.push(n("predict.trade.minQuantity",{amount:Cn})),e.status!=="open"&&C.push(n("predict.trade.marketNotActive")),!isNaN(y)&&y>0&&!O&&y>$t&&C.push(n("predict.trade.insufficientSharesDetail",{total:he(Wt,Xe).toFixed(Xe),active:he(Ut,Xe).toFixed(Xe),available:he($t,Xe).toFixed(Xe)})),S==="limit"&&m&&(isNaN(P)||P<.01||P>.99)&&C.push(n("predict.trade.limitPriceRange")),S==="limit"&&m&&U&&se==="custom"&&(isNaN(ke)||ke<=0)&&C.push(n("predict.trade.expiration.invalidDate")),p==="polymarket"&&S==="market"&&!isNaN(y)&&y>0&&(yt.status==="insufficient_liquidity"?C.push(n("predict.trade.insufficientLiquidity",{available:he(yt.totalAvailable,2)})):yt.status==="exceeds_slippage"&&C.push(n("predict.trade.priceImpactTooHigh",{impact:(yt.priceImpactBps/100).toFixed(2),slippage:(r/100).toFixed(2)}))),{isValid:C.length===0,errors:C}},[y,e.status,$t,Wt,Ut,O,S,m,P,U,se,ke,Xe,p,yt,r,n]),{mutateAsync:kt}=reactPredict.useDFlowSubmit(),{data:fr}=reactPredict.useOrder({id:j??"",source:p},{enabled:!!j}),rr=react.useCallback(async()=>{if(!re||!v||!c)return;let{cashAmount:C,collateral:Ie}=re;te(null);try{let et=(await l.createDFlowQuote({inputMint:Ie,outputMint:Ct,amount:C,userPublicKey:v,slippageBps:100}))?.transaction;if(!et)return;let it=Uint8Array.from(atob(et),st=>st.charCodeAt(0)),Mt=await c.signTransaction(it);await kt({signedTransaction:btoa(String.fromCharCode(...Mt)),orderContext:{user_public_key:v,input_mint:Ie,output_mint:Ct,amount:C,price:"1",side:"SELL",outcome:"",market_slug:"",slippage_bps:100}});}catch{}},[re,v,c,l,kt,Ct]),dt=react.useCallback(()=>{d.invalidateQueries({queryKey:["predict","positions"]}),d.invalidateQueries({queryKey:["predict","orders"]}),d.invalidateQueries({queryKey:["predict","available-shares"]});},[d]);react.useEffect(()=>{if(!fr||!j)return;let{status:C}=fr;C==="closed"?(Q(null),re?rr().finally(()=>{W(false),ui.toast.success(n("predict.trade.submitSuccess")),vr(),dt(),_e(),i.current?.();}):(W(false),ui.toast.success(n("predict.trade.submitSuccess")),vr(),dt(),_e(),i.current?.())):(C==="failed"||C==="expired")&&(W(false),Q(null),te(null),ui.toast.error(n("predict.trade.submitError")));},[fr,j,re,rr,dt,_e,n]);let St=react.useCallback(async()=>{if(!v||!c)return;if(!cr||!dr){ui.toast.error("Missing token mint addresses"),W(false);return}if(!Ke){M(true),W(false);return}let Ze=(await ur()).data,et=Ze?.transaction;if(!et){ui.toast.error(n("predict.trade.submitError")),W(false);return}if(tr&&tr!==Ct){let Me=String(Ze?.outAmount??"");Me&&Me!=="0"&&te({cashAmount:Me,collateral:tr});}let it=Uint8Array.from(atob(et),Me=>Me.charCodeAt(0)),Mt=await c.signTransaction(it),st=await kt({signedTransaction:btoa(String.fromCharCode(...Mt)),orderContext:{user_public_key:v,input_mint:cr,output_mint:dr,amount:Er,price:String(we),side:"SELL",outcome:b==="yes"?"YES":"NO",market_slug:e.slug,slippage_bps:100}});Q(st.signature);},[v,c,ur,kt,cr,dr,Er,we,b,e.slug,tr,Ct,n,Ke]),xn=react.useCallback(async()=>{if(!f||!u)return;let C=f.chain,Ie=C!==types.Chain.POLYGON;Ie&&await f.switchChain(types.Chain.POLYGON);try{let Ze=await f.getEip1193Provider();if(!Ze){ui.toast.error(n("predict.trade.submitError")),W(!1);return}let et=je==="deposit"&&!!He,it=!et&&!!Ve,Mt=et?He:Ve,st={address:f.address,signatureType:et?3:it?2:0,signTypedData:async(jt,yn,bo,yo)=>{let Lr=[];"name"in jt&&Lr.push({name:"name",type:"string"}),"version"in jt&&Lr.push({name:"version",type:"string"}),"chainId"in jt&&Lr.push({name:"chainId",type:"uint256"}),"verifyingContract"in jt&&Lr.push({name:"verifyingContract",type:"address"}),"salt"in jt&&Lr.push({name:"salt",type:"bytes32"});let Jl={EIP712Domain:Lr,...yn};return await Ze.request({method:"eth_signTypedData_v4",params:[f.address,JSON.stringify({domain:jt,types:Jl,primaryType:bo,message:yo})]})}},Me=await de();if(!Me){ui.toast.error(n("predict.trade.submitError")),W(!1);return}let We=b==="yes"?0:1,Vt="",nr=e.provider_meta?.["polymarket.clobTokenIds"];nr&&(Vt=(typeof nr=="string"?JSON.parse(nr):nr)[We]??"");let Tr=e.provider_meta?.["polymarket.negRisk"]??!1,or=S==="limit"&&!isNaN(P)?P:fn,ho=Tn(or,ve),vo={tokenId:Vt,price:ho,size:y,side:"SELL",orderType:S==="limit"?U?"GTD":"GTC":"FOK",tickSize:ve,negRisk:Tr,...Mt&&{funderAddress:Mt},...Nt&&{builderCode:Nt},...S==="limit"&&U&&{expiration:En(se,ke,Se)}},xo;if(et)xo=await reactPredict.buildSignedV2OrderPayload({signer:st,depositWalletAddress:Mt,input:vo,owner:Me.apiKey});else {let jt=reactPredict.buildCtfExchangeDomain(Tr),yn=reactPredict.buildOrderMessage({...vo,signerAddress:st.address,signatureType:st.signatureType,feeRateBps:Qe}),bo=await st.signTypedData(jt,reactPredict.CTF_ORDER_TYPES,"Order",yn),yo=reactPredict.buildSignedOrder(yn,bo,vo.orderType);xo=reactPredict.buildClobPayload(yo,Me.apiKey);}await l.executePolymarketOrder({payload:xo,l2_api_key:Me.apiKey,l2_secret:Me.secret,l2_passphrase:Me.passphrase,signer_address:Me.address,owner:Me.apiKey}),dt(),ui.toast.success(n("predict.trade.submitSuccess")),vr(),_e(),W(!1),i.current?.();}finally{Ie&&C&&f.switchChain(C).catch(()=>{});}},[f,u,de,b,e.provider_meta,S,P,fn,y,l,dt,U,se,ke,Se,_e,n,ve,Qe,e.slug,Ve,je,He,Nt]),bn=react.useCallback(async()=>{if(!(!Je.isValid||!g)){W(true),Q(null),M(false);try{p==="kalshi"?await St():await xn();}catch(C){let Ie=C instanceof Error?C.message:"",Ze=p==="polymarket"&&Ie?Ln(Ie,n,"sell"):Ie||void 0;ui.toast.error(Ze||n("predict.trade.submitError")),W(false);}}},[Je.isValid,g,p,St,xn,n]);return {outcome:b,orderType:S,quantity:y,limitPrice:P,shares:pr,estimatedReturn:gn,pricePerShare:we,isMarketDataLoading:p==="polymarket"&&(Le||nt),isSubmitting:D,authStatus:s,validation:Je,supportsLimitOrder:m,kycRequired:N,needsKyc:Re,needsSetup:A,kycUrl:ot,totalShares:Wt,activeOrderShares:Ut,availableShares:$t,isAvailableLoading:co,isSellAll:O,precision:Xe,expirationEnabled:U,expirationPreset:se,customDuration:ke,customDurationUnit:Se,setOutcome:mr,setOrderType:hn,setQuantity:vn,setLimitPrice:L,setSellAll:go,setExpirationEnabled:X,setExpirationPreset:R,setCustomDuration:H,setCustomDurationUnit:bt,submit:bn}}var xp=["5m","1h","12h","24h","eod","custom"],bp={"5m":"predict.trade.expiration.5m","1h":"predict.trade.expiration.1h","12h":"predict.trade.expiration.12h","24h":"predict.trade.expiration.24h",eod:"predict.trade.expiration.eod",custom:"predict.trade.expiration.custom"},yp=["minutes","hours","days"],kp={minutes:"predict.trade.expiration.minutes",hours:"predict.trade.expiration.hours",days:"predict.trade.expiration.days"},Sp={maximumFractionDigits:0};function Ws({event:e,market:t,variant:r="bordered",outcome:o,orderType:n,quantity:i,limitPrice:s,estimatedReturn:a,isMarketDataLoading:l,isSubmitting:u,authStatus:d,isValid:p,validationErrors:m,supportsLimitOrder:c,kycRequired:f,needsKyc:g,needsSetup:v,onSetupRequired:x,kycUrl:b,totalShares:w,activeOrderShares:S,availableShares:h,isAvailableLoading:y,precision:k,expirationEnabled:P,expirationPreset:I,customDuration:D,customDurationUnit:W,oddsFormatter:O,onOutcomeChange:G,onOrderTypeChange:j,onQuantityChange:Q,onLimitPriceChange:re,onSellAll:te,onExpirationEnabledChange:N,onExpirationPresetChange:M,onCustomDurationChange:U,onCustomDurationUnitChange:X,onSubmit:se}){let{t:R}=i18n.useTranslation(),[ke,H]=react.useState(false),Se=ui.useDisclosure(),[bt,Te]=react.useState(""),Fe=react.useRef(false);react.useEffect(()=>{Fe.current||Te(isNaN(i)?"":String(i));},[i]);let[nt,ve]=react.useState(""),Ye=react.useRef(false);react.useEffect(()=>{Ye.current||(isNaN(s)?ve(""):ve(String(parseFloat((s*100).toFixed(2)))));},[s]);let Le=react.useCallback(A=>{if(A!==""&&!/^\d*\.?\d{0,2}$/.test(A))return;if(ve(A),A===""||A==="."){re(NaN);return}let ze=parseFloat(A);isNaN(ze)||re(ze/100);},[re]),Qe=react.useCallback(A=>{let de=new RegExp(`^\\d*\\.?\\d{0,${k}}$`);if(A!==""&&!de.test(A))return;if(Te(A),H(false),A===""||A==="."){Q(NaN);return}let ze=parseFloat(A);isNaN(ze)||Q(ze);},[Q,k]);react.useEffect(()=>{f&&!Se.isOpen&&Se.onOpen();},[f]);let Pt=react.useMemo(()=>{let A=o==="yes"?t.yesBid:t.noBid;return A!=null?parseFloat((Number(A)*100).toFixed(2)):null},[o,t]),Nt=o==="yes"?t.yesBid:t.noBid,Ke=Nt!=null&&O?O(Number(Nt)):Pt!=null?`${Pt} \xA2`:null,ot=!isNaN(i)&&i>0,Be=d==="authenticated",Ve=d==="authenticating"||d==="deauthenticating",je=Be&&(g||v),He=react.useMemo(()=>{if(Ve)return R("predict.trade.checkingLogin");if(!Be)return R("predict.trade.loginToTrade");if(g)return R("predict.trade.kycRequired");if(v)return R("predict.trade.setupRequired");if(y)return R("predict.trade.loadingBalance");if(l)return R("predict.trade.loadingMarketData");if(u)return R("predict.trade.submitting");if(f)return R("predict.trade.kycRequired");if(!ot)return R("predict.trade.enterAmount");let A=R(o==="yes"?"predict.trade.yes":"predict.trade.no");return `${R("predict.trade.sell")} ${A}`},[Ve,Be,g,v,y,l,u,f,ot,o,R]),Re=()=>{if(!Be){H(false),se();return}if(g){Se.onOpen();return}if(v&&x){H(false),x();return}if(f){Se.onOpen();return}if(!p){H(true);return}H(false),se();};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex w-full flex-col gap-y-4 p-4",style:r==="bordered"?{borderRadius:14,border:"1px solid rgba(39,39,42,0.6)",background:"rgba(24,24,27,0.4)",transition:"border-color 0.2s"}:void 0,onMouseEnter:A=>{r==="bordered"&&(A.currentTarget.style.borderColor="rgba(63,63,70,0.8)");},onMouseLeave:A=>{r==="bordered"&&(A.currentTarget.style.borderColor="rgba(39,39,42,0.6)");},children:[e&&jsxRuntime.jsxs("div",{className:"flex items-center gap-x-3",children:[e.imageUrl&&jsxRuntime.jsx("img",{src:e.imageUrl,alt:e.title,className:"h-10 w-10 shrink-0 rounded-lg object-cover"}),jsxRuntime.jsxs("div",{className:"flex min-w-0 flex-col gap-y-0.5",children:[jsxRuntime.jsx("span",{className:"text-sm text-neutral-500 leading-tight line-clamp-1",children:e.title}),jsxRuntime.jsxs("span",{className:"text-base font-semibold leading-tight line-clamp-1",children:[jsxRuntime.jsxs("span",{className:"text-bearish",children:[R("predict.trade.sell")," ",R(o==="yes"?"predict.trade.yes":"predict.trade.no")]}),jsxRuntime.jsxs("span",{className:"text-foreground",children:[" \xB7 ",t.yesSubTitle]})]})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[c?jsxRuntime.jsxs(ui.Tabs,{variant:"underlined",selectedKey:n,onSelectionChange:A=>j(A),classNames:{tabList:"gap-x-4",tab:"px-0"},children:[jsxRuntime.jsx(ui.Tab,{title:R("predict.trade.market")},"market"),jsxRuntime.jsx(ui.Tab,{title:R("predict.trade.limit")},"limit")]}):jsxRuntime.jsx("span",{className:"text-sm font-medium text-foreground",children:R("predict.trade.market")}),n==="limit"&&c?jsxRuntime.jsx(ui.StyledInput,{"aria-label":"Limit price",placeholder:"50",size:"sm",radius:"none",inputMode:"decimal",value:nt,onChange:A=>Le(A.target.value),onFocus:()=>{Ye.current=true;},onBlur:()=>{Ye.current=false,isNaN(s)?ve(""):ve(String(parseFloat((s*100).toFixed(2))));},endContent:jsxRuntime.jsx("span",{className:"text-xl font-bold tabular-nums text-foreground",children:"\xA2"}),classNames:{base:"w-28",inputWrapper:"bg-content2 data-[hover=true]:bg-content2 group-data-[focus=true]:bg-content2 rounded-lg px-2 h-9 min-h-9",input:"text-xl font-bold tabular-nums text-right"}}):Ke!=null&&jsxRuntime.jsx("span",{className:"text-xl font-bold tabular-nums",children:Ke})]}),jsxRuntime.jsx("div",{className:"flex gap-x-2",children:["yes","no"].map(A=>{let de=A==="yes"?t.yesBid:t.noBid;return jsxRuntime.jsx("div",{className:"flex flex-1 flex-col gap-y-1",children:jsxRuntime.jsxs("button",{type:"button",onClick:()=>G(A),className:`w-full rounded-lg border py-2 text-sm font-medium transition-colors cursor-pointer ${o===A?"border-bearish bg-bearish/10 text-bearish":"border-default-400 text-foreground hover:border-default-500"}`,children:[jsxRuntime.jsx("span",{children:R(A==="yes"?"predict.trade.yes":"predict.trade.no")}),de!=null&&jsxRuntime.jsx("span",{className:"ml-1 opacity-70",children:O?O(Number(de)):`${parseFloat((Number(de)*100).toFixed(2))}\xA2`})]})},A)})}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-1.5",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between text-xs text-neutral-500",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium text-foreground",children:R("predict.trade.sellContracts")}),jsxRuntime.jsxs("div",{className:"flex items-center gap-x-2",children:[[25,50].map(A=>{let de=Math.pow(10,k);return jsxRuntime.jsxs("button",{type:"button",onClick:()=>{Q(Math.floor(h*A/100*de)/de);},className:"rounded px-1.5 py-0.5 bg-content2 hover:bg-content3 transition-colors cursor-pointer text-neutral-500 hover:text-foreground font-medium",children:[A,"%"]},A)}),jsxRuntime.jsx("button",{type:"button",onClick:te,className:"rounded px-1.5 py-0.5 bg-content2 hover:bg-content3 transition-colors cursor-pointer text-neutral-500 hover:text-foreground font-medium",children:R("common.all")})]})]}),jsxRuntime.jsx(ui.StyledInput,{"aria-label":"Sell quantity",fullWidth:true,placeholder:"0",radius:"lg",size:"lg",inputMode:"decimal",value:bt,onChange:A=>Qe(A.target.value),onFocus:()=>{Fe.current=true;},onBlur:()=>{Fe.current=false,Te(isNaN(i)?"":String(i));},classNames:{inputWrapper:"bg-content2 data-[hover=true]:bg-content2 group-data-[focus=true]:bg-content2 h-14 min-h-14",input:"text-lg"}}),ke&&m.length>0&&jsxRuntime.jsx("div",{className:"flex flex-col gap-y-0.5",children:m.map(A=>jsxRuntime.jsx("span",{className:"text-xs text-danger",children:A},A))})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-1.5 border-l-2 border-default-300 pl-3 text-sm text-neutral-500",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.totalShares")}),jsxRuntime.jsx("span",{className:"tabular-nums text-foreground",children:y?"\u2013":`${he(w,k).toFixed(k)}${R("predict.trade.sharesUnit")}`})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.activeOrders")}),jsxRuntime.jsx("span",{className:"tabular-nums text-warning",children:y?"\u2013":S>0?`-${he(S,k).toFixed(k)}${R("predict.trade.sharesUnit")}`:`0${R("predict.trade.sharesUnit")}`})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.availableShares")}),jsxRuntime.jsx("span",{className:"tabular-nums text-success font-medium",children:y?"\u2013":`${he(h,k).toFixed(k)}${R("predict.trade.sharesUnit")}`})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.estReturn")}),jsxRuntime.jsx("span",{className:"tabular-nums text-foreground",children:!isNaN(i)&&i>0?`$${a.toFixed(2)}`:"\u2013"})]})]}),n==="limit"&&c&&jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium text-primary",children:R("predict.trade.setExpiration")}),jsxRuntime.jsx(ui.StyledSwitch,{size:"sm",color:"primary",isSelected:P,onValueChange:N,"aria-label":R("predict.trade.setExpiration")})]}),P&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Select,{"aria-label":R("predict.trade.setExpiration"),selectedKeys:[I],onSelectionChange:A=>{let de=Array.from(A)[0];de&&M(de);},size:"sm",radius:"lg",classNames:{trigger:"bg-content2 data-[hover=true]:bg-content2 min-h-10",value:"text-sm"},children:xp.map(A=>jsxRuntime.jsx(ui.SelectItem,{children:R(bp[A])},A))}),I==="custom"&&jsxRuntime.jsxs("div",{className:"flex gap-x-2",children:[jsxRuntime.jsx(ui.StyledNumberInput,{"aria-label":"Duration amount",size:"sm",radius:"lg",value:isNaN(D)?void 0:D,onValueChange:U,minValue:1,step:1,formatOptions:Sp,classNames:{base:"flex-1",inputWrapper:"bg-content2 data-[hover=true]:bg-content2 group-data-[focus=true]:bg-content2 min-h-10",input:"text-sm"}}),jsxRuntime.jsx(ui.Select,{"aria-label":"Duration unit",selectedKeys:[W],onSelectionChange:A=>{let de=Array.from(A)[0];de&&X(de);},size:"sm",radius:"lg",classNames:{base:"w-32",trigger:"bg-content2 data-[hover=true]:bg-content2 min-h-10",value:"text-sm"},children:yp.map(A=>jsxRuntime.jsx(ui.SelectItem,{children:R(kp[A])},A))})]})]})]}),jsxRuntime.jsx(ui.Button,{color:"secondary",fullWidth:true,radius:"lg",size:"lg",isDisabled:Ve||Be&&!je&&(y||l||!ot||u),isLoading:Ve||Be&&!je&&(u||y||l),spinner:jsxRuntime.jsx(ui.Spinner,{size:"sm",color:"current"}),onPress:Re,children:He})]}),jsxRuntime.jsx(Rn,{isOpen:Se.isOpen,onClose:Se.onClose,kycUrl:b})]})}function Wn({event:e,market:t,variant:r,initialOutcome:o,chain:n,slippageBps:i,onOutcomeChange:s,onSetupRequired:a,onSuccess:l,oddsFormatter:u}){let{outcome:d,orderType:p,quantity:m,limitPrice:c,estimatedReturn:f,pricePerShare:g,isMarketDataLoading:v,isSubmitting:x,authStatus:b,validation:w,supportsLimitOrder:S,kycRequired:h,needsKyc:y,needsSetup:k,kycUrl:P,totalShares:I,activeOrderShares:D,availableShares:W,isAvailableLoading:O,precision:G,expirationEnabled:j,expirationPreset:Q,customDuration:re,customDurationUnit:te,setOutcome:N,setOrderType:M,setQuantity:U,setLimitPrice:X,setSellAll:se,setExpirationEnabled:R,setExpirationPreset:ke,setCustomDuration:H,setCustomDurationUnit:Se,submit:bt}=_s({market:t,initialOutcome:o,slippageBps:i,onSuccess:l}),Te=walletConnector.useAuthCallback(bt),Fe=react.useCallback(Ye=>{N(Ye),s?.(Ye);},[N,s]),nt=react.useMemo(()=>e?Sn(e):void 0,[e]),ve=react.useMemo(()=>wn(t,{yesBid:d==="yes"?g:void 0,noBid:d==="no"?g:void 0}),[t,d,g]);return jsxRuntime.jsx(Ws,{event:nt,market:ve,variant:r,outcome:d,orderType:p,quantity:m,limitPrice:c,estimatedReturn:f,isMarketDataLoading:v,isSubmitting:x,authStatus:b,isValid:w.isValid,validationErrors:w.errors,supportsLimitOrder:S,kycRequired:h,needsKyc:y,needsSetup:k,onSetupRequired:a,kycUrl:P,totalShares:I,activeOrderShares:D,availableShares:W,isAvailableLoading:O,precision:G,expirationEnabled:j,expirationPreset:Q,customDuration:re,customDurationUnit:te,oddsFormatter:u,onOutcomeChange:Fe,onOrderTypeChange:M,onQuantityChange:U,onLimitPriceChange:X,onSellAll:se,onExpirationEnabledChange:R,onExpirationPresetChange:ke,onCustomDurationChange:H,onCustomDurationUnitChange:Se,onSubmit:Te})}var Fo="predict-sell";function $s({id:e=Fo}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Rp,{...t})})}function Rp({params:e,isOpen:t,onOpenChange:r}){let{t:o}=i18n.useTranslation(),{isMobile:n}=ui.useScreen();return e?jsxRuntime.jsx(ui.StyledModal,{isOpen:t,onOpenChange:r,size:n?"lg":"md",backdrop:"opaque",hideCloseButton:true,classNames:{base:"!bg-[#18181b] !rounded-[14px] !border !border-[rgba(39,39,42,1)] !shadow-[0_25px_50px_-12px_rgba(0,0,0,0.5)]",body:"!p-0"},children:jsxRuntime.jsx(ui.ModalContent,{children:jsxRuntime.jsxs("div",{className:n?"":"p-2",children:[jsxRuntime.jsx(Wn,{event:e.event,market:e.market,initialOutcome:e.initialOutcome,chain:e.chain,slippageBps:e.slippageBps,onSetupRequired:e.onSetupRequired,onSuccess:()=>r(false),variant:"flat"}),jsxRuntime.jsx("div",{className:"px-4 pb-4",children:jsxRuntime.jsx("button",{type:"button",onClick:()=>r(false),className:"w-full h-12 rounded-xl text-sm font-medium text-zinc-400 hover:text-white hover:bg-[rgba(39,39,42,0.5)] transition-colors cursor-pointer focus-visible:z-10 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",children:o("common.cancel")})})]})})}):null}var zo=40,Kn=36,Jr=480,Wo=Jr-Kn;function js({event:e,walletAddress:t,onCancelOrder:r}){let{t:o}=i18n.useTranslation(),[n,i]=react.useState("positions"),s=react.useMemo(()=>e.markets?.map(p=>p.slug)??[],[e.markets]),{data:a}=reactPredict.usePositions({source:e.source,user:t??""}),l=react.useMemo(()=>!a?.positions||!t?0:s.length===0?a.positions.length:a.positions.filter(p=>p.market&&s.includes(p.market.slug)).length,[a?.positions,s,t]),d=[{key:"positions",label:l>0?`${o("predict.positions.title")} (${l})`:o("predict.positions.title")},{key:"orders",label:o("predict.openOrders.title")},{key:"trades",label:o("predict.tradeHistory.title")}];return jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-2 mt-6 px-1 lg:px-4",children:[jsxRuntime.jsx("div",{className:"flex items-center gap-x-1 border-b border-border",children:d.map(p=>jsxRuntime.jsx("button",{type:"button",onClick:()=>i(p.key),className:ui.cn("px-3 py-2 text-sm font-medium transition-colors cursor-pointer",n===p.key?"text-foreground border-b-2 border-primary":"text-neutral hover:text-foreground"),children:p.label},p.key))}),t?jsxRuntime.jsxs("div",{style:{height:Jr},children:[n==="positions"&&jsxRuntime.jsx(Bp,{source:e.source,walletAddress:t,marketSlugs:s}),n==="orders"&&jsxRuntime.jsx(zp,{source:e.source,walletAddress:t,marketSlugs:s,onCancelOrder:r}),n==="trades"&&jsxRuntime.jsx($p,{source:e.source,walletAddress:t})]}):jsxRuntime.jsx("div",{className:"flex items-center justify-center text-sm text-neutral",style:{height:Jr},children:o("predict.trade.connectWallet")})]})}function Bp({source:e,walletAddress:t,marketSlugs:r}){let{t:o}=i18n.useTranslation(),{data:n,isLoading:i}=reactPredict.usePositions({source:e,user:t}),s=react.useMemo(()=>n?.positions?r.length===0?n.positions:n.positions.filter(a=>a.market&&r.includes(a.market.slug)):[],[n?.positions,r]);return i?jsxRuntime.jsx($o,{}):s.length===0?jsxRuntime.jsx(Uo,{message:o("predict.positions.empty")}):jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center text-neutral text-xs lg:text-sm font-normal shrink-0",style:{height:Kn},children:[jsxRuntime.jsx("div",{className:"flex-[3] min-w-0 pr-2 whitespace-nowrap",children:o("predict.positions.event")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.totalSize")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.value")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.avgPrice")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.markPrice")}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right whitespace-nowrap",children:o("predict.positions.pnl")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.payoutIfRight")}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right whitespace-nowrap",children:o("predict.positions.estSettlement")}),jsxRuntime.jsx("div",{className:"w-16 shrink-0"})]}),jsxRuntime.jsx(reactWindow.List,{style:{height:Wo},rowComponent:Hp,rowCount:s.length,rowHeight:zo,rowProps:{positions:s,closeLabel:o("predict.positions.close")}})]})}function Hp({index:e,style:t,positions:r,closeLabel:o}){let n=r[e];if(!n)return null;let i=n.pnl??0,s=n.pnl_percent??0,a=n.avg_price??0,l=n.current_price??0,u=i>0?"text-success":i<0?"text-danger":"text-foreground",d=i>0?"+":"",p=n.market?.outcomes?.[0]?.label??n.market?.question??"\u2014",m=n.side,c=n.size,f=n.size*l,g=n.market?.end_at?jp(n.market.end_at):"\u2014";return jsxRuntime.jsxs("div",{style:t,className:"flex items-center border-b border-border/50 hover:bg-content2/40 transition-colors text-xs lg:text-sm",children:[jsxRuntime.jsx("div",{className:"flex-[3] min-w-0 pr-2",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground truncate font-medium",children:p}),jsxRuntime.jsx("span",{className:ui.cn("text-[10px] font-medium",m.toLowerCase()==="yes"?"text-primary":"text-secondary"),children:m})]})}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:n.size}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:["$",f.toFixed(2)]}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:Un(a)}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:Un(l)}),jsxRuntime.jsxs("div",{className:ui.cn("flex-[1.5] pr-2 text-right font-mono whitespace-nowrap",u),children:[d,"$",Math.abs(i).toFixed(2),jsxRuntime.jsxs("span",{className:"text-[10px] ml-0.5 opacity-70",children:["(",d,s.toFixed(1),"%)"]})]}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:["$",c.toFixed(2)]}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right text-neutral whitespace-nowrap",children:g}),jsxRuntime.jsx("div",{className:"w-16 shrink-0 text-right",children:jsxRuntime.jsx("button",{type:"button",className:"text-xs text-neutral hover:text-foreground cursor-pointer transition-colors rounded px-2 py-0.5 border border-border hover:border-foreground/40",children:o})})]})}function zp({source:e,walletAddress:t,marketSlugs:r,onCancelOrder:o}){let{t:n}=i18n.useTranslation(),{data:i,isLoading:s,fetchNextPage:a,hasNextPage:l}=reactPredict.useInfiniteOrders({source:e,wallet_address:t}),u=reactPredict.useCancelOrder(),d=react.useMemo(()=>{let x=i?.pages?.flatMap(S=>S.items)??[],b=new Set(["live","open","submitted","pending"]),w=x.filter(S=>b.has(S.status));return r.length>0&&(w=w.filter(S=>S.market_id&&r.includes(S.market_id))),w},[i?.pages,r]),p=react.useCallback(x=>{o?o(x.id):u.mutate({source:x.source,id:x.id});},[o,u]),m=d.length,c=m+(l?1:0),f=react.useCallback(x=>x<m,[m]),g=react.useCallback(async()=>{await a();},[a]),v=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:f,loadMoreRows:g,rowCount:c,threshold:5});return s?jsxRuntime.jsx($o,{}):d.length===0&&!l?jsxRuntime.jsx(Uo,{message:n("predict.openOrders.empty")}):jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center text-neutral text-xs lg:text-sm font-normal shrink-0",style:{height:Kn},children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:n("predict.openOrders.side")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2",children:n("predict.openOrders.outcome")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2",children:n("predict.openOrders.type")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:n("predict.openOrders.price")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:n("predict.openOrders.filled")}),jsxRuntime.jsx("div",{className:"w-20 shrink-0 pr-2",children:n("predict.openOrders.status")}),jsxRuntime.jsx("div",{className:"w-16 shrink-0"})]}),jsxRuntime.jsx(reactWindow.List,{style:{height:Wo},onRowsRendered:v,rowComponent:Wp,rowCount:c,rowHeight:zo,rowProps:{orders:d,itemCount:m,onCancel:p,isCancelling:u.isPending,cancelLabel:n("predict.openOrders.cancel")}})]})}function Wp({index:e,style:t,orders:r,itemCount:o,onCancel:n,isCancelling:i,cancelLabel:s}){if(e>=o)return jsxRuntime.jsx("div",{style:t,className:"flex justify-center items-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})});let a=r[e];if(!a)return null;let l=a.side==="BUY";return jsxRuntime.jsxs("div",{style:t,className:"flex items-center border-b border-border/50 text-xs lg:text-sm",children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",l?"bg-primary/10 text-primary":"bg-danger/10 text-danger"),children:a.side})}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-foreground capitalize",children:a.outcome??"\u2014"}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-neutral capitalize",children:a.order_type??"limit"}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:a.price?Un(parseFloat(a.price)):"\u2014"}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:[a.size_matched??"0","/",a.original_size??"\u2014"]}),jsxRuntime.jsx("div",{className:"w-20 shrink-0 pr-2",children:jsxRuntime.jsx(Up,{status:a.status})}),jsxRuntime.jsx("div",{className:"w-16 shrink-0 text-right",children:jsxRuntime.jsx("button",{type:"button",onClick:()=>n(a),disabled:i,className:"text-[10px] text-danger hover:text-danger/80 cursor-pointer disabled:opacity-50 transition-colors",children:i?jsxRuntime.jsx(ui.Spinner,{size:"sm"}):s})})]})}function Up({status:e}){return jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium capitalize",{live:"bg-success/10 text-success",open:"bg-success/10 text-success",submitted:"bg-warning/10 text-warning",pending:"bg-warning/10 text-warning",matched:"bg-primary/10 text-primary",cancelled:"bg-neutral/10 text-neutral",failed:"bg-danger/10 text-danger",expired:"bg-neutral/10 text-neutral"}[e]??"bg-neutral/10 text-neutral"),children:e})}function $p({source:e,walletAddress:t}){let{t:r}=i18n.useTranslation(),{data:o,isLoading:n,fetchNextPage:i,hasNextPage:s}=reactPredict.useInfiniteTrades({source:e,wallet:t,limit:50}),a=react.useMemo(()=>o?.pages?.flatMap(c=>c.items)??[],[o?.pages]),l=a.length,u=l+(s?1:0),d=react.useCallback(c=>c<l,[l]),p=react.useCallback(async()=>{await i();},[i]),m=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:d,loadMoreRows:p,rowCount:u,threshold:5});return n?jsxRuntime.jsx($o,{}):a.length===0&&!s?jsxRuntime.jsx(Uo,{message:r("predict.tradeHistory.empty")}):jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center text-neutral text-xs lg:text-sm font-normal shrink-0",style:{height:Kn},children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:r("predict.tradeHistory.side")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2",children:r("predict.tradeHistory.outcome")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:r("predict.tradeHistory.price")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:r("predict.tradeHistory.qty")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:r("predict.tradeHistory.total")}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right",children:r("predict.tradeHistory.time")})]}),jsxRuntime.jsx(reactWindow.List,{style:{height:Wo},onRowsRendered:m,rowComponent:Kp,rowCount:u,rowHeight:zo,rowProps:{trades:a,itemCount:l}})]})}function Kp({index:e,style:t,trades:r,itemCount:o}){if(e>=o)return jsxRuntime.jsx("div",{style:t,className:"flex justify-center items-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})});let n=r[e];if(!n)return null;let i=n.side?.toUpperCase()==="BUY",s=Vp(n.timestamp),a=n.price??0,l=n.usd_size??0;return jsxRuntime.jsxs("div",{style:t,className:"flex items-center border-b border-border/50 text-xs lg:text-sm",children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",i?"bg-primary/10 text-primary":"bg-danger/10 text-danger"),children:n.side})}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-foreground capitalize",children:n.outcome??"\u2014"}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:Un(a)}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:n.size}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:["$",l.toFixed(2)]}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right text-neutral whitespace-nowrap",children:s})]})}function Uo({message:e}){return jsxRuntime.jsx("div",{className:"flex items-center justify-center text-sm text-neutral",style:{height:Jr},children:e})}function $o(){return jsxRuntime.jsx("div",{className:"flex flex-col gap-y-2 py-3 animate-pulse",style:{height:Jr},children:Array.from({length:6}).map((e,t)=>jsxRuntime.jsx(ui.Skeleton,{className:"h-8 w-full rounded-md"},t))})}function Un(e){let t=e*100;return t<1&&t>0?"< 1\xA2":`${t.toFixed(1)}\xA2`}function Vp(e){let t=new Date(e*1e3),r=(t.getMonth()+1).toString().padStart(2,"0"),o=t.getDate().toString().padStart(2,"0"),n=t.getHours().toString().padStart(2,"0"),i=t.getMinutes().toString().padStart(2,"0");return `${r}/${o} ${n}:${i}`}function jp(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch{return "\u2014"}}var qs=`
74
+ `).map((r,o)=>jsxRuntime.jsxs("span",{children:[o>0&&jsxRuntime.jsx("br",{className:"hidden sm:block"}),r,o===0?" ":""]},o))})]}),jsxRuntime.jsx("div",{className:"evt-stat-grid",style:e?{animation:"evtStatsEnter 0.5s cubic-bezier(0.34,1.56,0.64,1) both",animationDelay:"0.1s"}:{},children:ku.map((r,o)=>jsxRuntime.jsxs("div",{style:{padding:"14px 16px",background:e?`linear-gradient(to bottom, ${r.gradientFrom}, ${r.gradientTo})`:"rgba(255,255,255,0.02)",borderRight:o%2===0?"1px solid rgba(39,39,42,0.4)":"none",borderBottom:o<2?"1px solid rgba(39,39,42,0.4)":"none",...e?{animation:"evtStatCardEnter 0.45s cubic-bezier(0.34,1.56,0.64,1) both",animationDelay:`${150+o*60}ms`}:{}},children:[jsxRuntime.jsx("div",{className:"evt-stat-val",style:{fontWeight:700,fontVariantNumeric:"tabular-nums",color:e?r.valueColor:"transparent",display:"flex",alignItems:"center"},children:e?r.format(e[r.key]):jsxRuntime.jsx("div",{style:{height:16,width:56,borderRadius:4,background:"rgba(255,255,255,0.06)",animation:"evtStatCardEnter 0.6s ease-out both",animationDelay:`${o*80}ms`}})}),jsxRuntime.jsx("div",{className:"evt-stat-label",style:{fontWeight:500,color:e?"#71717a":"transparent",marginTop:2,display:"flex",alignItems:"center"},children:e?t(r.labelKey):jsxRuntime.jsx("div",{style:{height:10,width:64,borderRadius:4,background:"rgba(255,255,255,0.04)",animation:"evtStatCardEnter 0.6s ease-out both",animationDelay:`${50+o*80}ms`}})})]},r.key))})]})]})}function Ms({event:e,market:t,position:r,onSuccess:o,onCancel:n}){let{t:i}=i18n.useTranslation(),{mutateAsync:s}=reactPredict.useRedeemPosition(),{evmAddress:a}=hr(),l=walletConnector.useWallets(),[u,d]=react.useState("idle"),[p,m]=react.useState(null),c=t.provider_meta?.["polymarket.conditionId"],f=t.provider_meta?.["polymarket.negRisk"]??false,g=a??"",v=react.useMemo(()=>l.find(O=>O.chainNamespace===types.ChainNamespace.EVM&&O.isConnected),[l]),x=Cs(r.side,t.outcomes),w=t.outcomes?.[x]?.label??r.side,S=t.result!=null?Cs(t.result,t.outcomes):-1,y=(S>=0?t.outcomes?.[S]:void 0)?.label??t.result??"",k=t.result!=null?x===S:true,P=react.useMemo(()=>k?r.size:0,[k,r.size]),I=react.useCallback(async()=>{if(!(!c||!g||!v)){d("pending"),m(null);try{let O=await v.getEip1193Provider();if(!O)throw new Error("EIP-1193 provider unavailable");await s({wallet_address:g,condition_id:c,neg_risk:f,signMessage:async G=>await O.request({method:"personal_sign",params:[G,g]}),signTypedData:async G=>await O.request({method:"eth_signTypedData_v4",params:[g,JSON.stringify(G)]})}),d("success"),o?.();}catch(O){d("error"),m(O instanceof Error?O.message:i("predict.redeem.error"));}}},[c,g,f,v,s,o,i]),D=walletConnector.useAuthCallback(I),W=u==="idle"&&!!c&&!!g&&!!v&&r.redeemable;return jsxRuntime.jsxs("div",{className:"flex flex-col gap-4 p-4",children:[jsxRuntime.jsx("div",{className:"text-base font-medium text-white",children:e?.title??t.question}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-2 rounded-xl bg-[rgba(39,39,42,0.4)] p-3",children:[jsxRuntime.jsx(Hn,{label:i("predict.positions.side"),value:w,valueClassName:k?"text-green-400":"text-red-400"}),t.result!=null&&jsxRuntime.jsx(Hn,{label:i("predict.redeem.result"),value:y,valueClassName:"text-green-400"}),jsxRuntime.jsx(Hn,{label:i("predict.positions.size"),value:r.size.toFixed(2)}),jsxRuntime.jsx(Hn,{label:i("predict.redeem.expectedPayout"),value:`$${P.toFixed(2)}`,valueClassName:P>0?"text-green-400":"text-zinc-400"})]}),!k&&P===0&&jsxRuntime.jsx("p",{className:"text-sm text-zinc-500",children:i("predict.redeem.noWinnings")}),u==="error"&&p&&jsxRuntime.jsx("p",{className:"text-sm text-red-400",children:p}),u==="success"&&jsxRuntime.jsx("p",{className:"text-sm text-green-400",children:i("predict.redeem.success")}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-2",children:[u!=="success"&&jsxRuntime.jsx(ui.Button,{color:"success",className:"w-full h-12 rounded-xl text-sm font-semibold",isDisabled:!W,isLoading:u==="pending",onPress:D,spinner:jsxRuntime.jsx(ui.Spinner,{size:"sm",color:"current"}),children:i("predict.redeem.confirm")}),n&&u!=="success"&&jsxRuntime.jsx("button",{type:"button",onClick:n,className:"w-full h-12 rounded-xl text-sm font-medium text-zinc-400 hover:text-white hover:bg-[rgba(39,39,42,0.5)] transition-colors cursor-pointer focus-visible:z-10 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",children:i("common.cancel")}),u==="success"&&n&&jsxRuntime.jsx(ui.Button,{className:"w-full h-12 rounded-xl text-sm font-medium",onPress:n,children:i("common.ok")})]})]})}function Hn({label:e,value:t,valueClassName:r="text-white"}){return jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm text-zinc-400",children:e}),jsxRuntime.jsx("span",{className:`text-sm font-medium ${r}`,children:t})]})}function Cs(e,t){let r=e.toLowerCase();if(r==="yes")return 0;if(r==="no"||!t)return 1;let o=t.findIndex(n=>n.label.toLowerCase()===r);return o>=0?o:1}var Au="predict-redeem";function Ts({id:e=Au}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Du,{...t})})}function Du({params:e,isOpen:t,onOpenChange:r}){let{t:o}=i18n.useTranslation(),{isMobile:n}=ui.useScreen();return e?jsxRuntime.jsx(ui.StyledModal,{isOpen:t,onOpenChange:r,size:n?"lg":"md",backdrop:"opaque",hideCloseButton:true,classNames:{base:"!bg-[#18181b] !rounded-[14px] !border !border-[rgba(39,39,42,1)] !shadow-[0_25px_50px_-12px_rgba(0,0,0,0.5)]",body:"!p-0"},children:jsxRuntime.jsx(ui.ModalContent,{children:jsxRuntime.jsxs("div",{className:n?"":"p-2",children:[jsxRuntime.jsxs("div",{className:"px-4 pt-4 pb-1",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold text-white",children:o("predict.redeem.title")}),jsxRuntime.jsx("p",{className:"text-sm text-zinc-400 mt-1",children:o("predict.redeem.description")})]}),jsxRuntime.jsx(Ms,{event:e.event,market:e.market,position:e.position,onSuccess:()=>{setTimeout(()=>r(false),1500);},onCancel:()=>r(false)})]})})}):null}function _s({market:e,initialOutcome:t="yes",slippageBps:r=100,onSuccess:o}){let{t:n}=i18n.useTranslation(),i=react.useRef(o);i.current=o;let{status:s}=walletConnector.useAuth(),a=walletConnector.useWallets(),l=reactPredict.usePredictClient(),u=react.useContext(reactPredict.PolymarketContext),d=reactQuery.useQueryClient(),p=e.source,m=p==="polymarket",c=a.find(C=>C.chainNamespace===types.ChainNamespace.SOLANA&&C.isConnected),f=a.find(C=>C.chainNamespace===types.ChainNamespace.EVM&&C.isConnected&&"switchChain"in C),g=s==="authenticated",v=c?.address,x=f?.address,[b,w]=react.useState(t),[S,h]=react.useState("market"),[y,k]=react.useState(NaN),[P,I]=react.useState(NaN),[D,W]=react.useState(false),[O,G]=react.useState(false),[j,Q]=react.useState(null),[re,te]=react.useState(null),[N,M]=react.useState(false),[U,X]=react.useState(false),[se,R]=react.useState("1h"),[ke,H]=react.useState(30),[Se,bt]=react.useState("minutes"),Te=react.useMemo(()=>{if(p!=="polymarket")return;let C=e.provider_meta?.["polymarket.clobTokenIds"];return C?(typeof C=="string"?JSON.parse(C):C)[b==="yes"?0:1]:void 0},[p,e.provider_meta,b]),{data:Fe,isLoading:nt}=reactPredict.useTickSize(Te),ve=Fe?.minimum_tick_size?String(Fe.minimum_tick_size):"0.01",{data:Ye,isLoading:Le}=reactPredict.useFeeRate(Te),Qe=String(Ye?.base_fee??0),{data:Pt}=reactPredict.useRebateConfig(),Nt=Pt?.builder_enabled&&Pt.builder_code?Pt.builder_code:void 0,Ke=false,ot=null,Be=false,Ve,je,He;try{let C=hr();Ke=C.kalshiKycVerified,ot=C.kalshiKycUrl,Be=C.polymarketSetupVerified,Ve=C.polymarketSafeAddress,je=C.polymarketWalletKind,He=C.polymarketWalletAddress;}catch{}let Re=p==="kalshi"&&!Ke,A=p==="polymarket"&&!Be,de=react.useCallback(async()=>{if(!f||!u)return null;let C=await f.getEip1193Provider();if(!C)return null;let Ie=je==="deposit"&&!!He,Ze=!Ie&&!!Ve,et={address:f.address,signatureType:Ie?3:Ze?2:0,signTypedData:async(it,Mt,st,Me)=>{let We=[];"name"in it&&We.push({name:"name",type:"string"}),"version"in it&&We.push({name:"version",type:"string"}),"chainId"in it&&We.push({name:"chainId",type:"uint256"}),"verifyingContract"in it&&We.push({name:"verifyingContract",type:"address"}),"salt"in it&&We.push({name:"salt",type:"bytes32"});let Vt={EIP712Domain:We,...Mt};return await C.request({method:"eth_signTypedData_v4",params:[f.address,JSON.stringify({domain:it,types:Vt,primaryType:st,message:Me})]})}};return u.credentials??await u.authenticate(et)},[Ve,je,He,f,u]),{data:ze}=reactPredict.useRealtimeOrderbook({slug:e.slug,source:p,outcome:b},{enabled:e.status==="open"}),we=react.useMemo(()=>{let C=reactPredict.pickBestBid(ze,b);if(C!=null&&C>0)return C;let Ie=b==="yes"?0:1,Ze=e.outcomes[Ie];return Ze?.best_bid??Ze?.price??.5},[ze,e.outcomes,b]),Ht=p==="kalshi"?v??"":x??"",{data:rt,isLoading:Ur}=reactPredict.usePositions({source:p,user:Ht},{enabled:!!Ht,refetchInterval:3e4}),F=react.useCallback(async()=>{let C=await de();return C?await reactPredict.buildPolymarketL2Headers(C.address,{apiKey:C.apiKey,secret:C.secret,passphrase:C.passphrase,method:"GET",requestPath:"/data/orders",body:""}):{}},[de]),{data:Pe,isLoading:zt}=reactPredict.useAvailableShares({source:p,user:Ht,market:e.slug,side:b},p==="polymarket"?{getHeaders:F}:void 0,{enabled:!!Ht&&!!e.slug,refetchOnMount:"always"}),Wt=Pe?.total_shares??0,Ut=Pe?.active_order_shares??0,$t=Pe?.available_shares??0,Xe=react.useMemo(()=>p==="polymarket"?reactPredict.getPolymarketSharesPrecision(ve):Pe?.precision??0,[p,ve,Pe?.precision]),co=zt||Ur,uo=e.provider_meta?.["dflow.yesMint"]??"",pn=e.provider_meta?.["dflow.noMint"]??"",Ct=utils$1.SOLANA_TOKENS.stablecoins.USDC.address,po=e.provider_meta?.["dflow.collateralMint"]||"",Kt=b==="yes"?uo:pn,Rt=react.useMemo(()=>rt?rt.positions.find(C=>C.side?.toLowerCase()===b&&C.market?.slug===e.slug)??null:null,[rt,e.slug,b])?.market?.provider_meta,mn=Rt?.["dflow.outcomeMint"]||Kt,tr=Rt?.["dflow.collateralMint"]||po,cr=mn,dr=tr||Ct,Er=react.useMemo(()=>isNaN(y)||y<=0?"0":String(Math.round(y*1e6)),[y]),fo=p==="kalshi"&&!!cr&&!!dr&&!!v&&Er!=="0",{refetch:ur}=reactPredict.useDFlowQuote({inputMint:cr,outputMint:dr,amount:Er,userPublicKey:v??"",slippageBps:100},{enabled:fo}),pr=react.useMemo(()=>isNaN(y)||y<=0?0:y,[y]),yt=react.useMemo(()=>reactPredict.walkOrderbook({orderbook:ze,outcome:b,side:"sell",sharesNeeded:pr,slippageBps:r}),[ze,b,pr,r]),fn=react.useMemo(()=>yt.status==="ok"&&yt.worstPrice!=null&&yt.worstPrice>0?yt.worstPrice:we,[yt,we]),gn=react.useMemo(()=>{if(isNaN(y)||y<=0)return 0;let C=S==="limit"&&m&&!isNaN(P)?P:we;return y*C},[y,S,m,P,we]),mr=react.useCallback(C=>{w(C),I(NaN),k(NaN),G(false);},[]);react.useEffect(()=>{mr(t);},[t,mr]);let hn=react.useCallback(C=>{h(C);},[]);react.useEffect(()=>{S==="limit"&&I(Math.round(we*1e4)/1e4);},[S,b]);let vn=react.useCallback(C=>{if(G(false),isNaN(C)){k(NaN);return}k(he(Math.max(0,C),Xe));},[Xe]),go=react.useCallback(()=>{G(true),k(he($t,Xe));},[$t,Xe]),L=react.useCallback(C=>{if(isNaN(C)){I(NaN);return}I(Math.round(C*1e4)/1e4);},[]),_e=react.useCallback(()=>{k(NaN),I(NaN),h("market"),G(false),X(false),R("1h"),H(30),bt("minutes");},[]),Je=react.useMemo(()=>{let C=[];return isNaN(y)||y<=0?C.push(n("predict.trade.minQuantity",{amount:Cn})):y<Cn&&C.push(n("predict.trade.minQuantity",{amount:Cn})),e.status!=="open"&&C.push(n("predict.trade.marketNotActive")),!isNaN(y)&&y>0&&!O&&y>$t&&C.push(n("predict.trade.insufficientSharesDetail",{total:he(Wt,Xe).toFixed(Xe),active:he(Ut,Xe).toFixed(Xe),available:he($t,Xe).toFixed(Xe)})),S==="limit"&&m&&(isNaN(P)||P<.01||P>.99)&&C.push(n("predict.trade.limitPriceRange")),S==="limit"&&m&&U&&se==="custom"&&(isNaN(ke)||ke<=0)&&C.push(n("predict.trade.expiration.invalidDate")),p==="polymarket"&&S==="market"&&!isNaN(y)&&y>0&&(yt.status==="insufficient_liquidity"?C.push(n("predict.trade.insufficientLiquidity",{available:he(yt.totalAvailable,2)})):yt.status==="exceeds_slippage"&&C.push(n("predict.trade.priceImpactTooHigh",{impact:(yt.priceImpactBps/100).toFixed(2),slippage:(r/100).toFixed(2)}))),{isValid:C.length===0,errors:C}},[y,e.status,$t,Wt,Ut,O,S,m,P,U,se,ke,Xe,p,yt,r,n]),{mutateAsync:kt}=reactPredict.useDFlowSubmit(),{data:fr}=reactPredict.useOrder({id:j??"",source:p},{enabled:!!j}),rr=react.useCallback(async()=>{if(!re||!v||!c)return;let{cashAmount:C,collateral:Ie}=re;te(null);try{let et=(await l.createDFlowQuote({inputMint:Ie,outputMint:Ct,amount:C,userPublicKey:v,slippageBps:100}))?.transaction;if(!et)return;let it=Uint8Array.from(atob(et),st=>st.charCodeAt(0)),Mt=await c.signTransaction(it);await kt({signedTransaction:btoa(String.fromCharCode(...Mt)),orderContext:{user_public_key:v,input_mint:Ie,output_mint:Ct,amount:C,price:"1",side:"SELL",outcome:"",market_slug:"",slippage_bps:100}});}catch{}},[re,v,c,l,kt,Ct]),dt=react.useCallback(()=>{d.invalidateQueries({queryKey:["predict","positions"]}),d.invalidateQueries({queryKey:["predict","orders"]}),d.invalidateQueries({queryKey:["predict","available-shares"]});},[d]);react.useEffect(()=>{if(!fr||!j)return;let{status:C}=fr;C==="closed"?(Q(null),re?rr().finally(()=>{W(false),ui.toast.success(n("predict.trade.submitSuccess")),vr(),dt(),_e(),i.current?.();}):(W(false),ui.toast.success(n("predict.trade.submitSuccess")),vr(),dt(),_e(),i.current?.())):(C==="failed"||C==="expired")&&(W(false),Q(null),te(null),ui.toast.error(n("predict.trade.submitError")));},[fr,j,re,rr,dt,_e,n]);let St=react.useCallback(async()=>{if(!v||!c)return;if(!cr||!dr){ui.toast.error("Missing token mint addresses"),W(false);return}if(!Ke){M(true),W(false);return}let Ze=(await ur()).data,et=Ze?.transaction;if(!et){ui.toast.error(n("predict.trade.submitError")),W(false);return}if(tr&&tr!==Ct){let Me=String(Ze?.outAmount??"");Me&&Me!=="0"&&te({cashAmount:Me,collateral:tr});}let it=Uint8Array.from(atob(et),Me=>Me.charCodeAt(0)),Mt=await c.signTransaction(it),st=await kt({signedTransaction:btoa(String.fromCharCode(...Mt)),orderContext:{user_public_key:v,input_mint:cr,output_mint:dr,amount:Er,price:String(we),side:"SELL",outcome:b==="yes"?"YES":"NO",market_slug:e.slug,slippage_bps:100}});Q(st.signature);},[v,c,ur,kt,cr,dr,Er,we,b,e.slug,tr,Ct,n,Ke]),xn=react.useCallback(async()=>{if(!f||!u)return;let C=f.chain,Ie=C!==types.Chain.POLYGON;Ie&&await f.switchChain(types.Chain.POLYGON);try{let Ze=await f.getEip1193Provider();if(!Ze){ui.toast.error(n("predict.trade.submitError")),W(!1);return}let et=je==="deposit"&&!!He,it=!et&&!!Ve,Mt=et?He:Ve,st={address:f.address,signatureType:et?3:it?2:0,signTypedData:async(jt,yn,bo,yo)=>{let Lr=[];"name"in jt&&Lr.push({name:"name",type:"string"}),"version"in jt&&Lr.push({name:"version",type:"string"}),"chainId"in jt&&Lr.push({name:"chainId",type:"uint256"}),"verifyingContract"in jt&&Lr.push({name:"verifyingContract",type:"address"}),"salt"in jt&&Lr.push({name:"salt",type:"bytes32"});let Jl={EIP712Domain:Lr,...yn};return await Ze.request({method:"eth_signTypedData_v4",params:[f.address,JSON.stringify({domain:jt,types:Jl,primaryType:bo,message:yo})]})}},Me=await de();if(!Me){ui.toast.error(n("predict.trade.submitError")),W(!1);return}let We=b==="yes"?0:1,Vt="",nr=e.provider_meta?.["polymarket.clobTokenIds"];nr&&(Vt=(typeof nr=="string"?JSON.parse(nr):nr)[We]??"");let Tr=e.provider_meta?.["polymarket.negRisk"]??!1,or=S==="limit"&&!isNaN(P)?P:fn,ho=Tn(or,ve),vo={tokenId:Vt,price:ho,size:y,side:"SELL",orderType:S==="limit"?U?"GTD":"GTC":"FOK",tickSize:ve,negRisk:Tr,...Mt&&{funderAddress:Mt},...Nt&&{builderCode:Nt},...S==="limit"&&U&&{expiration:En(se,ke,Se)}},xo;if(et)xo=await reactPredict.buildSignedV2OrderPayload({signer:st,depositWalletAddress:Mt,input:vo,owner:Me.apiKey});else {let jt=reactPredict.buildCtfExchangeDomain(Tr),yn=reactPredict.buildOrderMessage({...vo,signerAddress:st.address,signatureType:st.signatureType,feeRateBps:Qe}),bo=await st.signTypedData(jt,reactPredict.CTF_ORDER_TYPES,"Order",yn),yo=reactPredict.buildSignedOrder(yn,bo,vo.orderType);xo=reactPredict.buildClobPayload(yo,Me.apiKey);}await l.executePolymarketOrder({payload:xo,l2_api_key:Me.apiKey,l2_secret:Me.secret,l2_passphrase:Me.passphrase,signer_address:Me.address,owner:Me.apiKey}),dt(),ui.toast.success(n("predict.trade.submitSuccess")),vr(),_e(),W(!1),i.current?.();}finally{Ie&&C&&f.switchChain(C).catch(()=>{});}},[f,u,de,b,e.provider_meta,S,P,fn,y,l,dt,U,se,ke,Se,_e,n,ve,Qe,e.slug,Ve,je,He,Nt]),bn=react.useCallback(async()=>{if(!(!Je.isValid||!g)){W(true),Q(null),M(false);try{p==="kalshi"?await St():await xn();}catch(C){let Ie=C instanceof Error?C.message:"",Ze=p==="polymarket"&&Ie?Ln(Ie,n,"sell"):Ie||void 0;ui.toast.error(Ze||n("predict.trade.submitError")),W(false);}}},[Je.isValid,g,p,St,xn,n]);return {outcome:b,orderType:S,quantity:y,limitPrice:P,shares:pr,estimatedReturn:gn,pricePerShare:we,isMarketDataLoading:p==="polymarket"&&(Le||nt),isSubmitting:D,authStatus:s,validation:Je,supportsLimitOrder:m,kycRequired:N,needsKyc:Re,needsSetup:A,kycUrl:ot,totalShares:Wt,activeOrderShares:Ut,availableShares:$t,isAvailableLoading:co,isSellAll:O,precision:Xe,expirationEnabled:U,expirationPreset:se,customDuration:ke,customDurationUnit:Se,setOutcome:mr,setOrderType:hn,setQuantity:vn,setLimitPrice:L,setSellAll:go,setExpirationEnabled:X,setExpirationPreset:R,setCustomDuration:H,setCustomDurationUnit:bt,submit:bn}}var xp=["5m","1h","12h","24h","eod","custom"],bp={"5m":"predict.trade.expiration.5m","1h":"predict.trade.expiration.1h","12h":"predict.trade.expiration.12h","24h":"predict.trade.expiration.24h",eod:"predict.trade.expiration.eod",custom:"predict.trade.expiration.custom"},yp=["minutes","hours","days"],kp={minutes:"predict.trade.expiration.minutes",hours:"predict.trade.expiration.hours",days:"predict.trade.expiration.days"},Sp={maximumFractionDigits:0};function Ws({event:e,market:t,variant:r="bordered",outcome:o,orderType:n,quantity:i,limitPrice:s,estimatedReturn:a,isMarketDataLoading:l,isSubmitting:u,authStatus:d,isValid:p,validationErrors:m,supportsLimitOrder:c,kycRequired:f,needsKyc:g,needsSetup:v,onSetupRequired:x,kycUrl:b,totalShares:w,activeOrderShares:S,availableShares:h,isAvailableLoading:y,precision:k,expirationEnabled:P,expirationPreset:I,customDuration:D,customDurationUnit:W,oddsFormatter:O,onOutcomeChange:G,onOrderTypeChange:j,onQuantityChange:Q,onLimitPriceChange:re,onSellAll:te,onExpirationEnabledChange:N,onExpirationPresetChange:M,onCustomDurationChange:U,onCustomDurationUnitChange:X,onSubmit:se}){let{t:R}=i18n.useTranslation(),[ke,H]=react.useState(false),Se=ui.useDisclosure(),[bt,Te]=react.useState(""),Fe=react.useRef(false);react.useEffect(()=>{Fe.current||Te(isNaN(i)?"":String(i));},[i]);let[nt,ve]=react.useState(""),Ye=react.useRef(false);react.useEffect(()=>{Ye.current||(isNaN(s)?ve(""):ve(String(parseFloat((s*100).toFixed(2)))));},[s]);let Le=react.useCallback(A=>{if(A!==""&&!/^\d*\.?\d{0,2}$/.test(A))return;if(ve(A),A===""||A==="."){re(NaN);return}let ze=parseFloat(A);isNaN(ze)||re(ze/100);},[re]),Qe=react.useCallback(A=>{let de=new RegExp(`^\\d*\\.?\\d{0,${k}}$`);if(A!==""&&!de.test(A))return;if(Te(A),H(false),A===""||A==="."){Q(NaN);return}let ze=parseFloat(A);isNaN(ze)||Q(ze);},[Q,k]);react.useEffect(()=>{f&&!Se.isOpen&&Se.onOpen();},[f]);let Pt=react.useMemo(()=>{let A=o==="yes"?t.yesBid:t.noBid;return A!=null?parseFloat((Number(A)*100).toFixed(2)):null},[o,t]),Nt=o==="yes"?t.yesBid:t.noBid,Ke=Nt!=null&&O?O(Number(Nt)):Pt!=null?`${Pt} \xA2`:null,ot=!isNaN(i)&&i>0,Be=d==="authenticated",Ve=d==="authenticating"||d==="deauthenticating",je=Be&&(g||v),He=react.useMemo(()=>{if(Ve)return R("predict.trade.checkingLogin");if(!Be)return R("predict.trade.loginToTrade");if(g)return R("predict.trade.kycRequired");if(v)return R("predict.trade.setupRequired");if(y)return R("predict.trade.loadingBalance");if(l)return R("predict.trade.loadingMarketData");if(u)return R("predict.trade.submitting");if(f)return R("predict.trade.kycRequired");if(!ot)return R("predict.trade.enterAmount");let A=R(o==="yes"?"predict.trade.yes":"predict.trade.no");return `${R("predict.trade.sell")} ${A}`},[Ve,Be,g,v,y,l,u,f,ot,o,R]),Re=()=>{if(!Be){H(false),se();return}if(g){Se.onOpen();return}if(v&&x){H(false),x();return}if(f){Se.onOpen();return}if(!p){H(true);return}H(false),se();};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex w-full flex-col gap-y-4 p-4",style:r==="bordered"?{borderRadius:14,border:"1px solid rgba(39,39,42,0.6)",background:"rgba(24,24,27,0.4)",transition:"border-color 0.2s"}:void 0,onMouseEnter:A=>{r==="bordered"&&(A.currentTarget.style.borderColor="rgba(63,63,70,0.8)");},onMouseLeave:A=>{r==="bordered"&&(A.currentTarget.style.borderColor="rgba(39,39,42,0.6)");},children:[e&&jsxRuntime.jsxs("div",{className:"flex items-center gap-x-3",children:[e.imageUrl&&jsxRuntime.jsx("img",{src:e.imageUrl,alt:e.title,className:"h-10 w-10 shrink-0 rounded-lg object-cover"}),jsxRuntime.jsxs("div",{className:"flex min-w-0 flex-col gap-y-0.5",children:[jsxRuntime.jsx("span",{className:"text-sm text-neutral-500 leading-tight line-clamp-1",children:e.title}),jsxRuntime.jsxs("span",{className:"text-base font-semibold leading-tight line-clamp-1",children:[jsxRuntime.jsxs("span",{className:"text-bearish",children:[R("predict.trade.sell")," ",R(o==="yes"?"predict.trade.yes":"predict.trade.no")]}),jsxRuntime.jsxs("span",{className:"text-foreground",children:[" \xB7 ",t.yesSubTitle]})]})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[c?jsxRuntime.jsxs(ui.Tabs,{variant:"underlined",selectedKey:n,onSelectionChange:A=>j(A),classNames:{tabList:"gap-x-4",tab:"px-0"},children:[jsxRuntime.jsx(ui.Tab,{title:R("predict.trade.market")},"market"),jsxRuntime.jsx(ui.Tab,{title:R("predict.trade.limit")},"limit")]}):jsxRuntime.jsx("span",{className:"text-sm font-medium text-foreground",children:R("predict.trade.market")}),n==="limit"&&c?jsxRuntime.jsx(ui.StyledInput,{"aria-label":"Limit price",placeholder:"50",size:"sm",radius:"none",inputMode:"decimal",value:nt,onChange:A=>Le(A.target.value),onFocus:()=>{Ye.current=true;},onBlur:()=>{Ye.current=false,isNaN(s)?ve(""):ve(String(parseFloat((s*100).toFixed(2))));},endContent:jsxRuntime.jsx("span",{className:"text-xl font-bold tabular-nums text-foreground",children:"\xA2"}),classNames:{base:"w-28",inputWrapper:"bg-content2 data-[hover=true]:bg-content2 group-data-[focus=true]:bg-content2 rounded-lg px-2 h-9 min-h-9",input:"text-xl font-bold tabular-nums text-right"}}):Ke!=null&&jsxRuntime.jsx("span",{className:"text-xl font-bold tabular-nums",children:Ke})]}),jsxRuntime.jsx("div",{className:"flex gap-x-2",children:["yes","no"].map(A=>{let de=A==="yes"?t.yesBid:t.noBid;return jsxRuntime.jsx("div",{className:"flex flex-1 flex-col gap-y-1",children:jsxRuntime.jsxs("button",{type:"button",onClick:()=>G(A),className:`w-full rounded-lg border py-2 text-sm font-medium transition-colors cursor-pointer ${o===A?"border-bearish bg-bearish/10 text-bearish":"border-default-400 text-foreground hover:border-default-500"}`,children:[jsxRuntime.jsx("span",{children:R(A==="yes"?"predict.trade.yes":"predict.trade.no")}),de!=null&&jsxRuntime.jsx("span",{className:"ml-1 opacity-70",children:O?O(Number(de)):`${parseFloat((Number(de)*100).toFixed(2))}\xA2`})]})},A)})}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-1.5",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between text-xs text-neutral-500",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium text-foreground",children:R("predict.trade.sellContracts")}),jsxRuntime.jsxs("div",{className:"flex items-center gap-x-2",children:[[25,50].map(A=>{let de=Math.pow(10,k);return jsxRuntime.jsxs("button",{type:"button",onClick:()=>{Q(Math.floor(h*A/100*de)/de);},className:"rounded px-1.5 py-0.5 bg-content2 hover:bg-content3 transition-colors cursor-pointer text-neutral-500 hover:text-foreground font-medium",children:[A,"%"]},A)}),jsxRuntime.jsx("button",{type:"button",onClick:te,className:"rounded px-1.5 py-0.5 bg-content2 hover:bg-content3 transition-colors cursor-pointer text-neutral-500 hover:text-foreground font-medium",children:R("common.all")})]})]}),jsxRuntime.jsx(ui.StyledInput,{"aria-label":"Sell quantity",fullWidth:true,placeholder:"0",radius:"lg",size:"lg",inputMode:"decimal",value:bt,onChange:A=>Qe(A.target.value),onFocus:()=>{Fe.current=true;},onBlur:()=>{Fe.current=false,Te(isNaN(i)?"":String(i));},classNames:{inputWrapper:"bg-content2 data-[hover=true]:bg-content2 group-data-[focus=true]:bg-content2 h-14 min-h-14",input:"text-lg"}}),ke&&m.length>0&&jsxRuntime.jsx("div",{className:"flex flex-col gap-y-0.5",children:m.map(A=>jsxRuntime.jsx("span",{className:"text-xs text-danger",children:A},A))})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-1.5 border-l-2 border-default-300 pl-3 text-sm text-neutral-500",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.totalShares")}),jsxRuntime.jsx("span",{className:"tabular-nums text-foreground",children:y?"\u2013":`${he(w,k).toFixed(k)}${R("predict.trade.sharesUnit")}`})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.activeOrders")}),jsxRuntime.jsx("span",{className:"tabular-nums text-warning",children:y?"\u2013":S>0?`-${he(S,k).toFixed(k)}${R("predict.trade.sharesUnit")}`:`0${R("predict.trade.sharesUnit")}`})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.availableShares")}),jsxRuntime.jsx("span",{className:"tabular-nums text-success font-medium",children:y?"\u2013":`${he(h,k).toFixed(k)}${R("predict.trade.sharesUnit")}`})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{children:R("predict.trade.estReturn")}),jsxRuntime.jsx("span",{className:"tabular-nums text-foreground",children:!isNaN(i)&&i>0?`$${a.toFixed(2)}`:"\u2013"})]})]}),n==="limit"&&c&&jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium text-primary",children:R("predict.trade.setExpiration")}),jsxRuntime.jsx(ui.StyledSwitch,{size:"sm",color:"primary",isSelected:P,onValueChange:N,"aria-label":R("predict.trade.setExpiration")})]}),P&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Select,{"aria-label":R("predict.trade.setExpiration"),selectedKeys:[I],onSelectionChange:A=>{let de=Array.from(A)[0];de&&M(de);},size:"sm",radius:"lg",classNames:{trigger:"bg-content2 data-[hover=true]:bg-content2 min-h-10",value:"text-sm"},children:xp.map(A=>jsxRuntime.jsx(ui.SelectItem,{children:R(bp[A])},A))}),I==="custom"&&jsxRuntime.jsxs("div",{className:"flex gap-x-2",children:[jsxRuntime.jsx(ui.StyledNumberInput,{"aria-label":"Duration amount",size:"sm",radius:"lg",value:isNaN(D)?void 0:D,onValueChange:U,minValue:1,step:1,formatOptions:Sp,classNames:{base:"flex-1",inputWrapper:"bg-content2 data-[hover=true]:bg-content2 group-data-[focus=true]:bg-content2 min-h-10",input:"text-sm"}}),jsxRuntime.jsx(ui.Select,{"aria-label":"Duration unit",selectedKeys:[W],onSelectionChange:A=>{let de=Array.from(A)[0];de&&X(de);},size:"sm",radius:"lg",classNames:{base:"w-32",trigger:"bg-content2 data-[hover=true]:bg-content2 min-h-10",value:"text-sm"},children:yp.map(A=>jsxRuntime.jsx(ui.SelectItem,{children:R(kp[A])},A))})]})]})]}),jsxRuntime.jsx(ui.Button,{color:"secondary",fullWidth:true,radius:"lg",size:"lg",isDisabled:Ve||Be&&!je&&(y||l||!ot||u),isLoading:Ve||Be&&!je&&(u||y||l),spinner:jsxRuntime.jsx(ui.Spinner,{size:"sm",color:"current"}),onPress:Re,children:He})]}),jsxRuntime.jsx(Rn,{isOpen:Se.isOpen,onClose:Se.onClose,kycUrl:b})]})}function Wn({event:e,market:t,variant:r,initialOutcome:o,chain:n,slippageBps:i,onOutcomeChange:s,onSetupRequired:a,onSuccess:l,oddsFormatter:u}){let{outcome:d,orderType:p,quantity:m,limitPrice:c,estimatedReturn:f,pricePerShare:g,isMarketDataLoading:v,isSubmitting:x,authStatus:b,validation:w,supportsLimitOrder:S,kycRequired:h,needsKyc:y,needsSetup:k,kycUrl:P,totalShares:I,activeOrderShares:D,availableShares:W,isAvailableLoading:O,precision:G,expirationEnabled:j,expirationPreset:Q,customDuration:re,customDurationUnit:te,setOutcome:N,setOrderType:M,setQuantity:U,setLimitPrice:X,setSellAll:se,setExpirationEnabled:R,setExpirationPreset:ke,setCustomDuration:H,setCustomDurationUnit:Se,submit:bt}=_s({market:t,initialOutcome:o,slippageBps:i,onSuccess:l}),Te=walletConnector.useAuthCallback(bt),Fe=react.useCallback(Ye=>{N(Ye),s?.(Ye);},[N,s]),nt=react.useMemo(()=>e?Sn(e):void 0,[e]),ve=react.useMemo(()=>wn(t,{yesBid:d==="yes"?g:void 0,noBid:d==="no"?g:void 0}),[t,d,g]);return jsxRuntime.jsx(Ws,{event:nt,market:ve,variant:r,outcome:d,orderType:p,quantity:m,limitPrice:c,estimatedReturn:f,isMarketDataLoading:v,isSubmitting:x,authStatus:b,isValid:w.isValid,validationErrors:w.errors,supportsLimitOrder:S,kycRequired:h,needsKyc:y,needsSetup:k,onSetupRequired:a,kycUrl:P,totalShares:I,activeOrderShares:D,availableShares:W,isAvailableLoading:O,precision:G,expirationEnabled:j,expirationPreset:Q,customDuration:re,customDurationUnit:te,oddsFormatter:u,onOutcomeChange:Fe,onOrderTypeChange:M,onQuantityChange:U,onLimitPriceChange:X,onSellAll:se,onExpirationEnabledChange:R,onExpirationPresetChange:ke,onCustomDurationChange:H,onCustomDurationUnitChange:Se,onSubmit:Te})}var Fo="predict-sell";function $s({id:e=Fo}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Rp,{...t})})}function Rp({params:e,isOpen:t,onOpenChange:r}){let{t:o}=i18n.useTranslation(),{isMobile:n}=ui.useScreen();return e?jsxRuntime.jsx(ui.StyledModal,{isOpen:t,onOpenChange:r,size:n?"lg":"md",backdrop:"opaque",hideCloseButton:true,classNames:{base:"!bg-[#18181b] !rounded-[14px] !border !border-[rgba(39,39,42,1)] !shadow-[0_25px_50px_-12px_rgba(0,0,0,0.5)]",body:"!p-0"},children:jsxRuntime.jsx(ui.ModalContent,{children:jsxRuntime.jsxs("div",{className:n?"":"p-2",children:[jsxRuntime.jsx(Wn,{event:e.event,market:e.market,initialOutcome:e.initialOutcome,chain:e.chain,slippageBps:e.slippageBps,onSetupRequired:e.onSetupRequired,onSuccess:()=>r(false),variant:"flat"}),jsxRuntime.jsx("div",{className:"px-4 pb-4",children:jsxRuntime.jsx("button",{type:"button",onClick:()=>r(false),className:"w-full h-12 rounded-xl text-sm font-medium text-zinc-400 hover:text-white hover:bg-[rgba(39,39,42,0.5)] transition-colors cursor-pointer focus-visible:z-10 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",children:o("common.cancel")})})]})})}):null}var zo=40,Kn=36,Jr=480,Wo=Jr-Kn;function js({event:e,walletAddress:t,onCancelOrder:r}){let{t:o}=i18n.useTranslation(),[n,i]=react.useState("positions"),s=react.useMemo(()=>e.markets?.map(p=>p.slug)??[],[e.markets]),{data:a}=reactPredict.usePositions({source:e.source,user:t??""}),l=react.useMemo(()=>!a?.positions||!t?0:s.length===0?a.positions.length:a.positions.filter(p=>p.market&&s.includes(p.market.slug)).length,[a?.positions,s,t]),d=[{key:"positions",label:l>0?`${o("predict.positions.title")} (${l})`:o("predict.positions.title")},{key:"orders",label:o("predict.openOrders.title")},{key:"trades",label:o("predict.tradeHistory.title")}];return jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-2 mt-6 px-1 lg:px-4",children:[jsxRuntime.jsx("div",{className:"flex items-center gap-x-1 border-b border-border",children:d.map(p=>jsxRuntime.jsx("button",{type:"button",onClick:()=>i(p.key),className:ui.cn("px-3 py-2 text-sm font-medium transition-colors cursor-pointer",n===p.key?"text-foreground border-b-2 border-primary":"text-neutral hover:text-foreground"),children:p.label},p.key))}),t?jsxRuntime.jsxs("div",{style:{height:Jr},children:[n==="positions"&&jsxRuntime.jsx(Bp,{source:e.source,walletAddress:t,marketSlugs:s}),n==="orders"&&jsxRuntime.jsx(zp,{source:e.source,walletAddress:t,marketSlugs:s,onCancelOrder:r}),n==="trades"&&jsxRuntime.jsx($p,{source:e.source,walletAddress:t})]}):jsxRuntime.jsx("div",{className:"flex items-center justify-center text-sm text-neutral",style:{height:Jr},children:o("predict.trade.connectWallet")})]})}function Bp({source:e,walletAddress:t,marketSlugs:r}){let{t:o}=i18n.useTranslation(),{data:n,isLoading:i}=reactPredict.usePositions({source:e,user:t}),s=react.useMemo(()=>n?.positions?r.length===0?n.positions:n.positions.filter(a=>a.market&&r.includes(a.market.slug)):[],[n?.positions,r]);return i?jsxRuntime.jsx($o,{}):s.length===0?jsxRuntime.jsx(Uo,{message:o("predict.positions.empty")}):jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center text-neutral text-xs lg:text-sm font-normal shrink-0",style:{height:Kn},children:[jsxRuntime.jsx("div",{className:"flex-[3] min-w-0 pr-2 whitespace-nowrap",children:o("predict.positions.event")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.totalSize")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.value")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.avgPrice")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.markPrice")}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right whitespace-nowrap",children:o("predict.positions.pnl")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right whitespace-nowrap",children:o("predict.positions.payoutIfRight")}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right whitespace-nowrap",children:o("predict.positions.estSettlement")}),jsxRuntime.jsx("div",{className:"w-16 shrink-0"})]}),jsxRuntime.jsx(reactWindow.List,{style:{height:Wo},rowComponent:Hp,rowCount:s.length,rowHeight:zo,rowProps:{positions:s,closeLabel:o("predict.positions.close")}})]})}function Hp({index:e,style:t,positions:r,closeLabel:o}){let n=r[e];if(!n)return null;let i=n.pnl??0,s=n.pnl_percent??0,a=n.avg_price??0,l=n.current_price??0,u=i>0?"text-success":i<0?"text-danger":"text-foreground",d=i>0?"+":"",p=n.market?.outcomes?.[0]?.label??n.market?.question??"\u2014",m=n.side,c=n.size,f=n.size*l,g=n.market?.end_at?jp(n.market.end_at):"\u2014";return jsxRuntime.jsxs("div",{style:t,className:"flex items-center border-b border-border/50 hover:bg-content2/40 transition-colors text-xs lg:text-sm",children:[jsxRuntime.jsx("div",{className:"flex-[3] min-w-0 pr-2",children:jsxRuntime.jsxs("div",{className:"flex flex-col gap-y-0.5",children:[jsxRuntime.jsx("span",{className:"text-foreground truncate font-medium",children:p}),jsxRuntime.jsx("span",{className:ui.cn("text-[10px] font-medium",m.toLowerCase()==="yes"?"text-primary":"text-secondary"),children:m})]})}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:n.size}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:["$",f.toFixed(2)]}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:Un(a)}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:Un(l)}),jsxRuntime.jsxs("div",{className:ui.cn("flex-[1.5] pr-2 text-right font-mono whitespace-nowrap",u),children:[d,"$",Math.abs(i).toFixed(2),jsxRuntime.jsxs("span",{className:"text-[10px] ml-0.5 opacity-70",children:["(",d,s.toFixed(1),"%)"]})]}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground whitespace-nowrap",children:["$",c.toFixed(2)]}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right text-neutral whitespace-nowrap",children:g}),jsxRuntime.jsx("div",{className:"w-16 shrink-0 text-right",children:jsxRuntime.jsx("button",{type:"button",className:"text-xs text-neutral hover:text-foreground cursor-pointer transition-colors rounded px-2 py-0.5 border border-border hover:border-foreground/40",children:o})})]})}function zp({source:e,walletAddress:t,marketSlugs:r,onCancelOrder:o}){let{t:n}=i18n.useTranslation(),{data:i,isLoading:s,fetchNextPage:a,hasNextPage:l}=reactPredict.useInfiniteOrders({source:e,wallet_address:t}),u=reactPredict.useCancelOrder(),d=react.useMemo(()=>{let x=i?.pages?.flatMap(S=>S.items)??[],b=new Set(["live","open","submitted","pending"]),w=x.filter(S=>b.has(S.status));return r.length>0&&(w=w.filter(S=>S.market_id&&r.includes(S.market_id))),w},[i?.pages,r]),p=react.useCallback(x=>{o?o(x.id):u.mutate({source:x.source,id:x.id});},[o,u]),m=d.length,c=m+(l?1:0),f=react.useCallback(x=>x<m,[m]),g=react.useCallback(async()=>{await a();},[a]),v=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:f,loadMoreRows:g,rowCount:c,threshold:5});return s?jsxRuntime.jsx($o,{}):d.length===0&&!l?jsxRuntime.jsx(Uo,{message:n("predict.openOrders.empty")}):jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center text-neutral text-xs lg:text-sm font-normal shrink-0",style:{height:Kn},children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:n("predict.openOrders.side")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2",children:n("predict.openOrders.outcome")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2",children:n("predict.openOrders.type")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:n("predict.openOrders.price")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:n("predict.openOrders.filled")}),jsxRuntime.jsx("div",{className:"w-20 shrink-0 pr-2",children:n("predict.openOrders.status")}),jsxRuntime.jsx("div",{className:"w-16 shrink-0"})]}),jsxRuntime.jsx(reactWindow.List,{style:{height:Wo},onRowsRendered:v,rowComponent:Wp,rowCount:c,rowHeight:zo,rowProps:{orders:d,itemCount:m,onCancel:p,isCancelling:u.isPending,cancelLabel:n("predict.openOrders.cancel")}})]})}function Wp({index:e,style:t,orders:r,itemCount:o,onCancel:n,isCancelling:i,cancelLabel:s}){if(e>=o)return jsxRuntime.jsx("div",{style:t,className:"flex justify-center items-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})});let a=r[e];if(!a)return null;let l=a.side==="BUY";return jsxRuntime.jsxs("div",{style:t,className:"flex items-center border-b border-border/50 text-xs lg:text-sm",children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",l?"bg-primary/10 text-primary":"bg-danger/10 text-danger"),children:a.side})}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-foreground capitalize",children:a.outcome??"\u2014"}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-neutral capitalize",children:a.order_type??"limit"}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:a.price?Un(parseFloat(a.price)):"\u2014"}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:[a.size_matched??"0","/",a.original_size??"\u2014"]}),jsxRuntime.jsx("div",{className:"w-20 shrink-0 pr-2",children:jsxRuntime.jsx(Up,{status:a.status})}),jsxRuntime.jsx("div",{className:"w-16 shrink-0 text-right",children:jsxRuntime.jsx("button",{type:"button",onClick:()=>n(a),disabled:i,className:"text-[10px] text-danger hover:text-danger/80 cursor-pointer disabled:opacity-50 transition-colors",children:i?jsxRuntime.jsx(ui.Spinner,{size:"sm"}):s})})]})}function Up({status:e}){return jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium capitalize",{live:"bg-success/10 text-success",open:"bg-success/10 text-success",submitted:"bg-warning/10 text-warning",pending:"bg-warning/10 text-warning",matched:"bg-primary/10 text-primary",cancelled:"bg-neutral/10 text-neutral",failed:"bg-danger/10 text-danger",expired:"bg-neutral/10 text-neutral"}[e]??"bg-neutral/10 text-neutral"),children:e})}function $p({source:e,walletAddress:t}){let{t:r}=i18n.useTranslation(),{data:o,isLoading:n,fetchNextPage:i,hasNextPage:s}=reactPredict.useInfiniteTrades({source:e,wallet:t,limit:50}),a=react.useMemo(()=>o?.pages?.flatMap(c=>c.items)??[],[o?.pages]),l=a.length,u=l+(s?1:0),d=react.useCallback(c=>c<l,[l]),p=react.useCallback(async()=>{await i();},[i]),m=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:d,loadMoreRows:p,rowCount:u,threshold:5});return n?jsxRuntime.jsx($o,{}):a.length===0&&!s?jsxRuntime.jsx(Uo,{message:r("predict.tradeHistory.empty")}):jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center text-neutral text-xs lg:text-sm font-normal shrink-0",style:{height:Kn},children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:r("predict.tradeHistory.side")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2",children:r("predict.tradeHistory.outcome")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:r("predict.tradeHistory.price")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:r("predict.tradeHistory.qty")}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right",children:r("predict.tradeHistory.total")}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right",children:r("predict.tradeHistory.time")})]}),jsxRuntime.jsx(reactWindow.List,{style:{height:Wo},onRowsRendered:m,rowComponent:Kp,rowCount:u,rowHeight:zo,rowProps:{trades:a,itemCount:l}})]})}function Kp({index:e,style:t,trades:r,itemCount:o}){if(e>=o)return jsxRuntime.jsx("div",{style:t,className:"flex justify-center items-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})});let n=r[e];if(!n)return null;let i=n.side?.toUpperCase()==="BUY",s=Vp(n.timestamp),a=n.price??0,l=n.usd_size??0;return jsxRuntime.jsxs("div",{style:t,className:"flex items-center border-b border-border/50 text-xs lg:text-sm",children:[jsxRuntime.jsx("div",{className:"w-16 shrink-0 pr-2",children:jsxRuntime.jsx("span",{className:ui.cn("inline-block rounded px-1.5 py-0.5 text-[10px] font-medium",i?"bg-primary/10 text-primary":"bg-danger/10 text-danger"),children:n.side})}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-foreground capitalize",children:n.outcome??"\u2014"}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:Un(a)}),jsxRuntime.jsx("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:n.size}),jsxRuntime.jsxs("div",{className:"flex-1 pr-2 text-right font-mono text-foreground",children:["$",l.toFixed(2)]}),jsxRuntime.jsx("div",{className:"flex-[1.5] pr-2 text-right text-neutral whitespace-nowrap",children:s})]})}function Uo({message:e}){return jsxRuntime.jsx("div",{className:"flex items-center justify-center text-sm text-neutral",style:{height:Jr},children:e})}function $o(){return jsxRuntime.jsx("div",{className:"flex flex-col gap-y-2 py-3 animate-pulse",style:{height:Jr},children:Array.from({length:6}).map((e,t)=>jsxRuntime.jsx(ui.Skeleton,{className:"h-8 w-full rounded-md"},t))})}function Un(e){let t=e*100;return t<1&&t>0?"< 1\xA2":`${t.toFixed(1)}\xA2`}function Vp(e){let t=new Date(e*1e3),r=(t.getMonth()+1).toString().padStart(2,"0"),o=t.getDate().toString().padStart(2,"0"),n=t.getHours().toString().padStart(2,"0"),i=t.getMinutes().toString().padStart(2,"0");return `${r}/${o} ${n}:${i}`}function jp(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch{return "\u2014"}}var qs=`
75
75
  @keyframes detailShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
76
76
  `,Gs={background:"linear-gradient(90deg, rgba(255,255,255,0.03) 25%, rgba(255,255,255,0.06) 50%, rgba(255,255,255,0.03) 75%)",backgroundSize:"200% 100%",animation:"detailShimmer 1.8s ease-in-out infinite",borderRadius:6};function me(e){return {...Gs,animationDelay:`${e}ms`}}function Zr({marketCount:e=4,showBack:t}){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{children:qs}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",width:"100%",gap:20},children:[t&&jsxRuntime.jsx("div",{style:{height:20}}),jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[jsxRuntime.jsx("div",{style:{...Gs,width:64,height:64,borderRadius:10,flexShrink:0}}),jsxRuntime.jsxs("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:8},children:[jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[jsxRuntime.jsx("div",{style:{...me(0),height:14,width:48}}),jsxRuntime.jsx("div",{style:{...me(30),height:14,width:40}}),jsxRuntime.jsx("div",{style:{...me(60),height:14,width:40}})]}),jsxRuntime.jsx("div",{style:{...me(80),height:20,width:"80%",maxWidth:384,borderRadius:4}})]})]}),jsxRuntime.jsx("div",{style:{...me(100),height:16,width:192}}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:16},children:[jsxRuntime.jsx("div",{style:{...me(120),height:16,width:96}}),jsxRuntime.jsx("div",{style:{...me(140),height:16,width:80}})]}),jsxRuntime.jsx("div",{style:{...me(160),height:300,width:"100%",borderRadius:12}}),jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[jsxRuntime.jsx("div",{style:{...me(180),height:16,width:80}}),jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[jsxRuntime.jsx("div",{style:{...me(200),height:28,width:200,borderRadius:8}}),jsxRuntime.jsx("div",{style:{...me(220),height:28,width:112,borderRadius:8}})]})]})]}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[jsxRuntime.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"8px 0"},children:jsxRuntime.jsx("div",{style:{...me(240),height:14,width:56}})}),Array.from({length:e}).map((r,o)=>jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0",borderBottom:"1px solid rgba(39,39,42,0.5)"},children:[jsxRuntime.jsx("div",{style:{...me(260+o*40),width:28,height:28,borderRadius:8,flexShrink:0}}),jsxRuntime.jsxs("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:4},children:[jsxRuntime.jsx("div",{style:{...me(280+o*40),height:14,width:o%2===0?192:160}}),jsxRuntime.jsx("div",{style:{...me(300+o*40),height:10,width:64}})]}),jsxRuntime.jsx("div",{style:{...me(320+o*40),height:16,width:40}}),jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[jsxRuntime.jsx("div",{style:{...me(340+o*40),height:32,width:80,borderRadius:8}}),jsxRuntime.jsx("div",{style:{...me(360+o*40),height:32,width:80,borderRadius:8}})]})]},o))]}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[jsxRuntime.jsx("div",{style:{...me(400),height:16,width:64}}),jsxRuntime.jsx("div",{style:{...me(420),height:14,width:"100%"}}),jsxRuntime.jsx("div",{style:{...me(440),height:14,width:"80%"}}),jsxRuntime.jsx("div",{style:{...me(460),height:14,width:"60%"}})]})]})]})}function Ys(){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{children:qs}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,borderRadius:14,border:"1px solid rgba(39,39,42,0.6)",background:"rgba(24,24,27,0.4)",padding:16},children:[jsxRuntime.jsx("div",{style:{...me(0),height:40,width:"100%",borderRadius:8}}),jsxRuntime.jsx("div",{style:{...me(60),height:96,width:"100%",borderRadius:8}}),jsxRuntime.jsx("div",{style:{...me(120),height:40,width:"100%",borderRadius:8}})]})]})}var ea="var(--color-bullish)",ta="var(--color-bearish)";function en(e){let t=Math.abs(e);return t>=1e9?`${parseFloat((e/1e9).toFixed(2))}B`:t>=1e6?`${parseFloat((e/1e6).toFixed(2))}M`:t>=1e3?`${parseFloat((e/1e3).toFixed(2))}K`:e.toLocaleString()}function Yp(e,t){return e<=0||t<=0?0:Math.pow(e/t,.3)}function Qp(e,t){let r=new Float64Array(101),o=new Float64Array(101);for(let c of e){let f=Math.round(c.price*100);f>=0&&f<=100&&(r[f]+=c.quantity);}for(let c of t){let f=Math.round(c.price*100);f>=0&&f<=100&&(o[f]+=c.quantity);}let n=0,i=0,s=new Float64Array(101),a=new Float64Array(101);for(let c=100;c>=0;c--)n+=r[c],i+=r[c]*c/100,s[c]=n,a[c]=i;let l=0,u=0,d=new Float64Array(101),p=new Float64Array(101);for(let c=0;c<=100;c++)l+=o[c],u+=o[c]*c/100,d[c]=l,p[c]=u;let m=Math.max(s[0]??0,d[100]??0);return Array.from({length:101},(c,f)=>{let g=s[f]>0,v=d[f]>0,x=s[f]||d[f],b=r[f]>0||o[f]>0;return {priceCents:f,displayHeight:Yp(x,m),opacity:x>0?b?1:.5:0,isBid:g,isAsk:v,bidCumTotal:s[f],askCumTotal:d[f],bidCumCost:a[f],askCumCost:p[f]}})}function Xp({info:e}){let{t}=i18n.useTranslation(),r=e.isBid?ea:ta,o=e.leftPct>65?void 0:`${e.leftPct}%`,n=e.leftPct>65?`${100-e.leftPct}%`:void 0;return jsxRuntime.jsxs("div",{style:{position:"absolute",top:8,left:o,right:n,zIndex:10,background:"rgba(17,24,39,0.95)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:8,padding:"8px 12px",fontSize:12,color:"#f9fafb",minWidth:140,pointerEvents:"none"},children:[jsxRuntime.jsx("div",{style:{marginBottom:4,fontWeight:600},children:t("predict.orderBook.depthToPrice",{price:e.priceCents})}),jsxRuntime.jsx("div",{style:{color:r},children:t("predict.orderBook.depthContracts",{amount:en(Math.round(e.cumTotal))})}),jsxRuntime.jsxs("div",{style:{color:r},children:["$",en(Math.round(e.cumCost))]})]})}var Jp=react.memo(function({slot:t,onEnter:r,onLeave:o}){let n=react.useRef(null),i=t.isBid||t.isAsk,s=t.isBid?ea:t.isAsk?ta:void 0;return jsxRuntime.jsx("div",{style:{position:"absolute",left:`${t.priceCents}%`,width:"1%",height:"100%",boxSizing:"border-box",borderRight:t.priceCents<100?"1px solid transparent":"none",cursor:i?"crosshair":"default"},onMouseEnter:()=>r(t,n.current),onMouseLeave:o,children:i&&jsxRuntime.jsx("div",{ref:n,style:{position:"absolute",bottom:0,left:0,width:"100%",height:`${t.displayHeight*100}%`,backgroundColor:s,opacity:t.opacity}})})}),Zp=[0,10,20,30,40,50,60,70,80,90,100];function em(){return jsxRuntime.jsx("div",{className:"relative flex h-6 items-center border-b border-t border-border px-1",style:{background:"rgba(0,0,0,0.15)"},children:Zp.map(e=>jsxRuntime.jsx("span",{className:"absolute text-neutral font-normal",style:{fontSize:10,left:`${e}%`,transform:e===0?"translateX(0px)":e===100?"translateX(-100%)":"translateX(-50%)"},children:e},e))})}function ra({bids:e,asks:t}){let{t:r}=i18n.useTranslation(),o=react.useMemo(()=>Qp(e,t),[e,t]),n=react.useMemo(()=>{let p=e.length>0?Math.max(...e.map(c=>c.price)):0,m=t.length>0?Math.min(...t.map(c=>c.price)):1;return Math.round((p+m)/2*100)},[e,t]),i=react.useMemo(()=>o.some(p=>p.isBid||p.isAsk),[o]),[s,a]=react.useState(null),l=react.useRef(null),u=react.useCallback((p,m)=>{l.current&&(l.current.style.filter=""),m?(m.style.filter="brightness(1.5)",l.current=m):l.current=null,p.isBid||p.isAsk?a({priceCents:p.priceCents,isBid:p.isBid,cumTotal:p.isBid?p.bidCumTotal:p.askCumTotal,cumCost:p.isBid?p.bidCumCost:p.askCumCost,leftPct:p.priceCents}):a(null);},[]),d=react.useCallback(()=>{l.current&&(l.current.style.filter="",l.current=null),a(null);},[]);return i?jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",width:"100%",height:"100%",userSelect:"none",overflow:"hidden"},children:[jsxRuntime.jsxs("div",{style:{flex:1,position:"relative",width:"100%",overflow:"hidden"},children:[n>0&&jsxRuntime.jsx("div",{style:{position:"absolute",left:`${n}%`,top:0,bottom:0,width:1,backgroundImage:"repeating-linear-gradient(to bottom, #6b7280 0, #6b7280 4px, transparent 4px, transparent 8px)",zIndex:1,pointerEvents:"none"}}),s&&jsxRuntime.jsx(Xp,{info:s}),o.map(p=>jsxRuntime.jsx(Jp,{slot:p,onEnter:u,onLeave:d},p.priceCents))]}),jsxRuntime.jsx(em,{})]}):jsxRuntime.jsx("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#6b7280",fontSize:13},children:r("predict.orderBook.noData")})}function la(e){let t=e*100,r=Math.round(t*10)/10;return Number.isInteger(r)?`${r}\xA2`:`${r.toFixed(1)}\xA2`}function oa(){let{t:e}=i18n.useTranslation();return jsxRuntime.jsx("div",{className:"absolute inset-0 flex items-center justify-center text-neutral text-xs",children:jsxRuntime.jsx("span",{children:e("predict.orderBook.loading")})})}function ca({market:e,outcome:t="yes",onTradeAction:r,initialViewMode:o="depth",className:n,oddsFormatter:i}){let{t:s}=i18n.useTranslation(),[a,l]=react.useState(o),u=i??la,d=e.source,{data:p,isLoading:m,isFetching:c,refetch:f}=reactPredict.useRealtimeOrderbook({slug:e.slug,source:d,outcome:t}),g=react.useMemo(()=>(p?.bids??[]).map(S=>({price:S.price,quantity:S.size})),[p?.bids]),v=react.useMemo(()=>(p?.asks??[]).map(S=>({price:S.price,quantity:S.size})),[p?.asks]),x=react.useMemo(()=>g.length>0?Math.max(...g.map(S=>S.price)):null,[g]),b=react.useMemo(()=>v.length>0?Math.min(...v.map(S=>S.price)):null,[v]),w=react.useMemo(()=>{if(x==null||b==null)return null;let S=(b-x)*100;return Math.round(S*10)/10},[x,b]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col",n??"h-[262px]"),children:[jsxRuntime.jsxs("div",{className:"flex h-9 items-center border-b border-border px-1 text-xs",children:[jsxRuntime.jsx("span",{className:"flex-1 text-left text-neutral",children:w!=null?`${s("predict.orderBook.spread")}: ${Number.isInteger(w)?`${w}\xA2`:`${w.toFixed(1)}\xA2`}`:null}),jsxRuntime.jsxs("span",{className:"flex flex-1 items-center justify-center gap-x-1 whitespace-nowrap",children:[x!=null&&jsxRuntime.jsxs("span",{style:{color:"var(--color-bullish)"},children:[s("predict.trade.bestBid"),": ",u(x)]}),x!=null&&b!=null&&jsxRuntime.jsx("span",{className:"text-neutral",children:"|"}),b!=null&&jsxRuntime.jsxs("span",{style:{color:"var(--color-bearish)"},children:[s("predict.trade.bestAsk"),": ",u(b)]})]}),jsxRuntime.jsxs("div",{className:"flex flex-1 items-center justify-end gap-x-2",children:[jsxRuntime.jsx("button",{type:"button",title:a==="depth"?"Orderbook":"Depth chart",onClick:()=>l(S=>S==="depth"?"table":"depth"),className:"flex items-center text-neutral transition-colors cursor-pointer hover:text-foreground",children:a==="depth"?jsxRuntime.jsx(ui.OrderbookTableIcon,{className:"h-4 w-4"}):jsxRuntime.jsx(ui.OrderbookDepthIcon,{className:"h-4 w-4"})}),jsxRuntime.jsx("button",{type:"button",title:"Refresh",onClick:()=>f(),disabled:c,className:ui.cn("flex items-center text-neutral transition-colors cursor-pointer hover:text-foreground disabled:cursor-default disabled:opacity-50",c&&"animate-spin"),children:jsxRuntime.jsx(ui.RefreshIcon,{className:"h-4 w-4"})})]})]}),jsxRuntime.jsxs("div",{className:"relative flex-1 min-h-0 overflow-hidden",children:[a==="depth"&&jsxRuntime.jsx(jsxRuntime.Fragment,{children:m?jsxRuntime.jsx(oa,{}):jsxRuntime.jsx(ra,{bids:g,asks:v})}),a==="table"&&jsxRuntime.jsx(jsxRuntime.Fragment,{children:m?jsxRuntime.jsx(oa,{}):jsxRuntime.jsx(sm,{bids:g,asks:v,bestBid:x??void 0,bestAsk:b??void 0,spread:w??void 0,oddsFormatter:i})})]})]})}var Vo=4,im=8;function sm({bids:e,asks:t,spread:r,oddsFormatter:o}){let{t:n}=i18n.useTranslation(),[i,s]=react.useState(false),a=i?im:Vo,l=t.length>Vo||e.length>Vo,u=react.useMemo(()=>[...t].sort((c,f)=>c.price-f.price).slice(0,a).reverse(),[t,a]),d=react.useMemo(()=>[...e].sort((c,f)=>f.price-c.price).slice(0,a),[e,a]),p=react.useMemo(()=>{let c=[...u,...d].map(f=>f.quantity);return Math.max(...c,1)},[u,d]);return u.length===0&&d.length===0?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full text-xs text-neutral",children:n("predict.orderBook.empty")}):jsxRuntime.jsxs("div",{className:"flex flex-col h-full overflow-y-auto text-xs font-mono select-none",children:[u.map(c=>jsxRuntime.jsx(ia,{price:c.price,quantity:c.quantity,side:"ask",maxQty:p,oddsFormatter:o},`ask-${c.price}`)),jsxRuntime.jsxs("div",{className:"relative flex items-center justify-center gap-x-2 py-1 border-y border-border text-neutral text-[10px]",children:[r!=null&&jsxRuntime.jsxs("span",{children:[n("predict.orderBook.spread"),":"," ",Number.isInteger(r)?`${r}\xA2`:`${r.toFixed(1)}\xA2`]}),l&&jsxRuntime.jsx("button",{type:"button",onClick:()=>s(c=>!c),className:"absolute right-2 text-[10px] text-neutral transition-colors cursor-pointer hover:text-foreground",children:n(i?"predict.orderBook.collapse":"predict.orderBook.expand")})]}),d.map(c=>jsxRuntime.jsx(ia,{price:c.price,quantity:c.quantity,side:"bid",maxQty:p,oddsFormatter:o},`bid-${c.price}`)),jsxRuntime.jsxs("div",{className:"grid grid-cols-3 px-2 pt-2 pb-0.5 text-[10px] text-neutral border-t border-border",children:[jsxRuntime.jsx("span",{children:n("predict.orderBook.price")}),jsxRuntime.jsx("span",{className:"text-center",children:n("predict.orderBook.contracts")}),jsxRuntime.jsx("span",{className:"text-right",children:n("predict.orderBook.total")})]})]})}function ia({price:e,quantity:t,side:r,maxQty:o,oddsFormatter:n}){let i=r==="ask",s=Math.min(t/o*100,100),a=i?"bg-bearish/10":"bg-bullish/10",l=i?"text-bearish":"text-bullish",u=en(Math.round(t)),d=Math.round(t*e),p=`$${en(d)}`;return jsxRuntime.jsxs("div",{className:"relative grid grid-cols-3 px-2 py-1 hover:bg-content2 transition-colors cursor-default",children:[jsxRuntime.jsx("div",{className:`absolute inset-y-0 left-0 ${a} transition-[width] duration-200`,style:{width:`${s}%`}}),jsxRuntime.jsx("span",{className:`relative z-10 ${l}`,children:n?n(e):la(e)}),jsxRuntime.jsx("span",{className:"relative z-10 text-foreground text-center",children:u}),jsxRuntime.jsx("span",{className:"relative z-10 text-foreground text-right",children:p})]})}var Go=class extends react.Component{state={error:null};static getDerivedStateFromError(t){return {error:t}}componentDidCatch(t,r){}render(){return this.state.error?jsxRuntime.jsxs("div",{style:{height:this.props.fallbackHeight??320,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,color:"#6b7280",fontSize:13},children:[jsxRuntime.jsx("span",{children:"Chart unavailable"}),jsxRuntime.jsx("span",{style:{fontSize:11,opacity:.7},children:this.state.error.message})]}):this.props.children}},tn=4,da=["#22d3ee","#a3e635","#f97316","#f472b6","#a78bfa"];function xm(e,t){let r=new Date(e);return t===le.ONE_DAY?r.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:false}):r.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function bm(e,t){let r=new Date(e);return t===le.ONE_DAY?r.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:false}):t===le.ONE_WEEK?r.toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:false}):r.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function pa(e){return `${(e*100).toFixed(2)}%`}var ym=[{range:le.ONE_DAY,label:"1D"},{range:le.ONE_WEEK,label:"1W"},{range:le.ONE_MONTH,label:"1M"},{range:le.ALL,label:"ALL"}];function km({value:e,onChange:t}){return jsxRuntime.jsx("div",{style:{display:"flex",alignItems:"center",gap:2},children:ym.map(({range:r,label:o})=>{let n=r===e;return jsxRuntime.jsx("button",{onClick:()=>t(r),style:{padding:"2px 8px",border:"none",background:"transparent",color:n?"#f9fafb":"#6b7280",fontWeight:n?700:400,fontSize:12,cursor:"pointer",borderRadius:4,letterSpacing:"0.02em",transition:"color 0.15s",userSelect:"none"},children:o},r)})})}function Sm(){let e=react.useRef(null),t=react.useRef(null),r=react.useCallback(n=>{let i=e.current,s=t.current;if(!i||!s)return;let a=i.getBoundingClientRect(),l=(n.clientX-a.left)/a.width*100;s.style.background=`linear-gradient(to right, transparent ${l}%, rgba(0,0,0,0.55) ${l}%)`,s.style.opacity="1";},[]),o=react.useCallback(()=>{t.current&&(t.current.style.opacity="0");},[]);return {wrapperRef:e,overlayRef:t,onMouseMove:r,onMouseLeave:o}}function wm({active:e,payload:t,label:r,labelMap:o,allSeries:n,range:i}){if(!e||!n?.length)return null;let s=new Map;t?.forEach(l=>s.set(l.dataKey,l));let a=n.map(l=>s.get(l.slug)??{dataKey:l.slug,value:void 0,stroke:l.color,color:l.color});return jsxRuntime.jsxs("div",{style:{background:"rgba(10,10,10,0.92)",border:"1px solid rgba(255,255,255,0.1)",borderRadius:8,padding:"8px 12px",minWidth:180,backdropFilter:"blur(8px)",fontSize:12},children:[jsxRuntime.jsx("div",{style:{color:"#9ca3af",marginBottom:6,fontWeight:500},children:typeof r=="number"?bm(r,i):r}),a.map(l=>jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:3},children:[jsxRuntime.jsx("span",{style:{display:"inline-block",width:3,height:14,borderRadius:2,background:l.stroke??l.color,flexShrink:0}}),jsxRuntime.jsx("span",{style:{color:"#9ca3af",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:120},children:o.get(l.dataKey)??l.dataKey}),jsxRuntime.jsx("span",{style:{color:"#f9fafb",fontWeight:700,fontVariantNumeric:"tabular-nums"},children:l.value!=null?pa(l.value):"--"})]},l.dataKey))]})}function Pm({markets:e,selectedSlugs:t,colorMap:r,onToggle:o}){let[n,i]=react.useState(false),s=react.useRef(null);react.useEffect(()=>{if(!n)return;function u(d){s.current&&!s.current.contains(d.target)&&i(false);}return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[n]);let a=t.length>=tn,l=jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flex:1,minWidth:0},children:[jsxRuntime.jsx("div",{style:{display:"flex",gap:3,flexShrink:0},children:t.map(u=>jsxRuntime.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:r.get(u)??"#6b7280",display:"inline-block"}},u))}),jsxRuntime.jsx("span",{style:{color:"#e5e7eb",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.length===1?(()=>{let u=e.find(d=>d.slug===t[0]);return u?.outcomes?.[0]?.label??u?.question??"1 market"})():`${t.length} / ${e.length} markets`})]});return jsxRuntime.jsxs("div",{ref:s,style:{position:"relative",display:"inline-block",width:200},children:[jsxRuntime.jsxs("button",{onClick:()=>i(u=>!u),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 10px",borderRadius:8,border:"1px solid rgba(255,255,255,0.12)",background:"rgba(255,255,255,0.05)",cursor:"pointer",width:"100%",userSelect:"none"},children:[l,jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",style:{flexShrink:0,transform:n?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.15s",color:"#6b7280"},children:jsxRuntime.jsx("path",{d:"M2 4l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),n&&jsxRuntime.jsxs("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:0,zIndex:50,background:"#111827",border:"1px solid rgba(255,255,255,0.1)",borderRadius:10,boxShadow:"0 8px 24px rgba(0,0,0,0.5)",minWidth:260,maxWidth:360,maxHeight:320,overflowY:"auto",padding:"6px 0"},children:[jsxRuntime.jsxs("div",{style:{padding:"4px 12px 8px",fontSize:11,color:"#6b7280",borderBottom:"1px solid rgba(255,255,255,0.06)",marginBottom:4},children:["Select up to ",tn," markets"]}),e.map((u,d)=>{let p=t.includes(u.slug),m=!p&&a,c=p&&t.length===1,f=r.get(u.slug)??"#6b7280",g=u.outcomes.find(x=>x.label.toLowerCase()==="yes")??u.outcomes[0],v=g?.price!=null?`${Math.round(g.price*100)}%`:null;return jsxRuntime.jsxs("button",{onClick:()=>{c||m||o(u.slug);},style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"7px 12px",border:"none",background:p?"rgba(255,255,255,0.05)":"transparent",cursor:m||c?"not-allowed":"pointer",opacity:m?.35:1,textAlign:"left",transition:"background 0.1s"},onMouseEnter:x=>{!m&&!c&&(x.currentTarget.style.background="rgba(255,255,255,0.07)");},onMouseLeave:x=>{x.currentTarget.style.background=p?"rgba(255,255,255,0.05)":"transparent";},children:[jsxRuntime.jsx("span",{style:{width:16,height:16,borderRadius:4,border:p?`2px solid ${f}`:"2px solid rgba(255,255,255,0.2)",background:p?`${f}30`:"transparent",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},children:p&&jsxRuntime.jsx("svg",{width:"9",height:"7",viewBox:"0 0 9 7",fill:"none",children:jsxRuntime.jsx("path",{d:"M1 3.5L3.5 6L8 1",stroke:f,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:f,flexShrink:0}}),jsxRuntime.jsx("span",{style:{color:p?"#f9fafb":"#9ca3af",fontSize:12,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u.outcomes?.[0]?.label??u.question}),v&&jsxRuntime.jsx("span",{style:{color:f,fontWeight:700,fontSize:12,flexShrink:0},children:v})]},u.id??`${d}-${u.slug}`)})]})]})}function Nm({series:e,colorMap:t,displayValues:r}){return jsxRuntime.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px 24px",padding:"0 2px"},children:e.map(o=>{let n=t.get(o.marketSlug)??"#6b7280",i=r.get(o.marketSlug);return jsxRuntime.jsxs("div",{style:{display:"inline-flex",alignItems:"flex-start",gap:6},children:[jsxRuntime.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:n,flexShrink:0,marginTop:3}}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:1},children:[jsxRuntime.jsx("span",{style:{color:"#9ca3af",fontSize:12,lineHeight:"17px",whiteSpace:"nowrap"},children:o.label}),jsxRuntime.jsx("span",{style:{color:"#f9fafb",fontSize:14,fontWeight:700,lineHeight:"20px",fontVariantNumeric:"tabular-nums"},children:i!=null?pa(i):"--"})]})]},o.marketSlug)})})}function Cm(e){let t=Math.floor(e.length/2);return e.length%2===1?e[t]:(e[t-1]+e[t])/2}function Mm(e,t){if(e.length<=t)return e;let r=[],o=e.length/t;for(let n=0;n<t;n++){let i=Math.floor(n*o),s=Math.min(Math.floor((n+1)*o),e.length),a=e.slice(i,s),l=a.map(u=>u.price).sort((u,d)=>u-d);r.push({timestamp:a[a.length-1].timestamp,price:Cm(l)});}return r}function Em(e,t=200){if(e.length===0)return [];let r=e.map(a=>({...a,data:Mm(a.data,t)})),o=new Set;r.forEach(a=>a.data.forEach(l=>o.add(l.timestamp)));let n=Array.from(o).sort((a,l)=>a-l),i=r.map(a=>{let l=new Map;return a.data.forEach(u=>l.set(u.timestamp,u.price)),{slug:a.marketSlug,map:l}}),s=new Map;return n.map(a=>{let l={timestamp:a};return i.forEach(({slug:u,map:d})=>{let p=d.get(a);if(p!==void 0)s.set(u,p),l[u]=p;else {let m=s.get(u);m!==void 0&&(l[u]=m);}}),l})}function ma(e){return jsxRuntime.jsx(Go,{children:jsxRuntime.jsx(Tm,{...e})})}function Tm({event:e,isLoading:t,className:r,volume:o,fillHeight:n=false}){let i=react.useMemo(()=>{let N=new Set;return (e.markets??[]).filter(M=>N.has(M.slug)?false:(N.add(M.slug),true))},[e.markets]),s=react.useMemo(()=>[...i].sort((N,M)=>{let U=X=>(X.outcomes.find(se=>se.label.toLowerCase()==="yes")??X.outcomes[0])?.price??0;return U(M)-U(N)}),[i]),[a,l]=react.useState(()=>s.slice(0,tn).map(N=>N.slug));react.useEffect(()=>{let N=new Set(i.map(M=>M.slug));l(M=>{let U=M.filter(X=>N.has(X));return U.length===M.length?M:U.length>0?U:s.slice(0,tn).map(X=>X.slug)});},[i,s]);let[u,d]=react.useState(Nn),p=react.useMemo(()=>{let N=new Map;return a.forEach((M,U)=>{N.set(M,da[U%da.length]);}),N},[a]),m=react.useMemo(()=>i.filter(N=>a.includes(N.slug)),[i,a]),{series:c,isLoading:f}=reactPredict.useMarketHistory(m,u),g=t||f,v=react.useMemo(()=>{if(c.length>0&&c.some(U=>U.data.length>0))return c;let N=Date.now(),M=864e5;return m.map(U=>{let se=(U.outcomes?.find(R=>R.label.toLowerCase()==="yes")??U.outcomes?.[0])?.price??.5;return {marketSlug:U.slug,label:U.outcomes?.[0]?.label??U.question,data:[{timestamp:N-7*M,price:se},{timestamp:N,price:se}]}})},[c,m]),x=react.useMemo(()=>u===le.ONE_DAY?96:u===le.ONE_WEEK?168:u===le.ONE_MONTH?180:300,[u]),b=react.useMemo(()=>Em(v,x),[v,x]),w=react.useMemo(()=>{if(b.length===0)return [0,1];let N=1/0,M=-1/0;if(a.forEach(X=>{b.forEach(se=>{let R=se[X];R!=null&&(R<N&&(N=R),R>M&&(M=R));});}),!isFinite(N))return [0,1];let U=Math.max((M-N)*.15,.05);return [Math.max(0,N-U),Math.min(1,M+U)]},[b,a]),S=react.useMemo(()=>{let N=new Map;return v.forEach(M=>{M.data.length>0&&N.set(M.marketSlug,M.data[M.data.length-1].price);}),N},[v]),h=react.useMemo(()=>{let N=new Map;return v.forEach(M=>N.set(M.marketSlug,M.label)),N},[v]),y=react.useMemo(()=>v.map(N=>({slug:N.marketSlug,color:p.get(N.marketSlug)??"#6b7280"})),[v,p]),{wrapperRef:k,overlayRef:P,onMouseMove:I,onMouseLeave:D}=Sm(),W=react.useCallback(N=>{l(M=>M.includes(N)?M.length<=1?M:M.filter(U=>U!==N):M.length>=tn?M:[...M,N]);},[]),[O,G]=react.useState(null),j=react.useRef(null),Q=react.useRef(""),re=react.useRef(0),te=!g&&b.length>0;return jsxRuntime.jsxs("div",{className:r,style:{display:"flex",flexDirection:"column",gap:12,...n?{height:"100%",minHeight:0}:null},children:[jsxRuntime.jsx(Nm,{series:v,colorMap:p,displayValues:O??S}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:0,...n?{flex:1,minHeight:0}:null},children:[jsxRuntime.jsx("div",{ref:k,style:{width:"100%",userSelect:"none",position:"relative",...n?{flex:1,minHeight:240}:{height:300}},onMouseMove:te?N=>{I(N),cancelAnimationFrame(re.current),re.current=requestAnimationFrame(()=>{G(j.current);});}:void 0,onMouseLeave:te?()=>{D(),cancelAnimationFrame(re.current),Q.current="",j.current=null,G(null);}:void 0,children:g?jsxRuntime.jsx("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:jsxRuntime.jsx("div",{style:{width:28,height:28,borderRadius:"50%",border:"2.5px solid #22d3ee",borderTopColor:"transparent",animation:"spin 0.7s linear infinite"}})}):b.length===0?jsxRuntime.jsx("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#6b7280",fontSize:13},children:"No price history data"}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:P,style:{position:"absolute",inset:0,opacity:0,pointerEvents:"none",zIndex:1}}),jsxRuntime.jsx(recharts.ResponsiveContainer,{width:"100%",height:"100%",children:jsxRuntime.jsxs(recharts.LineChart,{data:b,margin:{top:8,right:16,left:0,bottom:0},children:[jsxRuntime.jsx(recharts.CartesianGrid,{horizontal:true,vertical:false,strokeDasharray:"3 3",stroke:"#374151",opacity:.5}),jsxRuntime.jsx(recharts.XAxis,{dataKey:"timestamp",type:"number",scale:"time",domain:["dataMin","dataMax"],tickFormatter:N=>xm(N,u),axisLine:false,tickLine:false,tick:{fill:"#6b7280",fontSize:11},minTickGap:70}),jsxRuntime.jsx(recharts.YAxis,{domain:w,tickFormatter:N=>`${Math.round(N*100)}%`,axisLine:false,tickLine:false,tick:{fill:"#6b7280",fontSize:11},width:40,tickCount:6}),jsxRuntime.jsx(recharts.Tooltip,{content:N=>{let M=N;if(M.active&&M.payload?.length){let U=M.payload.map(X=>`${X.dataKey}:${X.value}`).join(",");if(U!==Q.current){Q.current=U;let X=new Map;M.payload.forEach(se=>{se.value!=null&&X.set(se.dataKey,se.value);}),j.current=X;}}return jsxRuntime.jsx(wm,{...M,labelMap:h,allSeries:y,range:u})},cursor:{stroke:"#4b5563",strokeWidth:1,strokeDasharray:"4 4"},wrapperStyle:{zIndex:2},isAnimationActive:false}),v.map(N=>{let M=p.get(N.marketSlug)??"#6b7280";return jsxRuntime.jsx(recharts.Line,{type:"linear",dataKey:N.marketSlug,stroke:M,strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round",dot:false,activeDot:{r:4.5,strokeWidth:2,stroke:"rgba(10,10,10,0.8)",fill:M},connectNulls:true,isAnimationActive:false},N.marketSlug)}),O==null&&b.length>0&&v.map(N=>{let M=b[b.length-1],U=M[N.marketSlug];if(U==null)return null;let X=p.get(N.marketSlug)??"#6b7280";return jsxRuntime.jsx(recharts.ReferenceDot,{x:M.timestamp,y:U,ifOverflow:"extendDomain",shape:se=>{let{cx:R,cy:ke}=se;return R==null||ke==null?jsxRuntime.jsx("g",{}):jsxRuntime.jsxs("g",{children:[jsxRuntime.jsxs("circle",{cx:R,cy:ke,r:6,fill:X,opacity:.3,children:[jsxRuntime.jsx("animate",{attributeName:"r",values:"4;9;4",dur:"2s",repeatCount:"indefinite"}),jsxRuntime.jsx("animate",{attributeName:"opacity",values:"0.4;0.05;0.4",dur:"2s",repeatCount:"indefinite"})]}),jsxRuntime.jsx("circle",{cx:R,cy:ke,r:3.5,fill:X})]})}},`pulse-${N.marketSlug}`)})]})})]})}),jsxRuntime.jsxs("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"6px 8px",marginTop:6},children:[o!=null&&o>0&&jsxRuntime.jsxs("span",{style:{color:"#6b7280",fontSize:12},children:[utils$1.formatAmountInUsd(o)," vol"]}),jsxRuntime.jsx("div",{style:{flex:1,minWidth:0}}),jsxRuntime.jsx(km,{value:u,onChange:d}),s.length>1&&jsxRuntime.jsx("div",{style:{width:"100%",display:"flex",alignItems:"center"},children:jsxRuntime.jsx(Pm,{markets:s,selectedSlugs:a,colorMap:p,onToggle:W})})]})]})]})}function qn(e){return e.outcomes[0]?.best_ask??e.outcomes[0]?.price??0}function ga(e,t){let r=e.outcomes[t==="yes"?0:1];return r?.best_ask??r?.price}function Vm(e){return `${parseFloat((e*100).toFixed(2))}%`}function ha(e){let t=e*100;return t<1&&t>0?"< 1":parseFloat(t.toFixed(2)).toString()}function Gn(e){return e.outcomes?.[0]?.label??e.question}function jm(e){switch(e){case "polymarket":return "Polymarket";case "kalshi":return "Kalshi";default:return e}}function rn(e){if(!e)return "\u2014";let t=new Date(e);if(isNaN(t.getTime()))return "\u2014";let r=t.toLocaleString("default",{month:"short"}),o=t.getDate(),n=t.getFullYear(),i=t.getHours().toString().padStart(2,"0"),s=t.getMinutes().toString().padStart(2,"0");return `${r} ${o}, ${n} ${i}:${s}`}function va(e){let[t,r]=react.useState(0);if(react.useEffect(()=>{if(!e)return;r(Date.now());let d=setInterval(()=>r(Date.now()),1e3);return ()=>clearInterval(d)},[e]),!e||t===0)return null;let o=new Date(e).getTime();if(isNaN(o))return null;let n=o-t;if(n<=0)return null;let i=Math.floor(n/864e5),s=Math.floor(n%864e5/36e5),a=Math.floor(n%36e5/6e4),l=Math.floor(n%6e4/1e3),u=[];return i>0&&u.push(`${i}d`),u.push(`${String(s).padStart(2,"0")}h`),u.push(`${String(a).padStart(2,"0")}m`),u.push(`${String(l).padStart(2,"0")}s`),u.join(" ")}function xa(e){if(!e)return null;let t=new Date(e);if(isNaN(t.getTime()))return null;let r=t.getHours().toString().padStart(2,"0"),o=t.getMinutes().toString().padStart(2,"0"),n=(t.getMonth()+1).toString().padStart(2,"0"),i=t.getDate().toString().padStart(2,"0"),s=t.getFullYear(),a=-t.getTimezoneOffset(),l=a>=0?"+":"-",u=String(Math.abs(Math.floor(a/60))).padStart(2,"0");return `${r}:${o} ${n}/${i}/${s} (${l}${u})`}function Sa({event:e,onTradeAction:t}){let{t:r}=i18n.useTranslation(),{ref:o,isCollapsed:n}=hooks.useScrollCollapse(),i=react.useMemo(()=>{let p=[...e.markets||[]],m=p.filter(f=>f.status==="open").sort((f,g)=>qn(g)-qn(f)),c=p.filter(f=>f.status!=="open").sort((f,g)=>qn(g)-qn(f));return [...m,...c]},[e.markets]),s=e.status==="closed"||e.status==="voided",a=va(s?void 0:e.start_at),l=va(s?void 0:e.end_at),u=xa(e.start_at),d=xa(e.end_at);return jsxRuntime.jsxs("div",{className:"w-full flex flex-col gap-y-4 lg:gap-y-6",children:[jsxRuntime.jsxs("div",{ref:o,className:`sticky top-0 z-30 flex items-center backdrop-blur-md transition-all duration-300 ${n?"h-14 lg:h-16 gap-x-2 py-2 px-1 lg:px-4 -mx-1 lg:-mx-4 shadow-sm":"h-16 lg:h-20 gap-x-2 lg:gap-x-4"}`,children:[jsxRuntime.jsx(ui.Avatar,{src:e.image_url||void 0,name:e.title||"Event",radius:"lg",classNames:{base:"bg-transparent"},className:`flex-shrink-0 transition-all duration-300 ${n?"!h-10 !w-10 lg:!h-12 lg:!w-12":"!h-16 !w-16 lg:!h-20 lg:!w-20"}`}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.5 min-w-0 flex-1",children:[!n&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[e.tags?.slice(0,3).map((p,m)=>jsxRuntime.jsxs(react.Fragment,{children:[m>0&&jsxRuntime.jsx("span",{className:"text-sm text-neutral/50",children:"\xB7"}),jsxRuntime.jsx("span",{className:"text-sm text-neutral truncate",children:p.label})]},p.slug)),jsxRuntime.jsx(Qm,{source:e.source})]}),jsxRuntime.jsx("span",{className:`font-semibold truncate transition-all duration-300 ${n?"text-sm lg:text-base":"text-lg lg:text-xl"}`,children:e.title})]})]}),(a||l||s)&&jsxRuntime.jsx("div",{className:"flex items-center gap-x-2 text-xs lg:text-sm font-mono",children:s?d&&jsxRuntime.jsx("span",{className:"text-neutral",children:r("predict.event.endedAt",{time:d})}):a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"text-foreground",children:r("predict.event.beginsIn",{time:a})}),u&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"text-neutral/50",children:"\xB7"}),jsxRuntime.jsx("span",{className:"text-neutral",children:u})]})]}):l?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"text-foreground",children:r("predict.event.endsIn",{time:l})}),d&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"text-neutral/50",children:"\xB7"}),jsxRuntime.jsx("span",{className:"text-neutral",children:d})]})]}):null}),jsxRuntime.jsx(ma,{event:e,volume:e.volume??void 0}),jsxRuntime.jsx(qm,{markets:i,onTradeAction:t}),jsxRuntime.jsx(Ym,{markets:i,event:e})]})}var ba=5;function qm({markets:e,onTradeAction:t}){let{t:r}=i18n.useTranslation(),{isDesktop:o}=ui.useScreen(),[n,i]=react.useState(false),[s,a]=react.useState(null),l=react.useMemo(()=>{let v=new Set;return e.filter(x=>v.has(x.slug)?false:(v.add(x.slug),true))},[e]),u=l.find(v=>v.status==="open")?.slug,[d,p]=react.useState(u?`${u}:yes`:null);if(l.length===0)return null;let m=l.length>ba,c=n?l:l.slice(0,ba),f=v=>{a(x=>x===v?null:v);},g=(v,x,b)=>{p(`${v.slug}:${x}`),o&&a(v.slug),t?.(v,x,b);};return jsxRuntime.jsxs("div",{className:"flex flex-col",children:[jsxRuntime.jsxs("table",{className:"w-full border-collapse",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{children:[jsxRuntime.jsx("th",{}),jsxRuntime.jsx("th",{className:"py-2 text-left text-xs text-neutral font-normal lg:text-center lg:text-sm",children:r("predict.market.table.chance")}),jsxRuntime.jsx("th",{})]})}),jsxRuntime.jsx("tbody",{children:c.map((v,x)=>{let b=s===v.slug;return jsxRuntime.jsx(Gm,{market:v,activeYes:d===`${v.slug}:yes`,activeNo:d===`${v.slug}:no`,isExpanded:b,onToggleExpand:()=>f(v.slug),onTradeAction:g},v.id??`${x}-${v.slug}`)})})]}),m&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>i(v=>!v),className:"flex w-full items-center justify-start gap-x-2 py-2 pl-1 text-xs text-neutral lg:pl-2 lg:text-sm cursor-pointer hover:text-foreground transition-colors",children:[jsxRuntime.jsx("span",{children:r(n?"predict.event.rules.collapse":"predict.event.moreMarketsLabel")}),jsxRuntime.jsx(ui.ChevronDownIcon,{className:ui.cn("h-4 w-4 transition-transform",n&&"rotate-180")})]})]})}function Gm({market:e,activeYes:t,activeNo:r,isExpanded:o,onToggleExpand:n,onTradeAction:i}){let{t:s}=i18n.useTranslation(),a=e.status==="open",l=e.volume?`${utils$1.formatAmountInUsd(e.volume)} vol`:void 0,{data:u}=reactPredict.useRealtimeOrderbook({slug:e.slug,source:e.source,outcome:"yes"},{enabled:a}),{data:d}=reactPredict.useOrderbook({slug:e.slug,source:e.source,outcome:"no"},{enabled:false,refetchInterval:false}),p=reactPredict.pickBestAsk(u,"yes")??ga(e,"yes")??0,m=reactPredict.pickBestAsk(d,"no")??ga(e,"no");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("tr",{className:"cursor-pointer border-b border-border text-xs hover:bg-content2 lg:text-base",onClick:n,role:"button",tabIndex:0,onKeyDown:c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),n());},children:[jsxRuntime.jsx("td",{className:"py-2 pl-1 lg:pl-2",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-x-1 lg:gap-x-2",children:[e.image_url&&jsxRuntime.jsx(ui.Avatar,{src:e.image_url,name:Gn(e)?.[0]||"?",radius:"lg",className:"size-5 shrink-0 lg:size-8",imgProps:{className:"object-cover"}}),jsxRuntime.jsxs("div",{className:"flex flex-col",children:[jsxRuntime.jsx("span",{className:"text-foreground truncate max-w-[200px] lg:max-w-[300px]",children:Gn(e)}),l&&jsxRuntime.jsx("span",{className:"text-[8px] text-neutral lg:text-xxs",children:l})]})]})}),jsxRuntime.jsx("td",{className:"py-2 text-left text-foreground lg:text-center",children:Vm(p)}),jsxRuntime.jsx("td",{className:"py-2 pr-1 lg:pr-2",children:a?jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-x-2",children:[jsxRuntime.jsx("button",{type:"button",className:ui.cn("flex min-w-16 items-center justify-center whitespace-nowrap rounded-lg p-2 lg:min-w-24 cursor-pointer hover:opacity-80 transition-all focus-visible:outline-2 focus-visible:outline-primary/40 focus-visible:outline-offset-2",t?"bg-primary text-primary-foreground":"bg-primary/10 text-primary"),onClick:c=>{c.stopPropagation(),i?.(e,"yes","buy");},children:s("predict.market.action.yes",{price:ha(p)})}),jsxRuntime.jsx("button",{type:"button",className:ui.cn("flex min-w-16 items-center justify-center whitespace-nowrap rounded-lg p-2 lg:min-w-24 cursor-pointer hover:opacity-80 transition-all focus-visible:outline-2 focus-visible:outline-primary/40 focus-visible:outline-offset-2",r?"bg-secondary text-secondary-foreground":"bg-secondary/10 text-secondary"),onClick:c=>{c.stopPropagation(),i?.(e,"no","buy");},children:m!=null?s("predict.market.action.no",{price:ha(m)}):s("predict.market.no")})]}):jsxRuntime.jsx("div",{className:"flex items-center justify-end",children:jsxRuntime.jsx("span",{className:ui.cn("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium",e.status==="closed"?"bg-neutral/10 text-neutral":e.status==="voided"?"bg-warning/10 text-warning":"bg-primary/10 text-primary"),children:e.status==="closed"?s("predict.event.status.closed"):e.status==="voided"?s("predict.event.status.voided"):s("predict.event.status.pending")})})})]}),o&&jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:3,className:"pb-3",children:jsxRuntime.jsx("div",{className:"max-h-100 overflow-y-auto",children:jsxRuntime.jsx(ca,{market:e,outcome:r?"no":"yes",onTradeAction:i})})})})]})}function Ym({markets:e,event:t}){let{t:r}=i18n.useTranslation(),[o,n]=react.useState(false),[i,s]=react.useState(false),[a,l]=react.useState(0),u=e.filter(c=>c.rules&&c.rules.length>0||c.description);if(u.length===0)return null;let d=u[a]??u[0],p=d.rules&&d.rules.length>0?d.rules.join(`
77
77