@agg-market/ui 3.0.1 → 5.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.
- package/dist/chart.js +18 -5
- package/dist/chart.mjs +2 -2
- package/dist/{chunk-422MCIXV.mjs → chunk-34IRJYSU.mjs} +15 -11
- package/dist/{chunk-KUWTY4EM.mjs → chunk-3W7NBJLU.mjs} +1 -1
- package/dist/chunk-4343LYSH.mjs +45 -0
- package/dist/{chunk-RKCVOKE3.mjs → chunk-CTYJVVHJ.mjs} +26 -3
- package/dist/{chunk-MVJNQN7P.mjs → chunk-DHBHKIJR.mjs} +153 -94
- package/dist/{chunk-KRQFVMJE.mjs → chunk-GFBF2J3Y.mjs} +18 -25
- package/dist/{chunk-ZJJA4I3I.mjs → chunk-KIYMVWL4.mjs} +1 -1
- package/dist/{chunk-CTVMT3VL.mjs → chunk-LCZKSITC.mjs} +2 -2
- package/dist/chunk-M4RJHRFT.mjs +445 -0
- package/dist/{chunk-KSCSYCEF.mjs → chunk-MJHKBCXQ.mjs} +1 -1
- package/dist/{chunk-GHB3GOCW.mjs → chunk-MKVGQ7AS.mjs} +17 -21
- package/dist/{chunk-BN5VVHNV.mjs → chunk-OJVTGNIF.mjs} +17 -4
- package/dist/{chunk-FF3QYU26.mjs → chunk-Q6DGDBPV.mjs} +87 -26
- package/dist/{chunk-DCORNTCY.mjs → chunk-QDMHLRDY.mjs} +31 -62
- package/dist/{chunk-RGHA4PZH.mjs → chunk-T7TATHPD.mjs} +34 -10
- package/dist/chunk-XUCS575S.mjs +65 -0
- package/dist/event-list-item-details.js +1836 -407
- package/dist/event-list-item-details.mjs +10 -6
- package/dist/event-list-item.js +448 -279
- package/dist/event-list-item.mjs +6 -3
- package/dist/event-list.js +787 -627
- package/dist/event-list.mjs +7 -4
- package/dist/event-market-page.d.mts +1 -1
- package/dist/event-market-page.d.ts +1 -1
- package/dist/event-market-page.js +2684 -2572
- package/dist/event-market-page.mjs +12 -11
- package/dist/home-page.js +804 -644
- package/dist/home-page.mjs +8 -5
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1344 -1177
- package/dist/index.mjs +23 -18
- package/dist/market-details.js +919 -757
- package/dist/market-details.mjs +9 -7
- package/dist/place-order.d.mts +1 -1
- package/dist/place-order.d.ts +1 -1
- package/dist/place-order.js +151 -189
- package/dist/place-order.mjs +2 -2
- package/dist/search.js +3 -0
- package/dist/search.mjs +2 -1
- package/dist/settlement.d.mts +1 -1
- package/dist/settlement.d.ts +1 -1
- package/dist/settlement.js +151 -189
- package/dist/settlement.mjs +2 -2
- package/dist/skeleton.js +151 -189
- package/dist/skeleton.mjs +1 -1
- package/dist/state-message.d.mts +16 -0
- package/dist/state-message.d.ts +16 -0
- package/dist/state-message.js +1629 -0
- package/dist/state-message.mjs +14 -0
- package/dist/styles.css +1 -1
- package/dist/switch-button.js +2 -2
- package/dist/switch-button.mjs +1 -1
- package/dist/tailwind.css +1 -1
- package/package.json +14 -2
- package/dist/chunk-V52WSZHQ.mjs +0 -482
- package/dist/{types-DkGlbmXq.d.mts → types-BImwqY4o.d.mts} +4 -4
- package/dist/{types-DkGlbmXq.d.ts → types-BImwqY4o.d.ts} +4 -4
|
@@ -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,32 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
|
-
__spreadProps,
|
|
3
|
-
__spreadValues,
|
|
4
2
|
toDate
|
|
5
3
|
} from "./chunk-GJ4U5NCE.mjs";
|
|
6
4
|
|
|
5
|
+
// src/shared/query-error.ts
|
|
6
|
+
var getErrorStatus = (error) => {
|
|
7
|
+
if (!error || typeof error !== "object")
|
|
8
|
+
return null;
|
|
9
|
+
const status = error.status;
|
|
10
|
+
return typeof status === "number" ? status : null;
|
|
11
|
+
};
|
|
12
|
+
var isErrorWithStatus = (error, status) => {
|
|
13
|
+
return getErrorStatus(error) === status;
|
|
14
|
+
};
|
|
15
|
+
|
|
7
16
|
// src/events/item/event-list-item.utils.ts
|
|
8
17
|
var resolveEventListItemEvent = (fetchedEvent) => {
|
|
9
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
10
18
|
if (!fetchedEvent)
|
|
11
19
|
return void 0;
|
|
12
|
-
const fallbackVenueEvent = fetchedEvent.venueEvents[0];
|
|
13
|
-
if (!fallbackVenueEvent)
|
|
14
|
-
return void 0;
|
|
15
20
|
const mergedVenueMarkets = fetchedEvent.markets.flatMap(
|
|
16
|
-
(
|
|
21
|
+
(market) => market.venueMarkets
|
|
17
22
|
);
|
|
18
|
-
|
|
19
|
-
if ((venueMarkets == null ? void 0 : venueMarkets.length) === 0)
|
|
23
|
+
if (mergedVenueMarkets.length === 0)
|
|
20
24
|
return void 0;
|
|
21
|
-
return
|
|
22
|
-
id: fetchedEvent.id,
|
|
23
|
-
title: fetchedEvent.title || fallbackVenueEvent.title,
|
|
24
|
-
description: (_b = (_a = fetchedEvent.description) != null ? _a : fallbackVenueEvent.description) != null ? _b : null,
|
|
25
|
-
volume: (_d = (_c = fetchedEvent.volume) != null ? _c : fallbackVenueEvent.volume) != null ? _d : null,
|
|
26
|
-
startDate: (_f = (_e = fetchedEvent.startDate) != null ? _e : fallbackVenueEvent.startDate) != null ? _f : null,
|
|
27
|
-
endDate: (_h = (_g = fetchedEvent.endDate) != null ? _g : fallbackVenueEvent.endDate) != null ? _h : null,
|
|
28
|
-
creationDate: (_j = (_i = fetchedEvent.creationDate) != null ? _i : fallbackVenueEvent.creationDate) != null ? _j : null
|
|
29
|
-
});
|
|
25
|
+
return fetchedEvent;
|
|
30
26
|
};
|
|
31
27
|
var normalizeProbability = (value) => {
|
|
32
28
|
if (typeof value !== "number" || !Number.isFinite(value))
|
|
@@ -127,15 +123,14 @@ var resolveTileTitle = (event, primaryVenueMarket, titleOverride) => {
|
|
|
127
123
|
return event.title;
|
|
128
124
|
};
|
|
129
125
|
var resolveTileImage = (event, primaryVenueMarket, imageOverride) => {
|
|
130
|
-
var _a, _b, _c, _d, _e, _f;
|
|
131
126
|
if (typeof imageOverride === "string" && imageOverride.trim()) {
|
|
132
127
|
return imageOverride;
|
|
133
128
|
}
|
|
134
129
|
if (typeof (primaryVenueMarket == null ? void 0 : primaryVenueMarket.image) === "string" && primaryVenueMarket.image.trim()) {
|
|
135
130
|
return primaryVenueMarket.image;
|
|
136
131
|
}
|
|
137
|
-
if (typeof
|
|
138
|
-
return
|
|
132
|
+
if (typeof event.image === "string" && event.image.trim()) {
|
|
133
|
+
return event.image;
|
|
139
134
|
}
|
|
140
135
|
return void 0;
|
|
141
136
|
};
|
|
@@ -158,6 +153,7 @@ var resolveVenueLabel = (venue, venueInfo, labels) => {
|
|
|
158
153
|
};
|
|
159
154
|
|
|
160
155
|
export {
|
|
156
|
+
isErrorWithStatus,
|
|
161
157
|
resolveEventListItemEvent,
|
|
162
158
|
normalizeProbability,
|
|
163
159
|
sortOutcomes,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SwitchButton
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LCZKSITC.mjs";
|
|
4
4
|
import {
|
|
5
5
|
__spreadProps,
|
|
6
6
|
__spreadValues,
|
|
@@ -34,8 +34,18 @@ var normalizeSeries = (series) => {
|
|
|
34
34
|
var defaultValueFormatter = (value) => {
|
|
35
35
|
return `${Math.round(value)}%`;
|
|
36
36
|
};
|
|
37
|
-
var
|
|
38
|
-
return
|
|
37
|
+
var resolveTimeFormatter = (windowSeconds) => {
|
|
38
|
+
return (timestamp) => {
|
|
39
|
+
if (!Number.isFinite(timestamp))
|
|
40
|
+
return "";
|
|
41
|
+
if (windowSeconds <= 48 * 60 * 60) {
|
|
42
|
+
return dayjs.unix(timestamp).format("HH:mm");
|
|
43
|
+
}
|
|
44
|
+
if (windowSeconds <= 14 * 24 * 60 * 60) {
|
|
45
|
+
return dayjs.unix(timestamp).format("MMM D HH:mm");
|
|
46
|
+
}
|
|
47
|
+
return dayjs.unix(timestamp).format("MMM D");
|
|
48
|
+
};
|
|
39
49
|
};
|
|
40
50
|
var toLivelinePoints = (points) => {
|
|
41
51
|
return points.map((point) => ({
|
|
@@ -158,6 +168,9 @@ var LineChart = ({
|
|
|
158
168
|
const windowSeconds = useMemo(() => {
|
|
159
169
|
return resolveWindowSeconds(normalizedSeries);
|
|
160
170
|
}, [normalizedSeries]);
|
|
171
|
+
const timeFormatter = useMemo(() => {
|
|
172
|
+
return resolveTimeFormatter(windowSeconds);
|
|
173
|
+
}, [windowSeconds]);
|
|
161
174
|
const seriesControls = showSeriesControls && normalizedSeries.length > 0 ? (_a = renderSeriesControls == null ? void 0 : renderSeriesControls({
|
|
162
175
|
series: normalizedSeries,
|
|
163
176
|
activeSeriesId,
|
|
@@ -196,7 +209,7 @@ var LineChart = ({
|
|
|
196
209
|
pulse: false,
|
|
197
210
|
window: windowSeconds,
|
|
198
211
|
formatValue: defaultValueFormatter,
|
|
199
|
-
formatTime:
|
|
212
|
+
formatTime: timeFormatter,
|
|
200
213
|
padding: {
|
|
201
214
|
top: 12,
|
|
202
215
|
right: 80,
|