@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,741 @@
1
+ import {
2
+ Modal
3
+ } from "./chunk-CKTAVEW2.mjs";
4
+ import {
5
+ VenueLogo
6
+ } from "./chunk-LY6474C4.mjs";
7
+ import {
8
+ BestPricesIcon,
9
+ CheckCircleIcon,
10
+ ChevronRightIcon,
11
+ CreateAccountIcon,
12
+ LinkAccountsIcon,
13
+ ProfileIcon,
14
+ StayInControlIcon,
15
+ WarningIcon
16
+ } from "./chunk-DA6KZWSK.mjs";
17
+ import {
18
+ Button
19
+ } from "./chunk-J6L5BLKX.mjs";
20
+ import {
21
+ __async,
22
+ cn
23
+ } from "./chunk-GC3QIIH7.mjs";
24
+
25
+ // src/onboarding/index.tsx
26
+ import { useCallback as useCallback4, useEffect, useState as useState4 } from "react";
27
+ import { useLabels as useLabels6 } from "@agg-market/hooks";
28
+ import * as Dialog3 from "@radix-ui/react-dialog";
29
+
30
+ // src/onboarding/onboarding-modal.constants.ts
31
+ var HOW_IT_WORKS_FEATURE_KEYS = [
32
+ "createAccount",
33
+ "linkAccounts",
34
+ "bestPrices",
35
+ "stayInControl"
36
+ ];
37
+ var ONBOARDING_STEPS = {
38
+ HOW_IT_WORKS: 0,
39
+ PROFILE_SETUP: 1,
40
+ CONNECT_ACCOUNTS: 2
41
+ };
42
+ var ONCHAIN_VENUES = [
43
+ "polymarket",
44
+ "opinion",
45
+ "probable"
46
+ ];
47
+
48
+ // src/onboarding/steps/how-it-works.tsx
49
+ import { useLabels } from "@agg-market/hooks";
50
+ import { jsx, jsxs } from "react/jsx-runtime";
51
+ var defaultIcons = {
52
+ createAccount: /* @__PURE__ */ jsx(CreateAccountIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" }),
53
+ linkAccounts: /* @__PURE__ */ jsx(LinkAccountsIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" }),
54
+ bestPrices: /* @__PURE__ */ jsx(BestPricesIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" }),
55
+ stayInControl: /* @__PURE__ */ jsx(StayInControlIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" })
56
+ };
57
+ var HowItWorksStep = ({ onContinue, icons }) => {
58
+ const labels = useLabels();
59
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
60
+ /* @__PURE__ */ jsx("h2", { className: "text-center text-agg-2xl font-agg-bold text-agg-foreground sm:text-agg-3xl", children: labels.onboarding.howItWorks.title }),
61
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3", children: HOW_IT_WORKS_FEATURE_KEYS.map((featureKey) => {
62
+ var _a;
63
+ const icon = (_a = icons == null ? void 0 : icons[featureKey]) != null ? _a : defaultIcons[featureKey];
64
+ const feature = labels.onboarding.howItWorks.features[featureKey];
65
+ return /* @__PURE__ */ jsxs(
66
+ "div",
67
+ {
68
+ className: cn(
69
+ "flex items-center gap-4 p-4 sm:p-5",
70
+ "rounded-agg-lg",
71
+ "bg-agg-secondary-hover"
72
+ ),
73
+ children: [
74
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 min-w-0 gap-[6px]", children: [
75
+ /* @__PURE__ */ jsx("p", { className: "text-agg-base font-agg-bold leading-agg-6 text-agg-foreground", children: feature.title }),
76
+ /* @__PURE__ */ jsx("p", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: feature.description })
77
+ ] }),
78
+ icon ? /* @__PURE__ */ jsx("div", { className: "hidden shrink-0 items-center justify-center text-agg-muted-foreground sm:flex", children: icon }) : null
79
+ ]
80
+ },
81
+ featureKey
82
+ );
83
+ }) }),
84
+ /* @__PURE__ */ jsx(Button, { variant: "primary", size: "l", className: "w-full", onClick: onContinue, children: labels.onboarding.howItWorks.continue })
85
+ ] });
86
+ };
87
+ HowItWorksStep.displayName = "HowItWorksStep";
88
+
89
+ // src/onboarding/steps/profile-setup.tsx
90
+ import { useCallback, useRef, useState } from "react";
91
+ import { useLabels as useLabels2 } from "@agg-market/hooks";
92
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
93
+ var ProfileSetupStep = ({ onContinue }) => {
94
+ const labels = useLabels2();
95
+ const [username, setUsername] = useState("");
96
+ const [avatarFile, setAvatarFile] = useState();
97
+ const [avatarPreview, setAvatarPreview] = useState();
98
+ const fileInputRef = useRef(null);
99
+ const handleAvatarClick = useCallback(() => {
100
+ var _a;
101
+ (_a = fileInputRef.current) == null ? void 0 : _a.click();
102
+ }, []);
103
+ const handleFileChange = useCallback((e) => {
104
+ var _a;
105
+ const file = (_a = e.target.files) == null ? void 0 : _a[0];
106
+ if (!file)
107
+ return;
108
+ setAvatarFile(file);
109
+ const reader = new FileReader();
110
+ reader.onload = (event) => {
111
+ var _a2;
112
+ setAvatarPreview((_a2 = event.target) == null ? void 0 : _a2.result);
113
+ };
114
+ reader.readAsDataURL(file);
115
+ }, []);
116
+ const handleContinue = useCallback(() => {
117
+ onContinue({
118
+ username,
119
+ avatarFile,
120
+ avatarPreview
121
+ });
122
+ }, [username, avatarFile, avatarPreview, onContinue]);
123
+ return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-6 sm:gap-8", children: [
124
+ /* @__PURE__ */ jsx2("h2", { className: "text-center text-agg-2xl font-agg-bold text-agg-foreground sm:text-agg-3xl", children: labels.onboarding.profileSetup.title }),
125
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-center", children: [
126
+ /* @__PURE__ */ jsx2(
127
+ "button",
128
+ {
129
+ type: "button",
130
+ onClick: handleAvatarClick,
131
+ className: cn(
132
+ "relative flex items-center justify-center",
133
+ "h-[80px] w-[80px]",
134
+ "rounded-agg-full",
135
+ "border-2 border-dashed border-agg-separator",
136
+ "bg-agg-secondary",
137
+ "hover:border-agg-muted-foreground hover:bg-agg-secondary-hover",
138
+ "transition-colors cursor-pointer",
139
+ "overflow-hidden"
140
+ ),
141
+ "aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
142
+ children: avatarPreview ? /* @__PURE__ */ jsx2(
143
+ "img",
144
+ {
145
+ src: avatarPreview,
146
+ alt: labels.onboarding.profileSetup.profilePreviewAlt,
147
+ className: "h-full w-full object-cover"
148
+ }
149
+ ) : /* @__PURE__ */ jsx2(ProfileIcon, { className: "h-8 w-8 text-agg-muted-foreground" })
150
+ }
151
+ ),
152
+ /* @__PURE__ */ jsx2(
153
+ "input",
154
+ {
155
+ ref: fileInputRef,
156
+ type: "file",
157
+ accept: "image/*",
158
+ onChange: handleFileChange,
159
+ className: "hidden",
160
+ "aria-hidden": "true"
161
+ }
162
+ )
163
+ ] }),
164
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-2", children: [
165
+ /* @__PURE__ */ jsx2(
166
+ "label",
167
+ {
168
+ htmlFor: "onboarding-username",
169
+ className: "text-agg-sm font-agg-bold text-agg-foreground",
170
+ children: labels.onboarding.profileSetup.usernameLabel
171
+ }
172
+ ),
173
+ /* @__PURE__ */ jsx2(
174
+ "input",
175
+ {
176
+ id: "onboarding-username",
177
+ type: "text",
178
+ value: username,
179
+ onChange: (e) => setUsername(e.target.value),
180
+ placeholder: labels.onboarding.profileSetup.usernamePlaceholder,
181
+ className: cn(
182
+ "w-full px-4 py-3",
183
+ "rounded-agg-xl",
184
+ "border border-agg-separator",
185
+ "bg-agg-secondary text-agg-foreground",
186
+ "placeholder:text-agg-muted-foreground",
187
+ "outline-none",
188
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
189
+ "transition-colors",
190
+ "text-agg-sm sm:text-agg-base"
191
+ )
192
+ }
193
+ )
194
+ ] }),
195
+ /* @__PURE__ */ jsx2(Button, { variant: "primary", size: "l", className: "w-full", onClick: handleContinue, children: labels.onboarding.profileSetup.continue })
196
+ ] });
197
+ };
198
+ ProfileSetupStep.displayName = "ProfileSetupStep";
199
+
200
+ // src/onboarding/steps/connect-accounts.tsx
201
+ import { useLabels as useLabels3 } from "@agg-market/hooks";
202
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
203
+ var OnchainVenueLogos = () => {
204
+ return /* @__PURE__ */ jsx3("div", { className: "flex -space-x-1.5", children: ONCHAIN_VENUES.map((venue, index) => /* @__PURE__ */ jsx3(
205
+ "div",
206
+ {
207
+ className: "overflow-hidden rounded-agg-lg",
208
+ style: { zIndex: ONCHAIN_VENUES.length - index },
209
+ children: /* @__PURE__ */ jsx3(VenueLogo, { venue, size: "l" })
210
+ },
211
+ venue
212
+ )) });
213
+ };
214
+ var VenueCard = ({
215
+ logos,
216
+ title,
217
+ mobileTitle,
218
+ description,
219
+ mobileDescription,
220
+ onConnect,
221
+ connected = false
222
+ }) => {
223
+ const labels = useLabels3();
224
+ const action = connected ? /* @__PURE__ */ jsx3(CheckCircleIcon, { className: "h-6 w-6 text-agg-success" }) : /* @__PURE__ */ jsx3(
225
+ Button,
226
+ {
227
+ variant: "tertiary",
228
+ size: "m",
229
+ className: "h-auto p-0 text-agg-primary hover:bg-transparent hover:text-agg-primary-hover",
230
+ onClick: onConnect,
231
+ children: labels.onboarding.connectAccounts.connect
232
+ }
233
+ );
234
+ const mobileAction = connected ? /* @__PURE__ */ jsx3(CheckCircleIcon, { className: "h-6 w-6 text-agg-success" }) : /* @__PURE__ */ jsx3(
235
+ Button,
236
+ {
237
+ variant: "tertiary",
238
+ size: "m",
239
+ className: "h-auto p-0 text-agg-primary hover:bg-transparent hover:text-agg-primary-hover",
240
+ onClick: onConnect,
241
+ suffix: /* @__PURE__ */ jsx3(ChevronRightIcon, { className: "h-4 w-4" }),
242
+ children: labels.onboarding.connectAccounts.connectAccount
243
+ }
244
+ );
245
+ return /* @__PURE__ */ jsxs3(
246
+ "div",
247
+ {
248
+ className: cn(
249
+ "rounded-agg-lg p-4 sm:p-5",
250
+ connected ? "bg-agg-success/5" : "bg-agg-secondary-hover"
251
+ ),
252
+ children: [
253
+ /* @__PURE__ */ jsxs3("div", { className: "hidden sm:flex items-center gap-4", children: [
254
+ /* @__PURE__ */ jsx3("div", { className: "shrink-0", children: logos }),
255
+ /* @__PURE__ */ jsxs3("div", { className: "flex-1 min-w-0", children: [
256
+ /* @__PURE__ */ jsx3("p", { className: "text-agg-base font-agg-bold text-agg-foreground", children: title }),
257
+ /* @__PURE__ */ jsx3("p", { className: "mt-0.5 text-agg-sm text-agg-muted-foreground", children: description })
258
+ ] }),
259
+ /* @__PURE__ */ jsx3("div", { className: "shrink-0", children: action })
260
+ ] }),
261
+ /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-3 sm:hidden", children: [
262
+ /* @__PURE__ */ jsx3("div", { className: "shrink-0", children: logos }),
263
+ /* @__PURE__ */ jsxs3("div", { children: [
264
+ /* @__PURE__ */ jsx3("p", { className: "text-agg-base font-agg-bold text-agg-foreground", children: mobileTitle != null ? mobileTitle : title }),
265
+ /* @__PURE__ */ jsx3("p", { className: "mt-0.5 text-agg-sm text-agg-muted-foreground", children: mobileDescription != null ? mobileDescription : description })
266
+ ] }),
267
+ /* @__PURE__ */ jsx3("div", { children: mobileAction })
268
+ ] })
269
+ ]
270
+ }
271
+ );
272
+ };
273
+ var ConnectAccountsStep = ({
274
+ onConnectOnchain,
275
+ onConnectKalshi,
276
+ onContinue,
277
+ connectedOnchain = false,
278
+ connectedKalshi = false
279
+ }) => {
280
+ const labels = useLabels3();
281
+ const canContinue = connectedOnchain || connectedKalshi;
282
+ return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-6", children: [
283
+ /* @__PURE__ */ jsx3("h2", { className: "text-center text-agg-2xl font-agg-bold text-agg-foreground sm:text-agg-3xl", children: labels.onboarding.connectAccounts.title }),
284
+ /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-3", children: [
285
+ /* @__PURE__ */ jsx3(
286
+ VenueCard,
287
+ {
288
+ logos: /* @__PURE__ */ jsx3(OnchainVenueLogos, {}),
289
+ title: labels.onboarding.connectAccounts.onchainTitle,
290
+ mobileTitle: labels.onboarding.connectAccounts.onchainMobileTitle(
291
+ ONCHAIN_VENUES.length - 1
292
+ ),
293
+ description: labels.onboarding.connectAccounts.onchainDescription,
294
+ mobileDescription: labels.onboarding.connectAccounts.onchainMobileDescription,
295
+ onConnect: onConnectOnchain,
296
+ connected: connectedOnchain
297
+ }
298
+ ),
299
+ /* @__PURE__ */ jsx3(
300
+ VenueCard,
301
+ {
302
+ logos: /* @__PURE__ */ jsx3("div", { className: "overflow-hidden rounded-agg-lg", children: /* @__PURE__ */ jsx3(VenueLogo, { venue: "kalshi", size: "l" }) }),
303
+ title: labels.onboarding.connectAccounts.kalshiTitle,
304
+ mobileTitle: labels.onboarding.connectAccounts.kalshiMobileTitle,
305
+ description: labels.onboarding.connectAccounts.kalshiDescription,
306
+ mobileDescription: labels.onboarding.connectAccounts.kalshiMobileDescription,
307
+ onConnect: onConnectKalshi,
308
+ connected: connectedKalshi
309
+ }
310
+ )
311
+ ] }),
312
+ /* @__PURE__ */ jsx3(
313
+ Button,
314
+ {
315
+ variant: "primary",
316
+ size: "l",
317
+ className: "w-full",
318
+ onClick: onContinue,
319
+ disabled: !canContinue,
320
+ children: labels.onboarding.connectAccounts.continue
321
+ }
322
+ )
323
+ ] });
324
+ };
325
+ ConnectAccountsStep.displayName = "ConnectAccountsStep";
326
+
327
+ // src/onboarding/steps/connect-kalshi-modal.tsx
328
+ import { useCallback as useCallback2, useState as useState2 } from "react";
329
+ import { useLabels as useLabels4 } from "@agg-market/hooks";
330
+ import * as Dialog from "@radix-ui/react-dialog";
331
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
332
+ var ConnectKalshiModal = ({
333
+ open,
334
+ onOpenChange,
335
+ onVerify
336
+ }) => {
337
+ const labels = useLabels4();
338
+ const [apiKeyId, setApiKeyId] = useState2("");
339
+ const [privateKey, setPrivateKey] = useState2("");
340
+ const [verifying, setVerifying] = useState2(false);
341
+ const [error, setError] = useState2();
342
+ const canVerify = apiKeyId.trim().length > 0 && privateKey.trim().length > 0;
343
+ const handleCancel = useCallback2(() => {
344
+ onOpenChange(false);
345
+ }, [onOpenChange]);
346
+ const handleVerify = useCallback2(() => __async(void 0, null, function* () {
347
+ if (!canVerify || verifying)
348
+ return;
349
+ setVerifying(true);
350
+ setError(void 0);
351
+ try {
352
+ const credentials = {
353
+ apiKeyId: apiKeyId.trim(),
354
+ privateKey: privateKey.trim()
355
+ };
356
+ yield onVerify(credentials);
357
+ setApiKeyId("");
358
+ setPrivateKey("");
359
+ onOpenChange(false);
360
+ } catch (err) {
361
+ setError(
362
+ err instanceof Error ? err.message : labels.onboarding.connectKalshiModal.fallbackError
363
+ );
364
+ } finally {
365
+ setVerifying(false);
366
+ }
367
+ }), [
368
+ apiKeyId,
369
+ canVerify,
370
+ labels.onboarding.connectKalshiModal.fallbackError,
371
+ onOpenChange,
372
+ onVerify,
373
+ privateKey,
374
+ verifying
375
+ ]);
376
+ const handleOpenChange = useCallback2(
377
+ (value) => {
378
+ if (value) {
379
+ setApiKeyId("");
380
+ setPrivateKey("");
381
+ setError(void 0);
382
+ setVerifying(false);
383
+ }
384
+ onOpenChange(value);
385
+ },
386
+ [onOpenChange]
387
+ );
388
+ return /* @__PURE__ */ jsx4(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs4(Modal.Container, { maxWidth: "600px", "aria-label": labels.onboarding.connectKalshiModal.ariaLabel, children: [
389
+ /* @__PURE__ */ jsx4(Dialog.Title, { className: "sr-only", children: labels.onboarding.connectKalshiModal.title }),
390
+ /* @__PURE__ */ jsx4(Modal.Header, { hideClose: false, hideBorder: true }),
391
+ /* @__PURE__ */ jsx4(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-8 items-center", children: [
392
+ /* @__PURE__ */ jsx4("div", { className: "overflow-hidden rounded-agg-lg", children: /* @__PURE__ */ jsx4(VenueLogo, { venue: "kalshi", size: "xl" }) }),
393
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-4 items-center text-center", children: [
394
+ /* @__PURE__ */ jsx4("h2", { className: "text-agg-2xl font-agg-bold text-agg-foreground", children: labels.onboarding.connectKalshiModal.title }),
395
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-base leading-agg-6 text-agg-foreground", children: labels.onboarding.connectKalshiModal.description })
396
+ ] }),
397
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-4 w-full", children: [
398
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-3 rounded-agg-xl bg-agg-secondary-hover p-4", children: [
399
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-1", children: [
400
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.onboarding.connectKalshiModal.stepOne.label }),
401
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children: labels.onboarding.connectKalshiModal.stepOne.title })
402
+ ] }),
403
+ /* @__PURE__ */ jsxs4("div", { className: "space-y-0 text-agg-sm leading-agg-5 text-agg-foreground", children: [
404
+ /* @__PURE__ */ jsx4("p", { children: labels.onboarding.connectKalshiModal.stepOne.instructions.signIn }),
405
+ /* @__PURE__ */ jsxs4("p", { children: [
406
+ labels.onboarding.connectKalshiModal.stepOne.instructions.goToProfilePrefix,
407
+ " ",
408
+ /* @__PURE__ */ jsx4("span", { className: "font-agg-bold", children: labels.onboarding.connectKalshiModal.stepOne.instructions.profileText }),
409
+ labels.onboarding.connectKalshiModal.stepOne.instructions.goToProfileSeparator,
410
+ " ",
411
+ /* @__PURE__ */ jsx4("span", { className: "text-agg-muted-foreground", children: labels.onboarding.connectKalshiModal.stepOne.instructions.profileUrl })
412
+ ] }),
413
+ /* @__PURE__ */ jsxs4("p", { children: [
414
+ labels.onboarding.connectKalshiModal.stepOne.instructions.clickCreateKeyPrefix,
415
+ " ",
416
+ /* @__PURE__ */ jsx4("span", { className: "font-agg-bold", children: labels.onboarding.connectKalshiModal.stepOne.instructions.createKeyText }),
417
+ labels.onboarding.connectKalshiModal.stepOne.instructions.clickCreateKeySuffix
418
+ ] }),
419
+ /* @__PURE__ */ jsxs4("p", { children: [
420
+ labels.onboarding.connectKalshiModal.stepOne.instructions.selectPermissionsPrefix,
421
+ " ",
422
+ /* @__PURE__ */ jsx4("span", { className: "font-agg-bold", children: labels.onboarding.connectKalshiModal.stepOne.instructions.readWriteText }),
423
+ labels.onboarding.connectKalshiModal.stepOne.instructions.selectPermissionsSuffix
424
+ ] }),
425
+ /* @__PURE__ */ jsx4("p", { children: labels.onboarding.connectKalshiModal.stepOne.instructions.createKey })
426
+ ] }),
427
+ /* @__PURE__ */ jsxs4("p", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: [
428
+ labels.onboarding.connectKalshiModal.stepOne.footerLineOne,
429
+ /* @__PURE__ */ jsx4("br", {}),
430
+ labels.onboarding.connectKalshiModal.stepOne.footerLineTwo
431
+ ] })
432
+ ] }),
433
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-3 rounded-agg-xl bg-agg-secondary-hover p-4", children: [
434
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-1", children: [
435
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.onboarding.connectKalshiModal.stepTwo.label }),
436
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children: labels.onboarding.connectKalshiModal.stepTwo.title })
437
+ ] }),
438
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: labels.onboarding.connectKalshiModal.stepTwo.description }),
439
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2", children: [
440
+ /* @__PURE__ */ jsx4(
441
+ "label",
442
+ {
443
+ htmlFor: "kalshi-api-key-id",
444
+ className: "text-agg-sm font-agg-bold text-agg-foreground",
445
+ children: labels.onboarding.connectKalshiModal.stepTwo.apiKeyIdLabel
446
+ }
447
+ ),
448
+ /* @__PURE__ */ jsx4(
449
+ "input",
450
+ {
451
+ id: "kalshi-api-key-id",
452
+ type: "text",
453
+ value: apiKeyId,
454
+ onChange: (e) => setApiKeyId(e.target.value),
455
+ placeholder: labels.onboarding.connectKalshiModal.stepTwo.apiKeyIdPlaceholder,
456
+ className: cn(
457
+ "w-full px-3 py-2.5 h-10",
458
+ "rounded-agg-md border border-agg-separator",
459
+ "bg-agg-secondary text-agg-base text-agg-foreground",
460
+ "placeholder:text-agg-muted-foreground",
461
+ "outline-none",
462
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
463
+ "transition-colors"
464
+ )
465
+ }
466
+ )
467
+ ] }),
468
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2", children: [
469
+ /* @__PURE__ */ jsx4(
470
+ "label",
471
+ {
472
+ htmlFor: "kalshi-private-key",
473
+ className: "text-agg-sm font-agg-bold text-agg-foreground",
474
+ children: labels.onboarding.connectKalshiModal.stepTwo.privateKeyLabel
475
+ }
476
+ ),
477
+ /* @__PURE__ */ jsx4(
478
+ "textarea",
479
+ {
480
+ id: "kalshi-private-key",
481
+ value: privateKey,
482
+ onChange: (e) => setPrivateKey(e.target.value),
483
+ placeholder: labels.onboarding.connectKalshiModal.stepTwo.privateKeyPlaceholder,
484
+ rows: 3,
485
+ className: cn(
486
+ "w-full px-3 py-2.5",
487
+ "rounded-agg-md border border-agg-separator",
488
+ "bg-agg-secondary text-agg-base text-agg-foreground",
489
+ "placeholder:text-agg-muted-foreground",
490
+ "outline-none resize-none",
491
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
492
+ "transition-colors"
493
+ )
494
+ }
495
+ )
496
+ ] })
497
+ ] })
498
+ ] }),
499
+ error ? /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2 w-full", children: [
500
+ /* @__PURE__ */ jsx4(WarningIcon, { className: "h-3.5 w-3.5 shrink-0 text-agg-error" }),
501
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-sm leading-agg-5 text-agg-error", children: error })
502
+ ] }) : null,
503
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between w-full", children: [
504
+ /* @__PURE__ */ jsx4("p", { className: "text-agg-base text-agg-foreground", children: labels.onboarding.connectKalshiModal.help.label }),
505
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3", children: [
506
+ /* @__PURE__ */ jsx4(
507
+ "a",
508
+ {
509
+ href: "#",
510
+ className: "text-agg-base font-agg-bold text-agg-primary hover:underline",
511
+ children: labels.onboarding.connectKalshiModal.help.docsLinkLabel
512
+ }
513
+ ),
514
+ /* @__PURE__ */ jsx4("span", { className: "h-3 w-px bg-agg-separator" }),
515
+ /* @__PURE__ */ jsx4(
516
+ "a",
517
+ {
518
+ href: "#",
519
+ className: "text-agg-base font-agg-bold text-agg-primary hover:underline",
520
+ children: labels.onboarding.connectKalshiModal.help.tutorialLinkLabel
521
+ }
522
+ )
523
+ ] })
524
+ ] }),
525
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 justify-center", children: [
526
+ /* @__PURE__ */ jsx4(Button, { variant: "secondary", size: "m", onClick: handleCancel, children: labels.onboarding.connectKalshiModal.actions.cancel }),
527
+ /* @__PURE__ */ jsx4(
528
+ Button,
529
+ {
530
+ variant: "primary",
531
+ size: "m",
532
+ onClick: handleVerify,
533
+ disabled: !canVerify,
534
+ isLoading: verifying,
535
+ children: labels.onboarding.connectKalshiModal.actions.verifyConnection
536
+ }
537
+ )
538
+ ] })
539
+ ] }) })
540
+ ] }) });
541
+ };
542
+ ConnectKalshiModal.displayName = "ConnectKalshiModal";
543
+
544
+ // src/onboarding/steps/connect-onchain-modal.tsx
545
+ import { useCallback as useCallback3, useState as useState3 } from "react";
546
+ import { useLabels as useLabels5 } from "@agg-market/hooks";
547
+ import * as Dialog2 from "@radix-ui/react-dialog";
548
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
549
+ var ConnectOnchainModal = ({
550
+ open,
551
+ onOpenChange,
552
+ onConnect
553
+ }) => {
554
+ const labels = useLabels5();
555
+ const [connecting, setConnecting] = useState3(false);
556
+ const [error, setError] = useState3();
557
+ const handleCancel = useCallback3(() => {
558
+ onOpenChange(false);
559
+ }, [onOpenChange]);
560
+ const handleConnect = useCallback3(() => __async(void 0, null, function* () {
561
+ if (connecting)
562
+ return;
563
+ setConnecting(true);
564
+ setError(void 0);
565
+ try {
566
+ yield onConnect();
567
+ onOpenChange(false);
568
+ } catch (err) {
569
+ setError(
570
+ err instanceof Error ? err.message : labels.onboarding.connectOnchainModal.fallbackError
571
+ );
572
+ } finally {
573
+ setConnecting(false);
574
+ }
575
+ }), [connecting, labels.onboarding.connectOnchainModal.fallbackError, onConnect, onOpenChange]);
576
+ const handleOpenChange = useCallback3(
577
+ (value) => {
578
+ if (value) {
579
+ setError(void 0);
580
+ setConnecting(false);
581
+ }
582
+ onOpenChange(value);
583
+ },
584
+ [onOpenChange]
585
+ );
586
+ return /* @__PURE__ */ jsx5(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs5(
587
+ Modal.Container,
588
+ {
589
+ maxWidth: "600px",
590
+ "aria-label": labels.onboarding.connectOnchainModal.ariaLabel,
591
+ children: [
592
+ /* @__PURE__ */ jsx5(Dialog2.Title, { className: "sr-only", children: labels.onboarding.connectOnchainModal.title }),
593
+ /* @__PURE__ */ jsx5(Modal.Header, { hideClose: false, hideBorder: true }),
594
+ /* @__PURE__ */ jsx5(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-8 items-center", children: [
595
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-4 items-center text-center", children: [
596
+ /* @__PURE__ */ jsx5("h2", { className: "text-agg-2xl font-agg-bold text-agg-foreground", children: labels.onboarding.connectOnchainModal.title }),
597
+ /* @__PURE__ */ jsx5("p", { className: "text-agg-base leading-agg-6 text-agg-foreground", children: labels.onboarding.connectOnchainModal.description })
598
+ ] }),
599
+ /* @__PURE__ */ jsxs5("div", { className: "flex w-full flex-col items-center gap-4 rounded-agg-xl bg-agg-secondary-hover p-6", children: [
600
+ /* @__PURE__ */ jsx5("p", { className: "text-agg-sm font-agg-bold uppercase leading-agg-5 text-agg-muted-foreground", children: labels.onboarding.connectOnchainModal.supportedVenuesLabel }),
601
+ /* @__PURE__ */ jsx5("div", { className: "flex flex-wrap items-center justify-center gap-x-4 gap-y-3", children: ONCHAIN_VENUES.map((venue, index) => /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-[6px]", children: [
602
+ index > 0 && /* @__PURE__ */ jsx5("span", { className: "mr-2.5 h-3 w-px bg-agg-separator" }),
603
+ /* @__PURE__ */ jsx5(VenueLogo, { venue, size: "m", className: "h-5 w-5" }),
604
+ /* @__PURE__ */ jsx5("span", { className: "text-agg-base text-agg-foreground", children: labels.venues[venue] })
605
+ ] }, venue)) })
606
+ ] }),
607
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-6 items-center", children: [
608
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-3 items-center", children: [
609
+ error ? /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2", children: [
610
+ /* @__PURE__ */ jsx5(WarningIcon, { className: "h-3.5 w-3.5 shrink-0 text-agg-error" }),
611
+ /* @__PURE__ */ jsx5("p", { className: "text-agg-sm leading-agg-5 text-agg-error", children: error })
612
+ ] }) : null,
613
+ /* @__PURE__ */ jsx5(Button, { variant: "primary", size: "l", onClick: handleConnect, isLoading: connecting, children: labels.onboarding.connectOnchainModal.connect })
614
+ ] }),
615
+ /* @__PURE__ */ jsx5(
616
+ Button,
617
+ {
618
+ variant: "tertiary",
619
+ size: "m",
620
+ className: "h-auto p-0 text-agg-primary hover:bg-transparent hover:text-agg-primary-hover",
621
+ onClick: handleCancel,
622
+ children: labels.onboarding.connectOnchainModal.cancel
623
+ }
624
+ )
625
+ ] })
626
+ ] }) })
627
+ ]
628
+ }
629
+ ) });
630
+ };
631
+ ConnectOnchainModal.displayName = "ConnectOnchainModal";
632
+
633
+ // src/onboarding/index.tsx
634
+ import { Fragment, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
635
+ var OnboardingModal = ({
636
+ open,
637
+ onOpenChange,
638
+ onProfileSubmit,
639
+ onConnectOnchain,
640
+ onConnectKalshi,
641
+ onComplete,
642
+ howItWorksIcons,
643
+ connectedOnchain = false,
644
+ connectedKalshi = false
645
+ }) => {
646
+ var _a;
647
+ const labels = useLabels6();
648
+ const [step, setStep] = useState4(ONBOARDING_STEPS.HOW_IT_WORKS);
649
+ const stepLabels = {
650
+ [ONBOARDING_STEPS.HOW_IT_WORKS]: labels.onboarding.modal.stepHowItWorks,
651
+ [ONBOARDING_STEPS.PROFILE_SETUP]: labels.onboarding.modal.stepProfileSetup,
652
+ [ONBOARDING_STEPS.CONNECT_ACCOUNTS]: labels.onboarding.modal.stepConnectAccounts
653
+ };
654
+ const resolvedTitle = (_a = stepLabels[step]) != null ? _a : labels.onboarding.modal.title;
655
+ const [kalshiModalOpen, setKalshiModalOpen] = useState4(false);
656
+ const [kalshiConnected, setKalshiConnected] = useState4(false);
657
+ const [onchainModalOpen, setOnchainModalOpen] = useState4(false);
658
+ const [onchainConnected, setOnchainConnected] = useState4(false);
659
+ useEffect(() => {
660
+ if (open) {
661
+ setStep(ONBOARDING_STEPS.HOW_IT_WORKS);
662
+ setKalshiConnected(false);
663
+ setOnchainConnected(false);
664
+ }
665
+ }, [open]);
666
+ const handleHowItWorksContinue = useCallback4(() => {
667
+ setStep(ONBOARDING_STEPS.PROFILE_SETUP);
668
+ }, []);
669
+ const handleProfileContinue = useCallback4(
670
+ (data) => {
671
+ onProfileSubmit == null ? void 0 : onProfileSubmit(data);
672
+ setStep(ONBOARDING_STEPS.CONNECT_ACCOUNTS);
673
+ },
674
+ [onProfileSubmit]
675
+ );
676
+ const handleConnectContinue = useCallback4(() => {
677
+ onComplete == null ? void 0 : onComplete();
678
+ }, [onComplete]);
679
+ const handleOpenOnchainModal = useCallback4(() => {
680
+ setOnchainModalOpen(true);
681
+ }, []);
682
+ const handleOnchainConnect = useCallback4(() => __async(void 0, null, function* () {
683
+ yield onConnectOnchain == null ? void 0 : onConnectOnchain();
684
+ setOnchainConnected(true);
685
+ }), [onConnectOnchain]);
686
+ const handleOpenKalshiModal = useCallback4(() => {
687
+ setKalshiModalOpen(true);
688
+ }, []);
689
+ const handleKalshiVerify = useCallback4(
690
+ (credentials) => __async(void 0, null, function* () {
691
+ yield onConnectKalshi == null ? void 0 : onConnectKalshi(credentials);
692
+ setKalshiConnected(true);
693
+ }),
694
+ [onConnectKalshi]
695
+ );
696
+ return /* @__PURE__ */ jsxs6(Fragment, { children: [
697
+ /* @__PURE__ */ jsx6(Modal, { open, onOpenChange, children: /* @__PURE__ */ jsxs6(Modal.Container, { maxWidth: "600px", "aria-label": resolvedTitle, children: [
698
+ /* @__PURE__ */ jsx6(Dialog3.Title, { className: "sr-only", children: resolvedTitle }),
699
+ /* @__PURE__ */ jsxs6(Modal.Body, { classNames: { root: "px-5 py-6 sm:px-10 sm:py-8" }, children: [
700
+ step === ONBOARDING_STEPS.HOW_IT_WORKS && /* @__PURE__ */ jsx6(HowItWorksStep, { onContinue: handleHowItWorksContinue, icons: howItWorksIcons }),
701
+ step === ONBOARDING_STEPS.PROFILE_SETUP && /* @__PURE__ */ jsx6(ProfileSetupStep, { onContinue: handleProfileContinue }),
702
+ step === ONBOARDING_STEPS.CONNECT_ACCOUNTS && /* @__PURE__ */ jsx6(
703
+ ConnectAccountsStep,
704
+ {
705
+ onConnectOnchain: handleOpenOnchainModal,
706
+ onConnectKalshi: handleOpenKalshiModal,
707
+ onContinue: handleConnectContinue,
708
+ connectedOnchain: connectedOnchain || onchainConnected,
709
+ connectedKalshi: connectedKalshi || kalshiConnected
710
+ }
711
+ )
712
+ ] })
713
+ ] }) }),
714
+ /* @__PURE__ */ jsx6(
715
+ ConnectOnchainModal,
716
+ {
717
+ open: onchainModalOpen,
718
+ onOpenChange: setOnchainModalOpen,
719
+ onConnect: handleOnchainConnect
720
+ }
721
+ ),
722
+ /* @__PURE__ */ jsx6(
723
+ ConnectKalshiModal,
724
+ {
725
+ open: kalshiModalOpen,
726
+ onOpenChange: setKalshiModalOpen,
727
+ onVerify: handleKalshiVerify
728
+ }
729
+ )
730
+ ] });
731
+ };
732
+ OnboardingModal.displayName = "OnboardingModal";
733
+
734
+ export {
735
+ HowItWorksStep,
736
+ ProfileSetupStep,
737
+ ConnectAccountsStep,
738
+ ConnectKalshiModal,
739
+ ConnectOnchainModal,
740
+ OnboardingModal
741
+ };