@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,44 @@
1
+ import {
2
+ getIconA11yProps
3
+ } from "./chunk-BNDFQPHF.mjs";
4
+ import {
5
+ __objRest,
6
+ __spreadProps,
7
+ __spreadValues
8
+ } from "./chunk-GC3QIIH7.mjs";
9
+
10
+ // src/primitives/icon/svg/close.tsx
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ var CloseIcon = (_a) => {
13
+ var _b = _a, { title, className } = _b, props = __objRest(_b, ["title", "className"]);
14
+ return /* @__PURE__ */ jsxs(
15
+ "svg",
16
+ __spreadProps(__spreadValues(__spreadValues({
17
+ width: "16",
18
+ height: "16",
19
+ viewBox: "0 0 16 16",
20
+ fill: "none",
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ className
23
+ }, getIconA11yProps(title)), props), {
24
+ children: [
25
+ title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
26
+ /* @__PURE__ */ jsx(
27
+ "path",
28
+ {
29
+ d: "M12 4L4 12M4 4l8 8",
30
+ stroke: "currentColor",
31
+ strokeWidth: "2",
32
+ strokeLinecap: "round",
33
+ strokeLinejoin: "round"
34
+ }
35
+ )
36
+ ]
37
+ })
38
+ );
39
+ };
40
+ CloseIcon.displayName = "CloseIcon";
41
+
42
+ export {
43
+ CloseIcon
44
+ };
@@ -0,0 +1,323 @@
1
+ import {
2
+ VenueLogo
3
+ } from "./chunk-4ADCXJE6.mjs";
4
+ import {
5
+ Icon
6
+ } from "./chunk-DA6KZWSK.mjs";
7
+ import {
8
+ getIconA11yProps
9
+ } from "./chunk-BNDFQPHF.mjs";
10
+ import {
11
+ __objRest,
12
+ __spreadProps,
13
+ __spreadValues,
14
+ cn,
15
+ getMotionClassName
16
+ } from "./chunk-GC3QIIH7.mjs";
17
+
18
+ // src/primitives/search/index.tsx
19
+ import { useMemo } from "react";
20
+ import { useLabels, useSdkUiConfig } from "@agg/hooks";
21
+
22
+ // src/primitives/search/search-empty-icon.tsx
23
+ import { jsx, jsxs } from "react/jsx-runtime";
24
+ var SearchEmptyIcon = (_a) => {
25
+ var _b = _a, { title, className } = _b, props = __objRest(_b, ["title", "className"]);
26
+ return /* @__PURE__ */ jsxs(
27
+ "svg",
28
+ __spreadProps(__spreadValues(__spreadValues({
29
+ viewBox: "0 0 40 40",
30
+ fill: "none",
31
+ xmlns: "http://www.w3.org/2000/svg",
32
+ className
33
+ }, getIconA11yProps(title)), props), {
34
+ children: [
35
+ title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
36
+ /* @__PURE__ */ jsx("circle", { cx: "19.9987", cy: "20.0013", r: "9.2", stroke: "currentColor", strokeWidth: "1.6" }),
37
+ /* @__PURE__ */ jsx(
38
+ "ellipse",
39
+ {
40
+ cx: "19.9987",
41
+ cy: "20.0012",
42
+ rx: "17.2",
43
+ ry: "6.6",
44
+ transform: "rotate(-35 19.9987 20.0012)",
45
+ stroke: "currentColor",
46
+ strokeWidth: "1.6"
47
+ }
48
+ )
49
+ ]
50
+ })
51
+ );
52
+ };
53
+ SearchEmptyIcon.displayName = "SearchEmptyIcon";
54
+
55
+ // src/primitives/search/search.types.ts
56
+ import { z } from "zod";
57
+ var searchResultVenues = ["kalshi", "polymarket", "opinion", "probable"];
58
+ var isSearchResultVenue = (value) => {
59
+ if (typeof value !== "string")
60
+ return false;
61
+ return searchResultVenues.includes(value);
62
+ };
63
+ var searchResultVenueSchema = z.custom(
64
+ (value) => isSearchResultVenue(value),
65
+ "Invalid venue logo name"
66
+ );
67
+ var searchResultItemSchema = z.object({
68
+ id: z.string().min(1),
69
+ title: z.string().min(1),
70
+ thumbnailSrc: z.string().min(1),
71
+ thumbnailAlt: z.string().optional(),
72
+ venue: searchResultVenueSchema,
73
+ valueLabel: z.string().min(1),
74
+ contextLabel: z.string().min(1)
75
+ });
76
+ var searchResultItemsSchema = z.array(searchResultItemSchema);
77
+
78
+ // src/primitives/search/index.tsx
79
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
80
+ var SearchResultRow = ({
81
+ item,
82
+ resultAria,
83
+ onSelect,
84
+ classNames
85
+ }) => {
86
+ var _a;
87
+ const handleResultClick = () => {
88
+ onSelect == null ? void 0 : onSelect(item);
89
+ };
90
+ return /* @__PURE__ */ jsxs2(
91
+ "button",
92
+ {
93
+ type: "button",
94
+ className: cn(
95
+ "group flex w-full items-center gap-6 px-5 py-3 text-left",
96
+ "focus-visible:outline-none focus-visible:bg-agg-secondary-hover",
97
+ "hover:bg-agg-secondary-hover",
98
+ classNames == null ? void 0 : classNames.resultButton
99
+ ),
100
+ onClick: handleResultClick,
101
+ "aria-label": resultAria(item.title),
102
+ children: [
103
+ /* @__PURE__ */ jsxs2("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
104
+ /* @__PURE__ */ jsx2(
105
+ "img",
106
+ {
107
+ src: item.thumbnailSrc,
108
+ alt: (_a = item.thumbnailAlt) != null ? _a : "",
109
+ className: cn(
110
+ "h-10 w-10 shrink-0 rounded-[8px] object-cover",
111
+ classNames == null ? void 0 : classNames.resultThumbnail
112
+ )
113
+ }
114
+ ),
115
+ /* @__PURE__ */ jsx2(
116
+ "p",
117
+ {
118
+ className: cn(
119
+ "min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap font-agg-sans text-agg-base leading-agg-6 font-agg-normal text-agg-foreground",
120
+ classNames == null ? void 0 : classNames.resultTitle
121
+ ),
122
+ children: item.title
123
+ }
124
+ )
125
+ ] }),
126
+ /* @__PURE__ */ jsxs2("div", { className: cn("flex w-[200px] shrink-0 items-center gap-2", classNames == null ? void 0 : classNames.resultMeta), children: [
127
+ /* @__PURE__ */ jsx2(VenueLogo, { venue: item.venue, size: "s" }),
128
+ /* @__PURE__ */ jsxs2("div", { className: "flex min-w-0 flex-1 items-baseline gap-2", children: [
129
+ /* @__PURE__ */ jsx2(
130
+ "p",
131
+ {
132
+ className: cn(
133
+ "shrink-0 whitespace-nowrap font-agg-sans text-[18px] leading-7 font-agg-bold text-agg-foreground",
134
+ classNames == null ? void 0 : classNames.resultValue
135
+ ),
136
+ children: item.valueLabel
137
+ }
138
+ ),
139
+ /* @__PURE__ */ jsx2(
140
+ "p",
141
+ {
142
+ className: cn(
143
+ "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap font-agg-sans text-agg-sm leading-agg-5 font-agg-normal text-agg-foreground",
144
+ classNames == null ? void 0 : classNames.resultContext
145
+ ),
146
+ children: item.contextLabel
147
+ }
148
+ )
149
+ ] })
150
+ ] }),
151
+ /* @__PURE__ */ jsx2(
152
+ Icon,
153
+ {
154
+ name: "chevron-right",
155
+ size: "m",
156
+ className: cn("h-5 w-5 shrink-0 text-agg-muted-foreground", classNames == null ? void 0 : classNames.resultChevron)
157
+ }
158
+ )
159
+ ]
160
+ }
161
+ );
162
+ };
163
+ var getValidatedResults = (results) => {
164
+ if (!(results == null ? void 0 : results.length))
165
+ return [];
166
+ const parsedResults = searchResultItemsSchema.safeParse(results);
167
+ if (!parsedResults.success)
168
+ return [];
169
+ return parsedResults.data;
170
+ };
171
+ var Search = ({
172
+ value,
173
+ onValueChange,
174
+ results,
175
+ onSelect,
176
+ classNames,
177
+ inputProps
178
+ }) => {
179
+ const labels = useLabels();
180
+ const { enableAnimations } = useSdkUiConfig();
181
+ const validatedResults = useMemo(() => {
182
+ return getValidatedResults(results);
183
+ }, [results]);
184
+ const hasSearchValue = value.trim().length > 0;
185
+ const resolvedIsActive = hasSearchValue;
186
+ const shouldRenderDropdown = hasSearchValue;
187
+ const shouldRenderNoResults = shouldRenderDropdown && !validatedResults.length;
188
+ const shouldRenderResults = shouldRenderDropdown && !!validatedResults.length;
189
+ const handleInputChange = (event) => {
190
+ onValueChange(event.target.value);
191
+ };
192
+ return /* @__PURE__ */ jsxs2("div", { className: cn("flex w-full flex-col gap-1", classNames == null ? void 0 : classNames.root), children: [
193
+ /* @__PURE__ */ jsx2("label", { className: "w-full", children: /* @__PURE__ */ jsxs2(
194
+ "div",
195
+ {
196
+ className: cn(
197
+ "flex h-10 w-full items-center gap-2 rounded-[4px] bg-agg-secondary px-3",
198
+ resolvedIsActive ? "border-2 border-agg-primary" : "border border-agg-separator",
199
+ "focus-within:border-2 focus-within:border-agg-primary",
200
+ getMotionClassName(
201
+ enableAnimations,
202
+ "transition-[border-color,box-shadow] duration-200 ease-out"
203
+ ),
204
+ classNames == null ? void 0 : classNames.inputContainer
205
+ ),
206
+ children: [
207
+ /* @__PURE__ */ jsx2(
208
+ Icon,
209
+ {
210
+ name: "search",
211
+ size: "s",
212
+ className: cn("text-agg-muted-foreground", classNames == null ? void 0 : classNames.searchIcon)
213
+ }
214
+ ),
215
+ /* @__PURE__ */ jsx2(
216
+ "input",
217
+ __spreadProps(__spreadValues({}, inputProps), {
218
+ type: "text",
219
+ value,
220
+ onChange: handleInputChange,
221
+ placeholder: labels.search.placeholder,
222
+ "aria-label": labels.search.inputAria,
223
+ className: cn(
224
+ "h-6 w-full min-w-0 border-0 bg-transparent p-0",
225
+ "font-agg-sans text-agg-base leading-agg-6 font-agg-normal text-agg-foreground",
226
+ "placeholder:text-agg-muted-foreground",
227
+ "outline-none focus:outline-none",
228
+ "disabled:cursor-not-allowed disabled:text-agg-muted-foreground",
229
+ classNames == null ? void 0 : classNames.input
230
+ )
231
+ })
232
+ )
233
+ ]
234
+ }
235
+ ) }),
236
+ shouldRenderResults ? /* @__PURE__ */ jsx2(
237
+ "div",
238
+ {
239
+ className: cn(
240
+ "w-full overflow-hidden rounded-agg-xl border border-agg-separator bg-agg-secondary py-2 shadow-[0px_8px_16px_0px_rgba(0,0,0,0.1)]",
241
+ classNames == null ? void 0 : classNames.dropdown
242
+ ),
243
+ children: /* @__PURE__ */ jsx2(
244
+ "ul",
245
+ {
246
+ className: cn("m-0 flex list-none flex-col p-0", classNames == null ? void 0 : classNames.resultsList),
247
+ role: "listbox",
248
+ "aria-label": labels.search.resultsAria,
249
+ children: validatedResults.map((item, index) => /* @__PURE__ */ jsx2(
250
+ "li",
251
+ {
252
+ className: cn(index > 0 && "border-t border-agg-separator", classNames == null ? void 0 : classNames.resultItem),
253
+ children: /* @__PURE__ */ jsx2(
254
+ SearchResultRow,
255
+ {
256
+ item,
257
+ resultAria: labels.search.resultAria,
258
+ onSelect,
259
+ classNames
260
+ }
261
+ )
262
+ },
263
+ item.id
264
+ ))
265
+ }
266
+ )
267
+ }
268
+ ) : null,
269
+ shouldRenderNoResults ? /* @__PURE__ */ jsx2(
270
+ "div",
271
+ {
272
+ className: cn(
273
+ "w-full overflow-hidden rounded-agg-xl border border-agg-separator bg-agg-secondary py-10 shadow-[0px_8px_16px_0px_rgba(0,0,0,0.1)]",
274
+ classNames == null ? void 0 : classNames.emptyState
275
+ ),
276
+ children: /* @__PURE__ */ jsxs2(
277
+ "div",
278
+ {
279
+ className: cn("flex flex-col items-center gap-5", classNames == null ? void 0 : classNames.emptyStateContent),
280
+ role: "status",
281
+ "aria-live": "polite",
282
+ children: [
283
+ /* @__PURE__ */ jsx2(
284
+ SearchEmptyIcon,
285
+ {
286
+ className: cn("h-10 w-10 text-agg-muted-foreground", classNames == null ? void 0 : classNames.emptyStateIcon),
287
+ "aria-hidden": true
288
+ }
289
+ ),
290
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-col items-center gap-1 text-center", children: [
291
+ /* @__PURE__ */ jsx2(
292
+ "p",
293
+ {
294
+ className: cn(
295
+ "font-agg-sans text-agg-base leading-agg-6 font-agg-bold text-agg-foreground",
296
+ classNames == null ? void 0 : classNames.emptyStateTitle
297
+ ),
298
+ children: labels.search.noResultsTitle
299
+ }
300
+ ),
301
+ /* @__PURE__ */ jsx2(
302
+ "p",
303
+ {
304
+ className: cn(
305
+ "font-agg-sans text-agg-sm leading-agg-5 font-agg-normal text-agg-foreground",
306
+ classNames == null ? void 0 : classNames.emptyStateDescription
307
+ ),
308
+ children: labels.search.noResultsDescription
309
+ }
310
+ )
311
+ ] })
312
+ ]
313
+ }
314
+ )
315
+ }
316
+ ) : null
317
+ ] });
318
+ };
319
+ Search.displayName = "Search";
320
+
321
+ export {
322
+ Search
323
+ };
@@ -0,0 +1,142 @@
1
+ import {
2
+ resolveOutcomeTitle,
3
+ selectPrimaryVenueMarket,
4
+ sortOutcomes
5
+ } from "./chunk-PAQ542ER.mjs";
6
+ import {
7
+ fallbackLineColors,
8
+ lineColorByVenue
9
+ } from "./chunk-NFYS557L.mjs";
10
+
11
+ // src/events/item-details/event-list-item-details.utils.ts
12
+ import dayjs from "dayjs";
13
+ var normalizeLabel = (value) => {
14
+ return value.trim().toLowerCase();
15
+ };
16
+ var isDateLikeLabel = (value) => {
17
+ if (!value.trim())
18
+ return false;
19
+ return dayjs(value).isValid();
20
+ };
21
+ var formatDateLabel = (value) => {
22
+ if (!isDateLikeLabel(value))
23
+ return value;
24
+ return dayjs(value).format("MMM D, YYYY");
25
+ };
26
+ var getDefaultSelectedTimeRange = (value) => {
27
+ if (!value)
28
+ return "1M";
29
+ return value;
30
+ };
31
+ var getTimeWindowByRange = (range) => {
32
+ const endTs = dayjs().unix();
33
+ if (range === "1H") {
34
+ return {
35
+ startTs: dayjs.unix(endTs).subtract(1, "hour").unix(),
36
+ endTs,
37
+ intervalMinutes: 5
38
+ };
39
+ }
40
+ if (range === "6H") {
41
+ return {
42
+ startTs: dayjs.unix(endTs).subtract(6, "hour").unix(),
43
+ endTs,
44
+ intervalMinutes: 15
45
+ };
46
+ }
47
+ if (range === "1D") {
48
+ return {
49
+ startTs: dayjs.unix(endTs).subtract(1, "day").unix(),
50
+ endTs,
51
+ intervalMinutes: 30
52
+ };
53
+ }
54
+ if (range === "1W") {
55
+ return {
56
+ startTs: dayjs.unix(endTs).subtract(7, "day").unix(),
57
+ endTs,
58
+ intervalMinutes: 60
59
+ };
60
+ }
61
+ if (range === "1M") {
62
+ return {
63
+ startTs: dayjs.unix(endTs).subtract(1, "month").unix(),
64
+ endTs,
65
+ intervalMinutes: 240
66
+ };
67
+ }
68
+ return {
69
+ startTs: dayjs.unix(endTs).subtract(6, "month").unix(),
70
+ endTs,
71
+ intervalMinutes: 720
72
+ };
73
+ };
74
+ var resolveOutcomeLabels = (venueMarkets) => {
75
+ var _a;
76
+ const primaryMarket = selectPrimaryVenueMarket(venueMarkets);
77
+ const initialLabels = ((_a = primaryMarket == null ? void 0 : primaryMarket.venueMarketOutcomes) != null ? _a : []).map(
78
+ (outcome) => resolveOutcomeTitle(outcome)
79
+ );
80
+ const labels = new Set(initialLabels);
81
+ venueMarkets.forEach((market) => {
82
+ sortOutcomes(market.venueMarketOutcomes).forEach((outcome) => {
83
+ labels.add(resolveOutcomeTitle(outcome));
84
+ });
85
+ });
86
+ return [...labels];
87
+ };
88
+ var resolveDefaultOutcomeLabel = (outcomeLabels) => {
89
+ return outcomeLabels[0];
90
+ };
91
+ var matchOutcomeByLabel = (outcome, selectedOutcomeLabel) => {
92
+ const normalizedSelectedLabel = normalizeLabel(selectedOutcomeLabel);
93
+ const resolvedTitle = resolveOutcomeTitle(outcome);
94
+ return normalizeLabel(resolvedTitle) === normalizedSelectedLabel || normalizeLabel(outcome.label) === normalizedSelectedLabel;
95
+ };
96
+ var resolveOutcomesByVenue = (venueMarkets, selectedOutcomeLabel) => {
97
+ return venueMarkets.map((market) => {
98
+ const matchedOutcome = sortOutcomes(market.venueMarketOutcomes).find((outcome) => {
99
+ return matchOutcomeByLabel(outcome, selectedOutcomeLabel);
100
+ });
101
+ if (!matchedOutcome)
102
+ return null;
103
+ return {
104
+ venue: market.venue,
105
+ market,
106
+ outcome: matchedOutcome
107
+ };
108
+ }).filter((item) => item != null);
109
+ };
110
+ var buildPriceHistoryGroups = (selectedOutcomes) => {
111
+ const venueMarketOutcomeIdsByVenue = /* @__PURE__ */ new Map();
112
+ selectedOutcomes.forEach(({ venue, outcome }) => {
113
+ var _a;
114
+ if (!venueMarketOutcomeIdsByVenue.has(venue)) {
115
+ venueMarketOutcomeIdsByVenue.set(venue, []);
116
+ }
117
+ (_a = venueMarketOutcomeIdsByVenue.get(venue)) == null ? void 0 : _a.push(outcome.id);
118
+ });
119
+ return [...venueMarketOutcomeIdsByVenue.entries()].map(([venue, venueMarketOutcomeIds]) => ({
120
+ venue,
121
+ venueMarketOutcomeIds
122
+ })).filter((group) => group.venueMarketOutcomeIds.length > 0);
123
+ };
124
+ var resolveSeriesColor = (venue, index) => {
125
+ var _a;
126
+ const colorFromVenue = lineColorByVenue[venue];
127
+ if (colorFromVenue)
128
+ return colorFromVenue;
129
+ return (_a = fallbackLineColors[index % fallbackLineColors.length]) != null ? _a : "#2e5cff";
130
+ };
131
+
132
+ export {
133
+ isDateLikeLabel,
134
+ formatDateLabel,
135
+ getDefaultSelectedTimeRange,
136
+ getTimeWindowByRange,
137
+ resolveOutcomeLabels,
138
+ resolveDefaultOutcomeLabel,
139
+ resolveOutcomesByVenue,
140
+ buildPriceHistoryGroups,
141
+ resolveSeriesColor
142
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ __objRest,
3
+ __spreadValues,
4
+ cn,
5
+ getMotionClassName
6
+ } from "./chunk-GC3QIIH7.mjs";
7
+
8
+ // src/primitives/card/index.tsx
9
+ import { useSdkUiConfig } from "@agg-market/hooks";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var Card = (_a) => {
12
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
13
+ const { enableAnimations } = useSdkUiConfig();
14
+ return /* @__PURE__ */ jsx(
15
+ "div",
16
+ __spreadValues({
17
+ className: cn(
18
+ "flex w-full flex-col font-agg-sans",
19
+ "rounded-agg-xl border border-agg-separator",
20
+ "bg-agg-secondary text-agg-foreground shadow-agg-card",
21
+ getMotionClassName(enableAnimations, "transition-shadow hover:shadow-agg-card-hover"),
22
+ className
23
+ )
24
+ }, props)
25
+ );
26
+ };
27
+ Card.displayName = "Card";
28
+
29
+ export {
30
+ Card
31
+ };
@@ -0,0 +1,40 @@
1
+ import { ButtonHTMLAttributes, JSX } from 'react';
2
+
3
+ type ConnectButtonActionHandler = () => Promise<void> | void;
4
+ type ConnectButtonClassNames = {
5
+ balanceChip?: string;
6
+ balanceText?: string;
7
+ connectButton?: string;
8
+ connectedRow?: string;
9
+ depositButton?: string;
10
+ profileMenuActionItem?: string;
11
+ profileMenuContent?: string;
12
+ profileMenuSection?: string;
13
+ profileMenuSeparator?: string;
14
+ profileTrigger?: string;
15
+ profileTriggerLabel?: string;
16
+ root?: string;
17
+ signInButton?: string;
18
+ };
19
+ type ConnectButtonButtonProps = Pick<ButtonHTMLAttributes<HTMLButtonElement>, "id" | "name" | "tabIndex" | "autoFocus" | "aria-describedby"> & {
20
+ "data-testid"?: string;
21
+ };
22
+ type ConnectButtonProps = {
23
+ autoSignInOnConnect?: boolean;
24
+ buttonProps?: ConnectButtonButtonProps;
25
+ classNames?: ConnectButtonClassNames;
26
+ disabled?: boolean;
27
+ onConnect?: ConnectButtonActionHandler;
28
+ onDepositClick?: ConnectButtonActionHandler;
29
+ onDisconnect?: ConnectButtonActionHandler;
30
+ onProfileClick?: ConnectButtonActionHandler;
31
+ onViewAllBalancesClick?: ConnectButtonActionHandler;
32
+ onWithdrawClick?: ConnectButtonActionHandler;
33
+ };
34
+
35
+ declare const ConnectButton: {
36
+ ({ autoSignInOnConnect, buttonProps, classNames, disabled, onConnect, onDepositClick, onDisconnect, onProfileClick, onViewAllBalancesClick, onWithdrawClick, }: ConnectButtonProps): JSX.Element;
37
+ displayName: string;
38
+ };
39
+
40
+ export { ConnectButton, type ConnectButtonButtonProps, type ConnectButtonClassNames, type ConnectButtonProps };
@@ -0,0 +1,40 @@
1
+ import { ButtonHTMLAttributes, JSX } from 'react';
2
+
3
+ type ConnectButtonActionHandler = () => Promise<void> | void;
4
+ type ConnectButtonClassNames = {
5
+ balanceChip?: string;
6
+ balanceText?: string;
7
+ connectButton?: string;
8
+ connectedRow?: string;
9
+ depositButton?: string;
10
+ profileMenuActionItem?: string;
11
+ profileMenuContent?: string;
12
+ profileMenuSection?: string;
13
+ profileMenuSeparator?: string;
14
+ profileTrigger?: string;
15
+ profileTriggerLabel?: string;
16
+ root?: string;
17
+ signInButton?: string;
18
+ };
19
+ type ConnectButtonButtonProps = Pick<ButtonHTMLAttributes<HTMLButtonElement>, "id" | "name" | "tabIndex" | "autoFocus" | "aria-describedby"> & {
20
+ "data-testid"?: string;
21
+ };
22
+ type ConnectButtonProps = {
23
+ autoSignInOnConnect?: boolean;
24
+ buttonProps?: ConnectButtonButtonProps;
25
+ classNames?: ConnectButtonClassNames;
26
+ disabled?: boolean;
27
+ onConnect?: ConnectButtonActionHandler;
28
+ onDepositClick?: ConnectButtonActionHandler;
29
+ onDisconnect?: ConnectButtonActionHandler;
30
+ onProfileClick?: ConnectButtonActionHandler;
31
+ onViewAllBalancesClick?: ConnectButtonActionHandler;
32
+ onWithdrawClick?: ConnectButtonActionHandler;
33
+ };
34
+
35
+ declare const ConnectButton: {
36
+ ({ autoSignInOnConnect, buttonProps, classNames, disabled, onConnect, onDepositClick, onDisconnect, onProfileClick, onViewAllBalancesClick, onWithdrawClick, }: ConnectButtonProps): JSX.Element;
37
+ displayName: string;
38
+ };
39
+
40
+ export { ConnectButton, type ConnectButtonButtonProps, type ConnectButtonClassNames, type ConnectButtonProps };