@embarkai/ui-kit 0.4.35 → 0.4.37

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
@@ -15747,38 +15747,33 @@ var init_MainMenu2 = __esm({
15747
15747
  });
15748
15748
 
15749
15749
  // src/modules/linkedProfiles.ts
15750
- async function getLinkProfilesData() {
15751
- const list = await getLinkedProviders();
15752
- const loadedProfiles = list.map((p) => {
15753
- const info = getProviderDisplayInfo(p.provider);
15754
- return { ...p, displayName: info.name, icon: info.icon };
15755
- });
15756
- let avatar = null;
15757
- try {
15758
- avatar = import_auth20.jwtTokenManager.getAvatar() || null;
15759
- } catch {
15760
- avatar = null;
15761
- }
15762
- return { profiles: loadedProfiles, avatar };
15763
- }
15764
15750
  function useLinkedProfiles() {
15765
15751
  const qc = (0, import_react_query25.useQueryClient)();
15766
15752
  const address = useSession((st) => st.address);
15767
- const {
15768
- data,
15769
- isFetching: isLoading,
15770
- error
15771
- } = (0, import_react_query25.useQuery)({
15753
+ const { data, isFetching, isLoading, error } = (0, import_react_query25.useQuery)({
15772
15754
  retry: false,
15773
15755
  enabled: !!address,
15774
15756
  queryKey: [LINKED_PROFILES_QUERY_KEY, address],
15775
- queryFn: getLinkProfilesData
15757
+ queryFn: async () => {
15758
+ const list = await getLinkedProviders();
15759
+ const loadedProfiles = list.map((p) => {
15760
+ const info = getProviderDisplayInfo(p.provider);
15761
+ return { ...p, displayName: info.name, icon: info.icon };
15762
+ });
15763
+ let avatar2 = null;
15764
+ try {
15765
+ avatar2 = import_auth20.jwtTokenManager.getAvatar() || null;
15766
+ } catch {
15767
+ avatar2 = null;
15768
+ }
15769
+ return { profiles: loadedProfiles, avatar: avatar2 };
15770
+ }
15776
15771
  });
15777
15772
  const { profiles = [], avatar = null } = data || {};
15778
15773
  const refresh = (0, import_react46.useCallback)(async () => {
15779
15774
  await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
15780
15775
  }, [qc, address]);
15781
- return { profiles, avatar, isLoading, error, refresh };
15776
+ return { profiles, avatar, isLoading, isFetching, error, refresh };
15782
15777
  }
15783
15778
  var import_react_query25, import_react46, LINKED_PROFILES_QUERY_KEY;
15784
15779
  var init_linkedProfiles = __esm({
@@ -16798,11 +16793,44 @@ var init_ManageWallet = __esm({
16798
16793
  }
16799
16794
  });
16800
16795
 
16796
+ // src/internal/stores/useExternalWalletStore.ts
16797
+ var import_zustand8, useExternalWalletStore;
16798
+ var init_useExternalWalletStore = __esm({
16799
+ "src/internal/stores/useExternalWalletStore.ts"() {
16800
+ import_zustand8 = require("zustand");
16801
+ useExternalWalletStore = (0, import_zustand8.create)((set) => ({
16802
+ configMode: "linked",
16803
+ activeMode: "linked",
16804
+ externalAddress: null,
16805
+ externalChainId: null,
16806
+ isExternalConnected: false,
16807
+ connectorName: null,
16808
+ setConfigMode: (mode) => set({ configMode: mode }),
16809
+ setActiveMode: (mode) => set({ activeMode: mode }),
16810
+ setExternalWallet: ({ address, chainId, connectorName }) => set({
16811
+ externalAddress: address,
16812
+ externalChainId: chainId,
16813
+ isExternalConnected: true,
16814
+ connectorName
16815
+ }),
16816
+ clearExternalWallet: () => set({
16817
+ externalAddress: null,
16818
+ externalChainId: null,
16819
+ isExternalConnected: false,
16820
+ connectorName: null
16821
+ }),
16822
+ setExternalChainId: (chainId) => set({ externalChainId: chainId })
16823
+ }));
16824
+ }
16825
+ });
16826
+
16801
16827
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
16802
16828
  function UnlinkProviderMenu() {
16803
16829
  const qc = (0, import_react_query32.useQueryClient)();
16804
16830
  const address = useSession((st) => st.address);
16805
16831
  const { callbacksRef } = useProviderConfig();
16832
+ const { disconnect: disconnectExternalWallet } = (0, import_wagmi.useDisconnect)();
16833
+ const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
16806
16834
  const { t } = useT();
16807
16835
  const setPage = useLayoutDataStore((st) => st.setPage);
16808
16836
  const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
@@ -16813,6 +16841,13 @@ function UnlinkProviderMenu() {
16813
16841
  throw new Error("No provider to unlink");
16814
16842
  }
16815
16843
  const { provider, externalId } = confirmUnlink;
16844
+ if (provider === "wallet" && isExternalConnected) {
16845
+ await new Promise((resolve) => {
16846
+ disconnectExternalWallet();
16847
+ useExternalWalletStore.getState().clearExternalWallet();
16848
+ setTimeout(() => resolve(null), 1e3);
16849
+ });
16850
+ }
16816
16851
  await unlinkProvider(provider, externalId);
16817
16852
  },
16818
16853
  onSuccess: async () => {
@@ -16881,7 +16916,7 @@ function UnlinkProviderMenu() {
16881
16916
  ] })
16882
16917
  ] });
16883
16918
  }
16884
- var import_react_query32, import_lucide_react45, import_react50, import_jsx_runtime74;
16919
+ var import_react_query32, import_lucide_react45, import_react50, import_wagmi, import_jsx_runtime74;
16885
16920
  var init_UnlinkProviderMenu = __esm({
16886
16921
  "src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx"() {
16887
16922
  init_useLayoutDataStore();
@@ -16892,7 +16927,9 @@ var init_UnlinkProviderMenu = __esm({
16892
16927
  import_react_query32 = require("@tanstack/react-query");
16893
16928
  import_lucide_react45 = require("lucide-react");
16894
16929
  import_react50 = require("react");
16930
+ import_wagmi = require("wagmi");
16895
16931
  init_auth();
16932
+ init_useExternalWalletStore();
16896
16933
  init_button();
16897
16934
  init_input();
16898
16935
  init_useProvidersList();
@@ -19052,37 +19089,6 @@ var init_wallet = __esm({
19052
19089
  }
19053
19090
  });
19054
19091
 
19055
- // src/internal/stores/useExternalWalletStore.ts
19056
- var import_zustand8, useExternalWalletStore;
19057
- var init_useExternalWalletStore = __esm({
19058
- "src/internal/stores/useExternalWalletStore.ts"() {
19059
- import_zustand8 = require("zustand");
19060
- useExternalWalletStore = (0, import_zustand8.create)((set) => ({
19061
- configMode: "linked",
19062
- activeMode: "linked",
19063
- externalAddress: null,
19064
- externalChainId: null,
19065
- isExternalConnected: false,
19066
- connectorName: null,
19067
- setConfigMode: (mode) => set({ configMode: mode }),
19068
- setActiveMode: (mode) => set({ activeMode: mode }),
19069
- setExternalWallet: ({ address, chainId, connectorName }) => set({
19070
- externalAddress: address,
19071
- externalChainId: chainId,
19072
- isExternalConnected: true,
19073
- connectorName
19074
- }),
19075
- clearExternalWallet: () => set({
19076
- externalAddress: null,
19077
- externalChainId: null,
19078
- isExternalConnected: false,
19079
- connectorName: null
19080
- }),
19081
- setExternalChainId: (chainId) => set({ externalChainId: chainId })
19082
- }));
19083
- }
19084
- });
19085
-
19086
19092
  // src/internal/components/SendMenu/useFlowSelector.ts
19087
19093
  var import_zustand9, import_middleware2, useFlowSelectorStore;
19088
19094
  var init_useFlowSelector = __esm({
@@ -19228,15 +19234,15 @@ var init_useBridgeStore = __esm({
19228
19234
  });
19229
19235
 
19230
19236
  // src/internal/components/SendMenu/hyperbridge/components/SenderSelector.tsx
19231
- function SenderSelector() {
19237
+ function SenderSelector(props) {
19238
+ const { directWalletProfile } = props;
19232
19239
  const { t } = useT();
19233
19240
  const config = useProviderConfig().config;
19234
- const { signMessageAsync } = (0, import_wagmi.useSignMessage)();
19241
+ const { signMessageAsync } = (0, import_wagmi2.useSignMessage)();
19235
19242
  const { openConnectModal } = (0, import_rainbowkit.useConnectModal)();
19236
19243
  const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
19237
19244
  const directWalletIsConnected = useExternalWalletStore((st) => st.isExternalConnected);
19238
19245
  const pendingWalletRef = (0, import_react61.useRef)(null);
19239
- const { profiles } = useLinkedProfiles();
19240
19246
  const originChain = useBridgeStore((st) => st.originChain);
19241
19247
  const bridgeSender = useBridgeStore((st) => st.bridgeSender);
19242
19248
  const bridgeSenders = useBridgeStore((st) => st.bridgeSenders);
@@ -19244,22 +19250,15 @@ function SenderSelector() {
19244
19250
  (0, import_react61.useEffect)(() => {
19245
19251
  useFlowSelectorStore.getState().setRenderKey(`sender-selected-${Date.now()}`);
19246
19252
  }, [walletMessage]);
19247
- (0, import_react61.useEffect)(() => {
19248
- const pending = pendingWalletRef.current;
19249
- if (!pending || !directWalletIsConnected || !directWalletAddress) return;
19250
- if (directWalletAddress.toLowerCase() !== pending.externalId?.toLowerCase()) return;
19251
- pendingWalletRef.current = null;
19252
- directWalletFlow(pending);
19253
- }, [directWalletIsConnected, directWalletAddress]);
19254
- const { mutate: directWalletFlow, isPending: isDirectWalletLogin } = (0, import_react_query42.useMutation)({
19255
- mutationFn: async (walletProfile2) => {
19256
- if (!walletProfile2?.meta?.walletName || !walletProfile2?.externalId || !walletProfile2?.meta?.walletType) {
19257
- console.error("[SENDER SELECTOR] Invalid wallet profile:", walletProfile2);
19253
+ const { mutate: loginDirectWallet, isPending: isDirectWalletLoggingIn } = (0, import_react_query42.useMutation)({
19254
+ mutationFn: async (walletProfile) => {
19255
+ if (!walletProfile?.meta?.walletName || !walletProfile?.externalId || !walletProfile?.meta?.walletType) {
19256
+ console.error("[SENDER SELECTOR] Invalid wallet profile:", walletProfile);
19258
19257
  setWalletMessage("Invalid wallet profile. Please try connecting your wallet again.");
19259
19258
  return;
19260
19259
  }
19261
19260
  const projectName = config.current?.projectId ? await fetchProjectName(config.current.projectId) : "EmbarkAI";
19262
- const signingWalletAddress = walletProfile2?.externalId;
19261
+ const signingWalletAddress = walletProfile?.externalId;
19263
19262
  const message = createLoginMessage(signingWalletAddress, projectName);
19264
19263
  const signature = await Promise.race([
19265
19264
  signMessageAsync({ message, account: signingWalletAddress }),
@@ -19283,19 +19282,17 @@ function SenderSelector() {
19283
19282
  address: signingWalletAddress,
19284
19283
  signature,
19285
19284
  message,
19286
- walletName: walletProfile2.meta.walletName,
19287
- walletType: walletProfile2.meta.walletType
19285
+ walletName: walletProfile.meta.walletName,
19286
+ walletType: walletProfile.meta.walletType
19288
19287
  };
19289
- console.log("[SENDER SELECTOR] Wallet login data prepared:", walletData);
19290
19288
  const loginData = await walletLogin(walletData);
19291
- return { fromChainId, loginData, walletProfile: walletProfile2 };
19289
+ return { fromChainId, loginData, walletProfile };
19292
19290
  },
19293
- onSuccess: ({ fromChainId, loginData, walletProfile: walletProfile2 }) => {
19294
- console.log("[SENDER SELECTOR] Wallet login successful:", loginData);
19291
+ onSuccess: ({ fromChainId, loginData, walletProfile }) => {
19295
19292
  useExternalWalletStore.getState().setExternalWallet({
19296
- address: walletProfile2?.externalId,
19293
+ address: walletProfile?.externalId,
19297
19294
  chainId: fromChainId,
19298
- connectorName: walletProfile2?.meta?.walletName || "Unknown Wallet"
19295
+ connectorName: walletProfile?.meta?.walletName || "Unknown Wallet"
19299
19296
  });
19300
19297
  setWalletMessage(null);
19301
19298
  useBridgeStore.getState().setBridgeSender("direct-wallet");
@@ -19306,7 +19303,13 @@ function SenderSelector() {
19306
19303
  setWalletMessage(error instanceof Error ? error.message : "Wallet login failed. Please try again.");
19307
19304
  }
19308
19305
  });
19309
- const walletProfile = profiles.filter((p) => p.provider === "wallet")[0] || null;
19306
+ (0, import_react61.useEffect)(() => {
19307
+ const pendingProfile = pendingWalletRef.current;
19308
+ if (!pendingProfile || !directWalletIsConnected || !directWalletAddress) return;
19309
+ if (directWalletAddress.toLowerCase() !== pendingProfile.externalId?.toLowerCase()) return;
19310
+ pendingWalletRef.current = null;
19311
+ loginDirectWallet(pendingProfile);
19312
+ }, [directWalletIsConnected, directWalletAddress]);
19310
19313
  return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
19311
19314
  bridgeSenders.map((sender) => /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
19312
19315
  Button,
@@ -19358,14 +19361,14 @@ function SenderSelector() {
19358
19361
  variant: "default",
19359
19362
  size: "large",
19360
19363
  className: "w-full",
19361
- disabled: !walletProfile || isDirectWalletLogin,
19364
+ disabled: !directWalletProfile || isDirectWalletLoggingIn,
19362
19365
  onClick: () => {
19363
- const isConnectedToRightWallet = directWalletIsConnected && directWalletAddress?.toLowerCase() === walletProfile?.externalId?.toLowerCase();
19366
+ const isConnectedToRightWallet = directWalletIsConnected && directWalletAddress?.toLowerCase() === directWalletProfile?.externalId?.toLowerCase();
19364
19367
  if (isConnectedToRightWallet) {
19365
- directWalletFlow(walletProfile);
19368
+ loginDirectWallet(directWalletProfile);
19366
19369
  } else {
19367
19370
  useLayoutDataStore.getState().setPage(null);
19368
- pendingWalletRef.current = walletProfile;
19371
+ pendingWalletRef.current = directWalletProfile;
19369
19372
  openConnectModal?.();
19370
19373
  }
19371
19374
  },
@@ -19375,16 +19378,15 @@ function SenderSelector() {
19375
19378
  ] })
19376
19379
  ] });
19377
19380
  }
19378
- var import_rainbowkit, import_react_query42, import_react61, import_wagmi, import_jsx_runtime89;
19381
+ var import_rainbowkit, import_react_query42, import_react61, import_wagmi2, import_jsx_runtime89;
19379
19382
  var init_SenderSelector = __esm({
19380
19383
  "src/internal/components/SendMenu/hyperbridge/components/SenderSelector.tsx"() {
19381
19384
  init_ProviderContext();
19382
19385
  init_i18n();
19383
- init_linkedProfiles();
19384
19386
  import_rainbowkit = require("@rainbow-me/rainbowkit");
19385
19387
  import_react_query42 = require("@tanstack/react-query");
19386
19388
  import_react61 = require("react");
19387
- import_wagmi = require("wagmi");
19389
+ import_wagmi2 = require("wagmi");
19388
19390
  init_wallet();
19389
19391
  init_useLayoutDataStore();
19390
19392
  init_useExternalWalletStore();
@@ -19397,6 +19399,151 @@ var init_SenderSelector = __esm({
19397
19399
  }
19398
19400
  });
19399
19401
 
19402
+ // src/internal/assets/wallets/MetaMaskIcon.tsx
19403
+ function MetaMaskIcon(props) {
19404
+ const { width = "24", height = "24", ...svgProps } = props;
19405
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
19406
+ "svg",
19407
+ {
19408
+ ...svgProps,
19409
+ width,
19410
+ height,
19411
+ version: "1.1",
19412
+ id: "Layer_1",
19413
+ xmlns: "http://www.w3.org/2000/svg",
19414
+ x: "0px",
19415
+ y: "0px",
19416
+ viewBox: "0 0 142 136.878",
19417
+ style: {
19418
+ // enableBackground: 'new 0 0 142 136.878',
19419
+ flexShrink: 0
19420
+ },
19421
+ xmlSpace: "preserve",
19422
+ children: [
19423
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
19424
+ "path",
19425
+ {
19426
+ fill: "#FF5C16",
19427
+ d: "M132.682,132.192l-30.583-9.106l-23.063,13.787l-16.092-0.007l-23.077-13.78l-30.569,9.106L0,100.801\n l9.299-34.839L0,36.507L9.299,0l47.766,28.538h27.85L132.682,0l9.299,36.507l-9.299,29.455l9.299,34.839L132.682,132.192\n L132.682,132.192z"
19428
+ }
19429
+ ),
19430
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
19431
+ "path",
19432
+ {
19433
+ fill: "#FF5C16",
19434
+ d: "M9.305,0l47.767,28.558l-1.899,19.599L9.305,0z M39.875,100.814l21.017,16.01l-21.017,6.261\n C39.875,123.085,39.875,100.814,39.875,100.814z M59.212,74.345l-4.039-26.174L29.317,65.97l-0.014-0.007v0.013l0.08,18.321\n l10.485-9.951L59.212,74.345L59.212,74.345z M132.682,0L84.915,28.558l1.893,19.599L132.682,0z M102.113,100.814l-21.018,16.01\n l21.018,6.261V100.814z M112.678,65.975h0.007H112.678v-0.013l-0.006,0.007L86.815,48.171l-4.039,26.174h19.336l10.492,9.95\n C112.604,84.295,112.678,65.975,112.678,65.975z"
19435
+ }
19436
+ ),
19437
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
19438
+ "path",
19439
+ {
19440
+ fill: "#E34807",
19441
+ d: "M39.868,123.085l-30.569,9.106L0,100.814h39.868C39.868,100.814,39.868,123.085,39.868,123.085z\n M59.205,74.338l5.839,37.84l-8.093-21.04L29.37,84.295l10.491-9.956h19.344L59.205,74.338z M102.112,123.085l30.57,9.106\n l9.299-31.378h-39.869C102.112,100.814,102.112,123.085,102.112,123.085z M82.776,74.338l-5.839,37.84l8.092-21.04l27.583-6.843\n l-10.498-9.956H82.776V74.338z"
19442
+ }
19443
+ ),
19444
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
19445
+ "path",
19446
+ {
19447
+ fill: "#FF8D5D",
19448
+ d: "M0,100.801l9.299-34.839h19.997l0.073,18.327l27.584,6.843l8.092,21.039l-4.16,4.633l-21.017-16.01H0\n V100.801z M141.981,100.801l-9.299-34.839h-19.998l-0.073,18.327l-27.582,6.843l-8.093,21.039l4.159,4.633l21.018-16.01h39.868\n V100.801z M84.915,28.538h-27.85l-1.891,19.599l9.872,64.013h11.891l9.878-64.013L84.915,28.538z"
19449
+ }
19450
+ ),
19451
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
19452
+ "path",
19453
+ {
19454
+ fill: "#661800",
19455
+ d: "M9.299,0L0,36.507l9.299,29.455h19.997l25.87-17.804L9.299,0z M53.426,81.938h-9.059l-4.932,4.835\n l17.524,4.344l-3.533-9.186V81.938z M132.682,0l9.299,36.507l-9.299,29.455h-19.998L86.815,48.158L132.682,0z M88.568,81.938h9.072\n l4.932,4.841l-17.544,4.353l3.54-9.201V81.938z M79.029,124.385l2.067-7.567l-4.16-4.633h-11.9l-4.159,4.633l2.066,7.567"
19456
+ }
19457
+ ),
19458
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
19459
+ "path",
19460
+ {
19461
+ fill: "#C0C4CD",
19462
+ d: "M79.029,124.384v12.495H62.945v-12.495L79.029,124.384L79.029,124.384z"
19463
+ }
19464
+ ),
19465
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
19466
+ "path",
19467
+ {
19468
+ fill: "#E7EBF6",
19469
+ d: "M39.875,123.072l23.083,13.8v-12.495l-2.067-7.566C60.891,116.811,39.875,123.072,39.875,123.072z\n M102.113,123.072l-23.084,13.8v-12.495l2.067-7.566C81.096,116.811,102.113,123.072,102.113,123.072z"
19470
+ }
19471
+ )
19472
+ ]
19473
+ }
19474
+ );
19475
+ }
19476
+ var import_jsx_runtime90;
19477
+ var init_MetaMaskIcon = __esm({
19478
+ "src/internal/assets/wallets/MetaMaskIcon.tsx"() {
19479
+ import_jsx_runtime90 = require("react/jsx-runtime");
19480
+ }
19481
+ });
19482
+
19483
+ // src/internal/assets/wallets/index.tsx
19484
+ var import_lucide_react58, import_jsx_runtime91, WALLET_ICONS;
19485
+ var init_wallets = __esm({
19486
+ "src/internal/assets/wallets/index.tsx"() {
19487
+ import_lucide_react58 = require("lucide-react");
19488
+ init_MetaMaskIcon();
19489
+ import_jsx_runtime91 = require("react/jsx-runtime");
19490
+ WALLET_ICONS = {
19491
+ metamask: MetaMaskIcon,
19492
+ default: (props) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_lucide_react58.Wallet2Icon, { ...props })
19493
+ };
19494
+ }
19495
+ });
19496
+
19497
+ // src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts
19498
+ function useAvailableSenders() {
19499
+ const address = useSession((st) => st.address);
19500
+ const activeChainId = useSession((st) => st.activeChainId);
19501
+ const { profiles } = useLinkedProfiles();
19502
+ const lastCalcedSenders = (0, import_react62.useRef)([]);
19503
+ (0, import_react62.useEffect)(() => {
19504
+ const sendersAccumulator = [
19505
+ {
19506
+ type: "embarkai-wallet",
19507
+ name: "embarkAI",
19508
+ chainId: activeChainId,
19509
+ address,
19510
+ Icon: TOKENS_ICONS["EMBARKAI"]
19511
+ }
19512
+ ];
19513
+ const walletProfile = profiles.filter((p) => p.provider === "wallet")[0] || null;
19514
+ if (!!walletProfile) {
19515
+ sendersAccumulator.push({
19516
+ type: "direct-wallet",
19517
+ name: walletProfile?.meta?.walletName || "External wallet",
19518
+ chainId: null,
19519
+ address: walletProfile?.externalId,
19520
+ Icon: WALLET_ICONS[walletProfile?.meta?.walletName?.toLowerCase()] || WALLET_ICONS["default"]
19521
+ });
19522
+ }
19523
+ if (sendersAccumulator.map((s) => `${s.name}-${s.address}`).join(",") === lastCalcedSenders.current.join(",")) {
19524
+ return;
19525
+ }
19526
+ lastCalcedSenders.current = sendersAccumulator.map((s) => `${s.name}-${s.address}`);
19527
+ useBridgeStore.getState().setBridgeSenders(sendersAccumulator);
19528
+ useFlowSelectorStore.getState().setRenderKey(`sender-selected-${Date.now()}`);
19529
+ }, [address, profiles, activeChainId]);
19530
+ return {
19531
+ directWalletProfile: profiles.filter((p) => p.provider === "wallet")[0] || null
19532
+ };
19533
+ }
19534
+ var import_react62;
19535
+ var init_useAvailableSenders = __esm({
19536
+ "src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts"() {
19537
+ init_SessionContext();
19538
+ init_tokens();
19539
+ init_linkedProfiles();
19540
+ import_react62 = require("react");
19541
+ init_wallets();
19542
+ init_useFlowSelector();
19543
+ init_useBridgeStore();
19544
+ }
19545
+ });
19546
+
19400
19547
  // src/internal/components/SendMenu/hyperbridge/api.ts
19401
19548
  function iframe3() {
19402
19549
  const accessToken = import_auth20.jwtTokenManager.getAccessToken();
@@ -19574,9 +19721,9 @@ var init_useOperationHashesStore = __esm({
19574
19721
  function useBridge() {
19575
19722
  const { t } = useT();
19576
19723
  const address = useSession((st) => st.address);
19577
- const { data: walletClient } = (0, import_wagmi2.useWalletClient)();
19578
- const { switchChainAsync } = (0, import_wagmi2.useSwitchChain)();
19579
- const swapDirection = (0, import_react62.useCallback)(() => {
19724
+ const { data: walletClient } = (0, import_wagmi3.useWalletClient)();
19725
+ const { switchChainAsync } = (0, import_wagmi3.useSwitchChain)();
19726
+ const swapDirection = (0, import_react63.useCallback)(() => {
19580
19727
  const {
19581
19728
  bridgeStep,
19582
19729
  originChain,
@@ -19629,7 +19776,7 @@ function useBridge() {
19629
19776
  useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
19630
19777
  }
19631
19778
  });
19632
- const handleQuoteEstimation = (0, import_react62.useCallback)((amnt) => {
19779
+ const handleQuoteEstimation = (0, import_react63.useCallback)((amnt) => {
19633
19780
  const { originChain, destinationChain, bridgeSender } = useBridgeStore.getState();
19634
19781
  if (!amnt || !Number(amnt)) {
19635
19782
  useBridgeStore.getState().setQuote(null);
@@ -19755,15 +19902,15 @@ function useBridge() {
19755
19902
  isAssetBridging
19756
19903
  };
19757
19904
  }
19758
- var import_react_query43, import_react62, import_wagmi2;
19905
+ var import_react_query43, import_react63, import_wagmi3;
19759
19906
  var init_useBridge = __esm({
19760
19907
  "src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
19761
19908
  init_SessionContext();
19762
19909
  init_i18n();
19763
19910
  init_useExternalWalletStore();
19764
19911
  import_react_query43 = require("@tanstack/react-query");
19765
- import_react62 = require("react");
19766
- import_wagmi2 = require("wagmi");
19912
+ import_react63 = require("react");
19913
+ import_wagmi3 = require("wagmi");
19767
19914
  init_useLayoutStore();
19768
19915
  init_useFlowSelector();
19769
19916
  init_api3();
@@ -19791,7 +19938,7 @@ function useHyperlaneRoutes() {
19791
19938
  queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
19792
19939
  queryFn: async () => getHyperlaneWarpRoutes()
19793
19940
  });
19794
- (0, import_react63.useEffect)(() => {
19941
+ (0, import_react64.useEffect)(() => {
19795
19942
  if (!errorWarpRoutes) return;
19796
19943
  useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
19797
19944
  const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
@@ -19800,7 +19947,7 @@ function useHyperlaneRoutes() {
19800
19947
  setOriginChain(null);
19801
19948
  setDestinationChain(null);
19802
19949
  }, [errorWarpRoutes]);
19803
- (0, import_react63.useEffect)(() => {
19950
+ (0, import_react64.useEffect)(() => {
19804
19951
  if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
19805
19952
  const warpRouteToAutoSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
19806
19953
  if (!warpRouteToAutoSelect) return;
@@ -19819,12 +19966,12 @@ function useHyperlaneRoutes() {
19819
19966
  }, [hyperRoute, hyperlaneWarpRoutes]);
19820
19967
  return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
19821
19968
  }
19822
- var import_react_query44, import_react63, HYPERLANE_WARP_ROUTES_QUERY_KEY;
19969
+ var import_react_query44, import_react64, HYPERLANE_WARP_ROUTES_QUERY_KEY;
19823
19970
  var init_useHyperlaneRoutes = __esm({
19824
19971
  "src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts"() {
19825
19972
  init_SessionContext();
19826
19973
  import_react_query44 = require("@tanstack/react-query");
19827
- import_react63 = require("react");
19974
+ import_react64 = require("react");
19828
19975
  init_useLayoutDataStore();
19829
19976
  init_useFlowSelector();
19830
19977
  init_api3();
@@ -19840,7 +19987,7 @@ function useMenuTitle(warpRoutes) {
19840
19987
  const bridgeStep = useBridgeStore((st) => st.bridgeStep);
19841
19988
  const hyperRoute = useBridgeStore((st) => st.hyperRoute);
19842
19989
  const hyperRouteMeta = warpRoutes?.length ? warpRoutes.find((route) => route.routeId === hyperRoute) : null;
19843
- (0, import_react64.useEffect)(() => {
19990
+ (0, import_react65.useEffect)(() => {
19844
19991
  const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
19845
19992
  switch (true) {
19846
19993
  case bridgeStep === "sender-selector":
@@ -19868,11 +20015,11 @@ function useMenuTitle(warpRoutes) {
19868
20015
  }
19869
20016
  }, [bridgeStep, hyperRouteMeta, t]);
19870
20017
  }
19871
- var import_react64;
20018
+ var import_react65;
19872
20019
  var init_useMenuTitle = __esm({
19873
20020
  "src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts"() {
19874
20021
  init_i18n();
19875
- import_react64 = require("react");
20022
+ import_react65 = require("react");
19876
20023
  init_useFlowSelector();
19877
20024
  init_useBridgeStore();
19878
20025
  }
@@ -19881,158 +20028,14 @@ var init_useMenuTitle = __esm({
19881
20028
  // src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx
19882
20029
  function ResolveChainIcon(props) {
19883
20030
  const Icon2 = CHAINS_UI_META[props.chainName]?.Icon || TOKENS_ICONS.EMBARKAI;
19884
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Icon2, { className: props.className || "w-4 h-4" });
20031
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Icon2, { className: props.className || "w-4 h-4" });
19885
20032
  }
19886
- var import_jsx_runtime90;
20033
+ var import_jsx_runtime92;
19887
20034
  var init_ResolveChainIcon = __esm({
19888
20035
  "src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx"() {
19889
20036
  init_tokens();
19890
20037
  init_chains();
19891
- import_jsx_runtime90 = require("react/jsx-runtime");
19892
- }
19893
- });
19894
-
19895
- // src/internal/assets/wallets/MetaMaskIcon.tsx
19896
- function MetaMaskIcon(props) {
19897
- const { width = "24", height = "24", ...svgProps } = props;
19898
- return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
19899
- "svg",
19900
- {
19901
- ...svgProps,
19902
- width,
19903
- height,
19904
- version: "1.1",
19905
- id: "Layer_1",
19906
- xmlns: "http://www.w3.org/2000/svg",
19907
- x: "0px",
19908
- y: "0px",
19909
- viewBox: "0 0 142 136.878",
19910
- style: {
19911
- // enableBackground: 'new 0 0 142 136.878',
19912
- flexShrink: 0
19913
- },
19914
- xmlSpace: "preserve",
19915
- children: [
19916
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
19917
- "path",
19918
- {
19919
- fill: "#FF5C16",
19920
- d: "M132.682,132.192l-30.583-9.106l-23.063,13.787l-16.092-0.007l-23.077-13.78l-30.569,9.106L0,100.801\n l9.299-34.839L0,36.507L9.299,0l47.766,28.538h27.85L132.682,0l9.299,36.507l-9.299,29.455l9.299,34.839L132.682,132.192\n L132.682,132.192z"
19921
- }
19922
- ),
19923
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
19924
- "path",
19925
- {
19926
- fill: "#FF5C16",
19927
- d: "M9.305,0l47.767,28.558l-1.899,19.599L9.305,0z M39.875,100.814l21.017,16.01l-21.017,6.261\n C39.875,123.085,39.875,100.814,39.875,100.814z M59.212,74.345l-4.039-26.174L29.317,65.97l-0.014-0.007v0.013l0.08,18.321\n l10.485-9.951L59.212,74.345L59.212,74.345z M132.682,0L84.915,28.558l1.893,19.599L132.682,0z M102.113,100.814l-21.018,16.01\n l21.018,6.261V100.814z M112.678,65.975h0.007H112.678v-0.013l-0.006,0.007L86.815,48.171l-4.039,26.174h19.336l10.492,9.95\n C112.604,84.295,112.678,65.975,112.678,65.975z"
19928
- }
19929
- ),
19930
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
19931
- "path",
19932
- {
19933
- fill: "#E34807",
19934
- d: "M39.868,123.085l-30.569,9.106L0,100.814h39.868C39.868,100.814,39.868,123.085,39.868,123.085z\n M59.205,74.338l5.839,37.84l-8.093-21.04L29.37,84.295l10.491-9.956h19.344L59.205,74.338z M102.112,123.085l30.57,9.106\n l9.299-31.378h-39.869C102.112,100.814,102.112,123.085,102.112,123.085z M82.776,74.338l-5.839,37.84l8.092-21.04l27.583-6.843\n l-10.498-9.956H82.776V74.338z"
19935
- }
19936
- ),
19937
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
19938
- "path",
19939
- {
19940
- fill: "#FF8D5D",
19941
- d: "M0,100.801l9.299-34.839h19.997l0.073,18.327l27.584,6.843l8.092,21.039l-4.16,4.633l-21.017-16.01H0\n V100.801z M141.981,100.801l-9.299-34.839h-19.998l-0.073,18.327l-27.582,6.843l-8.093,21.039l4.159,4.633l21.018-16.01h39.868\n V100.801z M84.915,28.538h-27.85l-1.891,19.599l9.872,64.013h11.891l9.878-64.013L84.915,28.538z"
19942
- }
19943
- ),
19944
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
19945
- "path",
19946
- {
19947
- fill: "#661800",
19948
- d: "M9.299,0L0,36.507l9.299,29.455h19.997l25.87-17.804L9.299,0z M53.426,81.938h-9.059l-4.932,4.835\n l17.524,4.344l-3.533-9.186V81.938z M132.682,0l9.299,36.507l-9.299,29.455h-19.998L86.815,48.158L132.682,0z M88.568,81.938h9.072\n l4.932,4.841l-17.544,4.353l3.54-9.201V81.938z M79.029,124.385l2.067-7.567l-4.16-4.633h-11.9l-4.159,4.633l2.066,7.567"
19949
- }
19950
- ),
19951
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
19952
- "path",
19953
- {
19954
- fill: "#C0C4CD",
19955
- d: "M79.029,124.384v12.495H62.945v-12.495L79.029,124.384L79.029,124.384z"
19956
- }
19957
- ),
19958
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
19959
- "path",
19960
- {
19961
- fill: "#E7EBF6",
19962
- d: "M39.875,123.072l23.083,13.8v-12.495l-2.067-7.566C60.891,116.811,39.875,123.072,39.875,123.072z\n M102.113,123.072l-23.084,13.8v-12.495l2.067-7.566C81.096,116.811,102.113,123.072,102.113,123.072z"
19963
- }
19964
- )
19965
- ]
19966
- }
19967
- );
19968
- }
19969
- var import_jsx_runtime91;
19970
- var init_MetaMaskIcon = __esm({
19971
- "src/internal/assets/wallets/MetaMaskIcon.tsx"() {
19972
- import_jsx_runtime91 = require("react/jsx-runtime");
19973
- }
19974
- });
19975
-
19976
- // src/internal/assets/wallets/index.tsx
19977
- var import_lucide_react58, import_jsx_runtime92, WALLET_ICONS;
19978
- var init_wallets = __esm({
19979
- "src/internal/assets/wallets/index.tsx"() {
19980
- import_lucide_react58 = require("lucide-react");
19981
- init_MetaMaskIcon();
19982
20038
  import_jsx_runtime92 = require("react/jsx-runtime");
19983
- WALLET_ICONS = {
19984
- metamask: MetaMaskIcon,
19985
- default: (props) => /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react58.Wallet2Icon, { ...props })
19986
- };
19987
- }
19988
- });
19989
-
19990
- // src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts
19991
- function useAvailableSenders() {
19992
- const address = useSession((st) => st.address);
19993
- const activeChainId = useSession((st) => st.activeChainId);
19994
- const { profiles } = useLinkedProfiles();
19995
- const walletProfiles = profiles.filter((p) => p.provider === "wallet");
19996
- const lastCalcedSenders = (0, import_react65.useRef)([]);
19997
- (0, import_react65.useEffect)(() => {
19998
- const sendersAccumulator = [
19999
- {
20000
- type: "embarkai-wallet",
20001
- name: "embarkAI",
20002
- chainId: activeChainId,
20003
- address,
20004
- Icon: TOKENS_ICONS["EMBARKAI"]
20005
- }
20006
- ];
20007
- if (!!walletProfiles.length) {
20008
- walletProfiles.forEach((wProfile) => {
20009
- sendersAccumulator.push({
20010
- type: "direct-wallet",
20011
- name: wProfile?.meta?.walletName || "External wallet",
20012
- chainId: null,
20013
- address: wProfile?.externalId,
20014
- Icon: WALLET_ICONS[wProfile?.meta?.walletName?.toLowerCase()] || WALLET_ICONS["default"]
20015
- });
20016
- });
20017
- }
20018
- if (sendersAccumulator.map((s) => `${s.name}-${s.address}`).join(",") === lastCalcedSenders.current.join(",")) {
20019
- return;
20020
- }
20021
- lastCalcedSenders.current = sendersAccumulator.map((s) => `${s.name}-${s.address}`);
20022
- useBridgeStore.getState().setBridgeSenders(sendersAccumulator);
20023
- useFlowSelectorStore.getState().setRenderKey(`sender-selected-${Date.now()}`);
20024
- }, [address, walletProfiles, activeChainId]);
20025
- }
20026
- var import_react65;
20027
- var init_useAvailableSenders = __esm({
20028
- "src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts"() {
20029
- init_SessionContext();
20030
- init_tokens();
20031
- init_linkedProfiles();
20032
- import_react65 = require("react");
20033
- init_wallets();
20034
- init_useFlowSelector();
20035
- init_useBridgeStore();
20036
20039
  }
20037
20040
  });
20038
20041
 
@@ -20043,7 +20046,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20043
20046
  const address = useSession((st) => st.address);
20044
20047
  const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
20045
20048
  const directWalletChainId = useExternalWalletStore((st) => st.externalChainId);
20046
- const { switchChainAsync } = (0, import_wagmi3.useSwitchChain)();
20049
+ const { switchChainAsync } = (0, import_wagmi4.useSwitchChain)();
20047
20050
  const hyperRoute = useBridgeStore((st) => st.hyperRoute);
20048
20051
  const bridgeSender = useBridgeStore((st) => st.bridgeSender);
20049
20052
  const originChain = useBridgeStore((st) => st.originChain);
@@ -20111,7 +20114,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20111
20114
  data: externalNativeBalanceData,
20112
20115
  refetch: refetchExternalNativeBalance,
20113
20116
  isLoading: isExternalNativeBalanceLoading
20114
- } = (0, import_wagmi3.useBalance)({
20117
+ } = (0, import_wagmi4.useBalance)({
20115
20118
  address: directWalletAddress,
20116
20119
  chainId: directWalletChainId,
20117
20120
  query: {
@@ -20165,7 +20168,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20165
20168
  isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
20166
20169
  };
20167
20170
  }
20168
- var import_react_query45, import_react66, import_viem13, import_wagmi3, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY;
20171
+ var import_react_query45, import_react66, import_viem13, import_wagmi4, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY;
20169
20172
  var init_useBridgeBalance = __esm({
20170
20173
  "src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
20171
20174
  init_SessionContext();
@@ -20173,7 +20176,7 @@ var init_useBridgeBalance = __esm({
20173
20176
  import_react_query45 = require("@tanstack/react-query");
20174
20177
  import_react66 = require("react");
20175
20178
  import_viem13 = require("viem");
20176
- import_wagmi3 = require("wagmi");
20179
+ import_wagmi4 = require("wagmi");
20177
20180
  init_useBlockscoutAssets();
20178
20181
  init_useExternalWalletStore();
20179
20182
  init_useFlowSelector();
@@ -20193,15 +20196,13 @@ function SelectStep(props) {
20193
20196
  destinationChain,
20194
20197
  hyperRoute,
20195
20198
  amount,
20196
- // bridgeSenders,
20197
20199
  isQuoteEstimating,
20198
20200
  recipient,
20199
20201
  setBridgeStep,
20200
20202
  setAmount,
20201
20203
  setRecipient
20202
20204
  } = useBridgeStore();
20203
- useAvailableSenders();
20204
- const selectedSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
20205
+ const selectedSender = useBridgeStore((st) => st.bridgeSenders?.find((s) => s.type === st.bridgeSender)) || null;
20205
20206
  const { routeTokenBalance, isRouteTokenBalanceLoading } = useBridgeBalance(hyperlaneWarpRoutes);
20206
20207
  const selectedWarpRoute = hyperlaneWarpRoutes.find((route) => {
20207
20208
  const { routeId, chainPair } = route;
@@ -20440,7 +20441,6 @@ var init_SelectStep = __esm({
20440
20441
  init_input();
20441
20442
  init_useFlowSelector();
20442
20443
  init_ResolveChainIcon();
20443
- init_useAvailableSenders();
20444
20444
  init_useBridgeBalance();
20445
20445
  init_chains();
20446
20446
  init_useBridgeStore();
@@ -20714,29 +20714,36 @@ function useHyperlaneHistory() {
20714
20714
  queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, currentPage],
20715
20715
  queryFn: async () => await getHyperlaneBridgeHistory({ page: currentPage, pageSize: TX_HISTORY_PAGE_SIZE })
20716
20716
  });
20717
+ const updateExpandable = (0, import_react69.useCallback)(
20718
+ (0, import_lodash_es7.debounce)(() => {
20719
+ useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
20720
+ }, 500),
20721
+ []
20722
+ );
20717
20723
  (0, import_react69.useEffect)(() => {
20718
20724
  const { data, isLoading } = query;
20719
- if (isLoading || data.data.length === 0 || currentPage > 1) return;
20720
- useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
20721
- }, [query, currentPage]);
20725
+ if (isLoading || data.data?.length === 0) return;
20726
+ updateExpandable();
20727
+ }, [query]);
20722
20728
  return {
20723
20729
  ...query,
20724
20730
  currentPage,
20725
20731
  setCurrentPage
20726
20732
  };
20727
20733
  }
20728
- var import_react_query46, import_react69, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
20734
+ var import_react_query46, import_lodash_es7, import_react69, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
20729
20735
  var init_useHyperlaneHistory = __esm({
20730
20736
  "src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
20731
20737
  init_SessionContext();
20732
20738
  import_react_query46 = require("@tanstack/react-query");
20739
+ import_lodash_es7 = require("lodash-es");
20733
20740
  import_react69 = require("react");
20734
20741
  init_useLayoutDataStore();
20735
20742
  init_useFlowSelector();
20736
20743
  init_api3();
20737
20744
  init_useBridgeStore();
20738
20745
  HYPERLANE_HISTORY_QUERY_KEY = "hyperlane-tx-history-query-key";
20739
- TX_HISTORY_PAGE_SIZE = 3;
20746
+ TX_HISTORY_PAGE_SIZE = 6;
20740
20747
  TX_HISTORY_POLLING_INTERVAL = 1e3 * 45;
20741
20748
  }
20742
20749
  });
@@ -21126,6 +21133,7 @@ function HyperlaneBridge() {
21126
21133
  const bridgeStep = useBridgeStore((st) => st.bridgeStep);
21127
21134
  const { swapDirection, handleQuoteEstimation, bridgeAsset, isAssetBridging } = useBridge();
21128
21135
  const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
21136
+ const { directWalletProfile } = useAvailableSenders();
21129
21137
  useMenuTitle(hyperlaneWarpRoutes);
21130
21138
  (0, import_react71.useEffect)(
21131
21139
  () => () => {
@@ -21134,7 +21142,7 @@ function HyperlaneBridge() {
21134
21142
  []
21135
21143
  );
21136
21144
  return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_jsx_runtime99.Fragment, { children: [
21137
- bridgeStep === "sender-selector" && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SenderSelector, {}),
21145
+ bridgeStep === "sender-selector" && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(SenderSelector, { directWalletProfile }),
21138
21146
  bridgeStep === "select" && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
21139
21147
  SelectStep,
21140
21148
  {
@@ -21166,6 +21174,7 @@ var init_HyperlaneBridge = __esm({
21166
21174
  "src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
21167
21175
  import_react71 = require("react");
21168
21176
  init_SenderSelector();
21177
+ init_useAvailableSenders();
21169
21178
  init_useBridge();
21170
21179
  init_useHyperlaneRoutes();
21171
21180
  init_useMenuTitle();
@@ -21228,7 +21237,7 @@ function useErc3643Compliance(options) {
21228
21237
  isLoading,
21229
21238
  error: queryError,
21230
21239
  refetch
21231
- } = (0, import_wagmi4.useReadContract)({
21240
+ } = (0, import_wagmi5.useReadContract)({
21232
21241
  address: tokenAddress,
21233
21242
  abi: ERC3643_CAN_TRANSFER_ABI,
21234
21243
  functionName: "canTransfer",
@@ -21265,10 +21274,10 @@ function useErc3643Compliance(options) {
21265
21274
  refetch
21266
21275
  };
21267
21276
  }
21268
- var import_wagmi4, ERC3643_CAN_TRANSFER_ABI;
21277
+ var import_wagmi5, ERC3643_CAN_TRANSFER_ABI;
21269
21278
  var init_useErc3643Compliance = __esm({
21270
21279
  "src/hooks/useErc3643Compliance.ts"() {
21271
- import_wagmi4 = require("wagmi");
21280
+ import_wagmi5 = require("wagmi");
21272
21281
  ERC3643_CAN_TRANSFER_ABI = [
21273
21282
  {
21274
21283
  type: "function",
@@ -24106,7 +24115,7 @@ var init_package = __esm({
24106
24115
  "package.json"() {
24107
24116
  package_default = {
24108
24117
  name: "@embarkai/ui-kit",
24109
- version: "0.4.35",
24118
+ version: "0.4.37",
24110
24119
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24111
24120
  type: "module",
24112
24121
  main: "./dist/index.cjs",
@@ -24475,17 +24484,17 @@ function useDecideContentStyles() {
24475
24484
  return {
24476
24485
  isClosing,
24477
24486
  isMobileView,
24478
- style: (0, import_lodash_es7.merge)({}, mobileStyles)
24487
+ style: (0, import_lodash_es8.merge)({}, mobileStyles)
24479
24488
  };
24480
24489
  }
24481
- var DialogPrimitive, import_lodash_es7, import_lucide_react78, import_react84, import_jsx_runtime118, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
24490
+ var DialogPrimitive, import_lodash_es8, import_lucide_react78, import_react84, import_jsx_runtime118, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
24482
24491
  var init_dialog = __esm({
24483
24492
  "src/internal/components/ui/dialog.tsx"() {
24484
24493
  init_utils2();
24485
24494
  init_SessionContext();
24486
24495
  init_i18n();
24487
24496
  DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
24488
- import_lodash_es7 = require("lodash-es");
24497
+ import_lodash_es8 = require("lodash-es");
24489
24498
  import_lucide_react78 = require("lucide-react");
24490
24499
  import_react84 = require("react");
24491
24500
  init_useLayoutDataStore();
@@ -24781,10 +24790,10 @@ function WalletConnectHandler() {
24781
24790
  const qc = (0, import_react_query54.useQueryClient)();
24782
24791
  const { callbacksRef } = useProviderConfig();
24783
24792
  const passportWalletAddress = useSession((st) => st.address);
24784
- const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi5.useAccount)();
24793
+ const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi6.useAccount)();
24785
24794
  const { openConnectModal, connectModalOpen } = (0, import_rainbowkit2.useConnectModal)();
24786
- const { disconnect } = (0, import_wagmi5.useDisconnect)();
24787
- const { signMessageAsync } = (0, import_wagmi5.useSignMessage)();
24795
+ const { disconnect } = (0, import_wagmi6.useDisconnect)();
24796
+ const { signMessageAsync } = (0, import_wagmi6.useSignMessage)();
24788
24797
  const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
24789
24798
  const setPage = useLayoutDataStore((st) => st.setPage);
24790
24799
  const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
@@ -25039,7 +25048,7 @@ function WalletConnectHandler() {
25039
25048
  ]);
25040
25049
  return null;
25041
25050
  }
25042
- var import_rainbowkit2, import_react_query54, import_react87, import_wagmi5;
25051
+ var import_rainbowkit2, import_react_query54, import_react87, import_wagmi6;
25043
25052
  var init_WalletConnectHandler = __esm({
25044
25053
  "src/internal/components/WalletConnectHandler.tsx"() {
25045
25054
  init_ProviderContext();
@@ -25048,7 +25057,7 @@ var init_WalletConnectHandler = __esm({
25048
25057
  import_rainbowkit2 = require("@rainbow-me/rainbowkit");
25049
25058
  import_react_query54 = require("@tanstack/react-query");
25050
25059
  import_react87 = __toESM(require("react"), 1);
25051
- import_wagmi5 = require("wagmi");
25060
+ import_wagmi6 = require("wagmi");
25052
25061
  init_wallet();
25053
25062
  init_AuthMenu2();
25054
25063
  init_useLayoutDataStore();
@@ -25060,7 +25069,7 @@ var init_WalletConnectHandler = __esm({
25060
25069
  // src/internal/components/DirectWalletHandler.tsx
25061
25070
  function DirectWalletHandler() {
25062
25071
  const walletMode = useProviderConfig().config.current?.wallet?.mode || "linked";
25063
- const { address, isConnected, chain, connector } = (0, import_wagmi6.useAccount)();
25072
+ const { address, isConnected, chain, connector } = (0, import_wagmi7.useAccount)();
25064
25073
  const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
25065
25074
  const externalAddress = useExternalWalletStore((st) => st.externalAddress);
25066
25075
  const setExternalWallet = useExternalWalletStore((st) => st.setExternalWallet);
@@ -25104,11 +25113,11 @@ function DirectWalletHandler() {
25104
25113
  }, [address, isConnected, isExternalConnected, externalAddress, chain?.id, connector, setExternalWallet]);
25105
25114
  return null;
25106
25115
  }
25107
- var import_react88, import_wagmi6;
25116
+ var import_react88, import_wagmi7;
25108
25117
  var init_DirectWalletHandler = __esm({
25109
25118
  "src/internal/components/DirectWalletHandler.tsx"() {
25110
25119
  import_react88 = require("react");
25111
- import_wagmi6 = require("wagmi");
25120
+ import_wagmi7 = require("wagmi");
25112
25121
  init_ProviderContext();
25113
25122
  init_useExternalWalletStore();
25114
25123
  }
@@ -27562,13 +27571,13 @@ var init_iframe_manager = __esm({
27562
27571
  });
27563
27572
 
27564
27573
  // src/config/rainbowkit.ts
27565
- var import_read18, import_rainbowkit3, import_wallets2, import_wagmi7, import_chains12, getProjectId2, WALLET_MAP, getWagmiStorageKey, buildRainbowChains, createRainbowConfig, rainbowTheme;
27574
+ var import_read18, import_rainbowkit3, import_wallets2, import_wagmi8, import_chains12, getProjectId2, WALLET_MAP, getWagmiStorageKey, buildRainbowChains, createRainbowConfig, rainbowTheme;
27566
27575
  var init_rainbowkit = __esm({
27567
27576
  "src/config/rainbowkit.ts"() {
27568
27577
  import_read18 = require("@embarkai/core/read");
27569
27578
  import_rainbowkit3 = require("@rainbow-me/rainbowkit");
27570
27579
  import_wallets2 = require("@rainbow-me/rainbowkit/wallets");
27571
- import_wagmi7 = require("wagmi");
27580
+ import_wagmi8 = require("wagmi");
27572
27581
  import_chains12 = require("wagmi/chains");
27573
27582
  getProjectId2 = (configProjectId) => {
27574
27583
  if (configProjectId) return configProjectId;
@@ -27617,7 +27626,7 @@ var init_rainbowkit = __esm({
27617
27626
  appName: "EmbarkAI Wallet",
27618
27627
  projectId: getProjectId2(opts.projectId),
27619
27628
  chains: buildRainbowChains(opts.supportedChains, opts.preferredChainId),
27620
- storage: (0, import_wagmi7.createStorage)({ key: getWagmiStorageKey(opts) }),
27629
+ storage: (0, import_wagmi8.createStorage)({ key: getWagmiStorageKey(opts) }),
27621
27630
  ssr: false
27622
27631
  };
27623
27632
  if (opts.allowedWallets && opts.allowedWallets.length > 0) {
@@ -27847,14 +27856,14 @@ function RainbowKitProvider({ children }) {
27847
27856
  };
27848
27857
  }, [colorMode]);
27849
27858
  if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_jsx_runtime122.Fragment, { children });
27850
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_wagmi8.WagmiProvider, { config: rainbowConfig, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_rainbowkit4.RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
27859
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_wagmi9.WagmiProvider, { config: rainbowConfig, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_rainbowkit4.RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
27851
27860
  }
27852
- var import_rainbowkit4, import_react90, import_wagmi8, import_styles, import_jsx_runtime122;
27861
+ var import_rainbowkit4, import_react90, import_wagmi9, import_styles, import_jsx_runtime122;
27853
27862
  var init_RainbowKitContext = __esm({
27854
27863
  "src/context/RainbowKitContext.tsx"() {
27855
27864
  import_rainbowkit4 = require("@rainbow-me/rainbowkit");
27856
27865
  import_react90 = require("react");
27857
- import_wagmi8 = require("wagmi");
27866
+ import_wagmi9 = require("wagmi");
27858
27867
  init_rainbowkit();
27859
27868
  init_useLayoutStore();
27860
27869
  init_ProviderContext();
@@ -27881,7 +27890,7 @@ var init_utils11 = __esm({
27881
27890
  // src/config/wagmi.ts
27882
27891
  function buildTransport(urls) {
27883
27892
  const transports = urls.map(
27884
- (url) => (0, import_wagmi9.http)(url, {
27893
+ (url) => (0, import_wagmi10.http)(url, {
27885
27894
  timeout: 1e4,
27886
27895
  retryCount: 0,
27887
27896
  batch: false,
@@ -27897,35 +27906,35 @@ function buildTransport(urls) {
27897
27906
  retryCount: 0
27898
27907
  });
27899
27908
  }
27900
- var import_read19, import_viem20, import_wagmi9, import_chains13, wagmiConfig;
27909
+ var import_read19, import_viem20, import_wagmi10, import_chains13, wagmiConfig;
27901
27910
  var init_wagmi = __esm({
27902
27911
  "src/config/wagmi.ts"() {
27903
27912
  import_read19 = require("@embarkai/core/read");
27904
27913
  import_viem20 = require("viem");
27905
- import_wagmi9 = require("wagmi");
27914
+ import_wagmi10 = require("wagmi");
27906
27915
  import_chains13 = require("wagmi/chains");
27907
- wagmiConfig = (0, import_wagmi9.createConfig)({
27916
+ wagmiConfig = (0, import_wagmi10.createConfig)({
27908
27917
  chains: [import_read19.lumiaMainnetChain, import_read19.lumiaTestnetChain, import_chains13.bsc, import_chains13.mainnet],
27909
- storage: (0, import_wagmi9.createStorage)({ key: "embark-wagmi-static-v2" }),
27918
+ storage: (0, import_wagmi10.createStorage)({ key: "embark-wagmi-static-v2" }),
27910
27919
  transports: {
27911
27920
  [import_read19.lumiaTestnetChain.id]: buildTransport(import_read19.lumiaTestnetChain.rpcUrls.default.http),
27912
27921
  [import_read19.lumiaMainnetChain.id]: buildTransport(import_read19.lumiaMainnetChain.rpcUrls.default.http),
27913
- [import_chains13.bsc.id]: (0, import_wagmi9.http)(),
27914
- [import_chains13.mainnet.id]: (0, import_wagmi9.http)()
27922
+ [import_chains13.bsc.id]: (0, import_wagmi10.http)(),
27923
+ [import_chains13.mainnet.id]: (0, import_wagmi10.http)()
27915
27924
  }
27916
27925
  });
27917
27926
  }
27918
27927
  });
27919
27928
 
27920
27929
  // src/context/WagmiContext.tsx
27921
- var import_wagmi10, import_jsx_runtime123, WagmiProvider2;
27930
+ var import_wagmi11, import_jsx_runtime123, WagmiProvider2;
27922
27931
  var init_WagmiContext = __esm({
27923
27932
  "src/context/WagmiContext.tsx"() {
27924
- import_wagmi10 = require("wagmi");
27933
+ import_wagmi11 = require("wagmi");
27925
27934
  init_wagmi();
27926
27935
  import_jsx_runtime123 = require("react/jsx-runtime");
27927
27936
  WagmiProvider2 = ({ children }) => {
27928
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_wagmi10.WagmiProvider, { config: wagmiConfig, children });
27937
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_wagmi11.WagmiProvider, { config: wagmiConfig, children });
27929
27938
  };
27930
27939
  }
27931
27940
  });
@@ -27950,7 +27959,7 @@ function Provider(props) {
27950
27959
  const { children, projectId, initialConfig = {}, callbacks } = props;
27951
27960
  const callbacksRef = (0, import_react91.useRef)(callbacks);
27952
27961
  (0, import_react91.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
27953
- const config = (0, import_react91.useRef)((0, import_lodash_es8.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
27962
+ const config = (0, import_react91.useRef)((0, import_lodash_es9.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
27954
27963
  const updateConfig = (0, import_react91.useCallback)((updates) => {
27955
27964
  const prev = config.current;
27956
27965
  const next = { ...prev };
@@ -27992,7 +28001,7 @@ function Provider(props) {
27992
28001
  }, []);
27993
28002
  (0, import_react91.useEffect)(() => {
27994
28003
  if (typeof window === "undefined" || !projectId) return;
27995
- const mergedConfig = (0, import_lodash_es8.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
28004
+ const mergedConfig = (0, import_lodash_es9.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
27996
28005
  updateConfig(mergedConfig);
27997
28006
  if (mergedConfig.wallet?.enabled) {
27998
28007
  clearLegacyWagmiStorage();
@@ -28054,11 +28063,11 @@ function Provider(props) {
28054
28063
  return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(RainbowKitProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(SessionProvider, { children }) }) });
28055
28064
  return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(WagmiProvider2, { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(SessionProvider, { children }) }) });
28056
28065
  }
28057
- var import_error_tracking4, import_lodash_es8, import_react91, import_jsx_runtime124, UIContext, useProviderConfig;
28066
+ var import_error_tracking4, import_lodash_es9, import_react91, import_jsx_runtime124, UIContext, useProviderConfig;
28058
28067
  var init_ProviderContext = __esm({
28059
28068
  "src/context/ProviderContext.tsx"() {
28060
28069
  import_error_tracking4 = require("@embarkai/core/internal/error-tracking");
28061
- import_lodash_es8 = require("lodash-es");
28070
+ import_lodash_es9 = require("lodash-es");
28062
28071
  import_react91 = require("react");
28063
28072
  init_initial();
28064
28073
  init_iframe_manager();
@@ -29396,7 +29405,7 @@ function useWalletMode() {
29396
29405
  // src/hooks/useDirectWallet.ts
29397
29406
  var import_react96 = require("react");
29398
29407
  var import_rainbowkit6 = require("@rainbow-me/rainbowkit");
29399
- var import_wagmi12 = require("wagmi");
29408
+ var import_wagmi13 = require("wagmi");
29400
29409
  init_useExternalWalletStore();
29401
29410
  init_useLayoutDataStore();
29402
29411
  function useDirectWallet() {
@@ -29405,7 +29414,7 @@ function useDirectWallet() {
29405
29414
  const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
29406
29415
  const connectorName = useExternalWalletStore((st) => st.connectorName);
29407
29416
  const clearExternalWallet = useExternalWalletStore((st) => st.clearExternalWallet);
29408
- const { disconnect: wagmiDisconnect } = (0, import_wagmi12.useDisconnect)();
29417
+ const { disconnect: wagmiDisconnect } = (0, import_wagmi13.useDisconnect)();
29409
29418
  const { openConnectModal } = (0, import_rainbowkit6.useConnectModal)();
29410
29419
  const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
29411
29420
  const connect = (0, import_react96.useCallback)(() => {
@@ -29432,13 +29441,13 @@ function useDirectWallet() {
29432
29441
  // src/hooks/useSendDirectTransaction.ts
29433
29442
  var import_react97 = require("react");
29434
29443
  var import_viem21 = require("viem");
29435
- var import_wagmi13 = require("wagmi");
29444
+ var import_wagmi14 = require("wagmi");
29436
29445
  init_useExternalWalletStore();
29437
29446
  function useSendDirectTransaction() {
29438
29447
  const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
29439
29448
  const externalChainId = useExternalWalletStore((st) => st.externalChainId);
29440
- const { sendTransactionAsync } = (0, import_wagmi13.useSendTransaction)();
29441
- const { switchChainAsync } = (0, import_wagmi13.useSwitchChain)();
29449
+ const { sendTransactionAsync } = (0, import_wagmi14.useSendTransaction)();
29450
+ const { switchChainAsync } = (0, import_wagmi14.useSwitchChain)();
29442
29451
  const [isPending, setIsPending] = (0, import_react97.useState)(false);
29443
29452
  const [error, setError] = (0, import_react97.useState)(null);
29444
29453
  const [txHash, setTxHash] = (0, import_react97.useState)(null);
@@ -29571,11 +29580,11 @@ function useTransferToLinkedWallet() {
29571
29580
  }
29572
29581
 
29573
29582
  // src/hooks/useNativeWalletSignature.ts
29574
- var import_wagmi14 = require("wagmi");
29583
+ var import_wagmi15 = require("wagmi");
29575
29584
  init_providers();
29576
29585
  function useNativeWalletSignature() {
29577
- const signMessage = (0, import_wagmi14.useSignMessage)();
29578
- const signTypedMessage = (0, import_wagmi14.useSignTypedData)();
29586
+ const signMessage = (0, import_wagmi15.useSignMessage)();
29587
+ const signTypedMessage = (0, import_wagmi15.useSignTypedData)();
29579
29588
  return {
29580
29589
  signMessage,
29581
29590
  /** EIP-712 signature */
@@ -29640,13 +29649,13 @@ init_useBlockscoutAssets();
29640
29649
  init_SessionContext();
29641
29650
  var import_read22 = require("@embarkai/core/read");
29642
29651
  var import_viem23 = require("viem");
29643
- var import_wagmi15 = require("wagmi");
29652
+ var import_wagmi16 = require("wagmi");
29644
29653
  function useTransactions() {
29645
29654
  const chainId = requireActiveChainId();
29646
29655
  const viemChain = (0, import_read22.getViemChain)(chainId);
29647
- const publicClient = (0, import_wagmi15.usePublicClient)({ chainId });
29648
- const { data: walletClient } = (0, import_wagmi15.useWalletClient)();
29649
- const { address } = (0, import_wagmi15.useAccount)();
29656
+ const publicClient = (0, import_wagmi16.usePublicClient)({ chainId });
29657
+ const { data: walletClient } = (0, import_wagmi16.useWalletClient)();
29658
+ const { address } = (0, import_wagmi16.useAccount)();
29650
29659
  const sendTransaction = async (params) => {
29651
29660
  if (!walletClient) {
29652
29661
  throw new Error("Wallet not connected");
@@ -29706,7 +29715,7 @@ function useTransactions() {
29706
29715
  init_SessionContext();
29707
29716
  var import_react100 = __toESM(require("react"), 1);
29708
29717
  var import_viem24 = require("viem");
29709
- var import_wagmi16 = require("wagmi");
29718
+ var import_wagmi17 = require("wagmi");
29710
29719
  var COMMON_TOKENS = [
29711
29720
  // Add real token addresses here when available
29712
29721
  // {
@@ -29723,7 +29732,7 @@ function useAssets(address) {
29723
29732
  data: nativeBalance,
29724
29733
  isLoading: nativeBalanceLoading,
29725
29734
  refetch: refetchNativeBalance
29726
- } = (0, import_wagmi16.useBalance)({
29735
+ } = (0, import_wagmi17.useBalance)({
29727
29736
  address,
29728
29737
  chainId,
29729
29738
  query: {
@@ -29737,7 +29746,7 @@ function useAssets(address) {
29737
29746
  args: [address],
29738
29747
  chainId
29739
29748
  }));
29740
- const readContractsResult = (0, import_wagmi16.useReadContracts)({
29749
+ const readContractsResult = (0, import_wagmi17.useReadContracts)({
29741
29750
  contracts: tokenContracts,
29742
29751
  query: {
29743
29752
  enabled: !!address && COMMON_TOKENS.length > 0
@@ -29818,7 +29827,7 @@ function useAssets(address) {
29818
29827
  }
29819
29828
  function useTokenInfo(tokenAddress) {
29820
29829
  const chainId = requireActiveChainId();
29821
- const readContractsResult = (0, import_wagmi16.useReadContracts)({
29830
+ const readContractsResult = (0, import_wagmi17.useReadContracts)({
29822
29831
  contracts: [
29823
29832
  { address: tokenAddress, abi: import_viem24.erc20Abi, functionName: "name", chainId },
29824
29833
  { address: tokenAddress, abi: import_viem24.erc20Abi, functionName: "symbol", chainId },
@@ -29849,7 +29858,7 @@ function useTokenBalance(tokenAddress, userAddress) {
29849
29858
  data: balance,
29850
29859
  isLoading,
29851
29860
  refetch
29852
- } = (0, import_wagmi16.useReadContract)({
29861
+ } = (0, import_wagmi17.useReadContract)({
29853
29862
  address: tokenAddress,
29854
29863
  abi: import_viem24.erc20Abi,
29855
29864
  functionName: "balanceOf",