@agg-market/ui 0.0.1

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 (192) hide show
  1. package/dist/badge.d.mts +26 -0
  2. package/dist/badge.d.ts +26 -0
  3. package/dist/badge.js +70 -0
  4. package/dist/badge.mjs +9 -0
  5. package/dist/button.d.mts +20 -0
  6. package/dist/button.d.ts +20 -0
  7. package/dist/button.js +197 -0
  8. package/dist/button.mjs +8 -0
  9. package/dist/card.d.mts +8 -0
  10. package/dist/card.d.ts +8 -0
  11. package/dist/card.js +84 -0
  12. package/dist/card.mjs +7 -0
  13. package/dist/chart.d.mts +40 -0
  14. package/dist/chart.d.ts +40 -0
  15. package/dist/chart.js +418 -0
  16. package/dist/chart.mjs +8 -0
  17. package/dist/chunk-2PGUPOXY.mjs +285 -0
  18. package/dist/chunk-3DV3D2LH.mjs +155 -0
  19. package/dist/chunk-44UEI6KD.mjs +280 -0
  20. package/dist/chunk-4ADCXJE6.mjs +297 -0
  21. package/dist/chunk-4GSXVVSA.mjs +64 -0
  22. package/dist/chunk-4NK2FNAG.mjs +581 -0
  23. package/dist/chunk-4XWCYUV3.mjs +355 -0
  24. package/dist/chunk-5MN6ZNFA.mjs +355 -0
  25. package/dist/chunk-6RRBINER.mjs +50 -0
  26. package/dist/chunk-765JPQDG.mjs +280 -0
  27. package/dist/chunk-7CD7GIZC.mjs +850 -0
  28. package/dist/chunk-7XRKA6XF.mjs +462 -0
  29. package/dist/chunk-AOFP74IB.mjs +850 -0
  30. package/dist/chunk-BNDFQPHF.mjs +9 -0
  31. package/dist/chunk-C4OI72SM.mjs +14 -0
  32. package/dist/chunk-CB2MLGCJ.mjs +279 -0
  33. package/dist/chunk-CKTAVEW2.mjs +212 -0
  34. package/dist/chunk-DA6KZWSK.mjs +807 -0
  35. package/dist/chunk-DBD5GHHD.mjs +147 -0
  36. package/dist/chunk-DQ6XFBYJ.mjs +37 -0
  37. package/dist/chunk-FACIYUNK.mjs +217 -0
  38. package/dist/chunk-FUJQIYOF.mjs +37 -0
  39. package/dist/chunk-FZTAHWOS.mjs +82 -0
  40. package/dist/chunk-GC3QIIH7.mjs +112 -0
  41. package/dist/chunk-GPBLZGJ2.mjs +136 -0
  42. package/dist/chunk-H4LELROL.mjs +262 -0
  43. package/dist/chunk-H7P6DIX4.mjs +262 -0
  44. package/dist/chunk-H7YEBGYY.mjs +42 -0
  45. package/dist/chunk-HJOBAMDU.mjs +142 -0
  46. package/dist/chunk-IJG5I642.mjs +462 -0
  47. package/dist/chunk-IY2AA3OL.mjs +50 -0
  48. package/dist/chunk-J6L5BLKX.mjs +136 -0
  49. package/dist/chunk-J7OETCZ7.mjs +147 -0
  50. package/dist/chunk-JLLMIPIX.mjs +42 -0
  51. package/dist/chunk-KBRLFTJT.mjs +741 -0
  52. package/dist/chunk-KDBYDMYV.mjs +64 -0
  53. package/dist/chunk-L6E6Q4C4.mjs +217 -0
  54. package/dist/chunk-LY6474C4.mjs +297 -0
  55. package/dist/chunk-M23S2DVV.mjs +581 -0
  56. package/dist/chunk-MG243DSX.mjs +44 -0
  57. package/dist/chunk-MRHSN2B7.mjs +279 -0
  58. package/dist/chunk-MXWRCVRJ.mjs +285 -0
  59. package/dist/chunk-NFYS557L.mjs +481 -0
  60. package/dist/chunk-NNSY462N.mjs +212 -0
  61. package/dist/chunk-OUOIDPGX.mjs +25 -0
  62. package/dist/chunk-P5PFQX75.mjs +31 -0
  63. package/dist/chunk-P674XRDY.mjs +481 -0
  64. package/dist/chunk-PAQ542ER.mjs +170 -0
  65. package/dist/chunk-QE46DVJG.mjs +323 -0
  66. package/dist/chunk-QXFDXXDB.mjs +792 -0
  67. package/dist/chunk-R3DRVI4J.mjs +741 -0
  68. package/dist/chunk-TTOR7JCT.mjs +155 -0
  69. package/dist/chunk-V5WIYMKS.mjs +25 -0
  70. package/dist/chunk-VAZE267Q.mjs +82 -0
  71. package/dist/chunk-VLIJ7PQK.mjs +792 -0
  72. package/dist/chunk-VYNVBJK6.mjs +44 -0
  73. package/dist/chunk-WIWJ6DIE.mjs +323 -0
  74. package/dist/chunk-XDAEEJYR.mjs +142 -0
  75. package/dist/chunk-YUIZZ6XE.mjs +31 -0
  76. package/dist/connect-button.d.mts +40 -0
  77. package/dist/connect-button.d.ts +40 -0
  78. package/dist/connect-button.js +1815 -0
  79. package/dist/connect-button.mjs +14 -0
  80. package/dist/event-list-item-details.d.mts +11 -0
  81. package/dist/event-list-item-details.d.ts +11 -0
  82. package/dist/event-list-item-details.js +2140 -0
  83. package/dist/event-list-item-details.mjs +19 -0
  84. package/dist/event-list-item-details.types-CMbXOrT-.d.ts +53 -0
  85. package/dist/event-list-item-details.types-CxWr4Qn1.d.ts +53 -0
  86. package/dist/event-list-item-details.types-DRi99PZq.d.mts +53 -0
  87. package/dist/event-list-item-details.types-DekJKeMD.d.mts +53 -0
  88. package/dist/event-list-item.d.mts +10 -0
  89. package/dist/event-list-item.d.ts +10 -0
  90. package/dist/event-list-item.js +2097 -0
  91. package/dist/event-list-item.mjs +17 -0
  92. package/dist/event-list-item.types-B1490EQm.d.mts +46 -0
  93. package/dist/event-list-item.types-B1490EQm.d.ts +46 -0
  94. package/dist/event-list-item.types-Y6IeJ4e4.d.mts +46 -0
  95. package/dist/event-list-item.types-Y6IeJ4e4.d.ts +46 -0
  96. package/dist/event-list.d.mts +9 -0
  97. package/dist/event-list.d.ts +9 -0
  98. package/dist/event-list.js +3151 -0
  99. package/dist/event-list.mjs +20 -0
  100. package/dist/event-list.types-Bpp6Vn-t.d.mts +13 -0
  101. package/dist/event-list.types-Bpp6Vn-t.d.ts +13 -0
  102. package/dist/event-list.types-CkAAUqwW.d.mts +13 -0
  103. package/dist/event-list.types-CkAAUqwW.d.ts +13 -0
  104. package/dist/event-market-page.d.mts +52 -0
  105. package/dist/event-market-page.d.ts +52 -0
  106. package/dist/event-market-page.js +5369 -0
  107. package/dist/event-market-page.mjs +29 -0
  108. package/dist/hello-world.d.mts +8 -0
  109. package/dist/hello-world.d.ts +8 -0
  110. package/dist/hello-world.js +80 -0
  111. package/dist/hello-world.mjs +8 -0
  112. package/dist/home-page.d.mts +51 -0
  113. package/dist/home-page.d.ts +51 -0
  114. package/dist/home-page.js +3415 -0
  115. package/dist/home-page.mjs +21 -0
  116. package/dist/icon.d.mts +123 -0
  117. package/dist/icon.d.ts +123 -0
  118. package/dist/icon.js +922 -0
  119. package/dist/icon.mjs +57 -0
  120. package/dist/index.d.mts +70 -0
  121. package/dist/index.d.ts +70 -0
  122. package/dist/index.js +8184 -0
  123. package/dist/index.mjs +307 -0
  124. package/dist/loading-icon.d.mts +14 -0
  125. package/dist/loading-icon.d.ts +14 -0
  126. package/dist/loading-icon.js +115 -0
  127. package/dist/loading-icon.mjs +8 -0
  128. package/dist/market-details.d.mts +73 -0
  129. package/dist/market-details.d.ts +73 -0
  130. package/dist/market-details.js +3923 -0
  131. package/dist/market-details.mjs +22 -0
  132. package/dist/modal.d.mts +66 -0
  133. package/dist/modal.d.ts +66 -0
  134. package/dist/modal.js +317 -0
  135. package/dist/modal.mjs +9 -0
  136. package/dist/number-value.d.mts +14 -0
  137. package/dist/number-value.d.ts +14 -0
  138. package/dist/number-value.js +67 -0
  139. package/dist/number-value.mjs +7 -0
  140. package/dist/onboarding-modal.d.mts +88 -0
  141. package/dist/onboarding-modal.d.ts +88 -0
  142. package/dist/onboarding-modal.js +2242 -0
  143. package/dist/onboarding-modal.mjs +24 -0
  144. package/dist/place-order.d.mts +20 -0
  145. package/dist/place-order.d.ts +20 -0
  146. package/dist/place-order.js +2916 -0
  147. package/dist/place-order.mjs +18 -0
  148. package/dist/registry-CVn79H3I.d.mts +106 -0
  149. package/dist/registry-CVn79H3I.d.ts +106 -0
  150. package/dist/search.d.mts +69 -0
  151. package/dist/search.d.ts +69 -0
  152. package/dist/search.js +1465 -0
  153. package/dist/search.mjs +12 -0
  154. package/dist/select.d.mts +19 -0
  155. package/dist/select.d.ts +19 -0
  156. package/dist/select.js +920 -0
  157. package/dist/select.mjs +11 -0
  158. package/dist/settlement.d.mts +16 -0
  159. package/dist/settlement.d.ts +16 -0
  160. package/dist/settlement.js +1769 -0
  161. package/dist/settlement.mjs +15 -0
  162. package/dist/skeleton.d.mts +22 -0
  163. package/dist/skeleton.d.ts +22 -0
  164. package/dist/skeleton.js +523 -0
  165. package/dist/skeleton.mjs +10 -0
  166. package/dist/styles.css +2 -0
  167. package/dist/switch-button.d.mts +21 -0
  168. package/dist/switch-button.d.ts +21 -0
  169. package/dist/switch-button.js +184 -0
  170. package/dist/switch-button.mjs +7 -0
  171. package/dist/tabs.d.mts +27 -0
  172. package/dist/tabs.d.ts +27 -0
  173. package/dist/tabs.js +1708 -0
  174. package/dist/tabs.mjs +12 -0
  175. package/dist/tailwind.css +2 -0
  176. package/dist/types-8VUuQVZq.d.mts +387 -0
  177. package/dist/types-8VUuQVZq.d.ts +387 -0
  178. package/dist/types-CayJ8tWA.d.mts +3 -0
  179. package/dist/types-CayJ8tWA.d.ts +3 -0
  180. package/dist/typography.d.mts +16 -0
  181. package/dist/typography.d.ts +16 -0
  182. package/dist/typography.js +62 -0
  183. package/dist/typography.mjs +7 -0
  184. package/dist/venue-logo.d.mts +12 -0
  185. package/dist/venue-logo.d.ts +12 -0
  186. package/dist/venue-logo.js +350 -0
  187. package/dist/venue-logo.mjs +10 -0
  188. package/dist/venue-logo.types-4hmCg3D3.d.ts +17 -0
  189. package/dist/venue-logo.types-B1iPJgiD.d.mts +17 -0
  190. package/dist/venue-logo.types-Bg8eXtGp.d.ts +17 -0
  191. package/dist/venue-logo.types-QNDwiQ77.d.mts +17 -0
  192. package/package.json +195 -0
@@ -0,0 +1,9 @@
1
+ // src/primitives/icon/types.ts
2
+ var getIconA11yProps = (title) => ({
3
+ role: title ? "img" : "presentation",
4
+ "aria-hidden": title ? void 0 : true
5
+ });
6
+
7
+ export {
8
+ getIconA11yProps
9
+ };
@@ -0,0 +1,14 @@
1
+ // src/primitives/icon/icon.constants.ts
2
+ var iconSizeClasses = {
3
+ xxs: "h-2 w-2",
4
+ xs: "h-3 w-3",
5
+ s: "h-4 w-4",
6
+ m: "h-6 w-6",
7
+ l: "h-8 w-8",
8
+ xl: "h-10 w-10",
9
+ xxl: "h-12 w-12"
10
+ };
11
+
12
+ export {
13
+ iconSizeClasses
14
+ };
@@ -0,0 +1,279 @@
1
+ import {
2
+ formatCountLabel,
3
+ getVenueSummary,
4
+ normalizeProbability,
5
+ resolveEventListItemEvent,
6
+ resolveOutcomeTitle,
7
+ resolveTileImage,
8
+ resolveTileTitle,
9
+ resolveVenueLabel,
10
+ resolveVisibleOutcomes,
11
+ selectPrimaryVenueMarket
12
+ } from "./chunk-PAQ542ER.mjs";
13
+ import {
14
+ Badge
15
+ } from "./chunk-MG243DSX.mjs";
16
+ import {
17
+ Skeleton,
18
+ baseCardClassName
19
+ } from "./chunk-NFYS557L.mjs";
20
+ import {
21
+ VenueLogo
22
+ } from "./chunk-LY6474C4.mjs";
23
+ import {
24
+ Icon
25
+ } from "./chunk-DA6KZWSK.mjs";
26
+ import {
27
+ Typography
28
+ } from "./chunk-DQ6XFBYJ.mjs";
29
+ import {
30
+ Card
31
+ } from "./chunk-YUIZZ6XE.mjs";
32
+ import {
33
+ __objRest,
34
+ __spreadValues,
35
+ cn
36
+ } from "./chunk-GC3QIIH7.mjs";
37
+
38
+ // src/events/item/index.tsx
39
+ import dayjs from "dayjs";
40
+ import { useMemo } from "react";
41
+ import { useEvent, useLabels, useSdkUiConfig } from "@agg-market/hooks";
42
+ import { jsx, jsxs } from "react/jsx-runtime";
43
+ var EventListItemLoadingState = ({
44
+ classNames,
45
+ ariaLabel
46
+ }) => {
47
+ const labels = useLabels();
48
+ return /* @__PURE__ */ jsx(
49
+ Skeleton,
50
+ {
51
+ view: "event-list-item",
52
+ className: classNames == null ? void 0 : classNames.root,
53
+ ariaLabel: ariaLabel != null ? ariaLabel : labels.eventItem.loading
54
+ }
55
+ );
56
+ };
57
+ var EventListItemUnavailableState = ({
58
+ classNames,
59
+ ariaLabel
60
+ }) => {
61
+ const labels = useLabels();
62
+ return /* @__PURE__ */ jsx(
63
+ Card,
64
+ {
65
+ className: cn(baseCardClassName, classNames == null ? void 0 : classNames.root),
66
+ role: "status",
67
+ "aria-label": ariaLabel != null ? ariaLabel : labels.eventItem.unavailableAria,
68
+ children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-1", classNames == null ? void 0 : classNames.header), children: [
69
+ /* @__PURE__ */ jsx(Typography, { variant: "title", className: cn("truncate", classNames == null ? void 0 : classNames.title), children: labels.eventItem.unavailableTitle }),
70
+ /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-agg-muted-foreground", children: labels.eventItem.unavailableDescription })
71
+ ] })
72
+ }
73
+ );
74
+ };
75
+ var EventListItemContent = ({
76
+ event,
77
+ title,
78
+ image,
79
+ showVenueLogo = true,
80
+ maxOutcomes = 2,
81
+ classNames,
82
+ venueInfo,
83
+ arbitrageByOutcomeId,
84
+ onClick,
85
+ ariaLabel
86
+ }) => {
87
+ var _a;
88
+ const config = useSdkUiConfig();
89
+ const labels = useLabels();
90
+ const allVenueMarkets = useMemo(() => {
91
+ return event.markets.flatMap((market) => market.venueMarkets);
92
+ }, [event.markets]);
93
+ const primaryVenueMarket = useMemo(() => {
94
+ return selectPrimaryVenueMarket(allVenueMarkets);
95
+ }, [allVenueMarkets]);
96
+ const visibleOutcomes = useMemo(() => {
97
+ if (allVenueMarkets.length === 0)
98
+ return [];
99
+ return resolveVisibleOutcomes(allVenueMarkets, maxOutcomes);
100
+ }, [allVenueMarkets, maxOutcomes]);
101
+ const resolvedTitle = resolveTileTitle(event, primaryVenueMarket, title);
102
+ const resolvedImage = resolveTileImage(event, primaryVenueMarket, image);
103
+ const { marketCount, venueCount, singleVenue } = getVenueSummary(allVenueMarkets);
104
+ const venueLabel = resolveVenueLabel(singleVenue, venueInfo, labels);
105
+ const visibleVenueLogos = useMemo(() => {
106
+ return Array.from(new Set(allVenueMarkets.map((market) => market.venue))).slice(0, 4);
107
+ }, [allVenueMarkets]);
108
+ const resolvedVolume = typeof event.volume === "number" ? event.volume : (_a = primaryVenueMarket == null ? void 0 : primaryVenueMarket.volume) != null ? _a : void 0;
109
+ const volumeLabel = typeof resolvedVolume === "number" ? `${config.formatCompactCurrency(resolvedVolume)} ${labels.eventItem.volumeSuffix}` : "";
110
+ const handleKeyDown = (eventToHandle) => {
111
+ if (!onClick)
112
+ return;
113
+ if (eventToHandle.key === "Enter" || eventToHandle.key === " ") {
114
+ eventToHandle.preventDefault();
115
+ onClick();
116
+ }
117
+ };
118
+ const renderArbitrage = (value) => {
119
+ if (value == null)
120
+ return null;
121
+ if (Math.abs(value) < config.arbitrageThreshold)
122
+ return null;
123
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex items-baseline gap-1", "text-agg-success"), children: [
124
+ /* @__PURE__ */ jsx(Typography, { variant: "label", className: "text-agg-success", children: config.formatPercent(value) }),
125
+ /* @__PURE__ */ jsx(Icon, { name: "triangle-up", size: "xxs", title: labels.eventItem.arbitrage })
126
+ ] });
127
+ };
128
+ return /* @__PURE__ */ jsxs(
129
+ Card,
130
+ {
131
+ className: cn(baseCardClassName, onClick && "cursor-pointer", classNames == null ? void 0 : classNames.root),
132
+ role: onClick ? "button" : void 0,
133
+ tabIndex: onClick ? 0 : void 0,
134
+ onClick,
135
+ onKeyDown: handleKeyDown,
136
+ "aria-label": ariaLabel != null ? ariaLabel : resolvedTitle,
137
+ children: [
138
+ /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-3", classNames == null ? void 0 : classNames.header), children: [
139
+ resolvedImage ? /* @__PURE__ */ jsx(
140
+ "img",
141
+ {
142
+ src: resolvedImage,
143
+ alt: "",
144
+ className: cn("h-10 w-10", "rounded-agg-lg object-cover")
145
+ }
146
+ ) : null,
147
+ /* @__PURE__ */ jsx(
148
+ Typography,
149
+ {
150
+ variant: "title",
151
+ className: cn(
152
+ "min-w-0 text-agg-base font-agg-bold leading-agg-6 whitespace-normal [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:2] md:block md:truncate md:whitespace-nowrap",
153
+ classNames == null ? void 0 : classNames.title
154
+ ),
155
+ children: resolvedTitle
156
+ }
157
+ )
158
+ ] }),
159
+ /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", classNames == null ? void 0 : classNames.outcomes), children: visibleOutcomes.map((visibleOutcome) => {
160
+ const probability = normalizeProbability(visibleOutcome.outcome.price);
161
+ const showBadge = typeof probability === "number";
162
+ const arbitragePercent = arbitrageByOutcomeId == null ? void 0 : arbitrageByOutcomeId[visibleOutcome.outcome.id];
163
+ const outcomeTitle = resolveOutcomeTitle(visibleOutcome.outcome);
164
+ const formattedTitle = dayjs(outcomeTitle).isValid() ? dayjs(outcomeTitle).format("MMMM D, YYYY") : outcomeTitle;
165
+ return /* @__PURE__ */ jsxs(
166
+ "div",
167
+ {
168
+ className: cn(
169
+ "grid w-full grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-3",
170
+ classNames == null ? void 0 : classNames.outcomeRow
171
+ ),
172
+ children: [
173
+ /* @__PURE__ */ jsx(
174
+ Typography,
175
+ {
176
+ variant: "body",
177
+ className: "min-w-0 truncate text-agg-sm leading-agg-5 md:text-agg-base md:leading-agg-6",
178
+ children: formattedTitle
179
+ }
180
+ ),
181
+ renderArbitrage(arbitragePercent),
182
+ showBadge ? /* @__PURE__ */ jsx(
183
+ Badge,
184
+ {
185
+ text: config.formatPercent(probability),
186
+ prefix: showVenueLogo ? /* @__PURE__ */ jsx(VenueLogo, { venue: visibleOutcome.venue, size: "s" }) : void 0,
187
+ size: "l",
188
+ classNames: {
189
+ root: cn(
190
+ "h-9 min-w-[101px] justify-center px-4 text-agg-base leading-agg-6",
191
+ classNames == null ? void 0 : classNames.badge
192
+ )
193
+ }
194
+ }
195
+ ) : null
196
+ ]
197
+ },
198
+ `${visibleOutcome.market.id}-${visibleOutcome.outcome.id}`
199
+ );
200
+ }) }),
201
+ /* @__PURE__ */ jsxs(
202
+ "div",
203
+ {
204
+ className: cn(
205
+ "flex items-center justify-between gap-2",
206
+ "text-agg-muted-foreground",
207
+ classNames == null ? void 0 : classNames.footer
208
+ ),
209
+ children: [
210
+ /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", "text-agg-sm leading-agg-5"), children: [
211
+ /* @__PURE__ */ jsx("span", { className: "truncate text-agg-muted-foreground", children: formatCountLabel(
212
+ marketCount,
213
+ labels.eventItem.marketSingular,
214
+ labels.eventItem.marketPlural
215
+ ) }),
216
+ /* @__PURE__ */ jsx("span", { className: "text-agg-muted-foreground", children: "\xD7" }),
217
+ singleVenue ? /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 truncate text-agg-muted-foreground", children: [
218
+ showVenueLogo ? /* @__PURE__ */ jsx(VenueLogo, { venue: singleVenue, size: "xs" }) : null,
219
+ /* @__PURE__ */ jsx("span", { children: venueLabel })
220
+ ] }) : /* @__PURE__ */ jsx("span", { className: "truncate text-agg-muted-foreground", children: formatCountLabel(
221
+ venueCount,
222
+ labels.eventItem.venueSingular,
223
+ labels.eventItem.venuePlural
224
+ ) }),
225
+ showVenueLogo && !singleVenue && visibleVenueLogos.length > 0 ? /* @__PURE__ */ jsx("span", { className: "flex items-center gap-1 overflow-hidden", children: visibleVenueLogos.map((venue) => /* @__PURE__ */ jsx(VenueLogo, { venue, size: "xs" }, venue)) }) : null
226
+ ] }),
227
+ volumeLabel ? /* @__PURE__ */ jsx(Typography, { variant: "meta", className: "text-agg-sm", children: volumeLabel }) : null
228
+ ]
229
+ }
230
+ )
231
+ ]
232
+ }
233
+ );
234
+ };
235
+ var EventListItemByEventId = (_a) => {
236
+ var _b = _a, {
237
+ eventId
238
+ } = _b, rest = __objRest(_b, [
239
+ "eventId"
240
+ ]);
241
+ const {
242
+ event: fetchedEvent,
243
+ isError,
244
+ isLoading
245
+ } = useEvent(eventId, {
246
+ enabled: !!eventId
247
+ });
248
+ const resolvedEvent = useMemo(() => {
249
+ return resolveEventListItemEvent(fetchedEvent);
250
+ }, [fetchedEvent]);
251
+ if (!eventId) {
252
+ return /* @__PURE__ */ jsx(EventListItemUnavailableState, { classNames: rest.classNames, ariaLabel: rest.ariaLabel });
253
+ }
254
+ if (isLoading) {
255
+ return /* @__PURE__ */ jsx(EventListItemLoadingState, { classNames: rest.classNames, ariaLabel: rest.ariaLabel });
256
+ }
257
+ if (!resolvedEvent && !isError) {
258
+ return /* @__PURE__ */ jsx(EventListItemLoadingState, { classNames: rest.classNames, ariaLabel: rest.ariaLabel });
259
+ }
260
+ if (!resolvedEvent) {
261
+ return /* @__PURE__ */ jsx(EventListItemUnavailableState, { classNames: rest.classNames, ariaLabel: rest.ariaLabel });
262
+ }
263
+ return /* @__PURE__ */ jsx(EventListItemContent, __spreadValues({ event: resolvedEvent }, rest));
264
+ };
265
+ var EventListItem = (props) => {
266
+ if (props.isLoading) {
267
+ return /* @__PURE__ */ jsx(EventListItemLoadingState, { classNames: props.classNames, ariaLabel: props.ariaLabel });
268
+ }
269
+ if ("event" in props && props.event) {
270
+ const _a = props, { event } = _a, rest = __objRest(_a, ["event"]);
271
+ return /* @__PURE__ */ jsx(EventListItemContent, __spreadValues({ event }, rest));
272
+ }
273
+ return /* @__PURE__ */ jsx(EventListItemByEventId, __spreadValues({}, props));
274
+ };
275
+ EventListItem.displayName = "EventListItem";
276
+
277
+ export {
278
+ EventListItem
279
+ };
@@ -0,0 +1,212 @@
1
+ import {
2
+ CloseIcon
3
+ } from "./chunk-VYNVBJK6.mjs";
4
+ import {
5
+ AGG_ROOT_CLASS_NAME,
6
+ cn,
7
+ getMotionClassName
8
+ } from "./chunk-GC3QIIH7.mjs";
9
+
10
+ // src/primitives/modal/index.tsx
11
+ import * as Dialog from "@radix-ui/react-dialog";
12
+ import { useSdkUiConfig, useLabels } from "@agg-market/hooks";
13
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
+ var Modal = ({
15
+ open,
16
+ onOpenChange,
17
+ children,
18
+ "aria-label": _ariaLabel,
19
+ "aria-labelledby": _ariaLabelledBy
20
+ }) => {
21
+ return /* @__PURE__ */ jsx(Dialog.Root, { open, onOpenChange, children });
22
+ };
23
+ var ModalContainer = ({
24
+ children,
25
+ maxWidth = "600px",
26
+ classNames,
27
+ "aria-label": ariaLabel,
28
+ "aria-labelledby": ariaLabelledBy
29
+ }) => {
30
+ const { rootClassName, enableAnimations } = useSdkUiConfig();
31
+ const overlayAnimationClassName = enableAnimations ? "motion-safe:data-[state=open]:animate-agg-modal-overlay-in motion-safe:data-[state=closed]:animate-agg-modal-overlay-out motion-reduce:animate-none" : void 0;
32
+ const panelAnimationClassName = enableAnimations ? "motion-safe:data-[state=open]:animate-agg-modal-panel-in motion-safe:data-[state=closed]:animate-agg-modal-panel-out motion-reduce:animate-none" : void 0;
33
+ return /* @__PURE__ */ jsxs(Dialog.Portal, { children: [
34
+ /* @__PURE__ */ jsx(
35
+ Dialog.Overlay,
36
+ {
37
+ className: cn(
38
+ "fixed inset-0 z-agg-overlay bg-agg-overlay",
39
+ overlayAnimationClassName,
40
+ classNames == null ? void 0 : classNames.overlay
41
+ )
42
+ }
43
+ ),
44
+ /* @__PURE__ */ jsx(
45
+ Dialog.Content,
46
+ {
47
+ className: cn(
48
+ "fixed inset-0 z-agg-modal",
49
+ "flex items-center justify-center p-4",
50
+ "sm:p-5",
51
+ classNames == null ? void 0 : classNames.content
52
+ ),
53
+ "aria-label": ariaLabel,
54
+ "aria-labelledby": ariaLabelledBy,
55
+ onCloseAutoFocus: (event) => {
56
+ event.preventDefault();
57
+ },
58
+ children: /* @__PURE__ */ jsx(
59
+ "div",
60
+ {
61
+ className: cn(
62
+ AGG_ROOT_CLASS_NAME,
63
+ rootClassName,
64
+ "flex w-full max-h-[calc(100%-2rem)] flex-col font-agg-sans",
65
+ "rounded-agg-2xl border border-agg-separator",
66
+ "bg-agg-secondary text-agg-foreground shadow-agg-modal",
67
+ "origin-bottom overflow-hidden will-change-transform",
68
+ panelAnimationClassName,
69
+ classNames == null ? void 0 : classNames.container
70
+ ),
71
+ "data-agg-animations": enableAnimations ? "true" : "false",
72
+ style: { maxWidth },
73
+ children
74
+ }
75
+ )
76
+ }
77
+ )
78
+ ] });
79
+ };
80
+ Modal.Container = ModalContainer;
81
+ var ModalHeader = ({
82
+ title,
83
+ subtitle,
84
+ leftElement,
85
+ rightElement,
86
+ hideClose = false,
87
+ closeIcon,
88
+ classNames,
89
+ children,
90
+ hideBorder = false
91
+ }) => {
92
+ const { enableAnimations } = useSdkUiConfig();
93
+ const labels = useLabels();
94
+ const defaultCloseIcon = /* @__PURE__ */ jsx(CloseIcon, { className: "h-6 w-6" });
95
+ const resolvedCloseIcon = closeIcon != null ? closeIcon : defaultCloseIcon;
96
+ return /* @__PURE__ */ jsxs(
97
+ "div",
98
+ {
99
+ className: cn(
100
+ "flex flex-col",
101
+ "sticky top-0 z-20",
102
+ "bg-agg-secondary",
103
+ hideBorder ? "border-0" : "border-b border-agg-separator",
104
+ subtitle ? "min-h-20" : "min-h-16",
105
+ classNames == null ? void 0 : classNames.root
106
+ ),
107
+ children: [
108
+ /* @__PURE__ */ jsxs(
109
+ "div",
110
+ {
111
+ className: cn(
112
+ "flex items-center justify-between",
113
+ "px-4 py-4",
114
+ "sm:px-8 sm:py-6",
115
+ subtitle && "sm:py-4",
116
+ children ? "pb-3 sm:pb-4" : void 0,
117
+ classNames == null ? void 0 : classNames.container
118
+ ),
119
+ children: [
120
+ leftElement ? /* @__PURE__ */ jsx(Fragment, { children: leftElement }) : null,
121
+ /* @__PURE__ */ jsxs("div", { className: cn("max-w-[calc(100%-1rem)] flex-1", classNames == null ? void 0 : classNames.titleContainer), children: [
122
+ /* @__PURE__ */ jsx(
123
+ Dialog.Title,
124
+ {
125
+ className: cn(
126
+ !title && "invisible",
127
+ "flex items-center text-agg-lg font-agg-bold leading-agg-6",
128
+ "sm:text-agg-2xl sm:leading-agg-8",
129
+ "text-ellipsis overflow-hidden whitespace-nowrap",
130
+ classNames == null ? void 0 : classNames.title
131
+ ),
132
+ children: title
133
+ }
134
+ ),
135
+ subtitle ? /* @__PURE__ */ jsx(
136
+ "span",
137
+ {
138
+ className: cn(
139
+ "text-agg-sm leading-agg-4 text-agg-muted-foreground sm:leading-agg-5",
140
+ classNames == null ? void 0 : classNames.subtitle
141
+ ),
142
+ children: subtitle
143
+ }
144
+ ) : null
145
+ ] }),
146
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-row gap-6 items-center justify-end", children: [
147
+ rightElement ? /* @__PURE__ */ jsx(Fragment, { children: rightElement }) : null,
148
+ !hideClose && /* @__PURE__ */ jsx(
149
+ Dialog.Close,
150
+ {
151
+ className: cn(
152
+ "outline-0 flex items-center hover:cursor-pointer justify-center text-agg-foreground hover:text-agg-foreground/80",
153
+ getMotionClassName(enableAnimations, "transition-colors"),
154
+ classNames == null ? void 0 : classNames.close
155
+ ),
156
+ "aria-label": labels.common.close,
157
+ children: resolvedCloseIcon
158
+ }
159
+ )
160
+ ] })
161
+ ]
162
+ }
163
+ ),
164
+ children ? /* @__PURE__ */ jsx("div", { children }) : null
165
+ ]
166
+ }
167
+ );
168
+ };
169
+ Modal.Header = ModalHeader;
170
+ var ModalBody = ({ children, classNames }) => {
171
+ return /* @__PURE__ */ jsx(
172
+ "div",
173
+ {
174
+ className: cn(
175
+ "grow overflow-y-auto",
176
+ "px-4 py-6",
177
+ "sm:p-8",
178
+ "bg-agg-secondary text-agg-foreground",
179
+ classNames == null ? void 0 : classNames.root
180
+ ),
181
+ children
182
+ }
183
+ );
184
+ };
185
+ Modal.Body = ModalBody;
186
+ var ModalFooter = ({
187
+ children,
188
+ classNames,
189
+ hideBorder = false
190
+ }) => {
191
+ return /* @__PURE__ */ jsx(
192
+ "div",
193
+ {
194
+ className: cn(
195
+ "sticky bottom-0",
196
+ "bg-agg-secondary",
197
+ "flex h-[73px] w-full flex-row items-center justify-between gap-3",
198
+ "border-agg-separator p-4",
199
+ "sm:h-20 sm:justify-end sm:px-8 sm:py-5",
200
+ hideBorder ? "border-0" : "border-t",
201
+ classNames == null ? void 0 : classNames.root
202
+ ),
203
+ children
204
+ }
205
+ );
206
+ };
207
+ Modal.Footer = ModalFooter;
208
+ Modal.displayName = "Modal";
209
+
210
+ export {
211
+ Modal
212
+ };