@liberfi.io/ui-predict 0.1.73 → 0.1.74
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 +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -11
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var react=require('react'),reactQuery=require('@tanstack/react-query'),i18n=require('@liberfi.io/i18n'),ui=require('@liberfi.io/ui'),jsxRuntime=require('react/jsx-runtime'),reactWindow=require('react-window'),reactWindowInfiniteLoader=require('react-window-infinite-loader'),hooks=require('@liberfi.io/hooks'),utils=require('@liberfi.io/utils'),walletConnector=require('@liberfi.io/wallet-connector'),an=require('canvas-confetti'),types=require('@liberfi.io/types'),react$1=require('@liberfi.io/react'),recharts=require('recharts'),uiScaffold=require('@liberfi.io/ui-scaffold'),jotai=require('jotai'),utils$1=require('jotai/utils');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var an__default=/*#__PURE__*/_interopDefault(an);typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/ui-predict"]="0.1.73");var Qa="0.1.73";var Jt=react.createContext(null);function Gn(){let e=react.useContext(Jt);if(!e)throw new Error("usePredictV2Context must be used within a PredictV2Provider");return e}function I(){let{client:e}=Gn();return e}function Da(e){return ["predict-v2","events",e??{}]}async function Fa(e,t){return e.listEvents(t)}function mv(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Da(e),queryFn:()=>Fa(r,e),...t})}var he=48,Se=4,er={ONE_MINUTE:1,ONE_HOUR:60,ONE_DAY:1440},M={ONE_DAY:"1d",ONE_WEEK:"1w",ONE_MONTH:"1m",ALL:"all"},ke=M.ALL,lt={[M.ONE_DAY]:er.ONE_MINUTE,[M.ONE_WEEK]:er.ONE_HOUR,[M.ONE_MONTH]:er.ONE_HOUR,[M.ALL]:er.ONE_DAY},tr={[M.ONE_DAY]:300,[M.ONE_WEEK]:3600,[M.ONE_MONTH]:10800,[M.ALL]:1440*60},ct={[M.ONE_DAY]:1440*60,[M.ONE_WEEK]:10080*60,[M.ONE_MONTH]:720*60*60,[M.ALL]:null},ut=1,yv=1,gv=1,vv=99,at={ONE_HOUR:"1h",SIX_HOURS:"6h",ONE_DAY:"1d",ONE_WEEK:"1w",MAX:"max"},xv=at.ONE_WEEK,bv={[at.ONE_HOUR]:60,[at.SIX_HOURS]:60,[at.ONE_DAY]:300,[at.ONE_WEEK]:1800,[at.MAX]:1800};function jn(e){if(e)return e.tagSlug??e.categorySlug??void 0}function Vr(e={}){let{tagSlugSelection:t,limit:r=48,status:n="open",with_markets:s=true,source:i,sort_by:o,sort_asc:a}=e,l=jn(t);return {limit:r,status:n,with_markets:s,...i?{source:i}:{},...l?{tag_slug:l}:{},...o?{sort_by:o}:{},...a!==void 0?{sort_asc:a}:{}}}function Ir(e){return ["predict-v2","events-infinite",e]}async function Lr(e,t){return e.listEvents(t)}function Qr(e,t){return ["predict-v2","event",e,t]}async function Br(e,t,r){return e.getEvent(t,r)}function dt(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Qr(e.slug,e.source),queryFn:()=>Br(r,e.slug,e.source),enabled:!!e.slug,...t})}function Xn(e,t={}){let r=I();return reactQuery.useInfiniteQuery({queryKey:Ir(e),queryFn:({pageParam:n})=>Lr(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:n=>n.has_more&&n.next_cursor?n.next_cursor:void 0,...t})}function Ka(e){return ["predict-v2","search",e]}function Zn(e,t){let r=I(),n=react.useMemo(()=>({search:e.keyword,limit:e.limit??20,status:e.status??"open",source:e.source,with_markets:e.with_markets??false}),[e.keyword,e.limit,e.status,e.source,e.with_markets]);return reactQuery.useInfiniteQuery({queryKey:Ka(n),queryFn:({pageParam:s})=>r.listEvents({...n,...s!==void 0?{cursor:s}:{}}),initialPageParam:void 0,getNextPageParam:s=>s.has_more&&s.next_cursor?s.next_cursor:void 0,enabled:t?.enabled??!!e.keyword})}function za(e,t,r){return ["predict-v2","similar-events",e,t,r]}function Jn(e,t={}){let r=I(),n={limit:e.limit,same_source:e.same_source};return reactQuery.useQuery({queryKey:za(e.slug,e.source,n),queryFn:()=>r.getSimilarEvents(e.slug,e.source,n),enabled:!!e.slug,staleTime:5*6e4,...t})}function Ga(e,t){return ["predict-v2","market",e,t]}async function ja(e,t,r){return e.getMarket(t,r)}function Wv(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Ga(e.slug,e.source),queryFn:()=>ja(r,e.slug,e.source),enabled:!!e.slug,...t})}function Ur(e,t,r){return ["predict-v2","price-history",e,t,r]}function $v(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Ur(e.slug,e.source,e.range),queryFn:()=>r.getPriceHistory(e.slug,e.source,e.range),enabled:!!e.slug,staleTime:6e4,...t})}var el={[M.ONE_DAY]:"1d",[M.ONE_WEEK]:"1w",[M.ONE_MONTH]:"1m",[M.ALL]:"all"};function es(e,t=M.ALL){let r=I(),n=el[t],s=reactQuery.useQueries({queries:e.map(a=>({queryKey:Ur(a.slug,a.source,n),queryFn:()=>r.getPriceHistory(a.slug,a.source,n),staleTime:6e4,enabled:!!a.slug}))}),i=s.some(a=>a.isLoading);return {series:react.useMemo(()=>e.map((a,l)=>{let u=s[l]?.data?.points??[];if(u.length>0)return {marketSlug:a.slug,label:a.outcomes?.[0]?.label??a.question,data:u.map(f=>({timestamp:f.t*1e3,price:f.p}))};let d=(a.outcomes?.find(f=>f.label.toLowerCase()==="yes")??a.outcomes?.[0])?.price??.5,m=Date.now();return {marketSlug:a.slug,label:a.outcomes?.[0]?.label??a.question,data:[{timestamp:m-7*864e5,price:d},{timestamp:m,price:d}]}}),[e,s]),isLoading:i}}function rl(e,t){return ["predict-v2","orderbook",e,t]}function ts(e,t={}){let r=I();return reactQuery.useQuery({queryKey:rl(e.slug,e.source),queryFn:()=>r.getOrderbook(e.slug,e.source),enabled:!!e.slug,refetchInterval:5e3,...t})}function sl(e,t){return ["predict-v2","market-trades",e,t]}function rs(e,t={}){let r=I(),n={source:e.source,limit:e.limit,cursor:e.cursor,side:e.side};return reactQuery.useQuery({queryKey:sl(e.slug,n),queryFn:()=>r.listMarketTrades(e.slug,n),enabled:!!e.slug,...t})}function il(e,t){return ["predict-v2","candlesticks",e,t]}function lx(e,t={}){let r=I(),n={interval:e.interval,limit:e.limit};return reactQuery.useQuery({queryKey:il(e.slug,n),queryFn:()=>r.listCandlesticks(e.slug,n),enabled:!!e.slug,staleTime:6e4,...t})}function ll(e,t){return ["predict-v2","positions",e,t]}function rr(e,t={}){let r=I();return reactQuery.useQuery({queryKey:ll(e.source,e.user),queryFn:()=>r.getPositions(e.source,e.user),enabled:!!e.user,staleTime:1e4,...t})}function ul(e){return ["predict-v2","orders",e]}function ns(e,t={}){let r=I();return reactQuery.useQuery({queryKey:ul(e),queryFn:()=>r.listOrders(e),enabled:!!e.wallet_address,...t})}function pl(e,t){return ["predict-v2","order",e,t]}function ss(e,t={}){let r=I();return reactQuery.useQuery({queryKey:pl(e.id,e.source),queryFn:()=>r.getOrder(e.id,e.source),enabled:!!e.id,refetchInterval:1e3,...t})}function os(e={}){let t=I(),r=reactQuery.useQueryClient();return reactQuery.useMutation({mutationFn:n=>t.cancelOrder(n.id,n.source),onSuccess:()=>{r.invalidateQueries({queryKey:["predict-v2","orders"]});},...e})}function gl(e){return ["predict-v2","dflow-quote",e]}function is(e,t={}){let r=I(),n=!!e.inputMint&&!!e.outputMint&&!!e.userPublicKey&&e.amount!=="0"&&e.amount!=="";return reactQuery.useQuery({queryKey:gl(e),queryFn:()=>r.createDFlowQuote(e),enabled:n,staleTime:1e4,...t})}function as(e={}){let t=I(),r=reactQuery.useQueryClient();return reactQuery.useMutation({mutationFn:n=>t.submitDFlowTransaction(n),onSuccess:()=>{r.invalidateQueries({queryKey:["predict-v2","orders"]}),r.invalidateQueries({queryKey:["predict-v2","positions"]});},...e})}function hl(e){return ["predict-v2","trades-by-wallet",e]}function ls(e,t={}){let r=I();return reactQuery.useQuery({queryKey:hl(e),queryFn:()=>r.listTradesByWallet(e),enabled:!!e.wallet,...t})}var pt=react.createContext({});var Fe=react.createContext(null);function cs(){let e=react.useContext(pt);if(!e)throw new Error("usePredictContext must be used within a PredictProvider");return e}function P(){let{client:e}=cs();return e}function wl(e){return ["predict","events",e??{}]}async function _r(e,t){return await e.getEvents(t)}function mb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:wl(e),queryFn:async()=>_r(r,e),...t})}function Tl(e){return ["predict","events","infinite",e??{}]}function us(e={},t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:Tl(e),queryFn:async({pageParam:n})=>_r(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:n=>n.cursor??void 0,...t})}function Nl(e){return ["predict","event","byId",e.id,e.withNestedMarkets]}async function Rl(e,t){return await e.getEventById(t.id,t.withNestedMarkets)}function nr(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Nl(e),queryFn:async()=>Rl(r,e),...t})}function Vl(e){return ["predict","markets",e??{}]}async function Il(e,t){return await e.getMarkets(t)}function Cb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Vl(e),queryFn:async()=>Il(r,e),...t})}function Ql(e){return ["predict","market","byId",e.id]}async function Bl(e,t){return await e.getMarketById(t.id)}function Mb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Ql(e),queryFn:async()=>Bl(r,e),...t})}function _l(e){return ["predict","market","byMint",e]}async function Dl(e,t){return await e.getMarketByMint(t)}function Vb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:_l(e),queryFn:async()=>Dl(r,e),...t})}function Al(e){return ["predict","markets","batch",e]}async function Wl(e,t){return await e.getMarketsBatch(t)}function Bb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Al(e),queryFn:async()=>Wl(r,e),enabled:!!(e.tickers?.length||e.mints?.length),...t})}function ql(e){return ["predict","orderBook",e]}async function Hl(e,t){return await e.getOrderbook(t)}function mt(e,t={}){let r=P();return reactQuery.useQuery({queryKey:ql(e),queryFn:async()=>Hl(r,e),...t})}function Kl(e){return ["predict","orderBook","byMint",e]}async function $l(e,t){return await e.getOrderbookByMint(t)}function Fb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Kl(e),queryFn:async()=>$l(r,e),...t})}function zl(e){return ["predict","trades",e??{}]}async function Yl(e,t){return await e.getTrades(t)}function ms(e,t={}){let r=P();return reactQuery.useQuery({queryKey:zl(e),queryFn:async()=>Yl(r,e),...t})}function Gl(e){return ["predict","trades","byMint",e]}async function jl(e,t){return await e.getTradesByMint(t)}function Hb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Gl(e),queryFn:async()=>jl(r,e),...t})}function Xl(e){return ["predict","onchainTrades","byWallet",e]}async function Fr(e,t){return await e.getOnchainTradesByWallet(t)}function fs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Xl(e),queryFn:async()=>Fr(r,e),...t})}function Zl(e){return ["predict","onchainTrades","byEvent",e]}async function Ar(e,t){return await e.getOnchainTradesByEvent(t)}function Yb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Zl(e),queryFn:async()=>Ar(r,e),...t})}function Jl(e){return ["predict","onchainTrades","byMarket",e]}async function Wr(e,t){return await e.getOnchainTradesByMarket(t)}function Gb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Jl(e),queryFn:async()=>Wr(r,e),...t})}function Hr(e){return e.cursor??void 0}function ec(e){return ["predict","onchainTrades","byWallet","infinite",e]}function eh(e,t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:ec(e),queryFn:async({pageParam:n})=>Fr(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:Hr,...t})}function tc(e){return ["predict","onchainTrades","byEvent","infinite",e]}function th(e,t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:tc(e),queryFn:async({pageParam:n})=>Ar(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:Hr,...t})}function rc(e){return ["predict","onchainTrades","byMarket","infinite",e]}function rh(e,t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:rc(e),queryFn:async({pageParam:n})=>Wr(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:Hr,...t})}function nc(e){return ["predict","candlesticks","event",e]}async function sc(e,t){let{ticker:r,...n}=t;return await e.getEventCandlesticks(r,n)}function ih(e,t={}){let r=P();return reactQuery.useQuery({queryKey:nc(e),queryFn:async()=>sc(r,e),...t})}function Mt(e){return ["predict","candlesticks","market",e]}async function Nt(e,t){let{ticker:r,...n}=t;return await e.getMarketCandlesticks(r,n)}function $r(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Mt(e),queryFn:async()=>Nt(r,e),...t})}function oc(e){return ["predict","candlesticks","market","byMint",e]}async function ic(e,t){let{mintAddress:r,...n}=t;return await e.getMarketCandlesticksByMint(r,n)}function ah(e,t={}){let r=P();return reactQuery.useQuery({queryKey:oc(e),queryFn:async()=>ic(r,e),...t})}var lh=$r;function ac(e){return ["predict","forecast","percentileHistory",e]}async function lc(e,t){return await e.getEventForecastPercentileHistory(t)}function ph(e,t={}){let r=P();return reactQuery.useQuery({queryKey:ac(e),queryFn:async()=>lc(r,e),...t})}function cc(e){return ["predict","forecast","percentileHistory","byMint",e]}async function uc(e,t){return await e.getEventForecastPercentileHistoryByMint(t)}function mh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:cc(e),queryFn:async()=>uc(r,e),...t})}function dc(e){return ["predict","liveData",e]}async function pc(e,t){return await e.getLiveData(t)}function vh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:dc(e),queryFn:async()=>pc(r,e),enabled:e.milestoneIds.length>0,...t})}function mc(e){return ["predict","liveData","byEvent",e]}async function fc(e,t){return await e.getLiveDataByEvent(t)}function xh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:mc(e),queryFn:async()=>fc(r,e),enabled:!!e.eventTicker,...t})}function yc(e){return ["predict","liveData","byMint",e]}async function gc(e,t){return await e.getLiveDataByMint(t)}function bh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:yc(e),queryFn:async()=>gc(r,e),enabled:!!e.mintAddress,...t})}function vc(e){return ["predict","series",e??{}]}async function xc(e,t){return await e.getSeries(t)}function vs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:vc(e),queryFn:async()=>xc(r,e),...t})}function bc(e){return ["predict","series","byTicker",e]}async function hc(e,t){return await e.getSeriesByTicker(t)}function xs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:bc(e),queryFn:async()=>hc(r,e),...t})}function kc(){return ["predict","tags","byCategories"]}async function Pc(e){return await e.getTagsByCategories()}function Yr(e={}){let t=P();return reactQuery.useQuery({queryKey:kc(),queryFn:async()=>Pc(t),...e})}function Sc(){return ["predict","filters","bySports"]}async function Cc(e){return await e.getFiltersBySports()}function Eh(e={}){let t=P();return reactQuery.useQuery({queryKey:Sc(),queryFn:async()=>Cc(t),...e})}var Th=Yr;function Ec(e){return ["predict","search",e]}async function Tc(e,t){return await e.search(t)}function Oh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Ec(e),queryFn:async()=>Tc(r,e),...t})}function Nc(e){return ["predict","positions","byWallet",e]}async function Rc(e,t){return await e.getPositionsByWallet(t)}function hs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Nc(e),queryFn:async()=>Rc(r,e),...t})}function _h(){let e=react.useContext(Fe);if(!e)throw new Error("useUserPredictContext must be used within a UserPredictProvider");return e}function ks(e){let t=react.useContext(Fe);return react.useMemo(()=>t?{positions:t.positions.filter(n=>n.market?.ticker===e.ticker),isLoading:t.isLoading,isAvailable:true}:{positions:[],isLoading:false,isAvailable:false},[t,e.ticker])}function Bc(e){return ["predict","outcomeMints",e??{}]}async function Uc(e,t){return await e.getOutcomeMints(t)}function Kh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Bc(e),queryFn:async()=>Uc(r,e),...t})}async function _c(e,t){return await e.filterOutcomeMints(t)}function $h(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>_c(t,r),...e})}function Fc(e){return ["predict","quote",e]}async function Ac(e,t){return await e.getQuote(t)}function jh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Fc(e),queryFn:async()=>Ac(r,e),enabled:!!(e.inputMint&&e.outputMint&&e.amount>0),staleTime:1e4,gcTime:3e4,...t})}async function Wc(e,t){return await e.createSwap(t)}function e0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>Wc(t,r),...e})}async function qc(e,t){return await e.createSwapInstructions(t)}function t0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>qc(t,r),...e})}function Hc(e){return ["predict","order",e]}async function Kc(e,t){return await e.getOrder(t)}function Cs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Hc(e),queryFn:async()=>Kc(r,e),enabled:!!(e.inputMint&&e.outputMint&&e.amount>0),staleTime:1e4,gcTime:3e4,...t})}function $c(e){return ["predict","order","status",e.signature]}async function zc(e,t){return await e.getOrderStatus(t)}function ws(e,t={}){let r=P();return reactQuery.useQuery({queryKey:$c(e),queryFn:async()=>zc(r,e),enabled:!!e.signature,refetchInterval:t.refetchInterval??3e3,retry:false,...t})}function jc(e){return ["predict","intent","quote",e]}async function Xc(e,t){return await e.getIntentQuote(t)}function l0(e,t={}){let r=P();return reactQuery.useQuery({queryKey:jc(e),queryFn:async()=>Xc(r,e),enabled:!!(e.inputMint&&e.outputMint&&e.amount>0),staleTime:1e4,gcTime:3e4,...t})}async function Zc(e,t){return await e.submitIntentSwap(t)}function c0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>Zc(t,r),...e})}async function eu(e,t){return await e.initPredictionMarket(t)}function m0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>eu(t,r),...e})}function tu(){return ["predict","tokens"]}async function ru(e){return await e.getTokens()}function v0(e={}){let t=P();return reactQuery.useQuery({queryKey:tu(),queryFn:async()=>ru(t),staleTime:300*1e3,gcTime:1800*1e3,...e})}function nu(){return ["predict","tokens","decimals"]}async function su(e){return await e.getTokensWithDecimals()}function x0(e={}){let t=P();return reactQuery.useQuery({queryKey:nu(),queryFn:async()=>su(t),staleTime:300*1e3,gcTime:1800*1e3,...e})}function iu(){return ["predict","venues"]}async function au(e){return await e.getVenues()}function P0(e={}){let t=P();return reactQuery.useQuery({queryKey:iu(),queryFn:async()=>au(t),staleTime:300*1e3,gcTime:1800*1e3,...e})}var Rt=class{ws=null;wsUrl;autoReconnect;reconnectIntervalBase;reconnectMaxInterval;pingInterval;status="disconnected";reconnectAttempts=0;reconnectTimeout=null;pingIntervalId=null;shouldReconnect=true;listeners={connect:[],disconnect:[],reconnecting:[],error:[],price:[],trade:[],orderbook:[],status:[],subscribed:[],unsubscribed:[]};subscriptions={prices:{all:false,tickers:new Set},trades:{all:false,tickers:new Set},orderbook:{all:false,tickers:new Set}};constructor(t){this.wsUrl=t.wsUrl,this.autoReconnect=t.autoReconnect??true,this.reconnectIntervalBase=t.reconnectIntervalBase??1e3,this.reconnectMaxInterval=t.reconnectMaxInterval??3e4,this.pingInterval=t.pingInterval??3e4,t.autoConnect!==false&&this.connect();}connect(){if(!(this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING))){this.shouldReconnect=true,this.setStatus("connecting");try{this.ws=new WebSocket(this.wsUrl),this.ws.onopen=()=>{this.reconnectAttempts=0,this.setStatus("connected"),this.emit("connect",void 0),this.restoreSubscriptions(),this.startPingInterval();},this.ws.onmessage=t=>{this.handleMessage(t.data);},this.ws.onerror=t=>{let r=new Error("WebSocket error");this.emit("error",r);},this.ws.onclose=t=>{this.stopPingInterval(),this.setStatus("disconnected"),this.emit("disconnect",{code:t.code,reason:t.reason}),this.shouldReconnect&&this.autoReconnect&&this.scheduleReconnect();};}catch(t){this.emit("error",t instanceof Error?t:new Error(String(t))),this.shouldReconnect&&this.autoReconnect&&this.scheduleReconnect();}}}disconnect(){this.shouldReconnect=false,this.stopPingInterval(),this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.ws&&(this.ws.close(),this.ws=null),this.setStatus("disconnected");}isConnected(){return this.ws!==null&&this.ws.readyState===WebSocket.OPEN}getStatus(){return this.status}subscribePrices(t,r){this.subscribeChannel("prices",t);let n=this.on("price",r);return ()=>{n(),this.unsubscribeChannel("prices",t);}}subscribeTrades(t,r){this.subscribeChannel("trades",t);let n=this.on("trade",r);return ()=>{n(),this.unsubscribeChannel("trades",t);}}subscribeOrderbook(t,r){this.subscribeChannel("orderbook",t);let n=this.on("orderbook",r);return ()=>{n(),this.unsubscribeChannel("orderbook",t);}}onStatusChange(t){return this.on("status",t)}on(t,r){return this.listeners[t].push(r),()=>{this.off(t,r);}}off(t,r){let n=this.listeners[t],s=n.indexOf(r);s!==-1&&n.splice(s,1);}removeAllListeners(t){if(t)this.listeners[t].length=0;else for(let r of Object.keys(this.listeners))this.listeners[r].length=0;}subscribeChannel(t,r){let n=this.subscriptions[t];if(r.all)n.all=true,n.tickers.clear();else if(r.tickers&&r.tickers.length>0){n.all=false;for(let s of r.tickers)n.tickers.add(s);}this.sendSubscription("subscribe",t,r);}unsubscribeChannel(t,r){let n=this.subscriptions[t];if(r.all)n.all=false,n.tickers.clear();else if(r.tickers&&r.tickers.length>0)for(let s of r.tickers)n.tickers.delete(s);this.sendSubscription("unsubscribe",t,r);}setStatus(t){this.status!==t&&(this.status=t,this.emit("status",t));}emit(t,r){let n=this.listeners[t];for(let s of n)try{s(r);}catch{}}send(t){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return false;try{return this.ws.send(JSON.stringify(t)),!0}catch{return false}}sendSubscription(t,r,n){this.send({type:t,channel:r,all:n.all,tickers:n.tickers});}handleMessage(t){try{let r=JSON.parse(t);switch(r.type){case "ticker":this.emit("price",r);break;case "trade":this.emit("trade",r);break;case "orderbook":this.emit("orderbook",r);break;case "status":break;case "subscribed":this.emit("subscribed",{channel:r.channel,all:r.all,tickers:r.tickers});break;case "unsubscribed":this.emit("unsubscribed",{channel:r.channel,all:r.all,tickers:r.tickers});break;case "pong":break;case "error":this.emit("error",new Error(r.message));break;default:if("channel"in r){let n=r;switch(n.channel){case "prices":this.emit("price",n);break;case "trades":this.emit("trade",n);break;case "orderbook":this.emit("orderbook",n);break}}}}catch{}}scheduleReconnect(){if(this.reconnectTimeout)return;let t=Math.min(this.reconnectIntervalBase*Math.pow(2,this.reconnectAttempts),this.reconnectMaxInterval);this.setStatus("reconnecting"),this.emit("reconnecting",{attempt:this.reconnectAttempts+1,delay:t}),this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,this.reconnectAttempts++,this.connect();},t);}restoreSubscriptions(){for(let t of ["prices","trades","orderbook"]){let r=this.subscriptions[t];r.all?this.sendSubscription("subscribe",t,{all:true}):r.tickers.size>0&&this.sendSubscription("subscribe",t,{tickers:Array.from(r.tickers)});}}startPingInterval(){this.stopPingInterval(),this.pingIntervalId=setInterval(()=>{this.send({type:"ping"});},this.pingInterval);}stopPingInterval(){this.pingIntervalId&&(clearInterval(this.pingIntervalId),this.pingIntervalId=null);}};function sr(e){return new Rt(e)}function M0({wsEndpoint:e,autoConnect:t=true,autoReconnect:r=true,enabled:n=true}){let[s,i]=react.useState("disconnected"),[o,a]=react.useState(null),l=react.useRef(null);react.useEffect(()=>{if(!n){l.current&&(l.current.disconnect(),l.current=null),i("disconnected");return}let d=sr({wsUrl:e,autoConnect:t,autoReconnect:r});l.current=d;let m=d.on("status",g=>{i(g);}),y=d.on("error",g=>{a(g);}),f=d.on("connect",()=>{a(null);});return ()=>{m(),y(),f(),d.disconnect(),l.current=null;}},[e,t,r,n]);let c=react.useCallback(()=>{l.current?.connect();},[]),u=react.useCallback(()=>{l.current?.disconnect();},[]);return {client:l.current,status:s,isConnected:s==="connected",connect:c,disconnect:u,error:o}}function V0(){let e=react.useContext(pt);if(!e)throw new Error("useWsClient must be used within a PredictProvider");let{wsClient:t}=e,[r,n]=react.useState(t?.getStatus()??"disconnected");return react.useEffect(()=>{if(!t){n("disconnected");return}return n(t.getStatus()),t.onStatusChange(n)},[t]),{wsClient:t,wsStatus:r,isWsConnected:r==="connected"}}function Q0({client:e,all:t=false,tickers:r=[],enabled:n=true,onUpdate:s}){let[i,o]=react.useState(new Map),[a,l]=react.useState(false),c=react.useRef(s);return react.useEffect(()=>{c.current=s;},[s]),react.useEffect(()=>{if(!e||!n){l(false);return}if(!t&&r.length===0)return;let u=t?{all:true}:{tickers:r},p=e.subscribePrices(u,d=>{o(m=>{let y=new Map(m);return y.set(d.market_ticker,{yesBid:d.yes_bid,yesAsk:d.yes_ask,noBid:d.no_bid,noAsk:d.no_ask,updatedAt:Date.now()}),y}),c.current?.(d);});return l(true),()=>{p(),l(false);}},[e,t,r.join(","),n]),{prices:i,isSubscribed:a}}function _0({client:e,all:t=false,tickers:r=[],enabled:n=true,maxHistory:s=100,onUpdate:i}){let[o,a]=react.useState([]),[l,c]=react.useState(false),u=react.useRef(i);react.useEffect(()=>{u.current=i;},[i]),react.useEffect(()=>{if(!e||!n){c(false);return}if(!t&&r.length===0)return;let d=t?{all:true}:{tickers:r},m=e.subscribeTrades(d,y=>{let f={tradeId:y.trade_id,marketTicker:y.market_ticker,price:y.price,count:y.count,yesPrice:y.yes_price,noPrice:y.no_price,takerSide:y.taker_side,createdTime:y.created_time};a(g=>{let x=[f,...g];return x.length>s?x.slice(0,s):x}),u.current?.(y);});return c(true),()=>{m(),c(false);}},[e,t,r.join(","),n,s]);let p=react.useCallback(()=>{a([]);},[]);return {trades:o,isSubscribed:l,clearHistory:p}}function A0({client:e,all:t=false,tickers:r=[],enabled:n=true,onUpdate:s}){let[i,o]=react.useState(new Map),[a,l]=react.useState(false),c=react.useRef(s);react.useEffect(()=>{c.current=s;},[s]),react.useEffect(()=>{if(!e||!n){l(false);return}if(!t&&r.length===0)return;let p=t?{all:true}:{tickers:r},d=e.subscribeOrderbook(p,m=>{o(y=>{let f=new Map(y);return f.set(m.market_ticker,{yesBids:m.yes_bids,yesAsks:m.yes_asks,noBids:m.no_bids,noAsks:m.no_asks,updatedAt:Date.now()}),f}),c.current?.(m);});return l(true),()=>{d(),l(false);}},[e,t,r.join(","),n]);let u=react.useCallback(p=>i.get(p),[i]);return {orderbooks:i,isSubscribed:a,getOrderbook:u}}var Qs=["Politics","Sports","Culture","Crypto","Climate","Economics","Mentions","Companies","Financials","Tech & Science"];function Bs(){let{data:e,isLoading:t,isError:r,error:n}=Yr();return {data:react.useMemo(()=>{if(!e?.tagsByCategories)return [];let i=o=>{let a=Qs.indexOf(o);return a===-1?Qs.length:a};return Object.entries(e.tagsByCategories).map(([o,a])=>({category:o,tags:a})).sort((o,a)=>i(o.category)-i(a.category))},[e]),isLoading:t,isError:r,error:n??null}}function ir({categories:e,selectedCategory:t,selectedTag:r,activeTags:n,onCategorySelect:s,onTagSelect:i,trailing:o,pulsingTab:a="Trending",className:l}){let{t:c}=i18n.useTranslation(),u=react.useCallback(()=>{s(null);},[s]),p=c("predict.categories.trending");return jsxRuntime.jsxs("div",{className:ui.cn("sticky top-0 z-30 flex w-full flex-col justify-between gap-2 px-4 py-1 lg:px-2 lg:py-1",l),children:[jsxRuntime.jsxs("div",{className:"flex w-full items-center gap-2",children:[jsxRuntime.jsx("div",{className:"hideScrollbar min-w-0 flex-1 overflow-x-auto overflow-y-hidden",children:jsxRuntime.jsxs("div",{className:"flex min-h-8 items-stretch gap-x-2 lg:min-h-9",children:[jsxRuntime.jsx(Us,{label:p,isSelected:t===null,onPress:u,showPulse:p===a}),jsxRuntime.jsx(Pu,{}),e.map(d=>jsxRuntime.jsx(Us,{label:d.category,isSelected:t===d.category,onPress:()=>s(d.category),badge:d.badge,showPulse:d.category===a},d.category))]})}),o&&jsxRuntime.jsx("div",{className:"flex-shrink-0",children:o})]}),t&&n.length>0&&jsxRuntime.jsx("div",{className:"hideScrollbar overflow-x-auto overflow-y-hidden flex items-center",children:jsxRuntime.jsxs("div",{className:"flex gap-x-1 pl-2 lg:w-full lg:gap-x-2",children:[jsxRuntime.jsx(_s,{label:c("predict.categories.allMarkets"),isSelected:r===null,onPress:()=>i(null)}),n.map(d=>jsxRuntime.jsx(_s,{label:d.label,icon:d.icon,isSelected:r===d.label,onPress:()=>i(d.label)},d.label))]})})]})}function Us({label:e,isSelected:t,onPress:r,badge:n,showPulse:s}){return jsxRuntime.jsxs("button",{type:"button",onClick:r,className:ui.cn("relative shrink-0 cursor-pointer whitespace-nowrap border-b p-1 text-base font-normal capitalize transition-colors",t?"border-primary/50 text-primary":"border-transparent text-neutral-500 hover:text-neutral-300"),children:[s?jsxRuntime.jsxs("span",{className:"flex items-center gap-x-1.5",children:[jsxRuntime.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-[rgb(240,68,56)]"}),jsxRuntime.jsx("span",{children:e})]}):e,n&&jsxRuntime.jsx("span",{className:"absolute -right-1 top-0 rounded bg-primary px-0.5 py-px text-[0.625rem] font-semibold leading-none text-neutral-950",children:n})]})}function Pu(){return jsxRuntime.jsx("span",{className:"flex items-center text-neutral-600","aria-hidden":"true",children:"|"})}function _s({label:e,icon:t,isSelected:r,onPress:n}){return jsxRuntime.jsxs("button",{type:"button",onClick:n,className:ui.cn("flex shrink-0 items-center justify-center gap-x-1 min-w-14 rounded-2xl border px-2 py-1 text-sm font-medium uppercase transition-colors cursor-pointer",r?"border-transparent bg-primary text-black":"border-border/80 text-neutral-200 hover:bg-primary/10 hover:text-primary"),children:[t&&jsxRuntime.jsx("span",{className:ui.cn("iconify size-4",t)}),e]})}function ar({count:e=6}){return jsxRuntime.jsx("div",{className:"flex items-center gap-x-2",children:Array.from({length:e}).map((t,r)=>jsxRuntime.jsx(ui.Skeleton,{className:"h-6 w-16 shrink-0 rounded"},r))})}function Ws({onSelect:e,className:t}){let{data:r,isLoading:n}=Bs(),[s,i]=react.useState(null),[o,a]=react.useState(null),l=react.useCallback(d=>{if(i(d),a(null),!d)e?.({category:null,tags:null});else {let m=r.find(y=>y.category===d);e?.({category:d,tags:m?.tags??null});}},[r,e]),c=react.useCallback(d=>{if(a(d),d)e?.({category:s,tags:[d]});else {let m=r.find(y=>y.category===s);e?.({category:s,tags:m?.tags??null});}},[r,s,e]);if(n)return jsxRuntime.jsx(ar,{});let p=(r.find(d=>d.category===s)?.tags??[]).map(d=>({label:d}));return jsxRuntime.jsx(ir,{categories:r,selectedCategory:s,selectedTag:o,activeTags:p,onCategorySelect:l,onTagSelect:c,className:t})}function qs(e={}){let{category:t,tags:r,...n}=e,s=!!t||!!r&&r.length>0,{data:i,isFetching:o,isError:a,error:l}=vs({...t?{category:t}:{},...r&&r.length>0?{tags:r.join(",")}:{},isInitialized:true,status:"active"},{enabled:s}),c=react.useMemo(()=>{if(!s||!i?.series)return;let E=i.series.map(C=>C.ticker).slice(0,25);return E.length>0?E.join(","):void 0},[s,i]),u=react.useMemo(()=>({status:"active",withNestedMarkets:true,sort:"volume24h",order:"desc",limit:48,...n,...c!==void 0?{seriesTickers:c}:{}}),[n,c]),{data:p,isLoading:d,isFetching:m,isFetchingNextPage:y,isError:f,error:g,hasNextPage:x,fetchNextPage:b,refetch:h}=us(u),v=react.useMemo(()=>p?.pages.flatMap(E=>E.events)??[],[p]),w=s&&!i&&!a;return {data:v,isLoading:w||d,isFetching:o||w||m&&!y,isFetchingMore:y,isError:a||f,error:l??g,hasMore:x,fetchMore:b,refetch:h}}function wu({className:e}){return jsxRuntime.jsx(ui.Skeleton,{className:ui.cn("min-h-52 w-full rounded-xl border border-border/80 lg:min-h-72",e)})}function Ot({count:e=12}){return jsxRuntime.jsx("div",{className:"@container w-full h-full",children:jsxRuntime.jsx("div",{className:"grid w-full grid-cols-1 gap-4 @[768px]:grid-cols-2 @[1024px]:grid-cols-3 @[1280px]:grid-cols-4",children:Array.from({length:e}).map((t,r)=>jsxRuntime.jsx(wu,{},r))})})}function $k(){return jsxRuntime.jsxs("div",{className:"flex h-full w-full flex-col gap-y-3",children:[jsxRuntime.jsx(ar,{}),jsxRuntime.jsx("div",{className:"min-h-0 flex-1",children:jsxRuntime.jsx(Ot,{})})]})}function Hs({value:e,showLabel:t=true}){let r=e/100;return jsxRuntime.jsx("div",{className:"flex-shrink-0 flex flex-col items-center",children:jsxRuntime.jsxs("div",{className:"relative w-16 h-12 lg:w-20 lg:h-14",children:[jsxRuntime.jsxs("svg",{className:"w-full h-full",viewBox:"0 0 100 70",children:[jsxRuntime.jsx("path",{d:"M 10 55 A 40 40 0 0 1 90 55",fill:"none",className:"stroke-default-200",strokeWidth:"6",strokeLinecap:"round"}),jsxRuntime.jsx("path",{d:"M 10 55 A 40 40 0 0 1 90 55",fill:"none",className:"stroke-primary",strokeWidth:"6",strokeLinecap:"round",strokeDasharray:`${r*125.6} 125.6`,style:{transition:"stroke-dasharray 0.5s ease-in-out"}})]}),t&&jsxRuntime.jsx("div",{className:"absolute inset-0 flex items-center justify-center pt-3 lg:pt-4",children:jsxRuntime.jsxs("span",{className:"text-sm font-bold text-foreground lg:text-base leading-none",children:[e.toFixed(0),"%"]})})]})})}function zs({event:e,onSelect:t,onSelectOutcome:r}){let{t:n}=i18n.useTranslation(),[s,i]=react.useState(null),o=e.markets||[],a=o.length>2?[...o].sort((C,L)=>Number(L.yesAsk??0)-Number(C.yesAsk??0)):o,l=a.filter(C=>C.status==="active"),c=a.length===1,u=c?a[0]:s,p=react.useMemo(()=>utils.formatAmountUSDCompact((e.volume??0)/100),[e.volume]),d=C=>C.yesAsk?parseFloat(C.yesAsk)*100:null,m=C=>C.noAsk?parseFloat(C.noAsk)*100:null,y=C=>{let L=d(C),Q=m(C);return L!=null?Q==null&&L<=1?"< 1%":g(L):Q!=null?Q<=1?"> 99%":g(100-Q):"0%"},f=C=>{let L=d(C),Q=m(C);return Q!=null?L==null&&Q<=1?"< 1%":g(Q):L!=null?L<=1?"> 99%":g(100-L):"0%"},g=C=>C!=null?`${C.toFixed(0)}%`:"--",x=react.useMemo(()=>{let C=a.some(Q=>Q.status==="active");return a.every(Q=>Q.status==="closed"||Q.status==="determined")?{label:n("predict.event.status.closed"),color:"bg-danger-100/50 text-danger"}:C?{label:n("predict.event.status.live"),color:"bg-primary-100/50 text-primary"}:{label:n("predict.event.status.pending"),color:"bg-warning-100/50 text-warning"}},[a,n]),b=C=>{i(C);},h=()=>{i(null);},v=()=>{u&&r&&r(e,u,"yes");},w=()=>{u&&r&&r(e,u,"no");},O=()=>{t&&t(e);},k=l.slice(0,2),E=l.length>2;return jsxRuntime.jsxs("div",{className:"flex h-full w-full flex-col justify-between gap-y-1.5 rounded-xl border border-border bg-content1 p-3 transition-all duration-300 cursor-pointer hover:border-primary hover:ring-2 hover:ring-primary/20 focus-within:border-primary focus-within:bg-content2 focus-within:ring-2 focus-within:ring-primary/20 @5xl:gap-y-3 @5xl:p-4",onClick:O,children:[jsxRuntime.jsxs("div",{className:"flex w-full flex-1 flex-col gap-y-1.5 @5xl:gap-y-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsx(ui.Avatar,{src:e.imageUrl||void 0,name:e.title||"Event",radius:"md",className:"h-8 w-8 flex-shrink-0 transition-transform duration-300 group-hover:scale-110 @5xl:h-12 @5xl:w-12"}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.title,placement:"bottom",children:jsxRuntime.jsx("p",{className:"flex-1 min-w-0 h-10 @5xl:h-12 text-sm font-semibold @5xl:text-base line-clamp-2",children:e.title})}),c?jsxRuntime.jsx(Hs,{value:d(a[0])??50}):x.label!==n("predict.event.status.live")&&jsxRuntime.jsx("div",{className:`flex-shrink-0 flex items-center gap-x-2 rounded-lg px-2 py-1 text-sm @5xl:px-4 @5xl:py-2 ${x.color}`,children:jsxRuntime.jsx("span",{children:x.label})})]}),u&&!c&&jsxRuntime.jsxs("button",{type:"button",className:"flex min-h-9 w-full items-center justify-between gap-x-2 transition-opacity hover:cursor-pointer hover:opacity-80",onClick:C=>{C.stopPropagation(),h();},children:[jsxRuntime.jsx("span",{className:"text-left text-xs text-foreground @5xl:text-sm line-clamp-1",children:u.yesSubTitle}),jsxRuntime.jsxs("div",{className:"flex items-center gap-x-2",children:[jsxRuntime.jsx("span",{className:"text-sm font-semibold text-foreground @5xl:text-lg",children:y(u)}),jsxRuntime.jsx(ui.ChevronUpIcon,{className:"w-3 h-3 text-default-500 @5xl:w-4 @5xl:h-4"})]})]}),!u&&!c&&k.length>0&&jsxRuntime.jsxs("div",{className:"flex w-full flex-col gap-y-0.5 text-xs @5xl:gap-y-1 @5xl:text-sm",children:[k.map(C=>jsxRuntime.jsxs("button",{type:"button",className:"flex min-h-8 w-full items-center justify-between gap-x-2 transition-opacity hover:cursor-pointer hover:opacity-80",onClick:L=>{L.stopPropagation(),b(C);},children:[jsxRuntime.jsx("span",{className:"text-left text-xs text-foreground @5xl:text-sm line-clamp-1",children:C.yesSubTitle}),jsxRuntime.jsxs("div",{className:"flex items-center gap-x-2",children:[jsxRuntime.jsx("span",{className:"text-xs text-foreground @5xl:text-base",children:y(C)}),jsxRuntime.jsxs("div",{className:"flex h-full items-center gap-x-3 rounded-lg p-1 @5xl:p-1.5 bg-gradient-to-r from-primary-50/20 via-primary-50/20 to-secondary-50/20",children:[jsxRuntime.jsx("span",{className:"text-primary",children:n("predict.market.yes")}),jsxRuntime.jsx("span",{className:"text-default-400",children:"/"}),jsxRuntime.jsx("span",{className:"text-secondary",children:n("predict.market.no")})]})]})]},C.ticker)),E&&jsxRuntime.jsx("span",{className:"text-xxs text-default-500 @5xl:text-xs",children:n("predict.event.moreMarkets",{count:l.length-2})})]}),u&&jsxRuntime.jsxs("div",{className:`flex items-center gap-x-2 text-sm @5xl:text-base ${c?"mt-3":""}`,children:[jsxRuntime.jsxs(ui.Button,{color:"primary",fullWidth:true,className:"group/yes bg-primary-100 text-primary @3xl:!h-12 @3xl:!text-base",size:"sm",onPress:v,children:[jsxRuntime.jsx("span",{className:"group-hover/yes:hidden",children:n("predict.market.yes")}),jsxRuntime.jsx("span",{className:"hidden group-hover/yes:inline",children:y(u)})]}),jsxRuntime.jsxs(ui.Button,{color:"secondary",fullWidth:true,className:"group/no bg-secondary-100 text-secondary @3xl:!h-12 @3xl:!text-base",size:"sm",onPress:w,children:[jsxRuntime.jsx("span",{className:"group-hover/no:hidden",children:n("predict.market.no")}),jsxRuntime.jsx("span",{className:"hidden group-hover/no:inline",children:f(u)})]})]})]}),!u||c?jsxRuntime.jsxs("div",{className:"flex items-center justify-between gap-x-2",children:[jsxRuntime.jsxs("button",{type:"button",className:"flex items-center gap-x-1 text-xxs text-default-600 hover:text-foreground @5xl:text-xs",onClick:C=>{C.stopPropagation(),O();},children:[jsxRuntime.jsx("span",{children:n("predict.event.showMore")}),jsxRuntime.jsx(ui.ChevronRightIcon,{className:"h-3 w-3 @5xl:h-4 @5xl:w-4"})]}),jsxRuntime.jsxs("span",{className:"text-xxs text-default-600 @5xl:text-xs",children:[p," ",n("predict.event.volume")]})]}):jsxRuntime.jsxs("button",{type:"button",className:"flex items-center cursor-pointer gap-x-1 text-xxs text-default-600 hover:text-foreground @5xl:text-xs",onClick:C=>{C.stopPropagation(),h();},children:[jsxRuntime.jsx(ui.ChevronLeftIcon,{className:"h-3 w-3 @5xl:h-4 @5xl:w-4"}),jsxRuntime.jsx("span",{children:n("predict.event.back")})]})]})}var Fu=640,Au=768,Gs=1024,Wu=1280,qu=16,Hu=192,Ku=228,$u=244;function zu(e){return e>=Wu?4:e>=Gs?3:e>=Fu?2:1}function Yu(e){return e>=Gs?$u:e>=Au?Ku:Hu}function js({events:e,hasMore:t=false,onFetchMore:r,onSelect:n,onSelectOutcome:s}){let i=react.useRef(null),{width:o=0,height:a=0}=hooks.useResizeObserver({ref:i}),l=zu(o),c=Yu(o),u=Math.ceil(e.length/l)||0,p=t?u+1:u,d=react.useCallback(f=>f<u,[u]),m=react.useCallback(async()=>{r?.();},[r]),y=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:d,loadMoreRows:m,rowCount:p,threshold:3});return jsxRuntime.jsx("div",{ref:i,className:"@container w-full h-full",children:a>0&&jsxRuntime.jsx(reactWindow.List,{style:{height:a},onRowsRendered:y,rowComponent:Gu,rowCount:p,rowHeight:c,rowProps:{events:e,columnCount:l,dataRowCount:u,gap:qu,onSelect:n,onSelectOutcome:s}})})}function Gu({index:e,style:t,events:r,columnCount:n,dataRowCount:s,gap:i,onSelect:o,onSelectOutcome:a}){if(e>=s)return jsxRuntime.jsx("div",{style:t,className:"flex justify-center items-start pt-4",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})});let l=e*n,c=r.slice(l,l+n),u=n-c.length,p={display:"flex",gap:i,height:`calc(100% - ${i}px)`};return jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsxs("div",{style:p,children:[c.map(d=>jsxRuntime.jsx("div",{style:{flex:1,minWidth:0},children:jsxRuntime.jsx(zs,{event:d,onSelect:o,onSelectOutcome:a})},d.ticker)),u>0&&Array.from({length:u}).map((d,m)=>jsxRuntime.jsx("div",{style:{flex:1,minWidth:0}},`spacer-${m}`))]})})}function Zs({onSelect:e,onSelectOutcome:t,...r}){let{data:n,hasMore:s,fetchMore:i,isFetching:o}=qs({limit:48,...r});return o?jsxRuntime.jsx(Ot,{count:48}):jsxRuntime.jsx(js,{events:n,hasMore:s,onFetchMore:i,onSelect:e,onSelectOutcome:t})}function kP({onSelect:e,onSelectOutcome:t}){let[r,n]=react.useState({category:null,tags:null}),s=react.useCallback(i=>{n(i);},[]);return jsxRuntime.jsxs("div",{className:"flex h-full w-full flex-col gap-y-3",children:[jsxRuntime.jsx(Ws,{onSelect:s}),jsxRuntime.jsx("div",{className:"min-h-0 flex-1",children:jsxRuntime.jsx(Zs,{category:r.category,tags:r.tags,onSelect:e,onSelectOutcome:t})})]})}var ed={Weather:["Daily temperature","Snow and rain","Climate change","Natural disasters","Hurricanes"],Companies:["IPOs","Product launches","KPIs","Elon Musk","CEOs","Layoffs"],Crypto:["BTC","15 min","Hourly","ETH","SOL","DOGE","Pre-Market","XRP","BNB","HYPE"],Economics:["Growth","Fed","Inflation","Oil and energy","Employment","Housing","Jobs & Economy","Bankruptcy & Defaults","GDP","Global Central Banks"],Elections:["Primaries","International elections"],Entertainment:["Music","Movies","Music charts","Television","Awards","Video games","Oscars","Rotten Tomatoes"],Financials:["S&P","Nasdaq","Daily","Metals","Treasuries","Oil","EUR/USD","USD/JPY","WTI"],Mentions:["Politicians","Earnings","Entertainment"],Politics:["Trump","Congress","International","SCOTUS & courts","Local","Recurring","Iran","House"],Science:["AI","Energy","Space"],Social:null,Sports:["Soccer","Basketball","Baseball","Football","Hockey","Golf","Tennis","Motorsport","Esports","Boxing","MMA","Rugby","Lacrosse","Mentions","Chess","Cricket","Aussie Rules","Darts"],World:null},Js=["Politics","Sports","Crypto","Economics","Financials","Elections","Entertainment","Companies","Science and Technology","Climate and Weather","Mentions","Social","World"],Zr=(()=>{let e=t=>{let r=Js.indexOf(t);return r===-1?Js.length:r};return Object.entries(ed).map(([t,r])=>({slug:t,label:t,tags:(r??[]).map(n=>({slug:n,label:n}))})).sort((t,r)=>e(t.slug)-e(r.slug))})();function td(e){return e.map(t=>({category:t.label,tags:t.tags.map(r=>r.label)}))}function rd(e){return e?e.tags.map(t=>({label:t.label,icon:t.icon})):[]}function ro({onSelect:e,trailing:t,className:r}){let[n,s]=react.useState(null),[i,o]=react.useState(null),a=react.useCallback(d=>{s(d),o(null),e?.({categorySlug:d,tagSlug:null});},[e]),l=react.useCallback(d=>{o(d),e?.({categorySlug:n,tagSlug:d});},[n,e]),c=td(Zr),u=Zr.find(d=>d.slug===n),p=rd(u);return jsxRuntime.jsx(ir,{categories:c,selectedCategory:n,selectedTag:i,activeTags:p,onCategorySelect:a,onTagSelect:l,trailing:t,className:r})}var Jr={sortPreset:"volume",sortAsc:false,source:"dflow",timeRemaining:void 0,minVolume:void 0,minLiquidity:void 0};function en(e){let t=0;return e.source&&t++,e.timeRemaining&&t++,e.minVolume&&t++,e.minLiquidity&&t++,t}function so({isOpen:e,onClose:t,value:r,onChange:n}){let{t:s}=i18n.useTranslation(),[i,o]=react.useState(r),a=react.useCallback(g=>{g?o(r):t();},[r,t]),l=react.useCallback(()=>{o(Jr);},[]),c=react.useCallback(()=>{n(i),t();},[i,n,t]),u=react.useCallback((g,x)=>{o(b=>({...b,[g]:x}));},[]),p=react.useMemo(()=>en(i),[i]),d=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"polymarket",label:s("predict.platform.polymarket")},{value:"dflow",label:s("predict.platform.dflow")}],[s]),m=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"1d",label:s("predict.filter.lessThanDay")},{value:"7d",label:s("predict.filter.lessThanWeek")},{value:"30d",label:s("predict.filter.lessThanMonth")}],[s]),y=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"1000",label:">$1K"},{value:"10000",label:">$10K"},{value:"100000",label:">$100K"},{value:"1000000",label:">$1M"}],[s]),f=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"1000",label:">$1K"},{value:"10000",label:">$10K"},{value:"100000",label:">$100K"},{value:"1000000",label:">$1M"}],[s]);return jsxRuntime.jsx(ui.StyledModal,{isOpen:e,onOpenChange:a,size:"md",scrollBehavior:"inside",children:jsxRuntime.jsxs(ui.ModalContent,{children:[jsxRuntime.jsx(ui.ModalHeader,{className:"px-4 py-2",children:jsxRuntime.jsx("span",{className:"text-base font-semibold",children:s("predict.filter.title")})}),jsxRuntime.jsxs(ui.ModalBody,{className:"flex flex-col gap-5",children:[jsxRuntime.jsx(ur,{label:s("predict.filter.platform"),children:jsxRuntime.jsx(dr,{options:d,selected:i.source,onSelect:g=>u("source",g)})}),jsxRuntime.jsx(ur,{label:s("predict.filter.timeRemaining"),children:jsxRuntime.jsx(dr,{options:m,selected:i.timeRemaining,onSelect:g=>u("timeRemaining",g)})}),jsxRuntime.jsx(ur,{label:s("predict.filter.minVolume"),children:jsxRuntime.jsx(dr,{options:y,selected:i.minVolume,onSelect:g=>u("minVolume",g)})}),jsxRuntime.jsx(ur,{label:s("predict.filter.minLiquidity"),children:jsxRuntime.jsx(dr,{options:f,selected:i.minLiquidity,onSelect:g=>u("minLiquidity",g)})})]}),jsxRuntime.jsx(ui.ModalFooter,{className:"px-4",children:jsxRuntime.jsxs("div",{className:"w-full flex justify-between items-center",children:[jsxRuntime.jsx(ui.Button,{variant:"light",color:"default",size:"sm",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:l,children:s("predict.filter.reset")}),jsxRuntime.jsxs(ui.Button,{color:"primary",size:"sm",radius:"full",onPress:c,children:[s("predict.filter.showResults"),p>0&&jsxRuntime.jsxs("span",{className:"ml-1 text-xs opacity-80",children:["(",p,")"]})]})]})})]})})}function ur({label:e,children:t}){return jsxRuntime.jsxs("div",{className:"flex flex-col gap-2.5",children:[jsxRuntime.jsx("span",{className:"text-sm font-semibold text-foreground",children:e}),t]})}function dr({options:e,selected:t,onSelect:r,allowDeselect:n=true}){return jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2",children:e.map(s=>{let i=t===s.value;return jsxRuntime.jsx("button",{type:"button",onClick:()=>{r(i&&n?void 0:s.value);},className:ui.cn("shrink-0 rounded-lg px-3 py-1.5 text-xs font-medium transition-colors duration-150 cursor-pointer border",i?"bg-primary/15 text-primary border-primary/40":"bg-content2 text-foreground/60 border-default-100 hover:bg-default-100 hover:text-foreground"),children:s.label},s.value??"__all")})})}var lo={start_time:{sort_by:"created_at"},volume:{sort_by:"volume"},liquidity:{sort_by:"liquidity"},ending_soon:{sort_by:"end_at"}},io={start_time:"predict.sort.startTime",volume:"predict.sort.volume",liquidity:"predict.sort.liquidity",ending_soon:"predict.sort.endingSoon"},Sd=["start_time","volume","liquidity","ending_soon"];function co({sortPreset:e,onSortChange:t,sortAsc:r,onSortAscChange:n,onFilterPress:s,filterCount:i=0,className:o}){let{t:a}=i18n.useTranslation(),[l,c]=react.useState(false),u=react.useRef(null);react.useEffect(()=>{if(!l)return;let d=y=>{u.current&&!u.current.contains(y.target)&&c(false);},m=y=>{y.key==="Escape"&&c(false);};return document.addEventListener("mousedown",d),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",d),document.removeEventListener("keydown",m);}},[l]);let p=ao[e];return jsxRuntime.jsxs("div",{className:ui.cn("flex items-center gap-2",o),children:[jsxRuntime.jsxs("div",{ref:u,className:"relative flex shrink-0 items-center rounded-full border border-border",children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>c(d=>!d),className:"flex shrink-0 items-center gap-2 px-3 py-1.5 text-xs font-medium text-neutral transition-colors hover:text-primary/80 cursor-pointer",children:[jsxRuntime.jsx(p,{className:"size-[18px] shrink-0"}),jsxRuntime.jsx("span",{className:"whitespace-nowrap",children:a(io[e])})]}),jsxRuntime.jsx("div",{className:"h-6 w-px bg-border"}),jsxRuntime.jsx("button",{type:"button",onClick:()=>n(!r),className:"px-2.5 py-1.5 text-xs text-neutral transition-colors hover:text-primary/80 cursor-pointer",children:r?"\u2191":"\u2193"}),l&&jsxRuntime.jsx("div",{className:"absolute left-0 top-full z-20 mt-1 flex min-w-max flex-col gap-0.5 rounded-lg border border-border bg-content1 p-1 shadow-lg",children:Sd.map(d=>{let m=ao[d];return jsxRuntime.jsxs("button",{type:"button",onClick:()=>{t(d),c(false);},className:ui.cn("flex w-full items-center gap-2 rounded px-2.5 py-1.5 text-xs font-medium transition-colors cursor-pointer",d===e?"bg-primary/10 text-primary":"text-neutral hover:bg-content2 hover:text-foreground"),children:[jsxRuntime.jsx(m,{className:"size-4 shrink-0"}),jsxRuntime.jsx("span",{children:a(io[d])})]},d)})})]}),jsxRuntime.jsx(ui.StyledBadge,{content:i>0?i:void 0,color:"primary",size:"sm",isInvisible:i===0,children:jsxRuntime.jsxs("button",{type:"button",onClick:s,className:"flex shrink-0 items-center gap-2 rounded-full border border-border px-3 py-1.5 text-xs font-medium text-neutral transition-colors hover:text-primary/80 cursor-pointer",children:[jsxRuntime.jsx(ui.FilterIcon,{className:"size-[18px]"}),jsxRuntime.jsx("span",{className:"whitespace-nowrap",children:a("predict.filter.title")})]})})]})}var ao={start_time:ui.CalendarIcon,volume:ui.ChartLineIcon,liquidity:ui.DropletIcon,ending_soon:ui.TimerIcon};function mo(e={}){let t=react.useMemo(()=>Vr(e),[e.tagSlugSelection,e.limit,e.status,e.sort_by,e.sort_asc,e.source,e.with_markets]),{data:r,isLoading:n,isFetching:s,isFetchingNextPage:i,isError:o,error:a,hasNextPage:l,fetchNextPage:c,refetch:u}=Xn(t),p=react.useMemo(()=>r?.pages.flatMap(y=>y.items).filter(y=>y!=null)??[],[r]),d=react.useCallback(()=>{c();},[c]),m=react.useCallback(()=>{u();},[u]);return {data:p,isLoading:n,isFetching:s&&!i,isFetchingMore:i,isError:o,error:a??null,hasMore:l??false,fetchMore:d,refetch:m}}var fo=3,rn={bg:"hsl(var(--heroui-primary) / 0.14)",text:"hsl(var(--heroui-primary))",shadow:"hsl(var(--heroui-primary) / 0.18)"},ho={bg:"hsl(var(--heroui-secondary) / 0.14)",text:"hsl(var(--heroui-secondary))",shadow:"hsl(var(--heroui-secondary) / 0.18)"},Rd={bg:"rgba(239, 68, 68, 0.14)",text:"rgb(239, 68, 68)",shadow:"rgba(239, 68, 68, 0.18)"},Lt=[{bg:"rgba(139,92,246,0.14)",text:"rgb(139,92,246)",shadow:"rgba(139,92,246,0.18)"},{bg:"rgba(34,197,94,0.14)",text:"rgb(34,197,94)",shadow:"rgba(34,197,94,0.18)"},{bg:"rgba(0,166,212,0.14)",text:"rgb(0,166,212)",shadow:"rgba(0,166,212,0.18)"},{bg:"rgba(194,120,32,0.14)",text:"rgb(194,120,32)",shadow:"rgba(194,120,32,0.18)"},{bg:"rgba(202,138,4,0.14)",text:"rgb(202,138,4)",shadow:"rgba(202,138,4,0.18)"},{bg:"rgba(236,72,153,0.14)",text:"rgb(236,72,153)",shadow:"rgba(236,72,153,0.18)"},{bg:"rgba(99,102,241,0.14)",text:"rgb(99,102,241)",shadow:"rgba(99,102,241,0.18)"},{bg:"rgba(244,114,82,0.14)",text:"rgb(244,114,82)",shadow:"rgba(244,114,82,0.18)"}];function yo(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return Math.abs(t)}function Od(e){let t=e.outcomes?.map(o=>o.label?.toLowerCase().trim()??"")??[];if(t.some(o=>o==="up")&&t.some(o=>o==="down"))return [rn,Rd];if(t.some(o=>o==="yes")&&t.some(o=>o==="no"))return [rn,ho];let r=t[0]??"",n=t[1]??"",s=yo(r)%Lt.length,i=yo(n)%Lt.length;return i===s&&(i=(i+1)%Lt.length),[Lt[s],Lt[i]]}function Vd(e){let t=e.outcomes?.[0];return t?t.best_ask??t.price??null:null}function ko(e){let t=Vd(e);return t!=null?Math.round(t*100):0}function Po(e){return e<=1&&e>0?"< 1%":e>=99&&e<100?"> 99%":`${e}%`}function go(e){let t=e.outcomes?.[0];return ((t?.best_ask??t?.price??0)*100).toFixed(1)}function vo(e){let t=e.outcomes?.[1];if(t){let s=t.best_ask??t.price??0;return Math.round(s*100).toString()}let r=e.outcomes?.[0],n=r?.best_ask??r?.price??0;return Math.round((1-n)*100).toString()}function Id(e){let t=new Date(e).getTime()-Date.now();if(t<=0)return null;let r=Math.floor(t/864e5),n=Math.floor(t%864e5/36e5),s=Math.floor(t%36e5/6e4),i=[];return r>0&&i.push(`${r}d`),n>0&&i.push(`${n}h`),i.push(`${s}m`),i.join(" ")}var Ld=`
|
|
1
|
+
'use strict';var react=require('react'),reactQuery=require('@tanstack/react-query'),i18n=require('@liberfi.io/i18n'),ui=require('@liberfi.io/ui'),jsxRuntime=require('react/jsx-runtime'),reactWindow=require('react-window'),reactWindowInfiniteLoader=require('react-window-infinite-loader'),hooks=require('@liberfi.io/hooks'),utils=require('@liberfi.io/utils'),walletConnector=require('@liberfi.io/wallet-connector'),an=require('canvas-confetti'),types=require('@liberfi.io/types'),react$1=require('@liberfi.io/react'),recharts=require('recharts'),uiScaffold=require('@liberfi.io/ui-scaffold'),jotai=require('jotai'),utils$1=require('jotai/utils');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var an__default=/*#__PURE__*/_interopDefault(an);typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/ui-predict"]="0.1.74");var Qa="0.1.74";var Jt=react.createContext(null);function Gn(){let e=react.useContext(Jt);if(!e)throw new Error("usePredictV2Context must be used within a PredictV2Provider");return e}function I(){let{client:e}=Gn();return e}function Da(e){return ["predict-v2","events",e??{}]}async function Fa(e,t){return e.listEvents(t)}function mv(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Da(e),queryFn:()=>Fa(r,e),...t})}var he=48,Se=4,er={ONE_MINUTE:1,ONE_HOUR:60,ONE_DAY:1440},M={ONE_DAY:"1d",ONE_WEEK:"1w",ONE_MONTH:"1m",ALL:"all"},ke=M.ALL,lt={[M.ONE_DAY]:er.ONE_MINUTE,[M.ONE_WEEK]:er.ONE_HOUR,[M.ONE_MONTH]:er.ONE_HOUR,[M.ALL]:er.ONE_DAY},tr={[M.ONE_DAY]:300,[M.ONE_WEEK]:3600,[M.ONE_MONTH]:10800,[M.ALL]:1440*60},ct={[M.ONE_DAY]:1440*60,[M.ONE_WEEK]:10080*60,[M.ONE_MONTH]:720*60*60,[M.ALL]:null},ut=1,yv=1,gv=1,vv=99,at={ONE_HOUR:"1h",SIX_HOURS:"6h",ONE_DAY:"1d",ONE_WEEK:"1w",MAX:"max"},xv=at.ONE_WEEK,bv={[at.ONE_HOUR]:60,[at.SIX_HOURS]:60,[at.ONE_DAY]:300,[at.ONE_WEEK]:1800,[at.MAX]:1800};function jn(e){if(e)return e.tagSlug??e.categorySlug??void 0}function Vr(e={}){let{tagSlugSelection:t,limit:r=48,status:n="open",with_markets:s=true,source:i,sort_by:o,sort_asc:a}=e,l=jn(t);return {limit:r,status:n,with_markets:s,...i?{source:i}:{},...l?{tag_slug:l}:{},...o?{sort_by:o}:{},...a!==void 0?{sort_asc:a}:{}}}function Ir(e){return ["predict-v2","events-infinite",e]}async function Lr(e,t){return e.listEvents(t)}function Qr(e,t){return ["predict-v2","event",e,t]}async function Br(e,t,r){return e.getEvent(t,r)}function dt(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Qr(e.slug,e.source),queryFn:()=>Br(r,e.slug,e.source),enabled:!!e.slug,...t})}function Xn(e,t={}){let r=I();return reactQuery.useInfiniteQuery({queryKey:Ir(e),queryFn:({pageParam:n})=>Lr(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:n=>n.has_more&&n.next_cursor?n.next_cursor:void 0,...t})}function Ka(e){return ["predict-v2","search",e]}function Zn(e,t){let r=I(),n=react.useMemo(()=>({search:e.keyword,limit:e.limit??20,status:e.status??"open",source:e.source,with_markets:e.with_markets??false}),[e.keyword,e.limit,e.status,e.source,e.with_markets]);return reactQuery.useInfiniteQuery({queryKey:Ka(n),queryFn:({pageParam:s})=>r.listEvents({...n,...s!==void 0?{cursor:s}:{}}),initialPageParam:void 0,getNextPageParam:s=>s.has_more&&s.next_cursor?s.next_cursor:void 0,enabled:t?.enabled??!!e.keyword})}function za(e,t,r){return ["predict-v2","similar-events",e,t,r]}function Jn(e,t={}){let r=I(),n={limit:e.limit,same_source:e.same_source};return reactQuery.useQuery({queryKey:za(e.slug,e.source,n),queryFn:()=>r.getSimilarEvents(e.slug,e.source,n),enabled:!!e.slug,staleTime:5*6e4,...t})}function Ga(e,t){return ["predict-v2","market",e,t]}async function ja(e,t,r){return e.getMarket(t,r)}function Wv(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Ga(e.slug,e.source),queryFn:()=>ja(r,e.slug,e.source),enabled:!!e.slug,...t})}function Ur(e,t,r){return ["predict-v2","price-history",e,t,r]}function $v(e,t={}){let r=I();return reactQuery.useQuery({queryKey:Ur(e.slug,e.source,e.range),queryFn:()=>r.getPriceHistory(e.slug,e.source,e.range),enabled:!!e.slug,staleTime:6e4,...t})}var el={[M.ONE_DAY]:"1d",[M.ONE_WEEK]:"1w",[M.ONE_MONTH]:"1m",[M.ALL]:"all"};function es(e,t=M.ALL){let r=I(),n=el[t],s=reactQuery.useQueries({queries:e.map(a=>({queryKey:Ur(a.slug,a.source,n),queryFn:()=>r.getPriceHistory(a.slug,a.source,n),staleTime:6e4,enabled:!!a.slug}))}),i=s.some(a=>a.isLoading);return {series:react.useMemo(()=>e.map((a,l)=>{let u=s[l]?.data?.points??[];if(u.length>0)return {marketSlug:a.slug,label:a.outcomes?.[0]?.label??a.question,data:u.map(f=>({timestamp:f.t*1e3,price:f.p}))};let d=(a.outcomes?.find(f=>f.label.toLowerCase()==="yes")??a.outcomes?.[0])?.price??.5,m=Date.now();return {marketSlug:a.slug,label:a.outcomes?.[0]?.label??a.question,data:[{timestamp:m-7*864e5,price:d},{timestamp:m,price:d}]}}),[e,s]),isLoading:i}}function rl(e,t){return ["predict-v2","orderbook",e,t]}function ts(e,t={}){let r=I();return reactQuery.useQuery({queryKey:rl(e.slug,e.source),queryFn:()=>r.getOrderbook(e.slug,e.source),enabled:!!e.slug,refetchInterval:5e3,...t})}function sl(e,t){return ["predict-v2","market-trades",e,t]}function rs(e,t={}){let r=I(),n={source:e.source,limit:e.limit,cursor:e.cursor,side:e.side};return reactQuery.useQuery({queryKey:sl(e.slug,n),queryFn:()=>r.listMarketTrades(e.slug,n),enabled:!!e.slug,...t})}function il(e,t){return ["predict-v2","candlesticks",e,t]}function lx(e,t={}){let r=I(),n={interval:e.interval,limit:e.limit};return reactQuery.useQuery({queryKey:il(e.slug,n),queryFn:()=>r.listCandlesticks(e.slug,n),enabled:!!e.slug,staleTime:6e4,...t})}function ll(e,t){return ["predict-v2","positions",e,t]}function rr(e,t={}){let r=I();return reactQuery.useQuery({queryKey:ll(e.source,e.user),queryFn:()=>r.getPositions(e.source,e.user),enabled:!!e.user,staleTime:1e4,...t})}function ul(e){return ["predict-v2","orders",e]}function ns(e,t={}){let r=I();return reactQuery.useQuery({queryKey:ul(e),queryFn:()=>r.listOrders(e),enabled:!!e.wallet_address,...t})}function pl(e,t){return ["predict-v2","order",e,t]}function ss(e,t={}){let r=I();return reactQuery.useQuery({queryKey:pl(e.id,e.source),queryFn:()=>r.getOrder(e.id,e.source),enabled:!!e.id,refetchInterval:1e3,...t})}function os(e={}){let t=I(),r=reactQuery.useQueryClient();return reactQuery.useMutation({mutationFn:n=>t.cancelOrder(n.id,n.source),onSuccess:()=>{r.invalidateQueries({queryKey:["predict-v2","orders"]});},...e})}function gl(e){return ["predict-v2","dflow-quote",e]}function is(e,t={}){let r=I(),n=!!e.inputMint&&!!e.outputMint&&!!e.userPublicKey&&e.amount!=="0"&&e.amount!=="";return reactQuery.useQuery({queryKey:gl(e),queryFn:()=>r.createDFlowQuote(e),enabled:n,staleTime:1e4,...t})}function as(e={}){let t=I(),r=reactQuery.useQueryClient();return reactQuery.useMutation({mutationFn:n=>t.submitDFlowTransaction(n),onSuccess:()=>{r.invalidateQueries({queryKey:["predict-v2","orders"]}),r.invalidateQueries({queryKey:["predict-v2","positions"]});},...e})}function hl(e){return ["predict-v2","trades-by-wallet",e]}function ls(e,t={}){let r=I();return reactQuery.useQuery({queryKey:hl(e),queryFn:()=>r.listTradesByWallet(e),enabled:!!e.wallet,...t})}var pt=react.createContext({});var Fe=react.createContext(null);function cs(){let e=react.useContext(pt);if(!e)throw new Error("usePredictContext must be used within a PredictProvider");return e}function P(){let{client:e}=cs();return e}function wl(e){return ["predict","events",e??{}]}async function _r(e,t){return await e.getEvents(t)}function mb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:wl(e),queryFn:async()=>_r(r,e),...t})}function Tl(e){return ["predict","events","infinite",e??{}]}function us(e={},t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:Tl(e),queryFn:async({pageParam:n})=>_r(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:n=>n.cursor??void 0,...t})}function Nl(e){return ["predict","event","byId",e.id,e.withNestedMarkets]}async function Rl(e,t){return await e.getEventById(t.id,t.withNestedMarkets)}function nr(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Nl(e),queryFn:async()=>Rl(r,e),...t})}function Vl(e){return ["predict","markets",e??{}]}async function Il(e,t){return await e.getMarkets(t)}function Cb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Vl(e),queryFn:async()=>Il(r,e),...t})}function Ql(e){return ["predict","market","byId",e.id]}async function Bl(e,t){return await e.getMarketById(t.id)}function Mb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Ql(e),queryFn:async()=>Bl(r,e),...t})}function _l(e){return ["predict","market","byMint",e]}async function Dl(e,t){return await e.getMarketByMint(t)}function Vb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:_l(e),queryFn:async()=>Dl(r,e),...t})}function Al(e){return ["predict","markets","batch",e]}async function Wl(e,t){return await e.getMarketsBatch(t)}function Bb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Al(e),queryFn:async()=>Wl(r,e),enabled:!!(e.tickers?.length||e.mints?.length),...t})}function ql(e){return ["predict","orderBook",e]}async function Hl(e,t){return await e.getOrderbook(t)}function mt(e,t={}){let r=P();return reactQuery.useQuery({queryKey:ql(e),queryFn:async()=>Hl(r,e),...t})}function Kl(e){return ["predict","orderBook","byMint",e]}async function $l(e,t){return await e.getOrderbookByMint(t)}function Fb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Kl(e),queryFn:async()=>$l(r,e),...t})}function zl(e){return ["predict","trades",e??{}]}async function Yl(e,t){return await e.getTrades(t)}function ms(e,t={}){let r=P();return reactQuery.useQuery({queryKey:zl(e),queryFn:async()=>Yl(r,e),...t})}function Gl(e){return ["predict","trades","byMint",e]}async function jl(e,t){return await e.getTradesByMint(t)}function Hb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Gl(e),queryFn:async()=>jl(r,e),...t})}function Xl(e){return ["predict","onchainTrades","byWallet",e]}async function Fr(e,t){return await e.getOnchainTradesByWallet(t)}function fs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Xl(e),queryFn:async()=>Fr(r,e),...t})}function Zl(e){return ["predict","onchainTrades","byEvent",e]}async function Ar(e,t){return await e.getOnchainTradesByEvent(t)}function Yb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Zl(e),queryFn:async()=>Ar(r,e),...t})}function Jl(e){return ["predict","onchainTrades","byMarket",e]}async function Wr(e,t){return await e.getOnchainTradesByMarket(t)}function Gb(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Jl(e),queryFn:async()=>Wr(r,e),...t})}function Hr(e){return e.cursor??void 0}function ec(e){return ["predict","onchainTrades","byWallet","infinite",e]}function eh(e,t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:ec(e),queryFn:async({pageParam:n})=>Fr(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:Hr,...t})}function tc(e){return ["predict","onchainTrades","byEvent","infinite",e]}function th(e,t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:tc(e),queryFn:async({pageParam:n})=>Ar(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:Hr,...t})}function rc(e){return ["predict","onchainTrades","byMarket","infinite",e]}function rh(e,t={}){let r=P();return reactQuery.useInfiniteQuery({queryKey:rc(e),queryFn:async({pageParam:n})=>Wr(r,{...e,...n!==void 0?{cursor:n}:{}}),initialPageParam:void 0,getNextPageParam:Hr,...t})}function nc(e){return ["predict","candlesticks","event",e]}async function sc(e,t){let{ticker:r,...n}=t;return await e.getEventCandlesticks(r,n)}function ih(e,t={}){let r=P();return reactQuery.useQuery({queryKey:nc(e),queryFn:async()=>sc(r,e),...t})}function Mt(e){return ["predict","candlesticks","market",e]}async function Nt(e,t){let{ticker:r,...n}=t;return await e.getMarketCandlesticks(r,n)}function $r(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Mt(e),queryFn:async()=>Nt(r,e),...t})}function oc(e){return ["predict","candlesticks","market","byMint",e]}async function ic(e,t){let{mintAddress:r,...n}=t;return await e.getMarketCandlesticksByMint(r,n)}function ah(e,t={}){let r=P();return reactQuery.useQuery({queryKey:oc(e),queryFn:async()=>ic(r,e),...t})}var lh=$r;function ac(e){return ["predict","forecast","percentileHistory",e]}async function lc(e,t){return await e.getEventForecastPercentileHistory(t)}function ph(e,t={}){let r=P();return reactQuery.useQuery({queryKey:ac(e),queryFn:async()=>lc(r,e),...t})}function cc(e){return ["predict","forecast","percentileHistory","byMint",e]}async function uc(e,t){return await e.getEventForecastPercentileHistoryByMint(t)}function mh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:cc(e),queryFn:async()=>uc(r,e),...t})}function dc(e){return ["predict","liveData",e]}async function pc(e,t){return await e.getLiveData(t)}function vh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:dc(e),queryFn:async()=>pc(r,e),enabled:e.milestoneIds.length>0,...t})}function mc(e){return ["predict","liveData","byEvent",e]}async function fc(e,t){return await e.getLiveDataByEvent(t)}function xh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:mc(e),queryFn:async()=>fc(r,e),enabled:!!e.eventTicker,...t})}function yc(e){return ["predict","liveData","byMint",e]}async function gc(e,t){return await e.getLiveDataByMint(t)}function bh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:yc(e),queryFn:async()=>gc(r,e),enabled:!!e.mintAddress,...t})}function vc(e){return ["predict","series",e??{}]}async function xc(e,t){return await e.getSeries(t)}function vs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:vc(e),queryFn:async()=>xc(r,e),...t})}function bc(e){return ["predict","series","byTicker",e]}async function hc(e,t){return await e.getSeriesByTicker(t)}function xs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:bc(e),queryFn:async()=>hc(r,e),...t})}function kc(){return ["predict","tags","byCategories"]}async function Pc(e){return await e.getTagsByCategories()}function Yr(e={}){let t=P();return reactQuery.useQuery({queryKey:kc(),queryFn:async()=>Pc(t),...e})}function Sc(){return ["predict","filters","bySports"]}async function Cc(e){return await e.getFiltersBySports()}function Eh(e={}){let t=P();return reactQuery.useQuery({queryKey:Sc(),queryFn:async()=>Cc(t),...e})}var Th=Yr;function Ec(e){return ["predict","search",e]}async function Tc(e,t){return await e.search(t)}function Oh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Ec(e),queryFn:async()=>Tc(r,e),...t})}function Nc(e){return ["predict","positions","byWallet",e]}async function Rc(e,t){return await e.getPositionsByWallet(t)}function hs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Nc(e),queryFn:async()=>Rc(r,e),...t})}function _h(){let e=react.useContext(Fe);if(!e)throw new Error("useUserPredictContext must be used within a UserPredictProvider");return e}function ks(e){let t=react.useContext(Fe);return react.useMemo(()=>t?{positions:t.positions.filter(n=>n.market?.ticker===e.ticker),isLoading:t.isLoading,isAvailable:true}:{positions:[],isLoading:false,isAvailable:false},[t,e.ticker])}function Bc(e){return ["predict","outcomeMints",e??{}]}async function Uc(e,t){return await e.getOutcomeMints(t)}function Kh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Bc(e),queryFn:async()=>Uc(r,e),...t})}async function _c(e,t){return await e.filterOutcomeMints(t)}function $h(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>_c(t,r),...e})}function Fc(e){return ["predict","quote",e]}async function Ac(e,t){return await e.getQuote(t)}function jh(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Fc(e),queryFn:async()=>Ac(r,e),enabled:!!(e.inputMint&&e.outputMint&&e.amount>0),staleTime:1e4,gcTime:3e4,...t})}async function Wc(e,t){return await e.createSwap(t)}function e0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>Wc(t,r),...e})}async function qc(e,t){return await e.createSwapInstructions(t)}function t0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>qc(t,r),...e})}function Hc(e){return ["predict","order",e]}async function Kc(e,t){return await e.getOrder(t)}function Cs(e,t={}){let r=P();return reactQuery.useQuery({queryKey:Hc(e),queryFn:async()=>Kc(r,e),enabled:!!(e.inputMint&&e.outputMint&&e.amount>0),staleTime:1e4,gcTime:3e4,...t})}function $c(e){return ["predict","order","status",e.signature]}async function zc(e,t){return await e.getOrderStatus(t)}function ws(e,t={}){let r=P();return reactQuery.useQuery({queryKey:$c(e),queryFn:async()=>zc(r,e),enabled:!!e.signature,refetchInterval:t.refetchInterval??3e3,retry:false,...t})}function jc(e){return ["predict","intent","quote",e]}async function Xc(e,t){return await e.getIntentQuote(t)}function l0(e,t={}){let r=P();return reactQuery.useQuery({queryKey:jc(e),queryFn:async()=>Xc(r,e),enabled:!!(e.inputMint&&e.outputMint&&e.amount>0),staleTime:1e4,gcTime:3e4,...t})}async function Zc(e,t){return await e.submitIntentSwap(t)}function c0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>Zc(t,r),...e})}async function eu(e,t){return await e.initPredictionMarket(t)}function m0(e={}){let t=P();return reactQuery.useMutation({mutationFn:async r=>eu(t,r),...e})}function tu(){return ["predict","tokens"]}async function ru(e){return await e.getTokens()}function v0(e={}){let t=P();return reactQuery.useQuery({queryKey:tu(),queryFn:async()=>ru(t),staleTime:300*1e3,gcTime:1800*1e3,...e})}function nu(){return ["predict","tokens","decimals"]}async function su(e){return await e.getTokensWithDecimals()}function x0(e={}){let t=P();return reactQuery.useQuery({queryKey:nu(),queryFn:async()=>su(t),staleTime:300*1e3,gcTime:1800*1e3,...e})}function iu(){return ["predict","venues"]}async function au(e){return await e.getVenues()}function P0(e={}){let t=P();return reactQuery.useQuery({queryKey:iu(),queryFn:async()=>au(t),staleTime:300*1e3,gcTime:1800*1e3,...e})}var Rt=class{ws=null;wsUrl;autoReconnect;reconnectIntervalBase;reconnectMaxInterval;pingInterval;status="disconnected";reconnectAttempts=0;reconnectTimeout=null;pingIntervalId=null;shouldReconnect=true;listeners={connect:[],disconnect:[],reconnecting:[],error:[],price:[],trade:[],orderbook:[],status:[],subscribed:[],unsubscribed:[]};subscriptions={prices:{all:false,tickers:new Set},trades:{all:false,tickers:new Set},orderbook:{all:false,tickers:new Set}};constructor(t){this.wsUrl=t.wsUrl,this.autoReconnect=t.autoReconnect??true,this.reconnectIntervalBase=t.reconnectIntervalBase??1e3,this.reconnectMaxInterval=t.reconnectMaxInterval??3e4,this.pingInterval=t.pingInterval??3e4,t.autoConnect!==false&&this.connect();}connect(){if(!(this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING))){this.shouldReconnect=true,this.setStatus("connecting");try{this.ws=new WebSocket(this.wsUrl),this.ws.onopen=()=>{this.reconnectAttempts=0,this.setStatus("connected"),this.emit("connect",void 0),this.restoreSubscriptions(),this.startPingInterval();},this.ws.onmessage=t=>{this.handleMessage(t.data);},this.ws.onerror=t=>{let r=new Error("WebSocket error");this.emit("error",r);},this.ws.onclose=t=>{this.stopPingInterval(),this.setStatus("disconnected"),this.emit("disconnect",{code:t.code,reason:t.reason}),this.shouldReconnect&&this.autoReconnect&&this.scheduleReconnect();};}catch(t){this.emit("error",t instanceof Error?t:new Error(String(t))),this.shouldReconnect&&this.autoReconnect&&this.scheduleReconnect();}}}disconnect(){this.shouldReconnect=false,this.stopPingInterval(),this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.ws&&(this.ws.close(),this.ws=null),this.setStatus("disconnected");}isConnected(){return this.ws!==null&&this.ws.readyState===WebSocket.OPEN}getStatus(){return this.status}subscribePrices(t,r){this.subscribeChannel("prices",t);let n=this.on("price",r);return ()=>{n(),this.unsubscribeChannel("prices",t);}}subscribeTrades(t,r){this.subscribeChannel("trades",t);let n=this.on("trade",r);return ()=>{n(),this.unsubscribeChannel("trades",t);}}subscribeOrderbook(t,r){this.subscribeChannel("orderbook",t);let n=this.on("orderbook",r);return ()=>{n(),this.unsubscribeChannel("orderbook",t);}}onStatusChange(t){return this.on("status",t)}on(t,r){return this.listeners[t].push(r),()=>{this.off(t,r);}}off(t,r){let n=this.listeners[t],s=n.indexOf(r);s!==-1&&n.splice(s,1);}removeAllListeners(t){if(t)this.listeners[t].length=0;else for(let r of Object.keys(this.listeners))this.listeners[r].length=0;}subscribeChannel(t,r){let n=this.subscriptions[t];if(r.all)n.all=true,n.tickers.clear();else if(r.tickers&&r.tickers.length>0){n.all=false;for(let s of r.tickers)n.tickers.add(s);}this.sendSubscription("subscribe",t,r);}unsubscribeChannel(t,r){let n=this.subscriptions[t];if(r.all)n.all=false,n.tickers.clear();else if(r.tickers&&r.tickers.length>0)for(let s of r.tickers)n.tickers.delete(s);this.sendSubscription("unsubscribe",t,r);}setStatus(t){this.status!==t&&(this.status=t,this.emit("status",t));}emit(t,r){let n=this.listeners[t];for(let s of n)try{s(r);}catch{}}send(t){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return false;try{return this.ws.send(JSON.stringify(t)),!0}catch{return false}}sendSubscription(t,r,n){this.send({type:t,channel:r,all:n.all,tickers:n.tickers});}handleMessage(t){try{let r=JSON.parse(t);switch(r.type){case "ticker":this.emit("price",r);break;case "trade":this.emit("trade",r);break;case "orderbook":this.emit("orderbook",r);break;case "status":break;case "subscribed":this.emit("subscribed",{channel:r.channel,all:r.all,tickers:r.tickers});break;case "unsubscribed":this.emit("unsubscribed",{channel:r.channel,all:r.all,tickers:r.tickers});break;case "pong":break;case "error":this.emit("error",new Error(r.message));break;default:if("channel"in r){let n=r;switch(n.channel){case "prices":this.emit("price",n);break;case "trades":this.emit("trade",n);break;case "orderbook":this.emit("orderbook",n);break}}}}catch{}}scheduleReconnect(){if(this.reconnectTimeout)return;let t=Math.min(this.reconnectIntervalBase*Math.pow(2,this.reconnectAttempts),this.reconnectMaxInterval);this.setStatus("reconnecting"),this.emit("reconnecting",{attempt:this.reconnectAttempts+1,delay:t}),this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,this.reconnectAttempts++,this.connect();},t);}restoreSubscriptions(){for(let t of ["prices","trades","orderbook"]){let r=this.subscriptions[t];r.all?this.sendSubscription("subscribe",t,{all:true}):r.tickers.size>0&&this.sendSubscription("subscribe",t,{tickers:Array.from(r.tickers)});}}startPingInterval(){this.stopPingInterval(),this.pingIntervalId=setInterval(()=>{this.send({type:"ping"});},this.pingInterval);}stopPingInterval(){this.pingIntervalId&&(clearInterval(this.pingIntervalId),this.pingIntervalId=null);}};function sr(e){return new Rt(e)}function M0({wsEndpoint:e,autoConnect:t=true,autoReconnect:r=true,enabled:n=true}){let[s,i]=react.useState("disconnected"),[o,a]=react.useState(null),l=react.useRef(null);react.useEffect(()=>{if(!n){l.current&&(l.current.disconnect(),l.current=null),i("disconnected");return}let d=sr({wsUrl:e,autoConnect:t,autoReconnect:r});l.current=d;let m=d.on("status",g=>{i(g);}),y=d.on("error",g=>{a(g);}),f=d.on("connect",()=>{a(null);});return ()=>{m(),y(),f(),d.disconnect(),l.current=null;}},[e,t,r,n]);let c=react.useCallback(()=>{l.current?.connect();},[]),u=react.useCallback(()=>{l.current?.disconnect();},[]);return {client:l.current,status:s,isConnected:s==="connected",connect:c,disconnect:u,error:o}}function V0(){let e=react.useContext(pt);if(!e)throw new Error("useWsClient must be used within a PredictProvider");let{wsClient:t}=e,[r,n]=react.useState(t?.getStatus()??"disconnected");return react.useEffect(()=>{if(!t){n("disconnected");return}return n(t.getStatus()),t.onStatusChange(n)},[t]),{wsClient:t,wsStatus:r,isWsConnected:r==="connected"}}function Q0({client:e,all:t=false,tickers:r=[],enabled:n=true,onUpdate:s}){let[i,o]=react.useState(new Map),[a,l]=react.useState(false),c=react.useRef(s);return react.useEffect(()=>{c.current=s;},[s]),react.useEffect(()=>{if(!e||!n){l(false);return}if(!t&&r.length===0)return;let u=t?{all:true}:{tickers:r},p=e.subscribePrices(u,d=>{o(m=>{let y=new Map(m);return y.set(d.market_ticker,{yesBid:d.yes_bid,yesAsk:d.yes_ask,noBid:d.no_bid,noAsk:d.no_ask,updatedAt:Date.now()}),y}),c.current?.(d);});return l(true),()=>{p(),l(false);}},[e,t,r.join(","),n]),{prices:i,isSubscribed:a}}function _0({client:e,all:t=false,tickers:r=[],enabled:n=true,maxHistory:s=100,onUpdate:i}){let[o,a]=react.useState([]),[l,c]=react.useState(false),u=react.useRef(i);react.useEffect(()=>{u.current=i;},[i]),react.useEffect(()=>{if(!e||!n){c(false);return}if(!t&&r.length===0)return;let d=t?{all:true}:{tickers:r},m=e.subscribeTrades(d,y=>{let f={tradeId:y.trade_id,marketTicker:y.market_ticker,price:y.price,count:y.count,yesPrice:y.yes_price,noPrice:y.no_price,takerSide:y.taker_side,createdTime:y.created_time};a(g=>{let x=[f,...g];return x.length>s?x.slice(0,s):x}),u.current?.(y);});return c(true),()=>{m(),c(false);}},[e,t,r.join(","),n,s]);let p=react.useCallback(()=>{a([]);},[]);return {trades:o,isSubscribed:l,clearHistory:p}}function A0({client:e,all:t=false,tickers:r=[],enabled:n=true,onUpdate:s}){let[i,o]=react.useState(new Map),[a,l]=react.useState(false),c=react.useRef(s);react.useEffect(()=>{c.current=s;},[s]),react.useEffect(()=>{if(!e||!n){l(false);return}if(!t&&r.length===0)return;let p=t?{all:true}:{tickers:r},d=e.subscribeOrderbook(p,m=>{o(y=>{let f=new Map(y);return f.set(m.market_ticker,{yesBids:m.yes_bids,yesAsks:m.yes_asks,noBids:m.no_bids,noAsks:m.no_asks,updatedAt:Date.now()}),f}),c.current?.(m);});return l(true),()=>{d(),l(false);}},[e,t,r.join(","),n]);let u=react.useCallback(p=>i.get(p),[i]);return {orderbooks:i,isSubscribed:a,getOrderbook:u}}var Qs=["Politics","Sports","Culture","Crypto","Climate","Economics","Mentions","Companies","Financials","Tech & Science"];function Bs(){let{data:e,isLoading:t,isError:r,error:n}=Yr();return {data:react.useMemo(()=>{if(!e?.tagsByCategories)return [];let i=o=>{let a=Qs.indexOf(o);return a===-1?Qs.length:a};return Object.entries(e.tagsByCategories).map(([o,a])=>({category:o,tags:a})).sort((o,a)=>i(o.category)-i(a.category))},[e]),isLoading:t,isError:r,error:n??null}}function ir({categories:e,selectedCategory:t,selectedTag:r,activeTags:n,onCategorySelect:s,onTagSelect:i,trailing:o,pulsingTab:a="Trending",className:l}){let{t:c}=i18n.useTranslation(),u=react.useCallback(()=>{s(null);},[s]),p=c("predict.categories.trending");return jsxRuntime.jsxs("div",{className:ui.cn("sticky top-0 z-30 flex w-full flex-col justify-between gap-2 px-4 py-1 lg:px-2 lg:py-1",l),children:[jsxRuntime.jsxs("div",{className:"flex w-full items-center gap-2",children:[jsxRuntime.jsx("div",{className:"hideScrollbar min-w-0 flex-1 overflow-x-auto overflow-y-hidden",children:jsxRuntime.jsxs("div",{className:"flex min-h-8 items-stretch gap-x-2 lg:min-h-9",children:[jsxRuntime.jsx(Us,{label:p,isSelected:t===null,onPress:u,showPulse:p===a}),jsxRuntime.jsx(Pu,{}),e.map(d=>jsxRuntime.jsx(Us,{label:d.category,isSelected:t===d.category,onPress:()=>s(d.category),badge:d.badge,showPulse:d.category===a},d.category))]})}),o&&jsxRuntime.jsx("div",{className:"flex-shrink-0",children:o})]}),t&&n.length>0&&jsxRuntime.jsx("div",{className:"hideScrollbar overflow-x-auto overflow-y-hidden flex items-center",children:jsxRuntime.jsxs("div",{className:"flex gap-x-1 pl-2 lg:w-full lg:gap-x-2",children:[jsxRuntime.jsx(_s,{label:c("predict.categories.allMarkets"),isSelected:r===null,onPress:()=>i(null)}),n.map(d=>jsxRuntime.jsx(_s,{label:d.label,icon:d.icon,isSelected:r===d.label,onPress:()=>i(d.label)},d.label))]})})]})}function Us({label:e,isSelected:t,onPress:r,badge:n,showPulse:s}){return jsxRuntime.jsxs("button",{type:"button",onClick:r,className:ui.cn("relative shrink-0 cursor-pointer whitespace-nowrap border-b p-1 text-base font-normal capitalize transition-colors",t?"border-primary/50 text-primary":"border-transparent text-neutral-500 hover:text-neutral-300"),children:[s?jsxRuntime.jsxs("span",{className:"flex items-center gap-x-1.5",children:[jsxRuntime.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-[rgb(240,68,56)]"}),jsxRuntime.jsx("span",{children:e})]}):e,n&&jsxRuntime.jsx("span",{className:"absolute -right-1 top-0 rounded bg-primary px-0.5 py-px text-[0.625rem] font-semibold leading-none text-neutral-950",children:n})]})}function Pu(){return jsxRuntime.jsx("span",{className:"flex items-center text-neutral-600","aria-hidden":"true",children:"|"})}function _s({label:e,icon:t,isSelected:r,onPress:n}){return jsxRuntime.jsxs("button",{type:"button",onClick:n,className:ui.cn("flex shrink-0 items-center justify-center gap-x-1 min-w-14 rounded-2xl border px-2 py-1 text-sm font-medium uppercase transition-colors cursor-pointer",r?"border-transparent bg-primary text-black":"border-border/80 text-neutral-200 hover:bg-primary/10 hover:text-primary"),children:[t&&jsxRuntime.jsx("span",{className:ui.cn("iconify size-4",t)}),e]})}function ar({count:e=6}){return jsxRuntime.jsx("div",{className:"flex w-full flex-col gap-2 px-4 py-1 lg:px-2 lg:py-1",children:jsxRuntime.jsx("div",{className:"flex min-h-8 items-center gap-x-2 lg:min-h-9",children:Array.from({length:e}).map((t,r)=>jsxRuntime.jsx(ui.Skeleton,{className:"h-6 w-16 shrink-0 rounded"},r))})})}function Ws({onSelect:e,className:t}){let{data:r,isLoading:n}=Bs(),[s,i]=react.useState(null),[o,a]=react.useState(null),l=react.useCallback(d=>{if(i(d),a(null),!d)e?.({category:null,tags:null});else {let m=r.find(y=>y.category===d);e?.({category:d,tags:m?.tags??null});}},[r,e]),c=react.useCallback(d=>{if(a(d),d)e?.({category:s,tags:[d]});else {let m=r.find(y=>y.category===s);e?.({category:s,tags:m?.tags??null});}},[r,s,e]);if(n)return jsxRuntime.jsx(ar,{});let p=(r.find(d=>d.category===s)?.tags??[]).map(d=>({label:d}));return jsxRuntime.jsx(ir,{categories:r,selectedCategory:s,selectedTag:o,activeTags:p,onCategorySelect:l,onTagSelect:c,className:t})}function qs(e={}){let{category:t,tags:r,...n}=e,s=!!t||!!r&&r.length>0,{data:i,isFetching:o,isError:a,error:l}=vs({...t?{category:t}:{},...r&&r.length>0?{tags:r.join(",")}:{},isInitialized:true,status:"active"},{enabled:s}),c=react.useMemo(()=>{if(!s||!i?.series)return;let E=i.series.map(C=>C.ticker).slice(0,25);return E.length>0?E.join(","):void 0},[s,i]),u=react.useMemo(()=>({status:"active",withNestedMarkets:true,sort:"volume24h",order:"desc",limit:48,...n,...c!==void 0?{seriesTickers:c}:{}}),[n,c]),{data:p,isLoading:d,isFetching:m,isFetchingNextPage:y,isError:f,error:g,hasNextPage:x,fetchNextPage:b,refetch:h}=us(u),v=react.useMemo(()=>p?.pages.flatMap(E=>E.events)??[],[p]),w=s&&!i&&!a;return {data:v,isLoading:w||d,isFetching:o||w||m&&!y,isFetchingMore:y,isError:a||f,error:l??g,hasMore:x,fetchMore:b,refetch:h}}function wu({className:e}){return jsxRuntime.jsx(ui.Skeleton,{className:ui.cn("min-h-52 w-full rounded-xl border border-border/80 lg:min-h-72",e)})}function Ot({count:e=12}){return jsxRuntime.jsx("div",{className:"@container w-full h-full",children:jsxRuntime.jsx("div",{className:"grid w-full grid-cols-1 gap-4 @[768px]:grid-cols-2 @[1024px]:grid-cols-3 @[1280px]:grid-cols-4",children:Array.from({length:e}).map((t,r)=>jsxRuntime.jsx(wu,{},r))})})}function $k(){return jsxRuntime.jsxs("div",{className:"flex h-full w-full flex-col gap-y-3",children:[jsxRuntime.jsx(ar,{}),jsxRuntime.jsx("div",{className:"min-h-0 flex-1",children:jsxRuntime.jsx(Ot,{})})]})}function Hs({value:e,showLabel:t=true}){let r=e/100;return jsxRuntime.jsx("div",{className:"flex-shrink-0 flex flex-col items-center",children:jsxRuntime.jsxs("div",{className:"relative w-16 h-12 lg:w-20 lg:h-14",children:[jsxRuntime.jsxs("svg",{className:"w-full h-full",viewBox:"0 0 100 70",children:[jsxRuntime.jsx("path",{d:"M 10 55 A 40 40 0 0 1 90 55",fill:"none",className:"stroke-default-200",strokeWidth:"6",strokeLinecap:"round"}),jsxRuntime.jsx("path",{d:"M 10 55 A 40 40 0 0 1 90 55",fill:"none",className:"stroke-primary",strokeWidth:"6",strokeLinecap:"round",strokeDasharray:`${r*125.6} 125.6`,style:{transition:"stroke-dasharray 0.5s ease-in-out"}})]}),t&&jsxRuntime.jsx("div",{className:"absolute inset-0 flex items-center justify-center pt-3 lg:pt-4",children:jsxRuntime.jsxs("span",{className:"text-sm font-bold text-foreground lg:text-base leading-none",children:[e.toFixed(0),"%"]})})]})})}function zs({event:e,onSelect:t,onSelectOutcome:r}){let{t:n}=i18n.useTranslation(),[s,i]=react.useState(null),o=e.markets||[],a=o.length>2?[...o].sort((C,L)=>Number(L.yesAsk??0)-Number(C.yesAsk??0)):o,l=a.filter(C=>C.status==="active"),c=a.length===1,u=c?a[0]:s,p=react.useMemo(()=>utils.formatAmountUSDCompact((e.volume??0)/100),[e.volume]),d=C=>C.yesAsk?parseFloat(C.yesAsk)*100:null,m=C=>C.noAsk?parseFloat(C.noAsk)*100:null,y=C=>{let L=d(C),Q=m(C);return L!=null?Q==null&&L<=1?"< 1%":g(L):Q!=null?Q<=1?"> 99%":g(100-Q):"0%"},f=C=>{let L=d(C),Q=m(C);return Q!=null?L==null&&Q<=1?"< 1%":g(Q):L!=null?L<=1?"> 99%":g(100-L):"0%"},g=C=>C!=null?`${C.toFixed(0)}%`:"--",x=react.useMemo(()=>{let C=a.some(Q=>Q.status==="active");return a.every(Q=>Q.status==="closed"||Q.status==="determined")?{label:n("predict.event.status.closed"),color:"bg-danger-100/50 text-danger"}:C?{label:n("predict.event.status.live"),color:"bg-primary-100/50 text-primary"}:{label:n("predict.event.status.pending"),color:"bg-warning-100/50 text-warning"}},[a,n]),b=C=>{i(C);},h=()=>{i(null);},v=()=>{u&&r&&r(e,u,"yes");},w=()=>{u&&r&&r(e,u,"no");},O=()=>{t&&t(e);},k=l.slice(0,2),E=l.length>2;return jsxRuntime.jsxs("div",{className:"flex h-full w-full flex-col justify-between gap-y-1.5 rounded-xl border border-border bg-content1 p-3 transition-all duration-300 cursor-pointer hover:border-primary hover:ring-2 hover:ring-primary/20 focus-within:border-primary focus-within:bg-content2 focus-within:ring-2 focus-within:ring-primary/20 @5xl:gap-y-3 @5xl:p-4",onClick:O,children:[jsxRuntime.jsxs("div",{className:"flex w-full flex-1 flex-col gap-y-1.5 @5xl:gap-y-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsx(ui.Avatar,{src:e.imageUrl||void 0,name:e.title||"Event",radius:"md",className:"h-8 w-8 flex-shrink-0 transition-transform duration-300 group-hover:scale-110 @5xl:h-12 @5xl:w-12"}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.title,placement:"bottom",children:jsxRuntime.jsx("p",{className:"flex-1 min-w-0 h-10 @5xl:h-12 text-sm font-semibold @5xl:text-base line-clamp-2",children:e.title})}),c?jsxRuntime.jsx(Hs,{value:d(a[0])??50}):x.label!==n("predict.event.status.live")&&jsxRuntime.jsx("div",{className:`flex-shrink-0 flex items-center gap-x-2 rounded-lg px-2 py-1 text-sm @5xl:px-4 @5xl:py-2 ${x.color}`,children:jsxRuntime.jsx("span",{children:x.label})})]}),u&&!c&&jsxRuntime.jsxs("button",{type:"button",className:"flex min-h-9 w-full items-center justify-between gap-x-2 transition-opacity hover:cursor-pointer hover:opacity-80",onClick:C=>{C.stopPropagation(),h();},children:[jsxRuntime.jsx("span",{className:"text-left text-xs text-foreground @5xl:text-sm line-clamp-1",children:u.yesSubTitle}),jsxRuntime.jsxs("div",{className:"flex items-center gap-x-2",children:[jsxRuntime.jsx("span",{className:"text-sm font-semibold text-foreground @5xl:text-lg",children:y(u)}),jsxRuntime.jsx(ui.ChevronUpIcon,{className:"w-3 h-3 text-default-500 @5xl:w-4 @5xl:h-4"})]})]}),!u&&!c&&k.length>0&&jsxRuntime.jsxs("div",{className:"flex w-full flex-col gap-y-0.5 text-xs @5xl:gap-y-1 @5xl:text-sm",children:[k.map(C=>jsxRuntime.jsxs("button",{type:"button",className:"flex min-h-8 w-full items-center justify-between gap-x-2 transition-opacity hover:cursor-pointer hover:opacity-80",onClick:L=>{L.stopPropagation(),b(C);},children:[jsxRuntime.jsx("span",{className:"text-left text-xs text-foreground @5xl:text-sm line-clamp-1",children:C.yesSubTitle}),jsxRuntime.jsxs("div",{className:"flex items-center gap-x-2",children:[jsxRuntime.jsx("span",{className:"text-xs text-foreground @5xl:text-base",children:y(C)}),jsxRuntime.jsxs("div",{className:"flex h-full items-center gap-x-3 rounded-lg p-1 @5xl:p-1.5 bg-gradient-to-r from-primary-50/20 via-primary-50/20 to-secondary-50/20",children:[jsxRuntime.jsx("span",{className:"text-primary",children:n("predict.market.yes")}),jsxRuntime.jsx("span",{className:"text-default-400",children:"/"}),jsxRuntime.jsx("span",{className:"text-secondary",children:n("predict.market.no")})]})]})]},C.ticker)),E&&jsxRuntime.jsx("span",{className:"text-xxs text-default-500 @5xl:text-xs",children:n("predict.event.moreMarkets",{count:l.length-2})})]}),u&&jsxRuntime.jsxs("div",{className:`flex items-center gap-x-2 text-sm @5xl:text-base ${c?"mt-3":""}`,children:[jsxRuntime.jsxs(ui.Button,{color:"primary",fullWidth:true,className:"group/yes bg-primary-100 text-primary @3xl:!h-12 @3xl:!text-base",size:"sm",onPress:v,children:[jsxRuntime.jsx("span",{className:"group-hover/yes:hidden",children:n("predict.market.yes")}),jsxRuntime.jsx("span",{className:"hidden group-hover/yes:inline",children:y(u)})]}),jsxRuntime.jsxs(ui.Button,{color:"secondary",fullWidth:true,className:"group/no bg-secondary-100 text-secondary @3xl:!h-12 @3xl:!text-base",size:"sm",onPress:w,children:[jsxRuntime.jsx("span",{className:"group-hover/no:hidden",children:n("predict.market.no")}),jsxRuntime.jsx("span",{className:"hidden group-hover/no:inline",children:f(u)})]})]})]}),!u||c?jsxRuntime.jsxs("div",{className:"flex items-center justify-between gap-x-2",children:[jsxRuntime.jsxs("button",{type:"button",className:"flex items-center gap-x-1 text-xxs text-default-600 hover:text-foreground @5xl:text-xs",onClick:C=>{C.stopPropagation(),O();},children:[jsxRuntime.jsx("span",{children:n("predict.event.showMore")}),jsxRuntime.jsx(ui.ChevronRightIcon,{className:"h-3 w-3 @5xl:h-4 @5xl:w-4"})]}),jsxRuntime.jsxs("span",{className:"text-xxs text-default-600 @5xl:text-xs",children:[p," ",n("predict.event.volume")]})]}):jsxRuntime.jsxs("button",{type:"button",className:"flex items-center cursor-pointer gap-x-1 text-xxs text-default-600 hover:text-foreground @5xl:text-xs",onClick:C=>{C.stopPropagation(),h();},children:[jsxRuntime.jsx(ui.ChevronLeftIcon,{className:"h-3 w-3 @5xl:h-4 @5xl:w-4"}),jsxRuntime.jsx("span",{children:n("predict.event.back")})]})]})}var Fu=640,Au=768,Gs=1024,Wu=1280,qu=16,Hu=192,Ku=228,$u=244;function zu(e){return e>=Wu?4:e>=Gs?3:e>=Fu?2:1}function Yu(e){return e>=Gs?$u:e>=Au?Ku:Hu}function js({events:e,hasMore:t=false,onFetchMore:r,onSelect:n,onSelectOutcome:s}){let i=react.useRef(null),{width:o=0,height:a=0}=hooks.useResizeObserver({ref:i}),l=zu(o),c=Yu(o),u=Math.ceil(e.length/l)||0,p=t?u+1:u,d=react.useCallback(f=>f<u,[u]),m=react.useCallback(async()=>{r?.();},[r]),y=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:d,loadMoreRows:m,rowCount:p,threshold:3});return jsxRuntime.jsx("div",{ref:i,className:"@container w-full h-full",children:a>0&&jsxRuntime.jsx(reactWindow.List,{style:{height:a},onRowsRendered:y,rowComponent:Gu,rowCount:p,rowHeight:c,rowProps:{events:e,columnCount:l,dataRowCount:u,gap:qu,onSelect:n,onSelectOutcome:s}})})}function Gu({index:e,style:t,events:r,columnCount:n,dataRowCount:s,gap:i,onSelect:o,onSelectOutcome:a}){if(e>=s)return jsxRuntime.jsx("div",{style:t,className:"flex justify-center items-start pt-4",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})});let l=e*n,c=r.slice(l,l+n),u=n-c.length,p={display:"flex",gap:i,height:`calc(100% - ${i}px)`};return jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsxs("div",{style:p,children:[c.map(d=>jsxRuntime.jsx("div",{style:{flex:1,minWidth:0},children:jsxRuntime.jsx(zs,{event:d,onSelect:o,onSelectOutcome:a})},d.ticker)),u>0&&Array.from({length:u}).map((d,m)=>jsxRuntime.jsx("div",{style:{flex:1,minWidth:0}},`spacer-${m}`))]})})}function Zs({onSelect:e,onSelectOutcome:t,...r}){let{data:n,hasMore:s,fetchMore:i,isFetching:o}=qs({limit:48,...r});return o?jsxRuntime.jsx(Ot,{count:48}):jsxRuntime.jsx(js,{events:n,hasMore:s,onFetchMore:i,onSelect:e,onSelectOutcome:t})}function kP({onSelect:e,onSelectOutcome:t}){let[r,n]=react.useState({category:null,tags:null}),s=react.useCallback(i=>{n(i);},[]);return jsxRuntime.jsxs("div",{className:"flex h-full w-full flex-col gap-y-3",children:[jsxRuntime.jsx(Ws,{onSelect:s}),jsxRuntime.jsx("div",{className:"min-h-0 flex-1",children:jsxRuntime.jsx(Zs,{category:r.category,tags:r.tags,onSelect:e,onSelectOutcome:t})})]})}var ed={Weather:["Daily temperature","Snow and rain","Climate change","Natural disasters","Hurricanes"],Companies:["IPOs","Product launches","KPIs","Elon Musk","CEOs","Layoffs"],Crypto:["BTC","15 min","Hourly","ETH","SOL","DOGE","Pre-Market","XRP","BNB","HYPE"],Economics:["Growth","Fed","Inflation","Oil and energy","Employment","Housing","Jobs & Economy","Bankruptcy & Defaults","GDP","Global Central Banks"],Elections:["Primaries","International elections"],Entertainment:["Music","Movies","Music charts","Television","Awards","Video games","Oscars","Rotten Tomatoes"],Financials:["S&P","Nasdaq","Daily","Metals","Treasuries","Oil","EUR/USD","USD/JPY","WTI"],Mentions:["Politicians","Earnings","Entertainment"],Politics:["Trump","Congress","International","SCOTUS & courts","Local","Recurring","Iran","House"],Science:["AI","Energy","Space"],Social:null,Sports:["Soccer","Basketball","Baseball","Football","Hockey","Golf","Tennis","Motorsport","Esports","Boxing","MMA","Rugby","Lacrosse","Mentions","Chess","Cricket","Aussie Rules","Darts"],World:null},Js=["Politics","Sports","Crypto","Economics","Financials","Elections","Entertainment","Companies","Science and Technology","Climate and Weather","Mentions","Social","World"],Zr=(()=>{let e=t=>{let r=Js.indexOf(t);return r===-1?Js.length:r};return Object.entries(ed).map(([t,r])=>({slug:t,label:t,tags:(r??[]).map(n=>({slug:n,label:n}))})).sort((t,r)=>e(t.slug)-e(r.slug))})();function td(e){return e.map(t=>({category:t.label,tags:t.tags.map(r=>r.label)}))}function rd(e){return e?e.tags.map(t=>({label:t.label,icon:t.icon})):[]}function ro({onSelect:e,trailing:t,className:r}){let[n,s]=react.useState(null),[i,o]=react.useState(null),a=react.useCallback(d=>{s(d),o(null),e?.({categorySlug:d,tagSlug:null});},[e]),l=react.useCallback(d=>{o(d),e?.({categorySlug:n,tagSlug:d});},[n,e]),c=td(Zr),u=Zr.find(d=>d.slug===n),p=rd(u);return jsxRuntime.jsx(ir,{categories:c,selectedCategory:n,selectedTag:i,activeTags:p,onCategorySelect:a,onTagSelect:l,trailing:t,className:r})}var Jr={sortPreset:"volume",sortAsc:false,source:"dflow",timeRemaining:void 0,minVolume:void 0,minLiquidity:void 0};function en(e){let t=0;return e.source&&t++,e.timeRemaining&&t++,e.minVolume&&t++,e.minLiquidity&&t++,t}function so({isOpen:e,onClose:t,value:r,onChange:n}){let{t:s}=i18n.useTranslation(),[i,o]=react.useState(r),a=react.useCallback(g=>{g?o(r):t();},[r,t]),l=react.useCallback(()=>{o(Jr);},[]),c=react.useCallback(()=>{n(i),t();},[i,n,t]),u=react.useCallback((g,x)=>{o(b=>({...b,[g]:x}));},[]),p=react.useMemo(()=>en(i),[i]),d=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"polymarket",label:s("predict.platform.polymarket")},{value:"dflow",label:s("predict.platform.dflow")}],[s]),m=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"1d",label:s("predict.filter.lessThanDay")},{value:"7d",label:s("predict.filter.lessThanWeek")},{value:"30d",label:s("predict.filter.lessThanMonth")}],[s]),y=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"1000",label:">$1K"},{value:"10000",label:">$10K"},{value:"100000",label:">$100K"},{value:"1000000",label:">$1M"}],[s]),f=react.useMemo(()=>[{value:void 0,label:s("predict.filter.all")},{value:"1000",label:">$1K"},{value:"10000",label:">$10K"},{value:"100000",label:">$100K"},{value:"1000000",label:">$1M"}],[s]);return jsxRuntime.jsx(ui.StyledModal,{isOpen:e,onOpenChange:a,size:"md",scrollBehavior:"inside",children:jsxRuntime.jsxs(ui.ModalContent,{children:[jsxRuntime.jsx(ui.ModalHeader,{className:"px-4 py-2",children:jsxRuntime.jsx("span",{className:"text-base font-semibold",children:s("predict.filter.title")})}),jsxRuntime.jsxs(ui.ModalBody,{className:"flex flex-col gap-5",children:[jsxRuntime.jsx(ur,{label:s("predict.filter.platform"),children:jsxRuntime.jsx(dr,{options:d,selected:i.source,onSelect:g=>u("source",g)})}),jsxRuntime.jsx(ur,{label:s("predict.filter.timeRemaining"),children:jsxRuntime.jsx(dr,{options:m,selected:i.timeRemaining,onSelect:g=>u("timeRemaining",g)})}),jsxRuntime.jsx(ur,{label:s("predict.filter.minVolume"),children:jsxRuntime.jsx(dr,{options:y,selected:i.minVolume,onSelect:g=>u("minVolume",g)})}),jsxRuntime.jsx(ur,{label:s("predict.filter.minLiquidity"),children:jsxRuntime.jsx(dr,{options:f,selected:i.minLiquidity,onSelect:g=>u("minLiquidity",g)})})]}),jsxRuntime.jsx(ui.ModalFooter,{className:"px-4",children:jsxRuntime.jsxs("div",{className:"w-full flex justify-between items-center",children:[jsxRuntime.jsx(ui.Button,{variant:"light",color:"default",size:"sm",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:l,children:s("predict.filter.reset")}),jsxRuntime.jsxs(ui.Button,{color:"primary",size:"sm",radius:"full",onPress:c,children:[s("predict.filter.showResults"),p>0&&jsxRuntime.jsxs("span",{className:"ml-1 text-xs opacity-80",children:["(",p,")"]})]})]})})]})})}function ur({label:e,children:t}){return jsxRuntime.jsxs("div",{className:"flex flex-col gap-2.5",children:[jsxRuntime.jsx("span",{className:"text-sm font-semibold text-foreground",children:e}),t]})}function dr({options:e,selected:t,onSelect:r,allowDeselect:n=true}){return jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2",children:e.map(s=>{let i=t===s.value;return jsxRuntime.jsx("button",{type:"button",onClick:()=>{r(i&&n?void 0:s.value);},className:ui.cn("shrink-0 rounded-lg px-3 py-1.5 text-xs font-medium transition-colors duration-150 cursor-pointer border",i?"bg-primary/15 text-primary border-primary/40":"bg-content2 text-foreground/60 border-default-100 hover:bg-default-100 hover:text-foreground"),children:s.label},s.value??"__all")})})}var lo={start_time:{sort_by:"created_at"},volume:{sort_by:"volume"},liquidity:{sort_by:"liquidity"},ending_soon:{sort_by:"end_at"}},io={start_time:"predict.sort.startTime",volume:"predict.sort.volume",liquidity:"predict.sort.liquidity",ending_soon:"predict.sort.endingSoon"},Sd=["start_time","volume","liquidity","ending_soon"];function co({sortPreset:e,onSortChange:t,sortAsc:r,onSortAscChange:n,onFilterPress:s,filterCount:i=0,className:o}){let{t:a}=i18n.useTranslation(),[l,c]=react.useState(false),u=react.useRef(null);react.useEffect(()=>{if(!l)return;let d=y=>{u.current&&!u.current.contains(y.target)&&c(false);},m=y=>{y.key==="Escape"&&c(false);};return document.addEventListener("mousedown",d),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",d),document.removeEventListener("keydown",m);}},[l]);let p=ao[e];return jsxRuntime.jsxs("div",{className:ui.cn("flex items-center gap-2",o),children:[jsxRuntime.jsxs("div",{ref:u,className:"relative flex shrink-0 items-center rounded-full border border-border",children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>c(d=>!d),className:"flex shrink-0 items-center gap-2 px-3 py-1.5 text-xs font-medium text-neutral transition-colors hover:text-primary/80 cursor-pointer",children:[jsxRuntime.jsx(p,{className:"size-[18px] shrink-0"}),jsxRuntime.jsx("span",{className:"whitespace-nowrap",children:a(io[e])})]}),jsxRuntime.jsx("div",{className:"h-6 w-px bg-border"}),jsxRuntime.jsx("button",{type:"button",onClick:()=>n(!r),className:"px-2.5 py-1.5 text-xs text-neutral transition-colors hover:text-primary/80 cursor-pointer",children:r?"\u2191":"\u2193"}),l&&jsxRuntime.jsx("div",{className:"absolute left-0 top-full z-20 mt-1 flex min-w-max flex-col gap-0.5 rounded-lg border border-border bg-content1 p-1 shadow-lg",children:Sd.map(d=>{let m=ao[d];return jsxRuntime.jsxs("button",{type:"button",onClick:()=>{t(d),c(false);},className:ui.cn("flex w-full items-center gap-2 rounded px-2.5 py-1.5 text-xs font-medium transition-colors cursor-pointer",d===e?"bg-primary/10 text-primary":"text-neutral hover:bg-content2 hover:text-foreground"),children:[jsxRuntime.jsx(m,{className:"size-4 shrink-0"}),jsxRuntime.jsx("span",{children:a(io[d])})]},d)})})]}),jsxRuntime.jsx(ui.StyledBadge,{content:i>0?i:void 0,color:"primary",size:"sm",isInvisible:i===0,children:jsxRuntime.jsxs("button",{type:"button",onClick:s,className:"flex shrink-0 items-center gap-2 rounded-full border border-border px-3 py-1.5 text-xs font-medium text-neutral transition-colors hover:text-primary/80 cursor-pointer",children:[jsxRuntime.jsx(ui.FilterIcon,{className:"size-[18px]"}),jsxRuntime.jsx("span",{className:"whitespace-nowrap",children:a("predict.filter.title")})]})})]})}var ao={start_time:ui.CalendarIcon,volume:ui.ChartLineIcon,liquidity:ui.DropletIcon,ending_soon:ui.TimerIcon};function mo(e={}){let t=react.useMemo(()=>Vr(e),[e.tagSlugSelection,e.limit,e.status,e.sort_by,e.sort_asc,e.source,e.with_markets]),{data:r,isLoading:n,isFetching:s,isFetchingNextPage:i,isError:o,error:a,hasNextPage:l,fetchNextPage:c,refetch:u}=Xn(t),p=react.useMemo(()=>r?.pages.flatMap(y=>y.items).filter(y=>y!=null)??[],[r]),d=react.useCallback(()=>{c();},[c]),m=react.useCallback(()=>{u();},[u]);return {data:p,isLoading:n,isFetching:s&&!i,isFetchingMore:i,isError:o,error:a??null,hasMore:l??false,fetchMore:d,refetch:m}}var fo=3,rn={bg:"hsl(var(--heroui-primary) / 0.14)",text:"hsl(var(--heroui-primary))",shadow:"hsl(var(--heroui-primary) / 0.18)"},ho={bg:"hsl(var(--heroui-secondary) / 0.14)",text:"hsl(var(--heroui-secondary))",shadow:"hsl(var(--heroui-secondary) / 0.18)"},Rd={bg:"rgba(239, 68, 68, 0.14)",text:"rgb(239, 68, 68)",shadow:"rgba(239, 68, 68, 0.18)"},Lt=[{bg:"rgba(139,92,246,0.14)",text:"rgb(139,92,246)",shadow:"rgba(139,92,246,0.18)"},{bg:"rgba(34,197,94,0.14)",text:"rgb(34,197,94)",shadow:"rgba(34,197,94,0.18)"},{bg:"rgba(0,166,212,0.14)",text:"rgb(0,166,212)",shadow:"rgba(0,166,212,0.18)"},{bg:"rgba(194,120,32,0.14)",text:"rgb(194,120,32)",shadow:"rgba(194,120,32,0.18)"},{bg:"rgba(202,138,4,0.14)",text:"rgb(202,138,4)",shadow:"rgba(202,138,4,0.18)"},{bg:"rgba(236,72,153,0.14)",text:"rgb(236,72,153)",shadow:"rgba(236,72,153,0.18)"},{bg:"rgba(99,102,241,0.14)",text:"rgb(99,102,241)",shadow:"rgba(99,102,241,0.18)"},{bg:"rgba(244,114,82,0.14)",text:"rgb(244,114,82)",shadow:"rgba(244,114,82,0.18)"}];function yo(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return Math.abs(t)}function Od(e){let t=e.outcomes?.map(o=>o.label?.toLowerCase().trim()??"")??[];if(t.some(o=>o==="up")&&t.some(o=>o==="down"))return [rn,Rd];if(t.some(o=>o==="yes")&&t.some(o=>o==="no"))return [rn,ho];let r=t[0]??"",n=t[1]??"",s=yo(r)%Lt.length,i=yo(n)%Lt.length;return i===s&&(i=(i+1)%Lt.length),[Lt[s],Lt[i]]}function Vd(e){let t=e.outcomes?.[0];return t?t.best_ask??t.price??null:null}function ko(e){let t=Vd(e);return t!=null?Math.round(t*100):0}function Po(e){return e<=1&&e>0?"< 1%":e>=99&&e<100?"> 99%":`${e}%`}function go(e){let t=e.outcomes?.[0];return ((t?.best_ask??t?.price??0)*100).toFixed(1)}function vo(e){let t=e.outcomes?.[1];if(t){let s=t.best_ask??t.price??0;return Math.round(s*100).toString()}let r=e.outcomes?.[0],n=r?.best_ask??r?.price??0;return Math.round((1-n)*100).toString()}function Id(e){let t=new Date(e).getTime()-Date.now();if(t<=0)return null;let r=Math.floor(t/864e5),n=Math.floor(t%864e5/36e5),s=Math.floor(t%36e5/6e4),i=[];return r>0&&i.push(`${r}d`),n>0&&i.push(`${n}h`),i.push(`${s}m`),i.join(" ")}var Ld=`
|
|
2
2
|
.badge-shine { position: relative; overflow: hidden; }
|
|
3
3
|
.badge-shine::after {
|
|
4
4
|
content: "";
|