@embarkai/ui-kit 0.4.114 → 0.4.115

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.
package/dist/index.cjs CHANGED
@@ -11640,12 +11640,6 @@ var init_AuthMenu = __esm({
11640
11640
  setAlert(null);
11641
11641
  };
11642
11642
  }, []);
11643
- if (!isIframeReady) {
11644
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Expandable, { isExpanded: true, className: "w-full p-8 flex flex-col justify-center items-center gap-[var(--ui-kit-gap)]", children: [
11645
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Loader, { className: "w-4 h-4 animate-spin" }),
11646
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "Initializing wallet..." })
11647
- ] });
11648
- }
11649
11643
  const stepContent = (0, import_react25.useMemo)(
11650
11644
  () => ({
11651
11645
  "loading": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(LoadingStep, {}),
@@ -11663,6 +11657,12 @@ var init_AuthMenu = __esm({
11663
11657
  }),
11664
11658
  [onAuthSuccess, goBackToSignIn]
11665
11659
  );
11660
+ if (!isIframeReady) {
11661
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Expandable, { isExpanded: true, className: "w-full p-8 flex flex-col justify-center items-center gap-[var(--ui-kit-gap)]", children: [
11662
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Loader, { className: "w-4 h-4 animate-spin" }),
11663
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "Initializing wallet..." })
11664
+ ] });
11665
+ }
11666
11666
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
11667
11667
  stepContent[step],
11668
11668
  alert2 && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Highlight, { type: "error", children: [
@@ -15735,6 +15735,68 @@ var init_wallets = __esm({
15735
15735
  }
15736
15736
  });
15737
15737
 
15738
+ // src/internal/lib/disconnect-guard.ts
15739
+ function waitForReconnect(config) {
15740
+ if (config.state.status !== "reconnecting") return Promise.resolve();
15741
+ return new Promise((resolve) => {
15742
+ const unsubscribe = config.subscribe(
15743
+ (state) => state.status,
15744
+ (status) => {
15745
+ if (status === "reconnecting") return;
15746
+ unsubscribe();
15747
+ resolve();
15748
+ }
15749
+ );
15750
+ });
15751
+ }
15752
+ function hasUnusableCurrentConnector(config) {
15753
+ const { current, connections } = config.state;
15754
+ if (!current) return false;
15755
+ const connector = connections.get(current)?.connector;
15756
+ return !!connector && typeof connector.disconnect !== "function";
15757
+ }
15758
+ var init_disconnect_guard = __esm({
15759
+ "src/internal/lib/disconnect-guard.ts"() {
15760
+ }
15761
+ });
15762
+
15763
+ // src/internal/hooks/useSafeDisconnect.ts
15764
+ function useSafeDisconnect(options) {
15765
+ const config = (0, import_wagmi.useConfig)();
15766
+ const mutation = (0, import_wagmi.useDisconnect)(options);
15767
+ const { mutateAsync } = mutation;
15768
+ const disconnectAsync = (0, import_react40.useCallback)(
15769
+ async (parameters) => {
15770
+ await waitForReconnect(config);
15771
+ if (!parameters?.connector && hasUnusableCurrentConnector(config)) return;
15772
+ await mutateAsync(parameters);
15773
+ },
15774
+ [config, mutateAsync]
15775
+ );
15776
+ const disconnect = (0, import_react40.useCallback)(
15777
+ (parameters) => {
15778
+ disconnectAsync(parameters).catch(() => {
15779
+ });
15780
+ },
15781
+ [disconnectAsync]
15782
+ );
15783
+ return {
15784
+ ...mutation,
15785
+ mutate: disconnect,
15786
+ mutateAsync: disconnectAsync,
15787
+ disconnect,
15788
+ disconnectAsync
15789
+ };
15790
+ }
15791
+ var import_react40, import_wagmi;
15792
+ var init_useSafeDisconnect = __esm({
15793
+ "src/internal/hooks/useSafeDisconnect.ts"() {
15794
+ import_react40 = require("react");
15795
+ import_wagmi = require("wagmi");
15796
+ init_disconnect_guard();
15797
+ }
15798
+ });
15799
+
15738
15800
  // src/internal/lib/connect-errors.ts
15739
15801
  function someInErrorChain(error, predicate) {
15740
15802
  let current = error;
@@ -15866,16 +15928,16 @@ function useLinkedProfiles() {
15866
15928
  }
15867
15929
  });
15868
15930
  const { profiles = [], avatar = null } = data || {};
15869
- const refresh = (0, import_react40.useCallback)(async () => {
15931
+ const refresh = (0, import_react41.useCallback)(async () => {
15870
15932
  await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
15871
15933
  }, [qc, address]);
15872
15934
  return { profiles, avatar, isLoading, isFetching, error, refresh };
15873
15935
  }
15874
- var import_react_query17, import_react40, LINKED_PROFILES_QUERY_KEY;
15936
+ var import_react_query17, import_react41, LINKED_PROFILES_QUERY_KEY;
15875
15937
  var init_linkedProfiles = __esm({
15876
15938
  "src/modules/linkedProfiles.ts"() {
15877
15939
  import_react_query17 = require("@tanstack/react-query");
15878
- import_react40 = require("react");
15940
+ import_react41 = require("react");
15879
15941
  init_SessionContext();
15880
15942
  init_auth();
15881
15943
  init_common();
@@ -16613,7 +16675,7 @@ function useLinkSocial() {
16613
16675
  } = useProviderConfig();
16614
16676
  const setPage = useLayoutDataStore((st) => st.setPage);
16615
16677
  const { providerType, linkIsLoading, setProviderType, setAlert, setLinkIsLoading } = useManageWalletStore();
16616
- const handleLinkSocialProvider = import_react41.default.useCallback(
16678
+ const handleLinkSocialProvider = import_react42.default.useCallback(
16617
16679
  async (providerIdRaw) => {
16618
16680
  const providerKey = providerIdRaw.toLowerCase();
16619
16681
  const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
@@ -16671,8 +16733,8 @@ function useLinkSocial() {
16671
16733
  },
16672
16734
  [config.social?.providers]
16673
16735
  );
16674
- const [socialLinkStarted, setSocialLinkStarted] = import_react41.default.useState(false);
16675
- (0, import_react41.useEffect)(() => {
16736
+ const [socialLinkStarted, setSocialLinkStarted] = import_react42.default.useState(false);
16737
+ (0, import_react42.useEffect)(() => {
16676
16738
  const key = providerType?.toLowerCase();
16677
16739
  console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted });
16678
16740
  if (key && key !== "telegram" && key !== "email" && key !== "passkey" && key !== "wallet") {
@@ -16686,7 +16748,7 @@ function useLinkSocial() {
16686
16748
  }
16687
16749
  }, [providerType, linkIsLoading, socialLinkStarted, handleLinkSocialProvider]);
16688
16750
  }
16689
- var import_react_query22, import_react41;
16751
+ var import_react_query22, import_react42;
16690
16752
  var init_useLinkSocial = __esm({
16691
16753
  "src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts"() {
16692
16754
  init_useLayoutDataStore();
@@ -16694,7 +16756,7 @@ var init_useLinkSocial = __esm({
16694
16756
  init_SessionContext();
16695
16757
  init_linkedProfiles();
16696
16758
  import_react_query22 = require("@tanstack/react-query");
16697
- import_react41 = __toESM(require("react"), 1);
16759
+ import_react42 = __toESM(require("react"), 1);
16698
16760
  init_auth();
16699
16761
  init_telegramBrowser();
16700
16762
  init_useProvidersList();
@@ -16762,7 +16824,7 @@ function useLinkTelegram() {
16762
16824
  const address = useSession((st) => st.address);
16763
16825
  const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
16764
16826
  const setPage = useLayoutDataStore((st) => st.setPage);
16765
- const handleLinkTelegram = (0, import_react42.useCallback)(async () => {
16827
+ const handleLinkTelegram = (0, import_react43.useCallback)(async () => {
16766
16828
  try {
16767
16829
  if (shouldBlockSocialAuthInTelegram("telegram")) {
16768
16830
  setAlert(buildTelegramBrowserRestriction("Telegram", "linking"));
@@ -16809,8 +16871,8 @@ function useLinkTelegram() {
16809
16871
  setLinkIsLoading(false);
16810
16872
  }
16811
16873
  }, [config.social?.providers]);
16812
- const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react42.useState)(false);
16813
- (0, import_react42.useEffect)(() => {
16874
+ const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react43.useState)(false);
16875
+ (0, import_react43.useEffect)(() => {
16814
16876
  console.log("[useLinkTelegram] Effect triggered:", { providerType, linkIsLoading, telegramLinkStarted });
16815
16877
  if (providerType === "telegram" && !linkIsLoading && !telegramLinkStarted) {
16816
16878
  console.log("[useLinkTelegram] Starting Telegram link flow");
@@ -16818,20 +16880,20 @@ function useLinkTelegram() {
16818
16880
  handleLinkTelegram();
16819
16881
  }
16820
16882
  }, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted]);
16821
- (0, import_react42.useEffect)(() => {
16883
+ (0, import_react43.useEffect)(() => {
16822
16884
  if (providerType !== "telegram") {
16823
16885
  setTelegramLinkStarted(false);
16824
16886
  }
16825
16887
  }, [providerType]);
16826
16888
  }
16827
- var import_react_query23, import_react42;
16889
+ var import_react_query23, import_react43;
16828
16890
  var init_useLinkTelegram = __esm({
16829
16891
  "src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts"() {
16830
16892
  init_ProviderContext();
16831
16893
  init_SessionContext();
16832
16894
  init_linkedProfiles();
16833
16895
  import_react_query23 = require("@tanstack/react-query");
16834
- import_react42 = require("react");
16896
+ import_react43 = require("react");
16835
16897
  init_telegram2();
16836
16898
  init_useLayoutDataStore();
16837
16899
  init_telegramBrowser();
@@ -16862,7 +16924,7 @@ function getProviderCaption(provider) {
16862
16924
  function ProviderCard(props) {
16863
16925
  const { provider, meta, externalId, disabled } = props;
16864
16926
  const { t } = useT();
16865
- const connections = (0, import_wagmi.useConnections)();
16927
+ const connections = (0, import_wagmi2.useConnections)();
16866
16928
  const {
16867
16929
  mutate: connectExternalWallet,
16868
16930
  disconnect: disconnectExternalWallet,
@@ -16974,14 +17036,14 @@ function ProviderCard(props) {
16974
17036
  ] })
16975
17037
  ] });
16976
17038
  }
16977
- var import_lucide_react30, import_wagmi, import_jsx_runtime71;
17039
+ var import_lucide_react30, import_wagmi2, import_jsx_runtime71;
16978
17040
  var init_ProviderCard = __esm({
16979
17041
  "src/internal/components/ManageWalletMenu/ProviderCard.tsx"() {
16980
17042
  init_useLayoutDataStore();
16981
17043
  init_useT();
16982
17044
  init_wallets();
16983
17045
  import_lucide_react30 = require("lucide-react");
16984
- import_wagmi = require("wagmi");
17046
+ import_wagmi2 = require("wagmi");
16985
17047
  init_types();
16986
17048
  init_cn();
16987
17049
  init_ConnectExternalWalletMenu2();
@@ -17031,7 +17093,7 @@ function ManageWalletMenu() {
17031
17093
  } = useManageWalletStore();
17032
17094
  const configuredProviders = getConfiguredProviders(config.current);
17033
17095
  const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
17034
- const renderProviders = (0, import_react43.useMemo)(() => {
17096
+ const renderProviders = (0, import_react44.useMemo)(() => {
17035
17097
  const normalizeProviderName = (name) => {
17036
17098
  if (name === "x") return "twitter";
17037
17099
  return name;
@@ -17156,7 +17218,7 @@ function ManageWalletMenu() {
17156
17218
  ] })
17157
17219
  ] });
17158
17220
  }
17159
- var import_lodash_es11, import_lucide_react31, import_react43, import_jsx_runtime72, POSSIBLE_PROVIDERS, MULTI_PROVIDERS;
17221
+ var import_lodash_es11, import_lucide_react31, import_react44, import_jsx_runtime72, POSSIBLE_PROVIDERS, MULTI_PROVIDERS;
17160
17222
  var init_ManageWallet = __esm({
17161
17223
  "src/internal/components/ManageWalletMenu/ManageWallet.tsx"() {
17162
17224
  init_useLayoutDataStore();
@@ -17165,7 +17227,7 @@ var init_ManageWallet = __esm({
17165
17227
  init_i18n();
17166
17228
  import_lodash_es11 = require("lodash-es");
17167
17229
  import_lucide_react31 = require("lucide-react");
17168
- import_react43 = require("react");
17230
+ import_react44 = require("react");
17169
17231
  init_constants();
17170
17232
  init_telegramBrowser();
17171
17233
  init_Expandable2();
@@ -17198,12 +17260,12 @@ function UnlinkProviderMenu() {
17198
17260
  const qc = (0, import_react_query24.useQueryClient)();
17199
17261
  const address = useSession((st) => st.address);
17200
17262
  const { callbacksRef } = useProviderConfig();
17201
- const { disconnect: disconnectExternalWallet } = (0, import_wagmi2.useDisconnect)();
17263
+ const { disconnect: disconnectExternalWallet } = useSafeDisconnect();
17202
17264
  const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
17203
17265
  const { t } = useT();
17204
17266
  const setPage = useLayoutDataStore((st) => st.setPage);
17205
17267
  const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
17206
- const [confirmInput, setConfirmInput] = (0, import_react44.useState)("");
17268
+ const [confirmInput, setConfirmInput] = (0, import_react45.useState)("");
17207
17269
  const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query24.useMutation)({
17208
17270
  mutationFn: async () => {
17209
17271
  if (!confirmUnlink) {
@@ -17285,18 +17347,18 @@ function UnlinkProviderMenu() {
17285
17347
  ] })
17286
17348
  ] });
17287
17349
  }
17288
- var import_react_query24, import_lucide_react32, import_react44, import_wagmi2, import_jsx_runtime73;
17350
+ var import_react_query24, import_lucide_react32, import_react45, import_jsx_runtime73;
17289
17351
  var init_UnlinkProviderMenu = __esm({
17290
17352
  "src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx"() {
17291
17353
  init_useLayoutDataStore();
17292
17354
  init_ProviderContext();
17293
17355
  init_SessionContext();
17294
17356
  init_useT();
17357
+ init_useSafeDisconnect();
17295
17358
  init_linkedProfiles();
17296
17359
  import_react_query24 = require("@tanstack/react-query");
17297
17360
  import_lucide_react32 = require("lucide-react");
17298
- import_react44 = require("react");
17299
- import_wagmi2 = require("wagmi");
17361
+ import_react45 = require("react");
17300
17362
  init_auth();
17301
17363
  init_useExternalWalletStore();
17302
17364
  init_button();
@@ -17336,8 +17398,8 @@ var init_ManageWalletMenu = __esm({
17336
17398
 
17337
17399
  // src/internal/components/ConnectExternalWalletMenu/useConnectExternalWalletMenuParams.ts
17338
17400
  function useConnectExternalWalletMenuParams() {
17339
- const paramsRef = (0, import_react45.useRef)(null);
17340
- (0, import_react45.useEffect)(() => {
17401
+ const paramsRef = (0, import_react46.useRef)(null);
17402
+ (0, import_react46.useEffect)(() => {
17341
17403
  const { pageParams, setPageParams } = useLayoutDataStore.getState();
17342
17404
  if (!pageParams || !(0, import_lodash_es12.keys)(pageParams).length) return;
17343
17405
  paramsRef.current = pageParams;
@@ -17345,11 +17407,11 @@ function useConnectExternalWalletMenuParams() {
17345
17407
  }, []);
17346
17408
  return paramsRef;
17347
17409
  }
17348
- var import_lodash_es12, import_react45;
17410
+ var import_lodash_es12, import_react46;
17349
17411
  var init_useConnectExternalWalletMenuParams = __esm({
17350
17412
  "src/internal/components/ConnectExternalWalletMenu/useConnectExternalWalletMenuParams.ts"() {
17351
17413
  import_lodash_es12 = require("lodash-es");
17352
- import_react45 = require("react");
17414
+ import_react46 = require("react");
17353
17415
  init_useLayoutDataStore();
17354
17416
  }
17355
17417
  });
@@ -17360,18 +17422,18 @@ function hasInjectedWallet() {
17360
17422
  return mipdStore.getProviders().length > 0 || !!window.ethereum;
17361
17423
  }
17362
17424
  function useHasInjectedWallet() {
17363
- return (0, import_react46.useSyncExternalStore)(
17425
+ return (0, import_react47.useSyncExternalStore)(
17364
17426
  (onStoreChange) => mipdStore?.subscribe(onStoreChange) ?? (() => {
17365
17427
  }),
17366
17428
  hasInjectedWallet,
17367
17429
  () => false
17368
17430
  );
17369
17431
  }
17370
- var import_mipd, import_react46, mipdStore;
17432
+ var import_mipd, import_react47, mipdStore;
17371
17433
  var init_useHasInjectedWallet = __esm({
17372
17434
  "src/internal/components/ConnectExternalWalletMenu/useHasInjectedWallet.ts"() {
17373
17435
  import_mipd = require("mipd");
17374
- import_react46 = require("react");
17436
+ import_react47 = require("react");
17375
17437
  mipdStore = typeof window !== "undefined" ? (0, import_mipd.createStore)() : void 0;
17376
17438
  }
17377
17439
  });
@@ -17396,11 +17458,11 @@ function ConnectExternalWalletMenu() {
17396
17458
  const wagmiConfig3 = (0, import_wagmi3.useConfig)();
17397
17459
  const chains = (0, import_wagmi3.useChains)();
17398
17460
  const connections = (0, import_wagmi3.useConnections)();
17399
- const { mutate: disconnect, mutateAsync: disconnectAsync } = (0, import_wagmi3.useDisconnect)();
17461
+ const { mutate: disconnect, mutateAsync: disconnectAsync } = useSafeDisconnect();
17400
17462
  const { mutateAsync: signMessageAsync } = (0, import_wagmi3.useSignMessage)();
17401
17463
  const { mutateAsync: switchChainAsync } = (0, import_wagmi3.useSwitchChain)();
17402
17464
  const { mutateAsync: switchConnectionAsync } = (0, import_wagmi3.useSwitchConnection)();
17403
- const [isPreparingConnect, setIsPreparingConnect] = (0, import_react47.useState)(false);
17465
+ const [isPreparingConnect, setIsPreparingConnect] = (0, import_react48.useState)(false);
17404
17466
  const signOnSupportedChain = async (params) => {
17405
17467
  const { connector, account, message } = params;
17406
17468
  const signOnce = async (viaFallback = false) => {
@@ -17427,7 +17489,7 @@ function ConnectExternalWalletMenu() {
17427
17489
  queryKey: [PROVIDERS_QUERY_KEY, embarkAiAddress],
17428
17490
  queryFn: async () => getLinkedProviders()
17429
17491
  });
17430
- const [connectError, setConnectError] = (0, import_react47.useState)(null);
17492
+ const [connectError, setConnectError] = (0, import_react48.useState)(null);
17431
17493
  const { mutateAsync: onLinkingComplete } = (0, import_react_query25.useMutation)({
17432
17494
  mutationFn: async (success) => {
17433
17495
  useManageWalletStore.getState().setProviderType(null);
@@ -17581,7 +17643,7 @@ function ConnectExternalWalletMenu() {
17581
17643
  }, 100);
17582
17644
  await dropFailedConnectorSession(error, connector, wagmiConfig3);
17583
17645
  }
17584
- const visibleConnectors = (0, import_react47.useMemo)(() => {
17646
+ const visibleConnectors = (0, import_react48.useMemo)(() => {
17585
17647
  const seen = /* @__PURE__ */ new Set();
17586
17648
  const unique = connectors.filter((connector) => {
17587
17649
  const skipConnector = seen.has(connector.uid);
@@ -17599,7 +17661,7 @@ function ConnectExternalWalletMenu() {
17599
17661
  (connector) => allowed.includes(connector.id.toLowerCase()) || allowed.includes(connector.name.toLowerCase())
17600
17662
  );
17601
17663
  }, [connectors, allowedWallets, hasInjectedWallet2]);
17602
- const getInstructionSteps = (0, import_react47.useCallback)(() => {
17664
+ const getInstructionSteps = (0, import_react48.useCallback)(() => {
17603
17665
  const connectFlowType = getConnectFlowType({
17604
17666
  isEmbarkAI: !!embarkAiAddress,
17605
17667
  connectFlow: menuParams.current?.connectFlowType || "auth"
@@ -17707,7 +17769,7 @@ function ConnectExternalWalletMenu() {
17707
17769
  ] })
17708
17770
  ] });
17709
17771
  }
17710
- var import_react_query25, import_lucide_react33, import_react47, import_wagmi3, import_chains, import_jsx_runtime74, SIGN_FALLBACK_CHAIN_ID;
17772
+ var import_react_query25, import_lucide_react33, import_react48, import_wagmi3, import_chains, import_jsx_runtime74, SIGN_FALLBACK_CHAIN_ID;
17711
17773
  var init_ConnectExternalWalletMenu = __esm({
17712
17774
  "src/internal/components/ConnectExternalWalletMenu/ConnectExternalWalletMenu.tsx"() {
17713
17775
  init_ProviderContext();
@@ -17715,11 +17777,12 @@ var init_ConnectExternalWalletMenu = __esm({
17715
17777
  init_useOpenPage();
17716
17778
  init_i18n();
17717
17779
  init_wallets();
17780
+ init_useSafeDisconnect();
17718
17781
  init_connect_errors();
17719
17782
  init_linkedProfiles();
17720
17783
  import_react_query25 = require("@tanstack/react-query");
17721
17784
  import_lucide_react33 = require("lucide-react");
17722
- import_react47 = require("react");
17785
+ import_react48 = require("react");
17723
17786
  import_wagmi3 = require("wagmi");
17724
17787
  import_chains = require("wagmi/chains");
17725
17788
  init_common();
@@ -17747,13 +17810,13 @@ function useExternalWalletConnnect(options) {
17747
17810
  const connectors = (0, import_wagmi4.useConnectors)();
17748
17811
  const connections = (0, import_wagmi4.useConnections)();
17749
17812
  const { mutate: connect, mutateAsync: connectAsync, ...restUseConnect } = (0, import_wagmi4.useConnect)();
17750
- const { mutateAsync: disconnectAsync } = (0, import_wagmi4.useDisconnect)();
17751
- const disconnectExternalWallet = (0, import_react48.useCallback)(async () => {
17813
+ const { mutateAsync: disconnectAsync } = useSafeDisconnect();
17814
+ const disconnectExternalWallet = (0, import_react49.useCallback)(async () => {
17752
17815
  await disconnectAsync();
17753
17816
  const { externalAddress, clearExternalWallet } = useExternalWalletStore.getState();
17754
17817
  if (!!externalAddress) clearExternalWallet();
17755
17818
  }, [disconnectAsync]);
17756
- const connectExternalWallet = (0, import_react48.useCallback)(
17819
+ const connectExternalWallet = (0, import_react49.useCallback)(
17757
17820
  async (walletConnectorType) => {
17758
17821
  const connector = connectors.find((c) => c.id === walletConnectorType);
17759
17822
  if (!connector) {
@@ -17807,12 +17870,13 @@ function useExternalWalletConnnect(options) {
17807
17870
  ...(0, import_lodash_es13.omit)(restUseConnect, ["mutate", "mutateAsync"])
17808
17871
  };
17809
17872
  }
17810
- var import_lodash_es13, import_react48, import_wagmi4;
17873
+ var import_lodash_es13, import_react49, import_wagmi4;
17811
17874
  var init_useExternalWalletConnect = __esm({
17812
17875
  "src/internal/components/ConnectExternalWalletMenu/useExternalWalletConnect.ts"() {
17813
17876
  init_ProviderContext();
17877
+ init_useSafeDisconnect();
17814
17878
  import_lodash_es13 = require("lodash-es");
17815
- import_react48 = require("react");
17879
+ import_react49 = require("react");
17816
17880
  import_wagmi4 = require("wagmi");
17817
17881
  init_useLayoutStore();
17818
17882
  init_connect_errors();
@@ -17905,8 +17969,8 @@ function getErrorMessage(err) {
17905
17969
  function DeviceLinkScreen() {
17906
17970
  const setPage = useLayoutDataStore((s) => s.setPage);
17907
17971
  const { mutate: link, isPending } = useLinkDevice();
17908
- const [code, setCode] = (0, import_react49.useState)("");
17909
- const [error, setError] = (0, import_react49.useState)(null);
17972
+ const [code, setCode] = (0, import_react50.useState)("");
17973
+ const [error, setError] = (0, import_react50.useState)(null);
17910
17974
  const isValid = code.length === 6 && VALID_CHARS.test(code);
17911
17975
  function handleCodeChange(value) {
17912
17976
  const upper = value.toUpperCase().slice(0, 6);
@@ -17948,11 +18012,11 @@ function DeviceLinkScreen() {
17948
18012
  /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { variant: "default", size: "large", className: "w-full", disabled: !isValid || isPending, onClick: handleLink, children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react34.Loader2, { className: "w-4 h-4 animate-spin" }) : "Link" })
17949
18013
  ] });
17950
18014
  }
17951
- var import_lucide_react34, import_react49, import_jsx_runtime75, VALID_CHARS;
18015
+ var import_lucide_react34, import_react50, import_jsx_runtime75, VALID_CHARS;
17952
18016
  var init_DeviceLinkScreen = __esm({
17953
18017
  "src/internal/components/DevicesMenu/DeviceLinkScreen.tsx"() {
17954
18018
  import_lucide_react34 = require("lucide-react");
17955
- import_react49 = require("react");
18019
+ import_react50 = require("react");
17956
18020
  init_devices();
17957
18021
  init_useLayoutDataStore();
17958
18022
  init_Expandable2();
@@ -18491,19 +18555,19 @@ function DeviceManageScreen() {
18491
18555
  const userId = session?.mpcUserId || "";
18492
18556
  const deviceId = pageParams?.deviceId;
18493
18557
  const deviceName = pageParams?.deviceName;
18494
- const guardianRef = (0, import_react50.useRef)(null);
18495
- const [screen, setScreen] = (0, import_react50.useState)({ step: "connecting" });
18496
- const [actionState, setActionState] = (0, import_react50.useState)(null);
18497
- const [password, setPassword] = (0, import_react50.useState)("");
18498
- const [statusMessage, setStatusMessage] = (0, import_react50.useState)(null);
18499
- const [errorMessage, setErrorMessage] = (0, import_react50.useState)(null);
18500
- const [waitingConfirm, setWaitingConfirm] = (0, import_react50.useState)(false);
18501
- (0, import_react50.useEffect)(() => {
18558
+ const guardianRef = (0, import_react51.useRef)(null);
18559
+ const [screen, setScreen] = (0, import_react51.useState)({ step: "connecting" });
18560
+ const [actionState, setActionState] = (0, import_react51.useState)(null);
18561
+ const [password, setPassword] = (0, import_react51.useState)("");
18562
+ const [statusMessage, setStatusMessage] = (0, import_react51.useState)(null);
18563
+ const [errorMessage, setErrorMessage] = (0, import_react51.useState)(null);
18564
+ const [waitingConfirm, setWaitingConfirm] = (0, import_react51.useState)(false);
18565
+ (0, import_react51.useEffect)(() => {
18502
18566
  if (!statusMessage) return;
18503
18567
  const t = setTimeout(() => setStatusMessage(null), 3e3);
18504
18568
  return () => clearTimeout(t);
18505
18569
  }, [statusMessage]);
18506
- (0, import_react50.useEffect)(() => {
18570
+ (0, import_react51.useEffect)(() => {
18507
18571
  if (!deviceId || !isWebSerialAvailable()) {
18508
18572
  setScreen({ step: "error", message: "WebSerial not available" });
18509
18573
  return;
@@ -18535,7 +18599,7 @@ function DeviceManageScreen() {
18535
18599
  guardianRef.current?.close();
18536
18600
  };
18537
18601
  }, [deviceId]);
18538
- const refreshList = (0, import_react50.useCallback)(async () => {
18602
+ const refreshList = (0, import_react51.useCallback)(async () => {
18539
18603
  const guardian = guardianRef.current;
18540
18604
  if (!guardian || screen.step !== "connected") return;
18541
18605
  try {
@@ -18544,7 +18608,7 @@ function DeviceManageScreen() {
18544
18608
  } catch {
18545
18609
  }
18546
18610
  }, [screen]);
18547
- const handleBackup = (0, import_react50.useCallback)(async () => {
18611
+ const handleBackup = (0, import_react51.useCallback)(async () => {
18548
18612
  const guardian = guardianRef.current;
18549
18613
  const iframe6 = getIframeManager();
18550
18614
  if (!guardian || !iframe6 || !userId) return;
@@ -18568,7 +18632,7 @@ function DeviceManageScreen() {
18568
18632
  setActionState(null);
18569
18633
  }
18570
18634
  }, [password, userId, refreshList]);
18571
- const handleOverwrite = (0, import_react50.useCallback)(async () => {
18635
+ const handleOverwrite = (0, import_react51.useCallback)(async () => {
18572
18636
  const guardian = guardianRef.current;
18573
18637
  const iframe6 = getIframeManager();
18574
18638
  if (!guardian || !iframe6 || !userId) return;
@@ -18588,7 +18652,7 @@ function DeviceManageScreen() {
18588
18652
  setActionState(null);
18589
18653
  }
18590
18654
  }, [password, userId, refreshList]);
18591
- const handleDelete = (0, import_react50.useCallback)(
18655
+ const handleDelete = (0, import_react51.useCallback)(
18592
18656
  async (keyshareId) => {
18593
18657
  const guardian = guardianRef.current;
18594
18658
  if (!guardian) return;
@@ -18775,12 +18839,12 @@ function DeviceManageScreen() {
18775
18839
  ] })
18776
18840
  ] });
18777
18841
  }
18778
- var import_lucide_react35, import_react50, import_jsx_runtime76;
18842
+ var import_lucide_react35, import_react51, import_jsx_runtime76;
18779
18843
  var init_DeviceManageScreen = __esm({
18780
18844
  "src/internal/components/DevicesMenu/DeviceManageScreen.tsx"() {
18781
18845
  init_SessionContext();
18782
18846
  import_lucide_react35 = require("lucide-react");
18783
- import_react50 = require("react");
18847
+ import_react51 = require("react");
18784
18848
  init_guardian_backup();
18785
18849
  init_useLayoutDataStore();
18786
18850
  init_iframe_manager();
@@ -18799,11 +18863,11 @@ function DeviceRestoreScreen() {
18799
18863
  const keyshareId = pageParams?.keyshareId;
18800
18864
  const deviceId = pageParams?.deviceId;
18801
18865
  const deviceName = pageParams?.deviceName;
18802
- const [password, setPassword] = (0, import_react51.useState)("");
18803
- const [isWorking, setIsWorking] = (0, import_react51.useState)(false);
18804
- const [statusMessage, setStatusMessage] = (0, import_react51.useState)(null);
18805
- const [errorMessage, setErrorMessage] = (0, import_react51.useState)(null);
18806
- const handleRestore = (0, import_react51.useCallback)(async () => {
18866
+ const [password, setPassword] = (0, import_react52.useState)("");
18867
+ const [isWorking, setIsWorking] = (0, import_react52.useState)(false);
18868
+ const [statusMessage, setStatusMessage] = (0, import_react52.useState)(null);
18869
+ const [errorMessage, setErrorMessage] = (0, import_react52.useState)(null);
18870
+ const handleRestore = (0, import_react52.useCallback)(async () => {
18807
18871
  if (!password || !keyshareId || !userId) return;
18808
18872
  const iframe6 = getIframeManager();
18809
18873
  if (!iframe6) {
@@ -18883,12 +18947,12 @@ function DeviceRestoreScreen() {
18883
18947
  errorMessage && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2 text-center", children: errorMessage })
18884
18948
  ] });
18885
18949
  }
18886
- var import_lucide_react36, import_react51, import_jsx_runtime77;
18950
+ var import_lucide_react36, import_react52, import_jsx_runtime77;
18887
18951
  var init_DeviceRestoreScreen = __esm({
18888
18952
  "src/internal/components/DevicesMenu/DeviceRestoreScreen.tsx"() {
18889
18953
  init_SessionContext();
18890
18954
  import_lucide_react36 = require("lucide-react");
18891
- import_react51 = require("react");
18955
+ import_react52 = require("react");
18892
18956
  init_guardian_backup();
18893
18957
  init_useLayoutDataStore();
18894
18958
  init_iframe_manager();
@@ -18908,8 +18972,8 @@ function truncateAddress(address) {
18908
18972
  return `${address.slice(0, 6)}...${address.slice(-4)}`;
18909
18973
  }
18910
18974
  function DeviceRow({ device }) {
18911
- const [confirmingUnlink, setConfirmingUnlink] = (0, import_react52.useState)(false);
18912
- const [unlinkError, setUnlinkError] = (0, import_react52.useState)(null);
18975
+ const [confirmingUnlink, setConfirmingUnlink] = (0, import_react53.useState)(false);
18976
+ const [unlinkError, setUnlinkError] = (0, import_react53.useState)(null);
18913
18977
  const { mutate: unlink, isPending } = useUnlinkDevice();
18914
18978
  if (confirmingUnlink) {
18915
18979
  return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
@@ -19010,11 +19074,11 @@ function DevicesMenu() {
19010
19074
  ] })
19011
19075
  ] });
19012
19076
  }
19013
- var import_lucide_react37, import_react52, import_jsx_runtime78;
19077
+ var import_lucide_react37, import_react53, import_jsx_runtime78;
19014
19078
  var init_DevicesMenu = __esm({
19015
19079
  "src/internal/components/DevicesMenu/DevicesMenu.tsx"() {
19016
19080
  import_lucide_react37 = require("lucide-react");
19017
- import_react52 = require("react");
19081
+ import_react53 = require("react");
19018
19082
  init_devices();
19019
19083
  init_guardian_backup();
19020
19084
  init_useLayoutDataStore();
@@ -19074,7 +19138,7 @@ function useOnRestoreSuccess() {
19074
19138
  setStatus
19075
19139
  } = useSession();
19076
19140
  const { setError, setSuccess } = useRestoreStore();
19077
- const createSessionWithKeyshare = (0, import_react53.useCallback)(
19141
+ const createSessionWithKeyshare = (0, import_react54.useCallback)(
19078
19142
  async (userId, hasServerKeyshare, isNewUser) => {
19079
19143
  try {
19080
19144
  try {
@@ -19115,7 +19179,7 @@ function useOnRestoreSuccess() {
19115
19179
  },
19116
19180
  [setStatus, usePaymaster, activeChainId, publicClient]
19117
19181
  );
19118
- const onRestoreSuccess = (0, import_react53.useCallback)(async () => {
19182
+ const onRestoreSuccess = (0, import_react54.useCallback)(async () => {
19119
19183
  const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
19120
19184
  const verify = await verifyToken2();
19121
19185
  const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
@@ -19181,12 +19245,12 @@ function useOnRestoreSuccess() {
19181
19245
  ]);
19182
19246
  return { onRestoreSuccess };
19183
19247
  }
19184
- var import_react53;
19248
+ var import_react54;
19185
19249
  var init_useOnRestoreSuccess = __esm({
19186
19250
  "src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts"() {
19187
19251
  init_ProviderContext();
19188
19252
  init_SessionContext();
19189
- import_react53 = require("react");
19253
+ import_react54 = require("react");
19190
19254
  init_useLayoutDataStore();
19191
19255
  init_useLayoutStore();
19192
19256
  init_useRestoreStore();
@@ -19449,7 +19513,7 @@ function useCreateBackup() {
19449
19513
  const usePasskey = useRestoreStore((st) => st.usePasskey);
19450
19514
  const restorePassword = useRestoreStore((st) => st.restorePassword);
19451
19515
  const selectedCloudProvider = useRestoreStore((st) => st.selectedCloudProvider);
19452
- (0, import_react54.useEffect)(() => {
19516
+ (0, import_react55.useEffect)(() => {
19453
19517
  if (!hasServerVault) {
19454
19518
  useRestoreStore.getState().setMethod("server");
19455
19519
  useLayoutStore.getState().setIsDialogForced(true);
@@ -19457,7 +19521,7 @@ function useCreateBackup() {
19457
19521
  }, [hasServerVault]);
19458
19522
  const recoveryUserId = useSession((st) => st.recoveryUserId);
19459
19523
  const passportUserId = session?.mpcUserId || recoveryUserId || "";
19460
- const onBackupSuccess = (0, import_react54.useCallback)((method) => {
19524
+ const onBackupSuccess = (0, import_react55.useCallback)((method) => {
19461
19525
  console.log(`[EMBARKAI BACKUP] ${method} backup created successfully`);
19462
19526
  if (method !== "server") return;
19463
19527
  const { setIsDialogForced } = useLayoutStore.getState();
@@ -19630,12 +19694,12 @@ function useCreateBackup() {
19630
19694
  createPasskey
19631
19695
  };
19632
19696
  }
19633
- var import_react_query27, import_react54;
19697
+ var import_react_query27, import_react55;
19634
19698
  var init_useCreateBackup = __esm({
19635
19699
  "src/internal/components/KeyshareRestoreMenu/hooks/useCreateBackup.ts"() {
19636
19700
  init_SessionContext();
19637
19701
  import_react_query27 = require("@tanstack/react-query");
19638
- import_react54 = require("react");
19702
+ import_react55 = require("react");
19639
19703
  init_auth();
19640
19704
  init_useLayoutDataStore();
19641
19705
  init_useLayoutStore();
@@ -19772,7 +19836,7 @@ function useValidateFileBackup() {
19772
19836
  const restoreFile = useRestoreStore((st) => st.restoreFile);
19773
19837
  const setError = useRestoreStore((st) => st.setError);
19774
19838
  const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
19775
- (0, import_react55.useEffect)(() => {
19839
+ (0, import_react56.useEffect)(() => {
19776
19840
  if (!restoreFile) {
19777
19841
  return;
19778
19842
  }
@@ -19793,10 +19857,10 @@ function useValidateFileBackup() {
19793
19857
  reader.readAsText(restoreFile);
19794
19858
  }, [restoreFile]);
19795
19859
  }
19796
- var import_react55;
19860
+ var import_react56;
19797
19861
  var init_useValidateFileBackup = __esm({
19798
19862
  "src/internal/components/KeyshareRestoreMenu/hooks/useValidateFileBackup.ts"() {
19799
- import_react55 = require("react");
19863
+ import_react56 = require("react");
19800
19864
  init_useRestoreStore();
19801
19865
  }
19802
19866
  });
@@ -19824,7 +19888,7 @@ function MethodSelector(props) {
19824
19888
  setError,
19825
19889
  setSuccess
19826
19890
  } = useRestoreStore();
19827
- const recoveryRenderMethods = (0, import_react56.useMemo)(() => {
19891
+ const recoveryRenderMethods = (0, import_react57.useMemo)(() => {
19828
19892
  const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
19829
19893
  let data = null;
19830
19894
  switch (true) {
@@ -19839,7 +19903,7 @@ function MethodSelector(props) {
19839
19903
  return methodsWithBackupData;
19840
19904
  }, [mode, serverRecoveryStatus]);
19841
19905
  if (!!selectedRecoveryMethod) return null;
19842
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_react56.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
19906
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_react57.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
19843
19907
  "div",
19844
19908
  {
19845
19909
  style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
@@ -19873,12 +19937,12 @@ function MethodSelector(props) {
19873
19937
  }
19874
19938
  ) });
19875
19939
  }
19876
- var import_lucide_react38, import_react56, import_jsx_runtime79, getRecoveryRenderMethods;
19940
+ var import_lucide_react38, import_react57, import_jsx_runtime79, getRecoveryRenderMethods;
19877
19941
  var init_MethodSelector = __esm({
19878
19942
  "src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx"() {
19879
19943
  init_useT();
19880
19944
  import_lucide_react38 = require("lucide-react");
19881
- import_react56 = require("react");
19945
+ import_react57 = require("react");
19882
19946
  init_icons();
19883
19947
  init_guardian_backup();
19884
19948
  init_button();
@@ -20014,7 +20078,7 @@ function PasswordPasskey(props) {
20014
20078
  onCreatePasskey
20015
20079
  } = props;
20016
20080
  const hasServerVault = useSession((st) => st.hasServerVault);
20017
- const actionRef = (0, import_react57.useRef)(null);
20081
+ const actionRef = (0, import_react58.useRef)(null);
20018
20082
  const {
20019
20083
  showPassword,
20020
20084
  restorePassword,
@@ -20028,7 +20092,7 @@ function PasswordPasskey(props) {
20028
20092
  } = useRestoreStore();
20029
20093
  const { config } = useProviderConfig();
20030
20094
  const isPasskeyEnabled = config.current.passkey.enabled;
20031
- (0, import_react57.useEffect)(() => {
20095
+ (0, import_react58.useEffect)(() => {
20032
20096
  if (!isPasskeyEnabled && usePasskey) setUsePasskey(false);
20033
20097
  }, [isPasskeyEnabled, usePasskey]);
20034
20098
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, { children: [
@@ -20192,7 +20256,7 @@ function PasswordPasskey(props) {
20192
20256
  ] })
20193
20257
  ] });
20194
20258
  }
20195
- var import_lucide_react39, import_react57, import_jsx_runtime80;
20259
+ var import_lucide_react39, import_react58, import_jsx_runtime80;
20196
20260
  var init_PasswordPasskey = __esm({
20197
20261
  "src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx"() {
20198
20262
  init_ProviderContext();
@@ -20200,7 +20264,7 @@ var init_PasswordPasskey = __esm({
20200
20264
  init_i18n();
20201
20265
  init_utils();
20202
20266
  import_lucide_react39 = require("lucide-react");
20203
- import_react57 = require("react");
20267
+ import_react58 = require("react");
20204
20268
  init_icons();
20205
20269
  init_Onboarding();
20206
20270
  init_button();
@@ -20377,7 +20441,7 @@ function Server(props) {
20377
20441
  const usePasskey = useRestoreStore((st) => st.usePasskey);
20378
20442
  const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
20379
20443
  const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
20380
- (0, import_react58.useEffect)(() => {
20444
+ (0, import_react59.useEffect)(() => {
20381
20445
  if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
20382
20446
  setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
20383
20447
  }, [mode, serverRecoveryStatus, setUsePasskey]);
@@ -20420,7 +20484,7 @@ function Server(props) {
20420
20484
  )
20421
20485
  ] });
20422
20486
  }
20423
- var import_react_query29, import_dayjs4, import_lucide_react42, import_react58, import_jsx_runtime83;
20487
+ var import_react_query29, import_dayjs4, import_lucide_react42, import_react59, import_jsx_runtime83;
20424
20488
  var init_Server = __esm({
20425
20489
  "src/internal/components/KeyshareRestoreMenu/methods/Server.tsx"() {
20426
20490
  init_SessionContext();
@@ -20429,7 +20493,7 @@ var init_Server = __esm({
20429
20493
  import_react_query29 = require("@tanstack/react-query");
20430
20494
  import_dayjs4 = __toESM(require("dayjs"), 1);
20431
20495
  import_lucide_react42 = require("lucide-react");
20432
- import_react58 = require("react");
20496
+ import_react59 = require("react");
20433
20497
  init_Onboarding();
20434
20498
  init_highlight();
20435
20499
  init_PasswordPasskey();
@@ -20593,7 +20657,7 @@ function Cloud2(props) {
20593
20657
  return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
20594
20658
  }
20595
20659
  });
20596
- (0, import_react59.useEffect)(() => {
20660
+ (0, import_react60.useEffect)(() => {
20597
20661
  if (isCloudProvidersLoading) return;
20598
20662
  if (!!cloudProvidersError) {
20599
20663
  console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
@@ -20657,13 +20721,13 @@ function Cloud2(props) {
20657
20721
  )
20658
20722
  ] });
20659
20723
  }
20660
- var import_react_query30, import_lucide_react44, import_react59, import_jsx_runtime85;
20724
+ var import_react_query30, import_lucide_react44, import_react60, import_jsx_runtime85;
20661
20725
  var init_Cloud = __esm({
20662
20726
  "src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx"() {
20663
20727
  init_SessionContext();
20664
20728
  import_react_query30 = require("@tanstack/react-query");
20665
20729
  import_lucide_react44 = require("lucide-react");
20666
- import_react59 = require("react");
20730
+ import_react60 = require("react");
20667
20731
  init_button();
20668
20732
  init_select();
20669
20733
  init_PasswordPasskey();
@@ -20680,8 +20744,8 @@ function Guardian(props) {
20680
20744
  const session = useSession((st) => st.session);
20681
20745
  const recoveryUserId = useSession((st) => st.recoveryUserId);
20682
20746
  const { onRestoreSuccess } = useOnRestoreSuccess();
20683
- const [isWorking, setIsWorking] = (0, import_react60.useState)(false);
20684
- const [step, setStep] = (0, import_react60.useState)("idle");
20747
+ const [isWorking, setIsWorking] = (0, import_react61.useState)(false);
20748
+ const [step, setStep] = (0, import_react61.useState)("idle");
20685
20749
  const handleGuardianBackup = async () => {
20686
20750
  if (!restorePassword) {
20687
20751
  setError("Please enter a password");
@@ -20810,11 +20874,11 @@ function Guardian(props) {
20810
20874
  ] })
20811
20875
  ] });
20812
20876
  }
20813
- var import_react60, import_lucide_react45, import_jsx_runtime86;
20877
+ var import_react61, import_lucide_react45, import_jsx_runtime86;
20814
20878
  var init_Guardian = __esm({
20815
20879
  "src/internal/components/KeyshareRestoreMenu/methods/Guardian.tsx"() {
20816
20880
  init_SessionContext();
20817
- import_react60 = require("react");
20881
+ import_react61 = require("react");
20818
20882
  import_lucide_react45 = require("lucide-react");
20819
20883
  init_iframe_manager();
20820
20884
  init_guardian_backup();
@@ -20837,16 +20901,16 @@ var init_methods = __esm({
20837
20901
  });
20838
20902
 
20839
20903
  // src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
20840
- var import_react_query31, import_lucide_react46, import_react61, import_wagmi5, import_jsx_runtime87, RESTORE_COMPONENTS, KeyshareRestoreMenu;
20904
+ var import_react_query31, import_lucide_react46, import_react62, import_jsx_runtime87, RESTORE_COMPONENTS, KeyshareRestoreMenu;
20841
20905
  var init_KeyshareRestoreMenu = __esm({
20842
20906
  "src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx"() {
20843
20907
  init_ProviderContext();
20844
20908
  init_SessionContext();
20845
20909
  init_i18n();
20910
+ init_useSafeDisconnect();
20846
20911
  import_react_query31 = require("@tanstack/react-query");
20847
20912
  import_lucide_react46 = require("lucide-react");
20848
- import_react61 = require("react");
20849
- import_wagmi5 = require("wagmi");
20913
+ import_react62 = require("react");
20850
20914
  init_useLayoutDataStore();
20851
20915
  init_useLayoutStore();
20852
20916
  init_useExternalWalletStore();
@@ -20875,7 +20939,7 @@ var init_KeyshareRestoreMenu = __esm({
20875
20939
  const error = useRestoreStore((st) => st.error);
20876
20940
  const success = useRestoreStore((st) => st.success);
20877
20941
  const currentRestoreMethod = useRestoreStore((st) => st.method);
20878
- (0, import_react61.useEffect)(() => {
20942
+ (0, import_react62.useEffect)(() => {
20879
20943
  const { setIsDialogForced } = useLayoutStore.getState();
20880
20944
  const { setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
20881
20945
  setIsDialogForced(true);
@@ -20888,7 +20952,7 @@ var init_KeyshareRestoreMenu = __esm({
20888
20952
  setIsDialogForced(false);
20889
20953
  };
20890
20954
  }, []);
20891
- const { mutate: wagmiDisconnect } = (0, import_wagmi5.useDisconnect)({
20955
+ const { mutate: wagmiDisconnect } = useSafeDisconnect({
20892
20956
  mutation: {
20893
20957
  onSuccess: () => {
20894
20958
  useExternalWalletStore.getState().clearExternalWallet();
@@ -20914,7 +20978,7 @@ var init_KeyshareRestoreMenu = __esm({
20914
20978
  queryFn: async () => await getShareRecoveryStats()
20915
20979
  });
20916
20980
  const hasServerBackup = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
20917
- (0, import_react61.useEffect)(() => {
20981
+ (0, import_react62.useEffect)(() => {
20918
20982
  if (!!hasServerBackup) useRestoreStore.getState().setMethod("server");
20919
20983
  }, [hasServerBackup]);
20920
20984
  const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query31.useMutation)({
@@ -21061,7 +21125,7 @@ function KeyshareBackupMenu() {
21061
21125
  const usePasskey = useRestoreStore((st) => st.usePasskey);
21062
21126
  const error = useRestoreStore((st) => st.error);
21063
21127
  const success = useRestoreStore((st) => st.success);
21064
- (0, import_react62.useEffect)(() => {
21128
+ (0, import_react63.useEffect)(() => {
21065
21129
  const { setSuccess, setError, setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
21066
21130
  return () => {
21067
21131
  setSuccess(null);
@@ -21081,7 +21145,7 @@ function KeyshareBackupMenu() {
21081
21145
  });
21082
21146
  useOnboardingTourAvailable(!isRecoveryLoading && currentBackupMethod === "server" && !usePasskey);
21083
21147
  const hasRecoveryData2 = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
21084
- (0, import_react62.useEffect)(() => {
21148
+ (0, import_react63.useEffect)(() => {
21085
21149
  if (!!hasRecoveryData2) useRestoreStore.getState().setMethod("server");
21086
21150
  }, [hasRecoveryData2]);
21087
21151
  const {
@@ -21200,14 +21264,14 @@ function KeyshareBackupMenu() {
21200
21264
  ] })
21201
21265
  ] });
21202
21266
  }
21203
- var import_react_query32, import_lucide_react47, import_react62, import_jsx_runtime88, COMPONENTS;
21267
+ var import_react_query32, import_lucide_react47, import_react63, import_jsx_runtime88, COMPONENTS;
21204
21268
  var init_KeyshareBackupMenu = __esm({
21205
21269
  "src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx"() {
21206
21270
  init_SessionContext();
21207
21271
  init_i18n();
21208
21272
  import_react_query32 = require("@tanstack/react-query");
21209
21273
  import_lucide_react47 = require("lucide-react");
21210
- import_react62 = require("react");
21274
+ import_react63 = require("react");
21211
21275
  init_useLayoutDataStore();
21212
21276
  init_vaultClient();
21213
21277
  init_Expandable2();
@@ -21335,13 +21399,13 @@ var init_SumsubIframeManager = __esm({
21335
21399
  function useSumsubIframe({ iframeUrl }) {
21336
21400
  const config = useProviderConfig().config;
21337
21401
  const { colorMode } = useColorMode();
21338
- const iframeRef = (0, import_react63.useRef)(null);
21339
- const [isLoading, setIsLoading] = (0, import_react63.useState)(true);
21340
- const [error, setError] = (0, import_react63.useState)(null);
21341
- const [height, setHeight] = (0, import_react63.useState)(0);
21342
- const [status, setStatus] = (0, import_react63.useState)("");
21402
+ const iframeRef = (0, import_react64.useRef)(null);
21403
+ const [isLoading, setIsLoading] = (0, import_react64.useState)(true);
21404
+ const [error, setError] = (0, import_react64.useState)(null);
21405
+ const [height, setHeight] = (0, import_react64.useState)(0);
21406
+ const [status, setStatus] = (0, import_react64.useState)("");
21343
21407
  const levelName = config.current?.kyc?.options?.levelName;
21344
- (0, import_react63.useEffect)(() => {
21408
+ (0, import_react64.useEffect)(() => {
21345
21409
  setError(null);
21346
21410
  setIsLoading(true);
21347
21411
  setStatus("Preparing verification...");
@@ -21382,12 +21446,12 @@ function useSumsubIframe({ iframeUrl }) {
21382
21446
  status
21383
21447
  };
21384
21448
  }
21385
- var import_react63;
21449
+ var import_react64;
21386
21450
  var init_useSumsubIframe = __esm({
21387
21451
  "src/internal/components/KYC/useSumsubIframe.ts"() {
21388
21452
  init_ProviderContext();
21389
21453
  init_useColorMode();
21390
- import_react63 = require("react");
21454
+ import_react64 = require("react");
21391
21455
  init_sumsub();
21392
21456
  init_SumsubIframeManager();
21393
21457
  }
@@ -21595,11 +21659,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
21595
21659
  const activeChainConfig = useSession((st) => st.chainConfig);
21596
21660
  const resolvedChainId = chainId ?? activeChainId;
21597
21661
  const shouldUseActiveClient = !chainId || chainId === activeChainId;
21598
- const chainConfig = (0, import_react64.useMemo)(() => {
21662
+ const chainConfig = (0, import_react65.useMemo)(() => {
21599
21663
  if (shouldUseActiveClient) return activeChainConfig;
21600
21664
  return (0, import_read16.getChainConfig)(chainId);
21601
21665
  }, [activeChainConfig, chainId, shouldUseActiveClient]);
21602
- const publicClient = (0, import_react64.useMemo)(() => {
21666
+ const publicClient = (0, import_react65.useMemo)(() => {
21603
21667
  if (shouldUseActiveClient) return activePublicClient;
21604
21668
  if (!chainId) return activePublicClient;
21605
21669
  try {
@@ -21616,12 +21680,12 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
21616
21680
  resolvedChainId
21617
21681
  };
21618
21682
  }
21619
- var import_read16, import_react64, publicClientByChainId;
21683
+ var import_read16, import_react65, publicClientByChainId;
21620
21684
  var init_useResolvedPublicClient = __esm({
21621
21685
  "src/internal/hooks/useResolvedPublicClient.ts"() {
21622
21686
  init_SessionContext();
21623
21687
  import_read16 = require("@embarkai/core/read");
21624
- import_react64 = require("react");
21688
+ import_react65 = require("react");
21625
21689
  publicClientByChainId = /* @__PURE__ */ new Map();
21626
21690
  }
21627
21691
  });
@@ -21685,7 +21749,7 @@ var init_useNativeBalance = __esm({
21685
21749
  function useWatchTokens(options) {
21686
21750
  const { address, chainId, enabled, publicClient } = options;
21687
21751
  const { config } = useProviderConfig();
21688
- const watchTokens = (0, import_react65.useMemo)(() => {
21752
+ const watchTokens = (0, import_react66.useMemo)(() => {
21689
21753
  const allWatchTokens = config.current.watchTokens;
21690
21754
  const tokensForChain = chainId ? allWatchTokens?.[chainId] || [] : [];
21691
21755
  return tokensForChain;
@@ -21753,12 +21817,12 @@ function useWatchTokens(options) {
21753
21817
  }
21754
21818
  });
21755
21819
  }
21756
- var import_react_query35, import_react65, import_viem8;
21820
+ var import_react_query35, import_react66, import_viem8;
21757
21821
  var init_useWatchTokens = __esm({
21758
21822
  "src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts"() {
21759
21823
  init_ProviderContext();
21760
21824
  import_react_query35 = require("@tanstack/react-query");
21761
- import_react65 = require("react");
21825
+ import_react66 = require("react");
21762
21826
  import_viem8 = require("viem");
21763
21827
  init_constants6();
21764
21828
  }
@@ -21907,11 +21971,11 @@ function useBlockscoutAssets(options) {
21907
21971
  tokenBalancesQueryKey: customTokenBalancesQueryKey
21908
21972
  } = useProviderConfig().config?.current?.portfolio || {};
21909
21973
  const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
21910
- const blockscoutClient = (0, import_react66.useMemo)(
21974
+ const blockscoutClient = (0, import_react67.useMemo)(
21911
21975
  () => blockscoutApiUrl ? (0, import_core4.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }) : null,
21912
21976
  [blockscoutApiUrl]
21913
21977
  );
21914
- const lastRefreshRef = (0, import_react66.useRef)(0);
21978
+ const lastRefreshRef = (0, import_react67.useRef)(0);
21915
21979
  const {
21916
21980
  data: watchTokenAssets = [],
21917
21981
  isLoading: watchTokensLoading,
@@ -21983,7 +22047,7 @@ function useBlockscoutAssets(options) {
21983
22047
  queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, blockscoutApiUrl, address],
21984
22048
  queryFn: () => blockscoutClient.getNfts(address)
21985
22049
  });
21986
- const erc20TokenAddresses = (0, import_react66.useMemo)(() => {
22050
+ const erc20TokenAddresses = (0, import_react67.useMemo)(() => {
21987
22051
  if (!blockscoutItems) return [];
21988
22052
  return blockscoutItems.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
21989
22053
  }, [blockscoutItems]);
@@ -22028,7 +22092,7 @@ function useBlockscoutAssets(options) {
22028
22092
  // 1 minute
22029
22093
  // gcTime: BLOCKSCOUT_QUERY_GC_TIME,
22030
22094
  });
22031
- const assets = (0, import_react66.useMemo)(() => {
22095
+ const assets = (0, import_react67.useMemo)(() => {
22032
22096
  const result = [];
22033
22097
  const addedAddresses = /* @__PURE__ */ new Set();
22034
22098
  if (nativeBalanceData) {
@@ -22122,7 +22186,7 @@ function useBlockscoutAssets(options) {
22122
22186
  watchTokenAssets,
22123
22187
  chainConfig
22124
22188
  ]);
22125
- const nativeBalance = (0, import_react66.useMemo)(() => {
22189
+ const nativeBalance = (0, import_react67.useMemo)(() => {
22126
22190
  if (!nativeBalanceData) return null;
22127
22191
  return {
22128
22192
  value: nativeBalanceData.value,
@@ -22130,11 +22194,11 @@ function useBlockscoutAssets(options) {
22130
22194
  symbol: nativeBalanceData.symbol
22131
22195
  };
22132
22196
  }, [nativeBalanceData]);
22133
- const error = (0, import_react66.useMemo)(() => {
22197
+ const error = (0, import_react67.useMemo)(() => {
22134
22198
  if (!blockscoutError) return null;
22135
22199
  return createError(blockscoutError);
22136
22200
  }, [blockscoutError]);
22137
- const refreshBalances = (0, import_react66.useCallback)(async () => {
22201
+ const refreshBalances = (0, import_react67.useCallback)(async () => {
22138
22202
  const now = Date.now();
22139
22203
  if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
22140
22204
  return;
@@ -22150,7 +22214,7 @@ function useBlockscoutAssets(options) {
22150
22214
  qc.invalidateQueries({ queryKey: [WATCH_TOKENS_QUERY_KEY] })
22151
22215
  ]);
22152
22216
  }, [qc, customTokenBalancesQueryKey]);
22153
- const getTokenBalance = (0, import_react66.useCallback)(
22217
+ const getTokenBalance = (0, import_react67.useCallback)(
22154
22218
  (tokenAddress) => {
22155
22219
  return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
22156
22220
  },
@@ -22169,13 +22233,13 @@ function useBlockscoutAssets(options) {
22169
22233
  lastUpdated: dataUpdatedAt || null
22170
22234
  };
22171
22235
  }
22172
- var import_core4, import_react_query36, import_react66;
22236
+ var import_core4, import_react_query36, import_react67;
22173
22237
  var init_useBlockscoutAssets = __esm({
22174
22238
  "src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts"() {
22175
22239
  init_ProviderContext();
22176
22240
  import_core4 = require("@embarkai/core");
22177
22241
  import_react_query36 = require("@tanstack/react-query");
22178
- import_react66 = require("react");
22242
+ import_react67 = require("react");
22179
22243
  init_initial();
22180
22244
  init_constants();
22181
22245
  init_useResolvedPublicClient();
@@ -22295,9 +22359,9 @@ function SecurityTokenBadge() {
22295
22359
  }
22296
22360
  function PortfolioItemImage(props) {
22297
22361
  const { asset } = props;
22298
- const [logoError, setLogoError] = (0, import_react67.useState)(false);
22299
- const [nftImageError, setNftImageError] = (0, import_react67.useState)(false);
22300
- const resolvedImage = (0, import_react67.useMemo)(() => {
22362
+ const [logoError, setLogoError] = (0, import_react68.useState)(false);
22363
+ const [nftImageError, setNftImageError] = (0, import_react68.useState)(false);
22364
+ const resolvedImage = (0, import_react68.useMemo)(() => {
22301
22365
  const isNft = isNftAsset(asset);
22302
22366
  const nftImage = getNftImage(asset);
22303
22367
  const isSecurity = isSecurityToken(asset);
@@ -22452,13 +22516,13 @@ function PortfolioItem(props) {
22452
22516
  }
22453
22517
  );
22454
22518
  }
22455
- var import_react_query37, import_lucide_react51, import_react67, import_viem11, import_jsx_runtime94, PORTFOLIO_ASSET_RATE_QUERY_KEY;
22519
+ var import_react_query37, import_lucide_react51, import_react68, import_viem11, import_jsx_runtime94, PORTFOLIO_ASSET_RATE_QUERY_KEY;
22456
22520
  var init_PortfolioItem = __esm({
22457
22521
  "src/internal/components/PortfolioMenu/PortfolioItem.tsx"() {
22458
22522
  init_ProviderContext();
22459
22523
  import_react_query37 = require("@tanstack/react-query");
22460
22524
  import_lucide_react51 = require("lucide-react");
22461
- import_react67 = require("react");
22525
+ import_react68 = require("react");
22462
22526
  import_viem11 = require("viem");
22463
22527
  init_tokens();
22464
22528
  init_base3();
@@ -22490,7 +22554,7 @@ function PortfolioMenu() {
22490
22554
  enabled: !!address
22491
22555
  });
22492
22556
  const shownProjectAssets = projectAssets.filter((asset) => !asset.hideInPortfolio);
22493
- const refreshAllAssetsBalances = (0, import_react68.useCallback)(() => {
22557
+ const refreshAllAssetsBalances = (0, import_react69.useCallback)(() => {
22494
22558
  Promise.all(shownProjectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
22495
22559
  refreshBlockscoutBalances();
22496
22560
  }, [qc, shownProjectAssets, refreshBlockscoutBalances]);
@@ -22536,7 +22600,7 @@ function PortfolioMenu() {
22536
22600
  blockscoutError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Highlight, { type: "error", children: blockscoutError?.message })
22537
22601
  ] });
22538
22602
  }
22539
- var import_react_query38, import_lucide_react52, import_react68, import_jsx_runtime95;
22603
+ var import_react_query38, import_lucide_react52, import_react69, import_jsx_runtime95;
22540
22604
  var init_PortfolioMenu = __esm({
22541
22605
  "src/internal/components/PortfolioMenu/PortfolioMenu.tsx"() {
22542
22606
  init_ProviderContext();
@@ -22544,7 +22608,7 @@ var init_PortfolioMenu = __esm({
22544
22608
  init_i18n();
22545
22609
  import_react_query38 = require("@tanstack/react-query");
22546
22610
  import_lucide_react52 = require("lucide-react");
22547
- import_react68 = require("react");
22611
+ import_react69 = require("react");
22548
22612
  init_useBlockscoutAssets2();
22549
22613
  init_useLayoutDataStore();
22550
22614
  init_Expandable2();
@@ -22855,7 +22919,7 @@ var init_useNicknameStore = __esm({
22855
22919
  function useNicknameAvailability(currentNickname) {
22856
22920
  const { t } = useT();
22857
22921
  const nicknameValue = useNicknameStore((st) => st.nicknameValue);
22858
- (0, import_react69.useEffect)(() => {
22922
+ (0, import_react70.useEffect)(() => {
22859
22923
  if (!currentNickname) return;
22860
22924
  useNicknameStore.getState().setNicknameValue(currentNickname);
22861
22925
  }, [currentNickname]);
@@ -22876,8 +22940,8 @@ function useNicknameAvailability(currentNickname) {
22876
22940
  useNicknameStore.getState().setError(error?.message || "Failed to check nickname availability");
22877
22941
  }
22878
22942
  });
22879
- const debouncedCheckAvailability = (0, import_react69.useCallback)((0, import_lodash_es14.debounce)(checkAvailability, DEBOUNCE_MS), [checkAvailability]);
22880
- (0, import_react69.useEffect)(() => {
22943
+ const debouncedCheckAvailability = (0, import_react70.useCallback)((0, import_lodash_es14.debounce)(checkAvailability, DEBOUNCE_MS), [checkAvailability]);
22944
+ (0, import_react70.useEffect)(() => {
22881
22945
  if (!currentNickname) return;
22882
22946
  const normalizedInputValue = normalizeNickname(nicknameValue);
22883
22947
  const { valid: isNicknameValid } = validateNickname(nicknameValue);
@@ -22891,13 +22955,13 @@ function useNicknameAvailability(currentNickname) {
22891
22955
  }, [nicknameValue, currentNickname, debouncedCheckAvailability]);
22892
22956
  return { isCheckingAvailability };
22893
22957
  }
22894
- var import_react_query39, import_lodash_es14, import_react69, DEBOUNCE_MS;
22958
+ var import_react_query39, import_lodash_es14, import_react70, DEBOUNCE_MS;
22895
22959
  var init_useNicknameAvailability = __esm({
22896
22960
  "src/internal/components/NicknameMenu/useNicknameAvailability.ts"() {
22897
22961
  init_i18n();
22898
22962
  import_react_query39 = require("@tanstack/react-query");
22899
22963
  import_lodash_es14 = require("lodash-es");
22900
- import_react69 = require("react");
22964
+ import_react70 = require("react");
22901
22965
  init_nickname();
22902
22966
  init_nickname_errors();
22903
22967
  init_nickname_validation();
@@ -22918,9 +22982,9 @@ function NicknameEditForm(props) {
22918
22982
  const nicknameValue = useNicknameStore((st) => st.nicknameValue);
22919
22983
  const nicknameAvailability = useNicknameStore((st) => st.availability);
22920
22984
  const { isCheckingAvailability } = useNicknameAvailability(nicknameInfo ? nicknameInfo.handle : "");
22921
- const [isNicknameCopied, setIsNicknameCopied] = (0, import_react70.useState)(false);
22922
- const exitTimerRef = (0, import_react70.useRef)(null);
22923
- (0, import_react70.useEffect)(() => () => {
22985
+ const [isNicknameCopied, setIsNicknameCopied] = (0, import_react71.useState)(false);
22986
+ const exitTimerRef = (0, import_react71.useRef)(null);
22987
+ (0, import_react71.useEffect)(() => () => {
22924
22988
  if (exitTimerRef.current) clearTimeout(exitTimerRef.current);
22925
22989
  }, []);
22926
22990
  const { mutate: changeNickname2, isPending: isNicknameChanging } = (0, import_react_query40.useMutation)({
@@ -22954,7 +23018,7 @@ function NicknameEditForm(props) {
22954
23018
  );
22955
23019
  }
22956
23020
  });
22957
- const handleNicknameInputChange = (0, import_react70.useCallback)(
23021
+ const handleNicknameInputChange = (0, import_react71.useCallback)(
22958
23022
  (e) => {
22959
23023
  const { error, setError, setNicknameValue } = useNicknameStore.getState();
22960
23024
  const nextInputValue = e.target.value;
@@ -22968,7 +23032,7 @@ function NicknameEditForm(props) {
22968
23032
  },
22969
23033
  [t]
22970
23034
  );
22971
- const handleSubmit = (0, import_react70.useCallback)(
23035
+ const handleSubmit = (0, import_react71.useCallback)(
22972
23036
  (e) => {
22973
23037
  const { nicknameValue: nicknameValue2, setError } = useNicknameStore.getState();
22974
23038
  if (!canChange) {
@@ -23060,7 +23124,7 @@ function NicknameEditForm(props) {
23060
23124
  !!canChange && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "w-full flex items-center leadding-4 text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:nicknameMenu.hint") })
23061
23125
  ] });
23062
23126
  }
23063
- var import_react_query40, import_lucide_react55, import_react70, import_jsx_runtime98;
23127
+ var import_react_query40, import_lucide_react55, import_react71, import_jsx_runtime98;
23064
23128
  var init_NicknameEditForm = __esm({
23065
23129
  "src/internal/components/NicknameMenu/NicknameEditForm.tsx"() {
23066
23130
  init_ProviderContext();
@@ -23068,7 +23132,7 @@ var init_NicknameEditForm = __esm({
23068
23132
  init_i18n();
23069
23133
  import_react_query40 = require("@tanstack/react-query");
23070
23134
  import_lucide_react55 = require("lucide-react");
23071
- import_react70 = require("react");
23135
+ import_react71 = require("react");
23072
23136
  init_icons();
23073
23137
  init_nickname();
23074
23138
  init_profile();
@@ -23104,7 +23168,7 @@ function NicknameMenu() {
23104
23168
  queryFn: async () => await getNicknameInfo()
23105
23169
  });
23106
23170
  const resolvedError = nicknameError || nicknameInfoError?.message || null;
23107
- (0, import_react71.useEffect)(() => () => useNicknameStore.getState().reset(), []);
23171
+ (0, import_react72.useEffect)(() => () => useNicknameStore.getState().reset(), []);
23108
23172
  return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
23109
23173
  /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] ", children: [
23110
23174
  /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
@@ -23171,7 +23235,7 @@ function NicknameMenu() {
23171
23235
  !!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Highlight, { type: "error", children: resolvedError })
23172
23236
  ] });
23173
23237
  }
23174
- var import_react_query41, import_dayjs5, import_lucide_react56, import_react71, import_jsx_runtime99;
23238
+ var import_react_query41, import_dayjs5, import_lucide_react56, import_react72, import_jsx_runtime99;
23175
23239
  var init_NicknameMenu = __esm({
23176
23240
  "src/internal/components/NicknameMenu/NicknameMenu.tsx"() {
23177
23241
  init_SessionContext();
@@ -23180,7 +23244,7 @@ var init_NicknameMenu = __esm({
23180
23244
  import_react_query41 = require("@tanstack/react-query");
23181
23245
  import_dayjs5 = __toESM(require("dayjs"), 1);
23182
23246
  import_lucide_react56 = require("lucide-react");
23183
- import_react71 = require("react");
23247
+ import_react72 = require("react");
23184
23248
  init_nickname();
23185
23249
  init_profile();
23186
23250
  init_useLayoutDataStore();
@@ -23310,12 +23374,12 @@ function ReceiveMenu() {
23310
23374
  queryKey: [QUERY_KEYS.nicknameInfo, address],
23311
23375
  queryFn: async () => await getNicknameInfo()
23312
23376
  });
23313
- const [qrCodeUrl, setQrCodeUrl] = (0, import_react72.useState)("");
23314
- const [isAddressCopied, setAddressCopied] = (0, import_react72.useState)(false);
23315
- const [isNicknameCopied, setNicknameCopied] = (0, import_react72.useState)(false);
23316
- const [fingerprintCopied, setFingerprintCopied] = (0, import_react72.useState)(false);
23377
+ const [qrCodeUrl, setQrCodeUrl] = (0, import_react73.useState)("");
23378
+ const [isAddressCopied, setAddressCopied] = (0, import_react73.useState)(false);
23379
+ const [isNicknameCopied, setNicknameCopied] = (0, import_react73.useState)(false);
23380
+ const [fingerprintCopied, setFingerprintCopied] = (0, import_react73.useState)(false);
23317
23381
  useOnboardingTourAvailable(true);
23318
- const fingerprint = (0, import_react72.useMemo)(() => {
23382
+ const fingerprint = (0, import_react73.useMemo)(() => {
23319
23383
  if (!session?.ownerAddress) return null;
23320
23384
  try {
23321
23385
  return generateFingerprint(session.ownerAddress);
@@ -23323,7 +23387,7 @@ function ReceiveMenu() {
23323
23387
  return null;
23324
23388
  }
23325
23389
  }, [session?.ownerAddress]);
23326
- (0, import_react72.useEffect)(() => {
23390
+ (0, import_react73.useEffect)(() => {
23327
23391
  if (!address) return;
23328
23392
  import_qrcode.default.toDataURL(address, {
23329
23393
  width: 200,
@@ -23422,7 +23486,7 @@ function ReceiveMenu() {
23422
23486
  ] })
23423
23487
  ] });
23424
23488
  }
23425
- var import_react_query42, import_lucide_react57, import_qrcode, import_react72, import_jsx_runtime100;
23489
+ var import_react_query42, import_lucide_react57, import_qrcode, import_react73, import_jsx_runtime100;
23426
23490
  var init_ReceiveMenu = __esm({
23427
23491
  "src/internal/components/ReceiveMenu/ReceiveMenu.tsx"() {
23428
23492
  init_SessionContext();
@@ -23430,7 +23494,7 @@ var init_ReceiveMenu = __esm({
23430
23494
  import_react_query42 = require("@tanstack/react-query");
23431
23495
  import_lucide_react57 = require("lucide-react");
23432
23496
  import_qrcode = __toESM(require("qrcode"), 1);
23433
- import_react72 = require("react");
23497
+ import_react73 = require("react");
23434
23498
  init_nickname();
23435
23499
  init_profile();
23436
23500
  init_useLayoutDataStore();
@@ -23810,14 +23874,14 @@ var init_ConnectedApps2 = __esm({
23810
23874
  });
23811
23875
 
23812
23876
  // src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
23813
- var import_lucide_react60, import_react73, import_jsx_runtime103, KeyshareStatus;
23877
+ var import_lucide_react60, import_react74, import_jsx_runtime103, KeyshareStatus;
23814
23878
  var init_KeyshareStatus = __esm({
23815
23879
  "src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx"() {
23816
23880
  import_lucide_react60 = require("lucide-react");
23817
- import_react73 = require("react");
23881
+ import_react74 = require("react");
23818
23882
  init_utils();
23819
23883
  import_jsx_runtime103 = require("react/jsx-runtime");
23820
- KeyshareStatus = (0, import_react73.forwardRef)((props, ref) => {
23884
+ KeyshareStatus = (0, import_react74.forwardRef)((props, ref) => {
23821
23885
  const { isLoading, content, icon: Icon2, children } = props;
23822
23886
  if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react60.Loader, { className: "w-4 h-4 animate-spin" });
23823
23887
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { ref, className: "group relative w-full h-full", children: [
@@ -24144,10 +24208,10 @@ function updateLimits(patch) {
24144
24208
  usePolicyForm.setState((st) => ({ ...st, limits: { ...st?.limits, ...patch } }));
24145
24209
  }
24146
24210
  function useWatchFormData() {
24147
- const [showFormErrors, setShowFormErrors] = (0, import_react74.useState)(false);
24211
+ const [showFormErrors, setShowFormErrors] = (0, import_react75.useState)(false);
24148
24212
  const formData = usePolicyForm();
24149
24213
  const formState = usePolicyFormValidation();
24150
- (0, import_react74.useEffect)(() => {
24214
+ (0, import_react75.useEffect)(() => {
24151
24215
  if (!formData) return;
24152
24216
  setShowFormErrors(false);
24153
24217
  const errors = {};
@@ -24174,7 +24238,7 @@ function useWatchFormData() {
24174
24238
  }
24175
24239
  usePolicyFormValidation.setState(errors, true);
24176
24240
  }, [formData]);
24177
- (0, import_react74.useEffect)(() => () => usePolicyFormValidation.setState({}, true), []);
24241
+ (0, import_react75.useEffect)(() => () => usePolicyFormValidation.setState({}, true), []);
24178
24242
  const formErrorItem = Object.entries(formState).find(([_, value]) => value?.error);
24179
24243
  const formErrorMessage = formErrorItem ? `${formErrorItem[0].toUpperCase()}: ${formErrorItem[1]?.error}` : "";
24180
24244
  return {
@@ -24185,10 +24249,10 @@ function useWatchFormData() {
24185
24249
  setShowFormErrors
24186
24250
  };
24187
24251
  }
24188
- var import_react74, import_zustand14, usePolicyForm, usePolicyFormValidation;
24252
+ var import_react75, import_zustand14, usePolicyForm, usePolicyFormValidation;
24189
24253
  var init_usePolicyForm = __esm({
24190
24254
  "src/internal/components/SecurityMenu/UserPolicies/usePolicyForm.ts"() {
24191
- import_react74 = require("react");
24255
+ import_react75 = require("react");
24192
24256
  import_zustand14 = require("zustand");
24193
24257
  init_utils10();
24194
24258
  usePolicyForm = (0, import_zustand14.create)(() => null);
@@ -24219,10 +24283,10 @@ var init_useUserAssetsPolicies = __esm({
24219
24283
  // src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx
24220
24284
  function AddressListEditor(props) {
24221
24285
  const { label, assets = [], addresses, onChange } = props;
24222
- const [isAssetSelector, setIsAssetSelector] = (0, import_react75.useState)(false);
24223
- const [customAddress, setCustomAddress] = (0, import_react75.useState)("");
24224
- const [customAddressError, setCustomAddressError] = (0, import_react75.useState)(null);
24225
- const handleAddress = (0, import_react75.useCallback)(
24286
+ const [isAssetSelector, setIsAssetSelector] = (0, import_react76.useState)(false);
24287
+ const [customAddress, setCustomAddress] = (0, import_react76.useState)("");
24288
+ const [customAddressError, setCustomAddressError] = (0, import_react76.useState)(null);
24289
+ const handleAddress = (0, import_react76.useCallback)(
24226
24290
  (addressToAdd) => {
24227
24291
  if (!isValidAddress(addressToAdd)) {
24228
24292
  setCustomAddressError("Bad address");
@@ -24449,14 +24513,14 @@ function PolicyForm() {
24449
24513
  showFormErrors && formErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Highlight, { type: "error", children: formErrorMessage })
24450
24514
  ] });
24451
24515
  }
24452
- var import_react_query47, import_lucide_react63, import_react75, import_jsx_runtime106;
24516
+ var import_react_query47, import_lucide_react63, import_react76, import_jsx_runtime106;
24453
24517
  var init_PolicyForm = __esm({
24454
24518
  "src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx"() {
24455
24519
  init_SessionContext();
24456
24520
  init_useT();
24457
24521
  import_react_query47 = require("@tanstack/react-query");
24458
24522
  import_lucide_react63 = require("lucide-react");
24459
- import_react75 = require("react");
24523
+ import_react76 = require("react");
24460
24524
  init_button();
24461
24525
  init_highlight();
24462
24526
  init_input();
@@ -24538,7 +24602,7 @@ function UserPolicies() {
24538
24602
  const config = useProviderConfig().config;
24539
24603
  const mpcUserId = useSession((st) => st.session?.mpcUserId);
24540
24604
  const activeChainId = useSession((st) => st.activeChainId);
24541
- const [isConfirmingDelete, setIsConfirmingDelete] = (0, import_react76.useState)(false);
24605
+ const [isConfirmingDelete, setIsConfirmingDelete] = (0, import_react77.useState)(false);
24542
24606
  const { data: policyView, isLoading: isPolicyLoading } = useUserAssetsPolicies(activeChainId);
24543
24607
  const { mutate: cancelPending, isPending: isCancellingPending } = (0, import_react_query48.useMutation)({
24544
24608
  mutationFn: async () => {
@@ -24651,7 +24715,7 @@ function UserPolicies() {
24651
24715
  ] })
24652
24716
  ] });
24653
24717
  }
24654
- var import_react_query48, import_clsx3, import_lucide_react64, import_react76, import_jsx_runtime107;
24718
+ var import_react_query48, import_clsx3, import_lucide_react64, import_react77, import_jsx_runtime107;
24655
24719
  var init_UserPolicies = __esm({
24656
24720
  "src/internal/components/SecurityMenu/UserPolicies/UserPolicies.tsx"() {
24657
24721
  init_ProviderContext();
@@ -24660,7 +24724,7 @@ var init_UserPolicies = __esm({
24660
24724
  import_react_query48 = require("@tanstack/react-query");
24661
24725
  import_clsx3 = __toESM(require("clsx"), 1);
24662
24726
  import_lucide_react64 = require("lucide-react");
24663
- import_react76 = require("react");
24727
+ import_react77 = require("react");
24664
24728
  init_button();
24665
24729
  init_highlight();
24666
24730
  init_api4();
@@ -24685,7 +24749,7 @@ var init_UserPolicies2 = __esm({
24685
24749
 
24686
24750
  // src/internal/components/SecurityMenu/useSecurityMenuParams.ts
24687
24751
  function useSecurityMenuParams() {
24688
- (0, import_react77.useEffect)(() => {
24752
+ (0, import_react78.useEffect)(() => {
24689
24753
  const { pageParams, setPageParams } = useLayoutDataStore.getState();
24690
24754
  if (!pageParams || !(0, import_lodash_es15.keys)(pageParams).length) return;
24691
24755
  const { submenu } = pageParams;
@@ -24709,11 +24773,11 @@ function useSecurityMenuParams() {
24709
24773
  setPageParams(null);
24710
24774
  }, []);
24711
24775
  }
24712
- var import_lodash_es15, import_react77;
24776
+ var import_lodash_es15, import_react78;
24713
24777
  var init_useSecurityMenuParams = __esm({
24714
24778
  "src/internal/components/SecurityMenu/useSecurityMenuParams.ts"() {
24715
24779
  import_lodash_es15 = require("lodash-es");
24716
- import_react77 = require("react");
24780
+ import_react78 = require("react");
24717
24781
  init_useLayoutDataStore();
24718
24782
  init_UserPolicies2();
24719
24783
  init_useSecurityStore();
@@ -24728,7 +24792,7 @@ function SecurityMenuContent() {
24728
24792
  const { appToUntrust, showConnectedApps, showAssetsPolicies } = useSecurityStore();
24729
24793
  const policyForm = usePolicyForm();
24730
24794
  useOnboardingTourAvailable(!showConnectedApps && !showAssetsPolicies);
24731
- (0, import_react78.useEffect)(() => {
24795
+ (0, import_react79.useEffect)(() => {
24732
24796
  let securityTitle = "";
24733
24797
  switch (true) {
24734
24798
  case showConnectedApps:
@@ -24749,7 +24813,7 @@ function SecurityMenuContent() {
24749
24813
  return () => {
24750
24814
  };
24751
24815
  }, [t, showConnectedApps, showAssetsPolicies, policyForm]);
24752
- (0, import_react78.useEffect)(
24816
+ (0, import_react79.useEffect)(
24753
24817
  () => () => {
24754
24818
  usePolicyForm.setState(null, true);
24755
24819
  useSecurityStore.setState(
@@ -24843,13 +24907,13 @@ function SecurityMenu() {
24843
24907
  /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SecurityMenuContent, {})
24844
24908
  ] });
24845
24909
  }
24846
- var import_lucide_react65, import_react78, import_jsx_runtime108;
24910
+ var import_lucide_react65, import_react79, import_jsx_runtime108;
24847
24911
  var init_SecurityMenu = __esm({
24848
24912
  "src/internal/components/SecurityMenu/SecurityMenu.tsx"() {
24849
24913
  init_ProviderContext();
24850
24914
  init_i18n();
24851
24915
  import_lucide_react65 = require("lucide-react");
24852
- import_react78 = require("react");
24916
+ import_react79 = require("react");
24853
24917
  init_useLayoutDataStore();
24854
24918
  init_Expandable2();
24855
24919
  init_Onboarding();
@@ -25053,8 +25117,8 @@ var init_SenderSelector = __esm({
25053
25117
  function useAvailableSenders() {
25054
25118
  const address = useSession((st) => st.address);
25055
25119
  const { profiles } = useLinkedProfiles();
25056
- const lastCalcedSenders = (0, import_react79.useRef)([]);
25057
- (0, import_react79.useEffect)(() => {
25120
+ const lastCalcedSenders = (0, import_react80.useRef)([]);
25121
+ (0, import_react80.useEffect)(() => {
25058
25122
  const sendersAccumulator = [
25059
25123
  {
25060
25124
  type: "embarkai-wallet",
@@ -25088,13 +25152,13 @@ function useAvailableSenders() {
25088
25152
  directWalletProfiles: profiles.filter((p) => p.provider === "wallet")
25089
25153
  };
25090
25154
  }
25091
- var import_react79;
25155
+ var import_react80;
25092
25156
  var init_useAvailableSenders = __esm({
25093
25157
  "src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts"() {
25094
25158
  init_SessionContext();
25095
25159
  init_tokens();
25096
25160
  init_linkedProfiles();
25097
- import_react79 = require("react");
25161
+ import_react80 = require("react");
25098
25162
  init_wallets();
25099
25163
  init_useBridgeStore();
25100
25164
  }
@@ -25509,18 +25573,18 @@ function useHyperlaneHistory() {
25509
25573
  getNextPageParam: (lastPage) => lastPage.page < lastPage.pageCount ? lastPage.page + 1 : void 0,
25510
25574
  queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
25511
25575
  });
25512
- const txList = (0, import_react80.useMemo)(
25576
+ const txList = (0, import_react81.useMemo)(
25513
25577
  () => query?.data?.pages?.map((p) => p.data).flat(Infinity) || [],
25514
25578
  [query?.data]
25515
25579
  );
25516
25580
  return { query, txList };
25517
25581
  }
25518
- var import_react_query49, import_react80, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
25582
+ var import_react_query49, import_react81, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
25519
25583
  var init_useHyperlaneHistory = __esm({
25520
25584
  "src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
25521
25585
  init_SessionContext();
25522
25586
  import_react_query49 = require("@tanstack/react-query");
25523
- import_react80 = require("react");
25587
+ import_react81 = require("react");
25524
25588
  init_useLayoutDataStore();
25525
25589
  init_useFlowSelector();
25526
25590
  init_api5();
@@ -25550,9 +25614,9 @@ function useBridge() {
25550
25614
  const qc = (0, import_react_query50.useQueryClient)();
25551
25615
  const { t } = useT();
25552
25616
  const address = useSession((st) => st.address);
25553
- const { data: walletClient } = (0, import_wagmi6.useWalletClient)();
25554
- const { mutateAsync: switchChainAsync } = (0, import_wagmi6.useSwitchChain)();
25555
- const swapDirection = (0, import_react81.useCallback)(() => {
25617
+ const { data: walletClient } = (0, import_wagmi5.useWalletClient)();
25618
+ const { mutateAsync: switchChainAsync } = (0, import_wagmi5.useSwitchChain)();
25619
+ const swapDirection = (0, import_react82.useCallback)(() => {
25556
25620
  const {
25557
25621
  // bridgeStep,
25558
25622
  originChain,
@@ -25603,7 +25667,7 @@ function useBridge() {
25603
25667
  useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
25604
25668
  }
25605
25669
  });
25606
- const handleQuoteEstimation = (0, import_react81.useCallback)((amnt) => {
25670
+ const handleQuoteEstimation = (0, import_react82.useCallback)((amnt) => {
25607
25671
  const { originChain, destinationChain, bridgeSender } = useBridgeStore.getState();
25608
25672
  if (!amnt || !Number(amnt)) {
25609
25673
  useBridgeStore.getState().setQuote(null);
@@ -25738,14 +25802,14 @@ function useBridge() {
25738
25802
  isAssetBridging
25739
25803
  };
25740
25804
  }
25741
- var import_react_query50, import_react81, import_wagmi6;
25805
+ var import_react_query50, import_react82, import_wagmi5;
25742
25806
  var init_useBridge = __esm({
25743
25807
  "src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
25744
25808
  init_SessionContext();
25745
25809
  init_i18n();
25746
25810
  import_react_query50 = require("@tanstack/react-query");
25747
- import_react81 = require("react");
25748
- import_wagmi6 = require("wagmi");
25811
+ import_react82 = require("react");
25812
+ import_wagmi5 = require("wagmi");
25749
25813
  init_useLayoutStore();
25750
25814
  init_useExternalWalletStore();
25751
25815
  init_useFlowSelector();
@@ -25775,7 +25839,7 @@ function useHyperlaneRoutes() {
25775
25839
  queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
25776
25840
  queryFn: async () => await getHyperlaneWarpRoutes()
25777
25841
  });
25778
- (0, import_react82.useEffect)(() => {
25842
+ (0, import_react83.useEffect)(() => {
25779
25843
  if (!errorWarpRoutes) return;
25780
25844
  useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
25781
25845
  const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
@@ -25784,7 +25848,7 @@ function useHyperlaneRoutes() {
25784
25848
  setOriginChain(null);
25785
25849
  setDestinationChain(null);
25786
25850
  }, [errorWarpRoutes]);
25787
- (0, import_react82.useEffect)(() => {
25851
+ (0, import_react83.useEffect)(() => {
25788
25852
  if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
25789
25853
  let targetHyperRouteToSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
25790
25854
  if (!targetHyperRouteToSelect) {
@@ -25809,12 +25873,12 @@ function useHyperlaneRoutes() {
25809
25873
  }, [hyperRoute, hyperlaneWarpRoutes]);
25810
25874
  return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
25811
25875
  }
25812
- var import_react_query51, import_react82, HYPERLANE_WARP_ROUTES_QUERY_KEY;
25876
+ var import_react_query51, import_react83, HYPERLANE_WARP_ROUTES_QUERY_KEY;
25813
25877
  var init_useHyperlaneRoutes = __esm({
25814
25878
  "src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts"() {
25815
25879
  init_SessionContext();
25816
25880
  import_react_query51 = require("@tanstack/react-query");
25817
- import_react82 = require("react");
25881
+ import_react83 = require("react");
25818
25882
  init_useLayoutDataStore();
25819
25883
  init_useFlowSelector();
25820
25884
  init_api5();
@@ -25830,7 +25894,7 @@ function useMenuTitle(warpRoutes) {
25830
25894
  const bridgeStep = useBridgeStore((st) => st.bridgeStep);
25831
25895
  const hyperRoute = useBridgeStore((st) => st.hyperRoute);
25832
25896
  const hyperRouteMeta = warpRoutes?.length ? warpRoutes.find((route) => route.routeId === hyperRoute) : null;
25833
- (0, import_react83.useEffect)(() => {
25897
+ (0, import_react84.useEffect)(() => {
25834
25898
  const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
25835
25899
  switch (true) {
25836
25900
  case bridgeStep === "sender-selector":
@@ -25858,11 +25922,11 @@ function useMenuTitle(warpRoutes) {
25858
25922
  }
25859
25923
  }, [bridgeStep, hyperRouteMeta, t]);
25860
25924
  }
25861
- var import_react83;
25925
+ var import_react84;
25862
25926
  var init_useMenuTitle = __esm({
25863
25927
  "src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts"() {
25864
25928
  init_i18n();
25865
- import_react83 = require("react");
25929
+ import_react84 = require("react");
25866
25930
  init_useFlowSelector();
25867
25931
  init_useBridgeStore();
25868
25932
  }
@@ -26032,7 +26096,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
26032
26096
  const activeChainId = useSession((st) => st.activeChainId);
26033
26097
  const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
26034
26098
  const directWalletChainId = useExternalWalletStore((st) => st.externalChainId);
26035
- const { mutateAsync: switchChainAsync } = (0, import_wagmi7.useSwitchChain)();
26099
+ const { mutateAsync: switchChainAsync } = (0, import_wagmi6.useSwitchChain)();
26036
26100
  const hyperRoute = useBridgeStore((st) => st.hyperRoute);
26037
26101
  const bridgeSender = useBridgeStore((st) => st.bridgeSender);
26038
26102
  const originChain = useBridgeStore((st) => st.originChain);
@@ -26112,7 +26176,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
26112
26176
  };
26113
26177
  }
26114
26178
  });
26115
- const refreshRouteTokenBalance = (0, import_react84.useCallback)(
26179
+ const refreshRouteTokenBalance = (0, import_react85.useCallback)(
26116
26180
  (senderWallet) => {
26117
26181
  switch (true) {
26118
26182
  case senderWallet === "embarkai-wallet":
@@ -26128,7 +26192,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
26128
26192
  },
26129
26193
  [refreshBalances, qc]
26130
26194
  );
26131
- (0, import_react84.useEffect)(() => {
26195
+ (0, import_react85.useEffect)(() => {
26132
26196
  if (!!isLoadingWarpRoutes || !bridgeSender || !originChain) return;
26133
26197
  switch (bridgeSender) {
26134
26198
  case "embarkai-wallet":
@@ -26159,16 +26223,16 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
26159
26223
  isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
26160
26224
  };
26161
26225
  }
26162
- var import_core8, import_react_query52, import_react84, import_viem15, import_wagmi7, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY;
26226
+ var import_core8, import_react_query52, import_react85, import_viem15, import_wagmi6, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY;
26163
26227
  var init_useBridgeBalance = __esm({
26164
26228
  "src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
26165
26229
  init_SessionContext();
26166
26230
  init_i18n();
26167
26231
  import_core8 = require("@embarkai/core");
26168
26232
  import_react_query52 = require("@tanstack/react-query");
26169
- import_react84 = require("react");
26233
+ import_react85 = require("react");
26170
26234
  import_viem15 = require("viem");
26171
- import_wagmi7 = require("wagmi");
26235
+ import_wagmi6 = require("wagmi");
26172
26236
  init_useBlockscoutAssets2();
26173
26237
  init_useExternalWalletStore();
26174
26238
  init_BalanceFeedProvider2();
@@ -26295,7 +26359,7 @@ function SelectStep(props) {
26295
26359
  variant: "outline",
26296
26360
  size: "medium",
26297
26361
  className: "bg-[var(--ui-kit-bg)] flex items-center gap-[var(--ui-kit-gap)]",
26298
- children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_react85.Fragment, { children: [
26362
+ children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_react86.Fragment, { children: [
26299
26363
  chIdx > 0 && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react67.ArrowLeftRightIcon, { className: "w-4 h-4 " }),
26300
26364
  /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
26301
26365
  ] }, `${selectedWarpRoute.id}-icon-${chain.chainID}-${chIdx}`))
@@ -26439,13 +26503,13 @@ function SelectStep(props) {
26439
26503
  )
26440
26504
  ] });
26441
26505
  }
26442
- var import_lucide_react67, import_react85, import_jsx_runtime111;
26506
+ var import_lucide_react67, import_react86, import_jsx_runtime111;
26443
26507
  var init_SelectStep = __esm({
26444
26508
  "src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx"() {
26445
26509
  init_tokens();
26446
26510
  init_i18n();
26447
26511
  import_lucide_react67 = require("lucide-react");
26448
- import_react85 = require("react");
26512
+ import_react86 = require("react");
26449
26513
  init_priceFormatter();
26450
26514
  init_utils();
26451
26515
  init_useExternalWalletStore();
@@ -26496,7 +26560,7 @@ var init_checkbox = __esm({
26496
26560
  // src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
26497
26561
  function ConfirmStep(props) {
26498
26562
  const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
26499
- const [userConsent, setUserConsent] = (0, import_react86.useState)(false);
26563
+ const [userConsent, setUserConsent] = (0, import_react87.useState)(false);
26500
26564
  const { t } = useT();
26501
26565
  const address = useSession((st) => st.address);
26502
26566
  const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
@@ -26612,13 +26676,13 @@ function ConfirmStep(props) {
26612
26676
  }
26613
26677
  );
26614
26678
  }
26615
- var import_lucide_react69, import_react86, import_jsx_runtime113, P_CN;
26679
+ var import_lucide_react69, import_react87, import_jsx_runtime113, P_CN;
26616
26680
  var init_ConfirmStep = __esm({
26617
26681
  "src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx"() {
26618
26682
  init_SessionContext();
26619
26683
  init_i18n();
26620
26684
  import_lucide_react69 = require("lucide-react");
26621
- import_react86 = require("react");
26685
+ import_react87 = require("react");
26622
26686
  init_priceFormatter();
26623
26687
  init_utils();
26624
26688
  init_Onboarding();
@@ -26995,7 +27059,7 @@ function SelectAssetRoute(props) {
26995
27059
  const { hyperlaneWarpRoutes } = props;
26996
27060
  const { t } = useT();
26997
27061
  const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
26998
- const tokenList = (0, import_react87.useMemo)(() => {
27062
+ const tokenList = (0, import_react88.useMemo)(() => {
26999
27063
  const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
27000
27064
  const uniqueTokens = Array.from(new Set(tokens));
27001
27065
  return uniqueTokens.map((symbol) => ({
@@ -27072,13 +27136,13 @@ function SelectAssetRoute(props) {
27072
27136
  ] })
27073
27137
  ] });
27074
27138
  }
27075
- var import_lucide_react71, import_react87, import_jsx_runtime116;
27139
+ var import_lucide_react71, import_react88, import_jsx_runtime116;
27076
27140
  var init_SelectAssetRoute = __esm({
27077
27141
  "src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx"() {
27078
27142
  init_tokens();
27079
27143
  init_i18n();
27080
27144
  import_lucide_react71 = require("lucide-react");
27081
- import_react87 = require("react");
27145
+ import_react88 = require("react");
27082
27146
  init_button();
27083
27147
  init_ResolveChainIcon();
27084
27148
  init_useBridgeStore();
@@ -27105,7 +27169,7 @@ function HyperlaneBridge() {
27105
27169
  const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
27106
27170
  const { directWalletProfiles } = useAvailableSenders();
27107
27171
  useMenuTitle(hyperlaneWarpRoutes);
27108
- (0, import_react88.useEffect)(() => {
27172
+ (0, import_react89.useEffect)(() => {
27109
27173
  return () => {
27110
27174
  useBridgeStore.getState().resetSelections();
27111
27175
  };
@@ -27138,10 +27202,10 @@ function HyperlaneBridge() {
27138
27202
  bridgeStep === "tx-history-details" && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(HistoryDetailsStep, {})
27139
27203
  ] });
27140
27204
  }
27141
- var import_react88, import_jsx_runtime117;
27205
+ var import_react89, import_jsx_runtime117;
27142
27206
  var init_HyperlaneBridge = __esm({
27143
27207
  "src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
27144
- import_react88 = require("react");
27208
+ import_react89 = require("react");
27145
27209
  init_SenderSelector();
27146
27210
  init_useAvailableSenders();
27147
27211
  init_useBridge();
@@ -27159,7 +27223,7 @@ function BridgeHistorySwitch(props) {
27159
27223
  const selectorFlow = useFlowSelectorStore((st) => st.flow);
27160
27224
  const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
27161
27225
  const bridgeStep = useBridgeStore((st) => st.bridgeStep);
27162
- const lastBridgeStepRef = (0, import_react89.useRef)(null);
27226
+ const lastBridgeStepRef = (0, import_react90.useRef)(null);
27163
27227
  if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
27164
27228
  return null;
27165
27229
  }
@@ -27178,10 +27242,10 @@ function BridgeHistorySwitch(props) {
27178
27242
  }
27179
27243
  );
27180
27244
  }
27181
- var import_react89, import_jsx_runtime118;
27245
+ var import_react90, import_jsx_runtime118;
27182
27246
  var init_HistorySwitch = __esm({
27183
27247
  "src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx"() {
27184
- import_react89 = require("react");
27248
+ import_react90 = require("react");
27185
27249
  init_switch();
27186
27250
  init_useFlowSelector();
27187
27251
  init_useBridgeStore();
@@ -27207,7 +27271,7 @@ function useErc3643Compliance(options) {
27207
27271
  isLoading,
27208
27272
  error: queryError,
27209
27273
  refetch
27210
- } = (0, import_wagmi8.useReadContract)({
27274
+ } = (0, import_wagmi7.useReadContract)({
27211
27275
  address: tokenAddress,
27212
27276
  abi: ERC3643_CAN_TRANSFER_ABI,
27213
27277
  functionName: "canTransfer",
@@ -27244,10 +27308,10 @@ function useErc3643Compliance(options) {
27244
27308
  refetch
27245
27309
  };
27246
27310
  }
27247
- var import_wagmi8, ERC3643_CAN_TRANSFER_ABI;
27311
+ var import_wagmi7, ERC3643_CAN_TRANSFER_ABI;
27248
27312
  var init_useErc3643Compliance = __esm({
27249
27313
  "src/hooks/useErc3643Compliance.ts"() {
27250
- import_wagmi8 = require("wagmi");
27314
+ import_wagmi7 = require("wagmi");
27251
27315
  ERC3643_CAN_TRANSFER_ABI = [
27252
27316
  {
27253
27317
  type: "function",
@@ -27272,11 +27336,11 @@ function looksLikeNickname(input) {
27272
27336
  }
27273
27337
  function useNicknameResolve(input, options) {
27274
27338
  const { enabled = true, chainId } = options;
27275
- const [debouncedInput, setDebouncedInput] = (0, import_react90.useState)("");
27276
- const [isDebouncing, setIsDebouncing] = (0, import_react90.useState)(false);
27339
+ const [debouncedInput, setDebouncedInput] = (0, import_react91.useState)("");
27340
+ const [isDebouncing, setIsDebouncing] = (0, import_react91.useState)(false);
27277
27341
  const normalized = normalizeNickname(input);
27278
27342
  const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
27279
- (0, import_react90.useEffect)(() => {
27343
+ (0, import_react91.useEffect)(() => {
27280
27344
  if (!isNicknameInput || !enabled) {
27281
27345
  setDebouncedInput("");
27282
27346
  setIsDebouncing(false);
@@ -27302,7 +27366,7 @@ function useNicknameResolve(input, options) {
27302
27366
  const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
27303
27367
  const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
27304
27368
  const isFrozen = query.data?.isFrozen ?? false;
27305
- const fingerprintVerification = (0, import_react90.useMemo)(() => {
27369
+ const fingerprintVerification = (0, import_react91.useMemo)(() => {
27306
27370
  if (!query.data?.owner || !query.data?.fingerprint) {
27307
27371
  return null;
27308
27372
  }
@@ -27324,11 +27388,11 @@ function useNicknameResolve(input, options) {
27324
27388
  resolvedAddress
27325
27389
  };
27326
27390
  }
27327
- var import_react_query54, import_react90, DEBOUNCE_MS2;
27391
+ var import_react_query54, import_react91, DEBOUNCE_MS2;
27328
27392
  var init_useNicknameResolve = __esm({
27329
27393
  "src/hooks/useNicknameResolve.ts"() {
27330
27394
  import_react_query54 = require("@tanstack/react-query");
27331
- import_react90 = require("react");
27395
+ import_react91 = require("react");
27332
27396
  init_nickname();
27333
27397
  init_profile();
27334
27398
  init_nickname_fingerprint();
@@ -27341,10 +27405,10 @@ var init_useNicknameResolve = __esm({
27341
27405
  function useSendTransaction() {
27342
27406
  const session = useSession((st) => st.session);
27343
27407
  const address = useSession((st) => st.address);
27344
- const [isLoading, setIsLoading] = (0, import_react91.useState)(false);
27345
- const [error, setError] = (0, import_react91.useState)(null);
27346
- const [userOpHash, setUserOpHash] = (0, import_react91.useState)(null);
27347
- const sendTransaction = (0, import_react91.useCallback)(
27408
+ const [isLoading, setIsLoading] = (0, import_react92.useState)(false);
27409
+ const [error, setError] = (0, import_react92.useState)(null);
27410
+ const [userOpHash, setUserOpHash] = (0, import_react92.useState)(null);
27411
+ const sendTransaction = (0, import_react92.useCallback)(
27348
27412
  async (params) => {
27349
27413
  if (!session || !address) {
27350
27414
  setError("No active session");
@@ -27441,7 +27505,7 @@ function useSendTransaction() {
27441
27505
  },
27442
27506
  [session, address]
27443
27507
  );
27444
- const reset = (0, import_react91.useCallback)(() => {
27508
+ const reset = (0, import_react92.useCallback)(() => {
27445
27509
  setError(null);
27446
27510
  setUserOpHash(null);
27447
27511
  setIsLoading(false);
@@ -27454,10 +27518,10 @@ function useSendTransaction() {
27454
27518
  reset
27455
27519
  };
27456
27520
  }
27457
- var import_react91, import_viem16, ERC20_TRANSFER_ABI, ERC721_SAFE_TRANSFER_ABI, ERC1155_SAFE_TRANSFER_ABI;
27521
+ var import_react92, import_viem16, ERC20_TRANSFER_ABI, ERC721_SAFE_TRANSFER_ABI, ERC1155_SAFE_TRANSFER_ABI;
27458
27522
  var init_useSendTransaction = __esm({
27459
27523
  "src/hooks/useSendTransaction.ts"() {
27460
- import_react91 = require("react");
27524
+ import_react92 = require("react");
27461
27525
  import_viem16 = require("viem");
27462
27526
  init_SessionContext();
27463
27527
  init_account2();
@@ -27608,7 +27672,7 @@ var init_AssetInputIcon = __esm({
27608
27672
 
27609
27673
  // src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
27610
27674
  function NftDisplayCard({ asset }) {
27611
- const [imageError, setImageError] = (0, import_react92.useState)(false);
27675
+ const [imageError, setImageError] = (0, import_react93.useState)(false);
27612
27676
  const nftImage = asset.image || asset.nftMetadata?.image;
27613
27677
  return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
27614
27678
  nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
@@ -27636,11 +27700,11 @@ function NftDisplayCard({ asset }) {
27636
27700
  ] })
27637
27701
  ] });
27638
27702
  }
27639
- var import_lucide_react73, import_react92, import_jsx_runtime120;
27703
+ var import_lucide_react73, import_react93, import_jsx_runtime120;
27640
27704
  var init_NftDisplayCard = __esm({
27641
27705
  "src/internal/components/SendMenu/send/components/NftDisplayCard.tsx"() {
27642
27706
  import_lucide_react73 = require("lucide-react");
27643
- import_react92 = require("react");
27707
+ import_react93 = require("react");
27644
27708
  import_jsx_runtime120 = require("react/jsx-runtime");
27645
27709
  }
27646
27710
  });
@@ -27760,7 +27824,7 @@ function NicknameData(props) {
27760
27824
  isWalletNotSetup,
27761
27825
  isFrozen
27762
27826
  } = resolvedNicknameData;
27763
- (0, import_react93.useEffect)(() => {
27827
+ (0, import_react94.useEffect)(() => {
27764
27828
  if (isResolving) return;
27765
27829
  let errMessage = null;
27766
27830
  switch (true) {
@@ -27815,11 +27879,11 @@ function NicknameData(props) {
27815
27879
  ] })
27816
27880
  ] });
27817
27881
  }
27818
- var import_lucide_react74, import_react93, import_jsx_runtime122;
27882
+ var import_lucide_react74, import_react94, import_jsx_runtime122;
27819
27883
  var init_NicknameData = __esm({
27820
27884
  "src/internal/components/SendMenu/send/components/NicknameData.tsx"() {
27821
27885
  import_lucide_react74 = require("lucide-react");
27822
- import_react93 = require("react");
27886
+ import_react94 = require("react");
27823
27887
  init_no_image();
27824
27888
  init_utils();
27825
27889
  init_useFlowSelector();
@@ -28352,16 +28416,16 @@ function SendMenu() {
28352
28416
  userOpHash,
28353
28417
  reset
28354
28418
  } = useSendTransaction();
28355
- (0, import_react94.useEffect)(() => {
28419
+ (0, import_react95.useEffect)(() => {
28356
28420
  useFlowSelectorStore.getState().setIsUiLocked(isAssetsLoading || isTransactionPending);
28357
28421
  }, [isAssetsLoading, isTransactionPending]);
28358
- (0, import_react94.useEffect)(() => {
28422
+ (0, import_react95.useEffect)(() => {
28359
28423
  useFlowSelectorStore.getState().setError(sendTransactionError || null);
28360
28424
  }, [sendTransactionError]);
28361
28425
  const { txStep, recipient, amount, selectedAsset, setSelectedAsset } = useSendStore();
28362
28426
  const isNft = isNftAsset3(selectedAsset);
28363
28427
  const isSecurity = isSecurityToken2(selectedAsset);
28364
- (0, import_react94.useEffect)(() => {
28428
+ (0, import_react95.useEffect)(() => {
28365
28429
  const shouldDefaultAsset = assets.length > 0 && !selectedAsset;
28366
28430
  if (!shouldDefaultAsset) return;
28367
28431
  const chainNativeCurrency = useSession.getState().chainConfig?.nativeCurrency;
@@ -28371,7 +28435,7 @@ function SendMenu() {
28371
28435
  if (isBalance(erc20)) return setSelectedAsset(erc20);
28372
28436
  setSelectedAsset(assets[0]);
28373
28437
  }, [assets, selectedAsset]);
28374
- (0, import_react94.useEffect)(
28438
+ (0, import_react95.useEffect)(
28375
28439
  () => () => {
28376
28440
  useSendStore.getState().reset();
28377
28441
  reset();
@@ -28381,7 +28445,7 @@ function SendMenu() {
28381
28445
  const isNicknameInput = looksLikeNickname(recipient);
28382
28446
  const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
28383
28447
  const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
28384
- const complianceAmount = (0, import_react94.useMemo)(() => {
28448
+ const complianceAmount = (0, import_react95.useMemo)(() => {
28385
28449
  if (!isSecurity || !amount || !selectedAsset) return void 0;
28386
28450
  try {
28387
28451
  return (0, import_viem21.parseUnits)(amount, selectedAsset.decimals || 18);
@@ -28396,7 +28460,7 @@ function SendMenu() {
28396
28460
  enabled: isSecurity && !!effectiveAddress && !!complianceAmount,
28397
28461
  chainId: activeChainId
28398
28462
  });
28399
- (0, import_react94.useEffect)(() => {
28463
+ (0, import_react95.useEffect)(() => {
28400
28464
  const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
28401
28465
  switch (true) {
28402
28466
  case txStep === "select-asset":
@@ -28466,7 +28530,7 @@ function SendMenu() {
28466
28530
  ] })
28467
28531
  ] });
28468
28532
  }
28469
- var import_lucide_react77, import_react94, import_viem21, import_jsx_runtime125;
28533
+ var import_lucide_react77, import_react95, import_viem21, import_jsx_runtime125;
28470
28534
  var init_SendMenu = __esm({
28471
28535
  "src/internal/components/SendMenu/send/SendMenu.tsx"() {
28472
28536
  init_SessionContext();
@@ -28475,7 +28539,7 @@ var init_SendMenu = __esm({
28475
28539
  init_useSendTransaction();
28476
28540
  init_useT();
28477
28541
  import_lucide_react77 = require("lucide-react");
28478
- import_react94 = require("react");
28542
+ import_react95 = require("react");
28479
28543
  import_viem21 = require("viem");
28480
28544
  init_useBlockscoutAssets2();
28481
28545
  init_useLayoutDataStore();
@@ -28501,7 +28565,7 @@ var init_send = __esm({
28501
28565
  // src/internal/components/SendMenu/useSendMenuParams.ts
28502
28566
  function useSendMenuParams() {
28503
28567
  const { config } = useProviderConfig();
28504
- (0, import_react95.useEffect)(() => {
28568
+ (0, import_react96.useEffect)(() => {
28505
28569
  const { pageParams, setPageParams } = useLayoutDataStore.getState();
28506
28570
  if (!pageParams || !(0, import_lodash_es16.keys)(pageParams).length) return;
28507
28571
  const { sendFlow, send, bridge } = pageParams || {};
@@ -28554,12 +28618,12 @@ function useSendMenuParams() {
28554
28618
  setPageParams(null);
28555
28619
  }, []);
28556
28620
  }
28557
- var import_lodash_es16, import_react95;
28621
+ var import_lodash_es16, import_react96;
28558
28622
  var init_useSendMenuParams = __esm({
28559
28623
  "src/internal/components/SendMenu/useSendMenuParams.ts"() {
28560
28624
  init_ProviderContext();
28561
28625
  import_lodash_es16 = require("lodash-es");
28562
- import_react95 = require("react");
28626
+ import_react96 = require("react");
28563
28627
  init_useLayoutDataStore();
28564
28628
  init_useBridgeStore();
28565
28629
  init_useSendStore();
@@ -28627,17 +28691,17 @@ function SendFlowSelector() {
28627
28691
  const sendStep = useSendStore((st) => st.txStep);
28628
28692
  const bridgeStep = useBridgeStore((st) => st.bridgeStep);
28629
28693
  useOnboardingTourAvailable(sendStep === "input" && bridgeStep === "select");
28630
- (0, import_react96.useEffect)(
28694
+ (0, import_react97.useEffect)(
28631
28695
  () => () => {
28632
28696
  useFlowSelectorStore.getState().setError(null);
28633
28697
  },
28634
28698
  []
28635
28699
  );
28636
- (0, import_react96.useEffect)(() => {
28700
+ (0, import_react97.useEffect)(() => {
28637
28701
  if (!!config?.current?.features?.showAssetBridge) return;
28638
28702
  if (selectorFlow === "bridge") useFlowSelectorStore.getState().setFlow("send");
28639
28703
  }, [selectorFlow]);
28640
- const availableFlows = (0, import_react96.useMemo)(() => {
28704
+ const availableFlows = (0, import_react97.useMemo)(() => {
28641
28705
  const selectorFlows = { send: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SendMenu, {}) };
28642
28706
  if (!!config?.current?.features?.showAssetBridge) selectorFlows.bridge = /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(HyperlaneBridge, {});
28643
28707
  return selectorFlows;
@@ -28702,13 +28766,13 @@ function SendFlowSelector() {
28702
28766
  ] })
28703
28767
  ] });
28704
28768
  }
28705
- var import_lucide_react78, import_react96, import_jsx_runtime126;
28769
+ var import_lucide_react78, import_react97, import_jsx_runtime126;
28706
28770
  var init_SendFlowSelector = __esm({
28707
28771
  "src/internal/components/SendMenu/SendFlowSelector.tsx"() {
28708
28772
  init_ProviderContext();
28709
28773
  init_i18n();
28710
28774
  import_lucide_react78 = require("lucide-react");
28711
- import_react96 = require("react");
28775
+ import_react97 = require("react");
28712
28776
  init_useLayoutDataStore();
28713
28777
  init_utils();
28714
28778
  init_Expandable2();
@@ -28771,12 +28835,12 @@ function getServerSnapshot() {
28771
28835
  return false;
28772
28836
  }
28773
28837
  function useProMode() {
28774
- return (0, import_react97.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
28838
+ return (0, import_react98.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
28775
28839
  }
28776
- var import_react97, STORAGE_KEY, EVENT_NAME;
28840
+ var import_react98, STORAGE_KEY, EVENT_NAME;
28777
28841
  var init_pro_mode = __esm({
28778
28842
  "src/internal/lib/pro-mode.ts"() {
28779
- import_react97 = require("react");
28843
+ import_react98 = require("react");
28780
28844
  STORAGE_KEY = "embarkai_pro_mode";
28781
28845
  EVENT_NAME = "embarkai-pro-mode-changed";
28782
28846
  }
@@ -29582,7 +29646,7 @@ function TransactionsMenu() {
29582
29646
  const { t } = useT();
29583
29647
  useOnboardingTourAvailable(true);
29584
29648
  const setPage = useLayoutDataStore((st) => st.setPage);
29585
- const [expandedGroups, setExpandedGroups] = (0, import_react98.useState)({});
29649
+ const [expandedGroups, setExpandedGroups] = (0, import_react99.useState)({});
29586
29650
  const historySupported = isTransactionHistorySupported(chainConfig?.id);
29587
29651
  const {
29588
29652
  data: txHistoryGroups = [],
@@ -29595,7 +29659,7 @@ function TransactionsMenu() {
29595
29659
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address],
29596
29660
  queryFn: () => getTransactionsListQuery({ address, chainConfig })
29597
29661
  });
29598
- const refreshTxHistory = (0, import_react98.useCallback)(
29662
+ const refreshTxHistory = (0, import_react99.useCallback)(
29599
29663
  () => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address] }),
29600
29664
  [qc, chainConfig.id, address]
29601
29665
  );
@@ -29634,14 +29698,14 @@ function TransactionsMenu() {
29634
29698
  )) })
29635
29699
  ] });
29636
29700
  }
29637
- var import_react_query57, import_lucide_react80, import_react98, import_jsx_runtime128;
29701
+ var import_react_query57, import_lucide_react80, import_react99, import_jsx_runtime128;
29638
29702
  var init_TransactionsMenu = __esm({
29639
29703
  "src/internal/components/TransactionsMenu/TransactionsMenu.tsx"() {
29640
29704
  init_SessionContext();
29641
29705
  init_i18n();
29642
29706
  import_react_query57 = require("@tanstack/react-query");
29643
29707
  import_lucide_react80 = require("lucide-react");
29644
- import_react98 = require("react");
29708
+ import_react99 = require("react");
29645
29709
  init_useLayoutDataStore();
29646
29710
  init_Expandable2();
29647
29711
  init_Onboarding();
@@ -29981,7 +30045,7 @@ var init_PageMap = __esm({
29981
30045
  // src/internal/hooks/usePageMapper.tsx
29982
30046
  function usePageMapper() {
29983
30047
  const page = useLayoutDataStore((st) => st.page);
29984
- const closeDialog = (0, import_react99.useCallback)(() => {
30048
+ const closeDialog = (0, import_react100.useCallback)(() => {
29985
30049
  useLayoutStore.setState({ isDialogAnimating: true });
29986
30050
  setTimeout(() => {
29987
30051
  useLayoutStore.setState({
@@ -29993,14 +30057,14 @@ function usePageMapper() {
29993
30057
  });
29994
30058
  }, CLEAR_DIALOG_TIMEOUT);
29995
30059
  }, []);
29996
- const openDialog = (0, import_react99.useCallback)((pageItem) => {
30060
+ const openDialog = (0, import_react100.useCallback)((pageItem) => {
29997
30061
  useLayoutStore.setState({
29998
30062
  dialogContent: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(pageItem.component, {}),
29999
30063
  isDialogOpen: true
30000
30064
  // isDialogAnimating: true
30001
30065
  });
30002
30066
  }, []);
30003
- (0, import_react99.useEffect)(() => {
30067
+ (0, import_react100.useEffect)(() => {
30004
30068
  if (page === null) return closeDialog();
30005
30069
  const pageItem = PAGE_MAP[page];
30006
30070
  if (!pageItem) {
@@ -30011,10 +30075,10 @@ function usePageMapper() {
30011
30075
  openDialog(pageItem);
30012
30076
  }, [page, closeDialog, openDialog]);
30013
30077
  }
30014
- var import_react99, import_jsx_runtime130, CLEAR_DIALOG_TIMEOUT;
30078
+ var import_react100, import_jsx_runtime130, CLEAR_DIALOG_TIMEOUT;
30015
30079
  var init_usePageMapper = __esm({
30016
30080
  "src/internal/hooks/usePageMapper.tsx"() {
30017
- import_react99 = require("react");
30081
+ import_react100 = require("react");
30018
30082
  init_PageMap();
30019
30083
  init_constants();
30020
30084
  init_useLayoutDataStore();
@@ -30030,24 +30094,24 @@ function useSettingsNotifications() {
30030
30094
  const providers = import_auth25.jwtTokenManager.getProviders();
30031
30095
  const hasEmail = providers.includes("email");
30032
30096
  const { data: userProfile = null } = useUserProfile();
30033
- (0, import_react100.useEffect)(() => {
30097
+ (0, import_react101.useEffect)(() => {
30034
30098
  const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
30035
30099
  setSettingsNotifications({
30036
30100
  ...COMPLETE_KYC_PROGRESS,
30037
30101
  status: isKYCVerified ? "resolved" : "active"
30038
30102
  });
30039
30103
  }, [userProfile, setSettingsNotifications]);
30040
- (0, import_react100.useEffect)(() => {
30104
+ (0, import_react101.useEffect)(() => {
30041
30105
  setSettingsNotifications({
30042
30106
  ...EMAIL_NOT_CONNECTED_NOTIFICATION,
30043
30107
  status: hasEmail ? "resolved" : "active"
30044
30108
  });
30045
30109
  }, [hasEmail, setSettingsNotifications]);
30046
30110
  }
30047
- var import_react100, EMAIL_NOT_CONNECTED_NOTIFICATION, COMPLETE_KYC_PROGRESS;
30111
+ var import_react101, EMAIL_NOT_CONNECTED_NOTIFICATION, COMPLETE_KYC_PROGRESS;
30048
30112
  var init_useSettingsNotifications = __esm({
30049
30113
  "src/internal/hooks/useSettingsNotifications.ts"() {
30050
- import_react100 = require("react");
30114
+ import_react101 = require("react");
30051
30115
  init_auth();
30052
30116
  init_useLayoutDataStore();
30053
30117
  init_useUserProfile();
@@ -30070,7 +30134,7 @@ var init_package = __esm({
30070
30134
  "package.json"() {
30071
30135
  package_default = {
30072
30136
  name: "@embarkai/ui-kit",
30073
- version: "0.4.114",
30137
+ version: "0.4.115",
30074
30138
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
30075
30139
  type: "module",
30076
30140
  main: "./dist/index.cjs",
@@ -30181,7 +30245,7 @@ function Footer() {
30181
30245
  const address = useSession((st) => st.address);
30182
30246
  const chainConfig = useSession((st) => st.chainConfig);
30183
30247
  const isDialogForced = useLayoutStore((st) => st.isDialogForced);
30184
- const { mutate: wagmiDisconnect } = (0, import_wagmi9.useDisconnect)({
30248
+ const { mutate: wagmiDisconnect } = useSafeDisconnect({
30185
30249
  mutation: {
30186
30250
  onSuccess: () => {
30187
30251
  useExternalWalletStore.getState().clearExternalWallet();
@@ -30287,7 +30351,7 @@ function Footer() {
30287
30351
  }
30288
30352
  );
30289
30353
  }
30290
- var import_react_query59, import_lucide_react83, import_wagmi9, import_jsx_runtime131, FOOTER_ONBOARDING_CHAIN_BUTTON, FOOTER_ONBOARDING_LOGOUT_BUTTON, FOOTER_TOUR;
30354
+ var import_react_query59, import_lucide_react83, import_jsx_runtime131, FOOTER_ONBOARDING_CHAIN_BUTTON, FOOTER_ONBOARDING_LOGOUT_BUTTON, FOOTER_TOUR;
30291
30355
  var init_Footer = __esm({
30292
30356
  "src/internal/components/Footer/Footer.tsx"() {
30293
30357
  init_package();
@@ -30295,9 +30359,9 @@ var init_Footer = __esm({
30295
30359
  init_ProviderContext();
30296
30360
  init_SessionContext();
30297
30361
  init_i18n();
30362
+ init_useSafeDisconnect();
30298
30363
  import_react_query59 = require("@tanstack/react-query");
30299
30364
  import_lucide_react83 = require("lucide-react");
30300
- import_wagmi9 = require("wagmi");
30301
30365
  init_auth();
30302
30366
  init_base3();
30303
30367
  init_useLayoutDataStore();
@@ -30405,11 +30469,11 @@ function Header() {
30405
30469
  const embarkPage = useLayoutDataStore((st) => st.page);
30406
30470
  const isOnboardingTourAvailable = useOnboardingStore((st) => st.isTourAvailable);
30407
30471
  const proMode = useProMode();
30408
- const [proToast, setProToast] = (0, import_react101.useState)(false);
30409
- const [copied, setCopied] = (0, import_react101.useState)(false);
30410
- const clickCountRef = (0, import_react101.useRef)(0);
30411
- const clickTimerRef = (0, import_react101.useRef)(null);
30412
- const handleAvatarClick = (0, import_react101.useCallback)(() => {
30472
+ const [proToast, setProToast] = (0, import_react102.useState)(false);
30473
+ const [copied, setCopied] = (0, import_react102.useState)(false);
30474
+ const clickCountRef = (0, import_react102.useRef)(0);
30475
+ const clickTimerRef = (0, import_react102.useRef)(null);
30476
+ const handleAvatarClick = (0, import_react102.useCallback)(() => {
30413
30477
  clickCountRef.current += 1;
30414
30478
  if (clickTimerRef.current) {
30415
30479
  clearTimeout(clickTimerRef.current);
@@ -30515,7 +30579,7 @@ function Header() {
30515
30579
  }
30516
30580
  );
30517
30581
  }
30518
- var import_lucide_react84, import_react101, import_jsx_runtime132;
30582
+ var import_lucide_react84, import_react102, import_jsx_runtime132;
30519
30583
  var init_Header = __esm({
30520
30584
  "src/internal/components/Header/Header.tsx"() {
30521
30585
  init_lumia2();
@@ -30523,7 +30587,7 @@ var init_Header = __esm({
30523
30587
  init_ProviderContext();
30524
30588
  init_SessionContext();
30525
30589
  import_lucide_react84 = require("lucide-react");
30526
- import_react101 = require("react");
30590
+ import_react102 = require("react");
30527
30591
  init_icons();
30528
30592
  init_auth();
30529
30593
  init_useLayoutDataStore();
@@ -30558,7 +30622,7 @@ function useDecideContentStyles() {
30558
30622
  style: (0, import_lodash_es17.merge)({}, mobileStyles)
30559
30623
  };
30560
30624
  }
30561
- var DialogPrimitive, import_lodash_es17, import_lucide_react85, import_react102, import_jsx_runtime133, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
30625
+ var DialogPrimitive, import_lodash_es17, import_lucide_react85, import_react103, import_jsx_runtime133, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
30562
30626
  var init_dialog = __esm({
30563
30627
  "src/internal/components/ui/dialog.tsx"() {
30564
30628
  init_utils();
@@ -30567,14 +30631,14 @@ var init_dialog = __esm({
30567
30631
  DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
30568
30632
  import_lodash_es17 = require("lodash-es");
30569
30633
  import_lucide_react85 = require("lucide-react");
30570
- import_react102 = require("react");
30634
+ import_react103 = require("react");
30571
30635
  init_useLayoutDataStore();
30572
30636
  init_useLayoutStore();
30573
30637
  init_button();
30574
30638
  import_jsx_runtime133 = require("react/jsx-runtime");
30575
30639
  Dialog = DialogPrimitive.Root;
30576
30640
  DialogPortal = DialogPrimitive.Portal;
30577
- DialogOverlay = (0, import_react102.forwardRef)(
30641
+ DialogOverlay = (0, import_react103.forwardRef)(
30578
30642
  ({ className, closing, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
30579
30643
  DialogPrimitive.Overlay,
30580
30644
  {
@@ -30596,7 +30660,7 @@ var init_dialog = __esm({
30596
30660
  border: "1px solid var(--ui-kit-bd)",
30597
30661
  boxShadow: "var(--ui-kit-shadow, 0px 4px 10px var(--ui-kit-shadow-c, rgba(0, 0, 0, 0.1)))"
30598
30662
  };
30599
- DialogContent = (0, import_react102.forwardRef)(
30663
+ DialogContent = (0, import_react103.forwardRef)(
30600
30664
  ({ className, children, colorMode, ...props }, ref) => {
30601
30665
  const { t, i18n } = useT();
30602
30666
  const isSessionLoading = useSession((st) => st.isLoading);
@@ -30707,7 +30771,7 @@ var init_dialog = __esm({
30707
30771
  DialogHeader.displayName = "DialogHeader";
30708
30772
  DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: cn2("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
30709
30773
  DialogFooter.displayName = "DialogFooter";
30710
- DialogTitle = (0, import_react102.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
30774
+ DialogTitle = (0, import_react103.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
30711
30775
  DialogPrimitive.Title,
30712
30776
  {
30713
30777
  ref,
@@ -30716,7 +30780,7 @@ var init_dialog = __esm({
30716
30780
  }
30717
30781
  ));
30718
30782
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
30719
- DialogDescription = (0, import_react102.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DialogPrimitive.Description, { ref, className: cn2("text-sm text-muted-foreground", className), ...props }));
30783
+ DialogDescription = (0, import_react103.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DialogPrimitive.Description, { ref, className: cn2("text-sm text-muted-foreground", className), ...props }));
30720
30784
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
30721
30785
  }
30722
30786
  });
@@ -30739,7 +30803,7 @@ function Dialog2() {
30739
30803
  const { colorMode, maxScrollHeight, isDialogOpen, dialogContent, isDialogForced } = useLayoutStore();
30740
30804
  const page = useLayoutDataStore((st) => st.page);
30741
30805
  const transitionPageHeight = useLayoutDataStore((st) => st.transitionPageHeight);
30742
- (0, import_react104.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
30806
+ (0, import_react105.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
30743
30807
  usePageMapper();
30744
30808
  useAutoConnect();
30745
30809
  useBackupStatusChanges();
@@ -30770,8 +30834,8 @@ function Dialog2() {
30770
30834
  /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogTitle, { children: "embarkAI" }) }),
30771
30835
  /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogDescription, { className: "sr-only", children: "embarkAI wallet" }),
30772
30836
  !isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Header, {}),
30773
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_react103.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
30774
- import_react103.motion.div,
30837
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_react104.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
30838
+ import_react104.motion.div,
30775
30839
  {
30776
30840
  style: { overflow: "hidden" },
30777
30841
  initial: { opacity: 0, height: transitionPageHeight },
@@ -30800,13 +30864,13 @@ function Dialog2() {
30800
30864
  }
30801
30865
  );
30802
30866
  }
30803
- var import_react103, import_react104, import_jsx_runtime135;
30867
+ var import_react104, import_react105, import_jsx_runtime135;
30804
30868
  var init_Dialog = __esm({
30805
30869
  "src/internal/components/Dialog/Dialog.tsx"() {
30806
30870
  init_ProviderContext();
30807
30871
  init_SessionContext();
30808
- import_react103 = require("motion/react");
30809
- import_react104 = require("react");
30872
+ import_react104 = require("motion/react");
30873
+ import_react105 = require("react");
30810
30874
  init_constants();
30811
30875
  init_useAllowExternalModalsScroll();
30812
30876
  init_useAutoConnect();
@@ -30840,13 +30904,13 @@ function DirectWalletHandler() {
30840
30904
  const externalChainId = useExternalWalletStore((st) => st.externalChainId);
30841
30905
  const externalConnectorName = useExternalWalletStore((st) => st.connectorName);
30842
30906
  const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
30843
- const { address, isConnected, chainId, connector } = (0, import_wagmi10.useConnection)();
30844
- (0, import_react105.useEffect)(() => {
30907
+ const { address, isConnected, chainId, connector } = (0, import_wagmi8.useConnection)();
30908
+ (0, import_react106.useEffect)(() => {
30845
30909
  const { setConfigMode, setActiveMode } = useExternalWalletStore.getState();
30846
30910
  setConfigMode(walletMode);
30847
30911
  if (walletMode !== "both") setActiveMode(walletMode);
30848
30912
  }, [walletMode]);
30849
- (0, import_react105.useEffect)(() => {
30913
+ (0, import_react106.useEffect)(() => {
30850
30914
  if ((!!externalAddress || isExternalConnected) && !isConnected) {
30851
30915
  useExternalWalletStore.getState().clearExternalWallet();
30852
30916
  return;
@@ -30868,25 +30932,25 @@ function DirectWalletHandler() {
30868
30932
  ]);
30869
30933
  return null;
30870
30934
  }
30871
- var import_react105, import_wagmi10;
30935
+ var import_react106, import_wagmi8;
30872
30936
  var init_DirectWalletHandler = __esm({
30873
30937
  "src/internal/components/DirectWalletHandler.tsx"() {
30874
- import_react105 = require("react");
30875
- import_wagmi10 = require("wagmi");
30938
+ import_react106 = require("react");
30939
+ import_wagmi8 = require("wagmi");
30876
30940
  init_ProviderContext();
30877
30941
  init_useExternalWalletStore();
30878
30942
  }
30879
30943
  });
30880
30944
 
30881
30945
  // src/internal/components/TssManager.tsx
30882
- var import_react106, TssManagerWithRef;
30946
+ var import_react107, TssManagerWithRef;
30883
30947
  var init_TssManager = __esm({
30884
30948
  "src/internal/components/TssManager.tsx"() {
30885
30949
  init_SessionContext();
30886
- import_react106 = __toESM(require("react"), 1);
30950
+ import_react107 = __toESM(require("react"), 1);
30887
30951
  init_auth();
30888
30952
  init_clients();
30889
- TssManagerWithRef = import_react106.default.forwardRef((props, ref) => {
30953
+ TssManagerWithRef = import_react107.default.forwardRef((props, ref) => {
30890
30954
  const { mpcPin } = props;
30891
30955
  const usePaymaster = useSession((st) => st.usePaymaster);
30892
30956
  const publicClient = useSession((st) => st.publicClient);
@@ -30894,14 +30958,14 @@ var init_TssManager = __esm({
30894
30958
  const setStatus = useSession((st) => st.setStatus);
30895
30959
  const setSession = useSession((st) => st.setSession);
30896
30960
  const setAddress = useSession((st) => st.setAddress);
30897
- const onSessionCreated = (0, import_react106.useCallback)(
30961
+ const onSessionCreated = (0, import_react107.useCallback)(
30898
30962
  (session, address) => {
30899
30963
  setSession(session);
30900
30964
  setAddress(address);
30901
30965
  },
30902
30966
  [setSession, setAddress]
30903
30967
  );
30904
- const createSessionWithKeyshare = import_react106.default.useCallback(
30968
+ const createSessionWithKeyshare = import_react107.default.useCallback(
30905
30969
  async (userId, hasServerKeyshare, isNewUser) => {
30906
30970
  setStatus("checking key management setup...");
30907
30971
  await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
@@ -30926,7 +30990,7 @@ var init_TssManager = __esm({
30926
30990
  },
30927
30991
  [setStatus, usePaymaster, activeChainId, publicClient, mpcPin]
30928
30992
  );
30929
- import_react106.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
30993
+ import_react107.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
30930
30994
  return null;
30931
30995
  });
30932
30996
  }
@@ -30950,7 +31014,7 @@ function waitForStoreHydration() {
30950
31014
  }
30951
31015
  function SessionProvider({ children }) {
30952
31016
  const config = useProviderConfig().config;
30953
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_react107.Fragment, {
31017
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_react108.Fragment, {
30954
31018
  /** dApp's router might have its own error boundaries setup via imported @embarkai/ui-kitErrorBoundary */
30955
31019
  children: [
30956
31020
  children,
@@ -30970,11 +31034,11 @@ function SessionProvider({ children }) {
30970
31034
  ]
30971
31035
  });
30972
31036
  }
30973
- var import_read22, import_react107, import_zustand19, import_middleware5, import_jsx_runtime136, useSession, requireActiveChainId;
31037
+ var import_read22, import_react108, import_zustand19, import_middleware5, import_jsx_runtime136, useSession, requireActiveChainId;
30974
31038
  var init_SessionContext = __esm({
30975
31039
  "src/context/SessionContext.tsx"() {
30976
31040
  import_read22 = require("@embarkai/core/read");
30977
- import_react107 = require("react");
31041
+ import_react108 = require("react");
30978
31042
  import_zustand19 = require("zustand");
30979
31043
  import_middleware5 = require("zustand/middleware");
30980
31044
  init_ErrorBoundary2();
@@ -32324,7 +32388,7 @@ var init_iframe_manager = __esm({
32324
32388
  */
32325
32389
  handleMessage(event) {
32326
32390
  const message = event.data;
32327
- if (!message || typeof message !== "object" || !message.type) {
32391
+ if (!message || typeof message !== "object" || typeof message.type !== "string" || !message.type) {
32328
32392
  return;
32329
32393
  }
32330
32394
  message.type = this.normalizeMessageType(message.type);
@@ -33429,11 +33493,11 @@ function clearLegacyWagmiStorage() {
33429
33493
  }
33430
33494
  function Provider(props) {
33431
33495
  const { children, projectId, initialConfig = {}, callbacks } = props;
33432
- const callbacksRef = (0, import_react108.useRef)(callbacks);
33433
- (0, import_react108.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
33434
- const config = (0, import_react108.useRef)((0, import_lodash_es18.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
33435
- const wagmiConfig3 = (0, import_react108.useRef)((0, import_core9.getWagmiConfig)(config.current?.wallet?.walletConnectId || null));
33436
- const updateConfig = (0, import_react108.useCallback)((updates) => {
33496
+ const callbacksRef = (0, import_react109.useRef)(callbacks);
33497
+ (0, import_react109.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
33498
+ const config = (0, import_react109.useRef)((0, import_lodash_es18.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
33499
+ const wagmiConfig3 = (0, import_react109.useRef)((0, import_core9.getWagmiConfig)(config.current?.wallet?.walletConnectId || null));
33500
+ const updateConfig = (0, import_react109.useCallback)((updates) => {
33437
33501
  const prev = config.current;
33438
33502
  const next = { ...prev };
33439
33503
  if (updates.projectId !== void 0) next.projectId = updates.projectId;
@@ -33467,12 +33531,12 @@ function Provider(props) {
33467
33531
  if (updates.translations) next.translations = { ...next.translations, ...updates.translations };
33468
33532
  config.current = next;
33469
33533
  }, []);
33470
- const updateCallbacks = (0, import_react108.useCallback)((updates) => {
33534
+ const updateCallbacks = (0, import_react109.useCallback)((updates) => {
33471
33535
  const prev = callbacksRef.current;
33472
33536
  const next = updates ? { ...prev, ...updates } : void 0;
33473
33537
  callbacksRef.current = next;
33474
33538
  }, []);
33475
- (0, import_react108.useEffect)(() => {
33539
+ (0, import_react109.useEffect)(() => {
33476
33540
  if (typeof window === "undefined" || !projectId) return;
33477
33541
  const mergedConfig = (0, import_lodash_es18.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
33478
33542
  updateConfig(mergedConfig);
@@ -33492,7 +33556,7 @@ function Provider(props) {
33492
33556
  useSession.getState().setActiveChainId(mergedConfig.network.chainId);
33493
33557
  }
33494
33558
  }, [projectId, initialConfig]);
33495
- (0, import_react108.useEffect)(() => {
33559
+ (0, import_react109.useEffect)(() => {
33496
33560
  if (typeof window === "undefined" || !projectId) return;
33497
33561
  try {
33498
33562
  (0, import_error_tracking4.initSdkErrorTracking)();
@@ -33521,7 +33585,7 @@ function Provider(props) {
33521
33585
  console.error("[PROVIDER] Error setting up iframe manager:", error);
33522
33586
  }
33523
33587
  }, [projectId]);
33524
- const contextValue = (0, import_react108.useMemo)(
33588
+ const contextValue = (0, import_react109.useMemo)(
33525
33589
  () => ({
33526
33590
  config,
33527
33591
  updateConfig,
@@ -33532,24 +33596,24 @@ function Provider(props) {
33532
33596
  }),
33533
33597
  [config, updateConfig, callbacks, updateCallbacks]
33534
33598
  );
33535
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_wagmi11.WagmiProvider, { config: wagmiConfig3.current, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(SessionProvider, { children }) }) });
33599
+ return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_wagmi9.WagmiProvider, { config: wagmiConfig3.current, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(SessionProvider, { children }) }) });
33536
33600
  }
33537
- var import_core9, import_error_tracking4, import_lodash_es18, import_react108, import_wagmi11, import_jsx_runtime137, UIContext, useProviderConfig;
33601
+ var import_core9, import_error_tracking4, import_lodash_es18, import_react109, import_wagmi9, import_jsx_runtime137, UIContext, useProviderConfig;
33538
33602
  var init_ProviderContext = __esm({
33539
33603
  "src/context/ProviderContext.tsx"() {
33540
33604
  import_core9 = require("@embarkai/core");
33541
33605
  import_error_tracking4 = require("@embarkai/core/internal/error-tracking");
33542
33606
  import_lodash_es18 = require("lodash-es");
33543
- import_react108 = require("react");
33544
- import_wagmi11 = require("wagmi");
33607
+ import_react109 = require("react");
33608
+ import_wagmi9 = require("wagmi");
33545
33609
  init_initial();
33546
33610
  init_iframe_manager();
33547
33611
  init_SessionContext();
33548
33612
  init_utils14();
33549
33613
  import_jsx_runtime137 = require("react/jsx-runtime");
33550
- UIContext = (0, import_react108.createContext)(void 0);
33614
+ UIContext = (0, import_react109.createContext)(void 0);
33551
33615
  useProviderConfig = () => {
33552
- const ctx = (0, import_react108.useContext)(UIContext);
33616
+ const ctx = (0, import_react109.useContext)(UIContext);
33553
33617
  if (!ctx) throw new Error("useProviderConfig must be used within a Provider");
33554
33618
  return ctx;
33555
33619
  };
@@ -33672,7 +33736,7 @@ init_ErrorBoundary2();
33672
33736
  init_lumia2();
33673
33737
  init_embarkAI2();
33674
33738
  var import_lucide_react86 = require("lucide-react");
33675
- var import_react109 = require("react");
33739
+ var import_react110 = require("react");
33676
33740
  init_SessionContext();
33677
33741
  init_auth();
33678
33742
  init_BalanceView2();
@@ -33705,10 +33769,10 @@ function ConnectWalletButton(props) {
33705
33769
  const colorMode = useLayoutStore((st) => st.colorMode);
33706
33770
  const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
33707
33771
  const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
33708
- (0, import_react109.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
33772
+ (0, import_react110.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
33709
33773
  const { data: profile, isLoading: isProfileLoading } = useUserProfile();
33710
33774
  const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth25.jwtTokenManager.getDisplayName();
33711
- const indicators = (0, import_react109.useMemo)(() => {
33775
+ const indicators = (0, import_react110.useMemo)(() => {
33712
33776
  const userId = session?.mpcUserId;
33713
33777
  if (!userId) return { server: false, local: false, backup: false };
33714
33778
  const server = import_auth25.jwtTokenManager.getHasKeyshare() ?? false;
@@ -34347,14 +34411,14 @@ var Hash = ({
34347
34411
  };
34348
34412
 
34349
34413
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
34350
- var import_react110 = require("react");
34414
+ var import_react111 = require("react");
34351
34415
  init_base3();
34352
34416
  var import_jsx_runtime144 = require("react/jsx-runtime");
34353
34417
  var TransactionsList = ({ address, itemsCount = 10 }) => {
34354
- const [transactions, setTransactions] = (0, import_react110.useState)([]);
34355
- const [loading, setLoading] = (0, import_react110.useState)(true);
34356
- const [error, setError] = (0, import_react110.useState)(null);
34357
- (0, import_react110.useEffect)(() => {
34418
+ const [transactions, setTransactions] = (0, import_react111.useState)([]);
34419
+ const [loading, setLoading] = (0, import_react111.useState)(true);
34420
+ const [error, setError] = (0, import_react111.useState)(null);
34421
+ (0, import_react111.useEffect)(() => {
34358
34422
  const fetchTransactions2 = async () => {
34359
34423
  try {
34360
34424
  setLoading(true);
@@ -34645,13 +34709,13 @@ function useUserOpStatus(options = {}) {
34645
34709
  init_useErc3643Compliance();
34646
34710
 
34647
34711
  // src/hooks/useWalletMode.ts
34648
- var import_react111 = require("react");
34712
+ var import_react112 = require("react");
34649
34713
  init_useExternalWalletStore();
34650
34714
  function useWalletMode() {
34651
34715
  const configMode = useExternalWalletStore((st) => st.configMode);
34652
34716
  const activeMode = useExternalWalletStore((st) => st.activeMode);
34653
34717
  const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
34654
- const switchMode = (0, import_react111.useCallback)(
34718
+ const switchMode = (0, import_react112.useCallback)(
34655
34719
  (mode) => {
34656
34720
  if (configMode !== "both") return;
34657
34721
  setActiveMode(mode);
@@ -34668,8 +34732,8 @@ function useWalletMode() {
34668
34732
 
34669
34733
  // src/hooks/useDirectWallet.ts
34670
34734
  init_useOpenPage();
34671
- var import_react112 = require("react");
34672
- var import_wagmi12 = require("wagmi");
34735
+ init_useSafeDisconnect();
34736
+ var import_react113 = require("react");
34673
34737
  init_useExternalWalletStore();
34674
34738
  function useDirectWallet() {
34675
34739
  const address = useExternalWalletStore((st) => st.externalAddress);
@@ -34677,11 +34741,11 @@ function useDirectWallet() {
34677
34741
  const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
34678
34742
  const connectorName = useExternalWalletStore((st) => st.connectorName);
34679
34743
  const { open: openEmbarkAI } = useOpenPage();
34680
- const { mutate: wagmiDisconnect } = (0, import_wagmi12.useDisconnect)();
34681
- const connect = (0, import_react112.useCallback)((connectFlowType = "connect") => {
34744
+ const { mutate: wagmiDisconnect } = useSafeDisconnect();
34745
+ const connect = (0, import_react113.useCallback)((connectFlowType = "connect") => {
34682
34746
  openEmbarkAI("connect-external-wallet" /* CONNECT_EXTERNAL_WALLET */, { connectFlowType });
34683
34747
  }, []);
34684
- const disconnect = (0, import_react112.useCallback)(() => {
34748
+ const disconnect = (0, import_react113.useCallback)(() => {
34685
34749
  wagmiDisconnect();
34686
34750
  useExternalWalletStore.getState().clearExternalWallet();
34687
34751
  }, [wagmiDisconnect]);
@@ -34697,9 +34761,9 @@ function useDirectWallet() {
34697
34761
  }
34698
34762
 
34699
34763
  // src/hooks/useSendDirectTransaction.ts
34700
- var import_react113 = require("react");
34764
+ var import_react114 = require("react");
34701
34765
  var import_viem23 = require("viem");
34702
- var import_wagmi13 = require("wagmi");
34766
+ var import_wagmi10 = require("wagmi");
34703
34767
 
34704
34768
  // src/internal/lib/direct-transaction.ts
34705
34769
  async function submitDirectTransaction(request, deps) {
@@ -34717,13 +34781,13 @@ async function submitDirectTransaction(request, deps) {
34717
34781
  init_useExternalWalletStore();
34718
34782
  function useSendDirectTransaction() {
34719
34783
  const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
34720
- const { connector } = (0, import_wagmi13.useConnection)();
34721
- const { sendTransactionAsync: sendWagmiTransactionAsync } = (0, import_wagmi13.useSendTransaction)();
34722
- const { switchChainAsync } = (0, import_wagmi13.useSwitchChain)();
34723
- const [isPending, setIsPending] = (0, import_react113.useState)(false);
34724
- const [error, setError] = (0, import_react113.useState)(null);
34725
- const [txHash, setTxHash] = (0, import_react113.useState)(null);
34726
- const sendTransactionAsync = (0, import_react113.useCallback)(
34784
+ const { connector } = (0, import_wagmi10.useConnection)();
34785
+ const { sendTransactionAsync: sendWagmiTransactionAsync } = (0, import_wagmi10.useSendTransaction)();
34786
+ const { switchChainAsync } = (0, import_wagmi10.useSwitchChain)();
34787
+ const [isPending, setIsPending] = (0, import_react114.useState)(false);
34788
+ const [error, setError] = (0, import_react114.useState)(null);
34789
+ const [txHash, setTxHash] = (0, import_react114.useState)(null);
34790
+ const sendTransactionAsync = (0, import_react114.useCallback)(
34727
34791
  async (params) => {
34728
34792
  if (!isConnected || !connector) {
34729
34793
  const message = "No external wallet connected";
@@ -34760,7 +34824,7 @@ function useSendDirectTransaction() {
34760
34824
  },
34761
34825
  [isConnected, connector, sendWagmiTransactionAsync, switchChainAsync]
34762
34826
  );
34763
- const sendTransaction = (0, import_react113.useCallback)(
34827
+ const sendTransaction = (0, import_react114.useCallback)(
34764
34828
  async (params) => {
34765
34829
  try {
34766
34830
  return await sendTransactionAsync(params);
@@ -34770,7 +34834,7 @@ function useSendDirectTransaction() {
34770
34834
  },
34771
34835
  [sendTransactionAsync]
34772
34836
  );
34773
- const reset = (0, import_react113.useCallback)(() => {
34837
+ const reset = (0, import_react114.useCallback)(() => {
34774
34838
  setError(null);
34775
34839
  setTxHash(null);
34776
34840
  setIsPending(false);
@@ -34779,7 +34843,7 @@ function useSendDirectTransaction() {
34779
34843
  }
34780
34844
 
34781
34845
  // src/hooks/useTransferToLinkedWallet.ts
34782
- var import_react114 = require("react");
34846
+ var import_react115 = require("react");
34783
34847
  var import_viem24 = require("viem");
34784
34848
  init_SessionContext();
34785
34849
  init_account2();
@@ -34798,14 +34862,14 @@ var ERC20_TRANSFER_ABI2 = [
34798
34862
  function useTransferToLinkedWallet() {
34799
34863
  const session = useSession((st) => st.session);
34800
34864
  const { profiles } = useLinkedProfiles();
34801
- const [isPending, setIsPending] = (0, import_react114.useState)(false);
34802
- const [error, setError] = (0, import_react114.useState)(null);
34803
- const [userOpHash, setUserOpHash] = (0, import_react114.useState)(null);
34804
- const linkedWallets = (0, import_react114.useMemo)(
34865
+ const [isPending, setIsPending] = (0, import_react115.useState)(false);
34866
+ const [error, setError] = (0, import_react115.useState)(null);
34867
+ const [userOpHash, setUserOpHash] = (0, import_react115.useState)(null);
34868
+ const linkedWallets = (0, import_react115.useMemo)(
34805
34869
  () => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
34806
34870
  [profiles]
34807
34871
  );
34808
- const transfer = (0, import_react114.useCallback)(
34872
+ const transfer = (0, import_react115.useCallback)(
34809
34873
  async (params) => {
34810
34874
  if (!session) {
34811
34875
  setError("No active session");
@@ -34856,7 +34920,7 @@ function useTransferToLinkedWallet() {
34856
34920
  },
34857
34921
  [session, linkedWallets]
34858
34922
  );
34859
- const reset = (0, import_react114.useCallback)(() => {
34923
+ const reset = (0, import_react115.useCallback)(() => {
34860
34924
  setError(null);
34861
34925
  setUserOpHash(null);
34862
34926
  setIsPending(false);
@@ -34865,11 +34929,11 @@ function useTransferToLinkedWallet() {
34865
34929
  }
34866
34930
 
34867
34931
  // src/hooks/useNativeWalletSignature.ts
34868
- var import_wagmi14 = require("wagmi");
34932
+ var import_wagmi11 = require("wagmi");
34869
34933
  init_providers();
34870
34934
  function useNativeWalletSignature() {
34871
- const signMessage = (0, import_wagmi14.useSignMessage)();
34872
- const signTypedMessage = (0, import_wagmi14.useSignTypedData)();
34935
+ const signMessage = (0, import_wagmi11.useSignMessage)();
34936
+ const signTypedMessage = (0, import_wagmi11.useSignTypedData)();
34873
34937
  return {
34874
34938
  signMessage,
34875
34939
  /** EIP-712 signature */
@@ -34879,16 +34943,16 @@ function useNativeWalletSignature() {
34879
34943
  }
34880
34944
 
34881
34945
  // src/hooks/useLogout.ts
34946
+ init_useSafeDisconnect();
34882
34947
  var import_auth27 = require("@embarkai/core/auth");
34883
- var import_react115 = require("react");
34884
- var import_wagmi15 = require("wagmi");
34948
+ var import_react116 = require("react");
34885
34949
  init_ProviderContext();
34886
34950
  init_SessionContext();
34887
34951
  init_useExternalWalletStore();
34888
34952
  function useLogout() {
34889
34953
  const { callbacksRef } = useProviderConfig();
34890
34954
  const address = useSession((st) => st.address);
34891
- const { mutate: wagmiDisconnect } = (0, import_wagmi15.useDisconnect)({
34955
+ const { mutate: wagmiDisconnect } = useSafeDisconnect({
34892
34956
  mutation: {
34893
34957
  onSuccess: () => {
34894
34958
  useExternalWalletStore.getState().clearExternalWallet();
@@ -34899,7 +34963,7 @@ function useLogout() {
34899
34963
  }
34900
34964
  }
34901
34965
  });
34902
- const logout2 = (0, import_react115.useCallback)(async () => {
34966
+ const logout2 = (0, import_react116.useCallback)(async () => {
34903
34967
  const { setSession, setIsLoading, setAddress, setStatus, setError } = useSession.getState();
34904
34968
  const prevAddress = address;
34905
34969
  let userId = null;
@@ -34954,13 +35018,13 @@ init_useBlockscoutAssets2();
34954
35018
  init_SessionContext();
34955
35019
  var import_read24 = require("@embarkai/core/read");
34956
35020
  var import_viem25 = require("viem");
34957
- var import_wagmi16 = require("wagmi");
35021
+ var import_wagmi12 = require("wagmi");
34958
35022
  function useTransactions() {
34959
35023
  const chainId = requireActiveChainId();
34960
35024
  const viemChain = (0, import_read24.getViemChain)(chainId);
34961
- const publicClient = (0, import_wagmi16.usePublicClient)({ chainId });
34962
- const { data: walletClient } = (0, import_wagmi16.useWalletClient)();
34963
- const { address } = (0, import_wagmi16.useAccount)();
35025
+ const publicClient = (0, import_wagmi12.usePublicClient)({ chainId });
35026
+ const { data: walletClient } = (0, import_wagmi12.useWalletClient)();
35027
+ const { address } = (0, import_wagmi12.useAccount)();
34964
35028
  const sendTransaction = async (params) => {
34965
35029
  if (!walletClient) {
34966
35030
  throw new Error("Wallet not connected");
@@ -35018,9 +35082,9 @@ function useTransactions() {
35018
35082
 
35019
35083
  // src/modules/assets.ts
35020
35084
  init_SessionContext();
35021
- var import_react116 = __toESM(require("react"), 1);
35085
+ var import_react117 = __toESM(require("react"), 1);
35022
35086
  var import_viem26 = require("viem");
35023
- var import_wagmi17 = require("wagmi");
35087
+ var import_wagmi13 = require("wagmi");
35024
35088
  var COMMON_TOKENS = [
35025
35089
  // Add real token addresses here when available
35026
35090
  // {
@@ -35037,7 +35101,7 @@ function useAssets(address) {
35037
35101
  data: nativeBalance,
35038
35102
  isLoading: nativeBalanceLoading,
35039
35103
  refetch: refetchNativeBalance
35040
- } = (0, import_wagmi17.useBalance)({
35104
+ } = (0, import_wagmi13.useBalance)({
35041
35105
  address,
35042
35106
  chainId,
35043
35107
  query: {
@@ -35055,7 +35119,7 @@ function useAssets(address) {
35055
35119
  data: tokenBalances,
35056
35120
  isLoading: tokenBalancesLoading,
35057
35121
  refetch: refetchTokenBalances
35058
- } = (0, import_wagmi17.useReadContracts)({
35122
+ } = (0, import_wagmi13.useReadContracts)({
35059
35123
  contracts: tokenContracts,
35060
35124
  query: {
35061
35125
  enabled: !!address && COMMON_TOKENS.length > 0
@@ -35131,7 +35195,7 @@ function useAssets(address) {
35131
35195
  }
35132
35196
  function useTokenInfo(tokenAddress) {
35133
35197
  const chainId = requireActiveChainId();
35134
- const readContractsResult = (0, import_wagmi17.useReadContracts)({
35198
+ const readContractsResult = (0, import_wagmi13.useReadContracts)({
35135
35199
  contracts: [
35136
35200
  { address: tokenAddress, abi: import_viem26.erc20Abi, functionName: "name", chainId },
35137
35201
  { address: tokenAddress, abi: import_viem26.erc20Abi, functionName: "symbol", chainId },
@@ -35162,7 +35226,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
35162
35226
  data: balance,
35163
35227
  isLoading,
35164
35228
  refetch
35165
- } = (0, import_wagmi17.useReadContract)({
35229
+ } = (0, import_wagmi13.useReadContract)({
35166
35230
  address: tokenAddress,
35167
35231
  abi: import_viem26.erc20Abi,
35168
35232
  functionName: "balanceOf",
@@ -35173,7 +35237,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
35173
35237
  }
35174
35238
  });
35175
35239
  const { tokenInfo } = useTokenInfo(tokenAddress);
35176
- const formattedBalance = import_react116.default.useMemo(() => {
35240
+ const formattedBalance = import_react117.default.useMemo(() => {
35177
35241
  if (!balance || !tokenInfo) return "0";
35178
35242
  return (0, import_viem26.formatUnits)(balance, tokenInfo.decimals);
35179
35243
  }, [balance, tokenInfo]);