@agg-market/ui 0.0.3 → 0.0.4

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 (140) hide show
  1. package/dist/badge.d.mts +2 -2
  2. package/dist/badge.d.ts +2 -2
  3. package/dist/badge.mjs +2 -2
  4. package/dist/button.d.mts +2 -2
  5. package/dist/button.d.ts +2 -2
  6. package/dist/button.js +1 -0
  7. package/dist/button.mjs +3 -3
  8. package/dist/card.mjs +2 -2
  9. package/dist/chart.mjs +3 -3
  10. package/dist/{chunk-YUIZZ6XE.mjs → chunk-3O4U3E5I.mjs} +1 -1
  11. package/dist/{chunk-JLLMIPIX.mjs → chunk-4VUDTWH7.mjs} +1 -1
  12. package/dist/{chunk-MG243DSX.mjs → chunk-AEMAY3MR.mjs} +1 -1
  13. package/dist/{chunk-FYV3MDIL.mjs → chunk-BJNHDIDW.mjs} +4 -4
  14. package/dist/{chunk-LY6474C4.mjs → chunk-BLSHXIAH.mjs} +36 -71
  15. package/dist/{chunk-DQ6XFBYJ.mjs → chunk-DYEWXEEY.mjs} +1 -1
  16. package/dist/{chunk-OUOIDPGX.mjs → chunk-EXF4SESB.mjs} +1 -1
  17. package/dist/chunk-F236MLT6.mjs +1337 -0
  18. package/dist/{chunk-PAQ542ER.mjs → chunk-GHB3GOCW.mjs} +4 -2
  19. package/dist/{chunk-GC3QIIH7.mjs → chunk-GJ4U5NCE.mjs} +23 -1
  20. package/dist/chunk-HM3CGN32.mjs +669 -0
  21. package/dist/chunk-I4YUYVJJ.mjs +472 -0
  22. package/dist/{chunk-NFYS557L.mjs → chunk-JH5VMNDL.mjs} +3 -3
  23. package/dist/{chunk-TTOR7JCT.mjs → chunk-JRS2M5GY.mjs} +1 -1
  24. package/dist/{chunk-QXFDXXDB.mjs → chunk-LWTQD345.mjs} +3 -3
  25. package/dist/{chunk-QE46DVJG.mjs → chunk-MNSHWA6M.mjs} +3 -3
  26. package/dist/{chunk-JQ4FUHXE.mjs → chunk-MXBPDNMC.mjs} +7 -7
  27. package/dist/{chunk-VYNVBJK6.mjs → chunk-NDG43KGL.mjs} +1 -1
  28. package/dist/chunk-O2XH4A3G.mjs +654 -0
  29. package/dist/{chunk-KDBYDMYV.mjs → chunk-OBCHURW5.mjs} +1 -1
  30. package/dist/{chunk-FZTAHWOS.mjs → chunk-OGI343OV.mjs} +2 -2
  31. package/dist/{chunk-XDAEEJYR.mjs → chunk-P23GR7NX.mjs} +2 -2
  32. package/dist/{chunk-J6L5BLKX.mjs → chunk-PGSPYQOW.mjs} +2 -2
  33. package/dist/{chunk-J7OETCZ7.mjs → chunk-QFQHD2V6.mjs} +19 -20
  34. package/dist/chunk-RGZQHSNJ.mjs +845 -0
  35. package/dist/{chunk-7XRKA6XF.mjs → chunk-RXACBTON.mjs} +5 -5
  36. package/dist/{chunk-A4QJAOZW.mjs → chunk-USLTNDJA.mjs} +7 -7
  37. package/dist/{chunk-FACIYUNK.mjs → chunk-VC7LTPQD.mjs} +2 -2
  38. package/dist/{chunk-CKTAVEW2.mjs → chunk-VIP7HSOU.mjs} +2 -2
  39. package/dist/{chunk-5MN6ZNFA.mjs → chunk-VUDJ3PYM.mjs} +9 -9
  40. package/dist/{chunk-2NCBX6XI.mjs → chunk-W2DMBW4E.mjs} +8 -8
  41. package/dist/{chunk-764YUN2J.mjs → chunk-XELWY7SO.mjs} +150 -49
  42. package/dist/chunk-ZDF7QP4G.mjs +160 -0
  43. package/dist/{chunk-4NK2FNAG.mjs → chunk-ZHKMDK5M.mjs} +244 -112
  44. package/dist/{chunk-C4OI72SM.mjs → chunk-ZVBVGWSP.mjs} +1 -0
  45. package/dist/chunk-ZYREURXK.mjs +470 -0
  46. package/dist/connect-button.js +767 -292
  47. package/dist/connect-button.mjs +8 -8
  48. package/dist/deposit-modal.d.mts +34 -0
  49. package/dist/deposit-modal.d.ts +34 -0
  50. package/dist/deposit-modal.js +2787 -0
  51. package/dist/deposit-modal.mjs +15 -0
  52. package/dist/event-list-item-details.js +271 -173
  53. package/dist/event-list-item-details.mjs +13 -13
  54. package/dist/event-list-item.js +903 -426
  55. package/dist/event-list-item.mjs +11 -11
  56. package/dist/event-list.js +1104 -517
  57. package/dist/event-list.mjs +14 -14
  58. package/dist/event-market-page.d.mts +1 -1
  59. package/dist/event-market-page.d.ts +1 -1
  60. package/dist/event-market-page.js +1505 -681
  61. package/dist/event-market-page.mjs +23 -23
  62. package/dist/hello-world.mjs +3 -3
  63. package/dist/home-page.d.mts +1 -1
  64. package/dist/home-page.d.ts +1 -1
  65. package/dist/home-page.js +1120 -533
  66. package/dist/home-page.mjs +15 -15
  67. package/dist/icon.d.mts +74 -4
  68. package/dist/icon.d.ts +74 -4
  69. package/dist/icon.js +668 -123
  70. package/dist/icon.mjs +32 -4
  71. package/dist/index.d.mts +15 -7
  72. package/dist/index.d.ts +15 -7
  73. package/dist/index.js +5301 -2147
  74. package/dist/index.mjs +80 -32
  75. package/dist/loading-icon.d.mts +1 -1
  76. package/dist/loading-icon.d.ts +1 -1
  77. package/dist/loading-icon.js +1 -0
  78. package/dist/loading-icon.mjs +3 -3
  79. package/dist/market-details.d.mts +2 -2
  80. package/dist/market-details.d.ts +2 -2
  81. package/dist/market-details.js +1097 -411
  82. package/dist/market-details.mjs +16 -16
  83. package/dist/modal.mjs +3 -3
  84. package/dist/number-value.mjs +2 -2
  85. package/dist/onboarding-modal.js +1249 -672
  86. package/dist/onboarding-modal.mjs +8 -8
  87. package/dist/place-order.d.mts +1 -1
  88. package/dist/place-order.d.ts +1 -1
  89. package/dist/place-order.js +1091 -506
  90. package/dist/place-order.mjs +12 -12
  91. package/dist/profile-modal.d.mts +66 -0
  92. package/dist/profile-modal.d.ts +66 -0
  93. package/dist/profile-modal.js +2429 -0
  94. package/dist/profile-modal.mjs +14 -0
  95. package/dist/{registry-CVn79H3I.d.mts → registry-DfSCFAdC.d.mts} +72 -0
  96. package/dist/{registry-CVn79H3I.d.ts → registry-DfSCFAdC.d.ts} +72 -0
  97. package/dist/search.d.mts +2 -2
  98. package/dist/search.d.ts +2 -2
  99. package/dist/search.js +740 -265
  100. package/dist/search.mjs +6 -6
  101. package/dist/select.d.mts +2 -0
  102. package/dist/select.d.ts +2 -0
  103. package/dist/select.js +814 -187
  104. package/dist/select.mjs +5 -5
  105. package/dist/settlement.d.mts +1 -1
  106. package/dist/settlement.d.ts +1 -1
  107. package/dist/settlement.js +891 -417
  108. package/dist/settlement.mjs +9 -9
  109. package/dist/skeleton.js +1 -1
  110. package/dist/skeleton.mjs +3 -3
  111. package/dist/styles.css +1 -1
  112. package/dist/switch-button.mjs +2 -2
  113. package/dist/tabs.js +854 -227
  114. package/dist/tabs.mjs +6 -6
  115. package/dist/tailwind.css +1 -1
  116. package/dist/types-Bed6Q0EK.d.mts +3 -0
  117. package/dist/types-Bed6Q0EK.d.ts +3 -0
  118. package/dist/typography.mjs +2 -2
  119. package/dist/user-profile-page.d.mts +133 -0
  120. package/dist/user-profile-page.d.ts +133 -0
  121. package/dist/user-profile-page.js +3335 -0
  122. package/dist/user-profile-page.mjs +15 -0
  123. package/dist/venue-logo.d.mts +2 -2
  124. package/dist/venue-logo.d.ts +2 -2
  125. package/dist/venue-logo.js +28 -70
  126. package/dist/venue-logo.mjs +2 -2
  127. package/dist/{venue-logo.types-Bg8eXtGp.d.ts → venue-logo.types-BSAuY84j.d.ts} +1 -1
  128. package/dist/{venue-logo.types-B1iPJgiD.d.mts → venue-logo.types-DACqcTvY.d.mts} +1 -1
  129. package/dist/withdraw-modal.d.mts +36 -0
  130. package/dist/withdraw-modal.d.ts +36 -0
  131. package/dist/withdraw-modal.js +2442 -0
  132. package/dist/withdraw-modal.mjs +14 -0
  133. package/package.json +43 -3
  134. package/dist/chunk-DA6KZWSK.mjs +0 -807
  135. package/dist/chunk-IY2AA3OL.mjs +0 -50
  136. package/dist/chunk-R3DRVI4J.mjs +0 -741
  137. package/dist/types-CayJ8tWA.d.mts +0 -3
  138. package/dist/types-CayJ8tWA.d.ts +0 -3
  139. package/dist/{types-C5JigCSX.d.mts → types-DkGlbmXq.d.mts} +2 -2
  140. package/dist/{types-C5JigCSX.d.ts → types-DkGlbmXq.d.ts} +2 -2
@@ -0,0 +1,472 @@
1
+ import {
2
+ Modal
3
+ } from "./chunk-VIP7HSOU.mjs";
4
+ import {
5
+ VenueLogo,
6
+ venueLogoLabels
7
+ } from "./chunk-BLSHXIAH.mjs";
8
+ import {
9
+ Icon,
10
+ ProfileIcon
11
+ } from "./chunk-F236MLT6.mjs";
12
+ import {
13
+ Button
14
+ } from "./chunk-PGSPYQOW.mjs";
15
+ import {
16
+ cn
17
+ } from "./chunk-GJ4U5NCE.mjs";
18
+
19
+ // src/profile/index.tsx
20
+ import { useState, useEffect, useCallback as useCallback2 } from "react";
21
+
22
+ // src/profile/profile-modal.constants.ts
23
+ var PROFILE_TAB_KEYS = {
24
+ ABOUT: "about",
25
+ ACCOUNTS_WALLETS: "accounts-wallets"
26
+ };
27
+ var PROFILE_TAB_ITEMS = [
28
+ { value: PROFILE_TAB_KEYS.ABOUT, label: "About", icon: "profile" },
29
+ { value: PROFILE_TAB_KEYS.ACCOUNTS_WALLETS, label: "Accounts & wallets", icon: "wallet" }
30
+ ];
31
+
32
+ // src/profile/tabs/about-tab.tsx
33
+ import { useCallback, useRef } from "react";
34
+ import { useLabels } from "@agg-market/hooks";
35
+ import { jsx, jsxs } from "react/jsx-runtime";
36
+ var AboutTab = ({
37
+ avatarPreview,
38
+ onDeleteProfile,
39
+ draftUsername,
40
+ onDraftUsernameChange,
41
+ onDraftAvatarChange,
42
+ draftAvatarPreview
43
+ }) => {
44
+ const labels = useLabels();
45
+ const fileInputRef = useRef(null);
46
+ const handleAvatarClick = useCallback(() => {
47
+ var _a;
48
+ (_a = fileInputRef.current) == null ? void 0 : _a.click();
49
+ }, []);
50
+ const handleFileChange = useCallback(
51
+ (e) => {
52
+ var _a;
53
+ const file = (_a = e.target.files) == null ? void 0 : _a[0];
54
+ if (!file)
55
+ return;
56
+ const reader = new FileReader();
57
+ reader.onload = (event) => {
58
+ var _a2;
59
+ onDraftAvatarChange(file, (_a2 = event.target) == null ? void 0 : _a2.result);
60
+ };
61
+ reader.readAsDataURL(file);
62
+ },
63
+ [onDraftAvatarChange]
64
+ );
65
+ const resolvedPreview = draftAvatarPreview != null ? draftAvatarPreview : avatarPreview;
66
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8", children: [
67
+ /* @__PURE__ */ jsxs("div", { className: "flex justify-center", children: [
68
+ /* @__PURE__ */ jsx(
69
+ "button",
70
+ {
71
+ type: "button",
72
+ onClick: handleAvatarClick,
73
+ className: cn(
74
+ "relative flex items-center justify-center",
75
+ "h-[80px] w-[80px]",
76
+ "rounded-agg-full",
77
+ "border-2 border-dashed border-agg-separator",
78
+ "bg-agg-secondary",
79
+ "hover:border-agg-muted-foreground hover:bg-agg-secondary-hover",
80
+ "transition-colors cursor-pointer",
81
+ "overflow-hidden"
82
+ ),
83
+ "aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
84
+ children: resolvedPreview ? /* @__PURE__ */ jsx(
85
+ "img",
86
+ {
87
+ src: resolvedPreview,
88
+ alt: labels.onboarding.profileSetup.profilePreviewAlt,
89
+ className: "h-full w-full object-cover"
90
+ }
91
+ ) : /* @__PURE__ */ jsx(ProfileIcon, { className: "h-8 w-8 text-agg-muted-foreground" })
92
+ }
93
+ ),
94
+ /* @__PURE__ */ jsx(
95
+ "input",
96
+ {
97
+ ref: fileInputRef,
98
+ type: "file",
99
+ accept: "image/*",
100
+ onChange: handleFileChange,
101
+ className: "hidden",
102
+ "aria-hidden": "true"
103
+ }
104
+ )
105
+ ] }),
106
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
107
+ /* @__PURE__ */ jsx(
108
+ "label",
109
+ {
110
+ htmlFor: "profile-username",
111
+ className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
112
+ children: "Username"
113
+ }
114
+ ),
115
+ /* @__PURE__ */ jsx(
116
+ "input",
117
+ {
118
+ id: "profile-username",
119
+ type: "text",
120
+ placeholder: "e.g. CryptoJohn",
121
+ value: draftUsername,
122
+ onChange: (e) => onDraftUsernameChange(e.target.value),
123
+ className: cn(
124
+ "w-full px-4 py-3",
125
+ "rounded-agg-xl",
126
+ "border border-agg-separator",
127
+ "bg-agg-secondary text-agg-foreground",
128
+ "placeholder:text-agg-muted-foreground",
129
+ "outline-none",
130
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
131
+ "transition-colors",
132
+ "text-agg-sm sm:text-agg-base"
133
+ )
134
+ }
135
+ )
136
+ ] }),
137
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
138
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
139
+ /* @__PURE__ */ jsx("span", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children: "Delete your profile" }),
140
+ /* @__PURE__ */ jsx("span", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: "This will permanently delete your account and all of its data. You will not be able to reactivate this account." })
141
+ ] }),
142
+ /* @__PURE__ */ jsx(
143
+ "button",
144
+ {
145
+ type: "button",
146
+ onClick: onDeleteProfile,
147
+ className: cn(
148
+ "self-start cursor-pointer",
149
+ "rounded-agg-full border border-[#e5455f]",
150
+ "h-8 px-4",
151
+ "text-agg-sm font-agg-bold leading-agg-5 text-[#e5455f]",
152
+ "bg-agg-secondary hover:bg-[#e5455f]/10",
153
+ "transition-colors"
154
+ ),
155
+ children: "Delete Profile"
156
+ }
157
+ )
158
+ ] })
159
+ ] });
160
+ };
161
+ AboutTab.displayName = "AboutTab";
162
+
163
+ // src/profile/tabs/accounts-wallets-tab.tsx
164
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
165
+ var SectionTitle = ({ children }) => /* @__PURE__ */ jsx2("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
166
+ var AccountRow = ({ children, className }) => /* @__PURE__ */ jsx2(
167
+ "div",
168
+ {
169
+ className: cn(
170
+ "flex items-center justify-between",
171
+ "rounded-agg-lg border border-agg-separator bg-agg-secondary",
172
+ "px-5 py-3",
173
+ className
174
+ ),
175
+ children
176
+ }
177
+ );
178
+ var ConnectTextButton = ({ onClick }) => /* @__PURE__ */ jsx2(
179
+ "button",
180
+ {
181
+ type: "button",
182
+ onClick,
183
+ className: "shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-primary whitespace-nowrap",
184
+ children: "Connect"
185
+ }
186
+ );
187
+ var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ jsx2(
188
+ "button",
189
+ {
190
+ type: "button",
191
+ onClick,
192
+ className: "shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-muted-foreground whitespace-nowrap",
193
+ children: "Disconnect"
194
+ }
195
+ );
196
+ var AccountsWalletsTab = ({
197
+ exchanges,
198
+ socialAccounts,
199
+ email,
200
+ onDisconnectExchange,
201
+ onConnectTwitter,
202
+ onDisconnectTwitter,
203
+ onConnectDiscord,
204
+ onDisconnectDiscord,
205
+ onConnectTelegram,
206
+ onDisconnectTelegram,
207
+ onConnectEmail
208
+ }) => {
209
+ const twitter = socialAccounts == null ? void 0 : socialAccounts.twitter;
210
+ const discord = socialAccounts == null ? void 0 : socialAccounts.discord;
211
+ const telegram = socialAccounts == null ? void 0 : socialAccounts.telegram;
212
+ return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-8", children: [
213
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-3", children: [
214
+ /* @__PURE__ */ jsx2(SectionTitle, { children: "Exchanges" }),
215
+ exchanges.length === 0 ? /* @__PURE__ */ jsx2("p", { className: "text-agg-sm leading-agg-5 text-agg-muted-foreground", children: "No exchange accounts connected." }) : /* @__PURE__ */ jsx2("div", { className: "flex flex-col gap-2", children: exchanges.map((account) => {
216
+ var _a;
217
+ const displayName = (_a = venueLogoLabels[account.venue]) != null ? _a : account.venue;
218
+ return /* @__PURE__ */ jsxs2(AccountRow, { children: [
219
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3 min-w-0", children: [
220
+ /* @__PURE__ */ jsx2(VenueLogo, { venue: account.venue, size: "s" }),
221
+ /* @__PURE__ */ jsx2("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: displayName }),
222
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 min-w-0", children: [
223
+ /* @__PURE__ */ jsx2("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: account.displayAddress }),
224
+ account.verified ? /* @__PURE__ */ jsx2(
225
+ Icon,
226
+ {
227
+ name: "check-badge",
228
+ size: "s",
229
+ color: "var(--agg-color-primary, #536dfe)"
230
+ }
231
+ ) : null
232
+ ] })
233
+ ] }),
234
+ /* @__PURE__ */ jsx2(DisconnectTextButton, { onClick: () => onDisconnectExchange(account.venue) })
235
+ ] }, account.venue);
236
+ }) })
237
+ ] }),
238
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-3", children: [
239
+ /* @__PURE__ */ jsx2(SectionTitle, { children: "Social Accounts" }),
240
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-2", children: [
241
+ /* @__PURE__ */ jsxs2(AccountRow, { children: [
242
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
243
+ /* @__PURE__ */ jsx2("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx2(Icon, { name: "twitter", size: "s", color: "currentColor" }) }),
244
+ /* @__PURE__ */ jsx2("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "X (Twitter)" })
245
+ ] }),
246
+ (twitter == null ? void 0 : twitter.connected) ? /* @__PURE__ */ jsx2(DisconnectTextButton, { onClick: onDisconnectTwitter }) : /* @__PURE__ */ jsx2(ConnectTextButton, { onClick: onConnectTwitter })
247
+ ] }),
248
+ /* @__PURE__ */ jsxs2(AccountRow, { children: [
249
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
250
+ /* @__PURE__ */ jsx2("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-[#5865F2]", children: /* @__PURE__ */ jsx2(Icon, { name: "discord", size: "s", color: "currentColor" }) }),
251
+ /* @__PURE__ */ jsx2("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Discord" })
252
+ ] }),
253
+ (discord == null ? void 0 : discord.connected) ? /* @__PURE__ */ jsx2(DisconnectTextButton, { onClick: onDisconnectDiscord }) : /* @__PURE__ */ jsx2(ConnectTextButton, { onClick: onConnectDiscord })
254
+ ] }),
255
+ /* @__PURE__ */ jsxs2(AccountRow, { children: [
256
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
257
+ /* @__PURE__ */ jsx2("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-[#26A5E4]", children: /* @__PURE__ */ jsx2(Icon, { name: "telegram", size: "s", color: "currentColor" }) }),
258
+ /* @__PURE__ */ jsx2("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Telegram" })
259
+ ] }),
260
+ (telegram == null ? void 0 : telegram.connected) ? /* @__PURE__ */ jsx2(DisconnectTextButton, { onClick: onDisconnectTelegram }) : /* @__PURE__ */ jsx2(ConnectTextButton, { onClick: onConnectTelegram })
261
+ ] })
262
+ ] })
263
+ ] }),
264
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-3", children: [
265
+ /* @__PURE__ */ jsx2(SectionTitle, { children: "Email Address" }),
266
+ /* @__PURE__ */ jsxs2(
267
+ "button",
268
+ {
269
+ type: "button",
270
+ onClick: onConnectEmail,
271
+ className: cn(
272
+ "flex items-center justify-between",
273
+ "rounded-agg-lg border border-agg-separator bg-agg-secondary",
274
+ "px-5 py-3",
275
+ "cursor-pointer hover:bg-agg-secondary-hover"
276
+ ),
277
+ children: [
278
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
279
+ /* @__PURE__ */ jsx2("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx2(Icon, { name: "email", size: "s", color: "currentColor" }) }),
280
+ /* @__PURE__ */ jsx2("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: email != null ? email : "Connect email" })
281
+ ] }),
282
+ /* @__PURE__ */ jsx2(Icon, { name: "chevron-right", size: "s", color: "currentColor" })
283
+ ]
284
+ }
285
+ )
286
+ ] })
287
+ ] });
288
+ };
289
+ AccountsWalletsTab.displayName = "AccountsWalletsTab";
290
+
291
+ // src/profile/index.tsx
292
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
293
+ var ProfileModal = ({
294
+ open,
295
+ onOpenChange,
296
+ username,
297
+ avatarPreview,
298
+ onSave,
299
+ onDeleteProfile,
300
+ exchanges,
301
+ socialAccounts,
302
+ email,
303
+ onDisconnectExchange,
304
+ onConnectTwitter,
305
+ onDisconnectTwitter,
306
+ onConnectDiscord,
307
+ onDisconnectDiscord,
308
+ onConnectTelegram,
309
+ onDisconnectTelegram,
310
+ onConnectEmail
311
+ }) => {
312
+ const [activeTab, setActiveTab] = useState(PROFILE_TAB_KEYS.ABOUT);
313
+ const [draftUsername, setDraftUsername] = useState(username != null ? username : "");
314
+ const [draftAvatarFile, setDraftAvatarFile] = useState();
315
+ const [draftAvatarPreview, setDraftAvatarPreview] = useState();
316
+ useEffect(() => {
317
+ setDraftUsername(username != null ? username : "");
318
+ }, [username]);
319
+ const handleOpenChange = (isOpen) => {
320
+ if (!isOpen) {
321
+ setActiveTab(PROFILE_TAB_KEYS.ABOUT);
322
+ setIsSaving(false);
323
+ setDraftUsername(username != null ? username : "");
324
+ setDraftAvatarFile(void 0);
325
+ setDraftAvatarPreview(void 0);
326
+ }
327
+ onOpenChange(isOpen);
328
+ };
329
+ const handleDraftAvatarChange = useCallback2(
330
+ (file, preview) => {
331
+ setDraftAvatarFile(file);
332
+ setDraftAvatarPreview(preview);
333
+ },
334
+ []
335
+ );
336
+ const [isSaving, setIsSaving] = useState(false);
337
+ const hasChanges = draftUsername !== (username != null ? username : "") || draftAvatarFile !== void 0;
338
+ const handleSave = useCallback2(() => {
339
+ setIsSaving(true);
340
+ onSave({
341
+ username: draftUsername || void 0,
342
+ avatarFile: draftAvatarFile,
343
+ avatarPreview: draftAvatarPreview
344
+ });
345
+ setTimeout(() => {
346
+ setIsSaving(false);
347
+ onOpenChange(false);
348
+ }, 500);
349
+ }, [draftUsername, draftAvatarFile, draftAvatarPreview, onSave, onOpenChange]);
350
+ const handleCancel = useCallback2(() => {
351
+ handleOpenChange(false);
352
+ }, [onOpenChange, username]);
353
+ return /* @__PURE__ */ jsx3(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs3(Modal.Container, { maxWidth: "800px", "aria-label": "Edit Profile", children: [
354
+ /* @__PURE__ */ jsx3(Modal.Header, { title: "Edit Profile" }),
355
+ /* @__PURE__ */ jsx3(Modal.Body, { children: /* @__PURE__ */ jsxs3("div", { className: "flex flex-col sm:flex-row sm:gap-10", children: [
356
+ /* @__PURE__ */ jsxs3("div", { className: "shrink-0", children: [
357
+ /* @__PURE__ */ jsx3("div", { className: "flex gap-2 sm:hidden mb-6", children: PROFILE_TAB_ITEMS.map((tab) => {
358
+ const isActive = activeTab === tab.value;
359
+ return /* @__PURE__ */ jsxs3(
360
+ "button",
361
+ {
362
+ type: "button",
363
+ onClick: () => setActiveTab(tab.value),
364
+ className: cn(
365
+ "flex items-center gap-3 px-4 py-3 rounded-agg-lg",
366
+ "text-agg-sm leading-agg-5 font-agg-sans",
367
+ "transition-colors cursor-pointer",
368
+ "border-b-2",
369
+ isActive ? "font-agg-normal text-agg-foreground bg-agg-secondary-hover border-agg-primary" : "font-agg-normal text-agg-foreground border-transparent"
370
+ ),
371
+ children: [
372
+ /* @__PURE__ */ jsx3(Icon, { name: tab.icon, size: "s", color: "currentColor" }),
373
+ /* @__PURE__ */ jsx3("span", { className: "whitespace-nowrap", children: tab.label })
374
+ ]
375
+ },
376
+ tab.value
377
+ );
378
+ }) }),
379
+ /* @__PURE__ */ jsx3(
380
+ "nav",
381
+ {
382
+ className: cn(
383
+ "hidden sm:flex sm:flex-col",
384
+ "w-[240px]",
385
+ "overflow-hidden rounded-agg-lg",
386
+ "border border-agg-separator",
387
+ "bg-agg-secondary",
388
+ "py-3"
389
+ ),
390
+ role: "tablist",
391
+ "aria-label": "Profile sections",
392
+ children: PROFILE_TAB_ITEMS.map((tab) => {
393
+ const isActive = activeTab === tab.value;
394
+ return /* @__PURE__ */ jsxs3(
395
+ "button",
396
+ {
397
+ type: "button",
398
+ role: "tab",
399
+ "aria-selected": isActive,
400
+ onClick: () => setActiveTab(tab.value),
401
+ className: cn(
402
+ "relative flex items-center gap-3",
403
+ "h-[49px] px-6 py-4",
404
+ "text-agg-sm leading-agg-5 font-agg-sans",
405
+ "transition-colors cursor-pointer",
406
+ isActive ? "font-agg-normal text-agg-foreground bg-agg-secondary-hover" : "font-agg-normal text-agg-foreground"
407
+ ),
408
+ children: [
409
+ isActive ? /* @__PURE__ */ jsx3("div", { className: "absolute left-0 top-0 bottom-0 w-1 bg-agg-primary" }) : null,
410
+ /* @__PURE__ */ jsx3(Icon, { name: tab.icon, size: "s", color: "currentColor" }),
411
+ /* @__PURE__ */ jsx3("span", { className: "shrink-0 whitespace-nowrap", children: tab.label })
412
+ ]
413
+ },
414
+ tab.value
415
+ );
416
+ })
417
+ }
418
+ )
419
+ ] }),
420
+ /* @__PURE__ */ jsxs3("div", { className: "min-w-0 flex-1", children: [
421
+ activeTab === PROFILE_TAB_KEYS.ABOUT ? /* @__PURE__ */ jsx3(
422
+ AboutTab,
423
+ {
424
+ username,
425
+ avatarPreview,
426
+ onDeleteProfile,
427
+ draftUsername,
428
+ onDraftUsernameChange: setDraftUsername,
429
+ draftAvatarFile,
430
+ onDraftAvatarChange: handleDraftAvatarChange,
431
+ draftAvatarPreview
432
+ }
433
+ ) : null,
434
+ activeTab === PROFILE_TAB_KEYS.ACCOUNTS_WALLETS ? /* @__PURE__ */ jsx3(
435
+ AccountsWalletsTab,
436
+ {
437
+ exchanges,
438
+ socialAccounts,
439
+ email,
440
+ onDisconnectExchange,
441
+ onConnectTwitter,
442
+ onDisconnectTwitter,
443
+ onConnectDiscord,
444
+ onDisconnectDiscord,
445
+ onConnectTelegram,
446
+ onDisconnectTelegram,
447
+ onConnectEmail
448
+ }
449
+ ) : null
450
+ ] })
451
+ ] }) }),
452
+ /* @__PURE__ */ jsxs3(Modal.Footer, { children: [
453
+ /* @__PURE__ */ jsx3(Button, { variant: "secondary", size: "l", onClick: handleCancel, className: "min-w-[120px]", children: "Cancel" }),
454
+ /* @__PURE__ */ jsx3(
455
+ Button,
456
+ {
457
+ variant: "primary",
458
+ size: "l",
459
+ disabled: !hasChanges,
460
+ isLoading: isSaving,
461
+ onClick: handleSave,
462
+ children: "Save Changes"
463
+ }
464
+ )
465
+ ] })
466
+ ] }) });
467
+ };
468
+ ProfileModal.displayName = "ProfileModal";
469
+
470
+ export {
471
+ ProfileModal
472
+ };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Card
3
- } from "./chunk-YUIZZ6XE.mjs";
3
+ } from "./chunk-3O4U3E5I.mjs";
4
4
  import {
5
5
  cn,
6
6
  getMotionClassName
7
- } from "./chunk-GC3QIIH7.mjs";
7
+ } from "./chunk-GJ4U5NCE.mjs";
8
8
 
9
9
  // src/primitives/skeleton/views/event-list-skeleton-view.tsx
10
10
  import { useLabels as useLabels2 } from "@agg-market/hooks";
@@ -384,7 +384,7 @@ var SettlementSkeletonView = ({
384
384
  Card,
385
385
  {
386
386
  className: cn(
387
- "gap-5 rounded-agg-xl border border-agg-separator bg-agg-secondary p-5 shadow-none hover:shadow-none",
387
+ "flex flex-col w-full gap-5 rounded-agg-xl border border-agg-separator bg-agg-secondary p-5 shadow-none hover:shadow-none",
388
388
  className
389
389
  ),
390
390
  role: "status",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  cn,
3
3
  getMotionClassName
4
- } from "./chunk-GC3QIIH7.mjs";
4
+ } from "./chunk-GJ4U5NCE.mjs";
5
5
 
6
6
  // src/primitives/switch-button/index.tsx
7
7
  import { useEffect, useMemo, useState } from "react";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Select
3
- } from "./chunk-IY2AA3OL.mjs";
3
+ } from "./chunk-ZDF7QP4G.mjs";
4
4
  import {
5
5
  Icon
6
- } from "./chunk-DA6KZWSK.mjs";
6
+ } from "./chunk-F236MLT6.mjs";
7
7
  import {
8
8
  AGG_ROOT_CLASS_NAME,
9
9
  __spreadProps,
@@ -11,7 +11,7 @@ import {
11
11
  cn,
12
12
  getMotionClassName,
13
13
  getScrollBehavior
14
- } from "./chunk-GC3QIIH7.mjs";
14
+ } from "./chunk-GJ4U5NCE.mjs";
15
15
 
16
16
  // src/primitives/tabs/index.tsx
17
17
  import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  VenueLogo
3
- } from "./chunk-LY6474C4.mjs";
3
+ } from "./chunk-BLSHXIAH.mjs";
4
4
  import {
5
5
  Icon
6
- } from "./chunk-DA6KZWSK.mjs";
6
+ } from "./chunk-F236MLT6.mjs";
7
7
  import {
8
8
  getIconA11yProps
9
9
  } from "./chunk-BNDFQPHF.mjs";
@@ -13,7 +13,7 @@ import {
13
13
  __spreadValues,
14
14
  cn,
15
15
  getMotionClassName
16
- } from "./chunk-GC3QIIH7.mjs";
16
+ } from "./chunk-GJ4U5NCE.mjs";
17
17
 
18
18
  // src/primitives/search/index.tsx
19
19
  import { useMemo } from "react";
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  EventListItem
3
- } from "./chunk-2NCBX6XI.mjs";
3
+ } from "./chunk-W2DMBW4E.mjs";
4
4
  import {
5
5
  Tabs
6
- } from "./chunk-QXFDXXDB.mjs";
6
+ } from "./chunk-LWTQD345.mjs";
7
7
  import {
8
8
  Skeleton
9
- } from "./chunk-NFYS557L.mjs";
9
+ } from "./chunk-JH5VMNDL.mjs";
10
10
  import {
11
11
  VenueLogo
12
- } from "./chunk-LY6474C4.mjs";
12
+ } from "./chunk-BLSHXIAH.mjs";
13
13
  import {
14
14
  Icon
15
- } from "./chunk-DA6KZWSK.mjs";
15
+ } from "./chunk-F236MLT6.mjs";
16
16
  import {
17
17
  Typography
18
- } from "./chunk-DQ6XFBYJ.mjs";
18
+ } from "./chunk-DYEWXEEY.mjs";
19
19
  import {
20
20
  __spreadProps,
21
21
  __spreadValues,
22
22
  cn
23
- } from "./chunk-GC3QIIH7.mjs";
23
+ } from "./chunk-GJ4U5NCE.mjs";
24
24
 
25
25
  // src/events/list/index.tsx
26
26
  import { useEffect, useMemo, useRef, useState } from "react";
@@ -5,7 +5,7 @@ import {
5
5
  __objRest,
6
6
  __spreadProps,
7
7
  __spreadValues
8
- } from "./chunk-GC3QIIH7.mjs";
8
+ } from "./chunk-GJ4U5NCE.mjs";
9
9
 
10
10
  // src/primitives/icon/svg/close.tsx
11
11
  import { jsx, jsxs } from "react/jsx-runtime";