@agg-build/ui 4.18.1 → 4.19.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 (52) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-ZNOAKSPT.mjs → chunk-47CCGQH6.mjs} +2 -2
  3. package/dist/{chunk-2OBJ7DYT.mjs → chunk-5YHKIJ23.mjs} +21 -10
  4. package/dist/{chunk-2UPO6G3S.mjs → chunk-DWPBGMVJ.mjs} +50 -6
  5. package/dist/{chunk-VUZ72Q7H.mjs → chunk-DXASFSVL.mjs} +3 -2
  6. package/dist/{chunk-YXMDEUHP.mjs → chunk-GT3DCFIT.mjs} +494 -41
  7. package/dist/{chunk-HFL3CEWG.mjs → chunk-NSQQ62QK.mjs} +4 -4
  8. package/dist/{chunk-NRPS2D3Q.mjs → chunk-ROA5K67W.mjs} +1 -1
  9. package/dist/{chunk-JJ3VVCEP.mjs → chunk-WOCZ4TVT.mjs} +12 -8
  10. package/dist/{chunk-WIGSRHUG.mjs → chunk-XZVGHKMW.mjs} +3 -2
  11. package/dist/{event-market-GX24AP2H.mjs → event-market-2BAMDM5I.mjs} +6 -6
  12. package/dist/events.js +60 -11
  13. package/dist/events.mjs +4 -4
  14. package/dist/index.js +1148 -621
  15. package/dist/index.mjs +17 -9
  16. package/dist/modals.js +3 -2
  17. package/dist/modals.mjs +3 -3
  18. package/dist/pages.js +580 -53
  19. package/dist/pages.mjs +16 -8
  20. package/dist/primitives.js +3 -2
  21. package/dist/primitives.mjs +1 -1
  22. package/dist/styles.css +1 -1
  23. package/dist/tailwind.css +1 -1
  24. package/dist/trading.js +21 -9
  25. package/dist/trading.mjs +4 -4
  26. package/dist/types/pages/index.d.mts +1 -0
  27. package/dist/types/pages/index.d.ts +1 -0
  28. package/dist/types/pages/leaderboard/components/leaderboard-header-row.d.mts +7 -0
  29. package/dist/types/pages/leaderboard/components/leaderboard-header-row.d.ts +7 -0
  30. package/dist/types/pages/leaderboard/components/leaderboard-row.d.mts +7 -0
  31. package/dist/types/pages/leaderboard/components/leaderboard-row.d.ts +7 -0
  32. package/dist/types/pages/leaderboard/components/leaderboard-skeleton.d.mts +3 -0
  33. package/dist/types/pages/leaderboard/components/leaderboard-skeleton.d.ts +3 -0
  34. package/dist/types/pages/leaderboard/components/segmented-control.d.mts +18 -0
  35. package/dist/types/pages/leaderboard/components/segmented-control.d.ts +18 -0
  36. package/dist/types/pages/leaderboard/index.d.mts +28 -0
  37. package/dist/types/pages/leaderboard/index.d.ts +28 -0
  38. package/dist/types/pages/leaderboard/leaderboard.constants.d.mts +8 -0
  39. package/dist/types/pages/leaderboard/leaderboard.constants.d.ts +8 -0
  40. package/dist/types/pages/leaderboard/leaderboard.types.d.mts +11 -0
  41. package/dist/types/pages/leaderboard/leaderboard.types.d.ts +11 -0
  42. package/dist/types/pages/user-profile/position-view-model.d.mts +2 -4
  43. package/dist/types/pages/user-profile/position-view-model.d.ts +2 -4
  44. package/dist/types/primitives/remote-image/index.d.mts +1 -1
  45. package/dist/types/primitives/remote-image/index.d.ts +1 -1
  46. package/dist/types/primitives/remote-image/remote-image.types.d.mts +6 -0
  47. package/dist/types/primitives/remote-image/remote-image.types.d.ts +6 -0
  48. package/dist/types/shared/pnl-format.d.mts +20 -0
  49. package/dist/types/shared/pnl-format.d.ts +20 -0
  50. package/package.json +3 -3
  51. /package/dist/types/{pages/user-profile/components → shared}/default-avatar.d.mts +0 -0
  52. /package/dist/types/{pages/user-profile/components → shared}/default-avatar.d.ts +0 -0
@@ -20,7 +20,7 @@ import {
20
20
  __spreadProps,
21
21
  __spreadValues,
22
22
  cn
23
- } from "./chunk-WIGSRHUG.mjs";
23
+ } from "./chunk-XZVGHKMW.mjs";
24
24
 
25
25
  // src/geo-block-banner/index.tsx
26
26
  import { useLabels } from "@agg-build/hooks";
@@ -19,7 +19,7 @@ import {
19
19
  selectPrimaryVenueMarket,
20
20
  skeletonViews,
21
21
  sortOutcomes
22
- } from "./chunk-WIGSRHUG.mjs";
22
+ } from "./chunk-XZVGHKMW.mjs";
23
23
 
24
24
  // src/trading/trading-context/index.tsx
25
25
  import { useEventTradingContext } from "@agg-build/hooks";
@@ -855,13 +855,17 @@ var resolveInitialEventDetailsChartRange = ({
855
855
  nowSec = dayjs2().unix(),
856
856
  selectedMarket
857
857
  }) => {
858
- var _a, _b;
858
+ var _a;
859
859
  const scopedMarkets = selectedMarket ? [selectedMarket] : event.venueMarkets;
860
- const preferredEventStart = (_a = toUnixTimestamp(event.startDate)) != null ? _a : toUnixTimestamp(event.creationDate);
861
- const marketStartCandidates = scopedMarkets.map((market) => {
862
- var _a2;
863
- return (_a2 = toUnixTimestamp(market.startDate)) != null ? _a2 : toUnixTimestamp(market.creationDate);
864
- }).filter((value) => value != null);
860
+ const resolveHistoryStart = (startDate, creationDate) => {
861
+ const start = toUnixTimestamp(startDate);
862
+ if (start != null && start <= nowSec) return start;
863
+ const created = toUnixTimestamp(creationDate);
864
+ if (created != null && created <= nowSec) return created;
865
+ return null;
866
+ };
867
+ const preferredEventStart = resolveHistoryStart(event.startDate, event.creationDate);
868
+ const marketStartCandidates = scopedMarkets.map((market) => resolveHistoryStart(market.startDate, market.creationDate)).filter((value) => value != null);
865
869
  const metadataStarts = [preferredEventStart, ...marketStartCandidates].filter(
866
870
  (value) => value != null
867
871
  );
@@ -899,7 +903,7 @@ var resolveInitialEventDetailsChartRange = ({
899
903
  const matchingRange = CHART_RANGE_PRIORITY.find((range) => {
900
904
  return RANGE_SECONDS_BY_TIME_RANGE[range] >= requiredSeconds;
901
905
  });
902
- return (_b = matchingRange != null ? matchingRange : fallbackRange) != null ? _b : "ALL";
906
+ return (_a = matchingRange != null ? matchingRange : fallbackRange) != null ? _a : "ALL";
903
907
  };
904
908
  var matchOutcomeByLabel = (outcome, selectedOutcomeLabel) => {
905
909
  const normalizedSelectedLabel = normalizeLabel(selectedOutcomeLabel);
@@ -6218,7 +6218,8 @@ var RemoteImage = ({
6218
6218
  width,
6219
6219
  height,
6220
6220
  onClick,
6221
- ariaLabel
6221
+ ariaLabel,
6222
+ fallback
6222
6223
  }) => {
6223
6224
  const {
6224
6225
  general: { theme }
@@ -6275,7 +6276,7 @@ var RemoteImage = ({
6275
6276
  className: cn(placeholderClasses, classNames == null ? void 0 : classNames.placeholder),
6276
6277
  "aria-hidden": true,
6277
6278
  "aria-errormessage": "Image failed to load",
6278
- children: /* @__PURE__ */ jsx109(
6279
+ children: fallback != null ? fallback : /* @__PURE__ */ jsx109(
6279
6280
  Icon,
6280
6281
  {
6281
6282
  name: "image",
@@ -6,12 +6,12 @@ import {
6
6
  EventOpenOrdersCard,
7
7
  formatRecurringCountdown,
8
8
  useEventOpenOrders
9
- } from "./chunk-HFL3CEWG.mjs";
10
- import "./chunk-2UPO6G3S.mjs";
11
- import "./chunk-2OBJ7DYT.mjs";
12
- import "./chunk-JJ3VVCEP.mjs";
13
- import "./chunk-NRPS2D3Q.mjs";
14
- import "./chunk-WIGSRHUG.mjs";
9
+ } from "./chunk-NSQQ62QK.mjs";
10
+ import "./chunk-DWPBGMVJ.mjs";
11
+ import "./chunk-5YHKIJ23.mjs";
12
+ import "./chunk-WOCZ4TVT.mjs";
13
+ import "./chunk-ROA5K67W.mjs";
14
+ import "./chunk-XZVGHKMW.mjs";
15
15
  export {
16
16
  EventMarketPage,
17
17
  EventOpenOrders,
package/dist/events.js CHANGED
@@ -5073,7 +5073,8 @@ var RemoteImage = ({
5073
5073
  width,
5074
5074
  height,
5075
5075
  onClick,
5076
- ariaLabel
5076
+ ariaLabel,
5077
+ fallback
5077
5078
  }) => {
5078
5079
  const {
5079
5080
  general: { theme }
@@ -5130,7 +5131,7 @@ var RemoteImage = ({
5130
5131
  className: cn(placeholderClasses, classNames == null ? void 0 : classNames.placeholder),
5131
5132
  "aria-hidden": true,
5132
5133
  "aria-errormessage": "Image failed to load",
5133
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5134
+ children: fallback != null ? fallback : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5134
5135
  Icon,
5135
5136
  {
5136
5137
  name: "image",
@@ -9530,6 +9531,7 @@ var EventListItemContent = ({
9530
9531
  src: (0, import_hooks36.optimizedImageUrl)(resolvedImage, 40),
9531
9532
  retinaSrc: (0, import_hooks36.retinaImageUrl)(resolvedImage, 40),
9532
9533
  alt: "",
9534
+ fallback: event.venue ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(VenueLogo, { venue: event.venue, size: "medium" }) : void 0,
9533
9535
  classNames: {
9534
9536
  root: "agg-event-image h-10 w-10 shrink-0 rounded-agg-lg object-cover",
9535
9537
  image: "transition-transform duration-300 group-hover/agg-event-card:scale-110"
@@ -10006,13 +10008,17 @@ var resolveInitialEventDetailsChartRange = ({
10006
10008
  nowSec = (0, import_dayjs3.default)().unix(),
10007
10009
  selectedMarket
10008
10010
  }) => {
10009
- var _a, _b;
10011
+ var _a;
10010
10012
  const scopedMarkets = selectedMarket ? [selectedMarket] : event.venueMarkets;
10011
- const preferredEventStart = (_a = toUnixTimestamp(event.startDate)) != null ? _a : toUnixTimestamp(event.creationDate);
10012
- const marketStartCandidates = scopedMarkets.map((market) => {
10013
- var _a2;
10014
- return (_a2 = toUnixTimestamp(market.startDate)) != null ? _a2 : toUnixTimestamp(market.creationDate);
10015
- }).filter((value) => value != null);
10013
+ const resolveHistoryStart = (startDate, creationDate) => {
10014
+ const start = toUnixTimestamp(startDate);
10015
+ if (start != null && start <= nowSec) return start;
10016
+ const created = toUnixTimestamp(creationDate);
10017
+ if (created != null && created <= nowSec) return created;
10018
+ return null;
10019
+ };
10020
+ const preferredEventStart = resolveHistoryStart(event.startDate, event.creationDate);
10021
+ const marketStartCandidates = scopedMarkets.map((market) => resolveHistoryStart(market.startDate, market.creationDate)).filter((value) => value != null);
10016
10022
  const metadataStarts = [preferredEventStart, ...marketStartCandidates].filter(
10017
10023
  (value) => value != null
10018
10024
  );
@@ -10050,7 +10056,7 @@ var resolveInitialEventDetailsChartRange = ({
10050
10056
  const matchingRange = CHART_RANGE_PRIORITY.find((range) => {
10051
10057
  return RANGE_SECONDS_BY_TIME_RANGE[range] >= requiredSeconds;
10052
10058
  });
10053
- return (_b = matchingRange != null ? matchingRange : fallbackRange) != null ? _b : "ALL";
10059
+ return (_a = matchingRange != null ? matchingRange : fallbackRange) != null ? _a : "ALL";
10054
10060
  };
10055
10061
  var matchOutcomeByLabel = (outcome, selectedOutcomeLabel) => {
10056
10062
  const normalizedSelectedLabel = normalizeLabel(selectedOutcomeLabel);
@@ -13597,6 +13603,20 @@ var EventListItemDetailsContent = ({
13597
13603
  resolvedEventTradingState.isTradingDisabled ? [] : resolvedEventTradingState.displayMarkets,
13598
13604
  scopedSelectedMarketId
13599
13605
  );
13606
+ const selectedBetdexOutcomes = (0, import_react23.useMemo)(
13607
+ () => eventDetailVenueMarkets.filter((market) => market.venue === "betdex").flatMap(
13608
+ (market) => market.venueMarketOutcomes.map((outcome) => ({
13609
+ venue: market.venue,
13610
+ venueMarketOutcomeId: outcome.id
13611
+ }))
13612
+ ),
13613
+ [eventDetailVenueMarkets]
13614
+ );
13615
+ (0, import_hooks51.useMarketOrderbook)({
13616
+ venueOutcomes: selectedBetdexOutcomes,
13617
+ enabled: !resolvedEventTradingState.isTradingDisabled && selectedBetdexOutcomes.length > 0,
13618
+ live: false
13619
+ });
13600
13620
  const wsLivePrices = (0, import_hooks51.useLiveOutcomePrices)(eventDetailVenueMarkets);
13601
13621
  const wsBestPrices = (0, import_hooks51.useLiveBestPrices)(eventDetailVenueMarkets);
13602
13622
  const resolvedMidpointsResult = midpointsResult != null ? midpointsResult : {
@@ -13734,6 +13754,7 @@ var EventListItemDetailsContent = ({
13734
13754
  src: (0, import_hooks51.optimizedImageUrl)(event.image, 60),
13735
13755
  retinaSrc: (0, import_hooks51.retinaImageUrl)(event.image, 60),
13736
13756
  alt: "",
13757
+ fallback: event.venue ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(VenueLogo, { venue: event.venue, size: "large" }) : void 0,
13737
13758
  className: "agg-event-image size-10 rounded-agg-lg object-cover md:size-[60px]"
13738
13759
  }
13739
13760
  ),
@@ -13885,7 +13906,7 @@ var EventListItemDetailsContent = ({
13885
13906
  selectedOutcomeId: (tradingContext == null ? void 0 : tradingContext.selectedEventId) === event.id ? tradingContext.selectedOutcomeId : (_f = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venueMarketOutcomes[0]) == null ? void 0 : _f.id,
13886
13907
  eventEndDate: event.endDate,
13887
13908
  contractWindow,
13888
- range: config.chart.selectedChartTimeRange,
13909
+ range: chartRangeOverride != null ? chartRangeOverride : config.chart.selectedChartTimeRange,
13889
13910
  live: !resolvedEventTradingState.isTradingDisabled && config.features.enableLiveUpdates
13890
13911
  },
13891
13912
  event.id
@@ -13935,7 +13956,7 @@ var EventListItemDetailsContent = ({
13935
13956
  ) : null,
13936
13957
  !contractWindow ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("span", { "aria-hidden": "true", className: "hidden h-4 w-px bg-agg-separator md:block" }) : null,
13937
13958
  !contractWindow && import_hooks51.CHART_TIME_RANGES.map((timeRange) => {
13938
- const effectiveRange = chartView === "all" ? config.chart.selectedChartTimeRange : chartRangeOverride != null ? chartRangeOverride : config.chart.selectedChartTimeRange;
13959
+ const effectiveRange = chartRangeOverride != null ? chartRangeOverride : config.chart.selectedChartTimeRange;
13939
13960
  const isActive = timeRange === effectiveRange;
13940
13961
  return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
13941
13962
  Button,
@@ -15385,6 +15406,13 @@ var MarketDetailsContent = ({
15385
15406
  labels
15386
15407
  });
15387
15408
  }, [config.formatting.formatCompactCurrency, venueMarkets, image, labels, marketId, title2]);
15409
+ const primaryVenue = (0, import_react28.useMemo)(
15410
+ () => {
15411
+ var _a2, _b2;
15412
+ return (_b2 = (_a2 = venueMarkets.find((venueMarket) => venueMarket.id === marketId)) != null ? _a2 : venueMarkets[0]) == null ? void 0 : _b2.venue;
15413
+ },
15414
+ [venueMarkets, marketId]
15415
+ );
15388
15416
  const livePrices = (0, import_react28.useMemo)(() => {
15389
15417
  const merged = /* @__PURE__ */ new Map();
15390
15418
  if (midpointsFallback == null ? void 0 : midpointsFallback.size) {
@@ -15591,6 +15619,26 @@ var MarketDetailsContent = ({
15591
15619
  });
15592
15620
  }, [model, selectedOutcomeLabel, selectedOutcomeId]);
15593
15621
  const orderBookEnabled = isOpened && effectiveSelectedTab === "order-book" && !marketTradingState.isTradingDisabled;
15622
+ const betdexSeedOutcomes = (0, import_react28.useMemo)(
15623
+ () => {
15624
+ var _a2;
15625
+ return ((_a2 = model == null ? void 0 : model.market.venueMarkets) != null ? _a2 : []).filter((venueMarket) => venueMarket.venue === "betdex").flatMap(
15626
+ (venueMarket) => {
15627
+ var _a3;
15628
+ return ((_a3 = venueMarket.venueMarketOutcomes) != null ? _a3 : []).map((outcome) => ({
15629
+ venue: venueMarket.venue,
15630
+ venueMarketOutcomeId: outcome.id
15631
+ }));
15632
+ }
15633
+ );
15634
+ },
15635
+ [model]
15636
+ );
15637
+ (0, import_hooks55.useMarketOrderbook)({
15638
+ venueOutcomes: betdexSeedOutcomes,
15639
+ enabled: !orderBookEnabled && !marketTradingState.isTradingDisabled && betdexSeedOutcomes.length > 0,
15640
+ live: false
15641
+ });
15594
15642
  const selectedVenueOutcome = selectedOutcomesByVenue.find(
15595
15643
  (item) => item.outcomeId === selectedOutcomeId
15596
15644
  );
@@ -15785,6 +15833,7 @@ var MarketDetailsContent = ({
15785
15833
  src: (0, import_hooks55.optimizedImageUrl)(model.image, 60),
15786
15834
  retinaSrc: (0, import_hooks55.retinaImageUrl)(model.image, 60),
15787
15835
  alt: "",
15836
+ fallback: primaryVenue ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(VenueLogo, { venue: primaryVenue, size: "large" }) : void 0,
15788
15837
  className: "agg-market-image size-12 rounded-agg-lg object-cover md:size-[60px]"
15789
15838
  }
15790
15839
  ) : null,
package/dist/events.mjs CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  EventList,
5
5
  EventListItem,
6
6
  EventListItemV2
7
- } from "./chunk-VUZ72Q7H.mjs";
7
+ } from "./chunk-DXASFSVL.mjs";
8
8
  import {
9
9
  EventListItemDetails,
10
10
  MarketDetails,
@@ -19,13 +19,13 @@ import {
19
19
  orderbookRowLimitDefault,
20
20
  resolveEventDetailsSyncKey,
21
21
  useCenterOrderbookSpread
22
- } from "./chunk-2UPO6G3S.mjs";
22
+ } from "./chunk-DWPBGMVJ.mjs";
23
23
  import {
24
24
  formatProbabilityCents,
25
25
  resolveOrderBookRows,
26
26
  resolveUnifiedOrderBookEntries
27
- } from "./chunk-JJ3VVCEP.mjs";
28
- import "./chunk-WIGSRHUG.mjs";
27
+ } from "./chunk-WOCZ4TVT.mjs";
28
+ import "./chunk-XZVGHKMW.mjs";
29
29
  export {
30
30
  EventList,
31
31
  EventListItem,