@agg-build/ui 4.9.2 → 4.10.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 (36) hide show
  1. package/dist/{chunk-K6F2ZYNM.mjs → chunk-4HTE5IEZ.mjs} +32 -20
  2. package/dist/{chunk-TNNLRRHC.mjs → chunk-6EHT5OFU.mjs} +1 -1
  3. package/dist/{chunk-GVIS3YXU.mjs → chunk-H5LCCV2J.mjs} +22 -11
  4. package/dist/{chunk-GG57TRNE.mjs → chunk-I72YHWOI.mjs} +2 -2
  5. package/dist/{chunk-MVAOWNG3.mjs → chunk-SMQRUNMZ.mjs} +19 -10
  6. package/dist/{chunk-H7L4HDXS.mjs → chunk-TXQJUVRW.mjs} +3 -2
  7. package/dist/{chunk-NYL6A6AD.mjs → chunk-W7HQVQ22.mjs} +257 -195
  8. package/dist/events.js +753 -680
  9. package/dist/events.mjs +3 -3
  10. package/dist/index.js +2692 -2597
  11. package/dist/index.mjs +7 -7
  12. package/dist/modals.js +1352 -1289
  13. package/dist/modals.mjs +3 -3
  14. package/dist/pages.js +2052 -1957
  15. package/dist/pages.mjs +6 -6
  16. package/dist/primitives.js +288 -226
  17. package/dist/primitives.mjs +1 -1
  18. package/dist/trading.js +834 -759
  19. package/dist/trading.mjs +4 -4
  20. package/dist/types/events/item-details/event-list-item-details.types.d.mts +2 -0
  21. package/dist/types/events/item-details/event-list-item-details.types.d.ts +2 -0
  22. package/dist/types/pages/event-market/event-market.types.d.mts +2 -0
  23. package/dist/types/pages/event-market/event-market.types.d.ts +2 -0
  24. package/dist/types/pages/event-market/sports-event-market-page.d.mts +1 -1
  25. package/dist/types/pages/event-market/sports-event-market-page.d.ts +1 -1
  26. package/dist/types/pages/user-profile/user-profile.types.d.mts +2 -0
  27. package/dist/types/pages/user-profile/user-profile.types.d.ts +2 -0
  28. package/dist/types/primitives/venue-logo/svg/logo-pred.d.mts +10 -0
  29. package/dist/types/primitives/venue-logo/svg/logo-pred.d.ts +10 -0
  30. package/dist/types/trading/place-order/index.place-order.execution-view.d.mts +2 -1
  31. package/dist/types/trading/place-order/index.place-order.execution-view.d.ts +2 -1
  32. package/dist/types/trading/place-order/index.place-order.types.d.mts +8 -0
  33. package/dist/types/trading/place-order/index.place-order.types.d.ts +8 -0
  34. package/dist/types/trading/place-order/index.place-order.utils.d.mts +1 -1
  35. package/dist/types/trading/place-order/index.place-order.utils.d.ts +1 -1
  36. package/package.json +3 -3
@@ -9,13 +9,13 @@ import {
9
9
  getTradingVenueLabel,
10
10
  prepareSettlementDifferences,
11
11
  resolveOrderEligibilityMessage
12
- } from "./chunk-TNNLRRHC.mjs";
12
+ } from "./chunk-6EHT5OFU.mjs";
13
13
  import {
14
14
  ConnectKalshiModal,
15
15
  GeoBlockBanner,
16
16
  SharedKycModal,
17
17
  subscribeAggDepositNotification
18
- } from "./chunk-H7L4HDXS.mjs";
18
+ } from "./chunk-TXQJUVRW.mjs";
19
19
  import {
20
20
  AGG_TERMS_OF_SERVICE_URL,
21
21
  Button,
@@ -48,7 +48,7 @@ import {
48
48
  resolveResolvedOutcomeLabel,
49
49
  skeletonViews,
50
50
  useOptionalToast
51
- } from "./chunk-NYL6A6AD.mjs";
51
+ } from "./chunk-W7HQVQ22.mjs";
52
52
 
53
53
  // src/trading/types.ts
54
54
  import { Venue, enumGuard, isFiniteNonNeg, safeParse } from "@agg-build/sdk";
@@ -1438,9 +1438,10 @@ var resolvePlaceOrderQuoteStatus = ({
1438
1438
  amount,
1439
1439
  labels,
1440
1440
  quoteData,
1441
- selectedMarket
1441
+ selectedMarket,
1442
+ tradeSide = "buy"
1442
1443
  }) => {
1443
- var _a, _b, _c;
1444
+ var _a, _b, _c, _d, _e;
1444
1445
  if (!selectedMarket) {
1445
1446
  return {
1446
1447
  tone: "warning",
@@ -1460,9 +1461,10 @@ var resolvePlaceOrderQuoteStatus = ({
1460
1461
  };
1461
1462
  }
1462
1463
  if (quoteData.status === "no_orderbooks") {
1464
+ const serverError = (_a = quoteData.error) == null ? void 0 : _a.trim();
1463
1465
  return {
1464
1466
  tone: "error",
1465
- message: labels.noOrderbooks,
1467
+ message: serverError || labels.noOrderbooks,
1466
1468
  placement: "above-action"
1467
1469
  };
1468
1470
  }
@@ -1476,26 +1478,27 @@ var resolvePlaceOrderQuoteStatus = ({
1476
1478
  if (quoteData.status === "insufficient_input_amount") {
1477
1479
  return {
1478
1480
  tone: "error",
1479
- message: (_a = quoteData.message) != null ? _a : labels.insufficientInputAmount,
1481
+ message: (_b = quoteData.message) != null ? _b : labels.insufficientInputAmount,
1480
1482
  placement: "above-action"
1481
1483
  };
1482
1484
  }
1483
1485
  if (quoteData.status === "invalid_input") {
1484
1486
  return {
1485
1487
  tone: "error",
1486
- message: (_b = quoteData.message) != null ? _b : labels.quoteUnavailable,
1488
+ message: (_c = quoteData.message) != null ? _c : labels.quoteUnavailable,
1487
1489
  placement: "above-action"
1488
1490
  };
1489
1491
  }
1490
1492
  if (quoteData.status === "insufficient_position") {
1491
- const total = (_c = quoteData.positionAvailability) == null ? void 0 : _c.totalSellableShares;
1493
+ const total = (_d = quoteData.positionAvailability) == null ? void 0 : _d.totalSellableShares;
1492
1494
  const message = total != null ? labels.insufficientPosition(total) : labels.insufficientPositionGeneric;
1493
1495
  return { tone: "error", message, placement: "above-action" };
1494
1496
  }
1495
1497
  if (quoteData.status === "insufficient_depth") {
1498
+ const serverError = (_e = quoteData.error) == null ? void 0 : _e.trim();
1496
1499
  return {
1497
1500
  tone: "error",
1498
- message: labels.insufficientSellDepth,
1501
+ message: tradeSide === "sell" ? serverError || labels.insufficientSellDepth : serverError || labels.insufficientLiquidity,
1499
1502
  placement: "above-action"
1500
1503
  };
1501
1504
  }
@@ -1575,6 +1578,7 @@ var buildLiveRouteCards = ({
1575
1578
  executionPrice: averageExecutionPrice,
1576
1579
  requiresSharedKyc: primaryRequiresSharedKyc
1577
1580
  } : null;
1581
+ const soloCardId = (prefix, sq) => `${prefix}-${sq.venue}${sq.venueMarketOutcomeId ? `-${sq.venueMarketOutcomeId}` : ""}`;
1578
1582
  const soloCards = ((_c = quoteData.venueSoloQuotes) != null ? _c : []).filter(
1579
1583
  (sq) => sq.status === "ok" && sq.unavailableReason !== "venue_unavailable" && sq.avgPrice !== null && sq.filledQty > 0 && // No `sq.quoteId` requirement: a solo is preview-only whenever its own
1580
1584
  // funding lane is short (API nulls the quoteId), which is NOT always the
@@ -1590,7 +1594,8 @@ var buildLiveRouteCards = ({
1590
1594
  const venue = parsedVenue.success ? parsedVenue.data : void 0;
1591
1595
  if (geoBlockedVenues.has(sq.venue)) {
1592
1596
  return {
1593
- id: `live-unavailable-${sq.venue}`,
1597
+ id: soloCardId("live-unavailable", sq),
1598
+ venueMarketOutcomeId: sq.venueMarketOutcomeId,
1594
1599
  hint: labels.venueUnavailableInRegion,
1595
1600
  kind: "venue",
1596
1601
  label: getTradingVenueLabel(venue),
@@ -1627,7 +1632,8 @@ var buildLiveRouteCards = ({
1627
1632
  feeBreakdown: (_b2 = sq.feeBreakdown) != null ? _b2 : quoteData.feeBreakdown
1628
1633
  }), sq.quoteId ? { status: "ok", error: void 0 } : null);
1629
1634
  return {
1630
- id: `live-solo-${sq.venue}`,
1635
+ id: soloCardId("live-solo", sq),
1636
+ venueMarketOutcomeId: sq.venueMarketOutcomeId,
1631
1637
  hint: labels.averagePrice(avgPrice),
1632
1638
  kind: "venue",
1633
1639
  label: getTradingVenueLabel(venue),
@@ -1649,7 +1655,8 @@ var buildLiveRouteCards = ({
1649
1655
  const temporarilyUnavailable = sq.unavailableReason === "venue_unavailable";
1650
1656
  const hasPreview = temporarilyUnavailable && sq.filledQty > 0;
1651
1657
  return __spreadProps(__spreadValues({
1652
- id: `live-unavailable-${sq.venue}`,
1658
+ id: soloCardId("live-unavailable", sq),
1659
+ venueMarketOutcomeId: sq.venueMarketOutcomeId,
1653
1660
  hint: temporarilyUnavailable ? labels.venueTemporarilyUnavailable : labels.venueUnavailableInRegion,
1654
1661
  kind: "venue",
1655
1662
  label: getTradingVenueLabel(venue),
@@ -3282,7 +3289,8 @@ var PlaceOrderExecutionView = ({
3282
3289
  eventTitle,
3283
3290
  groups,
3284
3291
  labels,
3285
- progress
3292
+ progress,
3293
+ settlementHint
3286
3294
  }) => {
3287
3295
  return /* @__PURE__ */ jsx4(
3288
3296
  Card,
@@ -3326,7 +3334,8 @@ var PlaceOrderExecutionView = ({
3326
3334
  groups,
3327
3335
  labels
3328
3336
  }
3329
- )
3337
+ ),
3338
+ settlementHint ? /* @__PURE__ */ jsx4("p", { className: "text-agg-sm leading-agg-5 text-agg-muted-foreground", children: settlementHint }) : null
3330
3339
  ] })
3331
3340
  ] })
3332
3341
  }
@@ -5267,13 +5276,13 @@ var PlaceOrder = ({
5267
5276
  setSubmissionProgressState((prev) => {
5268
5277
  if (!prev || prev.phase === "success" || prev.phase === "failed") return prev;
5269
5278
  return __spreadProps(__spreadValues({}, prev), {
5270
- phase: "failed",
5271
- errorMessage: "Couldn't confirm the order in time. Your trade may still complete in the background \u2014 check your activity feed."
5279
+ phase: "executing",
5280
+ errorMessage: tradingLabels.orderStillSettling
5272
5281
  });
5273
5282
  });
5274
5283
  }, timeoutMs);
5275
5284
  return () => clearTimeout(id);
5276
- }, [submissionProgressState == null ? void 0 : submissionProgressState.phase, estDurationMs]);
5285
+ }, [submissionProgressState == null ? void 0 : submissionProgressState.phase, estDurationMs, tradingLabels.orderStillSettling]);
5277
5286
  const emitTerminalOrderNotifications = useCallback3(() => {
5278
5287
  const toast = toastCtx == null ? void 0 : toastCtx.toast;
5279
5288
  if (!toast) return;
@@ -5384,11 +5393,13 @@ var PlaceOrder = ({
5384
5393
  amount: internalAmount,
5385
5394
  labels: tradingLabels,
5386
5395
  quoteData: activeQuoteData,
5387
- selectedMarket: scopedSelectedMarket
5396
+ selectedMarket: scopedSelectedMarket,
5397
+ tradeSide: isSell ? "sell" : "buy"
5388
5398
  });
5389
5399
  }, [
5390
5400
  activeQuoteData,
5391
5401
  internalAmount,
5402
+ isSell,
5392
5403
  orderEligibility.canPlaceOrder,
5393
5404
  scopedSelectedMarket,
5394
5405
  tradingLabels
@@ -6211,7 +6222,8 @@ var PlaceOrder = ({
6211
6222
  eventTitle: headerTitle,
6212
6223
  groups: executionOrderGroups,
6213
6224
  labels: tradingLabels,
6214
- progress: executionProgressPercent
6225
+ progress: executionProgressPercent,
6226
+ settlementHint: submissionProgressState.phase === "executing" ? submissionProgressState.errorMessage : void 0
6215
6227
  }
6216
6228
  );
6217
6229
  }
@@ -19,7 +19,7 @@ import {
19
19
  selectPrimaryVenueMarket,
20
20
  skeletonViews,
21
21
  sortOutcomes
22
- } from "./chunk-NYL6A6AD.mjs";
22
+ } from "./chunk-W7HQVQ22.mjs";
23
23
 
24
24
  // src/trading/trading-context/index.tsx
25
25
  import { useEventTradingContext } from "@agg-build/hooks";
@@ -24,7 +24,7 @@ import {
24
24
  resolveUnifiedOrderBookEntries,
25
25
  sortOutcomeSelectorOutcomes,
26
26
  useEventTradingContext
27
- } from "./chunk-TNNLRRHC.mjs";
27
+ } from "./chunk-6EHT5OFU.mjs";
28
28
  import {
29
29
  AutocompleteSelect,
30
30
  Badge,
@@ -78,7 +78,7 @@ import {
78
78
  sortOutcomes,
79
79
  splitEventsByLifecycle,
80
80
  validateSubcategoryPath
81
- } from "./chunk-NYL6A6AD.mjs";
81
+ } from "./chunk-W7HQVQ22.mjs";
82
82
 
83
83
  // src/events/item/index.tsx
84
84
  import {
@@ -2893,6 +2893,7 @@ var EventListItemDetailsContent = ({
2893
2893
  event,
2894
2894
  defaultMarketId,
2895
2895
  defaultOutcomeId,
2896
+ defaultTradeSide,
2896
2897
  classNames,
2897
2898
  venueInfo,
2898
2899
  detailsStats,
@@ -2979,7 +2980,7 @@ var EventListItemDetailsContent = ({
2979
2980
  if (!tradingContext) return;
2980
2981
  if (!defaultMarketId) return;
2981
2982
  if (tradingContext.selectedEventId !== event.id) return;
2982
- const applyKey = `${event.id}::${defaultMarketId}::${defaultOutcomeId != null ? defaultOutcomeId : ""}`;
2983
+ const applyKey = `${event.id}::${defaultMarketId}::${defaultOutcomeId != null ? defaultOutcomeId : ""}::${defaultTradeSide != null ? defaultTradeSide : ""}`;
2983
2984
  if (lastAppliedDefaultRef.current === applyKey) return;
2984
2985
  const nextMarket = event.venueMarkets.find((market) => market.id === defaultMarketId);
2985
2986
  if (!nextMarket) return;
@@ -2989,14 +2990,17 @@ var EventListItemDetailsContent = ({
2989
2990
  );
2990
2991
  if (!nextOutcome) return;
2991
2992
  tradingContext.selectMarketAndOutcome(defaultMarketId, defaultOutcomeId);
2992
- lastAppliedDefaultRef.current = applyKey;
2993
- return;
2993
+ } else {
2994
+ tradingContext.selectMarket(defaultMarketId, nextMarket);
2995
+ }
2996
+ if (defaultTradeSide === "sell" || defaultTradeSide === "buy") {
2997
+ tradingContext.setTradeSide(defaultTradeSide);
2994
2998
  }
2995
- tradingContext.selectMarket(defaultMarketId, nextMarket);
2996
2999
  lastAppliedDefaultRef.current = applyKey;
2997
3000
  }, [
2998
3001
  defaultMarketId,
2999
3002
  defaultOutcomeId,
3003
+ defaultTradeSide,
3000
3004
  event.id,
3001
3005
  event.venueMarkets,
3002
3006
  tradingContext,
@@ -3345,6 +3349,7 @@ var EventListItemDetails = (props) => {
3345
3349
  classNames,
3346
3350
  defaultMarketId,
3347
3351
  defaultOutcomeId,
3352
+ defaultTradeSide,
3348
3353
  venueInfo,
3349
3354
  detailsStats,
3350
3355
  ariaLabel: ariaLabelOverride,
@@ -3356,6 +3361,7 @@ var EventListItemDetails = (props) => {
3356
3361
  classNames,
3357
3362
  defaultMarketId,
3358
3363
  defaultOutcomeId,
3364
+ defaultTradeSide,
3359
3365
  venueInfo,
3360
3366
  detailsStats,
3361
3367
  ariaLabel: ariaLabelOverride,
@@ -4470,7 +4476,7 @@ var MarketDetailsContent = ({
4470
4476
  suppressOutcomeFallbackSelection,
4471
4477
  midpointsResult
4472
4478
  }) => {
4473
- var _a, _b, _c, _d, _e, _f, _g, _h, _i;
4479
+ var _a, _b, _c, _d, _e, _f, _g;
4474
4480
  const config = useSdkUiConfig5();
4475
4481
  const {
4476
4482
  features: { enableAnimations },
@@ -4727,11 +4733,10 @@ var MarketDetailsContent = ({
4727
4733
  });
4728
4734
  }, [model, selectedOutcomeLabel, selectedOutcomeId]);
4729
4735
  const orderBookEnabled = isOpened && effectiveSelectedTab === "order-book" && !marketTradingState.isTradingDisabled;
4730
- const primaryVenueMarketId = (_g = (_f = selectedOutcomesByVenue[0]) == null ? void 0 : _f.market.id) != null ? _g : null;
4731
- const primaryOutcomeId = (_i = (_h = selectedOutcomesByVenue[0]) == null ? void 0 : _h.outcome.id) != null ? _i : null;
4736
+ const primaryOutcomeId = (_g = (_f = selectedOutcomesByVenue[0]) == null ? void 0 : _f.outcome.id) != null ? _g : null;
4732
4737
  const marketOrderbookResult = useMarketOrderbook({
4733
- marketId: primaryVenueMarketId,
4734
- enabled: orderBookEnabled && !!primaryVenueMarketId,
4738
+ venueMarketOutcomeId: primaryOutcomeId,
4739
+ enabled: orderBookEnabled && !!primaryOutcomeId,
4735
4740
  venueOutcomes: selectedOutcomesByVenue.map((item) => ({
4736
4741
  venue: item.venue,
4737
4742
  venueMarketOutcomeId: item.outcomeId
@@ -5664,6 +5669,12 @@ var getDefaultEventListTabs = (labels) => {
5664
5669
  venueLogo: Venue2.predict,
5665
5670
  venues: [Venue2.predict]
5666
5671
  },
5672
+ {
5673
+ value: Venue2.pred,
5674
+ label: labels.venues.pred,
5675
+ venueLogo: Venue2.pred,
5676
+ venues: [Venue2.pred]
5677
+ },
5667
5678
  {
5668
5679
  value: Venue2.hyperliquid,
5669
5680
  label: labels.venues.hyperliquid,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  ConnectKalshiModal,
4
4
  dispatchAggDepositNotification
5
- } from "./chunk-H7L4HDXS.mjs";
5
+ } from "./chunk-TXQJUVRW.mjs";
6
6
  import {
7
7
  BoltIcon,
8
8
  Button,
@@ -36,7 +36,7 @@ import {
36
36
  shortenAddress,
37
37
  useOptionalToast,
38
38
  venueLogoLabels
39
- } from "./chunk-NYL6A6AD.mjs";
39
+ } from "./chunk-W7HQVQ22.mjs";
40
40
 
41
41
  // src/deposit/index.tsx
42
42
  import { useAggAuthState, useAggUiConfig, useDepositAddresses, useLabels as useLabels11 } from "@agg-build/hooks";
@@ -12,7 +12,7 @@ import {
12
12
  isErrorWithStatus,
13
13
  useEventListTabs,
14
14
  useEventListTabsHeaderOverflow
15
- } from "./chunk-GVIS3YXU.mjs";
15
+ } from "./chunk-H5LCCV2J.mjs";
16
16
  import {
17
17
  DEPOSIT_MODAL_OPEN_EVENT,
18
18
  PlaceOrder,
@@ -21,12 +21,12 @@ import {
21
21
  formatChainIdLabel,
22
22
  useClaimWinnings,
23
23
  useResolvedMarketClaim
24
- } from "./chunk-K6F2ZYNM.mjs";
24
+ } from "./chunk-4HTE5IEZ.mjs";
25
25
  import {
26
26
  getDisplayOutcomePrice,
27
27
  resolveHeaderOutcomeItems,
28
28
  resolveMarketFromVenueMarkets
29
- } from "./chunk-TNNLRRHC.mjs";
29
+ } from "./chunk-6EHT5OFU.mjs";
30
30
  import {
31
31
  AggErrorBoundary,
32
32
  Button,
@@ -62,7 +62,7 @@ import {
62
62
  skeletonViews,
63
63
  sortCategoriesForNavigation,
64
64
  useOptionalToast
65
- } from "./chunk-NYL6A6AD.mjs";
65
+ } from "./chunk-W7HQVQ22.mjs";
66
66
 
67
67
  // src/pages/home/index.tsx
68
68
  import {
@@ -2309,6 +2309,7 @@ var SportsEventMarketPage = ({
2309
2309
  event,
2310
2310
  defaultMarketId,
2311
2311
  defaultOutcomeId,
2312
+ defaultTradeSide,
2312
2313
  classNames,
2313
2314
  ariaLabel,
2314
2315
  showPlaceOrder,
@@ -2407,6 +2408,7 @@ var SportsEventMarketPage = ({
2407
2408
  event: composedEvent,
2408
2409
  defaultMarketId,
2409
2410
  defaultOutcomeId,
2411
+ defaultTradeSide,
2410
2412
  eventTradingState,
2411
2413
  midpointsResult,
2412
2414
  sportsLiveState: sportsLiveStateByEventId.get(event.id),
@@ -2548,6 +2550,7 @@ var EventMarketPageContent = ({
2548
2550
  event,
2549
2551
  defaultMarketId,
2550
2552
  defaultOutcomeId,
2553
+ defaultTradeSide,
2551
2554
  classNames,
2552
2555
  ariaLabel,
2553
2556
  showPlaceOrder,
@@ -2707,6 +2710,7 @@ var EventMarketPageContent = ({
2707
2710
  event,
2708
2711
  defaultMarketId,
2709
2712
  defaultOutcomeId,
2713
+ defaultTradeSide,
2710
2714
  eventTradingState,
2711
2715
  midpointsResult,
2712
2716
  recurringMarkets: recurringMarketsPresentation,
@@ -4003,6 +4007,7 @@ var CLAIM_VENUE_LABELS = {
4003
4007
  [Venue.limitless]: "Limitless",
4004
4008
  [Venue.opinion]: "Opinion",
4005
4009
  [Venue.predict]: "Predict",
4010
+ [Venue.pred]: "PRED",
4006
4011
  [Venue.probable]: "Probable",
4007
4012
  [Venue.myriad]: "Myriad",
4008
4013
  [Venue.hyperliquid]: "Hyperliquid",
@@ -4158,6 +4163,7 @@ var VENUE_LABELS = {
4158
4163
  [Venue2.opinion]: "Opinion",
4159
4164
  [Venue2.polymarket]: "Polymarket",
4160
4165
  [Venue2.predict]: "Predict",
4166
+ [Venue2.pred]: "PRED",
4161
4167
  [Venue2.probable]: "Probable",
4162
4168
  [Venue2.myriad]: "Myriad",
4163
4169
  [Venue2.hyperliquid]: "Hyperliquid",
@@ -7411,7 +7417,8 @@ var POSITION_ROW_VENUE_ORDER = [
7411
7417
  Venue3.polymarket,
7412
7418
  Venue3.kalshi,
7413
7419
  Venue3.opinion,
7414
- Venue3.limitless
7420
+ Venue3.limitless,
7421
+ Venue3.pred
7415
7422
  ];
7416
7423
  function venueBreakdownSortKey(venue) {
7417
7424
  const idx = POSITION_ROW_VENUE_ORDER.indexOf(venue);
@@ -8032,7 +8039,8 @@ var UserProfilePage = ({
8032
8039
  const eventId = (_d = group.eventId) != null ? _d : venueEventId;
8033
8040
  const marketId = group.targetMarketId;
8034
8041
  return group.venueMarket.venueMarketOutcomes.map((outcome) => {
8035
- var _a3, _b3, _c3, _d2;
8042
+ var _a3, _b3, _c3, _d2, _e, _f;
8043
+ const outcomeId = (_b3 = (_a3 = outcome.venueBreakdown.find((row) => row.venueMarketOutcomeId)) == null ? void 0 : _a3.venueMarketOutcomeId) != null ? _b3 : void 0;
8036
8044
  const isResolved = group.venueMarket.status === "resolved";
8037
8045
  const isUnpriced = outcome.priceSource === "entry";
8038
8046
  const averagePriceCents = Math.round(outcome.avgEntryPrice * 100);
@@ -8050,12 +8058,13 @@ var UserProfilePage = ({
8050
8058
  const pnlPercent = displayPnlPercent == null ? null : displayPnlPercent.toFixed(2);
8051
8059
  const winningOutcomeIds = outcome.winner === true ? outcome.venueBreakdown.map((breakdown) => breakdown.venueMarketOutcomeId) : [];
8052
8060
  return {
8053
- id: `${group.targetMarketId}-${outcome.label}-${(_a3 = outcome.title) != null ? _a3 : ""}`,
8061
+ id: `${group.targetMarketId}-${outcome.label}-${(_c3 = outcome.title) != null ? _c3 : ""}`,
8054
8062
  eventId,
8055
8063
  marketId,
8056
- thumbnailSrc: (_b3 = group.venueMarket.image) != null ? _b3 : fallbackThumbnailSrc,
8064
+ outcomeId,
8065
+ thumbnailSrc: (_d2 = group.venueMarket.image) != null ? _d2 : fallbackThumbnailSrc,
8057
8066
  title: group.venueMarket.question,
8058
- outcomeLabel: ((_c3 = outcome.title) == null ? void 0 : _c3.trim()) || outcome.label,
8067
+ outcomeLabel: ((_e = outcome.title) == null ? void 0 : _e.trim()) || outcome.label,
8059
8068
  resolutionLabel: winningOutcomeLabel,
8060
8069
  venueShareBreakdown: buildVenueShareBreakdown(outcome),
8061
8070
  totalShares: outcome.totalSize,
@@ -8071,7 +8080,7 @@ var UserProfilePage = ({
8071
8080
  isPnlPositive: displayPnlValue != null && displayPnlValue >= 0,
8072
8081
  status: group.status,
8073
8082
  marketStatus: group.venueMarket.status,
8074
- winner: (_d2 = outcome.winner) != null ? _d2 : null,
8083
+ winner: (_f = outcome.winner) != null ? _f : null,
8075
8084
  resolutionDate: group.resolutionDate,
8076
8085
  closedTotalTradedLabel: formatUsd2(totalTradedValue),
8077
8086
  totalTradedValue,
@@ -20,7 +20,7 @@ import {
20
20
  __spreadProps,
21
21
  __spreadValues,
22
22
  cn
23
- } from "./chunk-NYL6A6AD.mjs";
23
+ } from "./chunk-W7HQVQ22.mjs";
24
24
 
25
25
  // src/geo-block-banner/index.tsx
26
26
  import { useLabels } from "@agg-build/hooks";
@@ -171,7 +171,8 @@ var ONBOARDING_STEPS = {
171
171
  var ONCHAIN_VENUES = [
172
172
  Venue.polymarket,
173
173
  Venue.opinion,
174
- Venue.predict
174
+ Venue.predict,
175
+ Venue.pred
175
176
  ].filter(isVenueActive);
176
177
 
177
178
  // src/onboarding/steps/how-it-works.tsx