@agg-build/ui 2.1.2 → 2.1.4

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 (65) hide show
  1. package/dist/{chunk-ZOECARZW.mjs → chunk-BW7S2YR3.mjs} +798 -312
  2. package/dist/{chunk-7ZR5JYB3.mjs → chunk-FLESSOSU.mjs} +2077 -533
  3. package/dist/{chunk-5RBHMMY3.mjs → chunk-R2YNZJZ3.mjs} +69 -27
  4. package/dist/{chunk-75AMJAWR.mjs → chunk-T4YZGAYS.mjs} +22 -1
  5. package/dist/{chunk-JJDYOBVG.mjs → chunk-TBZWRUFB.mjs} +654 -560
  6. package/dist/{chunk-TBD3N4T4.mjs → chunk-VP76G6PN.mjs} +41 -41
  7. package/dist/{chunk-NRNBJPYK.mjs → chunk-XHE2VO3S.mjs} +4 -21
  8. package/dist/events.js +776 -638
  9. package/dist/events.mjs +5 -3
  10. package/dist/index.js +5665 -3867
  11. package/dist/index.mjs +112 -455
  12. package/dist/modals.mjs +3 -3
  13. package/dist/pages.js +8330 -6452
  14. package/dist/pages.mjs +6 -6
  15. package/dist/primitives.js +40 -41
  16. package/dist/primitives.mjs +1 -1
  17. package/dist/styles.css +1 -1
  18. package/dist/tailwind.css +1 -1
  19. package/dist/trading.js +652 -415
  20. package/dist/trading.mjs +4 -4
  21. package/dist/types/events/item/event-list-item.utils.d.mts +1 -25
  22. package/dist/types/events/item/event-list-item.utils.d.ts +1 -25
  23. package/dist/types/events/item-details/index.d.mts +2 -1
  24. package/dist/types/events/item-details/index.d.ts +2 -1
  25. package/dist/types/events/market-details/market-details-graph-panel.d.mts +39 -0
  26. package/dist/types/events/market-details/market-details-graph-panel.d.ts +39 -0
  27. package/dist/types/events/market-details/market-details-outcome-button.d.mts +2 -1
  28. package/dist/types/events/market-details/market-details-outcome-button.d.ts +2 -1
  29. package/dist/types/events/market-details/market-details.types.d.mts +31 -0
  30. package/dist/types/events/market-details/market-details.types.d.ts +31 -0
  31. package/dist/types/events/market-details/market-details.utils.d.mts +3 -16
  32. package/dist/types/events/market-details/market-details.utils.d.ts +3 -16
  33. package/dist/types/events/shared/format-event-title.d.mts +1 -2
  34. package/dist/types/events/shared/format-event-title.d.ts +1 -2
  35. package/dist/types/events/shared/format-sports-event-time.d.mts +2 -0
  36. package/dist/types/events/shared/format-sports-event-time.d.ts +2 -0
  37. package/dist/types/notifications/agg-notification-events-provider.d.mts +10 -1
  38. package/dist/types/notifications/agg-notification-events-provider.d.ts +10 -1
  39. package/dist/types/pages/event-market/event-market.shared.d.mts +30 -0
  40. package/dist/types/pages/event-market/event-market.shared.d.ts +30 -0
  41. package/dist/types/pages/event-market/sports-event-market-page.d.mts +8 -0
  42. package/dist/types/pages/event-market/sports-event-market-page.d.ts +8 -0
  43. package/dist/types/pages/event-market/sports-event-market.fixtures.d.mts +13 -0
  44. package/dist/types/pages/event-market/sports-event-market.fixtures.d.ts +13 -0
  45. package/dist/types/pages/event-market/sports-event-market.utils.d.mts +156 -0
  46. package/dist/types/pages/event-market/sports-event-market.utils.d.ts +156 -0
  47. package/dist/types/pages/event-market/sports-line-rail.d.mts +17 -0
  48. package/dist/types/pages/event-market/sports-line-rail.d.ts +17 -0
  49. package/dist/types/pages/event-market/sports-market-card.d.mts +22 -0
  50. package/dist/types/pages/event-market/sports-market-card.d.ts +22 -0
  51. package/dist/types/pages/event-market/sports-markets.d.mts +13 -0
  52. package/dist/types/pages/event-market/sports-markets.d.ts +13 -0
  53. package/dist/types/primitives/search/search.utils.d.mts +1 -3
  54. package/dist/types/primitives/search/search.utils.d.ts +1 -3
  55. package/dist/types/primitives/state-message/index.d.mts +1 -1
  56. package/dist/types/primitives/state-message/index.d.ts +1 -1
  57. package/dist/types/primitives/state-message/state-message.types.d.mts +1 -1
  58. package/dist/types/primitives/state-message/state-message.types.d.ts +1 -1
  59. package/dist/types/trading/place-order/index.d.mts +1 -1
  60. package/dist/types/trading/place-order/index.d.ts +1 -1
  61. package/dist/types/trading/place-order/index.place-order.types.d.mts +7 -0
  62. package/dist/types/trading/place-order/index.place-order.types.d.ts +7 -0
  63. package/dist/types/trading/settlement/settlement-text.utils.d.mts +5 -2
  64. package/dist/types/trading/settlement/settlement-text.utils.d.ts +5 -2
  65. package/package.json +3 -3
@@ -17,7 +17,7 @@ import {
17
17
  selectPrimaryVenueMarket,
18
18
  skeletonViews,
19
19
  sortOutcomes
20
- } from "./chunk-TBD3N4T4.mjs";
20
+ } from "./chunk-VP76G6PN.mjs";
21
21
 
22
22
  // src/trading/trading-context/index.tsx
23
23
  import { useEventTradingContext } from "@agg-build/hooks";
@@ -205,7 +205,6 @@ var normalizeSettlementForCompare = (input) => {
205
205
  };
206
206
  var dedupeSettlementSources = (sources) => {
207
207
  const order = ["eventDescription", "marketDescription", "primaryRules"];
208
- const seen = /* @__PURE__ */ new Set();
209
208
  const result = [];
210
209
  for (const key of order) {
211
210
  const value = sources[key];
@@ -214,11 +213,13 @@ var dedupeSettlementSources = (sources) => {
214
213
  if (!trimmed) continue;
215
214
  const fingerprint = normalizeSettlementForCompare(trimmed);
216
215
  if (!fingerprint) continue;
217
- if (seen.has(fingerprint)) continue;
218
- seen.add(fingerprint);
219
- result.push({ key, content: trimmed });
216
+ if (result.some((block) => block.fingerprint.includes(fingerprint))) continue;
217
+ for (let i = result.length - 1; i >= 0; i -= 1) {
218
+ if (fingerprint.includes(result[i].fingerprint)) result.splice(i, 1);
219
+ }
220
+ result.push({ key, content: trimmed, fingerprint });
220
221
  }
221
- return result;
222
+ return result.map(({ key, content }) => ({ key, content }));
222
223
  };
223
224
 
224
225
  // src/trading/settlement/settlement-text-renderer.tsx
@@ -780,6 +781,42 @@ var resolveDisplayOutcomeLabels = (labels) => {
780
781
  (label) => labels.some((value) => normalizeLabel2(value) === normalizeLabel2(label))
781
782
  );
782
783
  };
784
+ var TRAILING_LINE_VALUE_PATTERN = /^(.*?)(\s+[+-]?\d+(?:\.\d+)?)$/;
785
+ var resolveLineOutcomeDisplayParts = (label, title) => {
786
+ var _a, _b;
787
+ const sourceText = (title == null ? void 0 : title.trim()) || label.trim();
788
+ const match = TRAILING_LINE_VALUE_PATTERN.exec(sourceText);
789
+ if (!match) {
790
+ return {
791
+ title: (title == null ? void 0 : title.trim()) || null,
792
+ lineLabel: null
793
+ };
794
+ }
795
+ const baseTitle = ((_a = match[1]) == null ? void 0 : _a.trim()) || null;
796
+ const lineLabel = ((_b = match[2]) == null ? void 0 : _b.trim()) || null;
797
+ return {
798
+ title: baseTitle,
799
+ lineLabel
800
+ };
801
+ };
802
+ var formatScopedLineValue = (value) => {
803
+ return Number.isInteger(value) ? String(value) : value.toFixed(1);
804
+ };
805
+ var resolveScopedMarketLineLabel = ({
806
+ outcomeIndex,
807
+ scopedMarket
808
+ }) => {
809
+ var _a;
810
+ const lineValue = scopedMarket == null ? void 0 : scopedMarket.lineValue;
811
+ if (lineValue == null) return null;
812
+ const sportsMarketType = normalizeLabel2((_a = scopedMarket == null ? void 0 : scopedMarket.sportsMarketType) != null ? _a : "");
813
+ if (sportsMarketType === "spread") {
814
+ const directionalLineValue = outcomeIndex === 0 ? lineValue : lineValue * -1;
815
+ const prefix = directionalLineValue > 0 ? "+" : "";
816
+ return `${prefix}${formatScopedLineValue(directionalLineValue)}`;
817
+ }
818
+ return formatScopedLineValue(lineValue);
819
+ };
783
820
  var resolveMarketDetailsOutcomeLabels = (venueMarkets) => {
784
821
  var _a;
785
822
  const primaryMarket = selectPrimaryVenueMarket(venueMarkets);
@@ -832,12 +869,12 @@ var resolveScopedSelectedOutcome = ({
832
869
  outcomeLabel: matchingOutcome.label
833
870
  };
834
871
  }
835
- if (suppressFallbackWhenSelectedOutcomeOutOfScope) {
836
- return {
837
- outcomeId: null,
838
- outcomeLabel: void 0
839
- };
840
- }
872
+ }
873
+ if (suppressFallbackWhenSelectedOutcomeOutOfScope) {
874
+ return {
875
+ outcomeId: null,
876
+ outcomeLabel: void 0
877
+ };
841
878
  }
842
879
  const outcomeLabels = resolveDisplayOutcomeLabels(
843
880
  resolveMarketDetailsOutcomeLabels(venueMarkets).map((outcome) => outcome.label)
@@ -875,28 +912,36 @@ var resolveOutcomeTone = (label, index) => {
875
912
  }
876
913
  return index === 0 ? "positive" : "negative";
877
914
  };
878
- var resolveHeaderOutcomeItems = (venueMarkets, scopedMarket) => {
915
+ var resolveHeaderOutcomeItems = (venueMarkets, scopedMarket, variant) => {
879
916
  const outcomes = resolveMarketDetailsOutcomeLabels(venueMarkets);
880
917
  const labels = resolveDisplayOutcomeLabels(outcomes.map((outcome) => outcome.label));
881
918
  const probabilityByLabel = resolveAverageProbabilityByLabel(venueMarkets, labels);
882
- return labels.slice(0, 2).map((label, index) => {
883
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
919
+ return labels.map((label, index) => {
920
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
884
921
  const scopedOutcome = (_a = scopedMarket == null ? void 0 : scopedMarket.venueMarketOutcomes) == null ? void 0 : _a.find(
885
922
  (outcome) => normalizeLabel2(outcome.label) === normalizeLabel2(label)
886
923
  );
887
924
  const scopedTitle = ((_b = scopedOutcome == null ? void 0 : scopedOutcome.title) == null ? void 0 : _b.trim()) || null;
888
925
  const fallbackTitle = (_d = (_c = outcomes.find((outcome) => normalizeLabel2(outcome.label) === normalizeLabel2(label))) == null ? void 0 : _c.title) != null ? _d : null;
889
- const title = scopedOutcome ? scopedTitle : fallbackTitle;
926
+ const resolvedTitle = scopedOutcome ? scopedTitle : fallbackTitle;
927
+ const lineDisplayParts = variant === "line" ? resolveLineOutcomeDisplayParts(label, resolvedTitle) : { title: resolvedTitle, lineLabel: null };
928
+ const fallbackLineLabel = variant === "line" ? resolveScopedMarketLineLabel({
929
+ outcomeIndex: index,
930
+ scopedMarket
931
+ }) : null;
932
+ const sportsMarketType = normalizeLabel2((_e = scopedMarket == null ? void 0 : scopedMarket.sportsMarketType) != null ? _e : "");
890
933
  const fallbackOutcomeByVenue = resolveOutcomesByVenue(venueMarkets, label)[0];
891
- const outcomeId = (_f = (_e = scopedOutcome == null ? void 0 : scopedOutcome.id) != null ? _e : fallbackOutcomeByVenue == null ? void 0 : fallbackOutcomeByVenue.outcome.id) != null ? _f : "";
892
- const venue = (_j = (_i = (_g = scopedMarket == null ? void 0 : scopedMarket.venue) != null ? _g : fallbackOutcomeByVenue == null ? void 0 : fallbackOutcomeByVenue.venue) != null ? _i : (_h = venueMarkets[0]) == null ? void 0 : _h.venue) != null ? _j : "polymarket";
934
+ const outcomeId = (_g = (_f = scopedOutcome == null ? void 0 : scopedOutcome.id) != null ? _f : fallbackOutcomeByVenue == null ? void 0 : fallbackOutcomeByVenue.outcome.id) != null ? _g : "";
935
+ const venue = (_k = (_j = (_h = scopedMarket == null ? void 0 : scopedMarket.venue) != null ? _h : fallbackOutcomeByVenue == null ? void 0 : fallbackOutcomeByVenue.venue) != null ? _j : (_i = venueMarkets[0]) == null ? void 0 : _i.venue) != null ? _k : "polymarket";
893
936
  return {
894
- title,
937
+ title: lineDisplayParts.title,
895
938
  id: outcomeId,
896
939
  venue,
897
940
  label,
941
+ lineLabel: sportsMarketType === "total" ? fallbackLineLabel != null ? fallbackLineLabel : lineDisplayParts.lineLabel : (_l = lineDisplayParts.lineLabel) != null ? _l : fallbackLineLabel,
898
942
  probability: probabilityByLabel.get(label),
899
- tone: resolveOutcomeTone(label, index)
943
+ tone: resolveOutcomeTone(label, index),
944
+ variant
900
945
  };
901
946
  });
902
947
  };
@@ -904,10 +949,9 @@ var resolveSubtitle = ({
904
949
  venueMarkets,
905
950
  volume,
906
951
  formatCompactCurrency,
907
- labels,
908
- tradableVenues
952
+ labels
909
953
  }) => {
910
- const { venueCount } = getVenueSummary(venueMarkets, { tradableVenues });
954
+ const { venueCount } = getVenueSummary(venueMarkets);
911
955
  const parts = [
912
956
  `${venueCount} ${venueCount === 1 ? labels.marketDetails.meta.venueSingular : labels.marketDetails.meta.venuePlural}`
913
957
  ];
@@ -955,8 +999,7 @@ var buildMarketDetailsModel = ({
955
999
  title,
956
1000
  image,
957
1001
  formatCompactCurrency,
958
- labels,
959
- tradableVenues
1002
+ labels
960
1003
  }) => {
961
1004
  var _a, _b, _c, _d;
962
1005
  const market = resolveMarketFromVenueMarkets(venueMarkets, marketId);
@@ -971,8 +1014,7 @@ var buildMarketDetailsModel = ({
971
1014
  venueMarkets: market.venueMarkets,
972
1015
  volume: resolvedVolume,
973
1016
  formatCompactCurrency,
974
- labels,
975
- tradableVenues
1017
+ labels
976
1018
  });
977
1019
  const outcomeLabels = resolveDisplayOutcomeLabels(
978
1020
  resolveMarketDetailsOutcomeLabels(market.venueMarkets).map((outcome) => outcome.label)
@@ -3,7 +3,7 @@ import {
3
3
  AGG_TERMS_OF_SERVICE_URL,
4
4
  Icon,
5
5
  cn
6
- } from "./chunk-TBD3N4T4.mjs";
6
+ } from "./chunk-VP76G6PN.mjs";
7
7
 
8
8
  // src/geo-block-banner/index.tsx
9
9
  import { useLabels } from "@agg-build/hooks";
@@ -33,6 +33,27 @@ var GeoBlockBanner = ({
33
33
  };
34
34
  GeoBlockBanner.displayName = "GeoBlockBanner";
35
35
 
36
+ // src/notifications/deposit-notification-events.ts
37
+ var AGG_DEPOSIT_NOTIFICATION_EVENT = "agg:deposit-notification";
38
+ var dispatchAggDepositNotification = (detail) => {
39
+ if (typeof window === "undefined") return;
40
+ window.dispatchEvent(new CustomEvent(AGG_DEPOSIT_NOTIFICATION_EVENT, { detail }));
41
+ };
42
+ var subscribeAggDepositNotification = (handler) => {
43
+ if (typeof window === "undefined") return () => {
44
+ };
45
+ const handleDepositNotification = (event) => {
46
+ if (!(event instanceof CustomEvent)) return;
47
+ handler(event.detail);
48
+ };
49
+ window.addEventListener(AGG_DEPOSIT_NOTIFICATION_EVENT, handleDepositNotification);
50
+ return () => {
51
+ window.removeEventListener(AGG_DEPOSIT_NOTIFICATION_EVENT, handleDepositNotification);
52
+ };
53
+ };
54
+
36
55
  export {
56
+ dispatchAggDepositNotification,
57
+ subscribeAggDepositNotification,
37
58
  GeoBlockBanner
38
59
  };