@embarkai/ui-kit 0.4.44 → 0.4.45

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.
@@ -15,7 +15,7 @@
15
15
  <meta http-equiv="X-Content-Type-Options" content="nosniff" />
16
16
  <meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin" />
17
17
 
18
- <title>EmbarkAI Secure Wallet - iframe version 0.4.44</title>
18
+ <title>EmbarkAI Secure Wallet - iframe version 0.4.45</title>
19
19
 
20
20
  <!-- Styles will be injected by build process -->
21
21
  <style>
@@ -6391,7 +6391,7 @@ var SigningManager = class extends TokenRefreshApiClient {
6391
6391
  };
6392
6392
 
6393
6393
  // src/iframe/main.ts
6394
- var IFRAME_VERSION = "0.4.44";
6394
+ var IFRAME_VERSION = "0.4.45";
6395
6395
  var IframeWallet = class {
6396
6396
  constructor() {
6397
6397
  console.log("=".repeat(60));
package/dist/index.cjs CHANGED
@@ -9929,7 +9929,7 @@ function BinanceTxHistoryItem(props) {
9929
9929
  {
9930
9930
  className: cn(
9931
9931
  "relative",
9932
- "w-full p-[var(--ui-kit-pd)] space-y-1",
9932
+ "w-full p-[var(--ui-kit-pd)]",
9933
9933
  "rounded-[var(--ui-kit-el-bdrs)]",
9934
9934
  "bg-[var(--ui-kit-secondary)]"
9935
9935
  ),
@@ -9944,7 +9944,7 @@ function BinanceTxHistoryItem(props) {
9944
9944
  children: statusInfo?.type
9945
9945
  }
9946
9946
  ),
9947
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
9947
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-start gap-[var(--ui-kit-gap)] mb-1", children: [
9948
9948
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(TokenIcon, { className: "w-8 h-8" }),
9949
9949
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full", children: [
9950
9950
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { className: "text-lg leading-5", children: [
@@ -9959,7 +9959,7 @@ function BinanceTxHistoryItem(props) {
9959
9959
  ] })
9960
9960
  ] })
9961
9961
  ] }),
9962
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
9962
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between mb-1", children: [
9963
9963
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: cn("text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]"), children: [
9964
9964
  "ID: ",
9965
9965
  id
@@ -10003,7 +10003,10 @@ function BinanceTxHistory() {
10003
10003
  txStatuses: SHOW_STATUSES
10004
10004
  })
10005
10005
  });
10006
- const txList = historyData?.pages?.map((p) => p.data).flat(Infinity) || [];
10006
+ const txList = (0, import_react22.useMemo)(
10007
+ () => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
10008
+ [historyData]
10009
+ );
10007
10010
  const updateExpandable = (0, import_react22.useCallback)(
10008
10011
  (0, import_lodash_es7.debounce)(() => {
10009
10012
  useBuyMenuStore.getState().setRenderKey(`binance-history-loaded-${Date.now()}`);
@@ -11322,7 +11325,6 @@ function BuyMenu() {
11322
11325
  }
11323
11326
  ) })
11324
11327
  ] }),
11325
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-0" }, renderKey),
11326
11328
  showProviderTrigger && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
11327
11329
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
11328
11330
  /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
@@ -11345,6 +11347,7 @@ function BuyMenu() {
11345
11347
  )
11346
11348
  ] }),
11347
11349
  isProviderSelector ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ProviderSelector, { providers: AVAILABLE_RAMP_PROVIDERS.map((el) => ({ ...el, Icon: el.icon })) }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ProviderComponent, { walletAddress }),
11350
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-0" }, renderKey),
11348
11351
  error && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Highlight, { type: "error", children: error })
11349
11352
  ] })
11350
11353
  }
@@ -20068,7 +20071,10 @@ function useHyperlaneHistory() {
20068
20071
  queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
20069
20072
  });
20070
20073
  const { data: txHistoryData, isLoading: isBridgeTxHistoryLoading } = query;
20071
- const txList = txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [];
20074
+ const txList = (0, import_react65.useMemo)(
20075
+ () => txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [],
20076
+ [txHistoryData]
20077
+ );
20072
20078
  const updateExpandable = (0, import_react65.useCallback)(
20073
20079
  (0, import_lodash_es9.debounce)(() => {
20074
20080
  useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
@@ -24485,7 +24491,7 @@ var init_package = __esm({
24485
24491
  "package.json"() {
24486
24492
  package_default = {
24487
24493
  name: "@embarkai/ui-kit",
24488
- version: "0.4.44",
24494
+ version: "0.4.45",
24489
24495
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24490
24496
  type: "module",
24491
24497
  main: "./dist/index.cjs",
package/dist/index.js CHANGED
@@ -9851,7 +9851,7 @@ import { useInfiniteQuery } from "@tanstack/react-query";
9851
9851
  import dayjs from "dayjs";
9852
9852
  import { debounce as debounce4 } from "lodash-es";
9853
9853
  import { DownloadIcon, ExternalLinkIcon, LoaderIcon as LoaderIcon2 } from "lucide-react";
9854
- import { useCallback as useCallback11, useEffect as useEffect11 } from "react";
9854
+ import { useCallback as useCallback11, useEffect as useEffect11, useMemo as useMemo4 } from "react";
9855
9855
  import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
9856
9856
  function getStatusVariant(status) {
9857
9857
  switch (status) {
@@ -9899,7 +9899,7 @@ function BinanceTxHistoryItem(props) {
9899
9899
  {
9900
9900
  className: cn(
9901
9901
  "relative",
9902
- "w-full p-[var(--ui-kit-pd)] space-y-1",
9902
+ "w-full p-[var(--ui-kit-pd)]",
9903
9903
  "rounded-[var(--ui-kit-el-bdrs)]",
9904
9904
  "bg-[var(--ui-kit-secondary)]"
9905
9905
  ),
@@ -9914,7 +9914,7 @@ function BinanceTxHistoryItem(props) {
9914
9914
  children: statusInfo?.type
9915
9915
  }
9916
9916
  ),
9917
- /* @__PURE__ */ jsxs30("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
9917
+ /* @__PURE__ */ jsxs30("div", { className: "w-full flex items-start gap-[var(--ui-kit-gap)] mb-1", children: [
9918
9918
  /* @__PURE__ */ jsx35(TokenIcon, { className: "w-8 h-8" }),
9919
9919
  /* @__PURE__ */ jsxs30("div", { className: "w-full", children: [
9920
9920
  /* @__PURE__ */ jsxs30("p", { className: "text-lg leading-5", children: [
@@ -9929,7 +9929,7 @@ function BinanceTxHistoryItem(props) {
9929
9929
  ] })
9930
9930
  ] })
9931
9931
  ] }),
9932
- /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
9932
+ /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between mb-1", children: [
9933
9933
  /* @__PURE__ */ jsxs30("span", { className: cn("text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]"), children: [
9934
9934
  "ID: ",
9935
9935
  id
@@ -9973,7 +9973,10 @@ function BinanceTxHistory() {
9973
9973
  txStatuses: SHOW_STATUSES
9974
9974
  })
9975
9975
  });
9976
- const txList = historyData?.pages?.map((p) => p.data).flat(Infinity) || [];
9976
+ const txList = useMemo4(
9977
+ () => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
9978
+ [historyData]
9979
+ );
9977
9980
  const updateExpandable = useCallback11(
9978
9981
  debounce4(() => {
9979
9982
  useBuyMenuStore.getState().setRenderKey(`binance-history-loaded-${Date.now()}`);
@@ -11287,7 +11290,6 @@ function BuyMenu() {
11287
11290
  }
11288
11291
  ) })
11289
11292
  ] }),
11290
- /* @__PURE__ */ jsx41("div", { className: "w-full h-0" }, renderKey),
11291
11293
  showProviderTrigger && /* @__PURE__ */ jsxs36(Fragment14, { children: [
11292
11294
  /* @__PURE__ */ jsx41("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
11293
11295
  /* @__PURE__ */ jsxs36(
@@ -11310,6 +11312,7 @@ function BuyMenu() {
11310
11312
  )
11311
11313
  ] }),
11312
11314
  isProviderSelector ? /* @__PURE__ */ jsx41(ProviderSelector, { providers: AVAILABLE_RAMP_PROVIDERS.map((el) => ({ ...el, Icon: el.icon })) }) : /* @__PURE__ */ jsx41(ProviderComponent, { walletAddress }),
11315
+ /* @__PURE__ */ jsx41("div", { className: "w-full h-0" }, renderKey),
11313
11316
  error && /* @__PURE__ */ jsx41(Highlight, { type: "error", children: error })
11314
11317
  ] })
11315
11318
  }
@@ -14097,7 +14100,7 @@ var init_hooks = __esm({
14097
14100
 
14098
14101
  // src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
14099
14102
  import { Cloud, Cpu as Cpu3, FileDown, FileUp } from "lucide-react";
14100
- import { Fragment as Fragment17, useMemo as useMemo4 } from "react";
14103
+ import { Fragment as Fragment17, useMemo as useMemo5 } from "react";
14101
14104
  import { jsx as jsx54, jsxs as jsxs49 } from "react/jsx-runtime";
14102
14105
  function MethodSelector(props) {
14103
14106
  const { mode = "restore", serverRecoveryStatus } = props;
@@ -14111,7 +14114,7 @@ function MethodSelector(props) {
14111
14114
  setError,
14112
14115
  setSuccess
14113
14116
  } = useRestoreStore();
14114
- const recoveryRenderMethods = useMemo4(() => {
14117
+ const recoveryRenderMethods = useMemo5(() => {
14115
14118
  const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
14116
14119
  let data = null;
14117
14120
  switch (true) {
@@ -16725,7 +16728,7 @@ var init_ProviderCard = __esm({
16725
16728
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
16726
16729
  import { fromPairs } from "lodash-es";
16727
16730
  import { AlertTriangle as AlertTriangle4, ArrowLeft as ArrowLeft14, Loader as Loader14 } from "lucide-react";
16728
- import { useMemo as useMemo5 } from "react";
16731
+ import { useMemo as useMemo6 } from "react";
16729
16732
  import { Fragment as Fragment28, jsx as jsx73, jsxs as jsxs68 } from "react/jsx-runtime";
16730
16733
  function getProviderName(provider) {
16731
16734
  return PROVIDERS_META[provider].name || provider;
@@ -16767,7 +16770,7 @@ function ManageWalletMenu() {
16767
16770
  } = useManageWalletStore();
16768
16771
  const configuredProviders = getConfiguredProviders(config.current);
16769
16772
  const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
16770
- const renderProviders = useMemo5(() => {
16773
+ const renderProviders = useMemo6(() => {
16771
16774
  const normalizeProviderName = (name) => {
16772
16775
  if (name === "x") return "twitter";
16773
16776
  return name;
@@ -17518,7 +17521,7 @@ var init_NicknameMenu2 = __esm({
17518
17521
 
17519
17522
  // src/internal/hooks/useResolvedPublicClient.ts
17520
17523
  import { createPublicClientForChain as createPublicClientForChain5, getChainConfig as getChainConfig8 } from "@embarkai/core/read";
17521
- import { useMemo as useMemo6 } from "react";
17524
+ import { useMemo as useMemo7 } from "react";
17522
17525
  function getCachedPublicClient(chainId) {
17523
17526
  const cachedClient = publicClientByChainId.get(chainId);
17524
17527
  if (cachedClient) return cachedClient;
@@ -17532,11 +17535,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
17532
17535
  const activeChainConfig = useSession((st) => st.chainConfig);
17533
17536
  const resolvedChainId = chainId ?? activeChainId;
17534
17537
  const shouldUseActiveClient = !chainId || chainId === activeChainId;
17535
- const chainConfig = useMemo6(() => {
17538
+ const chainConfig = useMemo7(() => {
17536
17539
  if (shouldUseActiveClient) return activeChainConfig;
17537
17540
  return getChainConfig8(chainId);
17538
17541
  }, [activeChainConfig, chainId, shouldUseActiveClient]);
17539
- const publicClient = useMemo6(() => {
17542
+ const publicClient = useMemo7(() => {
17540
17543
  if (shouldUseActiveClient) return activePublicClient;
17541
17544
  if (!chainId) return activePublicClient;
17542
17545
  try {
@@ -17563,13 +17566,13 @@ var init_useResolvedPublicClient = __esm({
17563
17566
 
17564
17567
  // src/internal/hooks/useWatchTokens.ts
17565
17568
  import { useQuery as useQuery14 } from "@tanstack/react-query";
17566
- import { useMemo as useMemo7 } from "react";
17569
+ import { useMemo as useMemo8 } from "react";
17567
17570
  import { erc20Abi, formatUnits as formatUnits2 } from "viem";
17568
17571
  function useWatchTokens(options) {
17569
17572
  const { address, chainId, enabled = true } = options;
17570
17573
  const { config } = useProviderConfig();
17571
17574
  const { publicClient, resolvedChainId } = useResolvedPublicClient(chainId, "useWatchTokens");
17572
- const watchTokens = useMemo7(() => {
17575
+ const watchTokens = useMemo8(() => {
17573
17576
  const allWatchTokens = config.current.watchTokens;
17574
17577
  const tokensForChain = resolvedChainId ? allWatchTokens?.[resolvedChainId] || [] : [];
17575
17578
  return tokensForChain;
@@ -17663,7 +17666,7 @@ var init_useWatchTokens = __esm({
17663
17666
  // src/internal/hooks/useBlockscoutAssets.ts
17664
17667
  import { createBlockscoutClient } from "@embarkai/core/clients";
17665
17668
  import { useQuery as useQuery15 } from "@tanstack/react-query";
17666
- import { useCallback as useCallback21, useMemo as useMemo8, useRef as useRef16 } from "react";
17669
+ import { useCallback as useCallback21, useMemo as useMemo9, useRef as useRef16 } from "react";
17667
17670
  import { formatEther, formatUnits as formatUnits3 } from "viem";
17668
17671
  function resolveIpfsUri(uri) {
17669
17672
  if (!uri) return "";
@@ -17795,7 +17798,7 @@ function useBlockscoutAssets(options) {
17795
17798
  const customTokenBalancesQuery = portfolioConfig?.tokenBalancesQuery;
17796
17799
  const customTokenBalancesQueryKey = portfolioConfig?.tokenBalancesQueryKey;
17797
17800
  const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
17798
- const blockscoutClient = useMemo8(
17801
+ const blockscoutClient = useMemo9(
17799
17802
  () => blockscoutApiUrl ? createBlockscoutClient({ baseUrl: blockscoutApiUrl }) : null,
17800
17803
  [blockscoutApiUrl]
17801
17804
  );
@@ -17868,7 +17871,7 @@ function useBlockscoutAssets(options) {
17868
17871
  retry: 2,
17869
17872
  retryDelay: 1e3
17870
17873
  });
17871
- const erc20TokenAddresses = useMemo8(() => {
17874
+ const erc20TokenAddresses = useMemo9(() => {
17872
17875
  if (!tokenBalances) return [];
17873
17876
  return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
17874
17877
  }, [tokenBalances]);
@@ -17912,7 +17915,7 @@ function useBlockscoutAssets(options) {
17912
17915
  gcTime: BLOCKSCOUT_QUERY_GC_TIME,
17913
17916
  retry: 1
17914
17917
  });
17915
- const assets = useMemo8(() => {
17918
+ const assets = useMemo9(() => {
17916
17919
  const result = [];
17917
17920
  const addedAddresses = /* @__PURE__ */ new Set();
17918
17921
  if (nativeBalanceData) {
@@ -17958,7 +17961,7 @@ function useBlockscoutAssets(options) {
17958
17961
  }
17959
17962
  return result;
17960
17963
  }, [nativeBalanceData, tokenBalances, nftItems, erc3643Results, watchTokenAssets, chainConfig]);
17961
- const nativeBalance = useMemo8(() => {
17964
+ const nativeBalance = useMemo9(() => {
17962
17965
  if (!nativeBalanceData) return null;
17963
17966
  return {
17964
17967
  value: nativeBalanceData.value,
@@ -17966,7 +17969,7 @@ function useBlockscoutAssets(options) {
17966
17969
  symbol: nativeBalanceData.symbol
17967
17970
  };
17968
17971
  }, [nativeBalanceData]);
17969
- const error = useMemo8(() => {
17972
+ const error = useMemo9(() => {
17970
17973
  if (!tokensError) return null;
17971
17974
  return createError(tokensError);
17972
17975
  }, [tokensError]);
@@ -18429,7 +18432,7 @@ var init_nickname_fingerprint = __esm({
18429
18432
  // src/internal/components/ReceiveMenu/ReceiveMenu.tsx
18430
18433
  import { ArrowLeft as ArrowLeft17, CheckCircle2 as CheckCircle23, Copy as Copy3, Info as Info5, Loader as Loader21, Shield } from "lucide-react";
18431
18434
  import QRCode from "qrcode";
18432
- import { useCallback as useCallback23, useEffect as useEffect33, useMemo as useMemo9, useState as useState23 } from "react";
18435
+ import { useCallback as useCallback23, useEffect as useEffect33, useMemo as useMemo10, useState as useState23 } from "react";
18433
18436
  import { Fragment as Fragment31, jsx as jsx81, jsxs as jsxs76 } from "react/jsx-runtime";
18434
18437
  function ReceiveMenu() {
18435
18438
  const session = useSession((st) => st.session);
@@ -18443,7 +18446,7 @@ function ReceiveMenu() {
18443
18446
  const [qrCodeUrl, setQrCodeUrl] = useState23("");
18444
18447
  const [copied, setCopied] = useState23(false);
18445
18448
  const [fingerprintCopied, setFingerprintCopied] = useState23(false);
18446
- const fingerprint = useMemo9(() => {
18449
+ const fingerprint = useMemo10(() => {
18447
18450
  if (!session?.ownerAddress) return null;
18448
18451
  try {
18449
18452
  return generateFingerprint(session.ownerAddress);
@@ -19971,7 +19974,7 @@ var init_utils8 = __esm({
19971
19974
  // src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts
19972
19975
  import { useInfiniteQuery as useInfiniteQuery3 } from "@tanstack/react-query";
19973
19976
  import { debounce as debounce6 } from "lodash-es";
19974
- import { useCallback as useCallback24, useEffect as useEffect36 } from "react";
19977
+ import { useCallback as useCallback24, useEffect as useEffect36, useMemo as useMemo11 } from "react";
19975
19978
  function useHyperlaneHistory() {
19976
19979
  const address = useSession((st) => st.address);
19977
19980
  const page = useLayoutDataStore((st) => st.page);
@@ -19987,7 +19990,10 @@ function useHyperlaneHistory() {
19987
19990
  queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
19988
19991
  });
19989
19992
  const { data: txHistoryData, isLoading: isBridgeTxHistoryLoading } = query;
19990
- const txList = txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [];
19993
+ const txList = useMemo11(
19994
+ () => txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [],
19995
+ [txHistoryData]
19996
+ );
19991
19997
  const updateExpandable = useCallback24(
19992
19998
  debounce6(() => {
19993
19999
  useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
@@ -21281,14 +21287,14 @@ var init_HistoryStep = __esm({
21281
21287
 
21282
21288
  // src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx
21283
21289
  import { ArrowLeftRightIcon as ArrowLeftRightIcon2 } from "lucide-react";
21284
- import { useMemo as useMemo10, useState as useState27 } from "react";
21290
+ import { useMemo as useMemo12, useState as useState27 } from "react";
21285
21291
  import { Fragment as Fragment37, jsx as jsx98, jsxs as jsxs90 } from "react/jsx-runtime";
21286
21292
  function SelectAssetRoute(props) {
21287
21293
  const { hyperlaneWarpRoutes } = props;
21288
21294
  const { t } = useT();
21289
21295
  const [isTokenSymbolSelector, setIsTokenSymbolSelector] = useState27(false);
21290
21296
  const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
21291
- const tokenList = useMemo10(() => {
21297
+ const tokenList = useMemo12(() => {
21292
21298
  const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
21293
21299
  const uniqueTokens = Array.from(new Set(tokens));
21294
21300
  return uniqueTokens.map((symbol) => ({
@@ -21572,7 +21578,7 @@ var init_useErc3643Compliance = __esm({
21572
21578
 
21573
21579
  // src/hooks/useNicknameResolve.ts
21574
21580
  import { useQuery as useQuery21 } from "@tanstack/react-query";
21575
- import { useState as useState28, useEffect as useEffect41, useMemo as useMemo11 } from "react";
21581
+ import { useState as useState28, useEffect as useEffect41, useMemo as useMemo13 } from "react";
21576
21582
  function looksLikeNickname(input) {
21577
21583
  if (!input) return false;
21578
21584
  if (input.startsWith("0x")) return false;
@@ -21612,7 +21618,7 @@ function useNicknameResolve(input, options) {
21612
21618
  const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
21613
21619
  const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
21614
21620
  const isFrozen = query.data?.isFrozen ?? false;
21615
- const fingerprintVerification = useMemo11(() => {
21621
+ const fingerprintVerification = useMemo13(() => {
21616
21622
  if (!query.data?.owner || !query.data?.fingerprint) {
21617
21623
  return null;
21618
21624
  }
@@ -22574,7 +22580,7 @@ var init_sendSteps = __esm({
22574
22580
 
22575
22581
  // src/internal/components/SendMenu/send/SendMenu.tsx
22576
22582
  import { CheckCircle2 as CheckCircle26, Loader as Loader31 } from "lucide-react";
22577
- import { useEffect as useEffect42, useMemo as useMemo12 } from "react";
22583
+ import { useEffect as useEffect42, useMemo as useMemo14 } from "react";
22578
22584
  import { parseUnits as parseUnits2 } from "viem";
22579
22585
  import { Fragment as Fragment42, jsx as jsx107, jsxs as jsxs98 } from "react/jsx-runtime";
22580
22586
  function SendMenu() {
@@ -22635,7 +22641,7 @@ function SendMenu() {
22635
22641
  const isNicknameInput = looksLikeNickname(recipient);
22636
22642
  const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
22637
22643
  const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
22638
- const complianceAmount = useMemo12(() => {
22644
+ const complianceAmount = useMemo14(() => {
22639
22645
  if (!isSecurity || !amount || !selectedAsset) return void 0;
22640
22646
  try {
22641
22647
  return parseUnits2(amount, selectedAsset.decimals || 18);
@@ -24386,7 +24392,7 @@ var init_package = __esm({
24386
24392
  "package.json"() {
24387
24393
  package_default = {
24388
24394
  name: "@embarkai/ui-kit",
24389
- version: "0.4.44",
24395
+ version: "0.4.45",
24390
24396
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24391
24397
  type: "module",
24392
24398
  main: "./dist/index.cjs",
@@ -28119,14 +28125,14 @@ var init_rainbowkit = __esm({
28119
28125
 
28120
28126
  // src/context/RainbowKitContext.tsx
28121
28127
  import { darkTheme, lightTheme, RainbowKitProvider as NativeRainbowKitProvider } from "@rainbow-me/rainbowkit";
28122
- import { useMemo as useMemo13 } from "react";
28128
+ import { useMemo as useMemo15 } from "react";
28123
28129
  import { WagmiProvider } from "wagmi";
28124
28130
  import "@rainbow-me/rainbowkit/styles.css";
28125
28131
  import { Fragment as Fragment46, jsx as jsx122 } from "react/jsx-runtime";
28126
28132
  function RainbowKitProvider({ children }) {
28127
28133
  const config = useProviderConfig().config;
28128
28134
  const colorMode = useLayoutStore((st) => st.colorMode);
28129
- const rainbowConfig = useMemo13(
28135
+ const rainbowConfig = useMemo15(
28130
28136
  () => createRainbowConfig({
28131
28137
  projectId: config.current?.wallet?.walletConnectProjectId,
28132
28138
  allowedWallets: config.current?.wallet?.allowedWallets,
@@ -28140,7 +28146,7 @@ function RainbowKitProvider({ children }) {
28140
28146
  config.current?.wallet?.walletConnectProjectId
28141
28147
  ]
28142
28148
  );
28143
- const customTheme = useMemo13(() => {
28149
+ const customTheme = useMemo15(() => {
28144
28150
  if (!config.current?.wallet?.enabled) return {};
28145
28151
  return colorMode === "dark" ? {
28146
28152
  ...darkTheme(),
@@ -28201,7 +28207,7 @@ import {
28201
28207
  useCallback as useCallback33,
28202
28208
  useContext,
28203
28209
  useEffect as useEffect50,
28204
- useMemo as useMemo14,
28210
+ useMemo as useMemo16,
28205
28211
  useRef as useRef21
28206
28212
  } from "react";
28207
28213
  import { jsx as jsx124 } from "react/jsx-runtime";
@@ -28313,7 +28319,7 @@ function Provider(props) {
28313
28319
  console.error("[PROVIDER] Error setting up iframe manager:", error);
28314
28320
  }
28315
28321
  }, [projectId]);
28316
- const contextValue = useMemo14(
28322
+ const contextValue = useMemo16(
28317
28323
  () => ({
28318
28324
  config,
28319
28325
  updateConfig,
@@ -28466,7 +28472,7 @@ init_pro_mode();
28466
28472
  init_utils2();
28467
28473
  import { useQuery as useQuery26 } from "@tanstack/react-query";
28468
28474
  import { Cloud as Cloud4, Laptop as Laptop2, Loader as Loader35, Shield as Shield3 } from "lucide-react";
28469
- import { useEffect as useEffect51, useMemo as useMemo15 } from "react";
28475
+ import { useEffect as useEffect51, useMemo as useMemo17 } from "react";
28470
28476
  import { Fragment as Fragment47, jsx as jsx126, jsxs as jsxs111 } from "react/jsx-runtime";
28471
28477
  function getFormattedStatus(label, status, showStatus) {
28472
28478
  const isStatus = showStatus && status && status !== "idle" && status !== "ready";
@@ -28494,7 +28500,7 @@ function ConnectWalletButton(props) {
28494
28500
  queryFn: getUserProfile
28495
28501
  });
28496
28502
  const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
28497
- const indicators = useMemo15(() => {
28503
+ const indicators = useMemo17(() => {
28498
28504
  const userId = session?.mpcUserId;
28499
28505
  if (!userId) return { server: false, local: false, backup: false };
28500
28506
  const server = jwtTokenManager2.getHasKeyshare() ?? false;
@@ -29571,7 +29577,7 @@ function useSendDirectTransaction() {
29571
29577
  init_SessionContext();
29572
29578
  init_account2();
29573
29579
  init_linkedProfiles();
29574
- import { useCallback as useCallback40, useMemo as useMemo16, useState as useState39 } from "react";
29580
+ import { useCallback as useCallback40, useMemo as useMemo18, useState as useState39 } from "react";
29575
29581
  import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
29576
29582
  var ERC20_TRANSFER_ABI2 = [
29577
29583
  {
@@ -29590,7 +29596,7 @@ function useTransferToLinkedWallet() {
29590
29596
  const [isPending, setIsPending] = useState39(false);
29591
29597
  const [error, setError] = useState39(null);
29592
29598
  const [userOpHash, setUserOpHash] = useState39(null);
29593
- const linkedWallets = useMemo16(
29599
+ const linkedWallets = useMemo18(
29594
29600
  () => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
29595
29601
  [profiles]
29596
29602
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embarkai/ui-kit",
3
- "version": "0.4.44",
3
+ "version": "0.4.45",
4
4
  "description": "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",