@agg-build/ui 1.2.12 → 2.0.0

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.
Files changed (61) hide show
  1. package/README.md +34 -1
  2. package/dist/{chunk-U55T5BPE.mjs → chunk-2UKDQ7WP.mjs} +44 -13
  3. package/dist/{chunk-X3KCFWXN.mjs → chunk-2ZS3BPSF.mjs} +1433 -1349
  4. package/dist/{chunk-IBOE7DRY.mjs → chunk-4CM4F4S6.mjs} +26 -27
  5. package/dist/{chunk-YSW4ULL5.mjs → chunk-HH7L3KLS.mjs} +1 -1
  6. package/dist/{chunk-3JXBOU24.mjs → chunk-R3U6YXSQ.mjs} +146 -81
  7. package/dist/{chunk-J6WELNCX.mjs → chunk-RF2EPYLN.mjs} +572 -181
  8. package/dist/{chunk-4WBQTUPW.mjs → chunk-RWOF44TC.mjs} +606 -324
  9. package/dist/events.js +2081 -1727
  10. package/dist/events.mjs +5 -3
  11. package/dist/index.js +4535 -3695
  12. package/dist/index.mjs +13 -9
  13. package/dist/modals.js +964 -899
  14. package/dist/modals.mjs +3 -3
  15. package/dist/pages.js +3945 -3123
  16. package/dist/pages.mjs +6 -6
  17. package/dist/primitives.js +1344 -1251
  18. package/dist/primitives.mjs +3 -1
  19. package/dist/styles.css +1 -1
  20. package/dist/tailwind.css +1 -1
  21. package/dist/trading.js +828 -688
  22. package/dist/trading.mjs +4 -4
  23. package/dist/types/events/item/event-list-item-v2.utils.d.mts +28 -0
  24. package/dist/types/events/item/event-list-item-v2.utils.d.ts +28 -0
  25. package/dist/types/events/item/event-list-item.constants.d.mts +1 -1
  26. package/dist/types/events/item/event-list-item.constants.d.ts +1 -1
  27. package/dist/types/events/item/index.d.mts +4 -0
  28. package/dist/types/events/item/index.d.ts +4 -0
  29. package/dist/types/events/list/event-list.types.d.mts +2 -0
  30. package/dist/types/events/list/event-list.types.d.ts +2 -0
  31. package/dist/types/events/list/event-list.utils.d.mts +17 -2
  32. package/dist/types/events/list/event-list.utils.d.ts +17 -2
  33. package/dist/types/events/list/index.d.mts +1 -1
  34. package/dist/types/events/list/index.d.ts +1 -1
  35. package/dist/types/pages/home/home.types.d.mts +1 -0
  36. package/dist/types/pages/home/home.types.d.ts +1 -0
  37. package/dist/types/pages/user-profile/user-profile.types.d.mts +30 -4
  38. package/dist/types/pages/user-profile/user-profile.types.d.ts +30 -4
  39. package/dist/types/primitives/icon/index.d.mts +2 -1
  40. package/dist/types/primitives/icon/index.d.ts +2 -1
  41. package/dist/types/primitives/icon/registry.d.mts +4 -0
  42. package/dist/types/primitives/icon/registry.d.ts +4 -0
  43. package/dist/types/primitives/icon/svg/gift-bonus.d.mts +5 -0
  44. package/dist/types/primitives/icon/svg/gift-bonus.d.ts +5 -0
  45. package/dist/types/primitives/search/search.types.d.mts +2 -1
  46. package/dist/types/primitives/search/search.types.d.ts +2 -1
  47. package/dist/types/primitives/skeleton/index.d.mts +1 -1
  48. package/dist/types/primitives/skeleton/index.d.ts +1 -1
  49. package/dist/types/primitives/skeleton/skeleton.types.d.mts +4 -0
  50. package/dist/types/primitives/skeleton/skeleton.types.d.ts +4 -0
  51. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.mts +1 -1
  52. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.ts +1 -1
  53. package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +1 -1
  54. package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +1 -1
  55. package/dist/types/trading/place-order/index.d.mts +1 -1
  56. package/dist/types/trading/place-order/index.d.ts +1 -1
  57. package/dist/types/trading/place-order/index.place-order.types.d.mts +4 -1
  58. package/dist/types/trading/place-order/index.place-order.types.d.ts +4 -1
  59. package/dist/types/trading/place-order/index.place-order.utils.d.mts +2 -0
  60. package/dist/types/trading/place-order/index.place-order.utils.d.ts +2 -0
  61. package/package.json +3 -3
package/dist/trading.mjs CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  SettlementDetails,
7
7
  parseAmount,
8
8
  parseVenue
9
- } from "./chunk-3JXBOU24.mjs";
9
+ } from "./chunk-R3U6YXSQ.mjs";
10
10
  import {
11
11
  SETTLEMENT_SECTION_ID,
12
12
  Settlement,
@@ -21,9 +21,9 @@ import {
21
21
  getTradingValueLabel,
22
22
  getTradingVenueLabel,
23
23
  useEventTradingContext
24
- } from "./chunk-IBOE7DRY.mjs";
25
- import "./chunk-YSW4ULL5.mjs";
26
- import "./chunk-X3KCFWXN.mjs";
24
+ } from "./chunk-4CM4F4S6.mjs";
25
+ import "./chunk-HH7L3KLS.mjs";
26
+ import "./chunk-2ZS3BPSF.mjs";
27
27
  export {
28
28
  PlaceOrder,
29
29
  PlaceOrderFailureView,
@@ -0,0 +1,28 @@
1
+ import type { VenueMarket, VenueMarketOutcome } from "@agg-build/hooks";
2
+ export type EventListItemV2Price = {
3
+ venue: VenueMarket["venue"];
4
+ market: VenueMarket;
5
+ outcome: VenueMarketOutcome;
6
+ price: number;
7
+ isBest: boolean;
8
+ };
9
+ export type EventListItemV2Row = {
10
+ id: string;
11
+ label: string;
12
+ market: VenueMarket;
13
+ outcome: VenueMarketOutcome;
14
+ prices: EventListItemV2Price[];
15
+ };
16
+ export type EventListItemV2Comparison = {
17
+ rows: EventListItemV2Row[];
18
+ hasVenueCompetition: boolean;
19
+ matchedVenues: VenueMarket["venue"][];
20
+ };
21
+ type NormalizeEventListItemV2ComparisonOptions = {
22
+ venueMarkets: VenueMarket[];
23
+ marketCount: number;
24
+ priceByOutcomeId?: ReadonlyMap<string, number>;
25
+ };
26
+ export declare const computePriceGapsFromComparisonRows: (rows: readonly EventListItemV2Row[]) => Map<string, number>;
27
+ export declare const normalizeEventListItemV2Comparison: ({ venueMarkets, marketCount, priceByOutcomeId, }: NormalizeEventListItemV2ComparisonOptions) => EventListItemV2Comparison;
28
+ export {};
@@ -0,0 +1,28 @@
1
+ import type { VenueMarket, VenueMarketOutcome } from "@agg-build/hooks";
2
+ export type EventListItemV2Price = {
3
+ venue: VenueMarket["venue"];
4
+ market: VenueMarket;
5
+ outcome: VenueMarketOutcome;
6
+ price: number;
7
+ isBest: boolean;
8
+ };
9
+ export type EventListItemV2Row = {
10
+ id: string;
11
+ label: string;
12
+ market: VenueMarket;
13
+ outcome: VenueMarketOutcome;
14
+ prices: EventListItemV2Price[];
15
+ };
16
+ export type EventListItemV2Comparison = {
17
+ rows: EventListItemV2Row[];
18
+ hasVenueCompetition: boolean;
19
+ matchedVenues: VenueMarket["venue"][];
20
+ };
21
+ type NormalizeEventListItemV2ComparisonOptions = {
22
+ venueMarkets: VenueMarket[];
23
+ marketCount: number;
24
+ priceByOutcomeId?: ReadonlyMap<string, number>;
25
+ };
26
+ export declare const computePriceGapsFromComparisonRows: (rows: readonly EventListItemV2Row[]) => Map<string, number>;
27
+ export declare const normalizeEventListItemV2Comparison: ({ venueMarkets, marketCount, priceByOutcomeId, }: NormalizeEventListItemV2ComparisonOptions) => EventListItemV2Comparison;
28
+ export {};
@@ -1 +1 @@
1
- export declare const baseCardClassName = "gap-3 overflow-hidden p-5 w-full";
1
+ export declare const baseCardClassName = "gap-3 overflow-hidden p-4 w-full";
@@ -1 +1 @@
1
- export declare const baseCardClassName = "gap-3 overflow-hidden p-5 w-full";
1
+ export declare const baseCardClassName = "gap-3 overflow-hidden p-4 w-full";
@@ -4,3 +4,7 @@ export declare const EventListItem: {
4
4
  (props: EventListItemProps): JSX.Element;
5
5
  displayName: string;
6
6
  };
7
+ export declare const EventListItemV2: {
8
+ (props: EventListItemProps): JSX.Element;
9
+ displayName: string;
10
+ };
@@ -4,3 +4,7 @@ export declare const EventListItem: {
4
4
  (props: EventListItemProps): JSX.Element;
5
5
  displayName: string;
6
6
  };
7
+ export declare const EventListItemV2: {
8
+ (props: EventListItemProps): JSX.Element;
9
+ displayName: string;
10
+ };
@@ -31,6 +31,8 @@ export type EventListProps = {
31
31
  search?: UseVenueEventsOptions["search"];
32
32
  /** Category filters applied to the events query. */
33
33
  categoryIds?: UseVenueEventsOptions["categoryIds"];
34
+ /** Called when the sidebar selects a top-level category root. */
35
+ onCategoryRootChange?: (categoryId: string | undefined) => void;
34
36
  /** Called when an event card body is clicked. */
35
37
  onEventClick?: (event?: VenueEventWithMarkets) => void;
36
38
  /** Called when an outcome price badge is clicked. Use to navigate to the event with a preselected market and outcome. */
@@ -31,6 +31,8 @@ export type EventListProps = {
31
31
  search?: UseVenueEventsOptions["search"];
32
32
  /** Category filters applied to the events query. */
33
33
  categoryIds?: UseVenueEventsOptions["categoryIds"];
34
+ /** Called when the sidebar selects a top-level category root. */
35
+ onCategoryRootChange?: (categoryId: string | undefined) => void;
34
36
  /** Called when an event card body is clicked. */
35
37
  onEventClick?: (event?: VenueEventWithMarkets) => void;
36
38
  /** Called when an outcome price badge is clicked. Use to navigate to the event with a preselected market and outcome. */
@@ -14,6 +14,21 @@ export declare const mapEventToEventListItemEvent: (event: VenueEventWithMarkets
14
14
  export declare const filterEventsByTabValue: (events: VenueEventWithMarkets[], _tabValue: EventListTabValue) => VenueEventWithMarkets[];
15
15
  /** Filter markets to only those with status "open" or undefined (treated as open). */
16
16
  export declare const filterOpenMarkets: (markets: VenueMarket[]) => VenueMarket[];
17
- /** Sort markets by YES odds descending, preserving input order for ties and missing values. */
18
- export declare const sortMarketsByYesOddsDesc: (markets: VenueMarket[]) => VenueMarket[];
17
+ /** A single drilled-into level beneath the active top-level tab. */
18
+ export type SubcategoryPathEntry = {
19
+ id: string;
20
+ label: string;
21
+ eventCount: number;
22
+ };
23
+ export type CategoryNavigationItem = {
24
+ id: string;
25
+ name: string;
26
+ };
27
+ export declare const sortCategoriesForNavigation: <TCategory extends CategoryNavigationItem>(categories: readonly TCategory[]) => TCategory[];
28
+ /**
29
+ * Resolve the categoryIds to send to the API based on the current drill path.
30
+ * - At the deepest selected level, filter by that category id only.
31
+ * - With an empty path, use the provided fallback category ids.
32
+ */
33
+ export declare const resolveCategoryIdsFromPath: (path: readonly SubcategoryPathEntry[], fallbackCategoryIds: string[] | undefined) => string[] | undefined;
19
34
  export declare const resolveTabVenus: (tab: EventListTab | undefined, visibleVenues?: readonly string[]) => UseVenueEventsOptions["venues"] | undefined;
@@ -14,6 +14,21 @@ export declare const mapEventToEventListItemEvent: (event: VenueEventWithMarkets
14
14
  export declare const filterEventsByTabValue: (events: VenueEventWithMarkets[], _tabValue: EventListTabValue) => VenueEventWithMarkets[];
15
15
  /** Filter markets to only those with status "open" or undefined (treated as open). */
16
16
  export declare const filterOpenMarkets: (markets: VenueMarket[]) => VenueMarket[];
17
- /** Sort markets by YES odds descending, preserving input order for ties and missing values. */
18
- export declare const sortMarketsByYesOddsDesc: (markets: VenueMarket[]) => VenueMarket[];
17
+ /** A single drilled-into level beneath the active top-level tab. */
18
+ export type SubcategoryPathEntry = {
19
+ id: string;
20
+ label: string;
21
+ eventCount: number;
22
+ };
23
+ export type CategoryNavigationItem = {
24
+ id: string;
25
+ name: string;
26
+ };
27
+ export declare const sortCategoriesForNavigation: <TCategory extends CategoryNavigationItem>(categories: readonly TCategory[]) => TCategory[];
28
+ /**
29
+ * Resolve the categoryIds to send to the API based on the current drill path.
30
+ * - At the deepest selected level, filter by that category id only.
31
+ * - With an empty path, use the provided fallback category ids.
32
+ */
33
+ export declare const resolveCategoryIdsFromPath: (path: readonly SubcategoryPathEntry[], fallbackCategoryIds: string[] | undefined) => string[] | undefined;
19
34
  export declare const resolveTabVenus: (tab: EventListTab | undefined, visibleVenues?: readonly string[]) => UseVenueEventsOptions["venues"] | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { EventListProps } from "./event-list.types";
2
2
  export type { EventListProps, EventListStateRef } from "./event-list.types";
3
3
  export declare const EventList: {
4
- ({ title, limit, maxVisibleItems, search, categoryIds, onEventClick, onMarketClick, getMarketHref, getEventHref, initialVenueTab, initialLoadedPageCount, stateRef, }: EventListProps): JSX.Element;
4
+ ({ title, limit, maxVisibleItems, search, categoryIds, onCategoryRootChange, onEventClick, onMarketClick, getMarketHref, getEventHref, initialVenueTab, initialLoadedPageCount, stateRef, }: EventListProps): JSX.Element;
5
5
  displayName: string;
6
6
  };
@@ -1,6 +1,6 @@
1
1
  import type { EventListProps } from "./event-list.types";
2
2
  export type { EventListProps, EventListStateRef } from "./event-list.types";
3
3
  export declare const EventList: {
4
- ({ title, limit, maxVisibleItems, search, categoryIds, onEventClick, onMarketClick, getMarketHref, getEventHref, initialVenueTab, initialLoadedPageCount, stateRef, }: EventListProps): JSX.Element;
4
+ ({ title, limit, maxVisibleItems, search, categoryIds, onCategoryRootChange, onEventClick, onMarketClick, getMarketHref, getEventHref, initialVenueTab, initialLoadedPageCount, stateRef, }: EventListProps): JSX.Element;
5
5
  displayName: string;
6
6
  };
@@ -82,4 +82,5 @@ export type HomePageProps = {
82
82
  export type HomePageCategory = {
83
83
  id: string;
84
84
  name: string;
85
+ displayName?: string | null;
85
86
  };
@@ -82,4 +82,5 @@ export type HomePageProps = {
82
82
  export type HomePageCategory = {
83
83
  id: string;
84
84
  name: string;
85
+ displayName?: string | null;
85
86
  };
@@ -120,7 +120,7 @@ export interface UserProfilePosition {
120
120
  /** Winning outcome ids used to redeem closed winning positions. */
121
121
  winningOutcomeIds?: string[];
122
122
  }
123
- export type UserProfileActivityKind = "trade" | "withdrawal" | "deposit" | "bridge" | "user_op";
123
+ export type UserProfileActivityKind = "trade" | "redeem" | "withdrawal" | "deposit" | "bridge" | "user_op" | "unknown";
124
124
  export interface UserProfileTradeActivity {
125
125
  kind: "trade";
126
126
  id: string;
@@ -153,6 +153,32 @@ export interface UserProfileTradeActivity {
153
153
  /** Time label, e.g. "3d ago" */
154
154
  timeLabel: string;
155
155
  }
156
+ export interface UserProfileRedeemActivity {
157
+ kind: "redeem";
158
+ id: string;
159
+ /** Whether the activity failed and should render in a degraded state. */
160
+ isFailed?: boolean;
161
+ /** Whether the row should use error-colored text because the activity has an error. */
162
+ hasError?: boolean;
163
+ /** Error message for the activity. */
164
+ errorMessage?: string;
165
+ /** Normalized lifecycle status driving row title and amount rendering. */
166
+ status?: UserProfileActivityStatus;
167
+ /** Activity type label, e.g. "Redeem". */
168
+ type: string;
169
+ /** Status-aware title, e.g. "Successful claim". */
170
+ title: string;
171
+ /** Market thumbnail image URL. */
172
+ thumbnailSrc: string;
173
+ /** Market question shown below the redeem title. */
174
+ marketTitle: string;
175
+ /** Outcome label, e.g. "Down". */
176
+ outcomeLabel: string;
177
+ /** Right-side payout label, e.g. "+20.00 USDC". */
178
+ amountLabel: string;
179
+ /** Time label, e.g. "3d ago". */
180
+ timeLabel: string;
181
+ }
156
182
  /**
157
183
  * Normalized UI state for activity rows. Backend statuses collapse into
158
184
  * one of four buckets so row tone, status icons, titles, and amounts stay
@@ -161,9 +187,9 @@ export interface UserProfileTradeActivity {
161
187
  */
162
188
  export type UserProfileActivityStatus = "completed" | "pending" | "failed" | "canceled";
163
189
  export type UserProfileTransferStatus = UserProfileActivityStatus;
164
- /** Non-trade activity row: withdrawal / deposit / bridge / user_op. */
190
+ /** Non-market-image activity row: withdrawal / deposit / bridge / user_op / unknown. */
165
191
  export interface UserProfileTransferActivity {
166
- kind: "withdrawal" | "deposit" | "bridge" | "user_op";
192
+ kind: "withdrawal" | "deposit" | "bridge" | "user_op" | "unknown";
167
193
  id: string;
168
194
  /** Whether the activity failed and should render in a degraded state. */
169
195
  isFailed?: boolean;
@@ -188,7 +214,7 @@ export interface UserProfileTransferActivity {
188
214
  /** Chain ID for chain-aware deposit icons. */
189
215
  chainId?: string | number;
190
216
  }
191
- export type UserProfileActivity = UserProfileTradeActivity | UserProfileTransferActivity;
217
+ export type UserProfileActivity = UserProfileTradeActivity | UserProfileRedeemActivity | UserProfileTransferActivity;
192
218
  export interface UserProfileOpenOrder {
193
219
  id: string;
194
220
  /** Market thumbnail image URL */
@@ -120,7 +120,7 @@ export interface UserProfilePosition {
120
120
  /** Winning outcome ids used to redeem closed winning positions. */
121
121
  winningOutcomeIds?: string[];
122
122
  }
123
- export type UserProfileActivityKind = "trade" | "withdrawal" | "deposit" | "bridge" | "user_op";
123
+ export type UserProfileActivityKind = "trade" | "redeem" | "withdrawal" | "deposit" | "bridge" | "user_op" | "unknown";
124
124
  export interface UserProfileTradeActivity {
125
125
  kind: "trade";
126
126
  id: string;
@@ -153,6 +153,32 @@ export interface UserProfileTradeActivity {
153
153
  /** Time label, e.g. "3d ago" */
154
154
  timeLabel: string;
155
155
  }
156
+ export interface UserProfileRedeemActivity {
157
+ kind: "redeem";
158
+ id: string;
159
+ /** Whether the activity failed and should render in a degraded state. */
160
+ isFailed?: boolean;
161
+ /** Whether the row should use error-colored text because the activity has an error. */
162
+ hasError?: boolean;
163
+ /** Error message for the activity. */
164
+ errorMessage?: string;
165
+ /** Normalized lifecycle status driving row title and amount rendering. */
166
+ status?: UserProfileActivityStatus;
167
+ /** Activity type label, e.g. "Redeem". */
168
+ type: string;
169
+ /** Status-aware title, e.g. "Successful claim". */
170
+ title: string;
171
+ /** Market thumbnail image URL. */
172
+ thumbnailSrc: string;
173
+ /** Market question shown below the redeem title. */
174
+ marketTitle: string;
175
+ /** Outcome label, e.g. "Down". */
176
+ outcomeLabel: string;
177
+ /** Right-side payout label, e.g. "+20.00 USDC". */
178
+ amountLabel: string;
179
+ /** Time label, e.g. "3d ago". */
180
+ timeLabel: string;
181
+ }
156
182
  /**
157
183
  * Normalized UI state for activity rows. Backend statuses collapse into
158
184
  * one of four buckets so row tone, status icons, titles, and amounts stay
@@ -161,9 +187,9 @@ export interface UserProfileTradeActivity {
161
187
  */
162
188
  export type UserProfileActivityStatus = "completed" | "pending" | "failed" | "canceled";
163
189
  export type UserProfileTransferStatus = UserProfileActivityStatus;
164
- /** Non-trade activity row: withdrawal / deposit / bridge / user_op. */
190
+ /** Non-market-image activity row: withdrawal / deposit / bridge / user_op / unknown. */
165
191
  export interface UserProfileTransferActivity {
166
- kind: "withdrawal" | "deposit" | "bridge" | "user_op";
192
+ kind: "withdrawal" | "deposit" | "bridge" | "user_op" | "unknown";
167
193
  id: string;
168
194
  /** Whether the activity failed and should render in a degraded state. */
169
195
  isFailed?: boolean;
@@ -188,7 +214,7 @@ export interface UserProfileTransferActivity {
188
214
  /** Chain ID for chain-aware deposit icons. */
189
215
  chainId?: string | number;
190
216
  }
191
- export type UserProfileActivity = UserProfileTradeActivity | UserProfileTransferActivity;
217
+ export type UserProfileActivity = UserProfileTradeActivity | UserProfileRedeemActivity | UserProfileTransferActivity;
192
218
  export interface UserProfileOpenOrder {
193
219
  id: string;
194
220
  /** Market thumbnail image URL */
@@ -29,6 +29,7 @@ import { DocumentIcon } from "./svg/document";
29
29
  import { DownloadIcon } from "./svg/download";
30
30
  import { ErrorFilledIcon } from "./svg/error-filled";
31
31
  import { ExternalLinkIcon } from "./svg/external-link";
32
+ import { GiftBonusIcon } from "./svg/gift-bonus";
32
33
  import { EthereumIcon } from "./svg/ethereum";
33
34
  import { GoogleIcon } from "./svg/google";
34
35
  import { HourglassStartIcon } from "./svg/hourglass-start";
@@ -70,4 +71,4 @@ export declare const Icon: {
70
71
  ({ name, color, size, className, style, ...props }: IconProps): JSX.Element | null;
71
72
  displayName: string;
72
73
  };
73
- export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, CircleXmarkIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, HourglassStartIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
74
+ export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, CircleXmarkIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GiftBonusIcon, GoogleIcon, HourglassStartIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
@@ -29,6 +29,7 @@ import { DocumentIcon } from "./svg/document";
29
29
  import { DownloadIcon } from "./svg/download";
30
30
  import { ErrorFilledIcon } from "./svg/error-filled";
31
31
  import { ExternalLinkIcon } from "./svg/external-link";
32
+ import { GiftBonusIcon } from "./svg/gift-bonus";
32
33
  import { EthereumIcon } from "./svg/ethereum";
33
34
  import { GoogleIcon } from "./svg/google";
34
35
  import { HourglassStartIcon } from "./svg/hourglass-start";
@@ -70,4 +71,4 @@ export declare const Icon: {
70
71
  ({ name, color, size, className, style, ...props }: IconProps): JSX.Element | null;
71
72
  displayName: string;
72
73
  };
73
- export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, CircleXmarkIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, HourglassStartIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
74
+ export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, CircleXmarkIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GiftBonusIcon, GoogleIcon, HourglassStartIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
@@ -156,6 +156,10 @@ export declare const iconRegistry: {
156
156
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
157
157
  displayName: string;
158
158
  };
159
+ readonly "gift-bonus": {
160
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
+ displayName: string;
162
+ };
159
163
  readonly google: {
160
164
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
165
  displayName: string;
@@ -156,6 +156,10 @@ export declare const iconRegistry: {
156
156
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
157
157
  displayName: string;
158
158
  };
159
+ readonly "gift-bonus": {
160
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
+ displayName: string;
162
+ };
159
163
  readonly google: {
160
164
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
165
  displayName: string;
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const GiftBonusIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const GiftBonusIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -1,5 +1,6 @@
1
1
  import type { InputHTMLAttributes } from "react";
2
2
  import type { UseSearchOptions } from "@agg-build/hooks";
3
+ import type { VenueEventWithMarkets } from "../../events/item";
3
4
  import type { VenueLogoName } from "../venue-logo";
4
5
  export type SearchResultItem = {
5
6
  id: string;
@@ -48,7 +49,7 @@ export type SearchProps = {
48
49
  * Override handler for when a search result row is clicked.
49
50
  * When provided, prevents the default `searchConfig.onSelect` behavior.
50
51
  */
51
- onSelectEvent?: (eventId: string) => void;
52
+ onSelectEvent?: (eventId: string, event?: VenueEventWithMarkets) => void;
52
53
  /**
53
54
  * Override handler for when the "See all results" button is clicked.
54
55
  * When provided, prevents the default `searchConfig.openResults` behavior.
@@ -1,5 +1,6 @@
1
1
  import type { InputHTMLAttributes } from "react";
2
2
  import type { UseSearchOptions } from "@agg-build/hooks";
3
+ import type { VenueEventWithMarkets } from "../../events/item";
3
4
  import type { VenueLogoName } from "../venue-logo";
4
5
  export type SearchResultItem = {
5
6
  id: string;
@@ -48,7 +49,7 @@ export type SearchProps = {
48
49
  * Override handler for when a search result row is clicked.
49
50
  * When provided, prevents the default `searchConfig.onSelect` behavior.
50
51
  */
51
- onSelectEvent?: (eventId: string) => void;
52
+ onSelectEvent?: (eventId: string, event?: VenueEventWithMarkets) => void;
52
53
  /**
53
54
  * Override handler for when the "See all results" button is clicked.
54
55
  * When provided, prevents the default `searchConfig.openResults` behavior.
@@ -4,6 +4,6 @@ export { skeletonViews, PlaceOrderRouteCardSkeleton };
4
4
  export type { SkeletonProps, SkeletonView } from "./skeleton.types";
5
5
  /** Renders the requested skeleton placeholder surface for loading UI states. */
6
6
  export declare const Skeleton: {
7
- ({ view, className, ariaLabel }: SkeletonProps): JSX.Element;
7
+ ({ view, className, ariaLabel, withSidebar, }: SkeletonProps): JSX.Element;
8
8
  displayName: string;
9
9
  };
@@ -4,6 +4,6 @@ export { skeletonViews, PlaceOrderRouteCardSkeleton };
4
4
  export type { SkeletonProps, SkeletonView } from "./skeleton.types";
5
5
  /** Renders the requested skeleton placeholder surface for loading UI states. */
6
6
  export declare const Skeleton: {
7
- ({ view, className, ariaLabel }: SkeletonProps): JSX.Element;
7
+ ({ view, className, ariaLabel, withSidebar, }: SkeletonProps): JSX.Element;
8
8
  displayName: string;
9
9
  };
@@ -18,10 +18,14 @@ export type SkeletonProps = {
18
18
  className?: string;
19
19
  /** Accessible label announced while the skeleton is shown. */
20
20
  ariaLabel?: string;
21
+ /** Whether the event-list skeleton should include the discovery sidebar. */
22
+ withSidebar?: boolean;
21
23
  };
22
24
  export type SkeletonViewProps = {
23
25
  /** Custom class name applied to an individual skeleton view. */
24
26
  className?: string;
25
27
  /** Accessible label announced for the skeleton view. */
26
28
  ariaLabel?: string;
29
+ /** Whether this skeleton view should include the discovery sidebar. */
30
+ withSidebar?: boolean;
27
31
  };
@@ -18,10 +18,14 @@ export type SkeletonProps = {
18
18
  className?: string;
19
19
  /** Accessible label announced while the skeleton is shown. */
20
20
  ariaLabel?: string;
21
+ /** Whether the event-list skeleton should include the discovery sidebar. */
22
+ withSidebar?: boolean;
21
23
  };
22
24
  export type SkeletonViewProps = {
23
25
  /** Custom class name applied to an individual skeleton view. */
24
26
  className?: string;
25
27
  /** Accessible label announced for the skeleton view. */
26
28
  ariaLabel?: string;
29
+ /** Whether this skeleton view should include the discovery sidebar. */
30
+ withSidebar?: boolean;
27
31
  };
@@ -1,5 +1,5 @@
1
1
  import type { SkeletonViewProps } from "../skeleton.types";
2
2
  export declare const EventListSkeletonView: {
3
- ({ className, ariaLabel }: SkeletonViewProps): JSX.Element;
3
+ ({ className, ariaLabel, withSidebar, }: SkeletonViewProps): JSX.Element;
4
4
  displayName: string;
5
5
  };
@@ -1,5 +1,5 @@
1
1
  import type { SkeletonViewProps } from "../skeleton.types";
2
2
  export declare const EventListSkeletonView: {
3
- ({ className, ariaLabel }: SkeletonViewProps): JSX.Element;
3
+ ({ className, ariaLabel, withSidebar, }: SkeletonViewProps): JSX.Element;
4
4
  displayName: string;
5
5
  };
@@ -13,6 +13,6 @@ export interface AccountsWalletsTabProps {
13
13
  onConnectEmail?: () => void;
14
14
  }
15
15
  export declare const AccountsWalletsTab: {
16
- ({ socialAccounts, email, wallets, onConnectTwitter, onDisconnectTwitter, onConnectGoogle, onDisconnectGoogle, onConnectApple, onDisconnectApple, onDisconnectWallet, onConnectEmail, }: AccountsWalletsTabProps): JSX.Element;
16
+ ({ socialAccounts, email, wallets, onConnectTwitter, onDisconnectTwitter, onConnectGoogle, onDisconnectGoogle, onConnectApple, onDisconnectApple, onConnectEmail, }: AccountsWalletsTabProps): JSX.Element;
17
17
  displayName: string;
18
18
  };
@@ -13,6 +13,6 @@ export interface AccountsWalletsTabProps {
13
13
  onConnectEmail?: () => void;
14
14
  }
15
15
  export declare const AccountsWalletsTab: {
16
- ({ socialAccounts, email, wallets, onConnectTwitter, onDisconnectTwitter, onConnectGoogle, onDisconnectGoogle, onConnectApple, onDisconnectApple, onDisconnectWallet, onConnectEmail, }: AccountsWalletsTabProps): JSX.Element;
16
+ ({ socialAccounts, email, wallets, onConnectTwitter, onDisconnectTwitter, onConnectGoogle, onDisconnectGoogle, onConnectApple, onDisconnectApple, onConnectEmail, }: AccountsWalletsTabProps): JSX.Element;
17
17
  displayName: string;
18
18
  };
@@ -5,6 +5,6 @@ export { PlaceOrderSuccessView } from "./index.place-order.success";
5
5
  export type { PlaceOrderSuccessViewProps } from "./index.place-order.success";
6
6
  export type { PlaceOrderClassNames, PlaceOrderExecutionSummary, PlaceOrderResolvedClaimSummary, PlaceOrderTradingLabels, } from "./index.place-order.types";
7
7
  export declare const PlaceOrder: {
8
- ({ className, classNames, eventTradingState, isLoading, isPrimaryActionDisabled, isPrimaryActionLoading, chainBalancesOverride, onAmountChange, onClose, onOutcomeChange, onPrimaryAction, onSlippageChange, onTabChange, onSuccess, onError, onExecutionStateChange, resolvedClaim, midpointsResult, }: PlaceOrderProps): JSX.Element;
8
+ ({ className, classNames, eventTradingState, executionMode, isLoading, isPrimaryActionDisabled, isPrimaryActionLoading, chainBalancesOverride, onAmountChange, onClose, onOutcomeChange, onPrimaryAction, onTabChange, onSuccess, onError, onExecutionStateChange, resolvedClaim, midpointsResult, }: PlaceOrderProps): JSX.Element;
9
9
  displayName: string;
10
10
  };
@@ -5,6 +5,6 @@ export { PlaceOrderSuccessView } from "./index.place-order.success";
5
5
  export type { PlaceOrderSuccessViewProps } from "./index.place-order.success";
6
6
  export type { PlaceOrderClassNames, PlaceOrderExecutionSummary, PlaceOrderResolvedClaimSummary, PlaceOrderTradingLabels, } from "./index.place-order.types";
7
7
  export declare const PlaceOrder: {
8
- ({ className, classNames, eventTradingState, isLoading, isPrimaryActionDisabled, isPrimaryActionLoading, chainBalancesOverride, onAmountChange, onClose, onOutcomeChange, onPrimaryAction, onSlippageChange, onTabChange, onSuccess, onError, onExecutionStateChange, resolvedClaim, midpointsResult, }: PlaceOrderProps): JSX.Element;
8
+ ({ className, classNames, eventTradingState, executionMode, isLoading, isPrimaryActionDisabled, isPrimaryActionLoading, chainBalancesOverride, onAmountChange, onClose, onOutcomeChange, onPrimaryAction, onTabChange, onSuccess, onError, onExecutionStateChange, resolvedClaim, midpointsResult, }: PlaceOrderProps): JSX.Element;
9
9
  displayName: string;
10
10
  };
@@ -1,5 +1,5 @@
1
1
  import type { AggUiLabels, DagStepProgress, EventTradingState, UseMidpointsResult, VenueMarket, VenueMarketOutcome } from "@agg-build/hooks";
2
- import type { SmartRouteResponse } from "@agg-build/sdk";
2
+ import type { ExecutionMode, SmartRouteResponse } from "@agg-build/sdk";
3
3
  import type { PlaceOrderRoutingRow, PlaceOrderStatus, PlaceOrderTab, TradingVenue } from "../types";
4
4
  export type PlaceOrderProps = {
5
5
  /** Custom class name applied to the place-order root. */
@@ -8,6 +8,8 @@ export type PlaceOrderProps = {
8
8
  classNames?: PlaceOrderClassNames;
9
9
  /** Trading state used to drive markets, balances, and quotes. */
10
10
  eventTradingState?: EventTradingState;
11
+ /** Trading mode used by normal execution endpoints. Defaults to live. */
12
+ executionMode?: ExecutionMode;
11
13
  /** Whether the place-order panel should render its loading state. */
12
14
  isLoading?: boolean;
13
15
  /** Whether the primary submit action should be disabled. */
@@ -23,6 +25,7 @@ export type PlaceOrderProps = {
23
25
  /** Called when the primary action is triggered. */
24
26
  onPrimaryAction?: (context?: {
25
27
  quoteId?: string;
28
+ mode?: ExecutionMode;
26
29
  }) => void;
27
30
  /** Called when the slippage control value changes. */
28
31
  onSlippageChange?: (value: string) => void;
@@ -1,5 +1,5 @@
1
1
  import type { AggUiLabels, DagStepProgress, EventTradingState, UseMidpointsResult, VenueMarket, VenueMarketOutcome } from "@agg-build/hooks";
2
- import type { SmartRouteResponse } from "@agg-build/sdk";
2
+ import type { ExecutionMode, SmartRouteResponse } from "@agg-build/sdk";
3
3
  import type { PlaceOrderRoutingRow, PlaceOrderStatus, PlaceOrderTab, TradingVenue } from "../types";
4
4
  export type PlaceOrderProps = {
5
5
  /** Custom class name applied to the place-order root. */
@@ -8,6 +8,8 @@ export type PlaceOrderProps = {
8
8
  classNames?: PlaceOrderClassNames;
9
9
  /** Trading state used to drive markets, balances, and quotes. */
10
10
  eventTradingState?: EventTradingState;
11
+ /** Trading mode used by normal execution endpoints. Defaults to live. */
12
+ executionMode?: ExecutionMode;
11
13
  /** Whether the place-order panel should render its loading state. */
12
14
  isLoading?: boolean;
13
15
  /** Whether the primary submit action should be disabled. */
@@ -23,6 +25,7 @@ export type PlaceOrderProps = {
23
25
  /** Called when the primary action is triggered. */
24
26
  onPrimaryAction?: (context?: {
25
27
  quoteId?: string;
28
+ mode?: ExecutionMode;
26
29
  }) => void;
27
30
  /** Called when the slippage control value changes. */
28
31
  onSlippageChange?: (value: string) => void;
@@ -33,9 +33,11 @@ export declare const deriveAggregateOrderStatus: (orderIds: string[], terminalEv
33
33
  export declare const resolvePlaceOrderQuoteResult: ({ labels, quoteData, tradeSide, }: ResolvePlaceOrderQuoteResultParams) => PlaceOrderQuoteResult | null;
34
34
  export declare const sanitizePlaceOrderAmount: (value: number) => number;
35
35
  export declare const getTradingRoutePriceLabel: (value: number) => string;
36
+ export declare const isQuoteBelowVenueMinimum: (quoteData: SmartRouteResponse | null | undefined) => boolean;
36
37
  export declare const resolvePlaceOrderQuoteStatus: ({ amount, labels, quoteData, selectedMarket, }: ResolvePlaceOrderQuoteStatusParams) => PlaceOrderQuoteStatus;
37
38
  export declare const buildLiveRouteCards: ({ labels, quoteData, tradeSide, eventVenues, }: BuildLiveRouteCardsParams) => PlaceOrderRouteCard[];
38
39
  export declare const resolveExecutionVenueFromQuote: (quoteData: SmartRouteResponse | null) => TradingVenue | undefined;
40
+ export declare const routeCardsHaveSameVenueIdentity: (a: PlaceOrderRouteCard, b: PlaceOrderRouteCard) => boolean;
39
41
  export declare const getPlaceOrderPotentialReturn: (quoteData: SmartRouteResponse | null | undefined) => number;
40
42
  export declare const buildPlaceOrderExecutionStepGroups: ({ labels, orderId, quoteData, submittedOrders, }: {
41
43
  labels: PlaceOrderTradingLabels;
@@ -33,9 +33,11 @@ export declare const deriveAggregateOrderStatus: (orderIds: string[], terminalEv
33
33
  export declare const resolvePlaceOrderQuoteResult: ({ labels, quoteData, tradeSide, }: ResolvePlaceOrderQuoteResultParams) => PlaceOrderQuoteResult | null;
34
34
  export declare const sanitizePlaceOrderAmount: (value: number) => number;
35
35
  export declare const getTradingRoutePriceLabel: (value: number) => string;
36
+ export declare const isQuoteBelowVenueMinimum: (quoteData: SmartRouteResponse | null | undefined) => boolean;
36
37
  export declare const resolvePlaceOrderQuoteStatus: ({ amount, labels, quoteData, selectedMarket, }: ResolvePlaceOrderQuoteStatusParams) => PlaceOrderQuoteStatus;
37
38
  export declare const buildLiveRouteCards: ({ labels, quoteData, tradeSide, eventVenues, }: BuildLiveRouteCardsParams) => PlaceOrderRouteCard[];
38
39
  export declare const resolveExecutionVenueFromQuote: (quoteData: SmartRouteResponse | null) => TradingVenue | undefined;
40
+ export declare const routeCardsHaveSameVenueIdentity: (a: PlaceOrderRouteCard, b: PlaceOrderRouteCard) => boolean;
39
41
  export declare const getPlaceOrderPotentialReturn: (quoteData: SmartRouteResponse | null | undefined) => number;
40
42
  export declare const buildPlaceOrderExecutionStepGroups: ({ labels, orderId, quoteData, submittedOrders, }: {
41
43
  labels: PlaceOrderTradingLabels;