@liberfi.io/ui-predict 0.1.52 → 0.1.54

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/README.md ADDED
@@ -0,0 +1,263 @@
1
+ # @liberfi.io/ui-predict
2
+
3
+ Prediction market UI components, data hooks, and client for the Liberfi React SDK. Provides a full-stack prediction market experience — from event browsing and detail views to trading, order management, and real-time price feeds. Consumed by template apps (e.g. `dex-nextjs-template`) and composed with `@liberfi.io/ui` base components.
4
+
5
+ ## Design Philosophy
6
+
7
+ - **Script / UI / Widget separation** — Each feature area (events, trade-form, order-book, etc.) is split into a `.script` (data hook), `.ui` (pure presentation), and `.widget` (wiring) layer. Presentational components are reusable without the full data stack.
8
+ - **Inversion of Control** — Navigation, side effects, and framework-specific behaviour (e.g. Next.js `<Link>`) are injected via callbacks and component props. The package never imports a router or framework directly.
9
+ - **V1 / V2 coexistence** — Legacy DFlow-backed components coexist with the prediction-server v2 client. Consumers migrate at their own pace; both APIs are stable and exported.
10
+ - **Provider-based client injection** — `PredictProvider` / `PredictV2Provider` supply the API client via React Context. Hooks pull the client from context, keeping components testable and decoupled from concrete HTTP implementations.
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ pnpm add @liberfi.io/ui-predict
16
+ ```
17
+
18
+ ### Peer dependencies
19
+
20
+ The consumer must provide:
21
+
22
+ | Package | Version |
23
+ | ----------------------- | ------- |
24
+ | `react` | >= 18 |
25
+ | `react-dom` | >= 18 |
26
+ | `@tanstack/react-query` | ^5.90.2 |
27
+
28
+ ## API Reference
29
+
30
+ ### Providers
31
+
32
+ | Provider | Props | Description |
33
+ | --------------------- | ----------------------------------------- | ---------------------------------------------------------------------------- |
34
+ | `PredictProvider` | `client: IPredictClient` | Supplies the legacy DFlow predict client to all descendant hooks/components. |
35
+ | `PredictV2Provider` | `client: PredictClientV2` | Supplies the v2 prediction-server client. |
36
+ | `UserPredictProvider` | `walletAddress: string, enabled: boolean` | Provides user-specific prediction context (positions, orders). |
37
+
38
+ ### Components — Events (V2)
39
+
40
+ | Component | Key Props | Description |
41
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
42
+ | `EventsPageV2` | `onSelect`, `onSelectOutcome`, `getEventHref`, `LinkComponent`, `onHover` | Full events page with categories, toolbar, filters, and grid. |
43
+ | `EventsWidgetV2` | `tagSlugSelection`, `limit`, `status`, `sort_by`, `source`, `onSelect`, `onSelectOutcome`, `getEventHref`, `LinkComponent`, `onHover` | Container that wires `useEventsV2` data to `EventsV2UI`. |
44
+ | `EventsV2UI` | `events`, `hasMore`, `onFetchMore`, `onSelect`, `onSelectOutcome`, `getEventHref`, `LinkComponent`, `onHover` | Virtualized grid (react-window) rendering `EventItemV2UI` cards. |
45
+ | `EventItemV2UI` | `event`, `href`, `LinkComponent`, `onSelect`, `onSelectOutcome`, `onHover` | Single event card. Uses `Linkable` from `@liberfi.io/ui` — renders as a `<Link>` when `href` is set, `<div>` otherwise. |
46
+ | `CategoriesWidgetV2` | `onSelect`, `trailing` | Category/tag navigation (slug-based). |
47
+
48
+ #### Link integration props
49
+
50
+ These props enable framework-agnostic route link rendering and prefetching:
51
+
52
+ - **`getEventHref?: (event: V2Event) => string`** — Generates the URL for each event card. When provided, cards render as link elements instead of plain divs.
53
+ - **`LinkComponent?: LinkComponentType`** — A custom link component (e.g. `next/link`). Falls back to `<a>` when `href` is set without this prop. Import `LinkComponentType` from `@liberfi.io/ui`.
54
+ - **`onHover?: (event: V2Event) => void`** — Called when a card is hovered (`onMouseEnter`). Use this to trigger data prefetching (e.g. `queryClient.prefetchQuery`).
55
+
56
+ ### Components — Event Detail
57
+
58
+ | Component | Key Props | Description |
59
+ | --------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------- |
60
+ | `EventDetailPage` | `eventId`, `onTradeAction` | Full detail page composing detail + trade form. |
61
+ | `EventDetailWidget` | `eventId`, `initialMarketTickers`, `initialChartRange`, `onTradeAction` | Event detail with candlestick chart and market list. |
62
+ | `EventDetailUI` | `event`, `series`, `candlesticks`, `chartRange`, ... | Pure presentation for event detail. |
63
+ | `EventDetailSkeleton` | `marketCount?` | Loading skeleton for the detail page. |
64
+
65
+ ### Components — Trading
66
+
67
+ | Component | Description |
68
+ | -------------------- | ---------------------------------------------------- |
69
+ | `TradeFormWidget` | Trade form wiring (market, side, amount, execution). |
70
+ | `OrderBookWidget` | Live order book with depth visualization. |
71
+ | `OpenOrdersWidget` | User's open orders with cancel support. |
72
+ | `TradeHistoryWidget` | Recent trade history. |
73
+ | `PositionsWidget` | User's prediction market positions. |
74
+
75
+ ### Hooks — Events
76
+
77
+ | Hook | Params | Return | Description |
78
+ | ------------------------ | ---------------------------- | ----------------------- | ---------------------------------------------- |
79
+ | `useEventsV2` | `UseEventsV2Params` | `UseEventsV2Result` | V2 infinite-scroll events list (cursor-based). |
80
+ | `useEventByIdQuery` | `{ id, withNestedMarkets? }` | TanStack Query result | Single event by ID/slug. |
81
+ | `useEventsQuery` | `EventQueryParams` | TanStack Query result | Legacy paginated events. |
82
+ | `useEventsInfiniteQuery` | `EventQueryParams` | TanStack infinite query | Legacy infinite-scroll events. |
83
+
84
+ ### Hooks — Markets & Data
85
+
86
+ | Hook | Description |
87
+ | --------------------------------------------------------- | ------------------------------- |
88
+ | `useMarketsQuery` | Markets by event. |
89
+ | `useMarketByIdQuery` | Single market by ticker. |
90
+ | `useMarketByMintQuery` | Market lookup by mint address. |
91
+ | `useMarketsBatchQuery` | Batch market lookup. |
92
+ | `useOrderBookQuery` | Order book for a market. |
93
+ | `useTradesQuery` | Recent trades. |
94
+ | `useOnchainTradesQuery` / `useOnchainTradesInfiniteQuery` | On-chain trade history. |
95
+ | `usePriceHistoryQuery` | Candlestick data. |
96
+ | `useForecastHistoryQuery` | AI forecast percentile history. |
97
+ | `useLiveDataQuery` | Real-time market data. |
98
+ | `useSeriesQuery` | Series metadata. |
99
+ | `useCategoriesQuery` | Tag/category list. |
100
+ | `useSearchQuery` | Search events. |
101
+
102
+ ### Hooks — User & Trading
103
+
104
+ | Hook | Description |
105
+ | --------------------------- | -------------------------------- |
106
+ | `usePositionsByWalletQuery` | User positions by wallet. |
107
+ | `useMarketPositions` | Positions for a specific market. |
108
+ | `useQuoteQuery` | Trade quote. |
109
+ | `useSwapMutation` | Execute a swap/trade. |
110
+ | `useOrderQuery` | Place a limit order. |
111
+ | `useIntentQuery` | Intent-based trading. |
112
+ | `useOutcomeMintsQuery` | Outcome token mints. |
113
+ | `useTokensQuery` | Token list. |
114
+ | `useVenuesQuery` | Venue list. |
115
+
116
+ ### Hooks — WebSocket
117
+
118
+ | Hook | Description |
119
+ | -------------------------- | ----------------------------------------- |
120
+ | `useWsConnection` | WebSocket connection lifecycle. |
121
+ | `useWsClient` | Access the WS client instance. |
122
+ | `usePricesSubscription` | Subscribe to real-time price updates. |
123
+ | `useTradesSubscription` | Subscribe to real-time trade updates. |
124
+ | `useOrderbookSubscription` | Subscribe to real-time orderbook updates. |
125
+
126
+ ### Hooks — V2
127
+
128
+ | Hook | Description |
129
+ | -------------------- | --------------------------------------- |
130
+ | `usePredictV2Client` | Access the v2 prediction-server client. |
131
+ | `useEventsV2Query` | V2 events query (single page). |
132
+ | `useEventV2Query` | V2 single event query. |
133
+
134
+ ### Functions / Utilities
135
+
136
+ | Function | Signature | Description |
137
+ | ---------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
138
+ | `eventByIdQueryKey` | `(params: UseEventByIdQueryParams) => unknown[]` | Stable query key for `useEventByIdQuery`. Useful for prefetching. |
139
+ | `fetchEventById` | `(client: IPredictClient, params: UseEventByIdQueryParams) => Promise<StandardEvent>` | Standalone fetch function for event detail. Useful for `queryClient.prefetchQuery`. |
140
+ | `marketCandlesticksQueryKey` | `(params) => unknown[]` | Query key for candlestick data. |
141
+ | `fetchMarketCandlesticks` | `(client, params) => Promise<CandlesticksResponse>` | Standalone candlestick fetch. |
142
+ | `createPredictClientV2` | `(baseURL: string) => PredictClientV2` | Factory for the v2 client. |
143
+ | `createPredictWsClient` | `(config: WsClientConfig) => PredictWsClient` | Factory for the WebSocket client. |
144
+
145
+ ### Key Types
146
+
147
+ | Type | Description |
148
+ | ------------------ | --------------------------------------------------------- | ---- | ---- | ------ |
149
+ | `V2Event` | V2 event with markets, metadata, and volume. |
150
+ | `V2Market` | V2 market with outcomes, status, and pricing. |
151
+ | `StandardEvent` | Legacy event model. |
152
+ | `StandardMarket` | Legacy market model. |
153
+ | `IPredictClient` | Interface for the prediction API client. |
154
+ | `IPredictWsClient` | Interface for the WebSocket client. |
155
+ | `TagSlugSelection` | Category/tag selection state `{ categorySlug, tagSlug }`. |
156
+ | `ChartRangeType` | `"1d" | "1w" | "1m" | "all"` |
157
+
158
+ ### Constants
159
+
160
+ | Constant | Value | Description |
161
+ | --------------------------- | --------------------------------------- | ------------------------------------ |
162
+ | `DEFAULT_PAGE_SIZE` | 48 | Default events per page. |
163
+ | `MAX_PRICE_HISTORY_MARKETS` | 4 | Max markets for candlestick queries. |
164
+ | `ChartRange` | `{ ONE_DAY, ONE_WEEK, ONE_MONTH, ALL }` | Chart time range enum. |
165
+ | `CandlestickPeriod` | `{ ONE_MINUTE, ONE_HOUR, ONE_DAY }` | Candlestick granularity. |
166
+
167
+ ## Usage Examples
168
+
169
+ ### Basic event list with Next.js Link prefetching
170
+
171
+ ```tsx
172
+ import { useCallback } from "react";
173
+ import { useQueryClient } from "@tanstack/react-query";
174
+ import Link from "next/link";
175
+ import { useRouter } from "next/navigation";
176
+ import {
177
+ EventsPageV2,
178
+ eventByIdQueryKey,
179
+ fetchEventById,
180
+ usePredictClient,
181
+ } from "@liberfi.io/ui-predict";
182
+ import type { V2Event } from "@liberfi.io/ui-predict";
183
+
184
+ function PredictListPage() {
185
+ const router = useRouter();
186
+ const queryClient = useQueryClient();
187
+ const predictClient = usePredictClient();
188
+
189
+ // TanStack Query data prefetch on hover
190
+ const handleHover = useCallback(
191
+ (event: V2Event) => {
192
+ queryClient.prefetchQuery({
193
+ queryKey: eventByIdQueryKey({
194
+ id: event.slug,
195
+ withNestedMarkets: true,
196
+ }),
197
+ queryFn: () =>
198
+ fetchEventById(predictClient, {
199
+ id: event.slug,
200
+ withNestedMarkets: true,
201
+ }),
202
+ staleTime: 30_000,
203
+ });
204
+ },
205
+ [queryClient, predictClient],
206
+ );
207
+
208
+ return (
209
+ <EventsPageV2
210
+ getEventHref={(event) => `/predict/${event.slug}`}
211
+ LinkComponent={Link}
212
+ onHover={handleHover}
213
+ onSelect={(event) => router.push(`/predict/${event.slug}`)}
214
+ />
215
+ );
216
+ }
217
+ ```
218
+
219
+ ### Event list without Link (callback-only, backward compatible)
220
+
221
+ ```tsx
222
+ import { EventsPageV2 } from "@liberfi.io/ui-predict";
223
+
224
+ function PredictListPage() {
225
+ return (
226
+ <EventsPageV2
227
+ onSelect={(event) => console.log("selected", event.slug)}
228
+ onSelectOutcome={(event, market, side) =>
229
+ console.log("outcome", event.slug, market.slug, side)
230
+ }
231
+ />
232
+ );
233
+ }
234
+ ```
235
+
236
+ ### Provider setup
237
+
238
+ ```tsx
239
+ import {
240
+ PredictProvider,
241
+ PredictV2Provider,
242
+ PredictClient,
243
+ createPredictClientV2,
244
+ } from "@liberfi.io/ui-predict";
245
+
246
+ const legacyClient = new PredictClient("https://api.example.com");
247
+ const v2Client = createPredictClientV2("https://predict-v2.example.com");
248
+
249
+ function App({ children }) {
250
+ return (
251
+ <PredictProvider client={legacyClient}>
252
+ <PredictV2Provider client={v2Client}>{children}</PredictV2Provider>
253
+ </PredictProvider>
254
+ );
255
+ }
256
+ ```
257
+
258
+ ## Future Improvements
259
+
260
+ - Migrate remaining v1 components (events list, categories) to v2 client, then deprecate v1 hooks and types.
261
+ - Add `onHover` callback support to `EventDetailWidget` for prefetching related series/candlestick data.
262
+ - Consider a `usePrefetchEventDetail` convenience hook that combines route prefetch + query prefetch in one call.
263
+ - Extract common virtualized grid logic (`EventsV2UI` pattern) into a shared `@liberfi.io/ui` component for reuse in token lists and channel lists.
@@ -1 +1 @@
1
- export { aQ as BasePredictClient, aT as DflowPredictClient, aU as DflowPredictWsClient, aT as PredictClient, P as PredictClientV2, aU as PredictWsClient, V as V2Event, d as V2EventSortField, c as V2EventStatus, j as V2ListEventsParams, b as V2Market, aY as V2MarketResult, aZ as V2MarketStatus, a_ as V2Outcome, k as V2Page, a$ as V2ProviderMeta, b0 as V2ProviderSource, b1 as V2SettlementSource, b2 as V2Tag, aW as WsClientConfig, aR as buildQuery, aV as createDflowPredictWsClient, aX as createPredictClientV2, aV as createPredictWsClient, aS as toRecord } from '../index-D3Ek8yK4.mjs';
1
+ export { aR as BasePredictClient, aU as DflowPredictClient, aV as DflowPredictWsClient, aU as PredictClient, P as PredictClientV2, aV as PredictWsClient, c as V2Event, V as V2EventSortField, e as V2EventStatus, k as V2ListEventsParams, d as V2Market, aZ as V2MarketResult, a_ as V2MarketStatus, a$ as V2Outcome, l as V2Page, b0 as V2ProviderMeta, b as V2ProviderSource, b1 as V2SettlementSource, b2 as V2Tag, aX as WsClientConfig, aS as buildQuery, aW as createDflowPredictWsClient, aY as createPredictClientV2, aW as createPredictWsClient, aT as toRecord } from '../index-DIcC-37S.mjs';
@@ -1 +1 @@
1
- export { aQ as BasePredictClient, aT as DflowPredictClient, aU as DflowPredictWsClient, aT as PredictClient, P as PredictClientV2, aU as PredictWsClient, V as V2Event, d as V2EventSortField, c as V2EventStatus, j as V2ListEventsParams, b as V2Market, aY as V2MarketResult, aZ as V2MarketStatus, a_ as V2Outcome, k as V2Page, a$ as V2ProviderMeta, b0 as V2ProviderSource, b1 as V2SettlementSource, b2 as V2Tag, aW as WsClientConfig, aR as buildQuery, aV as createDflowPredictWsClient, aX as createPredictClientV2, aV as createPredictWsClient, aS as toRecord } from '../index-D3Ek8yK4.js';
1
+ export { aR as BasePredictClient, aU as DflowPredictClient, aV as DflowPredictWsClient, aU as PredictClient, P as PredictClientV2, aV as PredictWsClient, c as V2Event, V as V2EventSortField, e as V2EventStatus, k as V2ListEventsParams, d as V2Market, aZ as V2MarketResult, a_ as V2MarketStatus, a$ as V2Outcome, l as V2Page, b0 as V2ProviderMeta, b as V2ProviderSource, b1 as V2SettlementSource, b2 as V2Tag, aX as WsClientConfig, aS as buildQuery, aW as createDflowPredictWsClient, aY as createPredictClientV2, aW as createPredictWsClient, aT as toRecord } from '../index-DIcC-37S.js';
@@ -1601,4 +1601,4 @@ declare class DflowPredictWsClient implements IPredictWsClient {
1601
1601
  */
1602
1602
  declare function createDflowPredictWsClient(config: WsClientConfig): DflowPredictWsClient;
1603
1603
 
1604
- export { type SwapRequestBody as $, type LiveDataByMintQueryParams as A, type SeriesQueryParams as B, type CandlesticksResponse as C, type SeriesListResponse as D, type EventQueryParams as E, type ForecastPercentileHistoryQueryParams as F, type TagsByCategoriesResponse as G, type FiltersBySportsResponse as H, type IPredictClient as I, type SearchQueryParams as J, type SearchResponse as K, type LiveDataQueryParams as L, type MarketQueryParams as M, type PositionsByWalletQueryParams as N, type OrderResponse as O, PredictClientV2 as P, type WalletPositionsResponse as Q, type OutcomeMintsQueryParams as R, type StandardEvent as S, type TradesQueryParams as T, type OutcomeMintsResponse as U, type V2Event as V, type WalletPositionItem as W, type FilterOutcomeMintsRequest as X, type FilterOutcomeMintsResponse as Y, type QuoteQueryParams as Z, type QuoteResponse as _, type StandardMarket as a, type V2ProviderMeta as a$, type SwapResponse as a0, type SwapInstructionsResponse as a1, type OrderQueryParams as a2, type OrderStatusQueryParams as a3, type IntentQuoteQueryParams as a4, type IntentQuoteResponse as a5, type IntentSwapRequestBody as a6, type IntentSwapResponse as a7, type PredictionMarketInitQueryParams as a8, type PredictionMarketInitResponse as a9, type PlatformFee as aA, type ComputeBudgetInfo as aB, type PrioritizationType as aC, type AccountMetaResponse as aD, type InstructionResponse as aE, type BlockhashWithMetadata as aF, type OrderFill as aG, type OrderRevert as aH, type IntentExpiry as aI, type TokenWithDecimals as aJ, type OrderbookQueryParams as aK, type PrioritizationFeeLamports as aL, type DestinationTokenAccountParam as aM, type CreateFeeAccountParams as aN, type PositiveSlippageParams as aO, type WsSubscribeOptions as aP, BasePredictClient as aQ, buildQuery as aR, toRecord as aS, DflowPredictClient as aT, DflowPredictWsClient as aU, createDflowPredictWsClient as aV, type WsClientConfig as aW, createPredictClientV2 as aX, type V2MarketResult as aY, type V2MarketStatus as aZ, type V2Outcome as a_, type TokenListResponse as aa, type TokenListWithDecimalsResponse as ab, type VenueListResponse as ac, type WsConnectionStatus as ad, type WsPriceUpdate as ae, type WsTradeUpdate as af, type WsOrderbookUpdate as ag, type ProviderType as ah, type MarketStatus as ai, type SortField as aj, type SortOrder as ak, type OrderStatus as al, type PlatformFeeMode as am, type SlippageTolerance as an, type PriorityLevel as ao, type ExecutionMode as ap, type SettlementSource as aq, type MarketAccountInfo as ar, type OnchainTrade as as, type OnchainTradeSortBy as at, type OnchainTradesBaseQueryParams as au, type CandlestickOHLC as av, type CandlestickDataPoint as aw, type ForecastPercentileDataPoint as ax, type SeriesSettlementSource as ay, type RoutePlanLeg as az, type V2Market as b, type V2ProviderSource as b0, type V2SettlementSource as b1, type V2Tag as b2, type V2EventStatus as c, type V2EventSortField as d, type OrderStatusResponse as e, type SeriesResponse as f, type OrderbookLevel as g, type SingleTradeResponse as h, type IPredictWsClient as i, type V2ListEventsParams as j, type V2Page as k, type StandardEventsResponse as l, type StandardMarketsResponse as m, type MarketsBatchRequest as n, type OrderbookResponse as o, type MultiTradeResponse as p, type TradesByMintQueryParams as q, type OnchainTradesByWalletQueryParams as r, type MultiOnchainTradeResponse as s, type OnchainTradesByEventQueryParams as t, type OnchainTradesByMarketQueryParams as u, type CandlesticksQueryParams as v, type ForecastPercentileHistoryResponse as w, type ForecastPercentileHistoryByMintQueryParams as x, type LiveDataResponse as y, type LiveDataByEventQueryParams as z };
1604
+ export { type QuoteResponse as $, type LiveDataByEventQueryParams as A, type LiveDataByMintQueryParams as B, type CandlesticksResponse as C, type SeriesQueryParams as D, type EventQueryParams as E, type ForecastPercentileHistoryQueryParams as F, type SeriesListResponse as G, type TagsByCategoriesResponse as H, type IPredictClient as I, type FiltersBySportsResponse as J, type SearchQueryParams as K, type LiveDataQueryParams as L, type MarketQueryParams as M, type SearchResponse as N, type OrderResponse as O, PredictClientV2 as P, type PositionsByWalletQueryParams as Q, type WalletPositionsResponse as R, type StandardEvent as S, type TradesQueryParams as T, type OutcomeMintsQueryParams as U, type V2EventSortField as V, type WalletPositionItem as W, type OutcomeMintsResponse as X, type FilterOutcomeMintsRequest as Y, type FilterOutcomeMintsResponse as Z, type QuoteQueryParams as _, type StandardMarket as a, type V2Outcome as a$, type SwapRequestBody as a0, type SwapResponse as a1, type SwapInstructionsResponse as a2, type OrderQueryParams as a3, type OrderStatusQueryParams as a4, type IntentQuoteQueryParams as a5, type IntentQuoteResponse as a6, type IntentSwapRequestBody as a7, type IntentSwapResponse as a8, type PredictionMarketInitQueryParams as a9, type RoutePlanLeg as aA, type PlatformFee as aB, type ComputeBudgetInfo as aC, type PrioritizationType as aD, type AccountMetaResponse as aE, type InstructionResponse as aF, type BlockhashWithMetadata as aG, type OrderFill as aH, type OrderRevert as aI, type IntentExpiry as aJ, type TokenWithDecimals as aK, type OrderbookQueryParams as aL, type PrioritizationFeeLamports as aM, type DestinationTokenAccountParam as aN, type CreateFeeAccountParams as aO, type PositiveSlippageParams as aP, type WsSubscribeOptions as aQ, BasePredictClient as aR, buildQuery as aS, toRecord as aT, DflowPredictClient as aU, DflowPredictWsClient as aV, createDflowPredictWsClient as aW, type WsClientConfig as aX, createPredictClientV2 as aY, type V2MarketResult as aZ, type V2MarketStatus as a_, type PredictionMarketInitResponse as aa, type TokenListResponse as ab, type TokenListWithDecimalsResponse as ac, type VenueListResponse as ad, type WsConnectionStatus as ae, type WsPriceUpdate as af, type WsTradeUpdate as ag, type WsOrderbookUpdate as ah, type ProviderType as ai, type MarketStatus as aj, type SortField as ak, type SortOrder as al, type OrderStatus as am, type PlatformFeeMode as an, type SlippageTolerance as ao, type PriorityLevel as ap, type ExecutionMode as aq, type SettlementSource as ar, type MarketAccountInfo as as, type OnchainTrade as at, type OnchainTradeSortBy as au, type OnchainTradesBaseQueryParams as av, type CandlestickOHLC as aw, type CandlestickDataPoint as ax, type ForecastPercentileDataPoint as ay, type SeriesSettlementSource as az, type V2ProviderSource as b, type V2ProviderMeta as b0, type V2SettlementSource as b1, type V2Tag as b2, type V2Event as c, type V2Market as d, type V2EventStatus as e, type OrderStatusResponse as f, type SeriesResponse as g, type OrderbookLevel as h, type SingleTradeResponse as i, type IPredictWsClient as j, type V2ListEventsParams as k, type V2Page as l, type StandardEventsResponse as m, type StandardMarketsResponse as n, type MarketsBatchRequest as o, type OrderbookResponse as p, type MultiTradeResponse as q, type TradesByMintQueryParams as r, type OnchainTradesByWalletQueryParams as s, type MultiOnchainTradeResponse as t, type OnchainTradesByEventQueryParams as u, type OnchainTradesByMarketQueryParams as v, type CandlesticksQueryParams as w, type ForecastPercentileHistoryResponse as x, type ForecastPercentileHistoryByMintQueryParams as y, type LiveDataResponse as z };
@@ -1601,4 +1601,4 @@ declare class DflowPredictWsClient implements IPredictWsClient {
1601
1601
  */
1602
1602
  declare function createDflowPredictWsClient(config: WsClientConfig): DflowPredictWsClient;
1603
1603
 
1604
- export { type SwapRequestBody as $, type LiveDataByMintQueryParams as A, type SeriesQueryParams as B, type CandlesticksResponse as C, type SeriesListResponse as D, type EventQueryParams as E, type ForecastPercentileHistoryQueryParams as F, type TagsByCategoriesResponse as G, type FiltersBySportsResponse as H, type IPredictClient as I, type SearchQueryParams as J, type SearchResponse as K, type LiveDataQueryParams as L, type MarketQueryParams as M, type PositionsByWalletQueryParams as N, type OrderResponse as O, PredictClientV2 as P, type WalletPositionsResponse as Q, type OutcomeMintsQueryParams as R, type StandardEvent as S, type TradesQueryParams as T, type OutcomeMintsResponse as U, type V2Event as V, type WalletPositionItem as W, type FilterOutcomeMintsRequest as X, type FilterOutcomeMintsResponse as Y, type QuoteQueryParams as Z, type QuoteResponse as _, type StandardMarket as a, type V2ProviderMeta as a$, type SwapResponse as a0, type SwapInstructionsResponse as a1, type OrderQueryParams as a2, type OrderStatusQueryParams as a3, type IntentQuoteQueryParams as a4, type IntentQuoteResponse as a5, type IntentSwapRequestBody as a6, type IntentSwapResponse as a7, type PredictionMarketInitQueryParams as a8, type PredictionMarketInitResponse as a9, type PlatformFee as aA, type ComputeBudgetInfo as aB, type PrioritizationType as aC, type AccountMetaResponse as aD, type InstructionResponse as aE, type BlockhashWithMetadata as aF, type OrderFill as aG, type OrderRevert as aH, type IntentExpiry as aI, type TokenWithDecimals as aJ, type OrderbookQueryParams as aK, type PrioritizationFeeLamports as aL, type DestinationTokenAccountParam as aM, type CreateFeeAccountParams as aN, type PositiveSlippageParams as aO, type WsSubscribeOptions as aP, BasePredictClient as aQ, buildQuery as aR, toRecord as aS, DflowPredictClient as aT, DflowPredictWsClient as aU, createDflowPredictWsClient as aV, type WsClientConfig as aW, createPredictClientV2 as aX, type V2MarketResult as aY, type V2MarketStatus as aZ, type V2Outcome as a_, type TokenListResponse as aa, type TokenListWithDecimalsResponse as ab, type VenueListResponse as ac, type WsConnectionStatus as ad, type WsPriceUpdate as ae, type WsTradeUpdate as af, type WsOrderbookUpdate as ag, type ProviderType as ah, type MarketStatus as ai, type SortField as aj, type SortOrder as ak, type OrderStatus as al, type PlatformFeeMode as am, type SlippageTolerance as an, type PriorityLevel as ao, type ExecutionMode as ap, type SettlementSource as aq, type MarketAccountInfo as ar, type OnchainTrade as as, type OnchainTradeSortBy as at, type OnchainTradesBaseQueryParams as au, type CandlestickOHLC as av, type CandlestickDataPoint as aw, type ForecastPercentileDataPoint as ax, type SeriesSettlementSource as ay, type RoutePlanLeg as az, type V2Market as b, type V2ProviderSource as b0, type V2SettlementSource as b1, type V2Tag as b2, type V2EventStatus as c, type V2EventSortField as d, type OrderStatusResponse as e, type SeriesResponse as f, type OrderbookLevel as g, type SingleTradeResponse as h, type IPredictWsClient as i, type V2ListEventsParams as j, type V2Page as k, type StandardEventsResponse as l, type StandardMarketsResponse as m, type MarketsBatchRequest as n, type OrderbookResponse as o, type MultiTradeResponse as p, type TradesByMintQueryParams as q, type OnchainTradesByWalletQueryParams as r, type MultiOnchainTradeResponse as s, type OnchainTradesByEventQueryParams as t, type OnchainTradesByMarketQueryParams as u, type CandlesticksQueryParams as v, type ForecastPercentileHistoryResponse as w, type ForecastPercentileHistoryByMintQueryParams as x, type LiveDataResponse as y, type LiveDataByEventQueryParams as z };
1604
+ export { type QuoteResponse as $, type LiveDataByEventQueryParams as A, type LiveDataByMintQueryParams as B, type CandlesticksResponse as C, type SeriesQueryParams as D, type EventQueryParams as E, type ForecastPercentileHistoryQueryParams as F, type SeriesListResponse as G, type TagsByCategoriesResponse as H, type IPredictClient as I, type FiltersBySportsResponse as J, type SearchQueryParams as K, type LiveDataQueryParams as L, type MarketQueryParams as M, type SearchResponse as N, type OrderResponse as O, PredictClientV2 as P, type PositionsByWalletQueryParams as Q, type WalletPositionsResponse as R, type StandardEvent as S, type TradesQueryParams as T, type OutcomeMintsQueryParams as U, type V2EventSortField as V, type WalletPositionItem as W, type OutcomeMintsResponse as X, type FilterOutcomeMintsRequest as Y, type FilterOutcomeMintsResponse as Z, type QuoteQueryParams as _, type StandardMarket as a, type V2Outcome as a$, type SwapRequestBody as a0, type SwapResponse as a1, type SwapInstructionsResponse as a2, type OrderQueryParams as a3, type OrderStatusQueryParams as a4, type IntentQuoteQueryParams as a5, type IntentQuoteResponse as a6, type IntentSwapRequestBody as a7, type IntentSwapResponse as a8, type PredictionMarketInitQueryParams as a9, type RoutePlanLeg as aA, type PlatformFee as aB, type ComputeBudgetInfo as aC, type PrioritizationType as aD, type AccountMetaResponse as aE, type InstructionResponse as aF, type BlockhashWithMetadata as aG, type OrderFill as aH, type OrderRevert as aI, type IntentExpiry as aJ, type TokenWithDecimals as aK, type OrderbookQueryParams as aL, type PrioritizationFeeLamports as aM, type DestinationTokenAccountParam as aN, type CreateFeeAccountParams as aO, type PositiveSlippageParams as aP, type WsSubscribeOptions as aQ, BasePredictClient as aR, buildQuery as aS, toRecord as aT, DflowPredictClient as aU, DflowPredictWsClient as aV, createDflowPredictWsClient as aW, type WsClientConfig as aX, createPredictClientV2 as aY, type V2MarketResult as aZ, type V2MarketStatus as a_, type PredictionMarketInitResponse as aa, type TokenListResponse as ab, type TokenListWithDecimalsResponse as ac, type VenueListResponse as ad, type WsConnectionStatus as ae, type WsPriceUpdate as af, type WsTradeUpdate as ag, type WsOrderbookUpdate as ah, type ProviderType as ai, type MarketStatus as aj, type SortField as ak, type SortOrder as al, type OrderStatus as am, type PlatformFeeMode as an, type SlippageTolerance as ao, type PriorityLevel as ap, type ExecutionMode as aq, type SettlementSource as ar, type MarketAccountInfo as as, type OnchainTrade as at, type OnchainTradeSortBy as au, type OnchainTradesBaseQueryParams as av, type CandlestickOHLC as aw, type CandlestickDataPoint as ax, type ForecastPercentileDataPoint as ay, type SeriesSettlementSource as az, type V2ProviderSource as b, type V2ProviderMeta as b0, type V2SettlementSource as b1, type V2Tag as b2, type V2Event as c, type V2Market as d, type V2EventStatus as e, type OrderStatusResponse as f, type SeriesResponse as g, type OrderbookLevel as h, type SingleTradeResponse as i, type IPredictWsClient as j, type V2ListEventsParams as k, type V2Page as l, type StandardEventsResponse as m, type StandardMarketsResponse as n, type MarketsBatchRequest as o, type OrderbookResponse as p, type MultiTradeResponse as q, type TradesByMintQueryParams as r, type OnchainTradesByWalletQueryParams as s, type MultiOnchainTradeResponse as t, type OnchainTradesByEventQueryParams as u, type OnchainTradesByMarketQueryParams as v, type CandlesticksQueryParams as w, type ForecastPercentileHistoryResponse as x, type ForecastPercentileHistoryByMintQueryParams as y, type LiveDataResponse as z };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { S as StandardEvent, a as StandardMarket, E as EventQueryParams, V as V2Event, b as V2Market, c as V2EventStatus, d as V2EventSortField, O as OrderResponse, e as OrderStatusResponse, f as SeriesResponse, C as CandlesticksResponse, g as OrderbookLevel, h as SingleTradeResponse, I as IPredictClient, i as IPredictWsClient, W as WalletPositionItem, P as PredictClientV2, j as V2ListEventsParams, k as V2Page, l as StandardEventsResponse, M as MarketQueryParams, m as StandardMarketsResponse, n as MarketsBatchRequest, o as OrderbookResponse, T as TradesQueryParams, p as MultiTradeResponse, q as TradesByMintQueryParams, r as OnchainTradesByWalletQueryParams, s as MultiOnchainTradeResponse, t as OnchainTradesByEventQueryParams, u as OnchainTradesByMarketQueryParams, v as CandlesticksQueryParams, F as ForecastPercentileHistoryQueryParams, w as ForecastPercentileHistoryResponse, x as ForecastPercentileHistoryByMintQueryParams, L as LiveDataQueryParams, y as LiveDataResponse, z as LiveDataByEventQueryParams, A as LiveDataByMintQueryParams, B as SeriesQueryParams, D as SeriesListResponse, G as TagsByCategoriesResponse, H as FiltersBySportsResponse, J as SearchQueryParams, K as SearchResponse, N as PositionsByWalletQueryParams, Q as WalletPositionsResponse, R as OutcomeMintsQueryParams, U as OutcomeMintsResponse, X as FilterOutcomeMintsRequest, Y as FilterOutcomeMintsResponse, Z as QuoteQueryParams, _ as QuoteResponse, $ as SwapRequestBody, a0 as SwapResponse, a1 as SwapInstructionsResponse, a2 as OrderQueryParams, a3 as OrderStatusQueryParams, a4 as IntentQuoteQueryParams, a5 as IntentQuoteResponse, a6 as IntentSwapRequestBody, a7 as IntentSwapResponse, a8 as PredictionMarketInitQueryParams, a9 as PredictionMarketInitResponse, aa as TokenListResponse, ab as TokenListWithDecimalsResponse, ac as VenueListResponse, ad as WsConnectionStatus, ae as WsPriceUpdate, af as WsTradeUpdate, ag as WsOrderbookUpdate } from './index-D3Ek8yK4.mjs';
3
- export { aD as AccountMetaResponse, aQ as BasePredictClient, aF as BlockhashWithMetadata, aw as CandlestickDataPoint, av as CandlestickOHLC, aB as ComputeBudgetInfo, aN as CreateFeeAccountParams, aM as DestinationTokenAccountParam, aT as DflowPredictClient, aU as DflowPredictWsClient, ap as ExecutionMode, ax as ForecastPercentileDataPoint, aE as InstructionResponse, aI as IntentExpiry, ar as MarketAccountInfo, ai as MarketStatus, as as OnchainTrade, at as OnchainTradeSortBy, au as OnchainTradesBaseQueryParams, aG as OrderFill, aH as OrderRevert, al as OrderStatus, aK as OrderbookQueryParams, aA as PlatformFee, am as PlatformFeeMode, aO as PositiveSlippageParams, aT as PredictClient, aU as PredictWsClient, aL as PrioritizationFeeLamports, aC as PrioritizationType, ao as PriorityLevel, ah as ProviderType, az as RoutePlanLeg, ay as SeriesSettlementSource, aq as SettlementSource, an as SlippageTolerance, aj as SortField, ak as SortOrder, aJ as TokenWithDecimals, aY as V2MarketResult, aZ as V2MarketStatus, a_ as V2Outcome, a$ as V2ProviderMeta, b0 as V2ProviderSource, b1 as V2SettlementSource, b2 as V2Tag, aW as WsClientConfig, aP as WsSubscribeOptions, aR as buildQuery, aV as createDflowPredictWsClient, aX as createPredictClientV2, aV as createPredictWsClient, aS as toRecord } from './index-D3Ek8yK4.mjs';
2
+ import { S as StandardEvent, a as StandardMarket, E as EventQueryParams, V as V2EventSortField, b as V2ProviderSource, c as V2Event, d as V2Market, e as V2EventStatus, O as OrderResponse, f as OrderStatusResponse, g as SeriesResponse, C as CandlesticksResponse, h as OrderbookLevel, i as SingleTradeResponse, I as IPredictClient, j as IPredictWsClient, W as WalletPositionItem, P as PredictClientV2, k as V2ListEventsParams, l as V2Page, m as StandardEventsResponse, M as MarketQueryParams, n as StandardMarketsResponse, o as MarketsBatchRequest, p as OrderbookResponse, T as TradesQueryParams, q as MultiTradeResponse, r as TradesByMintQueryParams, s as OnchainTradesByWalletQueryParams, t as MultiOnchainTradeResponse, u as OnchainTradesByEventQueryParams, v as OnchainTradesByMarketQueryParams, w as CandlesticksQueryParams, F as ForecastPercentileHistoryQueryParams, x as ForecastPercentileHistoryResponse, y as ForecastPercentileHistoryByMintQueryParams, L as LiveDataQueryParams, z as LiveDataResponse, A as LiveDataByEventQueryParams, B as LiveDataByMintQueryParams, D as SeriesQueryParams, G as SeriesListResponse, H as TagsByCategoriesResponse, J as FiltersBySportsResponse, K as SearchQueryParams, N as SearchResponse, Q as PositionsByWalletQueryParams, R as WalletPositionsResponse, U as OutcomeMintsQueryParams, X as OutcomeMintsResponse, Y as FilterOutcomeMintsRequest, Z as FilterOutcomeMintsResponse, _ as QuoteQueryParams, $ as QuoteResponse, a0 as SwapRequestBody, a1 as SwapResponse, a2 as SwapInstructionsResponse, a3 as OrderQueryParams, a4 as OrderStatusQueryParams, a5 as IntentQuoteQueryParams, a6 as IntentQuoteResponse, a7 as IntentSwapRequestBody, a8 as IntentSwapResponse, a9 as PredictionMarketInitQueryParams, aa as PredictionMarketInitResponse, ab as TokenListResponse, ac as TokenListWithDecimalsResponse, ad as VenueListResponse, ae as WsConnectionStatus, af as WsPriceUpdate, ag as WsTradeUpdate, ah as WsOrderbookUpdate } from './index-DIcC-37S.mjs';
3
+ export { aE as AccountMetaResponse, aR as BasePredictClient, aG as BlockhashWithMetadata, ax as CandlestickDataPoint, aw as CandlestickOHLC, aC as ComputeBudgetInfo, aO as CreateFeeAccountParams, aN as DestinationTokenAccountParam, aU as DflowPredictClient, aV as DflowPredictWsClient, aq as ExecutionMode, ay as ForecastPercentileDataPoint, aF as InstructionResponse, aJ as IntentExpiry, as as MarketAccountInfo, aj as MarketStatus, at as OnchainTrade, au as OnchainTradeSortBy, av as OnchainTradesBaseQueryParams, aH as OrderFill, aI as OrderRevert, am as OrderStatus, aL as OrderbookQueryParams, aB as PlatformFee, an as PlatformFeeMode, aP as PositiveSlippageParams, aU as PredictClient, aV as PredictWsClient, aM as PrioritizationFeeLamports, aD as PrioritizationType, ap as PriorityLevel, ai as ProviderType, aA as RoutePlanLeg, az as SeriesSettlementSource, ar as SettlementSource, ao as SlippageTolerance, ak as SortField, al as SortOrder, aK as TokenWithDecimals, aZ as V2MarketResult, a_ as V2MarketStatus, a$ as V2Outcome, b0 as V2ProviderMeta, b1 as V2SettlementSource, b2 as V2Tag, aX as WsClientConfig, aQ as WsSubscribeOptions, aS as buildQuery, aW as createDflowPredictWsClient, aY as createPredictClientV2, aW as createPredictWsClient, aT as toRecord } from './index-DIcC-37S.mjs';
4
+ import { LinkComponentType } from '@liberfi.io/ui';
4
5
  import * as react from 'react';
5
6
  import { PropsWithChildren } from 'react';
6
7
  import * as _tanstack_react_query from '@tanstack/react-query';
@@ -13,7 +14,7 @@ declare global {
13
14
  };
14
15
  }
15
16
  }
16
- declare const _default: "0.1.52";
17
+ declare const _default: "0.1.54";
17
18
 
18
19
  interface EventsPageProps {
19
20
  /** Callback when an event is selected */
@@ -163,13 +164,64 @@ interface TagSlugSelection {
163
164
  tagSlug: string | null;
164
165
  }
165
166
 
167
+ type SortPreset = "trending" | "volume" | "newest" | "ending_soon" | "liquidity";
168
+ declare const SORT_PRESETS: Record<SortPreset, {
169
+ sort_by: V2EventSortField;
170
+ sort_asc: boolean;
171
+ }>;
172
+ interface EventsToolbarV2UIProps {
173
+ /** Currently active platform source */
174
+ source?: V2ProviderSource;
175
+ /** Callback when the user picks a different platform */
176
+ onSourceChange: (source?: V2ProviderSource) => void;
177
+ /** Currently active sort preset */
178
+ sortPreset: SortPreset;
179
+ /** Callback when the user picks a different sort preset */
180
+ onSortChange: (preset: SortPreset) => void;
181
+ /** Callback when the filter button is pressed */
182
+ onFilterPress: () => void;
183
+ /** Number of currently active filters (shown as badge count) */
184
+ filterCount?: number;
185
+ /** Optional class name for the root element */
186
+ className?: string;
187
+ }
188
+ declare function EventsToolbarV2UI({ source, onSourceChange, sortPreset, onSortChange, onFilterPress, filterCount, className, }: EventsToolbarV2UIProps): react_jsx_runtime.JSX.Element;
189
+
190
+ interface EventsFilterState {
191
+ sortPreset: SortPreset;
192
+ source?: V2ProviderSource;
193
+ timeRemaining?: string;
194
+ minVolume?: string;
195
+ minLiquidity?: string;
196
+ }
197
+ declare const DEFAULT_FILTER_STATE: EventsFilterState;
198
+ /** Count how many non-default filters are active (excluding sortPreset) */
199
+ declare function countActiveFilters(state: EventsFilterState): number;
200
+ interface EventsFilterV2UIProps {
201
+ /** Whether the modal is open */
202
+ isOpen: boolean;
203
+ /** Callback to close the modal */
204
+ onClose: () => void;
205
+ /** Current committed filter state */
206
+ value: EventsFilterState;
207
+ /** Callback when "Show Results" is pressed with the new filter state */
208
+ onChange: (state: EventsFilterState) => void;
209
+ }
210
+ declare function EventsFilterV2UI({ isOpen, onClose, value, onChange, }: EventsFilterV2UIProps): react_jsx_runtime.JSX.Element;
211
+
166
212
  interface EventsPageV2Props {
167
213
  /** Callback when an event card is selected */
168
214
  onSelect?: (event: V2Event) => void;
169
215
  /** Callback when an outcome button (yes / no) is pressed */
170
216
  onSelectOutcome?: (event: V2Event, market: V2Market, side: "yes" | "no") => void;
217
+ /** Generate href for each event card. When set, cards render as links. */
218
+ getEventHref?: (event: V2Event) => string;
219
+ /** Custom link component (e.g. next/link). */
220
+ LinkComponent?: LinkComponentType;
221
+ /** Called when a card is hovered (for data prefetching). */
222
+ onHover?: (event: V2Event) => void;
171
223
  }
172
- declare function EventsPageV2({ onSelect, onSelectOutcome }: EventsPageV2Props): react_jsx_runtime.JSX.Element;
224
+ declare function EventsPageV2({ onSelect, onSelectOutcome, getEventHref, LinkComponent, onHover, }: EventsPageV2Props): react_jsx_runtime.JSX.Element;
173
225
 
174
226
  interface EventsWidgetV2Props {
175
227
  /**
@@ -185,14 +237,22 @@ interface EventsWidgetV2Props {
185
237
  sort_by?: V2EventSortField;
186
238
  /** Ascending sort order (default: false → descending) */
187
239
  sort_asc?: boolean;
240
+ /** Filter by upstream provider (undefined = all providers) */
241
+ source?: V2ProviderSource;
188
242
  /** Include nested markets in the response (default: true) */
189
243
  with_markets?: boolean;
190
244
  /** Callback when an event card is selected */
191
245
  onSelect?: (event: V2Event) => void;
192
246
  /** Callback when an outcome button (yes/no) is pressed */
193
247
  onSelectOutcome?: (event: V2Event, market: V2Market, side: "yes" | "no") => void;
248
+ /** Generate href for each event card. When set, cards render as links. */
249
+ getEventHref?: (event: V2Event) => string;
250
+ /** Custom link component (e.g. next/link). */
251
+ LinkComponent?: LinkComponentType;
252
+ /** Called when a card is hovered (for data prefetching). */
253
+ onHover?: (event: V2Event) => void;
194
254
  }
195
- declare function EventsWidgetV2({ tagSlugSelection, limit, status, sort_by, sort_asc, with_markets, onSelect, onSelectOutcome, }: EventsWidgetV2Props): react_jsx_runtime.JSX.Element;
255
+ declare function EventsWidgetV2({ tagSlugSelection, limit, status, sort_by, sort_asc, source, with_markets, onSelect, onSelectOutcome, getEventHref, LinkComponent, onHover, }: EventsWidgetV2Props): react_jsx_runtime.JSX.Element;
196
256
 
197
257
  /** Parameters for useEventsV2 */
198
258
  interface UseEventsV2Params {
@@ -213,6 +273,8 @@ interface UseEventsV2Params {
213
273
  sort_by?: V2EventSortField;
214
274
  /** Ascending sort (default: false → descending) */
215
275
  sort_asc?: boolean;
276
+ /** Filter by upstream provider (undefined = all providers) */
277
+ source?: V2ProviderSource;
216
278
  /** Include nested markets (default: true) */
217
279
  with_markets?: boolean;
218
280
  }
@@ -264,15 +326,27 @@ type EventsV2UIProps = {
264
326
  onSelect?: (event: V2Event) => void;
265
327
  /** Callback when an outcome button (yes/no) is pressed */
266
328
  onSelectOutcome?: (event: V2Event, market: V2Market, side: "yes" | "no") => void;
329
+ /** Generate href for each event card. When set, cards render as links. */
330
+ getEventHref?: (event: V2Event) => string;
331
+ /** Custom link component (e.g. next/link). */
332
+ LinkComponent?: LinkComponentType;
333
+ /** Called when a card is hovered (for data prefetching). */
334
+ onHover?: (event: V2Event) => void;
267
335
  };
268
- declare function EventsV2UI({ events, hasMore, onFetchMore, onSelect, onSelectOutcome, }: EventsV2UIProps): react_jsx_runtime.JSX.Element;
336
+ declare function EventsV2UI({ events, hasMore, onFetchMore, onSelect, onSelectOutcome, getEventHref, LinkComponent, onHover, }: EventsV2UIProps): react_jsx_runtime.JSX.Element;
269
337
 
270
338
  type EventItemV2UIProps = {
271
339
  event: V2Event;
340
+ /** URL for the detail page. When set, card renders as a link via Linkable. */
341
+ href?: string;
342
+ /** Custom link component (e.g. next/link). Passed to Linkable. */
343
+ LinkComponent?: LinkComponentType;
272
344
  onSelect?: (event: V2Event) => void;
273
345
  onSelectOutcome?: (event: V2Event, market: V2Market, side: "yes" | "no") => void;
346
+ /** Called when the card is hovered (for data prefetching). */
347
+ onHover?: (event: V2Event) => void;
274
348
  };
275
- declare function EventItemV2UI({ event, onSelect, onSelectOutcome, }: EventItemV2UIProps): react_jsx_runtime.JSX.Element;
349
+ declare function EventItemV2UI({ event, href, LinkComponent, onSelect, onSelectOutcome, onHover, }: EventItemV2UIProps): react_jsx_runtime.JSX.Element;
276
350
 
277
351
  /** Default page size for list queries */
278
352
  declare const DEFAULT_PAGE_SIZE = 48;
@@ -849,10 +923,12 @@ interface CategoriesUIProps {
849
923
  onCategorySelect: (category: string | null) => void;
850
924
  /** Callback when a tag is selected (null = deselect) */
851
925
  onTagSelect: (tag: string | null) => void;
926
+ /** Content rendered at the end of the primary chip row (e.g. sort/filter controls) */
927
+ trailing?: React.ReactNode;
852
928
  /** Optional class name for the root element */
853
929
  className?: string;
854
930
  }
855
- declare function CategoriesUI({ categories, selectedCategory, selectedTag, activeTags, onCategorySelect, onTagSelect, className, }: CategoriesUIProps): react_jsx_runtime.JSX.Element;
931
+ declare function CategoriesUI({ categories, selectedCategory, selectedTag, activeTags, onCategorySelect, onTagSelect, trailing, className, }: CategoriesUIProps): react_jsx_runtime.JSX.Element;
856
932
  declare function CategoriesSkeleton({ count }: {
857
933
  count?: number;
858
934
  }): react_jsx_runtime.JSX.Element;
@@ -886,10 +962,12 @@ interface CategoriesWidgetV2Props {
886
962
  * - `{ categorySlug: "Crypto", tagSlug: "BTC" }` → specific tag selected
887
963
  */
888
964
  onSelect?: (selection: TagSlugSelection) => void;
965
+ /** Content rendered at the end of the primary chip row (e.g. sort/filter controls) */
966
+ trailing?: React.ReactNode;
889
967
  /** Optional class name applied to the root element */
890
968
  className?: string;
891
969
  }
892
- declare function CategoriesWidgetV2({ onSelect, className, }: CategoriesWidgetV2Props): react_jsx_runtime.JSX.Element;
970
+ declare function CategoriesWidgetV2({ onSelect, trailing, className, }: CategoriesWidgetV2Props): react_jsx_runtime.JSX.Element;
893
971
 
894
972
  interface PredictContextValue {
895
973
  /** The predict API client instance */
@@ -1375,4 +1453,4 @@ interface UseOrderbookSubscriptionResult {
1375
1453
  */
1376
1454
  declare function useOrderbookSubscription({ client, all, tickers, enabled, onUpdate, }: UseOrderbookSubscriptionParams): UseOrderbookSubscriptionResult;
1377
1455
 
1378
- export { CATEGORIES_V2, CHART_RANGE_DURATION, CHART_RANGE_PERIOD, CHART_RANGE_SAMPLE_INTERVAL, CandlestickPeriod, type CandlestickPeriodType, CandlesticksQueryParams, CandlesticksResponse, CategoriesSkeleton, CategoriesUI, type CategoriesUIProps, CategoriesWidget, type CategoriesWidgetProps, CategoriesWidgetV2, type CategoriesWidgetV2Props, type CategoryItemV2, type CategorySelection, ChartRange, type ChartRangeType, DEFAULT_CHART_RANGE, DEFAULT_PAGE_SIZE, DEFAULT_PRICE_HISTORY_INTERVAL, type EventCategory, EventDetailPage, type EventDetailPageProps, EventDetailSkeleton, type EventDetailSkeletonProps, EventDetailUI, type EventDetailUIProps, EventDetailWidget, type EventDetailWidgetProps, EventItemSkeleton, type EventItemSkeletonProps, EventItemUI, type EventItemUIProps, EventItemV2UI, type EventItemV2UIProps, EventMarketDetailWidget, type EventMarketDetailWidgetProps, EventQueryParams, EventsPage, type EventsPageProps, EventsPageV2, type EventsPageV2Props, EventsSkeleton, type EventsSkeletonProps, EventsUI, type EventsUIProps, EventsV2UI, type EventsV2UIProps, EventsWidget, type EventsWidgetProps, EventsWidgetV2, type EventsWidgetV2Props, FilterOutcomeMintsRequest, FilterOutcomeMintsResponse, FiltersBySportsResponse, ForecastPercentileHistoryByMintQueryParams, ForecastPercentileHistoryQueryParams, ForecastPercentileHistoryResponse, IPredictClient, IPredictWsClient, IntentQuoteQueryParams, IntentQuoteResponse, IntentSwapRequestBody, IntentSwapResponse, LiveDataByEventQueryParams, LiveDataByMintQueryParams, LiveDataQueryParams, LiveDataResponse, MAX_PRICE_HISTORY_MARKETS, type MarketPositionsResult, MarketQueryParams, MarketsBatchRequest, MultiOnchainTradeResponse, MultiTradeResponse, ORDER_MAX_PRICE, ORDER_MIN_PRICE, ORDER_MIN_QUANTITY, ORDER_PRICE_STEP, OnchainTradesByEventQueryParams, OnchainTradesByMarketQueryParams, OnchainTradesByWalletQueryParams, OpenOrdersUI, type OpenOrdersUIProps, OpenOrdersWidget, type OpenOrdersWidgetProps, type Order, type OrderBookRow, OrderBookUI, type OrderBookUIProps, OrderBookWidget, type OrderBookWidgetProps, OrderQueryParams, OrderResponse, OrderStatusQueryParams, OrderStatusResponse, type OrderbookData, OrderbookLevel, OrderbookResponse, OutcomeMintsQueryParams, OutcomeMintsResponse, PRICE_HISTORY_SAMPLE_INTERVAL, type Position, PositionsByWalletQueryParams, type PositionsSummary, PositionsUI, type PositionsUIProps, PositionsWidget, type PositionsWidgetProps, PredictClientV2, PredictContext, type PredictContextValue, PredictProvider, type PredictProviderProps, PredictV2Context, type PredictV2ContextValue, PredictV2Provider, type PredictV2ProviderProps, PredictionMarketInitQueryParams, PredictionMarketInitResponse, type PriceData, PriceHistoryInterval, type PriceHistoryIntervalType, QuoteQueryParams, QuoteResponse, SearchQueryParams, SearchResponse, SeriesListResponse, SeriesQueryParams, SeriesResponse, SingleTradeResponse, StandardEvent, StandardEventsResponse, StandardMarket, StandardMarketsResponse, SwapInstructionsResponse, SwapRequestBody, SwapResponse, type TagItemV2, type TagSlugSelection, TagsByCategoriesResponse, TokenListResponse, TokenListWithDecimalsResponse, type TradeData, TradeFormSkeleton, TradeFormUI, type TradeFormUIProps, type TradeFormValidation, TradeFormWidget, type TradeFormWidgetProps, TradeHistoryUI, type TradeHistoryUIProps, TradeHistoryWidget, type TradeHistoryWidgetProps, type TradeOutcome, type TradeSide, TradesByMintQueryParams, TradesQueryParams, type UseEventByIdQueryParams, type UseEventCandlesticksParams, type UseEventDetailParams, type UseEventV2QueryParams, type UseEventsCategoriesResult, type UseEventsParams, type UseEventsResult, type UseEventsV2Params, type UseEventsV2Result, type UseMarketByIdQueryParams, type UseMarketCandlesticksByMintParams, type UseMarketCandlesticksParams, type UseOpenOrdersParams, type UseOpenOrdersResult, type UseOrderBookParams, type UseOrderBookResult, type UseOrderbookSubscriptionParams, type UseOrderbookSubscriptionResult, type UsePositionsParams, type UsePositionsResult, type UsePricesSubscriptionParams, type UsePricesSubscriptionResult, type UseTradeFormParams, type UseTradeFormResult, type UseTradeHistoryParams, type UseTradeHistoryResult, type UseTradesSubscriptionParams, type UseTradesSubscriptionResult, type UseWsClientResult, type UseWsConnectionParams, type UseWsConnectionResult, UserPredictContext, type UserPredictContextValue, UserPredictProvider, type UserPredictProviderProps, V2Event, V2EventSortField, V2EventStatus, V2ListEventsParams, V2Market, V2Page, VenueListResponse, WalletPositionItem, WalletPositionsResponse, WsConnectionStatus, WsOrderbookUpdate, WsPriceUpdate, WsTradeUpdate, createSwap, createSwapInstructions, eventByIdQueryKey, eventCandlesticksQueryKey, eventV2QueryKey, eventsInfiniteQueryKey, eventsQueryKey, eventsV2QueryKey, fetchEventById, fetchEventCandlesticks, fetchEventV2, fetchEvents, fetchEventsV2, fetchFiltersBySports, fetchForecastPercentileHistory, fetchForecastPercentileHistoryByMint, fetchIntentQuote, fetchLiveData, fetchLiveDataByEvent, fetchLiveDataByMint, fetchMarketById, fetchMarketByMint, fetchMarketCandlesticks, fetchMarketCandlesticksByMint, fetchMarkets, fetchMarketsBatch, fetchOnchainTradesByEvent, fetchOnchainTradesByMarket, fetchOnchainTradesByWallet, fetchOrder, fetchOrderBook, fetchOrderBookByMint, fetchOrderStatus, fetchOutcomeMints, fetchPositionsByWallet, fetchQuote, fetchSearch, fetchSeries, fetchSeriesByTicker, fetchTagsByCategories, fetchTokens, fetchTokensWithDecimals, fetchTrades, fetchTradesByMint, fetchVenues, filterOutcomeMints, filtersBySportsQueryKey, forecastPercentileHistoryByMintQueryKey, forecastPercentileHistoryQueryKey, initPredictionMarket, intentQuoteQueryKey, liveDataByEventQueryKey, liveDataByMintQueryKey, liveDataQueryKey, marketByIdQueryKey, marketByMintQueryKey, marketCandlesticksByMintQueryKey, marketCandlesticksQueryKey, marketsBatchQueryKey, marketsQueryKey, onchainTradesByEventInfiniteQueryKey, onchainTradesByEventQueryKey, onchainTradesByMarketInfiniteQueryKey, onchainTradesByMarketQueryKey, onchainTradesByWalletInfiniteQueryKey, onchainTradesByWalletQueryKey, orderBookByMintQueryKey, orderBookQueryKey, orderQueryKey, orderStatusQueryKey, outcomeMintsQueryKey, positionsByWalletQueryKey, quoteQueryKey, searchQueryKey, seriesByTickerQueryKey, seriesQueryKey, submitIntentSwap, tagsByCategoriesQueryKey, tokensQueryKey, tokensWithDecimalsQueryKey, tradesByMintQueryKey, tradesQueryKey, useCategoriesQuery, useCreateSwapInstructionsMutation, useCreateSwapMutation, useEventByIdQuery, useEventCandlesticksQuery, useEventDetail, useEventV2Query, useEvents, useEventsCategories, useEventsInfiniteQuery, useEventsQuery, useEventsV2, useEventsV2Query, useFilterOutcomeMintsMutation, useFiltersBySportsQuery, useForecastPercentileHistoryByMintQuery, useForecastPercentileHistoryQuery, useInitPredictionMarketMutation, useIntentQuoteQuery, useLiveDataByEventQuery, useLiveDataByMintQuery, useLiveDataQuery, useMarketByIdQuery, useMarketByMintQuery, useMarketCandlesticksByMintQuery, useMarketCandlesticksQuery, useMarketPositions, useMarketsBatchQuery, useMarketsQuery, useOnchainTradesByEventInfiniteQuery, useOnchainTradesByEventQuery, useOnchainTradesByMarketInfiniteQuery, useOnchainTradesByMarketQuery, useOnchainTradesByWalletInfiniteQuery, useOnchainTradesByWalletQuery, useOpenOrders, useOrderBook, useOrderBookByMintQuery, useOrderBookQuery, useOrderQuery, useOrderStatusQuery, useOrderbookSubscription, useOutcomeMintsQuery, usePositions, usePositionsByWalletQuery, usePredictClient, usePredictContext, usePredictV2Client, usePredictV2Context, usePriceHistoryQuery, usePricesSubscription, useQuoteQuery, useSearchQuery, useSeriesByTickerQuery, useSeriesQuery, useSubmitIntentSwapMutation, useTagsByCategoriesQuery, useTokensQuery, useTokensWithDecimalsQuery, useTradeForm, useTradeHistory, useTradesByMintQuery, useTradesQuery, useTradesSubscription, useUserPredictContext, useVenuesQuery, useWsClient, useWsConnection, venuesQueryKey, _default as version };
1456
+ export { CATEGORIES_V2, CHART_RANGE_DURATION, CHART_RANGE_PERIOD, CHART_RANGE_SAMPLE_INTERVAL, CandlestickPeriod, type CandlestickPeriodType, CandlesticksQueryParams, CandlesticksResponse, CategoriesSkeleton, CategoriesUI, type CategoriesUIProps, CategoriesWidget, type CategoriesWidgetProps, CategoriesWidgetV2, type CategoriesWidgetV2Props, type CategoryItemV2, type CategorySelection, ChartRange, type ChartRangeType, DEFAULT_CHART_RANGE, DEFAULT_FILTER_STATE, DEFAULT_PAGE_SIZE, DEFAULT_PRICE_HISTORY_INTERVAL, type EventCategory, EventDetailPage, type EventDetailPageProps, EventDetailSkeleton, type EventDetailSkeletonProps, EventDetailUI, type EventDetailUIProps, EventDetailWidget, type EventDetailWidgetProps, EventItemSkeleton, type EventItemSkeletonProps, EventItemUI, type EventItemUIProps, EventItemV2UI, type EventItemV2UIProps, EventMarketDetailWidget, type EventMarketDetailWidgetProps, EventQueryParams, type EventsFilterState, EventsFilterV2UI, type EventsFilterV2UIProps, EventsPage, type EventsPageProps, EventsPageV2, type EventsPageV2Props, EventsSkeleton, type EventsSkeletonProps, EventsToolbarV2UI, type EventsToolbarV2UIProps, EventsUI, type EventsUIProps, EventsV2UI, type EventsV2UIProps, EventsWidget, type EventsWidgetProps, EventsWidgetV2, type EventsWidgetV2Props, FilterOutcomeMintsRequest, FilterOutcomeMintsResponse, FiltersBySportsResponse, ForecastPercentileHistoryByMintQueryParams, ForecastPercentileHistoryQueryParams, ForecastPercentileHistoryResponse, IPredictClient, IPredictWsClient, IntentQuoteQueryParams, IntentQuoteResponse, IntentSwapRequestBody, IntentSwapResponse, LiveDataByEventQueryParams, LiveDataByMintQueryParams, LiveDataQueryParams, LiveDataResponse, MAX_PRICE_HISTORY_MARKETS, type MarketPositionsResult, MarketQueryParams, MarketsBatchRequest, MultiOnchainTradeResponse, MultiTradeResponse, ORDER_MAX_PRICE, ORDER_MIN_PRICE, ORDER_MIN_QUANTITY, ORDER_PRICE_STEP, OnchainTradesByEventQueryParams, OnchainTradesByMarketQueryParams, OnchainTradesByWalletQueryParams, OpenOrdersUI, type OpenOrdersUIProps, OpenOrdersWidget, type OpenOrdersWidgetProps, type Order, type OrderBookRow, OrderBookUI, type OrderBookUIProps, OrderBookWidget, type OrderBookWidgetProps, OrderQueryParams, OrderResponse, OrderStatusQueryParams, OrderStatusResponse, type OrderbookData, OrderbookLevel, OrderbookResponse, OutcomeMintsQueryParams, OutcomeMintsResponse, PRICE_HISTORY_SAMPLE_INTERVAL, type Position, PositionsByWalletQueryParams, type PositionsSummary, PositionsUI, type PositionsUIProps, PositionsWidget, type PositionsWidgetProps, PredictClientV2, PredictContext, type PredictContextValue, PredictProvider, type PredictProviderProps, PredictV2Context, type PredictV2ContextValue, PredictV2Provider, type PredictV2ProviderProps, PredictionMarketInitQueryParams, PredictionMarketInitResponse, type PriceData, PriceHistoryInterval, type PriceHistoryIntervalType, QuoteQueryParams, QuoteResponse, SORT_PRESETS, SearchQueryParams, SearchResponse, SeriesListResponse, SeriesQueryParams, SeriesResponse, SingleTradeResponse, type SortPreset, StandardEvent, StandardEventsResponse, StandardMarket, StandardMarketsResponse, SwapInstructionsResponse, SwapRequestBody, SwapResponse, type TagItemV2, type TagSlugSelection, TagsByCategoriesResponse, TokenListResponse, TokenListWithDecimalsResponse, type TradeData, TradeFormSkeleton, TradeFormUI, type TradeFormUIProps, type TradeFormValidation, TradeFormWidget, type TradeFormWidgetProps, TradeHistoryUI, type TradeHistoryUIProps, TradeHistoryWidget, type TradeHistoryWidgetProps, type TradeOutcome, type TradeSide, TradesByMintQueryParams, TradesQueryParams, type UseEventByIdQueryParams, type UseEventCandlesticksParams, type UseEventDetailParams, type UseEventV2QueryParams, type UseEventsCategoriesResult, type UseEventsParams, type UseEventsResult, type UseEventsV2Params, type UseEventsV2Result, type UseMarketByIdQueryParams, type UseMarketCandlesticksByMintParams, type UseMarketCandlesticksParams, type UseOpenOrdersParams, type UseOpenOrdersResult, type UseOrderBookParams, type UseOrderBookResult, type UseOrderbookSubscriptionParams, type UseOrderbookSubscriptionResult, type UsePositionsParams, type UsePositionsResult, type UsePricesSubscriptionParams, type UsePricesSubscriptionResult, type UseTradeFormParams, type UseTradeFormResult, type UseTradeHistoryParams, type UseTradeHistoryResult, type UseTradesSubscriptionParams, type UseTradesSubscriptionResult, type UseWsClientResult, type UseWsConnectionParams, type UseWsConnectionResult, UserPredictContext, type UserPredictContextValue, UserPredictProvider, type UserPredictProviderProps, V2Event, V2EventSortField, V2EventStatus, V2ListEventsParams, V2Market, V2Page, V2ProviderSource, VenueListResponse, WalletPositionItem, WalletPositionsResponse, WsConnectionStatus, WsOrderbookUpdate, WsPriceUpdate, WsTradeUpdate, countActiveFilters, createSwap, createSwapInstructions, eventByIdQueryKey, eventCandlesticksQueryKey, eventV2QueryKey, eventsInfiniteQueryKey, eventsQueryKey, eventsV2QueryKey, fetchEventById, fetchEventCandlesticks, fetchEventV2, fetchEvents, fetchEventsV2, fetchFiltersBySports, fetchForecastPercentileHistory, fetchForecastPercentileHistoryByMint, fetchIntentQuote, fetchLiveData, fetchLiveDataByEvent, fetchLiveDataByMint, fetchMarketById, fetchMarketByMint, fetchMarketCandlesticks, fetchMarketCandlesticksByMint, fetchMarkets, fetchMarketsBatch, fetchOnchainTradesByEvent, fetchOnchainTradesByMarket, fetchOnchainTradesByWallet, fetchOrder, fetchOrderBook, fetchOrderBookByMint, fetchOrderStatus, fetchOutcomeMints, fetchPositionsByWallet, fetchQuote, fetchSearch, fetchSeries, fetchSeriesByTicker, fetchTagsByCategories, fetchTokens, fetchTokensWithDecimals, fetchTrades, fetchTradesByMint, fetchVenues, filterOutcomeMints, filtersBySportsQueryKey, forecastPercentileHistoryByMintQueryKey, forecastPercentileHistoryQueryKey, initPredictionMarket, intentQuoteQueryKey, liveDataByEventQueryKey, liveDataByMintQueryKey, liveDataQueryKey, marketByIdQueryKey, marketByMintQueryKey, marketCandlesticksByMintQueryKey, marketCandlesticksQueryKey, marketsBatchQueryKey, marketsQueryKey, onchainTradesByEventInfiniteQueryKey, onchainTradesByEventQueryKey, onchainTradesByMarketInfiniteQueryKey, onchainTradesByMarketQueryKey, onchainTradesByWalletInfiniteQueryKey, onchainTradesByWalletQueryKey, orderBookByMintQueryKey, orderBookQueryKey, orderQueryKey, orderStatusQueryKey, outcomeMintsQueryKey, positionsByWalletQueryKey, quoteQueryKey, searchQueryKey, seriesByTickerQueryKey, seriesQueryKey, submitIntentSwap, tagsByCategoriesQueryKey, tokensQueryKey, tokensWithDecimalsQueryKey, tradesByMintQueryKey, tradesQueryKey, useCategoriesQuery, useCreateSwapInstructionsMutation, useCreateSwapMutation, useEventByIdQuery, useEventCandlesticksQuery, useEventDetail, useEventV2Query, useEvents, useEventsCategories, useEventsInfiniteQuery, useEventsQuery, useEventsV2, useEventsV2Query, useFilterOutcomeMintsMutation, useFiltersBySportsQuery, useForecastPercentileHistoryByMintQuery, useForecastPercentileHistoryQuery, useInitPredictionMarketMutation, useIntentQuoteQuery, useLiveDataByEventQuery, useLiveDataByMintQuery, useLiveDataQuery, useMarketByIdQuery, useMarketByMintQuery, useMarketCandlesticksByMintQuery, useMarketCandlesticksQuery, useMarketPositions, useMarketsBatchQuery, useMarketsQuery, useOnchainTradesByEventInfiniteQuery, useOnchainTradesByEventQuery, useOnchainTradesByMarketInfiniteQuery, useOnchainTradesByMarketQuery, useOnchainTradesByWalletInfiniteQuery, useOnchainTradesByWalletQuery, useOpenOrders, useOrderBook, useOrderBookByMintQuery, useOrderBookQuery, useOrderQuery, useOrderStatusQuery, useOrderbookSubscription, useOutcomeMintsQuery, usePositions, usePositionsByWalletQuery, usePredictClient, usePredictContext, usePredictV2Client, usePredictV2Context, usePriceHistoryQuery, usePricesSubscription, useQuoteQuery, useSearchQuery, useSeriesByTickerQuery, useSeriesQuery, useSubmitIntentSwapMutation, useTagsByCategoriesQuery, useTokensQuery, useTokensWithDecimalsQuery, useTradeForm, useTradeHistory, useTradesByMintQuery, useTradesQuery, useTradesSubscription, useUserPredictContext, useVenuesQuery, useWsClient, useWsConnection, venuesQueryKey, _default as version };