@agg-market/ui 3.0.0 → 4.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 (85) hide show
  1. package/dist/chart.js +18 -5
  2. package/dist/chart.mjs +2 -2
  3. package/dist/{chunk-LK5D3ZTK.mjs → chunk-3QLOUBDJ.mjs} +1 -1
  4. package/dist/{chunk-4KMFDCAH.mjs → chunk-3W7NBJLU.mjs} +2 -2
  5. package/dist/{chunk-KCPDVBIZ.mjs → chunk-4S3I6X7F.mjs} +14 -13
  6. package/dist/{chunk-OA2IZ3VW.mjs → chunk-5ADMXO3Y.mjs} +1 -1
  7. package/dist/{chunk-7NISYVSJ.mjs → chunk-6JG6I5AY.mjs} +1 -1
  8. package/dist/{chunk-TA7LKYKP.mjs → chunk-DCORNTCY.mjs} +1 -1
  9. package/dist/{chunk-QYZKC7KG.mjs → chunk-GNSPZ53C.mjs} +87 -86
  10. package/dist/{chunk-422MCIXV.mjs → chunk-HOXTJ742.mjs} +15 -11
  11. package/dist/{chunk-KFOATMAE.mjs → chunk-JNH64AKR.mjs} +32 -25
  12. package/dist/{chunk-DL7STJQ5.mjs → chunk-LA3FBBSJ.mjs} +3 -3
  13. package/dist/{chunk-CTVMT3VL.mjs → chunk-LCZKSITC.mjs} +2 -2
  14. package/dist/chunk-M4RJHRFT.mjs +445 -0
  15. package/dist/{chunk-D5FTFSKL.mjs → chunk-MBHTXNHX.mjs} +4 -4
  16. package/dist/{chunk-O46OFVH6.mjs → chunk-MJHKBCXQ.mjs} +2 -2
  17. package/dist/{chunk-2MJY6RVY.mjs → chunk-NH2G3POM.mjs} +1 -1
  18. package/dist/{chunk-BEDUFOIG.mjs → chunk-OH56VUYK.mjs} +6 -20
  19. package/dist/{chunk-BN5VVHNV.mjs → chunk-OJVTGNIF.mjs} +17 -4
  20. package/dist/{chunk-6425RRBI.mjs → chunk-P2PJBO5C.mjs} +1 -1
  21. package/dist/{chunk-D7JTOGYP.mjs → chunk-PORVP72S.mjs} +22 -2
  22. package/dist/{chunk-5GDNWQZS.mjs → chunk-QLMVKLNJ.mjs} +1 -1
  23. package/dist/{chunk-GHB3GOCW.mjs → chunk-QM7CGMFG.mjs} +5 -21
  24. package/dist/connect-button.js +22 -2
  25. package/dist/connect-button.mjs +2 -2
  26. package/dist/deposit-modal.js +22 -2
  27. package/dist/deposit-modal.mjs +2 -2
  28. package/dist/event-list-item-details.js +235 -243
  29. package/dist/event-list-item-details.mjs +7 -7
  30. package/dist/event-list-item.js +178 -210
  31. package/dist/event-list-item.mjs +4 -4
  32. package/dist/event-list.js +181 -225
  33. package/dist/event-list.mjs +5 -5
  34. package/dist/event-market-page.d.mts +1 -1
  35. package/dist/event-market-page.d.ts +1 -1
  36. package/dist/event-market-page.js +498 -576
  37. package/dist/event-market-page.mjs +11 -12
  38. package/dist/home-page.js +181 -225
  39. package/dist/home-page.mjs +6 -6
  40. package/dist/index.d.mts +3 -3
  41. package/dist/index.d.ts +3 -3
  42. package/dist/index.js +331 -347
  43. package/dist/index.mjs +21 -21
  44. package/dist/market-details.d.mts +1 -1
  45. package/dist/market-details.d.ts +1 -1
  46. package/dist/market-details.js +345 -417
  47. package/dist/market-details.mjs +7 -8
  48. package/dist/onboarding-modal.js +35 -14
  49. package/dist/onboarding-modal.mjs +2 -2
  50. package/dist/place-order.d.mts +1 -1
  51. package/dist/place-order.d.ts +1 -1
  52. package/dist/place-order.js +173 -191
  53. package/dist/place-order.mjs +3 -3
  54. package/dist/profile-modal.js +22 -2
  55. package/dist/profile-modal.mjs +2 -2
  56. package/dist/search.d.mts +1 -1
  57. package/dist/search.d.ts +1 -1
  58. package/dist/search.js +22 -2
  59. package/dist/search.mjs +2 -2
  60. package/dist/settlement.d.mts +1 -1
  61. package/dist/settlement.d.ts +1 -1
  62. package/dist/settlement.js +173 -191
  63. package/dist/settlement.mjs +3 -3
  64. package/dist/skeleton.js +151 -189
  65. package/dist/skeleton.mjs +1 -1
  66. package/dist/styles.css +1 -1
  67. package/dist/switch-button.js +2 -2
  68. package/dist/switch-button.mjs +1 -1
  69. package/dist/tailwind.css +1 -1
  70. package/dist/user-profile-page.d.mts +1 -1
  71. package/dist/user-profile-page.d.ts +1 -1
  72. package/dist/user-profile-page.js +22 -2
  73. package/dist/user-profile-page.mjs +2 -2
  74. package/dist/venue-logo.d.mts +3 -2
  75. package/dist/venue-logo.d.ts +3 -2
  76. package/dist/venue-logo.js +22 -2
  77. package/dist/venue-logo.mjs +1 -1
  78. package/dist/{venue-logo.types-HRf1yBLD.d.mts → venue-logo.types-CGUc22ly.d.mts} +3 -1
  79. package/dist/{venue-logo.types-D8Cu2rAm.d.ts → venue-logo.types-Dqr39S1-.d.ts} +3 -1
  80. package/dist/withdraw-modal.js +22 -2
  81. package/dist/withdraw-modal.mjs +2 -2
  82. package/package.json +2 -2
  83. package/dist/chunk-V52WSZHQ.mjs +0 -482
  84. package/dist/{types-JBf1DZlH.d.ts → types-DkGlbmXq.d.mts} +2 -2
  85. package/dist/{types-JBf1DZlH.d.mts → types-DkGlbmXq.d.ts} +2 -2
@@ -8,7 +8,7 @@ import {
8
8
  resolveOutcomeLabels,
9
9
  resolveOutcomesByVenue,
10
10
  resolveSeriesColor
11
- } from "./chunk-422MCIXV.mjs";
11
+ } from "./chunk-HOXTJ742.mjs";
12
12
  import {
13
13
  normalizeProbability,
14
14
  resolveEventListItemEvent,
@@ -16,7 +16,7 @@ import {
16
16
  resolveTileTitle,
17
17
  resolveVenueLabel,
18
18
  selectPrimaryVenueMarket
19
- } from "./chunk-GHB3GOCW.mjs";
19
+ } from "./chunk-QM7CGMFG.mjs";
20
20
  import {
21
21
  Badge
22
22
  } from "./chunk-K6IJ4WBM.mjs";
@@ -24,10 +24,10 @@ import {
24
24
  Skeleton,
25
25
  detailsBaseCardClassName,
26
26
  eventListItemDetailsTimeRanges
27
- } from "./chunk-V52WSZHQ.mjs";
27
+ } from "./chunk-M4RJHRFT.mjs";
28
28
  import {
29
29
  VenueLogo
30
- } from "./chunk-D7JTOGYP.mjs";
30
+ } from "./chunk-PORVP72S.mjs";
31
31
  import {
32
32
  Button
33
33
  } from "./chunk-KAGYJ4XT.mjs";
@@ -39,10 +39,10 @@ import {
39
39
  } from "./chunk-FO2QCB4Z.mjs";
40
40
  import {
41
41
  LineChart
42
- } from "./chunk-BN5VVHNV.mjs";
42
+ } from "./chunk-OJVTGNIF.mjs";
43
43
  import {
44
44
  SwitchButton
45
- } from "./chunk-CTVMT3VL.mjs";
45
+ } from "./chunk-LCZKSITC.mjs";
46
46
  import {
47
47
  __objRest,
48
48
  __spreadProps,
@@ -101,13 +101,18 @@ var resolveAverageProbability = (values) => {
101
101
  return validValues.reduce((sum, value) => sum + value, 0) / validValues.length;
102
102
  };
103
103
  var resolveOutcomeCandidateIds = (market, outcome) => {
104
- var _a;
105
- return [outcome.id, (_a = outcome.externalIdentifier) != null ? _a : void 0, market.externalIdentifier].filter(
106
- (value) => typeof value === "string" && value.trim().length > 0
107
- );
104
+ var _a, _b;
105
+ const marketWithCanonicalId = market;
106
+ return [
107
+ outcome.id,
108
+ (_a = outcome.externalIdentifier) != null ? _a : void 0,
109
+ market.externalIdentifier,
110
+ (_b = marketWithCanonicalId.marketId) != null ? _b : void 0
111
+ ].filter((value) => typeof value === "string" && value.trim().length > 0);
108
112
  };
109
113
  var EventListItemDetailsGraphSection = ({
110
114
  venueMarkets,
115
+ canonicalMarketId,
111
116
  selectedOutcomeLabel,
112
117
  onSelectedOutcomeLabelChange,
113
118
  switchLabels,
@@ -200,8 +205,8 @@ var EventListItemDetailsGraphSection = ({
200
205
  return [...outcomeByModeAndId.values()];
201
206
  }, [selectedOutcomesByMode]);
202
207
  const priceHistoryGroups = useMemo(() => {
203
- return buildPriceHistoryGroups(allOutcomesForHistory);
204
- }, [allOutcomesForHistory]);
208
+ return buildPriceHistoryGroups(allOutcomesForHistory, canonicalMarketId);
209
+ }, [allOutcomesForHistory, canonicalMarketId]);
205
210
  const timeWindow = useMemo(() => {
206
211
  return getTimeWindowByRange(selectedTimeRange);
207
212
  }, [selectedTimeRange]);
@@ -405,11 +410,12 @@ var EventListItemDetailsContent = ({
405
410
  ariaLabel,
406
411
  defaultTimeRange
407
412
  }) => {
413
+ var _a, _b;
408
414
  const config = useSdkUiConfig();
409
415
  const labels = useLabels();
410
416
  const venueMarkets = useMemo(() => {
411
- var _a, _b, _c;
412
- return (_c = (_b = (_a = event.markets) == null ? void 0 : _a[0]) == null ? void 0 : _b.venueMarkets) != null ? _c : [];
417
+ var _a2, _b2, _c;
418
+ return (_c = (_b2 = (_a2 = event.markets) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.venueMarkets) != null ? _c : [];
413
419
  }, [event.markets]);
414
420
  const primaryVenueMarket = useMemo(() => {
415
421
  return selectPrimaryVenueMarket(venueMarkets);
@@ -447,9 +453,9 @@ var EventListItemDetailsContent = ({
447
453
  if (outcomeLabels.length === 0)
448
454
  return void 0;
449
455
  return [...outcomeLabels].sort((left, right) => {
450
- var _a, _b;
451
- const leftProbability = (_a = probabilityByLabel.get(left)) != null ? _a : -1;
452
- const rightProbability = (_b = probabilityByLabel.get(right)) != null ? _b : -1;
456
+ var _a2, _b2;
457
+ const leftProbability = (_a2 = probabilityByLabel.get(left)) != null ? _a2 : -1;
458
+ const rightProbability = (_b2 = probabilityByLabel.get(right)) != null ? _b2 : -1;
453
459
  return rightProbability - leftProbability;
454
460
  })[0];
455
461
  }, [outcomeLabels, probabilityByLabel]);
@@ -465,18 +471,18 @@ var EventListItemDetailsContent = ({
465
471
  setSelectedOutcomeLabel(fallbackOutcomeLabel);
466
472
  }, [isDateOutcomeMarket, mainOutcomeLabel, outcomeLabels, selectedOutcomeLabel]);
467
473
  const switchLabels = useMemo(() => {
468
- var _a, _b;
474
+ var _a2, _b2;
469
475
  if (isDateOutcomeMarket) {
470
476
  return [labels.eventItemDetails.yes, labels.eventItemDetails.no];
471
477
  }
472
478
  const sortedOutcomeLabels = [...outcomeLabels].sort((left, right) => {
473
- var _a2, _b2;
474
- const leftProbability = (_a2 = probabilityByLabel.get(left)) != null ? _a2 : -1;
475
- const rightProbability = (_b2 = probabilityByLabel.get(right)) != null ? _b2 : -1;
479
+ var _a3, _b3;
480
+ const leftProbability = (_a3 = probabilityByLabel.get(left)) != null ? _a3 : -1;
481
+ const rightProbability = (_b3 = probabilityByLabel.get(right)) != null ? _b3 : -1;
476
482
  return rightProbability - leftProbability;
477
483
  });
478
- const firstLabel = (_a = sortedOutcomeLabels[0]) != null ? _a : labels.eventItemDetails.yes;
479
- const secondLabel = (_b = sortedOutcomeLabels.find((label) => label !== firstLabel)) != null ? _b : firstLabel;
484
+ const firstLabel = (_a2 = sortedOutcomeLabels[0]) != null ? _a2 : labels.eventItemDetails.yes;
485
+ const secondLabel = (_b2 = sortedOutcomeLabels.find((label) => label !== firstLabel)) != null ? _b2 : firstLabel;
480
486
  return [firstLabel, secondLabel];
481
487
  }, [
482
488
  isDateOutcomeMarket,
@@ -486,8 +492,8 @@ var EventListItemDetailsContent = ({
486
492
  probabilityByLabel
487
493
  ]);
488
494
  const volumeLabel = useMemo(() => {
489
- var _a;
490
- const resolvedVolume = typeof event.volume === "number" ? event.volume : (_a = primaryVenueMarket == null ? void 0 : primaryVenueMarket.volume) != null ? _a : void 0;
495
+ var _a2;
496
+ const resolvedVolume = typeof event.volume === "number" ? event.volume : (_a2 = primaryVenueMarket == null ? void 0 : primaryVenueMarket.volume) != null ? _a2 : void 0;
491
497
  if (typeof resolvedVolume !== "number")
492
498
  return "";
493
499
  return `${config.formatCompactCurrency(resolvedVolume)} ${labels.eventItemDetails.volumeSuffix}`;
@@ -585,6 +591,7 @@ var EventListItemDetailsContent = ({
585
591
  EventListItemDetailsGraphSection,
586
592
  {
587
593
  venueMarkets,
594
+ canonicalMarketId: (_b = (_a = event.markets) == null ? void 0 : _a[0]) == null ? void 0 : _b.id,
588
595
  selectedOutcomeLabel,
589
596
  onSelectedOutcomeLabelChange: setSelectedOutcomeLabel,
590
597
  switchLabels,
@@ -9,17 +9,17 @@ import {
9
9
  resolveVenueLabel,
10
10
  resolveVisibleOutcomes,
11
11
  selectPrimaryVenueMarket
12
- } from "./chunk-GHB3GOCW.mjs";
12
+ } from "./chunk-QM7CGMFG.mjs";
13
13
  import {
14
14
  Badge
15
15
  } from "./chunk-K6IJ4WBM.mjs";
16
16
  import {
17
17
  Skeleton,
18
18
  baseCardClassName
19
- } from "./chunk-V52WSZHQ.mjs";
19
+ } from "./chunk-M4RJHRFT.mjs";
20
20
  import {
21
21
  VenueLogo
22
- } from "./chunk-D7JTOGYP.mjs";
22
+ } from "./chunk-PORVP72S.mjs";
23
23
  import {
24
24
  Icon
25
25
  } from "./chunk-PZTHM6WG.mjs";
@@ -60,10 +60,10 @@ var SwitchButton = ({
60
60
  return null;
61
61
  }
62
62
  const handleKeyDown = (event, optionIndex) => {
63
- if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") {
63
+ if ((event == null ? void 0 : event.key) !== "ArrowLeft" && (event == null ? void 0 : event.key) !== "ArrowRight") {
64
64
  return;
65
65
  }
66
- event.preventDefault();
66
+ event == null ? void 0 : event.preventDefault();
67
67
  const nextOptionIndex = resolveNextEnabledIndex(
68
68
  options,
69
69
  optionIndex,
@@ -0,0 +1,445 @@
1
+ import {
2
+ Card
3
+ } from "./chunk-FO2QCB4Z.mjs";
4
+ import {
5
+ cn,
6
+ getMotionClassName
7
+ } from "./chunk-GJ4U5NCE.mjs";
8
+
9
+ // src/primitives/skeleton/views/event-list-skeleton-view.tsx
10
+ import { useLabels as useLabels2 } from "@agg-market/hooks";
11
+
12
+ // src/primitives/skeleton/skeleton-block.tsx
13
+ import { useSdkUiConfig } from "@agg-market/hooks";
14
+ import { jsx } from "react/jsx-runtime";
15
+ var SkeletonBlock = ({ className }) => {
16
+ const { enableAnimations } = useSdkUiConfig();
17
+ return /* @__PURE__ */ jsx(
18
+ "div",
19
+ {
20
+ "aria-hidden": true,
21
+ className: cn(
22
+ "bg-agg-separator",
23
+ getMotionClassName(enableAnimations, "animate-pulse"),
24
+ className
25
+ )
26
+ }
27
+ );
28
+ };
29
+ SkeletonBlock.displayName = "SkeletonBlock";
30
+
31
+ // src/primitives/skeleton/views/event-list-item-skeleton-view.tsx
32
+ import { useLabels } from "@agg-market/hooks";
33
+
34
+ // src/events/item/event-list-item.constants.ts
35
+ var baseCardClassName = "gap-3 overflow-hidden p-5 w-full";
36
+
37
+ // src/primitives/skeleton/views/event-list-item-skeleton-view.tsx
38
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
39
+ var EventListItemSkeletonView = ({
40
+ className,
41
+ ariaLabel,
42
+ isStandalone = false
43
+ }) => {
44
+ const labels = useLabels();
45
+ const outcomeTitleWidths = ["w-40", "w-[200px]"];
46
+ return /* @__PURE__ */ jsxs(
47
+ Card,
48
+ {
49
+ className: cn("group/agg-skeleton", baseCardClassName, className),
50
+ role: isStandalone ? "status" : void 0,
51
+ "aria-label": isStandalone ? ariaLabel != null ? ariaLabel : labels.eventItem.loading : void 0,
52
+ "aria-busy": isStandalone || void 0,
53
+ "aria-hidden": isStandalone ? void 0 : true,
54
+ children: [
55
+ /* @__PURE__ */ jsxs("div", { className: "flex h-14 w-full items-center gap-3 justify-stretch", children: [
56
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: "size-10! rounded-agg-lg" }),
57
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: "h-6 w-fit flex-1 rounded-agg-sm" })
58
+ ] }),
59
+ /* @__PURE__ */ jsx2("div", { className: "flex flex-col gap-3", children: outcomeTitleWidths.map((outcomeTitleWidth, index) => /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-3", children: [
60
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: cn("h-5 rounded-agg-sm", outcomeTitleWidth) }),
61
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: "h-9 w-[100px] rounded-agg-full" })
62
+ ] }, index)) }),
63
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-5 text-agg-muted-foreground", children: [
64
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
65
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: "h-5 w-[100px] rounded-agg-sm" }),
66
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
67
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: "size-[14px] rounded-agg-sm" }),
68
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: "size-[14px] rounded-agg-sm" })
69
+ ] })
70
+ ] }),
71
+ /* @__PURE__ */ jsx2(SkeletonBlock, { className: "h-5 w-[60px] rounded-agg-sm" })
72
+ ] })
73
+ ]
74
+ }
75
+ );
76
+ };
77
+ EventListItemSkeletonView.displayName = "EventListItemSkeletonView";
78
+
79
+ // src/primitives/skeleton/views/event-list-skeleton-view.tsx
80
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
81
+ var EventListSkeletonView = ({ className, ariaLabel }) => {
82
+ const labels = useLabels2();
83
+ return /* @__PURE__ */ jsxs2(
84
+ "section",
85
+ {
86
+ className: cn("group/agg-skeleton", "flex w-full flex-col gap-5", className),
87
+ role: "status",
88
+ "aria-label": ariaLabel != null ? ariaLabel : labels.eventList.loading("events"),
89
+ "aria-busy": true,
90
+ children: [
91
+ /* @__PURE__ */ jsxs2("header", { className: "flex w-full flex-col items-start justify-between gap-3 md:flex-row md:flex-nowrap md:items-center md:gap-5", children: [
92
+ /* @__PURE__ */ jsx3(SkeletonBlock, { className: "h-7 w-[120px] rounded-agg-md" }),
93
+ /* @__PURE__ */ jsx3(SkeletonBlock, { className: "h-8 w-full rounded-agg-md md:w-[400px]" })
94
+ ] }),
95
+ /* @__PURE__ */ jsx3("div", { className: "grid grid-cols-1 gap-5 md:grid-cols-3", children: Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ jsx3(
96
+ EventListItemSkeletonView,
97
+ {
98
+ isStandalone: false,
99
+ className: "w-full min-w-0 max-w-none"
100
+ },
101
+ index
102
+ )) })
103
+ ]
104
+ }
105
+ );
106
+ };
107
+ EventListSkeletonView.displayName = "EventListSkeletonView";
108
+
109
+ // src/primitives/skeleton/views/event-list-item-details-skeleton-view.tsx
110
+ import { useLabels as useLabels3 } from "@agg-market/hooks";
111
+
112
+ // src/events/item-details/event-list-item-details.constants.ts
113
+ var detailsBaseCardClassName = "w-full overflow-hidden gap-6 p-5 md:gap-8 md:p-10";
114
+ var eventListItemDetailsTimeRanges = [
115
+ "1H",
116
+ "6H",
117
+ "1D",
118
+ "1W",
119
+ "1M",
120
+ "ALL"
121
+ ];
122
+ var lineColorByVenue = {
123
+ polymarket: "#2e5cff",
124
+ kalshi: "#00d295",
125
+ probable: "#f05923",
126
+ opinion: "#020205"
127
+ };
128
+ var fallbackLineColors = ["#2e5cff", "#00d295", "#f05923", "#020205"];
129
+
130
+ // src/primitives/skeleton/views/event-list-item-details-skeleton-view.tsx
131
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
132
+ var EventListItemDetailsSkeletonView = ({
133
+ className,
134
+ ariaLabel
135
+ }) => {
136
+ const labels = useLabels3();
137
+ return /* @__PURE__ */ jsxs3(
138
+ Card,
139
+ {
140
+ className: cn("group/agg-skeleton", detailsBaseCardClassName, className),
141
+ role: "status",
142
+ "aria-label": ariaLabel != null ? ariaLabel : labels.eventItemDetails.loading,
143
+ "aria-busy": true,
144
+ children: [
145
+ /* @__PURE__ */ jsxs3("div", { className: "flex h-14 w-full items-center gap-3 justify-stretch", children: [
146
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "size-10! rounded-agg-lg" }),
147
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-6 w-fit flex-1 rounded-agg-sm" })
148
+ ] }),
149
+ /* @__PURE__ */ jsxs3("div", { className: "flex w-full flex-col gap-4 md:gap-6", children: [
150
+ /* @__PURE__ */ jsxs3("div", { className: "flex w-full flex-col gap-3 md:flex-row md:items-center md:justify-between", children: [
151
+ /* @__PURE__ */ jsxs3("div", { className: "flex max-w-full gap-2 overflow-hidden", children: [
152
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-9 w-[100px] rounded-agg-full" }),
153
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-9 w-[100px] rounded-agg-full" }),
154
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-9 w-[100px] rounded-agg-full" })
155
+ ] }),
156
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-9 w-full max-w-[221px] rounded-agg-full md:w-[221px]" })
157
+ ] }),
158
+ /* @__PURE__ */ jsxs3("div", { className: "flex w-full flex-col gap-3", children: [
159
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-[220px] w-full rounded-agg-xl md:h-[240px]" }),
160
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between", children: [
161
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-5 w-[59px] rounded-agg-sm" }),
162
+ /* @__PURE__ */ jsx4(SkeletonBlock, { className: "h-5 w-40 rounded-agg-sm" })
163
+ ] })
164
+ ] })
165
+ ] })
166
+ ]
167
+ }
168
+ );
169
+ };
170
+ EventListItemDetailsSkeletonView.displayName = "EventListItemDetailsSkeletonView";
171
+
172
+ // src/primitives/skeleton/views/market-details-skeleton-view.tsx
173
+ import { useLabels as useLabels4 } from "@agg-market/hooks";
174
+
175
+ // src/events/market-details/market-details.constants.ts
176
+ var marketDetailsBaseCardClassName = "w-full overflow-hidden rounded-agg-lg border border-agg-separator bg-agg-secondary text-agg-foreground shadow-none hover:shadow-none";
177
+ var getMarketDetailsTabs = (labels) => {
178
+ return [
179
+ { value: "order-book", label: labels.marketDetails.tabs.orderBook },
180
+ { value: "graph", label: labels.marketDetails.tabs.graph }
181
+ ];
182
+ };
183
+ var marketDetailsDefaultIsOpened = false;
184
+ var orderBookRowLimitDefault = 4;
185
+
186
+ // src/primitives/skeleton/views/market-details-skeleton-view.tsx
187
+ import { Fragment, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
188
+ var orderBookAskBarWidths = [
189
+ "w-[52px] md:w-[240px]",
190
+ "w-[48px] md:w-[200px]",
191
+ "w-[40px] md:w-[120px]",
192
+ "w-[36px] md:w-[60px]"
193
+ ];
194
+ var orderBookBidBarWidths = [
195
+ "w-[36px] md:w-[60px]",
196
+ "w-[40px] md:w-[120px]",
197
+ "w-[48px] md:w-[200px]",
198
+ "w-[52px] md:w-[240px]"
199
+ ];
200
+ var MarketDetailsHeaderSkeleton = () => {
201
+ return /* @__PURE__ */ jsxs4("div", { className: "flex flex-wrap items-center justify-between gap-3 px-4 py-3 md:px-5", children: [
202
+ /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-center gap-3 md:min-w-52 md:gap-4", children: [
203
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "size-12 rounded-agg-lg md:size-[60px]" }),
204
+ /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 flex-col gap-2", children: [
205
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-6 w-[132px] rounded-agg-sm" }),
206
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-4 w-[141px] rounded-agg-sm" })
207
+ ] })
208
+ ] }),
209
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-9 w-[60px] rounded-agg-md" }),
210
+ /* @__PURE__ */ jsxs4("div", { className: "flex w-full gap-2 md:w-auto", children: [
211
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-9 w-full rounded-agg-full md:w-[135px]" }),
212
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-9 w-full rounded-agg-full md:w-[131px]" })
213
+ ] })
214
+ ] });
215
+ };
216
+ var MarketDetailsTabsSkeleton = () => {
217
+ return /* @__PURE__ */ jsxs4("div", { className: "flex h-14 items-end px-4 md:px-5", children: [
218
+ /* @__PURE__ */ jsxs4("div", { className: "flex h-full flex-col items-end justify-end rounded-t-agg-lg", children: [
219
+ /* @__PURE__ */ jsx5("div", { className: "px-4 py-3", children: /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-6 w-20 rounded-agg-sm" }) }),
220
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-[3px] w-full rounded-t-agg-sm" })
221
+ ] }),
222
+ /* @__PURE__ */ jsxs4("div", { className: "flex h-full flex-col justify-center", children: [
223
+ /* @__PURE__ */ jsx5("div", { className: "px-4 py-3", children: /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-6 w-12 rounded-agg-sm" }) }),
224
+ /* @__PURE__ */ jsx5("div", { className: "h-[3px] w-full" })
225
+ ] })
226
+ ] });
227
+ };
228
+ var MarketDetailsOrderBookRows = ({
229
+ side,
230
+ barWidths
231
+ }) => {
232
+ return /* @__PURE__ */ jsx5("div", { className: "flex flex-col gap-2", children: barWidths.map((barWidthClassName, index) => /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2", children: [
233
+ /* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-[52px_1fr_1fr_52px] items-center gap-2 md:grid-cols-[88px_1fr_1fr_minmax(120px,220px)] md:gap-6", children: [
234
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-1 md:gap-3", children: [
235
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "size-4 rounded-agg-sm" }),
236
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-5 w-[60px] rounded-agg-sm" })
237
+ ] }),
238
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-5 rounded-agg-sm" }),
239
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-5 rounded-agg-sm" }),
240
+ /* @__PURE__ */ jsx5("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx5(SkeletonBlock, { className: cn("h-2 rounded-agg-full", barWidthClassName) }) })
241
+ ] }),
242
+ index < barWidths.length - 1 ? /* @__PURE__ */ jsx5("div", { className: "h-px w-full bg-agg-separator" }) : null
243
+ ] }, `${side}-row-${index}`)) });
244
+ };
245
+ var MarketDetailsOderbookSkeleton = ({
246
+ className
247
+ }) => {
248
+ return /* @__PURE__ */ jsxs4("div", { className: cn("flex flex-col gap-5", className), children: [
249
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2", children: [
250
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-4 w-10 rounded-agg-sm" }),
251
+ /* @__PURE__ */ jsx5(MarketDetailsOrderBookRows, { side: "ask", barWidths: orderBookAskBarWidths })
252
+ ] }),
253
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2", children: [
254
+ /* @__PURE__ */ jsx5(SkeletonBlock, { className: "h-4 w-10 rounded-agg-sm" }),
255
+ /* @__PURE__ */ jsx5(MarketDetailsOrderBookRows, { side: "bid", barWidths: orderBookBidBarWidths })
256
+ ] })
257
+ ] });
258
+ };
259
+ var MarketDetailsSkeletonView = ({
260
+ className,
261
+ ariaLabel,
262
+ isDetailed
263
+ }) => {
264
+ const labels = useLabels4();
265
+ return /* @__PURE__ */ jsxs4(
266
+ Card,
267
+ {
268
+ className: cn("group/agg-skeleton", marketDetailsBaseCardClassName, className),
269
+ role: "status",
270
+ "aria-label": ariaLabel != null ? ariaLabel : labels.marketDetails.loading,
271
+ "aria-busy": true,
272
+ children: [
273
+ /* @__PURE__ */ jsx5(MarketDetailsHeaderSkeleton, {}),
274
+ isDetailed ? /* @__PURE__ */ jsxs4(Fragment, { children: [
275
+ /* @__PURE__ */ jsx5("div", { className: "h-px w-full bg-agg-separator" }),
276
+ /* @__PURE__ */ jsx5(MarketDetailsTabsSkeleton, {}),
277
+ /* @__PURE__ */ jsx5("div", { className: "h-px w-full bg-agg-separator" }),
278
+ /* @__PURE__ */ jsx5(MarketDetailsOderbookSkeleton, { className: "p-5" })
279
+ ] }) : null
280
+ ]
281
+ }
282
+ );
283
+ };
284
+ MarketDetailsSkeletonView.displayName = "MarketDetailsSkeletonView";
285
+
286
+ // src/primitives/skeleton/views/place-order-skeleton-view.tsx
287
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
288
+ var placeOrderCardClassName = "overflow-hidden rounded-agg-xl border border-agg-border bg-agg-secondary shadow-none hover:shadow-none";
289
+ var TabsSkeletonBar = () => {
290
+ return /* @__PURE__ */ jsxs5("div", { className: "flex w-full items-end border-b border-agg-border", children: [
291
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col rounded-t-agg-lg", children: [
292
+ /* @__PURE__ */ jsx6("div", { className: "px-5 py-2", children: /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-6 w-10 rounded-agg-sm" }) }),
293
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-[3px] w-full rounded-t-agg-sm" })
294
+ ] }),
295
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col", children: [
296
+ /* @__PURE__ */ jsx6("div", { className: "px-5 py-2", children: /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-6 w-10 rounded-agg-sm" }) }),
297
+ /* @__PURE__ */ jsx6("div", { className: "h-[3px] w-full" })
298
+ ] })
299
+ ] });
300
+ };
301
+ var ContentBody = () => {
302
+ return /* @__PURE__ */ jsxs5("div", { className: cn("flex flex-col gap-6 p-5"), children: [
303
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-2", children: [
304
+ /* @__PURE__ */ jsxs5("div", { className: "flex min-w-0 items-center gap-3", children: [
305
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "size-12 shrink-0 rounded-agg-lg" }),
306
+ /* @__PURE__ */ jsxs5("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
307
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-4 w-[92%] max-w-[240px] rounded-agg-sm" }),
308
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-4 w-[64%] max-w-[160px] rounded-agg-sm" })
309
+ ] })
310
+ ] }),
311
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-6 w-[92px] rounded-agg-sm" }),
312
+ /* @__PURE__ */ jsx6(TabsSkeletonBar, {})
313
+ ] }),
314
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-4", children: [
315
+ /* @__PURE__ */ jsxs5("div", { className: "flex w-full gap-2", children: [
316
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-11 flex-1 rounded-agg-full" }),
317
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-11 flex-1 rounded-agg-full" })
318
+ ] }),
319
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between gap-4", children: [
320
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-2", children: [
321
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-5 w-[63px] rounded-agg-sm" }),
322
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-4 w-[118px] rounded-agg-sm" })
323
+ ] }),
324
+ /* @__PURE__ */ jsx6("p", { className: cn("text-agg-3xl font-agg-bold leading-agg-9 text-agg-separator"), children: "$0" })
325
+ ] })
326
+ ] }),
327
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-12 w-full rounded-agg-full" }),
328
+ /* @__PURE__ */ jsx6(SkeletonBlock, { className: "h-4 w-full max-w-[240px] self-center rounded-agg-sm" })
329
+ ] });
330
+ };
331
+ var PlaceOrderSkeletonView = ({
332
+ className,
333
+ ariaLabel
334
+ }) => {
335
+ return /* @__PURE__ */ jsx6(
336
+ "div",
337
+ {
338
+ className: cn("group/agg-skeleton", "w-full", className),
339
+ role: "status",
340
+ "aria-label": ariaLabel != null ? ariaLabel : "Loading place order",
341
+ "aria-busy": true,
342
+ children: /* @__PURE__ */ jsx6("div", { className: "flex w-full items-end justify-center", children: /* @__PURE__ */ jsx6(Card, { className: cn(placeOrderCardClassName, "w-full"), children: /* @__PURE__ */ jsx6(ContentBody, {}) }) })
343
+ }
344
+ );
345
+ };
346
+ PlaceOrderSkeletonView.displayName = "PlaceOrderSkeletonView";
347
+
348
+ // src/primitives/skeleton/views/settlement-skeleton-view.tsx
349
+ import { useLabels as useLabels5 } from "@agg-market/hooks";
350
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
351
+ var SettlementSkeletonView = ({
352
+ className,
353
+ ariaLabel
354
+ }) => {
355
+ const labels = useLabels5();
356
+ return /* @__PURE__ */ jsxs6(
357
+ Card,
358
+ {
359
+ className: cn(
360
+ "group/agg-skeleton",
361
+ "flex flex-col w-full gap-5 rounded-agg-xl border border-agg-separator bg-agg-secondary p-5 shadow-none hover:shadow-none",
362
+ className
363
+ ),
364
+ role: "status",
365
+ "aria-label": ariaLabel != null ? ariaLabel : labels.trading.settlementLoading,
366
+ "aria-busy": true,
367
+ children: [
368
+ /* @__PURE__ */ jsxs6("div", { className: "flex w-full items-center justify-between gap-4", children: [
369
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "h-4 w-[81px] rounded-agg-sm" }),
370
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "h-5 w-full max-w-[240px] rounded-agg-sm" })
371
+ ] }),
372
+ /* @__PURE__ */ jsxs6("div", { className: "flex w-full flex-col gap-3", children: [
373
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "h-5 w-[200px] rounded-agg-sm" }),
374
+ /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-2", children: [
375
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "h-4 w-full max-w-[320px] rounded-agg-sm" }),
376
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "h-4 w-full max-w-[280px] rounded-agg-sm" })
377
+ ] })
378
+ ] }),
379
+ /* @__PURE__ */ jsx7("div", { className: "h-px w-full bg-agg-separator" }),
380
+ /* @__PURE__ */ jsxs6("div", { className: "flex w-full flex-col gap-3", children: [
381
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
382
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "size-4 rounded-agg-sm" }),
383
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "h-5 w-[100px] rounded-agg-sm" })
384
+ ] }),
385
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
386
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "size-4 rounded-agg-sm" }),
387
+ /* @__PURE__ */ jsx7(SkeletonBlock, { className: "h-5 w-[60px] rounded-agg-sm" })
388
+ ] })
389
+ ] })
390
+ ]
391
+ }
392
+ );
393
+ };
394
+ SettlementSkeletonView.displayName = "SettlementSkeletonView";
395
+
396
+ // src/primitives/skeleton/skeleton.types.ts
397
+ var skeletonViews = {
398
+ eventListItem: "event-list-item",
399
+ eventListItemDetails: "event-list-item-details",
400
+ marketDetailsMinified: "market-details-minified",
401
+ marketDetailsDetailed: "market-details-detailed",
402
+ eventList: "event-list",
403
+ settlement: "settlement",
404
+ placeOrder: "place-order"
405
+ };
406
+
407
+ // src/primitives/skeleton/index.tsx
408
+ import { jsx as jsx8 } from "react/jsx-runtime";
409
+ var Skeleton = ({ view, className, ariaLabel }) => {
410
+ if (view === skeletonViews.eventListItem) {
411
+ return /* @__PURE__ */ jsx8(EventListItemSkeletonView, { className, ariaLabel, isStandalone: true });
412
+ }
413
+ if (view === skeletonViews.eventListItemDetails) {
414
+ return /* @__PURE__ */ jsx8(EventListItemDetailsSkeletonView, { className, ariaLabel });
415
+ }
416
+ if (view === skeletonViews.marketDetailsMinified) {
417
+ return /* @__PURE__ */ jsx8(MarketDetailsSkeletonView, { className, ariaLabel, isDetailed: false });
418
+ }
419
+ if (view === skeletonViews.marketDetailsDetailed) {
420
+ return /* @__PURE__ */ jsx8(MarketDetailsSkeletonView, { className, ariaLabel, isDetailed: true });
421
+ }
422
+ if (view === skeletonViews.settlement) {
423
+ return /* @__PURE__ */ jsx8(SettlementSkeletonView, { className, ariaLabel });
424
+ }
425
+ if (view === skeletonViews.placeOrder) {
426
+ return /* @__PURE__ */ jsx8(PlaceOrderSkeletonView, { className, ariaLabel });
427
+ }
428
+ return /* @__PURE__ */ jsx8(EventListSkeletonView, { className, ariaLabel });
429
+ };
430
+ Skeleton.displayName = "Skeleton";
431
+
432
+ export {
433
+ baseCardClassName,
434
+ detailsBaseCardClassName,
435
+ eventListItemDetailsTimeRanges,
436
+ lineColorByVenue,
437
+ fallbackLineColors,
438
+ marketDetailsBaseCardClassName,
439
+ getMarketDetailsTabs,
440
+ marketDetailsDefaultIsOpened,
441
+ orderBookRowLimitDefault,
442
+ MarketDetailsOderbookSkeleton,
443
+ skeletonViews,
444
+ Skeleton
445
+ };
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  Settlement
3
- } from "./chunk-4KMFDCAH.mjs";
3
+ } from "./chunk-3W7NBJLU.mjs";
4
4
  import {
5
5
  PlaceOrder
6
- } from "./chunk-O46OFVH6.mjs";
6
+ } from "./chunk-MJHKBCXQ.mjs";
7
7
  import {
8
8
  EventListItemDetails
9
- } from "./chunk-KFOATMAE.mjs";
9
+ } from "./chunk-JNH64AKR.mjs";
10
10
  import {
11
11
  MarketDetails
12
- } from "./chunk-QYZKC7KG.mjs";
12
+ } from "./chunk-GNSPZ53C.mjs";
13
13
  import {
14
14
  Typography
15
15
  } from "./chunk-ERGNR6UQ.mjs";
@@ -9,10 +9,10 @@ import {
9
9
  import {
10
10
  Skeleton,
11
11
  skeletonViews
12
- } from "./chunk-V52WSZHQ.mjs";
12
+ } from "./chunk-M4RJHRFT.mjs";
13
13
  import {
14
14
  VenueLogo
15
- } from "./chunk-D7JTOGYP.mjs";
15
+ } from "./chunk-PORVP72S.mjs";
16
16
  import {
17
17
  Icon
18
18
  } from "./chunk-PZTHM6WG.mjs";