@agg-market/ui 3.0.1 → 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 (41) hide show
  1. package/dist/chart.js +18 -5
  2. package/dist/chart.mjs +2 -2
  3. package/dist/{chunk-KUWTY4EM.mjs → chunk-3W7NBJLU.mjs} +1 -1
  4. package/dist/{chunk-MVJNQN7P.mjs → chunk-GNSPZ53C.mjs} +86 -85
  5. package/dist/{chunk-422MCIXV.mjs → chunk-HOXTJ742.mjs} +15 -11
  6. package/dist/{chunk-FF3QYU26.mjs → chunk-JNH64AKR.mjs} +31 -24
  7. package/dist/{chunk-RKCVOKE3.mjs → chunk-LA3FBBSJ.mjs} +2 -2
  8. package/dist/{chunk-CTVMT3VL.mjs → chunk-LCZKSITC.mjs} +2 -2
  9. package/dist/chunk-M4RJHRFT.mjs +445 -0
  10. package/dist/{chunk-RGHA4PZH.mjs → chunk-MBHTXNHX.mjs} +4 -4
  11. package/dist/{chunk-KSCSYCEF.mjs → chunk-MJHKBCXQ.mjs} +1 -1
  12. package/dist/{chunk-KRQFVMJE.mjs → chunk-OH56VUYK.mjs} +5 -19
  13. package/dist/{chunk-BN5VVHNV.mjs → chunk-OJVTGNIF.mjs} +17 -4
  14. package/dist/{chunk-ZJJA4I3I.mjs → chunk-P2PJBO5C.mjs} +1 -1
  15. package/dist/{chunk-GHB3GOCW.mjs → chunk-QM7CGMFG.mjs} +5 -21
  16. package/dist/event-list-item-details.js +213 -241
  17. package/dist/event-list-item-details.mjs +6 -6
  18. package/dist/event-list-item.js +156 -208
  19. package/dist/event-list-item.mjs +3 -3
  20. package/dist/event-list.js +159 -223
  21. package/dist/event-list.mjs +4 -4
  22. package/dist/event-market-page.js +476 -574
  23. package/dist/event-market-page.mjs +10 -11
  24. package/dist/home-page.js +159 -223
  25. package/dist/home-page.mjs +5 -5
  26. package/dist/index.js +296 -333
  27. package/dist/index.mjs +13 -13
  28. package/dist/market-details.js +323 -415
  29. package/dist/market-details.mjs +6 -7
  30. package/dist/place-order.js +151 -189
  31. package/dist/place-order.mjs +2 -2
  32. package/dist/settlement.js +151 -189
  33. package/dist/settlement.mjs +2 -2
  34. package/dist/skeleton.js +151 -189
  35. package/dist/skeleton.mjs +1 -1
  36. package/dist/styles.css +1 -1
  37. package/dist/switch-button.js +2 -2
  38. package/dist/switch-button.mjs +1 -1
  39. package/dist/tailwind.css +1 -1
  40. package/package.json +2 -2
  41. package/dist/chunk-V52WSZHQ.mjs +0 -482
@@ -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-KUWTY4EM.mjs";
3
+ } from "./chunk-3W7NBJLU.mjs";
4
4
  import {
5
5
  PlaceOrder
6
- } from "./chunk-KSCSYCEF.mjs";
6
+ } from "./chunk-MJHKBCXQ.mjs";
7
7
  import {
8
8
  EventListItemDetails
9
- } from "./chunk-FF3QYU26.mjs";
9
+ } from "./chunk-JNH64AKR.mjs";
10
10
  import {
11
11
  MarketDetails
12
- } from "./chunk-MVJNQN7P.mjs";
12
+ } from "./chunk-GNSPZ53C.mjs";
13
13
  import {
14
14
  Typography
15
15
  } from "./chunk-ERGNR6UQ.mjs";
@@ -9,7 +9,7 @@ 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
15
  } from "./chunk-PORVP72S.mjs";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  EventListItem
3
- } from "./chunk-RKCVOKE3.mjs";
3
+ } from "./chunk-LA3FBBSJ.mjs";
4
4
  import {
5
5
  Tabs
6
6
  } from "./chunk-S3H63TQ5.mjs";
7
7
  import {
8
8
  Skeleton
9
- } from "./chunk-V52WSZHQ.mjs";
9
+ } from "./chunk-M4RJHRFT.mjs";
10
10
  import {
11
11
  VenueLogo
12
12
  } from "./chunk-PORVP72S.mjs";
@@ -17,8 +17,6 @@ import {
17
17
  Typography
18
18
  } from "./chunk-ERGNR6UQ.mjs";
19
19
  import {
20
- __spreadProps,
21
- __spreadValues,
22
20
  cn
23
21
  } from "./chunk-GJ4U5NCE.mjs";
24
22
 
@@ -55,22 +53,10 @@ var getDefaultEventListTabs = (labels) => {
55
53
 
56
54
  // src/events/list/event-list.utils.ts
57
55
  var mapEventToEventListItemEvent = (event) => {
58
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
59
- const fallbackVenueEvent = event.venueEvents[0];
60
- if (!fallbackVenueEvent)
61
- return null;
62
56
  const mergedVenueMarkets = event.markets.flatMap((m) => m.venueMarkets);
63
- if ((mergedVenueMarkets == null ? void 0 : mergedVenueMarkets.length) === 0)
57
+ if (mergedVenueMarkets.length === 0)
64
58
  return null;
65
- return __spreadProps(__spreadValues({}, event), {
66
- id: event.id,
67
- title: event.title || fallbackVenueEvent.title,
68
- description: (_b = (_a = event.description) != null ? _a : fallbackVenueEvent.description) != null ? _b : null,
69
- volume: (_d = (_c = event.volume) != null ? _c : fallbackVenueEvent.volume) != null ? _d : null,
70
- startDate: (_f = (_e = event.startDate) != null ? _e : fallbackVenueEvent.startDate) != null ? _f : null,
71
- endDate: (_h = (_g = event.endDate) != null ? _g : fallbackVenueEvent.endDate) != null ? _h : null,
72
- creationDate: (_j = (_i = event.creationDate) != null ? _i : fallbackVenueEvent.creationDate) != null ? _j : null
73
- });
59
+ return event;
74
60
  };
75
61
  var filterEventsByTabValue = (events, _tabValue) => {
76
62
  return events;
@@ -146,7 +132,7 @@ var EventList = ({
146
132
  const [activeTabValue, setActiveTabValue] = useState(
147
133
  (_b = (_a = defaultEventListTabs[0]) == null ? void 0 : _a.value) != null ? _b : "matched"
148
134
  );
149
- const [shouldUseSelectOverflow, setShouldUseSelectOverflow] = useState(false);
135
+ const [_shouldUseSelectOverflow, setShouldUseSelectOverflow] = useState(false);
150
136
  const activeTab = useMemo(() => {
151
137
  return defaultEventListTabs.find((tab) => tab.value === activeTabValue);
152
138
  }, [activeTabValue]);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SwitchButton
3
- } from "./chunk-CTVMT3VL.mjs";
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 defaultTimeFormatter = (timestamp) => {
38
- return dayjs.unix(timestamp).format("MMM D");
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: defaultTimeFormatter,
212
+ formatTime: timeFormatter,
200
213
  padding: {
201
214
  top: 12,
202
215
  right: 80,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EventList
3
- } from "./chunk-KRQFVMJE.mjs";
3
+ } from "./chunk-OH56VUYK.mjs";
4
4
  import {
5
5
  Tabs
6
6
  } from "./chunk-S3H63TQ5.mjs";
@@ -1,32 +1,17 @@
1
1
  import {
2
- __spreadProps,
3
- __spreadValues,
4
2
  toDate
5
3
  } from "./chunk-GJ4U5NCE.mjs";
6
4
 
7
5
  // src/events/item/event-list-item.utils.ts
8
6
  var resolveEventListItemEvent = (fetchedEvent) => {
9
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
10
7
  if (!fetchedEvent)
11
8
  return void 0;
12
- const fallbackVenueEvent = fetchedEvent.venueEvents[0];
13
- if (!fallbackVenueEvent)
14
- return void 0;
15
9
  const mergedVenueMarkets = fetchedEvent.markets.flatMap(
16
- (venueEvent) => venueEvent.venueMarkets
10
+ (market) => market.venueMarkets
17
11
  );
18
- const venueMarkets = mergedVenueMarkets.length > 0 ? mergedVenueMarkets : [];
19
- if ((venueMarkets == null ? void 0 : venueMarkets.length) === 0)
12
+ if (mergedVenueMarkets.length === 0)
20
13
  return void 0;
21
- return __spreadProps(__spreadValues({}, fetchedEvent), {
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
- });
14
+ return fetchedEvent;
30
15
  };
31
16
  var normalizeProbability = (value) => {
32
17
  if (typeof value !== "number" || !Number.isFinite(value))
@@ -127,15 +112,14 @@ var resolveTileTitle = (event, primaryVenueMarket, titleOverride) => {
127
112
  return event.title;
128
113
  };
129
114
  var resolveTileImage = (event, primaryVenueMarket, imageOverride) => {
130
- var _a, _b, _c, _d, _e, _f;
131
115
  if (typeof imageOverride === "string" && imageOverride.trim()) {
132
116
  return imageOverride;
133
117
  }
134
118
  if (typeof (primaryVenueMarket == null ? void 0 : primaryVenueMarket.image) === "string" && primaryVenueMarket.image.trim()) {
135
119
  return primaryVenueMarket.image;
136
120
  }
137
- if (typeof ((_b = (_a = event.venueEvents) == null ? void 0 : _a[0]) == null ? void 0 : _b.image) === "string" && ((_d = (_c = event.venueEvents) == null ? void 0 : _c[0]) == null ? void 0 : _d.image.trim())) {
138
- return (_f = (_e = event.venueEvents) == null ? void 0 : _e[0]) == null ? void 0 : _f.image;
121
+ if (typeof event.image === "string" && event.image.trim()) {
122
+ return event.image;
139
123
  }
140
124
  return void 0;
141
125
  };