@agg-build/ui 1.2.11 → 1.2.12

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 (66) hide show
  1. package/dist/{chunk-J7K2U44E.mjs → chunk-3JXBOU24.mjs} +110 -60
  2. package/dist/{chunk-3ZSNHGAB.mjs → chunk-4WBQTUPW.mjs} +314 -58
  3. package/dist/{chunk-54PCEK6G.mjs → chunk-IBOE7DRY.mjs} +1 -1
  4. package/dist/{chunk-YP75TIY6.mjs → chunk-J6WELNCX.mjs} +3 -3
  5. package/dist/{chunk-ENAGASVU.mjs → chunk-U55T5BPE.mjs} +406 -337
  6. package/dist/{chunk-SJLHOAKK.mjs → chunk-X3KCFWXN.mjs} +936 -650
  7. package/dist/{chunk-NWJHFGBZ.mjs → chunk-YSW4ULL5.mjs} +1 -1
  8. package/dist/events.js +1593 -886
  9. package/dist/events.mjs +3 -3
  10. package/dist/index.js +4211 -3198
  11. package/dist/index.mjs +480 -105
  12. package/dist/modals.js +1164 -923
  13. package/dist/modals.mjs +3 -3
  14. package/dist/pages.js +1975 -1492
  15. package/dist/pages.mjs +6 -6
  16. package/dist/primitives.js +928 -649
  17. package/dist/primitives.mjs +1 -1
  18. package/dist/styles.css +1 -1
  19. package/dist/tailwind.css +1 -1
  20. package/dist/trading.js +641 -444
  21. package/dist/trading.mjs +4 -4
  22. package/dist/types/agg-provider.d.mts +27 -0
  23. package/dist/types/agg-provider.d.ts +27 -0
  24. package/dist/types/events/list/event-list-tabs.d.mts +6 -1
  25. package/dist/types/events/list/event-list-tabs.d.ts +6 -1
  26. package/dist/types/index.d.mts +2 -0
  27. package/dist/types/index.d.ts +2 -0
  28. package/dist/types/notifications/agg-notification-events-provider.d.mts +35 -0
  29. package/dist/types/notifications/agg-notification-events-provider.d.ts +35 -0
  30. package/dist/types/notifications/agg-toast-provider.d.mts +27 -0
  31. package/dist/types/notifications/agg-toast-provider.d.ts +27 -0
  32. package/dist/types/notifications/deposit-notification-events.d.mts +10 -0
  33. package/dist/types/notifications/deposit-notification-events.d.ts +10 -0
  34. package/dist/types/notifications/index.d.mts +2 -0
  35. package/dist/types/notifications/index.d.ts +2 -0
  36. package/dist/types/primitives/button/button.types.d.mts +4 -0
  37. package/dist/types/primitives/button/button.types.d.ts +4 -0
  38. package/dist/types/primitives/button/index.d.mts +1 -1
  39. package/dist/types/primitives/button/index.d.ts +1 -1
  40. package/dist/types/primitives/icon/registry.d.mts +16 -0
  41. package/dist/types/primitives/icon/registry.d.ts +16 -0
  42. package/dist/types/primitives/icon/svg/sort-end-date.d.mts +5 -0
  43. package/dist/types/primitives/icon/svg/sort-end-date.d.ts +5 -0
  44. package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.mts +5 -0
  45. package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.ts +5 -0
  46. package/dist/types/primitives/icon/svg/sort-volume-24hr.d.mts +5 -0
  47. package/dist/types/primitives/icon/svg/sort-volume-24hr.d.ts +5 -0
  48. package/dist/types/primitives/icon/svg/sort-volume.d.mts +5 -0
  49. package/dist/types/primitives/icon/svg/sort-volume.d.ts +5 -0
  50. package/dist/types/primitives/select/index.d.mts +1 -1
  51. package/dist/types/primitives/select/index.d.ts +1 -1
  52. package/dist/types/primitives/select/select.types.d.mts +9 -0
  53. package/dist/types/primitives/select/select.types.d.ts +9 -0
  54. package/dist/types/primitives/toast/toast.types.d.mts +3 -0
  55. package/dist/types/primitives/toast/toast.types.d.ts +3 -0
  56. package/dist/types/profile/index.d.mts +1 -1
  57. package/dist/types/profile/index.d.ts +1 -1
  58. package/dist/types/profile/profile-modal.constants.d.mts +2 -2
  59. package/dist/types/profile/profile-modal.constants.d.ts +2 -2
  60. package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +2 -17
  61. package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +2 -17
  62. package/dist/types/profile/tabs/trading-access-tab.d.mts +15 -0
  63. package/dist/types/profile/tabs/trading-access-tab.d.ts +15 -0
  64. package/dist/types/trading/place-order/index.place-order.utils.d.mts +1 -1
  65. package/dist/types/trading/place-order/index.place-order.utils.d.ts +1 -1
  66. package/package.json +2 -2
@@ -38,12 +38,31 @@ import {
38
38
  shortenAddress,
39
39
  useOptionalToast,
40
40
  venueLogoLabels
41
- } from "./chunk-SJLHOAKK.mjs";
41
+ } from "./chunk-X3KCFWXN.mjs";
42
42
 
43
43
  // src/deposit/index.tsx
44
44
  import { useAggAuthState, useAggUiConfig, useDepositAddresses, useLabels as useLabels11 } from "@agg-build/hooks";
45
45
  import { SVM_CHAIN_IDS, useDepositFlow } from "@agg-build/hooks/deposit";
46
- import { useEffect as useEffect3, useMemo, useRef, useState as useState2 } from "react";
46
+ import { useCallback, useEffect as useEffect3, useMemo, useRef, useState as useState2 } from "react";
47
+
48
+ // src/notifications/deposit-notification-events.ts
49
+ var AGG_DEPOSIT_NOTIFICATION_EVENT = "agg:deposit-notification";
50
+ var dispatchAggDepositNotification = (detail) => {
51
+ if (typeof window === "undefined") return;
52
+ window.dispatchEvent(new CustomEvent(AGG_DEPOSIT_NOTIFICATION_EVENT, { detail }));
53
+ };
54
+ var subscribeAggDepositNotification = (handler) => {
55
+ if (typeof window === "undefined") return () => {
56
+ };
57
+ const handleDepositNotification = (event) => {
58
+ if (!(event instanceof CustomEvent)) return;
59
+ handler(event.detail);
60
+ };
61
+ window.addEventListener(AGG_DEPOSIT_NOTIFICATION_EVENT, handleDepositNotification);
62
+ return () => {
63
+ window.removeEventListener(AGG_DEPOSIT_NOTIFICATION_EVENT, handleDepositNotification);
64
+ };
65
+ };
47
66
 
48
67
  // src/shared/constants.ts
49
68
  var USDC = {
@@ -1337,6 +1356,8 @@ function DepositModalControlled({
1337
1356
  );
1338
1357
  const [highlightedMethod, setHighlightedMethod] = useState2(defaultMethod);
1339
1358
  const walletSubmitInFlightRef = useRef(false);
1359
+ const walletDepositAttemptIdRef = useRef(0);
1360
+ const notifiedWalletDepositStatusesRef = useRef(/* @__PURE__ */ new Set());
1340
1361
  const [isWalletSubmitting, setIsWalletSubmitting] = useState2(false);
1341
1362
  const [cardProviders, setCardProviders] = useState2([]);
1342
1363
  const [quotesLoading, setQuotesLoading] = useState2(false);
@@ -1439,19 +1460,42 @@ function DepositModalControlled({
1439
1460
  fromWallet: walletFlow.walletLabel,
1440
1461
  gasFee: ""
1441
1462
  }, walletFlow.successSummary);
1463
+ const handleWalletDepositNotification = useCallback(
1464
+ (status, errorMessage) => {
1465
+ if (notifiedWalletDepositStatusesRef.current.has(status)) return;
1466
+ notifiedWalletDepositStatusesRef.current.add(status);
1467
+ dispatchAggDepositNotification({
1468
+ id: `wallet-${walletDepositAttemptIdRef.current}`,
1469
+ status,
1470
+ amount: walletFlow.amount,
1471
+ tokenSymbol: walletToken || DEFAULT_WALLET_TOKEN,
1472
+ errorMessage
1473
+ });
1474
+ },
1475
+ [walletFlow.amount, walletToken]
1476
+ );
1442
1477
  useEffect3(() => {
1443
1478
  if (step === "wallet-processing" && !isWalletSubmitting && walletFlow.transactionStatus === "settled") {
1479
+ handleWalletDepositNotification("completed");
1444
1480
  setStep("wallet-success");
1445
1481
  }
1446
- }, [isWalletSubmitting, step, walletFlow.transactionStatus]);
1482
+ }, [handleWalletDepositNotification, isWalletSubmitting, step, walletFlow.transactionStatus]);
1447
1483
  useEffect3(() => {
1448
1484
  if (!onCancelWalletDeposit) return;
1449
1485
  if (step === "wallet-processing" && !isWalletSubmitting && walletFlow.transactionStatus === "error") {
1450
1486
  walletSubmitInFlightRef.current = false;
1487
+ handleWalletDepositNotification("failed", walletFlow.transactionErrorMessage);
1451
1488
  onCancelWalletDeposit();
1452
1489
  setStep("wallet-form");
1453
1490
  }
1454
- }, [isWalletSubmitting, onCancelWalletDeposit, step, walletFlow.transactionStatus]);
1491
+ }, [
1492
+ handleWalletDepositNotification,
1493
+ isWalletSubmitting,
1494
+ onCancelWalletDeposit,
1495
+ step,
1496
+ walletFlow.transactionErrorMessage,
1497
+ walletFlow.transactionStatus
1498
+ ]);
1455
1499
  const cardTokenOptions = withTokenIcons(
1456
1500
  mergeSelectOptionsUnique(cardFlow == null ? void 0 : cardFlow.tokenOptions, DEFAULT_CURRENCY_OPTIONS)
1457
1501
  );
@@ -1575,6 +1619,8 @@ function DepositModalControlled({
1575
1619
  setSendChainId("");
1576
1620
  setSendToken("");
1577
1621
  walletSubmitInFlightRef.current = false;
1622
+ walletDepositAttemptIdRef.current = 0;
1623
+ notifiedWalletDepositStatusesRef.current = /* @__PURE__ */ new Set();
1578
1624
  setIsWalletSubmitting(false);
1579
1625
  setCardProviders([]);
1580
1626
  setQuotesLoading(false);
@@ -1631,6 +1677,8 @@ function DepositModalControlled({
1631
1677
  var _a2, _b2;
1632
1678
  if (walletSubmitInFlightRef.current) return;
1633
1679
  walletSubmitInFlightRef.current = true;
1680
+ walletDepositAttemptIdRef.current += 1;
1681
+ notifiedWalletDepositStatusesRef.current = /* @__PURE__ */ new Set();
1634
1682
  setIsWalletSubmitting(true);
1635
1683
  setStep("wallet-processing");
1636
1684
  const walletChainIdNum = walletChainId ? Number(walletChainId) : void 0;
@@ -2409,7 +2457,7 @@ var WithdrawModal = (props) => {
2409
2457
  WithdrawModal.displayName = "WithdrawModal";
2410
2458
 
2411
2459
  // src/onboarding/index.tsx
2412
- import { useCallback as useCallback5, useEffect as useEffect5, useState as useState8 } from "react";
2460
+ import { useCallback as useCallback6, useEffect as useEffect5, useState as useState8 } from "react";
2413
2461
  import { useLabels as useLabels20 } from "@agg-build/hooks";
2414
2462
  import * as Dialog3 from "@radix-ui/react-dialog";
2415
2463
 
@@ -2429,7 +2477,7 @@ var ONBOARDING_STEPS = {
2429
2477
  var ONCHAIN_VENUES = [Venue.polymarket, Venue.opinion, Venue.predict];
2430
2478
 
2431
2479
  // src/onboarding/steps/how-it-works.tsx
2432
- import { useCallback, useRef as useRef2, useState as useState4 } from "react";
2480
+ import { useCallback as useCallback2, useRef as useRef2, useState as useState4 } from "react";
2433
2481
  import { useLabels as useLabels15 } from "@agg-build/hooks";
2434
2482
  import { jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
2435
2483
  var defaultIcons = {
@@ -2443,7 +2491,7 @@ var HowItWorksStep = ({ onContinue, icons }) => {
2443
2491
  const scrollRef = useRef2(null);
2444
2492
  const [showTopGradient, setShowTopGradient] = useState4(false);
2445
2493
  const [showBottomGradient, setShowBottomGradient] = useState4(true);
2446
- const handleScroll = useCallback(() => {
2494
+ const handleScroll = useCallback2(() => {
2447
2495
  const el = scrollRef.current;
2448
2496
  if (!el) return;
2449
2497
  setShowTopGradient(el.scrollTop > 0);
@@ -2512,7 +2560,7 @@ var HowItWorksStep = ({ onContinue, icons }) => {
2512
2560
  HowItWorksStep.displayName = "HowItWorksStep";
2513
2561
 
2514
2562
  // src/onboarding/steps/profile-setup.tsx
2515
- import { useCallback as useCallback2, useRef as useRef3, useState as useState5 } from "react";
2563
+ import { useCallback as useCallback3, useRef as useRef3, useState as useState5 } from "react";
2516
2564
  import { useLabels as useLabels16 } from "@agg-build/hooks";
2517
2565
  import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
2518
2566
  var ProfileSetupStep = ({ onContinue }) => {
@@ -2521,11 +2569,11 @@ var ProfileSetupStep = ({ onContinue }) => {
2521
2569
  const [avatarFile, setAvatarFile] = useState5();
2522
2570
  const [avatarPreview, setAvatarPreview] = useState5();
2523
2571
  const fileInputRef = useRef3(null);
2524
- const handleAvatarClick = useCallback2(() => {
2572
+ const handleAvatarClick = useCallback3(() => {
2525
2573
  var _a;
2526
2574
  (_a = fileInputRef.current) == null ? void 0 : _a.click();
2527
2575
  }, []);
2528
- const handleFileChange = useCallback2((e) => {
2576
+ const handleFileChange = useCallback3((e) => {
2529
2577
  var _a;
2530
2578
  const file = (_a = e.target.files) == null ? void 0 : _a[0];
2531
2579
  if (!file) return;
@@ -2537,7 +2585,7 @@ var ProfileSetupStep = ({ onContinue }) => {
2537
2585
  };
2538
2586
  reader.readAsDataURL(file);
2539
2587
  }, []);
2540
- const handleContinue = useCallback2(() => {
2588
+ const handleContinue = useCallback3(() => {
2541
2589
  onContinue({
2542
2590
  username,
2543
2591
  avatarFile,
@@ -2779,7 +2827,7 @@ ConnectAccountsStep.displayName = "ConnectAccountsStep";
2779
2827
 
2780
2828
  // src/onboarding/steps/connect-kalshi-modal.tsx
2781
2829
  import { Venue as Venue3 } from "@agg-build/sdk";
2782
- import { useCallback as useCallback3, useState as useState6 } from "react";
2830
+ import { useCallback as useCallback4, useState as useState6 } from "react";
2783
2831
  import { useLabels as useLabels18 } from "@agg-build/hooks";
2784
2832
  import * as Dialog from "@radix-ui/react-dialog";
2785
2833
  import { jsx as jsx20, jsxs as jsxs20 } from "react/jsx-runtime";
@@ -2794,10 +2842,10 @@ var ConnectKalshiModal = ({
2794
2842
  const [verifying, setVerifying] = useState6(false);
2795
2843
  const [error, setError] = useState6();
2796
2844
  const canVerify = apiKeyId.trim().length > 0 && privateKey.trim().length > 0;
2797
- const handleCancel = useCallback3(() => {
2845
+ const handleCancel = useCallback4(() => {
2798
2846
  onOpenChange(false);
2799
2847
  }, [onOpenChange]);
2800
- const handleVerify = useCallback3(() => __async(null, null, function* () {
2848
+ const handleVerify = useCallback4(() => __async(null, null, function* () {
2801
2849
  if (!canVerify || verifying) return;
2802
2850
  setVerifying(true);
2803
2851
  setError(void 0);
@@ -2826,7 +2874,7 @@ var ConnectKalshiModal = ({
2826
2874
  privateKey,
2827
2875
  verifying
2828
2876
  ]);
2829
- const handleOpenChange = useCallback3(
2877
+ const handleOpenChange = useCallback4(
2830
2878
  (value) => {
2831
2879
  if (value) {
2832
2880
  setApiKeyId("");
@@ -3029,7 +3077,7 @@ var ConnectKalshiModal = ({
3029
3077
  ConnectKalshiModal.displayName = "ConnectKalshiModal";
3030
3078
 
3031
3079
  // src/onboarding/steps/connect-onchain-modal.tsx
3032
- import { useCallback as useCallback4, useState as useState7 } from "react";
3080
+ import { useCallback as useCallback5, useState as useState7 } from "react";
3033
3081
  import { useLabels as useLabels19 } from "@agg-build/hooks";
3034
3082
  import * as Dialog2 from "@radix-ui/react-dialog";
3035
3083
  import { jsx as jsx21, jsxs as jsxs21 } from "react/jsx-runtime";
@@ -3041,10 +3089,10 @@ var ConnectOnchainModal = ({
3041
3089
  const labels = useLabels19();
3042
3090
  const [connecting, setConnecting] = useState7(false);
3043
3091
  const [error, setError] = useState7();
3044
- const handleCancel = useCallback4(() => {
3092
+ const handleCancel = useCallback5(() => {
3045
3093
  onOpenChange(false);
3046
3094
  }, [onOpenChange]);
3047
- const handleConnect = useCallback4(() => __async(null, null, function* () {
3095
+ const handleConnect = useCallback5(() => __async(null, null, function* () {
3048
3096
  if (connecting) return;
3049
3097
  setConnecting(true);
3050
3098
  setError(void 0);
@@ -3059,7 +3107,7 @@ var ConnectOnchainModal = ({
3059
3107
  setConnecting(false);
3060
3108
  }
3061
3109
  }), [connecting, labels.onboarding.connectOnchainModal.fallbackError, onConnect, onOpenChange]);
3062
- const handleOpenChange = useCallback4(
3110
+ const handleOpenChange = useCallback5(
3063
3111
  (value) => {
3064
3112
  if (value) {
3065
3113
  setError(void 0);
@@ -3169,30 +3217,30 @@ var OnboardingModal = ({
3169
3217
  setOnchainConnected(false);
3170
3218
  }
3171
3219
  }, [open]);
3172
- const handleHowItWorksContinue = useCallback5(() => {
3220
+ const handleHowItWorksContinue = useCallback6(() => {
3173
3221
  setStep(ONBOARDING_STEPS.PROFILE_SETUP);
3174
3222
  }, []);
3175
- const handleProfileContinue = useCallback5(
3223
+ const handleProfileContinue = useCallback6(
3176
3224
  (data) => {
3177
3225
  onProfileSubmit == null ? void 0 : onProfileSubmit(data);
3178
3226
  setStep(ONBOARDING_STEPS.CONNECT_ACCOUNTS);
3179
3227
  },
3180
3228
  [onProfileSubmit]
3181
3229
  );
3182
- const handleConnectContinue = useCallback5(() => {
3230
+ const handleConnectContinue = useCallback6(() => {
3183
3231
  onComplete == null ? void 0 : onComplete();
3184
3232
  }, [onComplete]);
3185
- const handleOpenOnchainModal = useCallback5(() => {
3233
+ const handleOpenOnchainModal = useCallback6(() => {
3186
3234
  setOnchainModalOpen(true);
3187
3235
  }, []);
3188
- const handleOnchainConnect = useCallback5(() => __async(null, null, function* () {
3236
+ const handleOnchainConnect = useCallback6(() => __async(null, null, function* () {
3189
3237
  yield onConnectOnchain == null ? void 0 : onConnectOnchain();
3190
3238
  setOnchainConnected(true);
3191
3239
  }), [onConnectOnchain]);
3192
- const handleOpenKalshiModal = useCallback5(() => {
3240
+ const handleOpenKalshiModal = useCallback6(() => {
3193
3241
  setKalshiModalOpen(true);
3194
3242
  }, []);
3195
- const handleKalshiVerify = useCallback5(
3243
+ const handleKalshiVerify = useCallback6(
3196
3244
  (credentials) => __async(null, null, function* () {
3197
3245
  yield onConnectKalshi == null ? void 0 : onConnectKalshi(credentials);
3198
3246
  setKalshiConnected(true);
@@ -3246,26 +3294,25 @@ var OnboardingModal = ({
3246
3294
  OnboardingModal.displayName = "OnboardingModal";
3247
3295
 
3248
3296
  // src/profile/index.tsx
3249
- import { Venue as Venue4 } from "@agg-build/sdk";
3250
- import { useState as useState10, useEffect as useEffect7, useCallback as useCallback8, useMemo as useMemo2 } from "react";
3297
+ import { useState as useState10, useEffect as useEffect7, useCallback as useCallback9, useMemo as useMemo2 } from "react";
3251
3298
  import { useAggClient as useAggClient2, useAggAuthState as useAggAuthState2 } from "@agg-build/hooks";
3252
3299
 
3253
3300
  // src/profile/profile-modal.constants.ts
3254
3301
  var PROFILE_TAB_KEYS = {
3255
- ABOUT: "about",
3256
- ACCOUNTS_WALLETS: "accounts-wallets"
3302
+ PROFILE_ACCOUNTS: "profile-accounts",
3303
+ TRADING_ACCESS: "trading-access"
3257
3304
  };
3258
3305
  var PROFILE_TAB_ITEMS = [
3259
- { value: PROFILE_TAB_KEYS.ABOUT, label: "About", icon: "profile-about-tab" },
3260
3306
  {
3261
- value: PROFILE_TAB_KEYS.ACCOUNTS_WALLETS,
3262
- label: "Accounts & wallets",
3263
- icon: "profile-accounts-wallets-tab"
3264
- }
3307
+ value: PROFILE_TAB_KEYS.PROFILE_ACCOUNTS,
3308
+ label: "Profile & accounts",
3309
+ icon: "profile-about-tab"
3310
+ },
3311
+ { value: PROFILE_TAB_KEYS.TRADING_ACCESS, label: "Trading access", icon: "shield-trust" }
3265
3312
  ];
3266
3313
 
3267
3314
  // src/profile/tabs/about-tab.tsx
3268
- import { useCallback as useCallback6, useRef as useRef4 } from "react";
3315
+ import { useCallback as useCallback7, useRef as useRef4 } from "react";
3269
3316
  import { useLabels as useLabels21 } from "@agg-build/hooks";
3270
3317
  import { jsx as jsx23, jsxs as jsxs23 } from "react/jsx-runtime";
3271
3318
  var AboutTab = ({
@@ -3279,11 +3326,11 @@ var AboutTab = ({
3279
3326
  }) => {
3280
3327
  const labels = useLabels21();
3281
3328
  const fileInputRef = useRef4(null);
3282
- const handleAvatarClick = useCallback6(() => {
3329
+ const handleAvatarClick = useCallback7(() => {
3283
3330
  var _a;
3284
3331
  (_a = fileInputRef.current) == null ? void 0 : _a.click();
3285
3332
  }, []);
3286
- const handleFileChange = useCallback6(
3333
+ const handleFileChange = useCallback7(
3287
3334
  (e) => {
3288
3335
  var _a;
3289
3336
  const file = (_a = e.target.files) == null ? void 0 : _a[0];
@@ -3299,69 +3346,67 @@ var AboutTab = ({
3299
3346
  );
3300
3347
  const resolvedPreview = draftAvatarPreview != null ? draftAvatarPreview : avatarPreview;
3301
3348
  const hasAvatarPreview = Boolean(resolvedPreview);
3302
- return /* @__PURE__ */ jsxs23("div", { className: "agg-profile-about flex flex-col gap-8", children: [
3303
- /* @__PURE__ */ jsxs23("div", { className: "agg-profile-avatar-section flex w-full flex-col items-stretch sm:items-start", children: [
3304
- /* @__PURE__ */ jsxs23(
3305
- "button",
3306
- {
3307
- type: "button",
3308
- onClick: handleAvatarClick,
3309
- className: cn(
3310
- "agg-profile-avatar-trigger",
3311
- "group relative flex items-center justify-center self-start",
3312
- "h-[80px] w-[80px]",
3313
- "rounded-agg-full",
3314
- "bg-agg-secondary-hover",
3315
- !hasAvatarPreview && "hover:bg-agg-tertiary",
3316
- "transition-colors cursor-pointer",
3317
- "overflow-hidden"
3318
- ),
3319
- "aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
3320
- children: [
3321
- !hasAvatarPreview ? /* @__PURE__ */ jsx23(
3322
- "svg",
3323
- {
3324
- "aria-hidden": true,
3325
- viewBox: "0 0 80 80",
3326
- className: "pointer-events-none absolute inset-0 h-full w-full text-agg-separator group-hover:text-agg-muted-foreground",
3327
- children: /* @__PURE__ */ jsx23(
3328
- "circle",
3329
- {
3330
- cx: "40",
3331
- cy: "40",
3332
- r: "39.5",
3333
- fill: "none",
3334
- stroke: "currentColor",
3335
- strokeWidth: "1",
3336
- strokeDasharray: "8 8"
3337
- }
3338
- )
3339
- }
3340
- ) : null,
3341
- resolvedPreview ? /* @__PURE__ */ jsx23(
3342
- RemoteImage,
3343
- {
3344
- src: resolvedPreview,
3345
- alt: labels.onboarding.profileSetup.profilePreviewAlt,
3346
- className: "h-full w-full object-cover"
3347
- }
3348
- ) : /* @__PURE__ */ jsx23(Icon, { name: "profile", className: "h-7 w-7 text-agg-muted-foreground" })
3349
- ]
3350
- }
3351
- ),
3352
- /* @__PURE__ */ jsx23(
3353
- "input",
3354
- {
3355
- ref: fileInputRef,
3356
- type: "file",
3357
- accept: "image/*",
3358
- onChange: handleFileChange,
3359
- className: "hidden",
3360
- "aria-hidden": "true"
3361
- }
3362
- )
3363
- ] }),
3364
- /* @__PURE__ */ jsxs23("div", { className: "agg-form-section flex flex-col gap-2", children: [
3349
+ return /* @__PURE__ */ jsx23("div", { className: "agg-profile-about flex flex-col gap-8", children: /* @__PURE__ */ jsxs23("div", { className: "agg-profile-avatar-section flex w-full items-center gap-6", children: [
3350
+ /* @__PURE__ */ jsxs23(
3351
+ "button",
3352
+ {
3353
+ type: "button",
3354
+ onClick: handleAvatarClick,
3355
+ className: cn(
3356
+ "agg-profile-avatar-trigger",
3357
+ "group relative flex items-center justify-center self-start",
3358
+ "h-[80px] w-[80px]",
3359
+ "rounded-agg-full",
3360
+ "bg-agg-secondary-hover",
3361
+ !hasAvatarPreview && "hover:bg-agg-tertiary",
3362
+ "transition-colors cursor-pointer",
3363
+ "overflow-hidden"
3364
+ ),
3365
+ "aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
3366
+ children: [
3367
+ !hasAvatarPreview ? /* @__PURE__ */ jsx23(
3368
+ "svg",
3369
+ {
3370
+ "aria-hidden": true,
3371
+ viewBox: "0 0 80 80",
3372
+ className: "pointer-events-none absolute inset-0 h-full w-full text-agg-separator group-hover:text-agg-muted-foreground",
3373
+ children: /* @__PURE__ */ jsx23(
3374
+ "circle",
3375
+ {
3376
+ cx: "40",
3377
+ cy: "40",
3378
+ r: "39.5",
3379
+ fill: "none",
3380
+ stroke: "currentColor",
3381
+ strokeWidth: "1",
3382
+ strokeDasharray: "8 8"
3383
+ }
3384
+ )
3385
+ }
3386
+ ) : null,
3387
+ resolvedPreview ? /* @__PURE__ */ jsx23(
3388
+ RemoteImage,
3389
+ {
3390
+ src: resolvedPreview,
3391
+ alt: labels.onboarding.profileSetup.profilePreviewAlt,
3392
+ className: "h-full w-full object-cover"
3393
+ }
3394
+ ) : /* @__PURE__ */ jsx23(Icon, { name: "profile", className: "h-7 w-7 text-agg-muted-foreground" })
3395
+ ]
3396
+ }
3397
+ ),
3398
+ /* @__PURE__ */ jsx23(
3399
+ "input",
3400
+ {
3401
+ ref: fileInputRef,
3402
+ type: "file",
3403
+ accept: "image/*",
3404
+ onChange: handleFileChange,
3405
+ className: "hidden",
3406
+ "aria-hidden": "true"
3407
+ }
3408
+ ),
3409
+ /* @__PURE__ */ jsxs23("div", { className: "agg-form-section flex min-w-0 flex-1 flex-col gap-2", children: [
3365
3410
  /* @__PURE__ */ jsx23(
3366
3411
  "label",
3367
3412
  {
@@ -3379,7 +3424,7 @@ var AboutTab = ({
3379
3424
  value: draftUsername,
3380
3425
  onChange: (e) => onDraftUsernameChange(e.target.value),
3381
3426
  className: cn(
3382
- "w-full px-4 py-3",
3427
+ "h-10 w-full px-3 py-2.5",
3383
3428
  "rounded-agg-sm",
3384
3429
  "border border-agg-separator",
3385
3430
  "bg-agg-secondary text-agg-foreground",
@@ -3392,27 +3437,33 @@ var AboutTab = ({
3392
3437
  }
3393
3438
  )
3394
3439
  ] })
3395
- ] });
3440
+ ] }) });
3396
3441
  };
3397
3442
  AboutTab.displayName = "AboutTab";
3398
3443
 
3399
3444
  // src/profile/tabs/accounts-wallets-tab.tsx
3400
- import { useCallback as useCallback7, useEffect as useEffect6, useState as useState9 } from "react";
3401
- import { useAggClient, useDepositAddresses as useDepositAddresses2 } from "@agg-build/hooks";
3402
3445
  import { jsx as jsx24, jsxs as jsxs24 } from "react/jsx-runtime";
3403
3446
  var SectionTitle = ({ children }) => /* @__PURE__ */ jsx24("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
3404
3447
  var AccountRow = ({ children, className }) => /* @__PURE__ */ jsx24(
3405
3448
  "div",
3406
3449
  {
3407
3450
  className: cn(
3408
- "flex items-center justify-between",
3451
+ "flex h-12 items-center justify-between",
3409
3452
  "rounded-agg-lg border border-agg-separator bg-agg-secondary",
3410
- "px-5 py-3",
3453
+ "px-5",
3411
3454
  className
3412
3455
  ),
3413
3456
  children
3414
3457
  }
3415
3458
  );
3459
+ var AccountIdentity = ({
3460
+ icon,
3461
+ label,
3462
+ iconClassName
3463
+ }) => /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-3", children: [
3464
+ /* @__PURE__ */ jsx24("span", { className: cn("flex h-5 w-5 shrink-0 items-center justify-center", iconClassName), children: /* @__PURE__ */ jsx24(Icon, { name: icon, size: "small", color: "currentColor" }) }),
3465
+ /* @__PURE__ */ jsx24("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: label })
3466
+ ] });
3416
3467
  var ConnectTextButton = ({ onClick }) => /* @__PURE__ */ jsx24(
3417
3468
  "button",
3418
3469
  {
@@ -3431,8 +3482,145 @@ var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ jsx24(
3431
3482
  children: "Disconnect"
3432
3483
  }
3433
3484
  );
3434
- var TRADING_ACCESS_VENUES = ["kalshi", "polymarket", "opinion", "predict"];
3485
+ var VerifiedBadge = () => /* @__PURE__ */ jsx24(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" });
3486
+ var ConnectedAccountRow = ({
3487
+ icon,
3488
+ label,
3489
+ connectedLabel,
3490
+ connected,
3491
+ iconClassName,
3492
+ onConnect,
3493
+ onDisconnect
3494
+ }) => {
3495
+ const displayLabel = connected ? connectedLabel != null ? connectedLabel : label : label;
3496
+ return /* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row gap-4", children: [
3497
+ /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-3", children: [
3498
+ /* @__PURE__ */ jsx24(AccountIdentity, { icon, label: displayLabel, iconClassName }),
3499
+ connected ? /* @__PURE__ */ jsx24(VerifiedBadge, {}) : null
3500
+ ] }),
3501
+ connected ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnect }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnect })
3502
+ ] });
3503
+ };
3504
+ var AccountsWalletsTab = ({
3505
+ socialAccounts,
3506
+ email,
3507
+ wallets = [],
3508
+ onConnectTwitter,
3509
+ onDisconnectTwitter,
3510
+ onConnectGoogle,
3511
+ onDisconnectGoogle,
3512
+ onConnectApple,
3513
+ onDisconnectApple,
3514
+ onDisconnectWallet,
3515
+ onConnectEmail
3516
+ }) => {
3517
+ const twitter = socialAccounts == null ? void 0 : socialAccounts.twitter;
3518
+ const google = socialAccounts == null ? void 0 : socialAccounts.google;
3519
+ const apple = socialAccounts == null ? void 0 : socialAccounts.apple;
3520
+ const hasEmail = Boolean(email);
3521
+ return /* @__PURE__ */ jsxs24("div", { className: "agg-accounts-wallets-tab flex flex-col gap-6", children: [
3522
+ /* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-section flex flex-col gap-3", children: [
3523
+ /* @__PURE__ */ jsx24(SectionTitle, { children: "Connected accounts" }),
3524
+ /* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-list flex flex-col gap-4", children: [
3525
+ /* @__PURE__ */ jsx24(
3526
+ ConnectedAccountRow,
3527
+ {
3528
+ icon: "google",
3529
+ iconClassName: "text-agg-foreground",
3530
+ label: "Google",
3531
+ connected: google == null ? void 0 : google.connected,
3532
+ connectedLabel: google == null ? void 0 : google.handle,
3533
+ onConnect: onConnectGoogle,
3534
+ onDisconnect: onDisconnectGoogle
3535
+ }
3536
+ ),
3537
+ /* @__PURE__ */ jsx24(
3538
+ ConnectedAccountRow,
3539
+ {
3540
+ icon: "apple",
3541
+ iconClassName: "text-agg-foreground",
3542
+ label: "Apple",
3543
+ connected: apple == null ? void 0 : apple.connected,
3544
+ connectedLabel: apple == null ? void 0 : apple.handle,
3545
+ onConnect: onConnectApple,
3546
+ onDisconnect: onDisconnectApple
3547
+ }
3548
+ ),
3549
+ /* @__PURE__ */ jsx24(
3550
+ ConnectedAccountRow,
3551
+ {
3552
+ icon: "twitter",
3553
+ iconClassName: "text-agg-foreground",
3554
+ label: "X (Twitter)",
3555
+ connected: twitter == null ? void 0 : twitter.connected,
3556
+ connectedLabel: twitter == null ? void 0 : twitter.handle,
3557
+ onConnect: onConnectTwitter,
3558
+ onDisconnect: onDisconnectTwitter
3559
+ }
3560
+ ),
3561
+ /* @__PURE__ */ jsx24(
3562
+ ConnectedAccountRow,
3563
+ {
3564
+ icon: "email",
3565
+ iconClassName: "text-agg-foreground",
3566
+ label: "Email address",
3567
+ connected: hasEmail,
3568
+ connectedLabel: email != null ? email : void 0,
3569
+ onConnect: onConnectEmail
3570
+ }
3571
+ )
3572
+ ] })
3573
+ ] }),
3574
+ /* @__PURE__ */ jsxs24("div", { className: "agg-wallets-section flex flex-col gap-3", children: [
3575
+ /* @__PURE__ */ jsx24(SectionTitle, { children: "Wallets" }),
3576
+ /* @__PURE__ */ jsx24("div", { className: "flex flex-col gap-2", children: wallets.length > 0 ? wallets.map((wallet) => {
3577
+ var _a;
3578
+ return /* @__PURE__ */ jsx24(AccountRow, { className: "gap-4", children: /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-3", children: [
3579
+ /* @__PURE__ */ jsx24(
3580
+ AccountIdentity,
3581
+ {
3582
+ icon: "wallet",
3583
+ iconClassName: "text-agg-foreground",
3584
+ label: (_a = wallet.displayAddress) != null ? _a : wallet.address
3585
+ }
3586
+ ),
3587
+ /* @__PURE__ */ jsx24(VerifiedBadge, {})
3588
+ ] }) }, `${wallet.chain}:${wallet.address}`);
3589
+ }) : null })
3590
+ ] })
3591
+ ] });
3592
+ };
3593
+ AccountsWalletsTab.displayName = "AccountsWalletsTab";
3594
+
3595
+ // src/profile/tabs/trading-access-tab.tsx
3596
+ import { useAggClient, useDepositAddresses as useDepositAddresses2, useLabels as useLabels22 } from "@agg-build/hooks";
3597
+ import { useCallback as useCallback8, useEffect as useEffect6, useState as useState9 } from "react";
3598
+ import { jsx as jsx25, jsxs as jsxs25 } from "react/jsx-runtime";
3599
+ var TRADING_ACCESS_VENUES = [
3600
+ "kalshi",
3601
+ "polymarket",
3602
+ "opinion",
3603
+ "probable",
3604
+ "limitless",
3605
+ "predict",
3606
+ "myriad",
3607
+ "hyperliquid"
3608
+ ];
3609
+ var UNAVAILABLE_VENUES = /* @__PURE__ */ new Set([]);
3610
+ var SectionTitle2 = ({ children }) => /* @__PURE__ */ jsx25("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
3611
+ var AccessRow = ({ children }) => /* @__PURE__ */ jsx25(
3612
+ "div",
3613
+ {
3614
+ className: cn(
3615
+ "flex h-12 items-center justify-between gap-4",
3616
+ "rounded-agg-lg border border-agg-separator bg-agg-secondary",
3617
+ "px-5"
3618
+ ),
3619
+ children
3620
+ }
3621
+ );
3435
3622
  var VerifyIdentityButton = ({ onError }) => {
3623
+ const labels = useLabels22();
3436
3624
  const client = useAggClient();
3437
3625
  const [isInitiating, setIsInitiating] = useState9(false);
3438
3626
  const [needsDepositAddress, setNeedsDepositAddress] = useState9(false);
@@ -3455,148 +3643,64 @@ var VerifyIdentityButton = ({ onError }) => {
3455
3643
  });
3456
3644
  }, [isReady, isInitiating, client, onError]);
3457
3645
  useEffect6(() => {
3458
- if (isTimedOut && isInitiating) {
3459
- setIsInitiating(false);
3460
- setNeedsDepositAddress(false);
3461
- onError == null ? void 0 : onError(new Error("Deposit address provisioning timed out"));
3462
- }
3646
+ if (!isTimedOut || !isInitiating) return;
3647
+ setIsInitiating(false);
3648
+ setNeedsDepositAddress(false);
3649
+ onError == null ? void 0 : onError(new Error("Deposit address provisioning timed out"));
3463
3650
  }, [isTimedOut, isInitiating, onError]);
3464
- const handleClick = useCallback7(() => {
3651
+ const handleClick = useCallback8(() => {
3465
3652
  setIsInitiating(true);
3466
3653
  setNeedsDepositAddress(true);
3467
3654
  }, []);
3468
- return /* @__PURE__ */ jsx24(
3655
+ return /* @__PURE__ */ jsx25(
3469
3656
  "button",
3470
3657
  {
3471
3658
  type: "button",
3472
3659
  disabled: isInitiating,
3473
3660
  onClick: handleClick,
3474
3661
  className: "shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-primary whitespace-nowrap disabled:cursor-not-allowed disabled:opacity-60",
3475
- children: isInitiating ? /* @__PURE__ */ jsx24("span", { className: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : "Verify Identity"
3662
+ children: isInitiating ? /* @__PURE__ */ jsx25("span", { className: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : labels.trading.kycVerify
3476
3663
  }
3477
3664
  );
3478
3665
  };
3479
- var TradingAccessSection = ({
3666
+ var AvailableStatus = () => /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-2", children: [
3667
+ /* @__PURE__ */ jsx25(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" }),
3668
+ /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: "Available" })
3669
+ ] });
3670
+ var TradingAccessTab = ({
3480
3671
  venueAccounts,
3481
3672
  onKycError
3482
3673
  }) => {
3483
- return /* @__PURE__ */ jsxs24("div", { className: "agg-trading-access-section flex flex-col gap-3", children: [
3484
- /* @__PURE__ */ jsx24(SectionTitle, { children: "Trading access" }),
3485
- /* @__PURE__ */ jsx24("div", { className: "flex flex-col gap-2", children: TRADING_ACCESS_VENUES.map((venue) => {
3674
+ const labels = useLabels22();
3675
+ return /* @__PURE__ */ jsxs25("div", { className: "agg-trading-access-section flex flex-col gap-4", children: [
3676
+ /* @__PURE__ */ jsx25(SectionTitle2, { children: "Venues" }),
3677
+ /* @__PURE__ */ jsx25("div", { className: "flex flex-col gap-3", children: TRADING_ACCESS_VENUES.map((venue) => {
3486
3678
  var _a;
3487
- const venueAccount = venueAccounts == null ? void 0 : venueAccounts.find((va) => va.venue === venue);
3679
+ const venueAccount = venueAccounts == null ? void 0 : venueAccounts.find((account) => account.venue === venue);
3488
3680
  const isKalshi = venue === "kalshi";
3489
3681
  const isVerified = (venueAccount == null ? void 0 : venueAccount.kycStatus) === "verified";
3682
+ const isUnavailable = UNAVAILABLE_VENUES.has(venue);
3490
3683
  const displayName = (_a = venueLogoLabels[venue]) != null ? _a : venue;
3491
- return /* @__PURE__ */ jsxs24(AccountRow, { children: [
3492
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
3493
- /* @__PURE__ */ jsx24(VenueLogo, { venue, size: "small" }),
3494
- /* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: displayName })
3684
+ return /* @__PURE__ */ jsxs25(AccessRow, { children: [
3685
+ /* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 items-center gap-3", children: [
3686
+ /* @__PURE__ */ jsx25(VenueLogo, { venue, size: "small" }),
3687
+ /* @__PURE__ */ jsx25("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: displayName })
3495
3688
  ] }),
3496
- isKalshi && !isVerified ? /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-4", children: [
3497
- /* @__PURE__ */ jsx24("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: "KYC required" }),
3498
- /* @__PURE__ */ jsx24(VerifyIdentityButton, { onError: onKycError })
3499
- ] }) : isKalshi && isVerified ? /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-4", children: [
3500
- /* @__PURE__ */ jsx24("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: "Verified" }),
3501
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
3502
- /* @__PURE__ */ jsx24(
3503
- Icon,
3504
- {
3505
- name: "check-badge",
3506
- size: "small",
3507
- color: "var(--agg-color-primary, #536dfe)"
3508
- }
3509
- ),
3510
- /* @__PURE__ */ jsx24("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: "Available" })
3511
- ] })
3512
- ] }) : /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
3513
- /* @__PURE__ */ jsx24(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" }),
3514
- /* @__PURE__ */ jsx24("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: "Available" })
3515
- ] })
3689
+ isKalshi && !isVerified ? /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-4", children: [
3690
+ /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.kycRequired }),
3691
+ /* @__PURE__ */ jsx25(VerifyIdentityButton, { onError: onKycError })
3692
+ ] }) : isKalshi && isVerified ? /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-4", children: [
3693
+ /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.verified }),
3694
+ /* @__PURE__ */ jsx25(AvailableStatus, {})
3695
+ ] }) : isUnavailable ? /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.venueUnavailableInRegion }) : /* @__PURE__ */ jsx25(AvailableStatus, {})
3516
3696
  ] }, venue);
3517
3697
  }) })
3518
3698
  ] });
3519
3699
  };
3520
- var AccountsWalletsTab = ({
3521
- exchanges: _exchanges,
3522
- socialAccounts,
3523
- email,
3524
- venueAccounts,
3525
- onKycError,
3526
- onDisconnectExchange: _onDisconnectExchange,
3527
- onConnectTwitter,
3528
- onDisconnectTwitter,
3529
- onConnectGoogle,
3530
- onDisconnectGoogle,
3531
- onConnectApple,
3532
- onDisconnectApple,
3533
- onConnectDiscord: _onConnectDiscord,
3534
- onDisconnectDiscord: _onDisconnectDiscord,
3535
- onConnectTelegram: _onConnectTelegram,
3536
- onDisconnectTelegram: _onDisconnectTelegram,
3537
- onConnectEmail
3538
- }) => {
3539
- const twitter = socialAccounts == null ? void 0 : socialAccounts.twitter;
3540
- const google = socialAccounts == null ? void 0 : socialAccounts.google;
3541
- const apple = socialAccounts == null ? void 0 : socialAccounts.apple;
3542
- return /* @__PURE__ */ jsxs24("div", { className: "agg-accounts-wallets-tab flex flex-col gap-8", children: [
3543
- /* @__PURE__ */ jsx24(TradingAccessSection, { venueAccounts, onKycError }),
3544
- /* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-section flex flex-col gap-3", children: [
3545
- /* @__PURE__ */ jsx24(SectionTitle, { children: "Social Accounts" }),
3546
- /* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-list flex flex-col gap-2", children: [
3547
- /* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row", children: [
3548
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
3549
- /* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "google", size: "small", color: "currentColor" }) }),
3550
- /* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Google" })
3551
- ] }),
3552
- (google == null ? void 0 : google.connected) ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnectGoogle }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnectGoogle })
3553
- ] }),
3554
- /* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row", children: [
3555
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
3556
- /* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "apple", size: "small", color: "currentColor" }) }),
3557
- /* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Apple" })
3558
- ] }),
3559
- (apple == null ? void 0 : apple.connected) ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnectApple }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnectApple })
3560
- ] }),
3561
- /* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row", children: [
3562
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
3563
- /* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "twitter", size: "small", color: "currentColor" }) }),
3564
- /* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "X (Twitter)" })
3565
- ] }),
3566
- (twitter == null ? void 0 : twitter.connected) ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnectTwitter }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnectTwitter })
3567
- ] })
3568
- ] })
3569
- ] }),
3570
- /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-3", children: [
3571
- /* @__PURE__ */ jsx24(SectionTitle, { children: "Email Address" }),
3572
- /* @__PURE__ */ jsxs24(
3573
- "button",
3574
- {
3575
- type: "button",
3576
- onClick: onConnectEmail,
3577
- className: cn(
3578
- "flex items-center justify-between",
3579
- "rounded-agg-lg border border-agg-separator bg-agg-secondary",
3580
- "px-5 py-3",
3581
- "cursor-pointer hover:bg-agg-secondary-hover"
3582
- ),
3583
- children: [
3584
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
3585
- /* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "email", size: "small", color: "currentColor" }) }),
3586
- /* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: email != null ? email : "Connect email" })
3587
- ] }),
3588
- /* @__PURE__ */ jsx24(Icon, { name: "chevron-right", size: "small", color: "currentColor" })
3589
- ]
3590
- }
3591
- )
3592
- ] })
3593
- ] });
3594
- };
3595
- AccountsWalletsTab.displayName = "AccountsWalletsTab";
3700
+ TradingAccessTab.displayName = "TradingAccessTab";
3596
3701
 
3597
3702
  // src/profile/index.tsx
3598
- import { jsx as jsx25, jsxs as jsxs25 } from "react/jsx-runtime";
3599
- var EVM_WALLET_VENUES = [Venue4.polymarket, Venue4.predict, Venue4.opinion];
3703
+ import { jsx as jsx26, jsxs as jsxs26 } from "react/jsx-runtime";
3600
3704
  var ProfileModal = ({
3601
3705
  open,
3602
3706
  onOpenChange,
@@ -3604,21 +3708,15 @@ var ProfileModal = ({
3604
3708
  avatarPreview,
3605
3709
  onSave,
3606
3710
  onDeleteProfile,
3607
- exchanges,
3608
3711
  socialAccounts,
3609
3712
  wallets,
3610
3713
  email,
3611
- onDisconnectExchange: onDisconnectExchangeProp,
3612
3714
  onConnectTwitter,
3613
3715
  onDisconnectTwitter,
3614
3716
  onConnectGoogle,
3615
3717
  onDisconnectGoogle,
3616
3718
  onConnectApple,
3617
3719
  onDisconnectApple,
3618
- onConnectDiscord,
3619
- onDisconnectDiscord,
3620
- onConnectTelegram,
3621
- onDisconnectTelegram,
3622
3720
  onDisconnectWallet,
3623
3721
  onConnectEmail,
3624
3722
  onKycError
@@ -3627,7 +3725,7 @@ var ProfileModal = ({
3627
3725
  const client = useAggClient2();
3628
3726
  const { user, startAuth } = useAggAuthState2();
3629
3727
  const toastCtx = useOptionalToast();
3630
- const [activeTab, setActiveTab] = useState10(PROFILE_TAB_KEYS.ABOUT);
3728
+ const [activeTab, setActiveTab] = useState10(PROFILE_TAB_KEYS.PROFILE_ACCOUNTS);
3631
3729
  const resolvedInitialUsername = (_a = username != null ? username : user == null ? void 0 : user.username) != null ? _a : "";
3632
3730
  const [draftUsername, setDraftUsername] = useState10(resolvedInitialUsername);
3633
3731
  const [draftAvatarFile, setDraftAvatarFile] = useState10();
@@ -3638,11 +3736,11 @@ var ProfileModal = ({
3638
3736
  var _a2;
3639
3737
  setDraftUsername((_a2 = username != null ? username : user == null ? void 0 : user.username) != null ? _a2 : "");
3640
3738
  }, [username, user == null ? void 0 : user.username]);
3641
- const handleOpenChange = useCallback8(
3739
+ const handleOpenChange = useCallback9(
3642
3740
  (isOpen) => {
3643
3741
  var _a2;
3644
3742
  if (!isOpen) {
3645
- setActiveTab(PROFILE_TAB_KEYS.ABOUT);
3743
+ setActiveTab(PROFILE_TAB_KEYS.PROFILE_ACCOUNTS);
3646
3744
  setIsSaving(false);
3647
3745
  setDraftUsername((_a2 = username != null ? username : user == null ? void 0 : user.username) != null ? _a2 : "");
3648
3746
  setDraftAvatarFile(void 0);
@@ -3662,7 +3760,7 @@ var ProfileModal = ({
3662
3760
  setDraftAvatarPreview
3663
3761
  ]
3664
3762
  );
3665
- const handleDraftAvatarChange = useCallback8(
3763
+ const handleDraftAvatarChange = useCallback9(
3666
3764
  (file, preview) => {
3667
3765
  const ACCEPTED_AVATAR_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
3668
3766
  if (file && !ACCEPTED_AVATAR_TYPES.includes(file.type)) {
@@ -3677,7 +3775,7 @@ var ProfileModal = ({
3677
3775
  );
3678
3776
  const originalUsername = (_b = username != null ? username : user == null ? void 0 : user.username) != null ? _b : "";
3679
3777
  const hasChanges = draftUsername !== originalUsername || draftAvatarFile !== void 0;
3680
- const handleSave = useCallback8(() => __async(null, null, function* () {
3778
+ const handleSave = useCallback9(() => __async(null, null, function* () {
3681
3779
  var _a2, _b2, _c2;
3682
3780
  setIsSaving(true);
3683
3781
  try {
@@ -3732,7 +3830,7 @@ var ProfileModal = ({
3732
3830
  originalUsername,
3733
3831
  toastCtx
3734
3832
  ]);
3735
- const handleCancel = useCallback8(() => {
3833
+ const handleCancel = useCallback9(() => {
3736
3834
  handleOpenChange(false);
3737
3835
  }, [handleOpenChange]);
3738
3836
  const isAccountConnected = (providers) => {
@@ -3776,7 +3874,7 @@ var ProfileModal = ({
3776
3874
  if (typeof window === "undefined") return;
3777
3875
  ((_a2 = window.top) != null ? _a2 : window).location.assign(url);
3778
3876
  };
3779
- const handleConnectTwitter = useCallback8(() => __async(null, null, function* () {
3877
+ const handleConnectTwitter = useCallback9(() => __async(null, null, function* () {
3780
3878
  const result = yield startAuth({
3781
3879
  provider: "twitter",
3782
3880
  redirectUrl: resolveRedirectUrl()
@@ -3786,7 +3884,7 @@ var ProfileModal = ({
3786
3884
  navigateTopWindow(result.url);
3787
3885
  }
3788
3886
  }), [onConnectTwitter, startAuth]);
3789
- const handleConnectGoogle = useCallback8(() => __async(null, null, function* () {
3887
+ const handleConnectGoogle = useCallback9(() => __async(null, null, function* () {
3790
3888
  const result = yield startAuth({
3791
3889
  provider: "google",
3792
3890
  redirectUrl: resolveRedirectUrl()
@@ -3796,7 +3894,7 @@ var ProfileModal = ({
3796
3894
  navigateTopWindow(result.url);
3797
3895
  }
3798
3896
  }), [onConnectGoogle, startAuth]);
3799
- const handleConnectApple = useCallback8(() => __async(null, null, function* () {
3897
+ const handleConnectApple = useCallback9(() => __async(null, null, function* () {
3800
3898
  const result = yield startAuth({
3801
3899
  provider: "apple",
3802
3900
  redirectUrl: resolveRedirectUrl()
@@ -3806,22 +3904,22 @@ var ProfileModal = ({
3806
3904
  navigateTopWindow(result.url);
3807
3905
  }
3808
3906
  }), [onConnectApple, startAuth]);
3809
- const handleDisconnectTwitter = useCallback8(() => __async(null, null, function* () {
3907
+ const handleDisconnectTwitter = useCallback9(() => __async(null, null, function* () {
3810
3908
  yield client.disconnectAccount("twitter");
3811
3909
  yield client.getCurrentUser();
3812
3910
  onDisconnectTwitter == null ? void 0 : onDisconnectTwitter();
3813
3911
  }), [client, onDisconnectTwitter]);
3814
- const handleDisconnectGoogle = useCallback8(() => __async(null, null, function* () {
3912
+ const handleDisconnectGoogle = useCallback9(() => __async(null, null, function* () {
3815
3913
  yield client.disconnectAccount("google");
3816
3914
  yield client.getCurrentUser();
3817
3915
  onDisconnectGoogle == null ? void 0 : onDisconnectGoogle();
3818
3916
  }), [client, onDisconnectGoogle]);
3819
- const handleDisconnectApple = useCallback8(() => __async(null, null, function* () {
3917
+ const handleDisconnectApple = useCallback9(() => __async(null, null, function* () {
3820
3918
  yield client.disconnectAccount("apple");
3821
3919
  yield client.getCurrentUser();
3822
3920
  onDisconnectApple == null ? void 0 : onDisconnectApple();
3823
3921
  }), [client, onDisconnectApple]);
3824
- const handleConnectEmail = useCallback8(() => __async(null, null, function* () {
3922
+ const handleConnectEmail = useCallback9(() => __async(null, null, function* () {
3825
3923
  var _a2;
3826
3924
  const typedEmail = typeof window !== "undefined" ? (_a2 = window.prompt("Enter your email to receive a magic link")) == null ? void 0 : _a2.trim() : void 0;
3827
3925
  if (!typedEmail) return;
@@ -3832,7 +3930,7 @@ var ProfileModal = ({
3832
3930
  });
3833
3931
  onConnectEmail == null ? void 0 : onConnectEmail();
3834
3932
  }), [onConnectEmail, startAuth]);
3835
- const handleDisconnectWallet = useCallback8(
3933
+ const handleDisconnectWallet = useCallback9(
3836
3934
  (wallet) => __async(null, null, function* () {
3837
3935
  const normalizedChain = wallet.chain.toLowerCase();
3838
3936
  const provider = normalizedChain === "solana" || normalizedChain === "svm" ? "solana_wallet" : "wallet";
@@ -3896,30 +3994,7 @@ var ProfileModal = ({
3896
3994
  };
3897
3995
  })) != null ? _b2 : [];
3898
3996
  }, [user == null ? void 0 : user.wallets, wallets]);
3899
- const resolvedExchanges = useMemo2(() => {
3900
- var _a2, _b2;
3901
- if (exchanges !== void 0) return exchanges;
3902
- const walletAccount = (_a2 = user == null ? void 0 : user.accounts) == null ? void 0 : _a2.find(
3903
- (a) => a.provider.toLowerCase() === "wallet"
3904
- );
3905
- if (!walletAccount) return [];
3906
- const addr = walletAccount.providerAccountId;
3907
- const displayAddress = (_b2 = shortenAddress(addr)) != null ? _b2 : addr;
3908
- return EVM_WALLET_VENUES.map((venue) => ({ venue, displayAddress, verified: false }));
3909
- }, [exchanges, user == null ? void 0 : user.accounts]);
3910
- const handleDisconnectExchange = useCallback8(
3911
- (venue) => __async(null, null, function* () {
3912
- if (exchanges !== void 0) {
3913
- onDisconnectExchangeProp == null ? void 0 : onDisconnectExchangeProp(venue);
3914
- return;
3915
- }
3916
- yield client.disconnectAccount("wallet");
3917
- yield client.getCurrentUser();
3918
- onDisconnectExchangeProp == null ? void 0 : onDisconnectExchangeProp(venue);
3919
- }),
3920
- [client, exchanges, onDisconnectExchangeProp]
3921
- );
3922
- return /* @__PURE__ */ jsx25(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs25(
3997
+ return /* @__PURE__ */ jsx26(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs26(
3923
3998
  Modal.Container,
3924
3999
  {
3925
4000
  maxWidth: "800px",
@@ -3928,8 +4003,8 @@ var ProfileModal = ({
3928
4003
  container: cn("agg-profile-modal", "min-h-[37.5rem]")
3929
4004
  },
3930
4005
  children: [
3931
- /* @__PURE__ */ jsx25(Modal.Header, { title: "Edit Profile", classNames: { root: "agg-profile-modal-header" } }),
3932
- /* @__PURE__ */ jsx25("div", { className: "agg-profile-tabs sm:hidden w-full", children: /* @__PURE__ */ jsx25(
4006
+ /* @__PURE__ */ jsx26(Modal.Header, { title: "Edit Profile", classNames: { root: "agg-profile-modal-header" } }),
4007
+ /* @__PURE__ */ jsx26("div", { className: "agg-profile-tabs sm:hidden w-full", children: /* @__PURE__ */ jsx26(
3933
4008
  Tabs,
3934
4009
  {
3935
4010
  className: "w-full [&>div]:w-full",
@@ -3938,14 +4013,14 @@ var ProfileModal = ({
3938
4013
  items: PROFILE_TAB_ITEMS.map((tab) => ({
3939
4014
  value: tab.value,
3940
4015
  label: tab.label,
3941
- icon: /* @__PURE__ */ jsx25(Icon, { name: tab.icon, size: "small" })
4016
+ icon: /* @__PURE__ */ jsx26(Icon, { name: tab.icon, size: "small" })
3942
4017
  })),
3943
4018
  value: activeTab,
3944
4019
  onChange: (val) => setActiveTab(val)
3945
4020
  }
3946
4021
  ) }),
3947
- /* @__PURE__ */ jsx25(Modal.Body, { classNames: { root: cn("agg-profile-modal-body", "overflow-x-visible") }, children: /* @__PURE__ */ jsxs25("div", { className: "agg-profile-layout flex flex-col sm:flex-row sm:gap-10", children: [
3948
- /* @__PURE__ */ jsx25("div", { className: "shrink-0", children: /* @__PURE__ */ jsx25(
4022
+ /* @__PURE__ */ jsx26(Modal.Body, { classNames: { root: cn("agg-profile-modal-body", "overflow-x-visible") }, children: /* @__PURE__ */ jsxs26("div", { className: "agg-profile-layout flex flex-col sm:flex-row sm:gap-10", children: [
4023
+ /* @__PURE__ */ jsx26("div", { className: "shrink-0", children: /* @__PURE__ */ jsx26(
3949
4024
  "nav",
3950
4025
  {
3951
4026
  className: cn(
@@ -3961,7 +4036,7 @@ var ProfileModal = ({
3961
4036
  "aria-label": "Profile sections",
3962
4037
  children: PROFILE_TAB_ITEMS.map((tab) => {
3963
4038
  const isActive = activeTab === tab.value;
3964
- return /* @__PURE__ */ jsxs25(
4039
+ return /* @__PURE__ */ jsxs26(
3965
4040
  "button",
3966
4041
  {
3967
4042
  type: "button",
@@ -3977,9 +4052,9 @@ var ProfileModal = ({
3977
4052
  isActive ? "font-agg-normal text-agg-foreground bg-agg-secondary-hover" : "font-agg-normal text-agg-foreground"
3978
4053
  ),
3979
4054
  children: [
3980
- isActive ? /* @__PURE__ */ jsx25("div", { className: "absolute left-0 top-0 bottom-0 w-1 bg-agg-primary" }) : null,
3981
- /* @__PURE__ */ jsx25(Icon, { name: tab.icon, size: "small", color: "currentColor" }),
3982
- /* @__PURE__ */ jsx25("span", { className: "shrink-0 whitespace-nowrap", children: tab.label })
4055
+ isActive ? /* @__PURE__ */ jsx26("div", { className: "absolute left-0 top-0 bottom-0 w-1 bg-agg-primary" }) : null,
4056
+ /* @__PURE__ */ jsx26(Icon, { name: tab.icon, size: "small", color: "currentColor" }),
4057
+ /* @__PURE__ */ jsx26("span", { className: "shrink-0 whitespace-nowrap", children: tab.label })
3983
4058
  ]
3984
4059
  },
3985
4060
  tab.value
@@ -3987,54 +4062,47 @@ var ProfileModal = ({
3987
4062
  })
3988
4063
  }
3989
4064
  ) }),
3990
- /* @__PURE__ */ jsxs25("div", { className: "agg-profile-content min-w-0 flex-1", children: [
3991
- activeTab === PROFILE_TAB_KEYS.ABOUT ? /* @__PURE__ */ jsx25(
3992
- AboutTab,
3993
- {
3994
- username: username != null ? username : user == null ? void 0 : user.username,
3995
- avatarPreview: (_i = user == null ? void 0 : user.avatarUrl) != null ? _i : avatarPreview,
3996
- onDeleteProfile,
3997
- draftUsername,
3998
- onDraftUsernameChange: setDraftUsername,
3999
- draftAvatarFile,
4000
- onDraftAvatarChange: handleDraftAvatarChange,
4001
- draftAvatarPreview,
4002
- avatarError: avatarTypeError
4003
- }
4004
- ) : null,
4005
- activeTab === PROFILE_TAB_KEYS.ACCOUNTS_WALLETS ? /* @__PURE__ */ jsx25(
4006
- AccountsWalletsTab,
4007
- {
4008
- exchanges: resolvedExchanges,
4009
- venueAccounts: user == null ? void 0 : user.venueAccounts,
4010
- onKycError,
4011
- socialAccounts: resolvedSocialAccounts,
4012
- wallets: resolvedWallets,
4013
- email: resolvedEmail,
4014
- onDisconnectExchange: (venue) => {
4015
- void handleDisconnectExchange(venue);
4016
- },
4017
- onConnectTwitter: providerActionMap.twitter.connect,
4018
- onDisconnectTwitter: providerActionMap.twitter.disconnect,
4019
- onConnectGoogle: providerActionMap.google.connect,
4020
- onDisconnectGoogle: providerActionMap.google.disconnect,
4021
- onConnectApple: providerActionMap.apple.connect,
4022
- onDisconnectApple: providerActionMap.apple.disconnect,
4023
- onConnectDiscord,
4024
- onDisconnectDiscord,
4025
- onConnectTelegram,
4026
- onDisconnectTelegram,
4027
- onDisconnectWallet: (wallet) => {
4028
- void handleDisconnectWallet(wallet);
4029
- },
4030
- onConnectEmail: providerActionMap.email.connect
4031
- }
4032
- ) : null
4065
+ /* @__PURE__ */ jsxs26("div", { className: "agg-profile-content min-w-0 flex-1", children: [
4066
+ activeTab === PROFILE_TAB_KEYS.PROFILE_ACCOUNTS ? /* @__PURE__ */ jsxs26("div", { className: "agg-profile-accounts-tab flex flex-col gap-8", children: [
4067
+ /* @__PURE__ */ jsx26(
4068
+ AboutTab,
4069
+ {
4070
+ username: username != null ? username : user == null ? void 0 : user.username,
4071
+ avatarPreview: (_i = user == null ? void 0 : user.avatarUrl) != null ? _i : avatarPreview,
4072
+ onDeleteProfile,
4073
+ draftUsername,
4074
+ onDraftUsernameChange: setDraftUsername,
4075
+ draftAvatarFile,
4076
+ onDraftAvatarChange: handleDraftAvatarChange,
4077
+ draftAvatarPreview,
4078
+ avatarError: avatarTypeError
4079
+ }
4080
+ ),
4081
+ /* @__PURE__ */ jsx26(
4082
+ AccountsWalletsTab,
4083
+ {
4084
+ socialAccounts: resolvedSocialAccounts,
4085
+ wallets: resolvedWallets,
4086
+ email: resolvedEmail,
4087
+ onConnectTwitter: providerActionMap.twitter.connect,
4088
+ onDisconnectTwitter: providerActionMap.twitter.disconnect,
4089
+ onConnectGoogle: providerActionMap.google.connect,
4090
+ onDisconnectGoogle: providerActionMap.google.disconnect,
4091
+ onConnectApple: providerActionMap.apple.connect,
4092
+ onDisconnectApple: providerActionMap.apple.disconnect,
4093
+ onDisconnectWallet: (wallet) => {
4094
+ void handleDisconnectWallet(wallet);
4095
+ },
4096
+ onConnectEmail: providerActionMap.email.connect
4097
+ }
4098
+ )
4099
+ ] }) : null,
4100
+ activeTab === PROFILE_TAB_KEYS.TRADING_ACCESS ? /* @__PURE__ */ jsx26(TradingAccessTab, { venueAccounts: user == null ? void 0 : user.venueAccounts, onKycError }) : null
4033
4101
  ] })
4034
4102
  ] }) }),
4035
- /* @__PURE__ */ jsxs25(Modal.Footer, { classNames: { root: "agg-profile-modal-footer" }, children: [
4036
- /* @__PURE__ */ jsx25(Button, { variant: "secondary", size: "large", onClick: handleCancel, className: "min-w-[120px]", children: "Cancel" }),
4037
- /* @__PURE__ */ jsx25(
4103
+ /* @__PURE__ */ jsxs26(Modal.Footer, { classNames: { root: "agg-profile-modal-footer" }, children: [
4104
+ /* @__PURE__ */ jsx26(Button, { variant: "secondary", size: "large", onClick: handleCancel, className: "min-w-[120px]", children: "Cancel" }),
4105
+ /* @__PURE__ */ jsx26(
4038
4106
  Button,
4039
4107
  {
4040
4108
  variant: "primary",
@@ -4042,7 +4110,7 @@ var ProfileModal = ({
4042
4110
  disabled: !hasChanges,
4043
4111
  isLoading: isSaving,
4044
4112
  onClick: handleSave,
4045
- children: "Save Changes"
4113
+ children: "Save changes"
4046
4114
  }
4047
4115
  )
4048
4116
  ] })
@@ -4053,33 +4121,33 @@ var ProfileModal = ({
4053
4121
  ProfileModal.displayName = "ProfileModal";
4054
4122
 
4055
4123
  // src/geo-block-modal/index.tsx
4056
- import { useLabels as useLabels22 } from "@agg-build/hooks";
4057
- import { useCallback as useCallback9 } from "react";
4058
- import { jsx as jsx26, jsxs as jsxs26 } from "react/jsx-runtime";
4124
+ import { useLabels as useLabels23 } from "@agg-build/hooks";
4125
+ import { useCallback as useCallback10 } from "react";
4126
+ import { jsx as jsx27, jsxs as jsxs27 } from "react/jsx-runtime";
4059
4127
  var GeoBlockModal = ({
4060
4128
  open,
4061
4129
  onOpenChange,
4062
4130
  onConfirm,
4063
4131
  classNames
4064
4132
  }) => {
4065
- const labels = useLabels22();
4066
- const handleConfirm = useCallback9(() => {
4133
+ const labels = useLabels23();
4134
+ const handleConfirm = useCallback10(() => {
4067
4135
  onConfirm == null ? void 0 : onConfirm();
4068
4136
  onOpenChange(false);
4069
4137
  }, [onConfirm, onOpenChange]);
4070
- return /* @__PURE__ */ jsx26(
4138
+ return /* @__PURE__ */ jsx27(
4071
4139
  Modal,
4072
4140
  {
4073
4141
  open,
4074
4142
  onOpenChange,
4075
4143
  "aria-label": labels.trading.geoBlockModalAriaLabel,
4076
- children: /* @__PURE__ */ jsxs26(
4144
+ children: /* @__PURE__ */ jsxs27(
4077
4145
  Modal.Container,
4078
4146
  {
4079
4147
  maxWidth: "480px",
4080
4148
  classNames: { container: cn("!rounded-agg-2xl", classNames == null ? void 0 : classNames.container) },
4081
4149
  children: [
4082
- /* @__PURE__ */ jsx26(
4150
+ /* @__PURE__ */ jsx27(
4083
4151
  Modal.Header,
4084
4152
  {
4085
4153
  title: "",
@@ -4091,19 +4159,19 @@ var GeoBlockModal = ({
4091
4159
  }
4092
4160
  }
4093
4161
  ),
4094
- /* @__PURE__ */ jsx26(Modal.Body, { classNames: { root: cn("!px-10 !pt-0 !pb-12", classNames == null ? void 0 : classNames.body) }, children: /* @__PURE__ */ jsxs26("div", { className: "flex flex-col items-center gap-8", children: [
4095
- /* @__PURE__ */ jsx26(
4162
+ /* @__PURE__ */ jsx27(Modal.Body, { classNames: { root: cn("!px-10 !pt-0 !pb-12", classNames == null ? void 0 : classNames.body) }, children: /* @__PURE__ */ jsxs27("div", { className: "flex flex-col items-center gap-8", children: [
4163
+ /* @__PURE__ */ jsx27(
4096
4164
  Icon,
4097
4165
  {
4098
4166
  name: "internet-security",
4099
4167
  className: "h-[60px] w-[60px] text-agg-muted-foreground"
4100
4168
  }
4101
4169
  ),
4102
- /* @__PURE__ */ jsxs26("div", { className: "flex flex-col items-center gap-3 text-center", children: [
4103
- /* @__PURE__ */ jsx26("h2", { className: "text-agg-2xl font-agg-bold leading-agg-8 text-agg-foreground", children: labels.trading.geoBlockModalTitle }),
4104
- /* @__PURE__ */ jsx26("p", { className: "text-agg-base font-agg-normal leading-agg-6 text-agg-foreground", children: labels.trading.geoBlockModalDescription })
4170
+ /* @__PURE__ */ jsxs27("div", { className: "flex flex-col items-center gap-3 text-center", children: [
4171
+ /* @__PURE__ */ jsx27("h2", { className: "text-agg-2xl font-agg-bold leading-agg-8 text-agg-foreground", children: labels.trading.geoBlockModalTitle }),
4172
+ /* @__PURE__ */ jsx27("p", { className: "text-agg-base font-agg-normal leading-agg-6 text-agg-foreground", children: labels.trading.geoBlockModalDescription })
4105
4173
  ] }),
4106
- /* @__PURE__ */ jsx26(
4174
+ /* @__PURE__ */ jsx27(
4107
4175
  Button,
4108
4176
  {
4109
4177
  variant: "secondary",
@@ -4123,6 +4191,7 @@ var GeoBlockModal = ({
4123
4191
  GeoBlockModal.displayName = "GeoBlockModal";
4124
4192
 
4125
4193
  export {
4194
+ subscribeAggDepositNotification,
4126
4195
  CARD_NETWORK_OPTIONS,
4127
4196
  clearPendingCardSession,
4128
4197
  getPendingCardSession,