@embarkai/ui-kit 0.4.59 → 0.4.60

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.js CHANGED
@@ -842,8 +842,8 @@ var init_constants = __esm({
842
842
  MAX_CONTENT_HEIGHT = 640;
843
843
  MAIN_DIALOG_ANIMATION_SPEED = 375;
844
844
  Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
845
- BLOCKSCOUT_QUERY_STALE_TIME = 30 * 1e3;
846
- BLOCKSCOUT_QUERY_GC_TIME = 5 * 60 * 1e3;
845
+ BLOCKSCOUT_QUERY_STALE_TIME = 3e4;
846
+ BLOCKSCOUT_QUERY_GC_TIME = 3e5;
847
847
  BLOCKSCOUT_REFRESH_DEBOUNCE = 2e3;
848
848
  IPFS_GATEWAY = "https://ipfs.io/ipfs/";
849
849
  PROVIDERS_META = {
@@ -867,31 +867,31 @@ var PageKey, useLayoutDataStore;
867
867
  var init_useLayoutDataStore = __esm({
868
868
  "src/internal/hooks/useLayoutDataStore.ts"() {
869
869
  init_constants();
870
- PageKey = /* @__PURE__ */ ((PageKey4) => {
871
- PageKey4["AUTH"] = "auth";
872
- PageKey4["LANGUAGES"] = "languages";
873
- PageKey4["TERMS_OF_SERVICE"] = "terms-of-service";
874
- PageKey4["MAIN_MENU"] = "main-menu";
875
- PageKey4["SETTINGS"] = "settings";
876
- PageKey4["SEND"] = "send";
877
- PageKey4["RECEIVE"] = "receive";
878
- PageKey4["BUY"] = "buy";
879
- PageKey4["KYC"] = "kyc";
880
- PageKey4["TRANSACTIONS"] = "transactions";
881
- PageKey4["ASSETS"] = "assets";
882
- PageKey4["MANAGE_WALLET"] = "manage-wallet";
883
- PageKey4["UNLINK_PROVIDER"] = "unlink-provider";
884
- PageKey4["SECURITY"] = "security";
885
- PageKey4["KEYSARE_BACKUP"] = "keysare-backup";
886
- PageKey4["KEYSHARE_RESTORE"] = "keyshare-restore";
887
- PageKey4["CHAIN"] = "chain";
888
- PageKey4["CHAIN_SWITCH_REQUEST"] = "chain-switch-request";
889
- PageKey4["NICKNAME_SETTINGS"] = "nickname-settings";
890
- PageKey4["DEVICES"] = "devices";
891
- PageKey4["DEVICE_LINK"] = "device-link";
892
- PageKey4["DEVICE_MANAGE"] = "device-manage";
893
- PageKey4["DEVICE_RESTORE"] = "device-restore";
894
- return PageKey4;
870
+ PageKey = /* @__PURE__ */ ((PageKey3) => {
871
+ PageKey3["AUTH"] = "auth";
872
+ PageKey3["LANGUAGES"] = "languages";
873
+ PageKey3["TERMS_OF_SERVICE"] = "terms-of-service";
874
+ PageKey3["MAIN_MENU"] = "main-menu";
875
+ PageKey3["SETTINGS"] = "settings";
876
+ PageKey3["SEND"] = "send";
877
+ PageKey3["RECEIVE"] = "receive";
878
+ PageKey3["BUY"] = "buy";
879
+ PageKey3["KYC"] = "kyc";
880
+ PageKey3["TRANSACTIONS"] = "transactions";
881
+ PageKey3["ASSETS"] = "assets";
882
+ PageKey3["MANAGE_WALLET"] = "manage-wallet";
883
+ PageKey3["UNLINK_PROVIDER"] = "unlink-provider";
884
+ PageKey3["SECURITY"] = "security";
885
+ PageKey3["KEYSARE_BACKUP"] = "keysare-backup";
886
+ PageKey3["KEYSHARE_RESTORE"] = "keyshare-restore";
887
+ PageKey3["CHAIN"] = "chain";
888
+ PageKey3["CHAIN_SWITCH_REQUEST"] = "chain-switch-request";
889
+ PageKey3["NICKNAME_SETTINGS"] = "nickname-settings";
890
+ PageKey3["DEVICES"] = "devices";
891
+ PageKey3["DEVICE_LINK"] = "device-link";
892
+ PageKey3["DEVICE_MANAGE"] = "device-manage";
893
+ PageKey3["DEVICE_RESTORE"] = "device-restore";
894
+ return PageKey3;
895
895
  })(PageKey || {});
896
896
  useLayoutDataStore = create((set) => ({
897
897
  page: null,
@@ -934,92 +934,88 @@ var init_useLayoutDataStore = __esm({
934
934
  });
935
935
 
936
936
  // src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
937
+ import { NON_BLOCKSCOUT_CORE_TOKENS } from "@embarkai/core/read";
937
938
  import { useQuery } from "@tanstack/react-query";
938
939
  import { useEffect, useState } from "react";
939
- import { formatUnits } from "viem";
940
+ import { erc20Abi, formatUnits } from "viem";
940
941
  async function getAssetRate(symbol = "LUMIA", fiat = "USDT") {
941
942
  if (SKIP_SYMBOLS.includes(symbol) || symbol === fiat) return { symbol, price: "1" };
942
- const assetURL = `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.toUpperCase()}${fiat.toUpperCase()}`;
943
- const response = await fetch(assetURL);
944
- return await response.json();
943
+ try {
944
+ const assetURL = `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.toUpperCase()}${fiat.toUpperCase()}`;
945
+ const response = await fetch(assetURL);
946
+ return await response.json();
947
+ } catch (err) {
948
+ console.warn("[BALANCE FEED] Failed to fetch asset rate:", { symbol, fiat, error: err });
949
+ return { symbol, price: "1" };
950
+ }
945
951
  }
946
952
  function BalanceFeedProvider() {
947
953
  const config = useProviderConfig().config;
948
954
  const address = useSession((st) => st.address);
949
955
  const chainConfig = useSession((st) => st.chainConfig);
950
956
  const publicClient = useSession((st) => st.publicClient);
951
- const { setCryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol } = useLayoutDataStore();
952
957
  const [balanceSymbol, setBalanceSymbol] = useState(null);
953
- useEffect(() => {
954
- const { assets, showBalanceAs: customBalanceSymbol } = config.current?.projectAssets || {};
955
- const { balanceQuery, balanceQueryKey } = assets?.find((a) => a.symbol === customBalanceSymbol) || {};
956
- const isCustom = !!customBalanceSymbol && !!balanceQuery && !!balanceQueryKey;
957
- setBalanceSymbol(isCustom ? customBalanceSymbol : chainConfig?.nativeCurrency.symbol);
958
- }, [config, address, chainConfig]);
959
- const isNativeBalanceFeedEnabled = balanceSymbol === chainConfig?.nativeCurrency.symbol;
960
- const nativeSymbol = chainConfig?.nativeCurrency?.symbol || "LUMIA";
961
- const { data: balance } = useQuery({
962
- // Include chainId in query key to refetch when chain changes
963
- queryKey: [BALANCE_QUERY_KEY, address, chainConfig?.id],
964
- enabled: !!address && !!publicClient && !!isNativeBalanceFeedEnabled,
958
+ useEffect(
959
+ () => setBalanceSymbol(config?.current?.showBalanceAs || chainConfig.nativeCurrency.symbol),
960
+ [config, address, chainConfig]
961
+ );
962
+ useEffect(
963
+ () => useLayoutDataStore.getState().setCryptoSymbol(chainConfig?.nativeCurrency?.symbol || "LUMIA"),
964
+ [chainConfig]
965
+ );
966
+ const { data: cryptoRate } = useQuery({
967
+ queryKey: [LUMIA_RATE_QUERY_KEY, address, balanceSymbol],
968
+ enabled: !!address && !!balanceSymbol,
969
+ refetchInterval: BALANCE_POLLING_INTERVAL * 2,
970
+ queryFn: async () => await getAssetRate(balanceSymbol, "USDT")
971
+ });
972
+ const isNativeBalanceFeedEnabled = !!balanceSymbol && !!chainConfig?.nativeCurrency.symbol && balanceSymbol === chainConfig?.nativeCurrency.symbol;
973
+ const { data: nativeBalance } = useQuery({
974
+ enabled: !!isNativeBalanceFeedEnabled && !!address && !!publicClient,
975
+ retry: false,
965
976
  refetchInterval: BALANCE_POLLING_INTERVAL,
977
+ queryKey: [NATIVE_BALANCE_QUERY_KEY, address, chainConfig?.nativeCurrency?.symbol],
978
+ // Include chainId in query key to refetch when chain changes
966
979
  queryFn: async () => {
967
- if (!address || !publicClient) return null;
968
980
  const balanceValue = await publicClient.getBalance({ address });
969
981
  return {
970
982
  decimals: chainConfig?.nativeCurrency?.decimals || 18,
971
983
  formatted: formatUnits(balanceValue, chainConfig?.nativeCurrency?.decimals || 18),
972
- symbol: nativeSymbol,
984
+ symbol: chainConfig?.nativeCurrency?.symbol || "LUMIA",
973
985
  value: balanceValue
974
986
  };
975
987
  }
976
988
  });
977
989
  useEffect(() => {
978
- setCryptoSymbol(nativeSymbol);
979
- }, [nativeSymbol, setCryptoSymbol]);
980
- const { data: cryptoRate } = useQuery({
981
- queryKey: [LUMIA_RATE_QUERY_KEY, address, nativeSymbol],
982
- enabled: !!address && !!isNativeBalanceFeedEnabled,
983
- refetchInterval: BALANCE_POLLING_INTERVAL,
984
- queryFn: async () => getAssetRate(nativeSymbol, "USDT")
985
- });
986
- useEffect(() => {
987
- const rate = cryptoRate ? Number(cryptoRate.price) : null;
988
- if (!isNativeBalanceFeedEnabled || !balance || !rate) return;
989
- const fiatBalanceValue = Number(formatUnits(BigInt(balance.value || "0"), balance.decimals || 18));
990
+ if (!isNativeBalanceFeedEnabled) return;
991
+ const nativeSymbol = chainConfig?.nativeCurrency?.symbol || "LUMIA";
992
+ const rate = Number(cryptoRate?.price || "1");
993
+ const formattedBalance = Number(formatUnits(BigInt(nativeBalance?.value || "0"), nativeBalance?.decimals || 18));
994
+ const { setCryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol } = useLayoutDataStore.getState();
990
995
  setCryptoRate(rate);
991
996
  setCryptoSymbol(nativeSymbol);
992
997
  setFiatSymbol("USD");
993
- setFiatBalance(fiatBalanceValue * rate);
994
- setBalance(balance);
995
- }, [
996
- isNativeBalanceFeedEnabled,
997
- balance,
998
- cryptoRate,
999
- nativeSymbol,
1000
- setFiatBalance,
1001
- setCryptoRate,
1002
- setBalance,
1003
- setCryptoSymbol,
1004
- setFiatSymbol
1005
- ]);
998
+ setFiatBalance(formattedBalance * rate);
999
+ setBalance(nativeBalance || { decimals: 18, formatted: "0", symbol: nativeSymbol, value: BigInt(0) });
1000
+ }, [isNativeBalanceFeedEnabled, nativeBalance, cryptoRate, chainConfig]);
1006
1001
  const {
1007
- balanceQuery: customBalanceQuery,
1008
- balanceQueryKey: CUSTOM_BALANCE_QUERY_KEY,
1009
- symbol: customAssetSymbol
1010
- } = config.current?.projectAssets?.assets?.find((a) => a.symbol === config.current?.projectAssets?.showBalanceAs) || {};
1011
- const isCustomBalanceEnabled = balanceSymbol === customAssetSymbol;
1012
- const { data: customBalance } = useQuery({
1002
+ balanceQuery: projectAssetBalanceQueryFn,
1003
+ balanceQueryKey: PROJECT_ASSET_BALANCE_QUERY_KEY,
1004
+ symbol: projectAssetAssetSymbol
1005
+ } = config.current?.projectAssets?.assets?.find((a) => a.symbol === config.current?.showBalanceAs) || {};
1006
+ const isProjectAssetBalanceEnabled = !!balanceSymbol && !!projectAssetAssetSymbol && balanceSymbol === projectAssetAssetSymbol;
1007
+ const { data: projectAssetBalance } = useQuery({
1013
1008
  retry: false,
1014
1009
  refetchInterval: BALANCE_POLLING_INTERVAL,
1015
- enabled: !!address && !!isCustomBalanceEnabled,
1016
- queryKey: CUSTOM_BALANCE_QUERY_KEY,
1010
+ enabled: !!address && !!isProjectAssetBalanceEnabled,
1011
+ queryKey: PROJECT_ASSET_BALANCE_QUERY_KEY,
1017
1012
  // should be invalidated by host app via provided queryKey
1018
- queryFn: async () => await customBalanceQuery?.()
1013
+ queryFn: async () => await projectAssetBalanceQueryFn?.()
1019
1014
  });
1020
1015
  useEffect(() => {
1021
- if (!isCustomBalanceEnabled || !customBalance) return;
1022
- const { cryptoFiatRate, fiatFormatted, cryptoFormatted, cryptoSymbol, fiatSymbol } = customBalance;
1016
+ if (!isProjectAssetBalanceEnabled || !projectAssetBalance) return;
1017
+ const { cryptoFiatRate, fiatFormatted, cryptoFormatted, cryptoSymbol, fiatSymbol } = projectAssetBalance;
1018
+ const { setCryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol } = useLayoutDataStore.getState();
1023
1019
  if (!!cryptoSymbol) setCryptoSymbol(cryptoSymbol?.toUpperCase());
1024
1020
  if (!!fiatSymbol) setFiatSymbol(fiatSymbol?.toUpperCase());
1025
1021
  setCryptoRate(cryptoFiatRate || 1);
@@ -1027,31 +1023,71 @@ function BalanceFeedProvider() {
1027
1023
  setBalance({
1028
1024
  decimals: 18,
1029
1025
  formatted: cryptoFormatted?.toString() || "0",
1030
- symbol: cryptoSymbol?.toUpperCase() || nativeSymbol,
1026
+ symbol: cryptoSymbol?.toUpperCase(),
1031
1027
  value: BigInt(Math.floor((cryptoFormatted || 0) * 10 ** 18))
1032
1028
  });
1033
- }, [
1034
- isCustomBalanceEnabled,
1035
- customBalance,
1036
- nativeSymbol,
1037
- setFiatBalance,
1038
- setBalance,
1039
- setCryptoSymbol,
1040
- setFiatSymbol,
1041
- setCryptoRate
1042
- ]);
1029
+ }, [isProjectAssetBalanceEnabled, projectAssetBalance]);
1030
+ const isCustomAssetBalanceEnabled = !isNativeBalanceFeedEnabled && !isProjectAssetBalanceEnabled;
1031
+ const { data: customBalance } = useQuery({
1032
+ // enabled: !!isCustomAssetBalanceEnabled && !!balanceSymbol && !!chainConfig?.id && !!address && !!publicClient,
1033
+ enabled: true,
1034
+ // retry: false,
1035
+ // refetchInterval: BALANCE_POLLING_INTERVAL,
1036
+ staleTime: 0,
1037
+ queryKey: [CUSTOM_BALANCE_QUERY_KEY, chainConfig?.id, address, balanceSymbol],
1038
+ // Include chainId in query key to refetch when chain changes
1039
+ queryFn: async () => {
1040
+ const coreTokenList = NON_BLOCKSCOUT_CORE_TOKENS[chainConfig?.id] || [];
1041
+ const watchTokensList = (config?.current?.watchTokens?.[chainConfig?.id] || []).map((el) => ({
1042
+ address: el.address,
1043
+ decimals: el.decimals,
1044
+ symbol: el.symbol
1045
+ }));
1046
+ const customAssetList = [...watchTokensList, ...coreTokenList];
1047
+ const { address: customAssetAddress, decimals: customAssetADecimals } = customAssetList.find((el) => el.symbol === balanceSymbol) || {};
1048
+ if (!customAssetAddress) {
1049
+ console.warn(`[BALANCE FEED] No token address found for symbol ${balanceSymbol} on chain ${chainConfig?.name}`);
1050
+ return { decimals: 18, formatted: "0", symbol: balanceSymbol, value: BigInt(0) };
1051
+ }
1052
+ const balanceValue = await await publicClient.readContract({
1053
+ address: customAssetAddress,
1054
+ abi: erc20Abi,
1055
+ functionName: "balanceOf",
1056
+ args: [address],
1057
+ authorizationList: void 0
1058
+ });
1059
+ return {
1060
+ decimals: customAssetADecimals || 18,
1061
+ formatted: formatUnits(balanceValue, customAssetADecimals || 18),
1062
+ symbol: balanceSymbol,
1063
+ value: balanceValue
1064
+ };
1065
+ }
1066
+ });
1067
+ useEffect(() => {
1068
+ if (!isCustomAssetBalanceEnabled || !customBalance) return;
1069
+ const rate = Number(cryptoRate?.price || "1");
1070
+ const formattedBalance = Number(formatUnits(BigInt(customBalance?.value || "0"), customBalance?.decimals || 18));
1071
+ const { setCryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol } = useLayoutDataStore.getState();
1072
+ setCryptoRate(rate);
1073
+ setCryptoSymbol(customBalance.symbol);
1074
+ setFiatSymbol("USD");
1075
+ setFiatBalance(formattedBalance * rate);
1076
+ setBalance(customBalance);
1077
+ }, [isCustomAssetBalanceEnabled, customBalance, cryptoRate]);
1043
1078
  return null;
1044
1079
  }
1045
- var BALANCE_POLLING_INTERVAL, BALANCE_QUERY_KEY, SKIP_SYMBOLS, LUMIA_RATE_QUERY_KEY;
1080
+ var BALANCE_POLLING_INTERVAL, NATIVE_BALANCE_QUERY_KEY, CUSTOM_BALANCE_QUERY_KEY, LUMIA_RATE_QUERY_KEY, SKIP_SYMBOLS;
1046
1081
  var init_BalanceFeedProvider = __esm({
1047
1082
  "src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx"() {
1048
1083
  init_ProviderContext();
1049
1084
  init_SessionContext();
1050
1085
  init_useLayoutDataStore();
1051
1086
  BALANCE_POLLING_INTERVAL = 3e4;
1052
- BALANCE_QUERY_KEY = "lumia-passport-native-balance";
1053
- SKIP_SYMBOLS = ["TEST", "USDT"];
1054
- LUMIA_RATE_QUERY_KEY = "lumia-passport-rate-query-key";
1087
+ NATIVE_BALANCE_QUERY_KEY = "embarkai-native-balance-query-key";
1088
+ CUSTOM_BALANCE_QUERY_KEY = "embarkai-custom-balance-query-key";
1089
+ LUMIA_RATE_QUERY_KEY = "lembarkai-root-balance-rate-query-key";
1090
+ SKIP_SYMBOLS = ["TEST", "USDT", "P"];
1055
1091
  }
1056
1092
  });
1057
1093
 
@@ -8816,19 +8852,15 @@ function useBuyMenuParams() {
8816
8852
  useEffect12(() => {
8817
8853
  const { pageParams, setPageParams } = useLayoutDataStore.getState();
8818
8854
  if (!pageParams || !keys(pageParams).length) return;
8819
- const { amount, crypto: crypto2, toWalletAddress, confirmationMessage, onRampWidgetRedirected } = pageParams || {};
8855
+ const { amount, crypto: crypto2, onRampWidgetRedirected } = pageParams || {};
8820
8856
  switch (true) {
8821
8857
  case !!amount:
8822
8858
  useBuyMenuStore.getState().setSrcInputAmount(amount);
8823
8859
  useBuyMenuStore.getState().setSrcQueryAmount(amount);
8824
8860
  case !!crypto2:
8825
8861
  useBuyMenuStore.getState().setSelectedCrypto(crypto2);
8826
- case !!toWalletAddress:
8827
- useBuyMenuStore.getState().setToWalletAddress(toWalletAddress);
8828
8862
  case !!onRampWidgetRedirected:
8829
8863
  useBuyMenuStore.getState().setOnRampWidgetRedirectedFn(onRampWidgetRedirected);
8830
- case !!confirmationMessage:
8831
- useBuyMenuStore.getState().setConfirmationMessage(confirmationMessage);
8832
8864
  }
8833
8865
  setPageParams(null);
8834
8866
  }, []);
@@ -8851,8 +8883,8 @@ var init_useBuyMenuStore = __esm({
8851
8883
  (set) => ({
8852
8884
  renderKey: "default-initial-buy-menu-render-key",
8853
8885
  setRenderKey: (key) => set({ renderKey: key }),
8854
- toWalletAddress: null,
8855
- setToWalletAddress: (toWalletAddress) => set({ toWalletAddress }),
8886
+ // toWalletAddress: null,
8887
+ // setToWalletAddress: (toWalletAddress) => set({ toWalletAddress }),
8856
8888
  /** boolean flags */
8857
8889
  isTransactionHistory: false,
8858
8890
  setIsTransactionHistory: (isTransactionHistory) => {
@@ -8904,8 +8936,6 @@ var init_useBuyMenuStore = __esm({
8904
8936
  /** */
8905
8937
  onRampWidgetRedirected: noop,
8906
8938
  setOnRampWidgetRedirectedFn: (cb) => set({ onRampWidgetRedirected: cb }),
8907
- confirmationMessage: null,
8908
- setConfirmationMessage: (message) => set({ confirmationMessage: message }),
8909
8939
  error: null,
8910
8940
  setError: (error) => set({ error })
8911
8941
  }),
@@ -9486,61 +9516,6 @@ var init_api = __esm({
9486
9516
  }
9487
9517
  });
9488
9518
 
9489
- // src/internal/utils/cn.ts
9490
- import { clsx as clsx2 } from "clsx";
9491
- function cn2(...inputs) {
9492
- return twMerge(clsx2(inputs));
9493
- }
9494
- var init_cn = __esm({
9495
- "src/internal/utils/cn.ts"() {
9496
- init_bundle_mjs();
9497
- }
9498
- });
9499
-
9500
- // src/internal/components/ui/badge.tsx
9501
- import { cva as cva2 } from "class-variance-authority";
9502
- import { jsx as jsx36 } from "react/jsx-runtime";
9503
- function Badge(props) {
9504
- const { className, variant = "secondary", size = "default", ...rest } = props;
9505
- return /* @__PURE__ */ jsx36("span", { ...rest, className: cn2(badgeVariants({ variant, size }), className) });
9506
- }
9507
- var badgeVariants;
9508
- var init_badge = __esm({
9509
- "src/internal/components/ui/badge.tsx"() {
9510
- init_cn();
9511
- badgeVariants = cva2(
9512
- cn2(
9513
- //
9514
- "inline-flex items-center",
9515
- "border font-semibold",
9516
- "select-none"
9517
- ),
9518
- {
9519
- variants: {
9520
- variant: {
9521
- outline: "border-[var(--ui-kit-bd)] bg-transparent text-[var(--ui-kit-fg)]",
9522
- secondary: "border-[var(--ui-kit-secondary)] bg-[var(--ui-kit-secondary)] text-[var(--ui-kit-fg)]",
9523
- destructive: "border-[var(--ui-kit-bg-error)] bg-[var(--ui-kit-bg-error)] text-[var(--ui-kit-error)]",
9524
- success: "border-[var(--ui-kit-bg-success)] bg-[var(--ui-kit-bg-success)] text-[var(--ui-kit-success)]",
9525
- warning: "border-[var(--ui-kit-bg-warning)] bg-[var(--ui-kit-bg-warning)] text-[var(--ui-kit-warning)]"
9526
- },
9527
- size: {
9528
- default: "h-5 px-2 rounded-full text-[10px] gap-[var(--ui-kit-gap)]",
9529
- medium: "h-8 px-[var(--ui-kit-pd)] rounded-[var(--ui-kit-el-bdrs)] text-sm gap-[var(--ui-kit-gap)]",
9530
- large: cn2(
9531
- "whitespace-nowrap text-sm font-semibold font-sans",
9532
- "h-12 px-[var(--ui-kit-pd)] rounded-[var(--ui-kit-el-bdrs)]"
9533
- )
9534
- }
9535
- },
9536
- defaultVariants: {
9537
- variant: "secondary"
9538
- }
9539
- }
9540
- );
9541
- }
9542
- });
9543
-
9544
9519
  // src/internal/components/BuyMenu/binance/config.ts
9545
9520
  import { BSC_MAINNET_CHAIN_ID, LUMIA_MAINNET_CHAIN_ID } from "@embarkai/core/read";
9546
9521
  var CHAIN_ID_TO_BINANCE_NETWORK_TICKER;
@@ -9556,29 +9531,21 @@ var init_config = __esm({
9556
9531
  // src/internal/components/BuyMenu/binance/BinanceSummary.tsx
9557
9532
  import { useMutation as useMutation5, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
9558
9533
  import { InfoIcon as InfoIcon3, LoaderIcon } from "lucide-react";
9559
- import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
9534
+ import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
9560
9535
  function BinanceSummary(props) {
9561
9536
  const { payment } = props;
9562
9537
  const qc = useQueryClient3();
9563
9538
  const { t } = useT();
9564
9539
  const embarkaiAddress = useSession((st) => st.address);
9565
9540
  const chainConfig = useSession((st) => st.chainConfig);
9566
- const {
9567
- toWalletAddress,
9568
- selectedFiat,
9569
- selectedCrypto,
9570
- srcQueryAmount,
9571
- redirecting,
9572
- confirmationMessage,
9573
- setRedirecting
9574
- } = useBuyMenuStore();
9541
+ const { selectedFiat, selectedCrypto, srcQueryAmount, redirecting, setRedirecting } = useBuyMenuStore();
9575
9542
  const quoteData = useBinanceStore((st) => st.quoteData);
9576
9543
  const cryptoToRecieve = Number(quoteData?.totalAmount || "0");
9577
9544
  const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation5({
9578
9545
  mutationFn: async () => {
9579
9546
  setRedirecting(true);
9580
9547
  return await createPreorderMutation({
9581
- address: toWalletAddress || embarkaiAddress,
9548
+ address: embarkaiAddress,
9582
9549
  amountType: 1,
9583
9550
  requestedAmount: String(srcQueryAmount),
9584
9551
  fiatCurrency: selectedFiat,
@@ -9618,14 +9585,14 @@ function BinanceSummary(props) {
9618
9585
  });
9619
9586
  const isContinueDisabled = !!redirecting || !!isFundWalletOrderCheckouting || !quoteData;
9620
9587
  if (!quoteData) {
9621
- return /* @__PURE__ */ jsx37("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ jsxs31(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
9622
- /* @__PURE__ */ jsx37(InfoIcon3, { className: "w-4 h-4" }),
9623
- /* @__PURE__ */ jsx37("span", { children: t("passport:common.errors.oops") })
9588
+ return /* @__PURE__ */ jsx36("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ jsxs31(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
9589
+ /* @__PURE__ */ jsx36(InfoIcon3, { className: "w-4 h-4" }),
9590
+ /* @__PURE__ */ jsx36("span", { children: t("passport:common.errors.oops") })
9624
9591
  ] }) });
9625
9592
  }
9626
9593
  return /* @__PURE__ */ jsxs31("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
9627
9594
  /* @__PURE__ */ jsxs31("div", { className: "flex justify-between text-xs leading-5", children: [
9628
- /* @__PURE__ */ jsx37("span", { className: "", children: t("passport:common.amount") }),
9595
+ /* @__PURE__ */ jsx36("span", { className: "", children: t("passport:common.amount") }),
9629
9596
  /* @__PURE__ */ jsxs31("span", { className: "font-bold", children: [
9630
9597
  formatPrice(srcQueryAmount),
9631
9598
  " ",
@@ -9633,7 +9600,7 @@ function BinanceSummary(props) {
9633
9600
  ] })
9634
9601
  ] }),
9635
9602
  /* @__PURE__ */ jsxs31("div", { className: "flex justify-between text-xs leading-5", children: [
9636
- /* @__PURE__ */ jsx37("span", { className: "", children: t("passport:buyMenu.summary.youReceive") }),
9603
+ /* @__PURE__ */ jsx36("span", { className: "", children: t("passport:buyMenu.summary.youReceive") }),
9637
9604
  /* @__PURE__ */ jsxs31("span", { className: "font-bold", children: [
9638
9605
  formatPrice(cryptoToRecieve),
9639
9606
  " ",
@@ -9642,7 +9609,7 @@ function BinanceSummary(props) {
9642
9609
  ] }),
9643
9610
  /* @__PURE__ */ jsxs31(Highlight, { type: "info", className: "", children: [
9644
9611
  /* @__PURE__ */ jsxs31("p", { className: "flex justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
9645
- /* @__PURE__ */ jsx37("span", { children: t("passport:buyMenu.summary.networkFee") }),
9612
+ /* @__PURE__ */ jsx36("span", { children: t("passport:buyMenu.summary.networkFee") }),
9646
9613
  /* @__PURE__ */ jsxs31("strong", { children: [
9647
9614
  formatPrice(Number(quoteData?.networkFee || "0")),
9648
9615
  " ",
@@ -9650,7 +9617,7 @@ function BinanceSummary(props) {
9650
9617
  ] })
9651
9618
  ] }),
9652
9619
  /* @__PURE__ */ jsxs31("p", { className: "flex justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
9653
- /* @__PURE__ */ jsx37("span", { children: t("passport:buyMenu.summary.serviceFee") }),
9620
+ /* @__PURE__ */ jsx36("span", { children: t("passport:buyMenu.summary.serviceFee") }),
9654
9621
  /* @__PURE__ */ jsxs31("strong", { children: [
9655
9622
  formatPrice(Number(quoteData?.feeAmount || "0")),
9656
9623
  " ",
@@ -9658,16 +9625,8 @@ function BinanceSummary(props) {
9658
9625
  ] })
9659
9626
  ] }),
9660
9627
  /* @__PURE__ */ jsxs31("p", { className: "flex justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
9661
- /* @__PURE__ */ jsx37("span", { children: t("passport:buyMenu.selectPaymentMode") }),
9662
- /* @__PURE__ */ jsx37("strong", { children: payment?.paymentMethod?.toUpperCase() })
9663
- ] })
9664
- ] }),
9665
- toWalletAddress && /* @__PURE__ */ jsxs31(Highlight, { type: "warning", children: [
9666
- /* @__PURE__ */ jsx37("p", { className: "font-bold leading-6", children: t("passport:buyMenu.summary.toAddress.receiver") }),
9667
- /* @__PURE__ */ jsx37(Badge, { variant: "secondary", size: "medium", className: "w-full text-center justify-center text-[10px]", children: /* @__PURE__ */ jsx37("span", { className: "truncate leading-4", children: toWalletAddress }) }),
9668
- !!confirmationMessage ? /* @__PURE__ */ jsx37("p", { className: "leading-5", children: confirmationMessage }) : /* @__PURE__ */ jsxs31("p", { className: "leading-4", children: [
9669
- /* @__PURE__ */ jsx37("span", { children: t("passport:buyMenu.summary.toAddress.message") }),
9670
- /* @__PURE__ */ jsx37("span", { children: t("passport:buyMenu.summary.toAddress.suggestion") })
9628
+ /* @__PURE__ */ jsx36("span", { children: t("passport:buyMenu.selectPaymentMode") }),
9629
+ /* @__PURE__ */ jsx36("strong", { children: payment?.paymentMethod?.toUpperCase() })
9671
9630
  ] })
9672
9631
  ] }),
9673
9632
  /* @__PURE__ */ jsxs31(
@@ -9679,8 +9638,8 @@ function BinanceSummary(props) {
9679
9638
  variant: "default",
9680
9639
  onClick: () => checkoutFundWalletOrder(),
9681
9640
  children: [
9682
- redirecting && /* @__PURE__ */ jsx37(LoaderIcon, { size: 16, className: "animate-spin" }),
9683
- /* @__PURE__ */ jsx37("span", { children: redirecting ? "REDIRECTING..." : String(t("passport:buyMenu.actions.confirmPurchase")).toUpperCase() }),
9641
+ redirecting && /* @__PURE__ */ jsx36(LoaderIcon, { size: 16, className: "animate-spin" }),
9642
+ /* @__PURE__ */ jsx36("span", { children: redirecting ? "REDIRECTING..." : String(t("passport:buyMenu.actions.confirmPurchase")).toUpperCase() }),
9684
9643
  !!quoteData?.totalAmount && /* @__PURE__ */ jsxs31("strong", { children: [
9685
9644
  formatPrice(Number(quoteData.totalAmount)),
9686
9645
  " ",
@@ -9697,7 +9656,6 @@ var init_BinanceSummary = __esm({
9697
9656
  init_SessionContext();
9698
9657
  init_i18n();
9699
9658
  init_priceFormatter();
9700
- init_badge();
9701
9659
  init_button();
9702
9660
  init_highlight();
9703
9661
  init_contants();
@@ -9709,6 +9667,61 @@ var init_BinanceSummary = __esm({
9709
9667
  }
9710
9668
  });
9711
9669
 
9670
+ // src/internal/utils/cn.ts
9671
+ import { clsx as clsx2 } from "clsx";
9672
+ function cn2(...inputs) {
9673
+ return twMerge(clsx2(inputs));
9674
+ }
9675
+ var init_cn = __esm({
9676
+ "src/internal/utils/cn.ts"() {
9677
+ init_bundle_mjs();
9678
+ }
9679
+ });
9680
+
9681
+ // src/internal/components/ui/badge.tsx
9682
+ import { cva as cva2 } from "class-variance-authority";
9683
+ import { jsx as jsx37 } from "react/jsx-runtime";
9684
+ function Badge(props) {
9685
+ const { className, variant = "secondary", size = "default", ...rest } = props;
9686
+ return /* @__PURE__ */ jsx37("span", { ...rest, className: cn2(badgeVariants({ variant, size }), className) });
9687
+ }
9688
+ var badgeVariants;
9689
+ var init_badge = __esm({
9690
+ "src/internal/components/ui/badge.tsx"() {
9691
+ init_cn();
9692
+ badgeVariants = cva2(
9693
+ cn2(
9694
+ //
9695
+ "inline-flex items-center",
9696
+ "border font-semibold",
9697
+ "select-none"
9698
+ ),
9699
+ {
9700
+ variants: {
9701
+ variant: {
9702
+ outline: "border-[var(--ui-kit-bd)] bg-transparent text-[var(--ui-kit-fg)]",
9703
+ secondary: "border-[var(--ui-kit-secondary)] bg-[var(--ui-kit-secondary)] text-[var(--ui-kit-fg)]",
9704
+ destructive: "border-[var(--ui-kit-bg-error)] bg-[var(--ui-kit-bg-error)] text-[var(--ui-kit-error)]",
9705
+ success: "border-[var(--ui-kit-bg-success)] bg-[var(--ui-kit-bg-success)] text-[var(--ui-kit-success)]",
9706
+ warning: "border-[var(--ui-kit-bg-warning)] bg-[var(--ui-kit-bg-warning)] text-[var(--ui-kit-warning)]"
9707
+ },
9708
+ size: {
9709
+ default: "h-5 px-2 rounded-full text-[10px] gap-[var(--ui-kit-gap)]",
9710
+ medium: "h-8 px-[var(--ui-kit-pd)] rounded-[var(--ui-kit-el-bdrs)] text-sm gap-[var(--ui-kit-gap)]",
9711
+ large: cn2(
9712
+ "whitespace-nowrap text-sm font-semibold font-sans",
9713
+ "h-12 px-[var(--ui-kit-pd)] rounded-[var(--ui-kit-el-bdrs)]"
9714
+ )
9715
+ }
9716
+ },
9717
+ defaultVariants: {
9718
+ variant: "secondary"
9719
+ }
9720
+ }
9721
+ );
9722
+ }
9723
+ });
9724
+
9712
9725
  // src/internal/components/BuyMenu/binance/statuses.ts
9713
9726
  import { values } from "lodash-es";
9714
9727
  var STATUS_CODE_TO_MESSAGE, STATUSES_FILTERS;
@@ -10017,10 +10030,10 @@ var init_BinanceTxHistory = __esm({
10017
10030
 
10018
10031
  // src/internal/components/BuyMenu/binance/useBinanceSseTracing.ts
10019
10032
  import { useQueryClient as useQueryClient4 } from "@tanstack/react-query";
10020
- import { useEffect as useEffect14, useRef as useRef10 } from "react";
10033
+ import { useEffect as useEffect14, useRef as useRef9 } from "react";
10021
10034
  function useBinanceSseTxTracing(walletAddress) {
10022
10035
  const qc = useQueryClient4();
10023
- const debounceRef = useRef10(null);
10036
+ const debounceRef = useRef9(null);
10024
10037
  useEffect14(() => {
10025
10038
  if (!walletAddress) return;
10026
10039
  const iframeManager = getIframeManager();
@@ -10674,10 +10687,10 @@ var init_networks = __esm({
10674
10687
 
10675
10688
  // src/internal/components/BuyMenu/finchpay/useFinchpaySseTxTracing.ts
10676
10689
  import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
10677
- import { useEffect as useEffect16, useRef as useRef11 } from "react";
10690
+ import { useEffect as useEffect16, useRef as useRef10 } from "react";
10678
10691
  function useFinchpaySseTxTracing(walletAddress) {
10679
10692
  const qc = useQueryClient6();
10680
- const debounceRef = useRef11(null);
10693
+ const debounceRef = useRef10(null);
10681
10694
  useEffect16(() => {
10682
10695
  if (!walletAddress) return;
10683
10696
  const iframeManager = getIframeManager();
@@ -11105,7 +11118,7 @@ var init_ProviderSelector = __esm({
11105
11118
  });
11106
11119
 
11107
11120
  // src/internal/components/BuyMenu/useHandleInputAmount.ts
11108
- import { useEffect as useEffect18, useRef as useRef12 } from "react";
11121
+ import { useEffect as useEffect18, useRef as useRef11 } from "react";
11109
11122
  var ON_INPUT_QUERY_DELAY, useHandleInputAmount;
11110
11123
  var init_useHandleInputAmount = __esm({
11111
11124
  "src/internal/components/BuyMenu/useHandleInputAmount.ts"() {
@@ -11113,11 +11126,11 @@ var init_useHandleInputAmount = __esm({
11113
11126
  init_useBuyMenuStore();
11114
11127
  ON_INPUT_QUERY_DELAY = 1500;
11115
11128
  useHandleInputAmount = () => {
11116
- const lastRampProviderRef = useRef12(DEFAULT_PROVIDER2);
11129
+ const lastRampProviderRef = useRef11(DEFAULT_PROVIDER2);
11117
11130
  const rampProvider = useBuyMenuStore((st) => st.rampProvider);
11118
11131
  const srcInputAmount = useBuyMenuStore((st) => st.srcInputAmount);
11119
11132
  const minAmount = useBuyMenuStore((st) => st.minAmount);
11120
- const queryAmountTimer = useRef12(null);
11133
+ const queryAmountTimer = useRef11(null);
11121
11134
  useEffect18(() => {
11122
11135
  if (queryAmountTimer.current) clearTimeout(queryAmountTimer.current);
11123
11136
  queryAmountTimer.current = setTimeout(() => {
@@ -11498,8 +11511,7 @@ var init_truncateMiddle = __esm({
11498
11511
 
11499
11512
  // src/internal/components/ChainsMenu/ChainItem.tsx
11500
11513
  import { getChainConfig as getChainConfig7 } from "@embarkai/core/read";
11501
- import { Copy, ExternalLink, Loader as Loader6 } from "lucide-react";
11502
- import { useRef as useRef13, useState as useState9 } from "react";
11514
+ import { ExternalLink, Loader as Loader6 } from "lucide-react";
11503
11515
  import { jsx as jsx51, jsxs as jsxs45 } from "react/jsx-runtime";
11504
11516
  function getPaymasterExplorerUrl(chainId, paymasterAddress) {
11505
11517
  const chainConfig = getChainConfig7(chainId);
@@ -11519,10 +11531,9 @@ function ChainItem(props) {
11519
11531
  setNextChainId
11520
11532
  } = props;
11521
11533
  const { t } = useT();
11534
+ const address = useSession((st) => st.address);
11522
11535
  const isSessionLoading = useSession((st) => st.isLoading);
11523
11536
  const activeChainId = useSession((st) => st.activeChainId);
11524
- const [copiedChainId, setCopiedChainId] = useState9(null);
11525
- const copiedResetTimerRef = useRef13(null);
11526
11537
  const isActiveChain = activeChainId === chainId;
11527
11538
  const paymasterAddress = isActiveChain ? activePaymasterData?.address : null;
11528
11539
  const paymasterExplorerUrl = paymasterAddress ? getPaymasterExplorerUrl(chainId, paymasterAddress) : null;
@@ -11562,55 +11573,58 @@ function ChainItem(props) {
11562
11573
  },
11563
11574
  children: [
11564
11575
  isLoading && chainId === nextChainId ? /* @__PURE__ */ jsx51("div", { className: "w-7 h-7 flex items-center justify-center", children: /* @__PURE__ */ jsx51(Loader6, { className: "h-4 w-4 animate-spin" }) }) : /* @__PURE__ */ jsx51(Icon2, { className: "w-7 h-7" }),
11565
- /* @__PURE__ */ jsxs45("div", { className: "min-w-0 flex-1 flex flex-col gap-1", children: [
11576
+ /* @__PURE__ */ jsxs45("div", { className: "min-w-0 flex-1 flex flex-col", children: [
11566
11577
  /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-2", children: [
11567
11578
  /* @__PURE__ */ jsx51(
11568
11579
  "span",
11569
11580
  {
11570
- className: cn2("block flex-1 uppercase text-left text-sm truncate", {
11571
- "font-bold": isActiveChain
11581
+ className: cn2("block flex-1 uppercase text-left text-sm truncate leading-6", {
11582
+ "font-bold leading-7": isActiveChain
11572
11583
  }),
11573
11584
  children: name
11574
11585
  }
11575
11586
  ),
11576
11587
  /* @__PURE__ */ jsx51(Badge, { variant: badge.toLowerCase() === "mainnet" ? "success" : "secondary", children: badge })
11577
11588
  ] }),
11578
- isActiveChain && paymasterAddress && /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-[var(--ui-kit-gap)] text-xs", children: [
11579
- /* @__PURE__ */ jsx51("span", { className: "flex-none uppercase", children: "Paymaster" }),
11589
+ isActiveChain && /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-[var(--ui-kit-gap)] text-xs leading-5", children: [
11590
+ /* @__PURE__ */ jsx51("span", { className: "flex-none uppercase", children: "Explorer" }),
11580
11591
  /* @__PURE__ */ jsxs45(
11581
11592
  Button,
11582
11593
  {
11583
11594
  type: "button",
11584
11595
  size: "small",
11585
11596
  variant: "ghost",
11586
- className: "text-[var(--ui-kit-fg-inverted)]",
11597
+ className: "text-[var(--ui-kit-fg-inverted)] h-5",
11587
11598
  title: `${paymasterAddress} (SOURCE: ${paymasterSource})`,
11588
11599
  onClick: (e) => {
11589
11600
  e.stopPropagation();
11590
- window.open(paymasterExplorerUrl || paymasterAddress, "_blank", "noopener,noreferrer");
11601
+ address && window.open(`${getExplorerUrl()}/address/${address}`, "_blank");
11591
11602
  },
11592
11603
  children: [
11593
- /* @__PURE__ */ jsx51("span", { className: "text-xs", children: truncateMiddle(paymasterAddress) }),
11604
+ /* @__PURE__ */ jsx51("span", { className: "text-xs", children: truncateMiddle(address) }),
11594
11605
  /* @__PURE__ */ jsx51(ExternalLink, { className: "w-4 h-4 flex-none" })
11595
11606
  ]
11596
11607
  }
11597
- ),
11598
- /* @__PURE__ */ jsx51(
11608
+ )
11609
+ ] }),
11610
+ isActiveChain && paymasterAddress && /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-[var(--ui-kit-gap)] text-xs leading-5", children: [
11611
+ /* @__PURE__ */ jsx51("span", { className: "flex-none uppercase", children: "Paymaster" }),
11612
+ /* @__PURE__ */ jsxs45(
11599
11613
  Button,
11600
11614
  {
11601
11615
  type: "button",
11602
11616
  size: "small",
11603
11617
  variant: "ghost",
11604
- title: t("passport:common.copy"),
11605
- className: "text-[var(--ui-kit-fg-inverted)]",
11606
- onClick: (event) => {
11607
- event.stopPropagation();
11608
- navigator.clipboard.writeText(paymasterExplorerUrl || paymasterAddress);
11609
- setCopiedChainId(chainId);
11610
- if (copiedResetTimerRef.current) clearTimeout(copiedResetTimerRef.current);
11611
- copiedResetTimerRef.current = setTimeout(() => setCopiedChainId(null), 1500);
11618
+ className: "text-[var(--ui-kit-fg-inverted)] h-5",
11619
+ title: `${paymasterAddress} (SOURCE: ${paymasterSource})`,
11620
+ onClick: (e) => {
11621
+ e.stopPropagation();
11622
+ window.open(paymasterExplorerUrl || paymasterAddress, "_blank", "noopener,noreferrer");
11612
11623
  },
11613
- children: copiedChainId === chainId ? /* @__PURE__ */ jsx51(PositiveIcon, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx51(Copy, { className: "w-4 h-4" })
11624
+ children: [
11625
+ /* @__PURE__ */ jsx51("span", { className: "text-xs", children: truncateMiddle(paymasterAddress) }),
11626
+ /* @__PURE__ */ jsx51(ExternalLink, { className: "w-4 h-4 flex-none" })
11627
+ ]
11614
11628
  }
11615
11629
  )
11616
11630
  ] })
@@ -11623,9 +11637,9 @@ var init_ChainItem = __esm({
11623
11637
  "src/internal/components/ChainsMenu/ChainItem.tsx"() {
11624
11638
  init_SessionContext();
11625
11639
  init_useT();
11626
- init_icons();
11627
11640
  init_cn();
11628
11641
  init_truncateMiddle();
11642
+ init_base2();
11629
11643
  init_badge();
11630
11644
  init_button();
11631
11645
  }
@@ -11636,13 +11650,13 @@ import { PAYMASTER_CACHE_TTL_MS } from "@embarkai/core";
11636
11650
  import { getChainConfig as getChainConfig8, SUPPORTED_MAINNETS as SUPPORTED_MAINNETS2 } from "@embarkai/core/read";
11637
11651
  import { useQuery as useQuery4 } from "@tanstack/react-query";
11638
11652
  import { ArrowLeft as ArrowLeft4 } from "lucide-react";
11639
- import { useMemo as useMemo5, useState as useState10 } from "react";
11653
+ import { useMemo as useMemo5, useState as useState9 } from "react";
11640
11654
  import { jsx as jsx52, jsxs as jsxs46 } from "react/jsx-runtime";
11641
11655
  function ChainsMenu() {
11642
11656
  const config = useProviderConfig().config;
11643
11657
  const activeChainId = useSession((st) => st.activeChainId);
11644
- const [isTestnets, setIsTestnets] = useState10(false);
11645
- const [nextChainId, setNextChainId] = useState10(null);
11658
+ const [isTestnets, setIsTestnets] = useState9(false);
11659
+ const [nextChainId, setNextChainId] = useState9(null);
11646
11660
  const { t } = useT();
11647
11661
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
11648
11662
  const visibleNetworks = useMemo5(() => {
@@ -11891,7 +11905,7 @@ var init_devices = __esm({
11891
11905
  });
11892
11906
 
11893
11907
  // src/internal/components/DevicesMenu/DeviceLinkScreen.tsx
11894
- import { useState as useState11 } from "react";
11908
+ import { useState as useState10 } from "react";
11895
11909
  import { ArrowLeft as ArrowLeft6, Loader2 as Loader22 } from "lucide-react";
11896
11910
  import { jsx as jsx54, jsxs as jsxs48 } from "react/jsx-runtime";
11897
11911
  function getErrorMessage(err) {
@@ -11913,8 +11927,8 @@ function DeviceLinkScreen() {
11913
11927
  const setPage = useLayoutDataStore((s) => s.setPage);
11914
11928
  const maxScrollHeight = useLayoutStore((s) => s.maxScrollHeight);
11915
11929
  const { mutate: link, isPending } = useLinkDevice();
11916
- const [code, setCode] = useState11("");
11917
- const [error, setError] = useState11(null);
11930
+ const [code, setCode] = useState10("");
11931
+ const [error, setError] = useState10(null);
11918
11932
  const isValid = code.length === 6 && VALID_CHARS.test(code);
11919
11933
  function handleCodeChange(value) {
11920
11934
  const upper = value.toUpperCase().slice(0, 6);
@@ -12494,7 +12508,7 @@ var init_guardian_backup = __esm({
12494
12508
  });
12495
12509
 
12496
12510
  // src/internal/components/DevicesMenu/DeviceManageScreen.tsx
12497
- import { useCallback as useCallback14, useEffect as useEffect19, useRef as useRef14, useState as useState12 } from "react";
12511
+ import { useCallback as useCallback14, useEffect as useEffect19, useRef as useRef12, useState as useState11 } from "react";
12498
12512
  import { ArrowLeft as ArrowLeft7, Cpu, Download, HardDrive, Loader2 as Loader23, Trash2, Upload } from "lucide-react";
12499
12513
  import { Fragment as Fragment15, jsx as jsx55, jsxs as jsxs49 } from "react/jsx-runtime";
12500
12514
  function formatSize(bytes) {
@@ -12509,13 +12523,13 @@ function DeviceManageScreen() {
12509
12523
  const userId = session?.mpcUserId || "";
12510
12524
  const deviceId = pageParams?.deviceId;
12511
12525
  const deviceName = pageParams?.deviceName;
12512
- const guardianRef = useRef14(null);
12513
- const [screen, setScreen] = useState12({ step: "connecting" });
12514
- const [actionState, setActionState] = useState12(null);
12515
- const [password, setPassword] = useState12("");
12516
- const [statusMessage, setStatusMessage] = useState12(null);
12517
- const [errorMessage, setErrorMessage] = useState12(null);
12518
- const [waitingConfirm, setWaitingConfirm] = useState12(false);
12526
+ const guardianRef = useRef12(null);
12527
+ const [screen, setScreen] = useState11({ step: "connecting" });
12528
+ const [actionState, setActionState] = useState11(null);
12529
+ const [password, setPassword] = useState11("");
12530
+ const [statusMessage, setStatusMessage] = useState11(null);
12531
+ const [errorMessage, setErrorMessage] = useState11(null);
12532
+ const [waitingConfirm, setWaitingConfirm] = useState11(false);
12519
12533
  useEffect19(() => {
12520
12534
  if (!statusMessage) return;
12521
12535
  const t = setTimeout(() => setStatusMessage(null), 3e3);
@@ -12786,7 +12800,7 @@ var init_DeviceManageScreen = __esm({
12786
12800
  });
12787
12801
 
12788
12802
  // src/internal/components/DevicesMenu/DeviceRestoreScreen.tsx
12789
- import { useCallback as useCallback15, useState as useState13 } from "react";
12803
+ import { useCallback as useCallback15, useState as useState12 } from "react";
12790
12804
  import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft8, Download as Download2, Loader2 as Loader24 } from "lucide-react";
12791
12805
  import { Fragment as Fragment16, jsx as jsx56, jsxs as jsxs50 } from "react/jsx-runtime";
12792
12806
  function DeviceRestoreScreen() {
@@ -12798,10 +12812,10 @@ function DeviceRestoreScreen() {
12798
12812
  const keyshareId = pageParams?.keyshareId;
12799
12813
  const deviceId = pageParams?.deviceId;
12800
12814
  const deviceName = pageParams?.deviceName;
12801
- const [password, setPassword] = useState13("");
12802
- const [isWorking, setIsWorking] = useState13(false);
12803
- const [statusMessage, setStatusMessage] = useState13(null);
12804
- const [errorMessage, setErrorMessage] = useState13(null);
12815
+ const [password, setPassword] = useState12("");
12816
+ const [isWorking, setIsWorking] = useState12(false);
12817
+ const [statusMessage, setStatusMessage] = useState12(null);
12818
+ const [errorMessage, setErrorMessage] = useState12(null);
12805
12819
  const handleRestore = useCallback15(async () => {
12806
12820
  if (!password || !keyshareId || !userId) return;
12807
12821
  const iframe4 = getIframeManager();
@@ -12902,7 +12916,7 @@ var init_DeviceRestoreScreen = __esm({
12902
12916
  });
12903
12917
 
12904
12918
  // src/internal/components/DevicesMenu/DevicesMenu.tsx
12905
- import { useState as useState14 } from "react";
12919
+ import { useState as useState13 } from "react";
12906
12920
  import { ArrowLeft as ArrowLeft9, Cpu as Cpu2, Monitor, CheckCircle, Trash2 as Trash22, Loader2 as Loader25, RefreshCw, HardDrive as HardDrive2 } from "lucide-react";
12907
12921
  import { jsx as jsx57, jsxs as jsxs51 } from "react/jsx-runtime";
12908
12922
  function DeviceIcon({ deviceType }) {
@@ -12914,8 +12928,8 @@ function truncateAddress(address) {
12914
12928
  return `${address.slice(0, 6)}...${address.slice(-4)}`;
12915
12929
  }
12916
12930
  function DeviceRow({ device }) {
12917
- const [confirmingUnlink, setConfirmingUnlink] = useState14(false);
12918
- const [unlinkError, setUnlinkError] = useState14(null);
12931
+ const [confirmingUnlink, setConfirmingUnlink] = useState13(false);
12932
+ const [unlinkError, setUnlinkError] = useState13(null);
12919
12933
  const { mutate: unlink, isPending } = useUnlinkDevice();
12920
12934
  if (confirmingUnlink) {
12921
12935
  return /* @__PURE__ */ jsxs51("div", { className: "flex flex-col gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
@@ -14089,7 +14103,7 @@ var init_MethodSelector = __esm({
14089
14103
 
14090
14104
  // src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx
14091
14105
  import { ChevronRight as ChevronRight2, Eye, EyeOff, Info as Info3, Key as Key4, Loader as Loader8, Plus } from "lucide-react";
14092
- import { useEffect as useEffect22, useRef as useRef15 } from "react";
14106
+ import { useEffect as useEffect22, useRef as useRef13 } from "react";
14093
14107
  import { Fragment as Fragment18, jsx as jsx59, jsxs as jsxs53 } from "react/jsx-runtime";
14094
14108
  function PasswordPasskey(props) {
14095
14109
  const { t } = useT();
@@ -14104,7 +14118,7 @@ function PasswordPasskey(props) {
14104
14118
  onCreatePasskey
14105
14119
  } = props;
14106
14120
  const hasServerVault = useSession((st) => st.hasServerVault);
14107
- const actionRef = useRef15(null);
14121
+ const actionRef = useRef13(null);
14108
14122
  const {
14109
14123
  showPassword,
14110
14124
  restorePassword,
@@ -14736,7 +14750,7 @@ var init_Cloud = __esm({
14736
14750
  });
14737
14751
 
14738
14752
  // src/internal/components/KeyshareRestoreMenu/methods/Guardian.tsx
14739
- import { useState as useState16 } from "react";
14753
+ import { useState as useState15 } from "react";
14740
14754
  import { Cpu as Cpu4, Loader2 as Loader26 } from "lucide-react";
14741
14755
  import { Fragment as Fragment23, jsx as jsx65, jsxs as jsxs59 } from "react/jsx-runtime";
14742
14756
  function Guardian(props) {
@@ -14745,8 +14759,8 @@ function Guardian(props) {
14745
14759
  const session = useSession((st) => st.session);
14746
14760
  const recoveryUserId = useSession((st) => st.recoveryUserId);
14747
14761
  const { onRestoreSuccess } = useOnRestoreSuccess();
14748
- const [isWorking, setIsWorking] = useState16(false);
14749
- const [step, setStep] = useState16("idle");
14762
+ const [isWorking, setIsWorking] = useState15(false);
14763
+ const [step, setStep] = useState15("idle");
14750
14764
  const handleGuardianBackup = async () => {
14751
14765
  if (!restorePassword) {
14752
14766
  setError("Please enter a password");
@@ -15437,15 +15451,15 @@ var init_SumsubIframeManager = __esm({
15437
15451
  });
15438
15452
 
15439
15453
  // src/internal/components/KYC/useSumsubIframe.ts
15440
- import { useEffect as useEffect28, useRef as useRef16, useState as useState17 } from "react";
15454
+ import { useEffect as useEffect28, useRef as useRef14, useState as useState16 } from "react";
15441
15455
  function useSumsubIframe({ iframeUrl }) {
15442
15456
  const config = useProviderConfig().config;
15443
15457
  const { colorMode } = useColorMode();
15444
- const iframeRef = useRef16(null);
15445
- const [isLoading, setIsLoading] = useState17(true);
15446
- const [error, setError] = useState17(null);
15447
- const [height, setHeight] = useState17(0);
15448
- const [status, setStatus] = useState17("");
15458
+ const iframeRef = useRef14(null);
15459
+ const [isLoading, setIsLoading] = useState16(true);
15460
+ const [error, setError] = useState16(null);
15461
+ const [height, setHeight] = useState16(0);
15462
+ const [status, setStatus] = useState16("");
15449
15463
  const levelName = config.current?.kyc?.options?.levelName;
15450
15464
  useEffect28(() => {
15451
15465
  setError(null);
@@ -16480,7 +16494,7 @@ var init_telegram2 = __esm({
16480
16494
 
16481
16495
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
16482
16496
  import { useQueryClient as useQueryClient16 } from "@tanstack/react-query";
16483
- import { useCallback as useCallback20, useEffect as useEffect31, useState as useState18 } from "react";
16497
+ import { useCallback as useCallback20, useEffect as useEffect31, useState as useState17 } from "react";
16484
16498
  function useLinkTelegram() {
16485
16499
  const {
16486
16500
  config: { current: config },
@@ -16538,7 +16552,7 @@ function useLinkTelegram() {
16538
16552
  setLinkIsLoading(false);
16539
16553
  }
16540
16554
  }, [config.social?.providers]);
16541
- const [telegramLinkStarted, setTelegramLinkStarted] = useState18(false);
16555
+ const [telegramLinkStarted, setTelegramLinkStarted] = useState17(false);
16542
16556
  useEffect31(() => {
16543
16557
  console.log("[useLinkTelegram] Effect triggered:", {
16544
16558
  providerType,
@@ -16859,7 +16873,7 @@ var init_ManageWallet = __esm({
16859
16873
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
16860
16874
  import { useMutation as useMutation15, useQueryClient as useQueryClient17 } from "@tanstack/react-query";
16861
16875
  import { Key as Key6, Loader as Loader14 } from "lucide-react";
16862
- import { useState as useState19 } from "react";
16876
+ import { useState as useState18 } from "react";
16863
16877
  import { useDisconnect as useDisconnect2 } from "wagmi";
16864
16878
  import { jsx as jsx78, jsxs as jsxs72 } from "react/jsx-runtime";
16865
16879
  function UnlinkProviderMenu() {
@@ -16871,7 +16885,7 @@ function UnlinkProviderMenu() {
16871
16885
  const { t } = useT();
16872
16886
  const setPage = useLayoutDataStore((st) => st.setPage);
16873
16887
  const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
16874
- const [confirmInput, setConfirmInput] = useState19("");
16888
+ const [confirmInput, setConfirmInput] = useState18("");
16875
16889
  const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = useMutation15({
16876
16890
  mutationFn: async () => {
16877
16891
  if (!confirmUnlink) {
@@ -17132,7 +17146,7 @@ var init_useNicknameAvailability = __esm({
17132
17146
  // src/internal/components/NicknameMenu/NicknameEditForm.tsx
17133
17147
  import { useMutation as useMutation17, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
17134
17148
  import { AtSignIcon, CheckIcon as CheckIcon2, CopyIcon, LoaderIcon as LoaderIcon7, SaveIcon } from "lucide-react";
17135
- import { useCallback as useCallback22, useState as useState20 } from "react";
17149
+ import { useCallback as useCallback22, useState as useState19 } from "react";
17136
17150
  import { Fragment as Fragment29, jsx as jsx79, jsxs as jsxs73 } from "react/jsx-runtime";
17137
17151
  function NicknameEditForm(props) {
17138
17152
  const { isInitialUser, nicknameInfo } = props;
@@ -17145,7 +17159,7 @@ function NicknameEditForm(props) {
17145
17159
  const nicknameValue = useNicknameStore((st) => st.nicknameValue);
17146
17160
  const nicknameAvailability = useNicknameStore((st) => st.availability);
17147
17161
  const { isCheckingAvailability } = useNicknameAvailability(nicknameInfo ? nicknameInfo.handle : "");
17148
- const [isNicknameCopied, setIsNicknameCopied] = useState20(false);
17162
+ const [isNicknameCopied, setIsNicknameCopied] = useState19(false);
17149
17163
  const {
17150
17164
  mutate: changeNickname2,
17151
17165
  isError: isNicknameChangeError,
@@ -17459,27 +17473,76 @@ var init_useResolvedPublicClient = __esm({
17459
17473
  }
17460
17474
  });
17461
17475
 
17462
- // src/internal/hooks/useWatchTokens.ts
17476
+ // src/internal/hooks/useBlockscoutAssets/constants.ts
17477
+ var NATIVE_BALANCE_QUERY_KEY2, WATCH_TOKENS_QUERY_KEY, BLOCKSCOUT_QUERY_KEY, ERC3643_DETECTION_QUERY_KEY, BALANCE_DEFAULT_QUERY_CFG, ERC3643_ABI;
17478
+ var init_constants5 = __esm({
17479
+ "src/internal/hooks/useBlockscoutAssets/constants.ts"() {
17480
+ init_constants();
17481
+ NATIVE_BALANCE_QUERY_KEY2 = "chain-native-coin-balance-query";
17482
+ WATCH_TOKENS_QUERY_KEY = "chain-watch-coin-balance-query";
17483
+ BLOCKSCOUT_QUERY_KEY = "blockscout-token-balances";
17484
+ ERC3643_DETECTION_QUERY_KEY = "erc3643-detection";
17485
+ BALANCE_DEFAULT_QUERY_CFG = {
17486
+ staleTime: BLOCKSCOUT_QUERY_STALE_TIME,
17487
+ gcTime: BLOCKSCOUT_QUERY_GC_TIME,
17488
+ refetchOnMount: "always",
17489
+ retry: 2,
17490
+ retryDelay: 2e3
17491
+ };
17492
+ ERC3643_ABI = [
17493
+ {
17494
+ name: "identityRegistry",
17495
+ type: "function",
17496
+ stateMutability: "view",
17497
+ inputs: [],
17498
+ outputs: [{ name: "", type: "address" }]
17499
+ }
17500
+ ];
17501
+ }
17502
+ });
17503
+
17504
+ // src/internal/hooks/useBlockscoutAssets/useNativeBalance.ts
17463
17505
  import { useQuery as useQuery13 } from "@tanstack/react-query";
17506
+ import { formatUnits as formatUnits2 } from "viem";
17507
+ function useNativeBalance(options) {
17508
+ const { enabled, address, chainId, publicClient, nativeCurrency } = options;
17509
+ return useQuery13({
17510
+ enabled: enabled && !!address && !!publicClient && !!nativeCurrency?.symbol,
17511
+ ...BALANCE_DEFAULT_QUERY_CFG,
17512
+ queryKey: [NATIVE_BALANCE_QUERY_KEY2, chainId, address],
17513
+ queryFn: async () => {
17514
+ const balance = await publicClient.getBalance({ address });
17515
+ return {
17516
+ value: balance,
17517
+ formatted: formatUnits2(balance, nativeCurrency?.decimals || 18),
17518
+ symbol: nativeCurrency?.symbol || "ETH",
17519
+ decimals: nativeCurrency?.decimals || 18
17520
+ };
17521
+ }
17522
+ });
17523
+ }
17524
+ var init_useNativeBalance = __esm({
17525
+ "src/internal/hooks/useBlockscoutAssets/useNativeBalance.ts"() {
17526
+ init_constants5();
17527
+ }
17528
+ });
17529
+
17530
+ // src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts
17531
+ import { useQuery as useQuery14 } from "@tanstack/react-query";
17464
17532
  import { useMemo as useMemo9 } from "react";
17465
- import { erc20Abi, formatUnits as formatUnits2 } from "viem";
17533
+ import { erc20Abi as erc20Abi2, formatUnits as formatUnits3 } from "viem";
17466
17534
  function useWatchTokens(options) {
17467
- const { address, chainId, enabled = true } = options;
17535
+ const { address, chainId, enabled, publicClient } = options;
17468
17536
  const { config } = useProviderConfig();
17469
- const { publicClient, resolvedChainId } = useResolvedPublicClient(chainId, "useWatchTokens");
17470
17537
  const watchTokens = useMemo9(() => {
17471
17538
  const allWatchTokens = config.current.watchTokens;
17472
- const tokensForChain = resolvedChainId ? allWatchTokens?.[resolvedChainId] || [] : [];
17539
+ const tokensForChain = chainId ? allWatchTokens?.[chainId] || [] : [];
17473
17540
  return tokensForChain;
17474
- }, [config, resolvedChainId]);
17475
- const {
17476
- data: assets,
17477
- isLoading,
17478
- isFetching,
17479
- error,
17480
- refetch
17481
- } = useQuery13({
17482
- queryKey: [WATCH_TOKENS_QUERY_KEY, resolvedChainId, address, watchTokens.map((t) => t.address).join(",")],
17541
+ }, [config, chainId]);
17542
+ return useQuery14({
17543
+ enabled: !!publicClient && !!address && enabled && watchTokens.length > 0,
17544
+ ...BALANCE_DEFAULT_QUERY_CFG,
17545
+ queryKey: [WATCH_TOKENS_QUERY_KEY, chainId, address, watchTokens.map((t) => t.address).join(",")],
17483
17546
  queryFn: async () => {
17484
17547
  if (!publicClient || !address || watchTokens.length === 0) {
17485
17548
  return [];
@@ -17489,17 +17552,19 @@ function useWatchTokens(options) {
17489
17552
  try {
17490
17553
  const balance = await publicClient.readContract({
17491
17554
  address: token.address,
17492
- abi: erc20Abi,
17555
+ abi: erc20Abi2,
17493
17556
  functionName: "balanceOf",
17494
- args: [address]
17557
+ args: [address],
17558
+ authorizationList: void 0
17495
17559
  });
17496
17560
  let name = token.name;
17497
17561
  if (!name) {
17498
17562
  try {
17499
17563
  name = await publicClient.readContract({
17500
17564
  address: token.address,
17501
- abi: erc20Abi,
17502
- functionName: "name"
17565
+ abi: erc20Abi2,
17566
+ functionName: "name",
17567
+ authorizationList: void 0
17503
17568
  });
17504
17569
  } catch {
17505
17570
  name = token.symbol;
@@ -17510,14 +17575,15 @@ function useWatchTokens(options) {
17510
17575
  try {
17511
17576
  decimals = await publicClient.readContract({
17512
17577
  address: token.address,
17513
- abi: erc20Abi,
17514
- functionName: "decimals"
17578
+ abi: erc20Abi2,
17579
+ functionName: "decimals",
17580
+ authorizationList: void 0
17515
17581
  });
17516
17582
  } catch {
17517
17583
  decimals = 18;
17518
17584
  }
17519
17585
  }
17520
- const formattedBalance = formatUnits2(balance, decimals);
17586
+ const formattedBalance = formatUnits3(balance, decimals);
17521
17587
  results.push({
17522
17588
  type: "erc20",
17523
17589
  address: token.address,
@@ -17533,38 +17599,18 @@ function useWatchTokens(options) {
17533
17599
  }
17534
17600
  }
17535
17601
  return results;
17536
- },
17537
- enabled: !!publicClient && !!address && enabled && watchTokens.length > 0,
17538
- staleTime: 30 * 1e3,
17539
- // 30 seconds
17540
- gcTime: 5 * 60 * 1e3,
17541
- // 5 minutes
17542
- refetchOnMount: "always",
17543
- retry: 2,
17544
- retryDelay: 1e3
17602
+ }
17545
17603
  });
17546
- return {
17547
- assets: assets || [],
17548
- isLoading,
17549
- isFetching,
17550
- error: error || null,
17551
- refetch
17552
- };
17553
17604
  }
17554
- var WATCH_TOKENS_QUERY_KEY;
17555
17605
  var init_useWatchTokens = __esm({
17556
- "src/internal/hooks/useWatchTokens.ts"() {
17606
+ "src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts"() {
17557
17607
  init_ProviderContext();
17558
- init_useResolvedPublicClient();
17559
- WATCH_TOKENS_QUERY_KEY = "watch-tokens";
17608
+ init_constants5();
17560
17609
  }
17561
17610
  });
17562
17611
 
17563
- // src/internal/hooks/useBlockscoutAssets.ts
17564
- import { createBlockscoutClient } from "@embarkai/core/clients";
17565
- import { useQuery as useQuery14, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
17566
- import { useCallback as useCallback23, useMemo as useMemo10, useRef as useRef17 } from "react";
17567
- import { formatEther, formatUnits as formatUnits3 } from "viem";
17612
+ // src/internal/hooks/useBlockscoutAssets/utils.ts
17613
+ import { formatUnits as formatUnits4 } from "viem";
17568
17614
  function resolveIpfsUri(uri) {
17569
17615
  if (!uri) return "";
17570
17616
  if (uri.startsWith("ipfs://")) {
@@ -17595,7 +17641,7 @@ function mapBlockscoutToAsset(balance) {
17595
17641
  if (type === "erc721") {
17596
17642
  formattedBalance = "1";
17597
17643
  } else if (decimals !== void 0) {
17598
- formattedBalance = formatUnits3(BigInt(value), decimals);
17644
+ formattedBalance = formatUnits4(BigInt(value), decimals);
17599
17645
  } else {
17600
17646
  formattedBalance = value;
17601
17647
  }
@@ -17688,96 +17734,107 @@ function createError(error) {
17688
17734
  retryable: true
17689
17735
  };
17690
17736
  }
17737
+ var init_utils8 = __esm({
17738
+ "src/internal/hooks/useBlockscoutAssets/utils.ts"() {
17739
+ init_constants();
17740
+ }
17741
+ });
17742
+
17743
+ // src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts
17744
+ import { createBlockscoutClient, nonBlockscoutClient } from "@embarkai/core/clients";
17745
+ import { useQuery as useQuery15, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
17746
+ import { useCallback as useCallback23, useMemo as useMemo10, useRef as useRef15 } from "react";
17691
17747
  function useBlockscoutAssets(options) {
17692
17748
  const { address, chainId, enabled = true, detectSecurityTokens = true } = options;
17693
17749
  const qc = useQueryClient19();
17694
17750
  const { chainConfig, publicClient, resolvedChainId } = useResolvedPublicClient(chainId, "useBlockscoutAssets");
17695
- const portfolioConfig = useProviderConfig().config.current.portfolio;
17696
- const customTokenBalancesQuery = portfolioConfig?.tokenBalancesQuery;
17697
- const customTokenBalancesQueryKey = portfolioConfig?.tokenBalancesQueryKey;
17751
+ const {
17752
+ //
17753
+ tokenBalancesQuery: customTokenBalancesQuery,
17754
+ tokenBalancesQueryKey: customTokenBalancesQueryKey
17755
+ } = useProviderConfig().config?.current?.portfolio || {};
17698
17756
  const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
17699
17757
  const blockscoutClient = useMemo10(
17700
17758
  () => blockscoutApiUrl ? createBlockscoutClient({ baseUrl: blockscoutApiUrl }) : null,
17701
17759
  [blockscoutApiUrl]
17702
17760
  );
17703
- const lastRefreshRef = useRef17(0);
17761
+ const lastRefreshRef = useRef15(0);
17704
17762
  const {
17705
- assets: watchTokenAssets,
17763
+ data: watchTokenAssets = [],
17706
17764
  isLoading: watchTokensLoading,
17707
17765
  isFetching: watchTokensFetching
17708
- // refetch: refetchWatchTokens
17709
- } = useWatchTokens({ address, chainId: resolvedChainId, enabled });
17766
+ } = useWatchTokens({
17767
+ enabled,
17768
+ address,
17769
+ chainId: resolvedChainId,
17770
+ publicClient
17771
+ });
17710
17772
  const {
17711
17773
  data: nativeBalanceData,
17712
17774
  isLoading: nativeLoading,
17713
17775
  isFetching: nativeFetching
17714
- // refetch: refetchNative
17715
- } = useQuery14({
17716
- queryKey: [NATIVE_BALANCE_QUERY_KEY, resolvedChainId, address],
17776
+ } = useNativeBalance({
17777
+ enabled,
17778
+ address,
17779
+ chainId: resolvedChainId,
17780
+ publicClient,
17781
+ nativeCurrency: chainConfig?.nativeCurrency || null
17782
+ });
17783
+ const {
17784
+ data: coreTokenBalances = [],
17785
+ isLoading: coreTokensLoading,
17786
+ isFetching: coreTokensFetching
17787
+ } = useQuery15({
17788
+ enabled: !!address && enabled && !blockscoutClient && !customTokenBalancesQuery && !customTokenBalancesQueryKey,
17789
+ ...BALANCE_DEFAULT_QUERY_CFG,
17790
+ queryKey: [`NON-${BLOCKSCOUT_QUERY_KEY}`, resolvedChainId, address],
17717
17791
  queryFn: async () => {
17718
- if (!publicClient || !address) return null;
17719
- const balance = await publicClient.getBalance({ address });
17720
- return {
17721
- value: balance,
17722
- formatted: formatEther(balance),
17723
- symbol: chainConfig?.nativeCurrency?.symbol || "ETH",
17724
- decimals: chainConfig?.nativeCurrency?.decimals || 18
17725
- };
17726
- },
17727
- enabled: !!publicClient && !!address && enabled,
17728
- staleTime: 30 * 1e3,
17729
- // 30 seconds
17730
- gcTime: 5 * 60 * 1e3,
17731
- // 5 minutes
17732
- refetchOnMount: "always"
17792
+ const assetList = await nonBlockscoutClient.getTokenBalances({
17793
+ walletAddress: address,
17794
+ chainId: resolvedChainId
17795
+ });
17796
+ return assetList.filter((item) => BigInt(item.value) > BigInt(0));
17797
+ }
17733
17798
  });
17734
17799
  const {
17735
- data: tokenBalances,
17736
- isLoading: tokensLoading,
17737
- isFetching: tokensFetching,
17738
- error: tokensError,
17739
- // refetch: refetchTokens,
17800
+ data: customItems = [],
17801
+ isLoading: customLoading,
17802
+ isFetching: customFetching
17803
+ } = useQuery15({
17804
+ enabled: !!address && enabled && !blockscoutClient && !!customTokenBalancesQuery && !!customTokenBalancesQueryKey,
17805
+ ...BALANCE_DEFAULT_QUERY_CFG,
17806
+ queryKey: customTokenBalancesQueryKey,
17807
+ // query is invalidated by this key
17808
+ queryFn: async () => await customTokenBalancesQuery(address)
17809
+ });
17810
+ const {
17811
+ data: blockscoutItems = [],
17812
+ isLoading: blockscoutLoading,
17813
+ isFetching: blockscoutFetching,
17814
+ error: blockscoutError,
17740
17815
  dataUpdatedAt
17741
- } = useQuery14({
17742
- queryKey: [BLOCKSCOUT_QUERY_KEY, resolvedChainId, address, blockscoutApiUrl, customTokenBalancesQueryKey],
17743
- queryFn: async () => {
17744
- if (customTokenBalancesQuery) {
17745
- try {
17746
- return await customTokenBalancesQuery(address);
17747
- } catch (error2) {
17748
- console.warn("[useBlockscoutAssets] Custom token balances query failed:", error2);
17749
- if (!blockscoutClient) throw error2;
17750
- }
17751
- }
17752
- return await blockscoutClient.getTokenBalances(address);
17753
- },
17754
- enabled: !!address && enabled && (!!customTokenBalancesQuery || !!blockscoutClient),
17755
- staleTime: 0,
17756
- gcTime: BLOCKSCOUT_QUERY_GC_TIME,
17757
- refetchOnMount: "always",
17758
- retry: 2,
17759
- retryDelay: 1e3
17816
+ } = useQuery15({
17817
+ enabled: !!address && enabled && !!blockscoutClient && !customTokenBalancesQuery && !customTokenBalancesQueryKey,
17818
+ ...BALANCE_DEFAULT_QUERY_CFG,
17819
+ queryKey: [BLOCKSCOUT_QUERY_KEY, resolvedChainId, blockscoutApiUrl, address],
17820
+ //
17821
+ queryFn: async () => await blockscoutClient.getTokenBalances(address)
17760
17822
  });
17761
17823
  const {
17762
17824
  data: nftItems,
17763
17825
  isLoading: nftsLoading,
17764
17826
  isFetching: nftsFetching
17765
- // refetch: refetchNfts
17766
- } = useQuery14({
17767
- queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, address, blockscoutApiUrl],
17768
- queryFn: () => blockscoutClient.getNfts(address),
17827
+ } = useQuery15({
17769
17828
  enabled: !!address && enabled && !!blockscoutClient,
17770
- staleTime: BLOCKSCOUT_QUERY_STALE_TIME,
17771
- gcTime: BLOCKSCOUT_QUERY_GC_TIME,
17772
- refetchOnMount: "always",
17773
- retry: 2,
17774
- retryDelay: 1e3
17829
+ ...BALANCE_DEFAULT_QUERY_CFG,
17830
+ queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, blockscoutApiUrl, address],
17831
+ queryFn: () => blockscoutClient.getNfts(address)
17775
17832
  });
17776
17833
  const erc20TokenAddresses = useMemo10(() => {
17777
- if (!tokenBalances) return [];
17778
- return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
17779
- }, [tokenBalances]);
17780
- const { data: erc3643Results } = useQuery14({
17834
+ if (!blockscoutItems) return [];
17835
+ return blockscoutItems.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
17836
+ }, [blockscoutItems]);
17837
+ const { data: erc3643Results } = useQuery15({
17781
17838
  queryKey: [ERC3643_DETECTION_QUERY_KEY, resolvedChainId, address, erc20TokenAddresses],
17782
17839
  queryFn: async () => {
17783
17840
  if (!publicClient || erc20TokenAddresses.length === 0) {
@@ -17812,10 +17869,11 @@ function useBlockscoutAssets(options) {
17812
17869
  }
17813
17870
  return results;
17814
17871
  },
17872
+ retry: false,
17815
17873
  enabled: !!address && enabled && detectSecurityTokens && erc20TokenAddresses.length > 0 && !!publicClient,
17816
- staleTime: BLOCKSCOUT_QUERY_STALE_TIME * 2,
17817
- gcTime: BLOCKSCOUT_QUERY_GC_TIME,
17818
- retry: 1
17874
+ staleTime: 6e4
17875
+ // 1 minute
17876
+ // gcTime: BLOCKSCOUT_QUERY_GC_TIME,
17819
17877
  });
17820
17878
  const assets = useMemo10(() => {
17821
17879
  const result = [];
@@ -17830,8 +17888,47 @@ function useBlockscoutAssets(options) {
17830
17888
  decimals: nativeBalanceData.decimals
17831
17889
  });
17832
17890
  }
17833
- if (tokenBalances) {
17834
- const erc20Tokens = tokenBalances.filter((balance) => balance.token.type === "ERC-20");
17891
+ if (!!customItems?.length) {
17892
+ const customErc20Tokens = customItems.filter((item) => item.token.type === "ERC-20");
17893
+ customErc20Tokens.forEach((item) => {
17894
+ const asset = mapBlockscoutToAsset(item);
17895
+ if (asset.address) {
17896
+ addedAddresses.add(asset.address.toLowerCase());
17897
+ }
17898
+ if (asset.type === "erc20" && asset.address && erc3643Results) {
17899
+ const registryAddress = erc3643Results.get(asset.address.toLowerCase());
17900
+ if (registryAddress) {
17901
+ asset.type = "erc3643";
17902
+ asset.complianceStatus = {
17903
+ isSecurityToken: true,
17904
+ identityRegistry: registryAddress
17905
+ };
17906
+ }
17907
+ }
17908
+ result.push(asset);
17909
+ });
17910
+ }
17911
+ if (!!coreTokenBalances?.length) {
17912
+ coreTokenBalances.forEach((item) => {
17913
+ const asset = mapBlockscoutToAsset(item);
17914
+ if (asset.address) {
17915
+ addedAddresses.add(asset.address.toLowerCase());
17916
+ }
17917
+ if (asset.type === "erc20" && asset.address && erc3643Results) {
17918
+ const registryAddress = erc3643Results.get(asset.address.toLowerCase());
17919
+ if (registryAddress) {
17920
+ asset.type = "erc3643";
17921
+ asset.complianceStatus = {
17922
+ isSecurityToken: true,
17923
+ identityRegistry: registryAddress
17924
+ };
17925
+ }
17926
+ }
17927
+ result.push(asset);
17928
+ });
17929
+ }
17930
+ if (!!blockscoutItems?.length) {
17931
+ const erc20Tokens = blockscoutItems.filter((balance) => balance.token.type === "ERC-20");
17835
17932
  const mappedTokens = erc20Tokens.map((balance) => {
17836
17933
  const asset = mapBlockscoutToAsset(balance);
17837
17934
  if (asset.address) {
@@ -17862,7 +17959,16 @@ function useBlockscoutAssets(options) {
17862
17959
  result.push(...mappedNfts);
17863
17960
  }
17864
17961
  return result;
17865
- }, [nativeBalanceData, tokenBalances, nftItems, erc3643Results, watchTokenAssets, chainConfig]);
17962
+ }, [
17963
+ nativeBalanceData,
17964
+ blockscoutItems,
17965
+ coreTokenBalances,
17966
+ customItems,
17967
+ nftItems,
17968
+ erc3643Results,
17969
+ watchTokenAssets,
17970
+ chainConfig
17971
+ ]);
17866
17972
  const nativeBalance = useMemo10(() => {
17867
17973
  if (!nativeBalanceData) return null;
17868
17974
  return {
@@ -17872,9 +17978,9 @@ function useBlockscoutAssets(options) {
17872
17978
  };
17873
17979
  }, [nativeBalanceData]);
17874
17980
  const error = useMemo10(() => {
17875
- if (!tokensError) return null;
17876
- return createError(tokensError);
17877
- }, [tokensError]);
17981
+ if (!blockscoutError) return null;
17982
+ return createError(blockscoutError);
17983
+ }, [blockscoutError]);
17878
17984
  const refreshBalances = useCallback23(async () => {
17879
17985
  const now = Date.now();
17880
17986
  if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
@@ -17882,16 +17988,15 @@ function useBlockscoutAssets(options) {
17882
17988
  }
17883
17989
  lastRefreshRef.current = now;
17884
17990
  await Promise.all([
17885
- // refetchNative(),
17886
- qc.invalidateQueries({ queryKey: [NATIVE_BALANCE_QUERY_KEY] }),
17887
- // refetchTokens(),
17888
- // refetchNfts(),
17991
+ qc.invalidateQueries({ queryKey: [NATIVE_BALANCE_QUERY_KEY2] }),
17992
+ qc.invalidateQueries({ queryKey: customTokenBalancesQueryKey }),
17993
+ qc.invalidateQueries({ queryKey: [`NON-${BLOCKSCOUT_QUERY_KEY}`] }),
17994
+ // invalidate non-blockscout core token list
17889
17995
  qc.invalidateQueries({ queryKey: [BLOCKSCOUT_QUERY_KEY] }),
17890
17996
  // invalidates both - token-balances and nfts queries
17891
- // refetchWatchTokens()
17892
17997
  qc.invalidateQueries({ queryKey: [WATCH_TOKENS_QUERY_KEY] })
17893
17998
  ]);
17894
- }, [qc]);
17999
+ }, [qc, customTokenBalancesQueryKey]);
17895
18000
  const getTokenBalance = useCallback23(
17896
18001
  (tokenAddress) => {
17897
18002
  return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
@@ -17901,36 +18006,35 @@ function useBlockscoutAssets(options) {
17901
18006
  return {
17902
18007
  nativeBalance,
17903
18008
  assets,
17904
- isLoading: nativeLoading || tokensLoading || nftsLoading || watchTokensLoading,
17905
- isFetching: nativeFetching || tokensFetching || nftsFetching || watchTokensFetching,
18009
+ isLoading: nativeLoading || blockscoutLoading || customLoading || coreTokensLoading || nftsLoading || watchTokensLoading,
18010
+ isFetching: nativeFetching || blockscoutFetching || customFetching || coreTokensFetching || nftsFetching || watchTokensFetching,
17906
18011
  isInitialLoading: nativeLoading && !nativeBalanceData,
17907
18012
  error,
17908
- isBlockscoutAvailable: !!blockscoutClient && !tokensError,
18013
+ isBlockscoutAvailable: !!blockscoutClient && !blockscoutError,
17909
18014
  refreshBalances,
17910
18015
  getTokenBalance,
17911
18016
  lastUpdated: dataUpdatedAt || null
17912
18017
  };
17913
18018
  }
17914
- var NATIVE_BALANCE_QUERY_KEY, BLOCKSCOUT_QUERY_KEY, ERC3643_DETECTION_QUERY_KEY, ERC3643_ABI;
17915
18019
  var init_useBlockscoutAssets = __esm({
17916
- "src/internal/hooks/useBlockscoutAssets.ts"() {
18020
+ "src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts"() {
17917
18021
  init_ProviderContext();
17918
18022
  init_initial();
17919
18023
  init_constants();
17920
18024
  init_useResolvedPublicClient();
18025
+ init_constants5();
18026
+ init_useNativeBalance();
18027
+ init_useWatchTokens();
18028
+ init_utils8();
18029
+ }
18030
+ });
18031
+
18032
+ // src/internal/hooks/useBlockscoutAssets/index.ts
18033
+ var init_useBlockscoutAssets2 = __esm({
18034
+ "src/internal/hooks/useBlockscoutAssets/index.ts"() {
18035
+ init_useBlockscoutAssets();
18036
+ init_useNativeBalance();
17921
18037
  init_useWatchTokens();
17922
- NATIVE_BALANCE_QUERY_KEY = "blockscouts-native-balance-query";
17923
- BLOCKSCOUT_QUERY_KEY = "blockscout-token-balances";
17924
- ERC3643_DETECTION_QUERY_KEY = "erc3643-detection";
17925
- ERC3643_ABI = [
17926
- {
17927
- name: "identityRegistry",
17928
- type: "function",
17929
- stateMutability: "view",
17930
- inputs: [],
17931
- outputs: [{ name: "", type: "address" }]
17932
- }
17933
- ];
17934
18038
  }
17935
18039
  });
17936
18040
 
@@ -17943,7 +18047,7 @@ var init_no_image = __esm({
17943
18047
  });
17944
18048
 
17945
18049
  // src/internal/components/BalanceView/BalanceView.tsx
17946
- import { formatUnits as formatUnits4 } from "viem";
18050
+ import { formatUnits as formatUnits5 } from "viem";
17947
18051
  import { jsx as jsx81, jsxs as jsxs75 } from "react/jsx-runtime";
17948
18052
  function BalanceView(props) {
17949
18053
  const { className } = props;
@@ -17951,22 +18055,35 @@ function BalanceView(props) {
17951
18055
  const showFiatBalance = config.current?.features?.showActiveBalanceAsFiat;
17952
18056
  const balance = useLayoutDataStore((st) => st.balance);
17953
18057
  const cryptoSymbol = useLayoutDataStore((st) => st.cryptoSymbol);
17954
- const cryptoBalance = Number(formatUnits4(balance?.value || BigInt(0), balance?.decimals || 18));
18058
+ const cryptoBalance = Number(formatUnits5(balance?.value || BigInt(0), balance?.decimals || 18));
17955
18059
  const fiatBalance = useLayoutDataStore((st) => st.fiatBalance);
17956
18060
  const fiatSymbol = useLayoutDataStore((st) => st.fiatSymbol);
17957
- const symbol = showFiatBalance ? fiatSymbol : cryptoSymbol;
17958
- return /* @__PURE__ */ jsxs75("span", { className: cn("text-lg leading-5 font-bold", className), children: [
17959
- BALANCE_PREFIXES[symbol] || null,
17960
- /* @__PURE__ */ jsx81("span", { children: formatPrice(showFiatBalance ? fiatBalance : cryptoBalance) }),
17961
- !BALANCE_PREFIXES[symbol] && /* @__PURE__ */ jsxs75("span", { children: [
17962
- " ",
17963
- symbol
17964
- ] })
17965
- ] });
18061
+ const BalanceIcon = showFiatBalance && !!fiatBalance ? TOKENS_ICONS[cryptoSymbol] : null;
18062
+ return /* @__PURE__ */ jsxs75(
18063
+ "p",
18064
+ {
18065
+ className: cn(
18066
+ //
18067
+ "flex items-center gap-1",
18068
+ "text-lg leading-5 font-bold",
18069
+ className
18070
+ ),
18071
+ children: [
18072
+ !!BalanceIcon && /* @__PURE__ */ jsx81(BalanceIcon, { className: "w-5 h-5" }),
18073
+ /* @__PURE__ */ jsxs75("span", { children: [
18074
+ showFiatBalance && !!fiatBalance && BALANCE_PREFIXES[fiatSymbol],
18075
+ formatPrice(showFiatBalance ? fiatBalance : cryptoBalance)
18076
+ ] }),
18077
+ showFiatBalance && !!fiatBalance && !BALANCE_PREFIXES[fiatSymbol] && /* @__PURE__ */ jsx81("span", { children: fiatSymbol }),
18078
+ !showFiatBalance && /* @__PURE__ */ jsx81("span", { children: cryptoSymbol })
18079
+ ]
18080
+ }
18081
+ );
17966
18082
  }
17967
18083
  var BALANCE_PREFIXES;
17968
18084
  var init_BalanceView = __esm({
17969
18085
  "src/internal/components/BalanceView/BalanceView.tsx"() {
18086
+ init_tokens();
17970
18087
  init_useLayoutDataStore();
17971
18088
  init_priceFormatter();
17972
18089
  init_utils2();
@@ -17989,9 +18106,9 @@ var init_BalanceView2 = __esm({
17989
18106
  });
17990
18107
 
17991
18108
  // src/internal/components/PortfolioMenu/PortfolioItem.tsx
17992
- import { useQuery as useQuery15 } from "@tanstack/react-query";
18109
+ import { useQuery as useQuery16 } from "@tanstack/react-query";
17993
18110
  import { LoaderIcon as LoaderIcon8, ShieldAlertIcon, SparklesIcon } from "lucide-react";
17994
- import { formatUnits as formatUnits5 } from "viem";
18111
+ import { formatUnits as formatUnits6 } from "viem";
17995
18112
  import { Fragment as Fragment30, jsx as jsx82, jsxs as jsxs76 } from "react/jsx-runtime";
17996
18113
  function openInExplorer(address) {
17997
18114
  window.open(`${getExplorerUrl()}/address/${address}`, "_blank");
@@ -18099,7 +18216,7 @@ function PortfolioItem(props) {
18099
18216
  queryKey: asset.balanceQueryKey,
18100
18217
  queryFn: asset.balanceQuery
18101
18218
  } : void 0;
18102
- const { data: projectAssetBalance } = useQuery15({
18219
+ const { data: projectAssetBalance } = useQuery16({
18103
18220
  enabled: !!projectAssetQuery,
18104
18221
  retry: false,
18105
18222
  queryKey: projectAssetQuery?.queryKey ?? ["project-asset-balance-disabled", asset.symbol],
@@ -18109,7 +18226,7 @@ function PortfolioItem(props) {
18109
18226
  const isSecurity = isSecurityToken(asset);
18110
18227
  const embeddedRate = Number(asset.exchangeRateUsd || 0);
18111
18228
  const hasEmbeddedRate = Number.isFinite(embeddedRate) && embeddedRate > 0;
18112
- const { data: assetRate, isLoading: isRateLoading } = useQuery15({
18229
+ const { data: assetRate, isLoading: isRateLoading } = useQuery16({
18113
18230
  enabled: !!address && !hasEmbeddedRate && !isProjectAsset && !isNft && !isSecurity && (!!customAssetRateQuery || !!isAssetRateAvailable(asset.symbol)),
18114
18231
  retry: false,
18115
18232
  staleTime: 4 * 60 * 1e3,
@@ -18118,7 +18235,7 @@ function PortfolioItem(props) {
18118
18235
  queryFn: async () => await resolveAssetRate(asset.symbol, asset.address, customAssetRateQuery)
18119
18236
  });
18120
18237
  const hasProjectAssetBalance = isProjectAsset && projectAssetBalance != null;
18121
- const renderBalance = hasProjectAssetBalance ? projectAssetBalance.cryptoFormatted : Number(formatUnits5(BigInt(asset?.balance || "0"), asset?.decimals || 18));
18238
+ const renderBalance = hasProjectAssetBalance ? projectAssetBalance.cryptoFormatted : Number(formatUnits6(BigInt(asset?.balance || "0"), asset?.decimals || 18));
18122
18239
  const resolvedRate = hasEmbeddedRate ? embeddedRate : Number(assetRate?.price || 0);
18123
18240
  const usdRenderBalance = resolvedRate > 0 ? renderBalance * resolvedRate : 0;
18124
18241
  const shortContractAddress = asset.address ? truncateMiddle(asset.address, 6, 4) : null;
@@ -18208,15 +18325,14 @@ function PortfolioMenu() {
18208
18325
  const { t } = useT();
18209
18326
  const qc = useQueryClient20();
18210
18327
  const address = useSession((st) => st.address);
18211
- const chainConfig = useSession((st) => st.chainConfig);
18212
18328
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
18213
18329
  const {
18214
18330
  assets: blockscoutAssets,
18215
18331
  refreshBalances: refreshBlockscoutBalances,
18216
18332
  isLoading: isBlockscoutLoading,
18217
18333
  isFetching: isBlockscoutFetching,
18218
- error: blockscoutError,
18219
- isBlockscoutAvailable
18334
+ error: blockscoutError
18335
+ // isBlockscoutAvailable
18220
18336
  } = useBlockscoutAssets({
18221
18337
  address,
18222
18338
  enabled: !!address
@@ -18273,11 +18389,6 @@ function PortfolioMenu() {
18273
18389
  },
18274
18390
  `${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
18275
18391
  )),
18276
- !isBlockscoutAvailable && /* @__PURE__ */ jsx83(Highlight, {
18277
- type: "warning",
18278
- //@ts-expect-error i18n typings
18279
- children: t("passport:portfolioMenu.noBlockscout", { chain: chainConfig?.name?.toUpperCase() || "UNKNOWN" })
18280
- }),
18281
18392
  blockscoutError && /* @__PURE__ */ jsx83(Highlight, { type: "error", children: blockscoutError?.message })
18282
18393
  ] })
18283
18394
  }
@@ -18288,7 +18399,7 @@ var init_PortfolioMenu = __esm({
18288
18399
  init_ProviderContext();
18289
18400
  init_SessionContext();
18290
18401
  init_i18n();
18291
- init_useBlockscoutAssets();
18402
+ init_useBlockscoutAssets2();
18292
18403
  init_useLayoutDataStore();
18293
18404
  init_useLayoutStore();
18294
18405
  init_Expandable2();
@@ -18388,7 +18499,7 @@ var init_nickname_fingerprint = __esm({
18388
18499
  // src/internal/components/ReceiveMenu/ReceiveMenu.tsx
18389
18500
  import { ArrowLeft as ArrowLeft17, CheckCircle2 as CheckCircle23, Copy as Copy2, Info as Info5, Loader as Loader17, Shield } from "lucide-react";
18390
18501
  import QRCode from "qrcode";
18391
- import { useCallback as useCallback25, useEffect as useEffect33, useMemo as useMemo11, useState as useState21 } from "react";
18502
+ import { useCallback as useCallback25, useEffect as useEffect33, useMemo as useMemo11, useState as useState20 } from "react";
18392
18503
  import { Fragment as Fragment31, jsx as jsx84, jsxs as jsxs78 } from "react/jsx-runtime";
18393
18504
  function ReceiveMenu() {
18394
18505
  const session = useSession((st) => st.session);
@@ -18399,9 +18510,9 @@ function ReceiveMenu() {
18399
18510
  const { t } = useT();
18400
18511
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
18401
18512
  const open = page === "receive";
18402
- const [qrCodeUrl, setQrCodeUrl] = useState21("");
18403
- const [copied, setCopied] = useState21(false);
18404
- const [fingerprintCopied, setFingerprintCopied] = useState21(false);
18513
+ const [qrCodeUrl, setQrCodeUrl] = useState20("");
18514
+ const [copied, setCopied] = useState20(false);
18515
+ const [fingerprintCopied, setFingerprintCopied] = useState20(false);
18405
18516
  const fingerprint = useMemo11(() => {
18406
18517
  if (!session?.ownerAddress) return null;
18407
18518
  try {
@@ -18533,7 +18644,7 @@ var init_useSecurityStore = __esm({
18533
18644
 
18534
18645
  // src/internal/components/SecurityMenu/constants.ts
18535
18646
  var KEYSHARE_RECOVERY_STATS_QUERY, CONNECTED_TRUSTED_APPS_QUERY;
18536
- var init_constants5 = __esm({
18647
+ var init_constants6 = __esm({
18537
18648
  "src/internal/components/SecurityMenu/constants.ts"() {
18538
18649
  KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
18539
18650
  CONNECTED_TRUSTED_APPS_QUERY = "connected-trusted-apps-query";
@@ -18541,11 +18652,11 @@ var init_constants5 = __esm({
18541
18652
  });
18542
18653
 
18543
18654
  // src/internal/components/SecurityMenu/ConnectedApps/useConnectedApps.ts
18544
- import { useQuery as useQuery16 } from "@tanstack/react-query";
18655
+ import { useQuery as useQuery17 } from "@tanstack/react-query";
18545
18656
  function useConnectedApps() {
18546
18657
  const session = useSession((st) => st.session);
18547
18658
  const userId = session?.mpcUserId || null;
18548
- return useQuery16({
18659
+ return useQuery17({
18549
18660
  retry: false,
18550
18661
  enabled: !!userId,
18551
18662
  queryKey: [CONNECTED_TRUSTED_APPS_QUERY, userId],
@@ -18562,7 +18673,7 @@ var init_useConnectedApps = __esm({
18562
18673
  "src/internal/components/SecurityMenu/ConnectedApps/useConnectedApps.ts"() {
18563
18674
  init_SessionContext();
18564
18675
  init_httpClient();
18565
- init_constants5();
18676
+ init_constants6();
18566
18677
  }
18567
18678
  });
18568
18679
 
@@ -18789,7 +18900,7 @@ var init_UntrustApplication = __esm({
18789
18900
  init_iframe_manager();
18790
18901
  init_button();
18791
18902
  init_highlight();
18792
- init_constants5();
18903
+ init_constants6();
18793
18904
  init_useSecurityStore();
18794
18905
  }
18795
18906
  });
@@ -18900,11 +19011,11 @@ var init_LastBackup = __esm({
18900
19011
  });
18901
19012
 
18902
19013
  // src/internal/components/SecurityMenu/Keyshare/useKeyshareRecoveryStats.ts
18903
- import { useQuery as useQuery17 } from "@tanstack/react-query";
19014
+ import { useQuery as useQuery18 } from "@tanstack/react-query";
18904
19015
  function useKeyshareRecoveryStats() {
18905
19016
  const session = useSession((st) => st.session);
18906
19017
  const userId = session?.mpcUserId || null;
18907
- return useQuery17({
19018
+ return useQuery18({
18908
19019
  enabled: !!userId,
18909
19020
  queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
18910
19021
  queryFn: async () => {
@@ -18927,7 +19038,7 @@ var init_useKeyshareRecoveryStats = __esm({
18927
19038
  init_keyshare();
18928
19039
  init_iframe_manager();
18929
19040
  init_vaultClient();
18930
- init_constants5();
19041
+ init_constants6();
18931
19042
  }
18932
19043
  });
18933
19044
 
@@ -19346,7 +19457,7 @@ var init_useBridgeStore = __esm({
19346
19457
  // src/internal/components/SendMenu/hyperbridge/components/SenderSelector.tsx
19347
19458
  import { useConnectModal } from "@rainbow-me/rainbowkit";
19348
19459
  import { useMutation as useMutation19 } from "@tanstack/react-query";
19349
- import { useEffect as useEffect36, useRef as useRef18, useState as useState22 } from "react";
19460
+ import { useEffect as useEffect36, useRef as useRef16, useState as useState21 } from "react";
19350
19461
  import { useSignMessage } from "wagmi";
19351
19462
  import { jsx as jsx91, jsxs as jsxs85 } from "react/jsx-runtime";
19352
19463
  function SenderSelector(props) {
@@ -19357,11 +19468,11 @@ function SenderSelector(props) {
19357
19468
  const { openConnectModal } = useConnectModal();
19358
19469
  const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
19359
19470
  const directWalletIsConnected = useExternalWalletStore((st) => st.isExternalConnected);
19360
- const pendingWalletRef = useRef18(null);
19471
+ const pendingWalletRef = useRef16(null);
19361
19472
  const originChain = useBridgeStore((st) => st.originChain);
19362
19473
  const bridgeSender = useBridgeStore((st) => st.bridgeSender);
19363
19474
  const bridgeSenders = useBridgeStore((st) => st.bridgeSenders);
19364
- const [walletMessage, setWalletMessage] = useState22(null);
19475
+ const [walletMessage, setWalletMessage] = useState21(null);
19365
19476
  useEffect36(() => {
19366
19477
  useFlowSelectorStore.getState().setRenderKey(`sender-selected-${Date.now()}`);
19367
19478
  }, [walletMessage]);
@@ -19591,11 +19702,11 @@ var init_wallets = __esm({
19591
19702
  });
19592
19703
 
19593
19704
  // src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts
19594
- import { useEffect as useEffect37, useRef as useRef19 } from "react";
19705
+ import { useEffect as useEffect37, useRef as useRef17 } from "react";
19595
19706
  function useAvailableSenders() {
19596
19707
  const address = useSession((st) => st.address);
19597
19708
  const { profiles } = useLinkedProfiles();
19598
- const lastCalcedSenders = useRef19([]);
19709
+ const lastCalcedSenders = useRef17([]);
19599
19710
  useEffect37(() => {
19600
19711
  const sendersAccumulator = [
19601
19712
  {
@@ -19935,7 +20046,7 @@ var init_executeWarpTxs = __esm({
19935
20046
 
19936
20047
  // src/internal/components/SendMenu/hyperbridge/utils.ts
19937
20048
  import { SUPPORTED_CHAINS as SUPPORTED_CHAINS2 } from "@embarkai/core/read";
19938
- import { formatUnits as formatUnits6 } from "viem";
20049
+ import { formatUnits as formatUnits7 } from "viem";
19939
20050
  function isNftAsset2(asset) {
19940
20051
  if (!asset) return false;
19941
20052
  return asset.type === "erc721" || asset.type === "erc1155";
@@ -19943,13 +20054,13 @@ function isNftAsset2(asset) {
19943
20054
  function getAssetBalance(asset) {
19944
20055
  if (!asset) return 0;
19945
20056
  if (isNftAsset2(asset)) return 1;
19946
- return Number(formatUnits6(BigInt(asset.balance || "0"), asset.decimals || 18));
20057
+ return Number(formatUnits7(BigInt(asset.balance || "0"), asset.decimals || 18));
19947
20058
  }
19948
20059
  function isOririnChainEmbarkSupported(originChain) {
19949
20060
  const supportedChain = [...SUPPORTED_CHAINS2].map(([chainId]) => chainId);
19950
20061
  return supportedChain.includes(CHAINS_UI_META[originChain].chainID);
19951
20062
  }
19952
- var init_utils8 = __esm({
20063
+ var init_utils9 = __esm({
19953
20064
  "src/internal/components/SendMenu/hyperbridge/utils.ts"() {
19954
20065
  init_chains();
19955
20066
  }
@@ -20216,14 +20327,14 @@ var init_useBridge = __esm({
20216
20327
  init_chains();
20217
20328
  init_executeWarpTxs();
20218
20329
  init_useBridgeStore();
20219
- init_utils8();
20330
+ init_utils9();
20220
20331
  init_useHyperlaneHistory();
20221
20332
  init_useOperationHashesStore();
20222
20333
  }
20223
20334
  });
20224
20335
 
20225
20336
  // src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts
20226
- import { useQuery as useQuery18 } from "@tanstack/react-query";
20337
+ import { useQuery as useQuery19 } from "@tanstack/react-query";
20227
20338
  import { useEffect as useEffect39 } from "react";
20228
20339
  function useHyperlaneRoutes() {
20229
20340
  const address = useSession((st) => st.address);
@@ -20234,7 +20345,7 @@ function useHyperlaneRoutes() {
20234
20345
  data: hyperlaneWarpRoutes = [],
20235
20346
  isLoading: isLoadingWarpRoutes,
20236
20347
  error: errorWarpRoutes
20237
- } = useQuery18({
20348
+ } = useQuery19({
20238
20349
  retry: false,
20239
20350
  enabled: !!address && page === "send" /* SEND */ && flow === "bridge",
20240
20351
  queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
@@ -20280,7 +20391,7 @@ var init_useHyperlaneRoutes = __esm({
20280
20391
  init_useFlowSelector();
20281
20392
  init_api3();
20282
20393
  init_useBridgeStore();
20283
- init_utils8();
20394
+ init_utils9();
20284
20395
  HYPERLANE_WARP_ROUTES_QUERY_KEY = "hyperlane-available-warp-routes";
20285
20396
  }
20286
20397
  });
@@ -20343,9 +20454,9 @@ var init_ResolveChainIcon = __esm({
20343
20454
 
20344
20455
  // src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts
20345
20456
  import { CHAINS_BROWSERS_TRANSPORTS as CHAINS_BROWSERS_TRANSPORTS2 } from "@embarkai/core";
20346
- import { useQuery as useQuery19, useQueryClient as useQueryClient23 } from "@tanstack/react-query";
20457
+ import { useQuery as useQuery20, useQueryClient as useQueryClient23 } from "@tanstack/react-query";
20347
20458
  import { useCallback as useCallback28, useEffect as useEffect41 } from "react";
20348
- import { createPublicClient as createPublicClient2, erc20Abi as erc20Abi2, formatUnits as formatUnits7, http as http3 } from "viem";
20459
+ import { createPublicClient as createPublicClient2, erc20Abi as erc20Abi3, formatUnits as formatUnits8, http as http3 } from "viem";
20349
20460
  import { useSwitchChain as useSwitchChain2 } from "wagmi";
20350
20461
  function checkWrapedTokenSymbol2(symbol) {
20351
20462
  if (WRAPPED_TOKENS.includes(symbol)) {
@@ -20381,7 +20492,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20381
20492
  const embarkTokenBalanace = assets.find((a) => selectedWarpRoute?.symbol === checkWrapedTokenSymbol2(a.symbol));
20382
20493
  const originChainMeta = CHAINS_UI_META[originChain];
20383
20494
  const isSelectedTokenNative = selectedWarpRoute?.symbol?.toUpperCase() === originChainMeta?.chain?.nativeCurrency?.symbol?.toUpperCase();
20384
- const { data: externalBalanceData, isLoading: isExternalBalanceLoading } = useQuery19({
20495
+ const { data: externalBalanceData, isLoading: isExternalBalanceLoading } = useQuery20({
20385
20496
  retry: false,
20386
20497
  enabled: bridgeSender === "direct-wallet" && !isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain,
20387
20498
  queryKey: [EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, originChain, directWalletAddress, routeTokenAddress],
@@ -20394,20 +20505,20 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20394
20505
  const [value, decimals, symbol] = await Promise.all([
20395
20506
  client.readContract({
20396
20507
  address: routeTokenAddress,
20397
- abi: erc20Abi2,
20508
+ abi: erc20Abi3,
20398
20509
  functionName: "balanceOf",
20399
20510
  args: [directWalletAddress],
20400
20511
  authorizationList: void 0
20401
20512
  }),
20402
20513
  client.readContract({
20403
20514
  address: routeTokenAddress,
20404
- abi: erc20Abi2,
20515
+ abi: erc20Abi3,
20405
20516
  functionName: "decimals",
20406
20517
  authorizationList: void 0
20407
20518
  }),
20408
20519
  client.readContract({
20409
20520
  address: routeTokenAddress,
20410
- abi: erc20Abi2,
20521
+ abi: erc20Abi3,
20411
20522
  functionName: "symbol",
20412
20523
  authorizationList: void 0
20413
20524
  })
@@ -20420,11 +20531,11 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20420
20531
  });
20421
20532
  return [BigInt(0), 18, selectedWarpRoute.symbol];
20422
20533
  });
20423
- const formatted = Number(formatUnits7(value, decimals));
20534
+ const formatted = Number(formatUnits8(value, decimals));
20424
20535
  return { value, decimals, symbol, formatted };
20425
20536
  }
20426
20537
  });
20427
- const { data: externalNativeBalanceData, isLoading: isExternalNativeBalanceLoading } = useQuery19({
20538
+ const { data: externalNativeBalanceData, isLoading: isExternalNativeBalanceLoading } = useQuery20({
20428
20539
  retry: false,
20429
20540
  enabled: bridgeSender === "direct-wallet" && isSelectedTokenNative && !!directWalletAddress && !!originChain,
20430
20541
  queryKey: [EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY, originChain, directWalletAddress],
@@ -20480,7 +20591,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20480
20591
  }
20481
20592
  }, [bridgeSender, originChain, directWalletChainId, switchChainAsync]);
20482
20593
  const embarkBalance = embarkTokenBalanace ? getAssetBalance(embarkTokenBalanace) : 0;
20483
- const externalWalletBalance = isSelectedTokenNative ? formatUnits7(externalNativeBalanceData?.value || BigInt(0), externalNativeBalanceData?.decimals || 18) : formatUnits7(externalBalanceData?.value || BigInt(0), externalBalanceData?.decimals || 18);
20594
+ const externalWalletBalance = isSelectedTokenNative ? formatUnits8(externalNativeBalanceData?.value || BigInt(0), externalNativeBalanceData?.decimals || 18) : formatUnits8(externalBalanceData?.value || BigInt(0), externalBalanceData?.decimals || 18);
20484
20595
  return {
20485
20596
  routeTokenBalance: isEmbarkSender ? embarkBalance : externalWalletBalance,
20486
20597
  isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
@@ -20492,12 +20603,12 @@ var init_useBridgeBalance = __esm({
20492
20603
  init_constants();
20493
20604
  init_SessionContext();
20494
20605
  init_i18n();
20495
- init_useBlockscoutAssets();
20606
+ init_useBlockscoutAssets2();
20496
20607
  init_useExternalWalletStore();
20497
20608
  init_useFlowSelector();
20498
20609
  init_chains();
20499
20610
  init_useBridgeStore();
20500
- init_utils8();
20611
+ init_utils9();
20501
20612
  EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY = "external-wallet-bridging-balance-query";
20502
20613
  EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY = "external-wallet-bridging-native-balance-query";
20503
20614
  }
@@ -20794,11 +20905,11 @@ var init_checkbox = __esm({
20794
20905
 
20795
20906
  // src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
20796
20907
  import { LoaderIcon as LoaderIcon12 } from "lucide-react";
20797
- import { useState as useState23 } from "react";
20908
+ import { useState as useState22 } from "react";
20798
20909
  import { jsx as jsx97, jsxs as jsxs89 } from "react/jsx-runtime";
20799
20910
  function ConfirmStep(props) {
20800
20911
  const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
20801
- const [userConsent, setUserConsent] = useState23(false);
20912
+ const [userConsent, setUserConsent] = useState22(false);
20802
20913
  const { t } = useT();
20803
20914
  const address = useSession((st) => st.address);
20804
20915
  const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
@@ -21283,12 +21394,12 @@ var init_HistoryStep = __esm({
21283
21394
 
21284
21395
  // src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx
21285
21396
  import { ArrowLeftRightIcon as ArrowLeftRightIcon2 } from "lucide-react";
21286
- import { useMemo as useMemo13, useState as useState24 } from "react";
21397
+ import { useMemo as useMemo13, useState as useState23 } from "react";
21287
21398
  import { Fragment as Fragment38, jsx as jsx100, jsxs as jsxs92 } from "react/jsx-runtime";
21288
21399
  function SelectAssetRoute(props) {
21289
21400
  const { hyperlaneWarpRoutes } = props;
21290
21401
  const { t } = useT();
21291
- const [isTokenSymbolSelector, setIsTokenSymbolSelector] = useState24(false);
21402
+ const [isTokenSymbolSelector, setIsTokenSymbolSelector] = useState23(false);
21292
21403
  const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
21293
21404
  const tokenList = useMemo13(() => {
21294
21405
  const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
@@ -21395,7 +21506,7 @@ var init_SelectAssetRoute = __esm({
21395
21506
  init_useFlowSelector();
21396
21507
  init_ResolveChainIcon();
21397
21508
  init_useBridgeStore();
21398
- init_utils8();
21509
+ init_utils9();
21399
21510
  }
21400
21511
  });
21401
21512
 
@@ -21465,14 +21576,14 @@ var init_HyperlaneBridge = __esm({
21465
21576
  });
21466
21577
 
21467
21578
  // src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx
21468
- import { useRef as useRef20 } from "react";
21579
+ import { useRef as useRef18 } from "react";
21469
21580
  import { jsx as jsx102 } from "react/jsx-runtime";
21470
21581
  function BridgeHistorySwitch(props) {
21471
21582
  const { disabled } = props;
21472
21583
  const selectorFlow = useFlowSelectorStore((st) => st.flow);
21473
21584
  const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
21474
21585
  const bridgeStep = useBridgeStore((st) => st.bridgeStep);
21475
- const lastBridgeStepRef = useRef20(null);
21586
+ const lastBridgeStepRef = useRef18(null);
21476
21587
  if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
21477
21588
  return null;
21478
21589
  }
@@ -21573,8 +21684,8 @@ var init_useErc3643Compliance = __esm({
21573
21684
  });
21574
21685
 
21575
21686
  // src/hooks/useNicknameResolve.ts
21576
- import { useQuery as useQuery20 } from "@tanstack/react-query";
21577
- import { useEffect as useEffect43, useMemo as useMemo14, useState as useState25 } from "react";
21687
+ import { useQuery as useQuery21 } from "@tanstack/react-query";
21688
+ import { useEffect as useEffect43, useMemo as useMemo14, useState as useState24 } from "react";
21578
21689
  function looksLikeNickname(input) {
21579
21690
  if (!input) return false;
21580
21691
  if (input.startsWith("0x")) return false;
@@ -21584,8 +21695,8 @@ function looksLikeNickname(input) {
21584
21695
  }
21585
21696
  function useNicknameResolve(input, options) {
21586
21697
  const { enabled = true, chainId } = options;
21587
- const [debouncedInput, setDebouncedInput] = useState25("");
21588
- const [isDebouncing, setIsDebouncing] = useState25(false);
21698
+ const [debouncedInput, setDebouncedInput] = useState24("");
21699
+ const [isDebouncing, setIsDebouncing] = useState24(false);
21589
21700
  const normalized = normalizeNickname(input);
21590
21701
  const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
21591
21702
  useEffect43(() => {
@@ -21603,7 +21714,7 @@ function useNicknameResolve(input, options) {
21603
21714
  clearTimeout(timer);
21604
21715
  };
21605
21716
  }, [normalized, isNicknameInput, enabled]);
21606
- const query = useQuery20({
21717
+ const query = useQuery21({
21607
21718
  queryKey: [...QUERY_KEYS.nicknameResolve(debouncedInput), chainId],
21608
21719
  queryFn: async () => await resolveNickname(debouncedInput, chainId),
21609
21720
  enabled: enabled && isNicknameInput && debouncedInput.length > 0,
@@ -21648,14 +21759,14 @@ var init_useNicknameResolve = __esm({
21648
21759
  });
21649
21760
 
21650
21761
  // src/hooks/useSendTransaction.ts
21651
- import { useCallback as useCallback29, useState as useState26 } from "react";
21762
+ import { useCallback as useCallback29, useState as useState25 } from "react";
21652
21763
  import { encodeFunctionData as encodeFunctionData2, isAddress, parseEther as parseEther2, parseUnits } from "viem";
21653
21764
  function useSendTransaction() {
21654
21765
  const session = useSession((st) => st.session);
21655
21766
  const address = useSession((st) => st.address);
21656
- const [isLoading, setIsLoading] = useState26(false);
21657
- const [error, setError] = useState26(null);
21658
- const [userOpHash, setUserOpHash] = useState26(null);
21767
+ const [isLoading, setIsLoading] = useState25(false);
21768
+ const [error, setError] = useState25(null);
21769
+ const [userOpHash, setUserOpHash] = useState25(null);
21659
21770
  const sendTransaction = useCallback29(
21660
21771
  async (params) => {
21661
21772
  if (!session || !address) {
@@ -21812,7 +21923,7 @@ var init_useSendTransaction = __esm({
21812
21923
  });
21813
21924
 
21814
21925
  // src/internal/components/SendMenu/send/utils.ts
21815
- import { formatUnits as formatUnits8 } from "viem";
21926
+ import { formatUnits as formatUnits9 } from "viem";
21816
21927
  function isNftAsset3(asset) {
21817
21928
  if (!asset) return false;
21818
21929
  return asset.type === "erc721" || asset.type === "erc1155";
@@ -21824,12 +21935,12 @@ function isSecurityToken2(asset) {
21824
21935
  function getAssetBalance2(asset) {
21825
21936
  if (!asset) return 0;
21826
21937
  if (isNftAsset3(asset)) return 1;
21827
- return Number(formatUnits8(BigInt(asset.balance || "0"), asset.decimals || 18));
21938
+ return Number(formatUnits9(BigInt(asset.balance || "0"), asset.decimals || 18));
21828
21939
  }
21829
21940
  function isBalance(asset) {
21830
21941
  return asset?.balance && BigInt(asset.balance || 0) > 0n;
21831
21942
  }
21832
- var init_utils9 = __esm({
21943
+ var init_utils10 = __esm({
21833
21944
  "src/internal/components/SendMenu/send/utils.ts"() {
21834
21945
  }
21835
21946
  });
@@ -21902,16 +22013,16 @@ var init_AssetInputIcon = __esm({
21902
22013
  init_tokens();
21903
22014
  init_no_image();
21904
22015
  init_utils2();
21905
- init_utils9();
22016
+ init_utils10();
21906
22017
  }
21907
22018
  });
21908
22019
 
21909
22020
  // src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
21910
22021
  import { Image as ImageIcon2, Sparkles as Sparkles2 } from "lucide-react";
21911
- import { useState as useState27 } from "react";
22022
+ import { useState as useState26 } from "react";
21912
22023
  import { jsx as jsx104, jsxs as jsxs95 } from "react/jsx-runtime";
21913
22024
  function NftDisplayCard({ asset }) {
21914
- const [imageError, setImageError] = useState27(false);
22025
+ const [imageError, setImageError] = useState26(false);
21915
22026
  const nftImage = asset.image || asset.nftMetadata?.image;
21916
22027
  return /* @__PURE__ */ jsxs95("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
21917
22028
  nftImage && !imageError ? /* @__PURE__ */ jsx104(
@@ -21984,11 +22095,11 @@ var init_useSendStore = __esm({
21984
22095
  });
21985
22096
 
21986
22097
  // src/internal/components/SendMenu/send/components/AssetList.tsx
21987
- import { formatUnits as formatUnits9 } from "viem";
22098
+ import { formatUnits as formatUnits10 } from "viem";
21988
22099
  import { Fragment as Fragment40, jsx as jsx105, jsxs as jsxs96 } from "react/jsx-runtime";
21989
22100
  function getAssetBalance3(asset) {
21990
22101
  if (isNftAsset3(asset)) return "1";
21991
- const balance = Number(formatUnits9(BigInt(asset?.balance || "0"), asset?.decimals || 18));
22102
+ const balance = Number(formatUnits10(BigInt(asset?.balance || "0"), asset?.decimals || 18));
21992
22103
  return formatPrice(balance);
21993
22104
  }
21994
22105
  function AssetListItem(props) {
@@ -22080,7 +22191,7 @@ var init_AssetList = __esm({
22080
22191
  init_truncateMiddle();
22081
22192
  init_BalanceView2();
22082
22193
  init_useSendStore();
22083
- init_utils9();
22194
+ init_utils10();
22084
22195
  init_AssetInputIcon();
22085
22196
  }
22086
22197
  });
@@ -22179,11 +22290,11 @@ var init_components3 = __esm({
22179
22290
 
22180
22291
  // src/internal/components/SendMenu/send/useTokenBalance.ts
22181
22292
  import {
22182
- useQuery as useQuery21
22293
+ useQuery as useQuery22
22183
22294
  } from "@tanstack/react-query";
22184
22295
  import {
22185
- erc20Abi as erc20Abi3,
22186
- formatUnits as formatUnits10
22296
+ erc20Abi as erc20Abi4,
22297
+ formatUnits as formatUnits11
22187
22298
  } from "viem";
22188
22299
  function isNftAsset4(asset) {
22189
22300
  if (!asset) return false;
@@ -22192,7 +22303,7 @@ function isNftAsset4(asset) {
22192
22303
  function useTokenBalance(asset) {
22193
22304
  const address = useSession((st) => st.address);
22194
22305
  const chainConfig = useSession((st) => st.chainConfig);
22195
- return useQuery21({
22306
+ return useQuery22({
22196
22307
  retry: false,
22197
22308
  enabled: !!address && !!chainConfig?.id && !!asset?.symbol,
22198
22309
  refetchInterval: 5e3,
@@ -22216,7 +22327,7 @@ function useTokenBalance(asset) {
22216
22327
  const balanceValue = await client.getBalance({ address });
22217
22328
  return {
22218
22329
  decimals: chainConfig?.nativeCurrency?.decimals || 18,
22219
- formatted: Number(formatUnits10(balanceValue, chainConfig?.nativeCurrency?.decimals || 18)),
22330
+ formatted: Number(formatUnits11(balanceValue, chainConfig?.nativeCurrency?.decimals || 18)),
22220
22331
  symbol: asset.symbol,
22221
22332
  value: balanceValue
22222
22333
  };
@@ -22225,20 +22336,20 @@ function useTokenBalance(asset) {
22225
22336
  client.readContract({
22226
22337
  // address: routeTokenAddress as `0x${string}`,
22227
22338
  address: asset.address,
22228
- abi: erc20Abi3,
22339
+ abi: erc20Abi4,
22229
22340
  functionName: "balanceOf",
22230
22341
  args: [address],
22231
22342
  authorizationList: void 0
22232
22343
  }),
22233
22344
  client.readContract({
22234
22345
  address: asset.address,
22235
- abi: erc20Abi3,
22346
+ abi: erc20Abi4,
22236
22347
  functionName: "decimals",
22237
22348
  authorizationList: void 0
22238
22349
  }),
22239
22350
  client.readContract({
22240
22351
  address: asset.address,
22241
- abi: erc20Abi3,
22352
+ abi: erc20Abi4,
22242
22353
  functionName: "symbol",
22243
22354
  authorizationList: void 0
22244
22355
  })
@@ -22251,7 +22362,7 @@ function useTokenBalance(asset) {
22251
22362
  });
22252
22363
  return [BigInt(0), 18, asset.symbol];
22253
22364
  });
22254
- return { decimals, formatted: Number(formatUnits10(value, decimals)), symbol, value };
22365
+ return { decimals, formatted: Number(formatUnits11(value, decimals)), symbol, value };
22255
22366
  }
22256
22367
  }
22257
22368
  });
@@ -22266,7 +22377,7 @@ var init_useTokenBalance = __esm({
22266
22377
 
22267
22378
  // src/internal/components/SendMenu/send/sendSteps/InputSendStep.tsx
22268
22379
  import { AlertCircle as AlertCircle4, AtSign as AtSign2, CheckCircle2 as CheckCircle25, Loader as Loader20, Wallet2 as Wallet24 } from "lucide-react";
22269
- import { formatUnits as formatUnits11, isAddress as isAddress2 } from "viem";
22380
+ import { formatUnits as formatUnits12, isAddress as isAddress2 } from "viem";
22270
22381
  import { Fragment as Fragment41, jsx as jsx107, jsxs as jsxs98 } from "react/jsx-runtime";
22271
22382
  function InputSendStep(props) {
22272
22383
  const { erc3643Compliance, isNicknameInput, resolvedNicknameData, isAssetsLoading } = props;
@@ -22297,7 +22408,7 @@ function InputSendStep(props) {
22297
22408
  const maxAmount = Math.max(0, balanceData.formatted - 1e-3);
22298
22409
  setAmount(maxAmount.toFixed(6));
22299
22410
  } else {
22300
- setAmount(formatUnits11(BigInt(selectedAsset.balance || "0"), selectedAsset.decimals || 18));
22411
+ setAmount(formatUnits12(BigInt(selectedAsset.balance || "0"), selectedAsset.decimals || 18));
22301
22412
  }
22302
22413
  };
22303
22414
  const validateInput = () => {
@@ -22469,7 +22580,7 @@ var init_InputSendStep = __esm({
22469
22580
  init_components3();
22470
22581
  init_useSendStore();
22471
22582
  init_useTokenBalance();
22472
- init_utils9();
22583
+ init_utils10();
22473
22584
  }
22474
22585
  });
22475
22586
 
@@ -22652,7 +22763,7 @@ var init_ConfirmSendStep = __esm({
22652
22763
  init_highlight();
22653
22764
  init_useFlowSelector();
22654
22765
  init_useSendStore();
22655
- init_utils9();
22766
+ init_utils10();
22656
22767
  }
22657
22768
  });
22658
22769
 
@@ -22820,7 +22931,7 @@ var init_SendMenu = __esm({
22820
22931
  init_useNicknameResolve();
22821
22932
  init_useSendTransaction();
22822
22933
  init_useT();
22823
- init_useBlockscoutAssets();
22934
+ init_useBlockscoutAssets2();
22824
22935
  init_useLayoutDataStore();
22825
22936
  init_button();
22826
22937
  init_highlight();
@@ -22828,7 +22939,7 @@ var init_SendMenu = __esm({
22828
22939
  init_components3();
22829
22940
  init_sendSteps();
22830
22941
  init_useSendStore();
22831
- init_utils9();
22942
+ init_utils10();
22832
22943
  }
22833
22944
  });
22834
22945
 
@@ -23053,7 +23164,7 @@ var init_pro_mode = __esm({
23053
23164
  // src/internal/components/SettingsMenu/constants.ts
23054
23165
  import { ArrowLeftRight, AtSign as AtSign4, DatabaseBackup as DatabaseBackup2, Link2, LockKeyhole, UsersRound } from "lucide-react";
23055
23166
  var NAV_BUTTONS;
23056
- var init_constants6 = __esm({
23167
+ var init_constants7 = __esm({
23057
23168
  "src/internal/components/SettingsMenu/constants.ts"() {
23058
23169
  init_icons();
23059
23170
  NAV_BUTTONS = [
@@ -23069,7 +23180,7 @@ var init_constants6 = __esm({
23069
23180
  });
23070
23181
 
23071
23182
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
23072
- import { useQuery as useQuery22 } from "@tanstack/react-query";
23183
+ import { useQuery as useQuery23 } from "@tanstack/react-query";
23073
23184
  import { ArrowLeft as ArrowLeft20, HardDrive as HardDrive3 } from "lucide-react";
23074
23185
  import { useEffect as useEffect47 } from "react";
23075
23186
  import { jsx as jsx111, jsxs as jsxs102 } from "react/jsx-runtime";
@@ -23112,7 +23223,7 @@ function SettingsMenu() {
23112
23223
  const setPage = useLayoutDataStore((st) => st.setPage);
23113
23224
  const settingsButtons = useSettingsButtons();
23114
23225
  useProvidersList();
23115
- useQuery22({
23226
+ useQuery23({
23116
23227
  retry: 1,
23117
23228
  enabled: !!address,
23118
23229
  queryKey: [QUERY_KEYS.nicknameInfo, address],
@@ -23167,7 +23278,7 @@ var init_SettingsMenu = __esm({
23167
23278
  init_utils2();
23168
23279
  init_useProvidersList();
23169
23280
  init_button();
23170
- init_constants6();
23281
+ init_constants7();
23171
23282
  }
23172
23283
  });
23173
23284
 
@@ -23846,7 +23957,7 @@ function formatIntl(price, fractionDigits) {
23846
23957
  return formatter.format(price);
23847
23958
  }
23848
23959
  var formatAddress, parseValue, formatValue2, openInExplorer2, formatTimestamp;
23849
- var init_utils10 = __esm({
23960
+ var init_utils11 = __esm({
23850
23961
  "src/internal/components/TransactionsMenu/utils.ts"() {
23851
23962
  init_base2();
23852
23963
  formatAddress = (addr) => {
@@ -24022,14 +24133,14 @@ var init_TransactionsGroup = __esm({
24022
24133
  init_icons();
24023
24134
  init_utils2();
24024
24135
  init_button();
24025
- init_utils10();
24136
+ init_utils11();
24026
24137
  }
24027
24138
  });
24028
24139
 
24029
24140
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
24030
- import { useQuery as useQuery23, useQueryClient as useQueryClient25 } from "@tanstack/react-query";
24141
+ import { useQuery as useQuery24, useQueryClient as useQueryClient25 } from "@tanstack/react-query";
24031
24142
  import { ArrowLeft as ArrowLeft22, Loader as Loader28, RefreshCw as RefreshCw3, XCircle } from "lucide-react";
24032
- import { useCallback as useCallback30, useState as useState28 } from "react";
24143
+ import { useCallback as useCallback30, useState as useState27 } from "react";
24033
24144
  import { jsx as jsx114, jsxs as jsxs105 } from "react/jsx-runtime";
24034
24145
  function TransactionsMenu() {
24035
24146
  const qc = useQueryClient25();
@@ -24038,14 +24149,14 @@ function TransactionsMenu() {
24038
24149
  const { t } = useT();
24039
24150
  const setPage = useLayoutDataStore((st) => st.setPage);
24040
24151
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
24041
- const [expandedGroups, setExpandedGroups] = useState28({});
24152
+ const [expandedGroups, setExpandedGroups] = useState27({});
24042
24153
  const historySupported = isTransactionHistorySupported(chainConfig?.id);
24043
24154
  const {
24044
24155
  data: txHistoryGroups = [],
24045
24156
  isLoading: isTxHistoryLoading,
24046
24157
  isFetching: isTxHistoryFetching,
24047
24158
  error: txHistoryError
24048
- } = useQuery23({
24159
+ } = useQuery24({
24049
24160
  retry: false,
24050
24161
  enabled: !!address && !!chainConfig?.id && historySupported,
24051
24162
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address],
@@ -24391,7 +24502,7 @@ var init_package = __esm({
24391
24502
  "package.json"() {
24392
24503
  package_default = {
24393
24504
  name: "@embarkai/ui-kit",
24394
- version: "0.4.59",
24505
+ version: "0.4.60",
24395
24506
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24396
24507
  type: "module",
24397
24508
  main: "./dist/index.cjs",
@@ -24564,7 +24675,7 @@ function Footer() {
24564
24675
  size: "small",
24565
24676
  variant: "ghost",
24566
24677
  disabled: isDisconnecting,
24567
- onClick: () => address && window.open(`${getExplorerUrl()}/address/${address}`, "_blank"),
24678
+ onClick: () => useLayoutDataStore.getState().setPage("chain" /* CHAIN */),
24568
24679
  children: [
24569
24680
  /* @__PURE__ */ jsx116(ChainIcon, { className: "flex-none w-6 h-6" }),
24570
24681
  /* @__PURE__ */ jsx116("span", { className: "text-xs font-bold", children: chainConfig.name || "EmbarkAI Wallet" })
@@ -24608,7 +24719,6 @@ var init_Footer = __esm({
24608
24719
  init_SessionContext();
24609
24720
  init_i18n();
24610
24721
  init_auth();
24611
- init_base2();
24612
24722
  init_useLayoutDataStore();
24613
24723
  init_useLayoutStore();
24614
24724
  init_utils2();
@@ -24627,7 +24737,7 @@ var init_Footer2 = __esm({
24627
24737
 
24628
24738
  // src/internal/components/Header/Header.tsx
24629
24739
  import { Copy as Copy4, Loader as Loader30 } from "lucide-react";
24630
- import { useCallback as useCallback32, useRef as useRef21, useState as useState29 } from "react";
24740
+ import { useCallback as useCallback32, useRef as useRef19, useState as useState28 } from "react";
24631
24741
  import { Fragment as Fragment45, jsx as jsx117, jsxs as jsxs107 } from "react/jsx-runtime";
24632
24742
  function formatAddress2(addr) {
24633
24743
  if (!addr) return "";
@@ -24639,10 +24749,10 @@ function Header() {
24639
24749
  const chainConfig = useSession((st) => st.chainConfig);
24640
24750
  const { t } = useT();
24641
24751
  const proMode = useProMode();
24642
- const [proToast, setProToast] = useState29(false);
24643
- const [copied, setCopied] = useState29(false);
24644
- const clickCountRef = useRef21(0);
24645
- const clickTimerRef = useRef21(null);
24752
+ const [proToast, setProToast] = useState28(false);
24753
+ const [copied, setCopied] = useState28(false);
24754
+ const clickCountRef = useRef19(0);
24755
+ const clickTimerRef = useRef19(null);
24646
24756
  const handleAvatarClick = useCallback32(() => {
24647
24757
  clickCountRef.current += 1;
24648
24758
  if (clickTimerRef.current) {
@@ -28196,7 +28306,7 @@ function notifyNoProjetctId(projectId) {
28196
28306
  '\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551 \u26A0\uFE0F EmbarkAI WARNING \u26A0\uFE0F \u2551\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2551 \u2551\n\u2551 projectId is NOT configured! \u2551\n\u2551 \u2551\n\u2551 Your integration will NOT work without a valid projectId. \u2551\n\u2551 Most features will be disabled and errors will occur. \u2551\n\u2551 \u2551\n\u2551 To fix this: \u2551\n\u2551 1. Get your projectId from: https://dashboard.embarkai.io/ \u2551\n\u2551 2. Add it to your Provider: \u2551\n\u2551 \u2551\n\u2551 <Provider projectId="your-project-id"> \u2551\n\u2551 {children} \u2551\n\u2551 </Provider> \u2551\n\u2551 \u2551\n\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n'
28197
28307
  );
28198
28308
  }
28199
- var init_utils11 = __esm({
28309
+ var init_utils12 = __esm({
28200
28310
  "src/context/utils.ts"() {
28201
28311
  }
28202
28312
  });
@@ -28223,7 +28333,7 @@ import {
28223
28333
  useContext,
28224
28334
  useEffect as useEffect53,
28225
28335
  useMemo as useMemo17,
28226
- useRef as useRef22
28336
+ useRef as useRef20
28227
28337
  } from "react";
28228
28338
  import { jsx as jsx124 } from "react/jsx-runtime";
28229
28339
  function clearLegacyWagmiStorage() {
@@ -28243,9 +28353,9 @@ function clearLegacyWagmiStorage() {
28243
28353
  }
28244
28354
  function Provider(props) {
28245
28355
  const { children, projectId, initialConfig = {}, callbacks } = props;
28246
- const callbacksRef = useRef22(callbacks);
28356
+ const callbacksRef = useRef20(callbacks);
28247
28357
  useEffect53(() => notifyNoProjetctId(projectId), [projectId]);
28248
- const config = useRef22(merge3({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
28358
+ const config = useRef20(merge3({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
28249
28359
  const updateConfig = useCallback35((updates) => {
28250
28360
  const prev = config.current;
28251
28361
  const next = { ...prev };
@@ -28362,7 +28472,7 @@ var init_ProviderContext = __esm({
28362
28472
  init_iframe_manager();
28363
28473
  init_RainbowKitContext();
28364
28474
  init_SessionContext();
28365
- init_utils11();
28475
+ init_utils12();
28366
28476
  init_WagmiContext();
28367
28477
  UIContext = createContext(void 0);
28368
28478
  useProviderConfig = () => {
@@ -28374,7 +28484,7 @@ var init_ProviderContext = __esm({
28374
28484
  });
28375
28485
 
28376
28486
  // src/styles/built.css
28377
- var built_default = `.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.embarkai-ui-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .bottom-full{bottom:100%}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .right-0{right:0}.embarkai-ui-scope .right-2{right:.5rem}.embarkai-ui-scope .right-3{right:.75rem}.embarkai-ui-scope .right-4{right:1rem}.embarkai-ui-scope .right-\\[var\\(--ui-kit-pd\\)\\]{right:var(--ui-kit-pd)}.embarkai-ui-scope .right-full{right:100%}.embarkai-ui-scope .top-0{top:0}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-2{top:.5rem}.embarkai-ui-scope .top-4{top:1rem}.embarkai-ui-scope .top-\\[var\\(--ui-kit-pd\\)\\]{top:var(--ui-kit-pd)}.embarkai-ui-scope .z-10{z-index:10}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-\\[9998\\]{z-index:9998}.embarkai-ui-scope .z-\\[9999\\]{z-index:9999}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.embarkai-ui-scope .mx-auto{margin-left:auto;margin-right:auto}.embarkai-ui-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.embarkai-ui-scope .mb-1{margin-bottom:.25rem}.embarkai-ui-scope .mb-2{margin-bottom:.5rem}.embarkai-ui-scope .mb-3{margin-bottom:.75rem}.embarkai-ui-scope .mb-4{margin-bottom:1rem}.embarkai-ui-scope .ml-1{margin-left:.25rem}.embarkai-ui-scope .ml-2{margin-left:.5rem}.embarkai-ui-scope .ml-auto{margin-left:auto}.embarkai-ui-scope .mr-1{margin-right:.25rem}.embarkai-ui-scope .mt-0\\.5{margin-top:.125rem}.embarkai-ui-scope .mt-1{margin-top:.25rem}.embarkai-ui-scope .mt-2{margin-top:.5rem}.embarkai-ui-scope .mt-4{margin-top:1rem}.embarkai-ui-scope .block{display:block}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .table{display:table}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .aspect-square{aspect-ratio:1/1}.embarkai-ui-scope .size-4{width:1rem;height:1rem}.embarkai-ui-scope .size-8{width:2rem;height:2rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.embarkai-ui-scope .h-0{height:0}.embarkai-ui-scope .h-1{height:.25rem}.embarkai-ui-scope .h-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.embarkai-ui-scope .h-3{height:.75rem}.embarkai-ui-scope .h-3\\.5{height:.875rem}.embarkai-ui-scope .h-4{height:1rem}.embarkai-ui-scope .h-48{height:12rem}.embarkai-ui-scope .h-5{height:1.25rem}.embarkai-ui-scope .h-6{height:1.5rem}.embarkai-ui-scope .h-7{height:1.75rem}.embarkai-ui-scope .h-8{height:2rem}.embarkai-ui-scope .h-\\[100dvh\\]{height:100dvh}.embarkai-ui-scope .h-\\[48px\\]{height:48px}.embarkai-ui-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.embarkai-ui-scope .h-auto{height:auto}.embarkai-ui-scope .h-fit{height:-moz-fit-content;height:fit-content}.embarkai-ui-scope .h-full{height:100%}.embarkai-ui-scope .h-px{height:1px}.embarkai-ui-scope .max-h-96{max-height:24rem}.embarkai-ui-scope .max-h-\\[95dvh\\]{max-height:95dvh}.embarkai-ui-scope .min-h-10{min-height:2.5rem}.embarkai-ui-scope .min-h-12{min-height:3rem}.embarkai-ui-scope .w-1{width:.25rem}.embarkai-ui-scope .w-1\\/2{width:50%}.embarkai-ui-scope .w-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.embarkai-ui-scope .w-3{width:.75rem}.embarkai-ui-scope .w-3\\.5{width:.875rem}.embarkai-ui-scope .w-4{width:1rem}.embarkai-ui-scope .w-48{width:12rem}.embarkai-ui-scope .w-5{width:1.25rem}.embarkai-ui-scope .w-6{width:1.5rem}.embarkai-ui-scope .w-7{width:1.75rem}.embarkai-ui-scope .w-8{width:2rem}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-fit{width:-moz-fit-content;width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-px{width:1px}.embarkai-ui-scope .min-w-0{min-width:0}.embarkai-ui-scope .min-w-10{min-width:2.5rem}.embarkai-ui-scope .min-w-16{min-width:4rem}.embarkai-ui-scope .min-w-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[256px\\]{max-width:256px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .flex-1{flex:1 1 0%}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink-0,.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.embarkai-ui-scope .-translate-x-1\\/2,.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap)*-1)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.embarkai-ui-scope .-translate-y-1\\/2,.embarkai-ui-scope .-translate-y-1\\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:-33.333333%}.embarkai-ui-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--ui-kit-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--ui-kit-bg-warning)}}.embarkai-ui-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse{50%{opacity:.5}}.embarkai-ui-scope .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.embarkai-ui-scope .animate-spin{animation:spin 1s linear infinite}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-help{cursor:help}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.embarkai-ui-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.embarkai-ui-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.embarkai-ui-scope .flex-col{flex-direction:column}.embarkai-ui-scope .flex-col-reverse{flex-direction:column-reverse}.embarkai-ui-scope .flex-wrap{flex-wrap:wrap}.embarkai-ui-scope .place-content-center{place-content:center}.embarkai-ui-scope .items-start{align-items:flex-start}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-between{justify-content:space-between}.embarkai-ui-scope .gap-0{gap:0}.embarkai-ui-scope .gap-1{gap:.25rem}.embarkai-ui-scope .gap-2{gap:.5rem}.embarkai-ui-scope .gap-3{gap:.75rem}.embarkai-ui-scope .gap-4{gap:1rem}.embarkai-ui-scope .gap-\\[10px\\]{gap:10px}.embarkai-ui-scope .gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.embarkai-ui-scope .text-ellipsis{text-overflow:ellipsis}.embarkai-ui-scope .whitespace-nowrap{white-space:nowrap}.embarkai-ui-scope .whitespace-pre-line{white-space:pre-line}.embarkai-ui-scope .whitespace-pre-wrap{white-space:pre-wrap}.embarkai-ui-scope .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .break-words{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.embarkai-ui-scope .rounded-\\[calc\\(var\\(--ui-kit-el-bdrs\\)_\\/_2\\)\\]{border-radius:calc(var(--ui-kit-el-bdrs)/2)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-bdrs\\)\\]{border-radius:var(--ui-kit-bdrs)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-full{border-radius:9999px}.embarkai-ui-scope .rounded-lg{border-radius:.5rem}.embarkai-ui-scope .rounded-md{border-radius:.375rem}.embarkai-ui-scope .rounded-xl{border-radius:.75rem}.embarkai-ui-scope .border{border-width:1px}.embarkai-ui-scope .border-0{border-width:0}.embarkai-ui-scope .border-2{border-width:2px}.embarkai-ui-scope .border-b{border-bottom-width:1px}.embarkai-ui-scope .border-t{border-top-width:1px}.embarkai-ui-scope .border-dashed{border-style:dashed}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bd\\)\\]{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-error\\)\\]{border-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-success\\)\\]{border-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-warning\\)\\]{border-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-error\\)\\]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-secondary\\)\\]{border-color:var(--ui-kit-secondary)}.embarkai-ui-scope .border-current{border-color:currentColor}.embarkai-ui-scope .border-transparent{border-color:transparent}.embarkai-ui-scope .border-t-transparent{border-top-color:transparent}.embarkai-ui-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f0f6f8\\]{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg\\)\\]{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-error\\)\\]{background-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-info\\)\\]{background-color:var(--ui-kit-bg-info)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-secondary\\)\\]{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-success\\)\\]{background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-warning\\)\\]{background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-fg\\)\\]{background-color:var(--ui-kit-fg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-overlay\\)\\]{background-color:var(--ui-kit-overlay)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-primary\\)\\]{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary\\)\\]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary-h\\)\\]{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-transparent{background-color:transparent}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{-o-object-fit:contain;object-fit:contain}.embarkai-ui-scope .object-cover{-o-object-fit:cover;object-fit:cover}.embarkai-ui-scope .p-0{padding:0}.embarkai-ui-scope .p-1{padding:.25rem}.embarkai-ui-scope .p-2{padding:.5rem}.embarkai-ui-scope .p-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-5{padding:1.25rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.embarkai-ui-scope .p-\\[var\\(--ui-kit-gap\\)\\]{padding:var(--ui-kit-gap)}.embarkai-ui-scope .p-\\[var\\(--ui-kit-pd\\)\\]{padding:var(--ui-kit-pd)}.embarkai-ui-scope .px-0{padding-left:0;padding-right:0}.embarkai-ui-scope .px-1{padding-left:.25rem;padding-right:.25rem}.embarkai-ui-scope .px-2{padding-left:.5rem;padding-right:.5rem}.embarkai-ui-scope .px-3{padding-left:.75rem;padding-right:.75rem}.embarkai-ui-scope .px-4{padding-left:1rem;padding-right:1rem}.embarkai-ui-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.embarkai-ui-scope .px-8{padding-left:2rem;padding-right:2rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-left:var(--ui-kit-gap);padding-right:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-top:0;padding-bottom:0}.embarkai-ui-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.embarkai-ui-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.embarkai-ui-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.embarkai-ui-scope .py-4{padding-top:1rem;padding-bottom:1rem}.embarkai-ui-scope .py-8{padding-top:2rem;padding-bottom:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-top:var(--ui-kit-gap);padding-bottom:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-top:var(--ui-kit-pd);padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pb-2{padding-bottom:.5rem}.embarkai-ui-scope .pb-5{padding-bottom:1.25rem}.embarkai-ui-scope .pb-6{padding-bottom:1.5rem}.embarkai-ui-scope .pb-\\[var\\(--ui-kit-pd\\)\\]{padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pl-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd)}.embarkai-ui-scope .pr-8{padding-right:2rem}.embarkai-ui-scope .pt-3{padding-top:.75rem}.embarkai-ui-scope .pt-4{padding-top:1rem}.embarkai-ui-scope .pt-5{padding-top:1.25rem}.embarkai-ui-scope .text-left{text-align:left}.embarkai-ui-scope .text-center{text-align:center}.embarkai-ui-scope .text-right{text-align:right}.embarkai-ui-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.embarkai-ui-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.embarkai-ui-scope .text-2xl{font-size:1.5rem;line-height:2rem}.embarkai-ui-scope .text-\\[10px\\]{font-size:10px}.embarkai-ui-scope .text-\\[14px\\]{font-size:14px}.embarkai-ui-scope .text-\\[16px\\]{font-size:16px}.embarkai-ui-scope .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:1rem}.embarkai-ui-scope .font-bold{font-weight:700}.embarkai-ui-scope .font-medium{font-weight:500}.embarkai-ui-scope .font-normal{font-weight:400}.embarkai-ui-scope .font-semibold{font-weight:600}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .leading-3{line-height:.75rem}.embarkai-ui-scope .leading-4{line-height:1rem}.embarkai-ui-scope .leading-5{line-height:1.25rem}.embarkai-ui-scope .leading-6{line-height:1.5rem}.embarkai-ui-scope .leading-8{line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{line-height:8px}.embarkai-ui-scope .leading-none{line-height:1}.embarkai-ui-scope .leading-tight{line-height:1.25}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{letter-spacing:-.025em}.embarkai-ui-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-error\\)\\]{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-success\\)\\]{color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-warning\\)\\]{color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-error\\)\\]{color:var(--ui-kit-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg\\)\\]{color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-inverted\\)\\]{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-muted\\)\\]{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-info\\)\\]{color:var(--ui-kit-info)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-primary\\)\\]{color:var(--ui-kit-primary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-success\\)\\]{color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-text-secondary\\)\\]{color:var(--ui-kit-text-secondary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-warning\\)\\]{color:var(--ui-kit-warning)}.embarkai-ui-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.embarkai-ui-scope .underline{text-decoration-line:underline}.embarkai-ui-scope .underline-offset-2{text-underline-offset:2px}.embarkai-ui-scope .underline-offset-4{text-underline-offset:4px}.embarkai-ui-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.embarkai-ui-scope .shadow,.embarkai-ui-scope .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .blur{--tw-blur:blur(8px)}.embarkai-ui-scope .blur,.embarkai-ui-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .grayscale{--tw-grayscale:grayscale(100%)}.embarkai-ui-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,hsla(0,0%,100%,.8));--ui-kit-bg:var(--embark-ui-bg,#fff);--ui-kit-fg:var(--embark-ui-fg,#000);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#fff);--ui-kit-fg-muted:var(--embark-ui-fg-muted,rgba(0,0,0,.6));--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-primary-h:var(--embark-ui-primary-h,rgba(0,0,0,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,rgba(0,0,0,.6));--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-secondary-h:var(--embark-ui-secondary-h,hsla(0,0%,89%,.8));--ui-kit-secondary-a:var(--embark-ui-secondary-a,hsla(0,0%,89%,.6));--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,rgba(0,0,0,.8));--ui-kit-bg:var(--embark-ui-bg,#1a1a1a);--ui-kit-fg:var(--embark-ui-fg,#fff);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#000);--ui-kit-fg-muted:var(--embark-ui-fg-muted,hsla(0,0%,100%,.6));--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-primary-h:var(--embark-ui-primary-h,hsla(0,0%,100%,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,hsla(0,0%,100%,.6));--ui-kit-secondary:var(--embark-ui-secondary,#2a2a2a);--ui-kit-secondary-h:var(--embark-ui-secondary-h,rgba(42,42,42,.6));--ui-kit-secondary-a:var(--embark-ui-secondary-a,rgba(42,42,42,.4));--ui-kit-bd:var(--embark-ui-bd,#3a3a3a);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#4a4a4a);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope,.embarkai-ui-scope *{margin:0;box-sizing:border-box;font-family:var(--ui-kit-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope button,.embarkai-ui-scope h1,.embarkai-ui-scope h2,.embarkai-ui-scope h3,.embarkai-ui-scope h4,.embarkai-ui-scope h5,.embarkai-ui-scope h6,.embarkai-ui-scope input,.embarkai-ui-scope p,.embarkai-ui-scope select,.embarkai-ui-scope textarea{font-family:var(--ui-kit-ff)!important;margin:0}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0 4px 20px var(--ui-kit-shadow-c),inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s ease}.embarkai-ui-scope .account-connect-button:hover{transform:scale(1.02)}.embarkai-ui-scope .account-connect-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.embarkai-ui-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.embarkai-ui-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--ui-kit-scrollbar-mah,300px)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--ui-kit-bd)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.embarkai-ui-scope .noScrollbars::-webkit-scrollbar{display:none}.embarkai-ui-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}@keyframes rotateShine{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.embarkai-ui-scope .button-shine-outline{position:absolute;top:0;left:0;width:100%;height:100%;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;-webkit-mask-composite:xor;mask-composite:exclude}.embarkai-ui-scope .button-shine-outline-shiner{position:absolute;top:50%;left:50%;width:500px;height:500px;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0,var(--ui-kit-fg) 8%,transparent 24%);animation:rotateShine 3s linear infinite}.embarkai-ui-scope .file\\:mr-\\[var\\(--ui-kit-gap\\)\\]::file-selector-button{margin-right:var(--ui-kit-gap)}.embarkai-ui-scope .file\\:h-12::file-selector-button{height:3rem}.embarkai-ui-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.embarkai-ui-scope .file\\:rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]::file-selector-button{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .file\\:border-0::file-selector-button{border-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.embarkai-ui-scope .file\\:font-medium::file-selector-button{font-weight:500}.embarkai-ui-scope .file\\:text-\\[var\\(--ui-kit-fg-inverted\\)\\]::file-selector-button{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::-moz-placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus-within{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .hover\\:bg-\\[\\#002c15\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#081f2c\\]:hover{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary-h\\)\\]:hover{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .hover\\:brightness-110:hover{--tw-brightness:brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:transparent}.embarkai-ui-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.embarkai-ui-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:active{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.embarkai-ui-scope .disabled\\:cursor-default:disabled{cursor:default}.embarkai-ui-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.embarkai-ui-scope .disabled\\:opacity-50:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover:disabled{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:hover:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:hover:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:active:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:active:disabled{opacity:.5}.embarkai-ui-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.embarkai-ui-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.embarkai-ui-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.embarkai-ui-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--ui-kit-bd-intense\\)\\][data-state=checked]{border-color:var(--ui-kit-bd-intense)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--ui-kit-secondary\\)\\][data-state=checked]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--ui-kit-fg\\)\\][data-state=checked]{color:var(--ui-kit-fg)}.embarkai-ui-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}@media (min-width:640px){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}.embarkai-ui-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.embarkai-ui-scope .md\\:h-8{height:2rem}.embarkai-ui-scope .md\\:w-8{width:2rem}.embarkai-ui-scope .md\\:gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}.embarkai-ui-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}`;
28487
+ var built_default = `.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.embarkai-ui-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .bottom-full{bottom:100%}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .right-0{right:0}.embarkai-ui-scope .right-2{right:.5rem}.embarkai-ui-scope .right-3{right:.75rem}.embarkai-ui-scope .right-4{right:1rem}.embarkai-ui-scope .right-\\[var\\(--ui-kit-pd\\)\\]{right:var(--ui-kit-pd)}.embarkai-ui-scope .right-full{right:100%}.embarkai-ui-scope .top-0{top:0}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-2{top:.5rem}.embarkai-ui-scope .top-4{top:1rem}.embarkai-ui-scope .top-\\[var\\(--ui-kit-pd\\)\\]{top:var(--ui-kit-pd)}.embarkai-ui-scope .z-10{z-index:10}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-\\[9998\\]{z-index:9998}.embarkai-ui-scope .z-\\[9999\\]{z-index:9999}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.embarkai-ui-scope .mx-auto{margin-left:auto;margin-right:auto}.embarkai-ui-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.embarkai-ui-scope .mb-1{margin-bottom:.25rem}.embarkai-ui-scope .mb-2{margin-bottom:.5rem}.embarkai-ui-scope .mb-3{margin-bottom:.75rem}.embarkai-ui-scope .mb-4{margin-bottom:1rem}.embarkai-ui-scope .ml-1{margin-left:.25rem}.embarkai-ui-scope .ml-2{margin-left:.5rem}.embarkai-ui-scope .ml-auto{margin-left:auto}.embarkai-ui-scope .mr-1{margin-right:.25rem}.embarkai-ui-scope .mt-0\\.5{margin-top:.125rem}.embarkai-ui-scope .mt-1{margin-top:.25rem}.embarkai-ui-scope .mt-2{margin-top:.5rem}.embarkai-ui-scope .mt-4{margin-top:1rem}.embarkai-ui-scope .block{display:block}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .table{display:table}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .aspect-square{aspect-ratio:1/1}.embarkai-ui-scope .size-4{width:1rem;height:1rem}.embarkai-ui-scope .size-8{width:2rem;height:2rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.embarkai-ui-scope .h-0{height:0}.embarkai-ui-scope .h-1{height:.25rem}.embarkai-ui-scope .h-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.embarkai-ui-scope .h-3{height:.75rem}.embarkai-ui-scope .h-3\\.5{height:.875rem}.embarkai-ui-scope .h-4{height:1rem}.embarkai-ui-scope .h-48{height:12rem}.embarkai-ui-scope .h-5{height:1.25rem}.embarkai-ui-scope .h-6{height:1.5rem}.embarkai-ui-scope .h-7{height:1.75rem}.embarkai-ui-scope .h-8{height:2rem}.embarkai-ui-scope .h-\\[100dvh\\]{height:100dvh}.embarkai-ui-scope .h-\\[48px\\]{height:48px}.embarkai-ui-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.embarkai-ui-scope .h-auto{height:auto}.embarkai-ui-scope .h-fit{height:-moz-fit-content;height:fit-content}.embarkai-ui-scope .h-full{height:100%}.embarkai-ui-scope .h-px{height:1px}.embarkai-ui-scope .max-h-96{max-height:24rem}.embarkai-ui-scope .max-h-\\[95dvh\\]{max-height:95dvh}.embarkai-ui-scope .min-h-10{min-height:2.5rem}.embarkai-ui-scope .min-h-12{min-height:3rem}.embarkai-ui-scope .w-1{width:.25rem}.embarkai-ui-scope .w-1\\/2{width:50%}.embarkai-ui-scope .w-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.embarkai-ui-scope .w-3{width:.75rem}.embarkai-ui-scope .w-3\\.5{width:.875rem}.embarkai-ui-scope .w-4{width:1rem}.embarkai-ui-scope .w-48{width:12rem}.embarkai-ui-scope .w-5{width:1.25rem}.embarkai-ui-scope .w-6{width:1.5rem}.embarkai-ui-scope .w-7{width:1.75rem}.embarkai-ui-scope .w-8{width:2rem}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-fit{width:-moz-fit-content;width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-px{width:1px}.embarkai-ui-scope .min-w-0{min-width:0}.embarkai-ui-scope .min-w-10{min-width:2.5rem}.embarkai-ui-scope .min-w-16{min-width:4rem}.embarkai-ui-scope .min-w-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[256px\\]{max-width:256px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .flex-1{flex:1 1 0%}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink-0,.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.embarkai-ui-scope .-translate-x-1\\/2,.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap)*-1)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.embarkai-ui-scope .-translate-y-1\\/2,.embarkai-ui-scope .-translate-y-1\\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:-33.333333%}.embarkai-ui-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--ui-kit-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--ui-kit-bg-warning)}}.embarkai-ui-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse{50%{opacity:.5}}.embarkai-ui-scope .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.embarkai-ui-scope .animate-spin{animation:spin 1s linear infinite}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-help{cursor:help}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.embarkai-ui-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.embarkai-ui-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.embarkai-ui-scope .flex-col{flex-direction:column}.embarkai-ui-scope .flex-col-reverse{flex-direction:column-reverse}.embarkai-ui-scope .flex-wrap{flex-wrap:wrap}.embarkai-ui-scope .place-content-center{place-content:center}.embarkai-ui-scope .items-start{align-items:flex-start}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-between{justify-content:space-between}.embarkai-ui-scope .gap-0{gap:0}.embarkai-ui-scope .gap-1{gap:.25rem}.embarkai-ui-scope .gap-2{gap:.5rem}.embarkai-ui-scope .gap-3{gap:.75rem}.embarkai-ui-scope .gap-4{gap:1rem}.embarkai-ui-scope .gap-\\[10px\\]{gap:10px}.embarkai-ui-scope .gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.embarkai-ui-scope .text-ellipsis{text-overflow:ellipsis}.embarkai-ui-scope .whitespace-nowrap{white-space:nowrap}.embarkai-ui-scope .whitespace-pre-line{white-space:pre-line}.embarkai-ui-scope .whitespace-pre-wrap{white-space:pre-wrap}.embarkai-ui-scope .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .break-words{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.embarkai-ui-scope .rounded-\\[calc\\(var\\(--ui-kit-el-bdrs\\)_\\/_2\\)\\]{border-radius:calc(var(--ui-kit-el-bdrs)/2)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-bdrs\\)\\]{border-radius:var(--ui-kit-bdrs)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-full{border-radius:9999px}.embarkai-ui-scope .rounded-lg{border-radius:.5rem}.embarkai-ui-scope .rounded-md{border-radius:.375rem}.embarkai-ui-scope .rounded-xl{border-radius:.75rem}.embarkai-ui-scope .border{border-width:1px}.embarkai-ui-scope .border-0{border-width:0}.embarkai-ui-scope .border-2{border-width:2px}.embarkai-ui-scope .border-b{border-bottom-width:1px}.embarkai-ui-scope .border-t{border-top-width:1px}.embarkai-ui-scope .border-dashed{border-style:dashed}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bd\\)\\]{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-error\\)\\]{border-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-success\\)\\]{border-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-warning\\)\\]{border-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-error\\)\\]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-secondary\\)\\]{border-color:var(--ui-kit-secondary)}.embarkai-ui-scope .border-current{border-color:currentColor}.embarkai-ui-scope .border-transparent{border-color:transparent}.embarkai-ui-scope .border-t-transparent{border-top-color:transparent}.embarkai-ui-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f0f6f8\\]{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg\\)\\]{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-error\\)\\]{background-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-info\\)\\]{background-color:var(--ui-kit-bg-info)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-secondary\\)\\]{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-success\\)\\]{background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-warning\\)\\]{background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-fg\\)\\]{background-color:var(--ui-kit-fg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-overlay\\)\\]{background-color:var(--ui-kit-overlay)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-primary\\)\\]{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary\\)\\]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary-h\\)\\]{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-transparent{background-color:transparent}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{-o-object-fit:contain;object-fit:contain}.embarkai-ui-scope .object-cover{-o-object-fit:cover;object-fit:cover}.embarkai-ui-scope .p-0{padding:0}.embarkai-ui-scope .p-1{padding:.25rem}.embarkai-ui-scope .p-2{padding:.5rem}.embarkai-ui-scope .p-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-5{padding:1.25rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.embarkai-ui-scope .p-\\[var\\(--ui-kit-gap\\)\\]{padding:var(--ui-kit-gap)}.embarkai-ui-scope .p-\\[var\\(--ui-kit-pd\\)\\]{padding:var(--ui-kit-pd)}.embarkai-ui-scope .px-0{padding-left:0;padding-right:0}.embarkai-ui-scope .px-1{padding-left:.25rem;padding-right:.25rem}.embarkai-ui-scope .px-2{padding-left:.5rem;padding-right:.5rem}.embarkai-ui-scope .px-3{padding-left:.75rem;padding-right:.75rem}.embarkai-ui-scope .px-4{padding-left:1rem;padding-right:1rem}.embarkai-ui-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.embarkai-ui-scope .px-8{padding-left:2rem;padding-right:2rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-left:var(--ui-kit-gap);padding-right:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-top:0;padding-bottom:0}.embarkai-ui-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.embarkai-ui-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.embarkai-ui-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.embarkai-ui-scope .py-4{padding-top:1rem;padding-bottom:1rem}.embarkai-ui-scope .py-8{padding-top:2rem;padding-bottom:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-top:var(--ui-kit-gap);padding-bottom:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-top:var(--ui-kit-pd);padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pb-2{padding-bottom:.5rem}.embarkai-ui-scope .pb-5{padding-bottom:1.25rem}.embarkai-ui-scope .pb-6{padding-bottom:1.5rem}.embarkai-ui-scope .pb-\\[var\\(--ui-kit-pd\\)\\]{padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pl-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd)}.embarkai-ui-scope .pr-8{padding-right:2rem}.embarkai-ui-scope .pt-3{padding-top:.75rem}.embarkai-ui-scope .pt-4{padding-top:1rem}.embarkai-ui-scope .pt-5{padding-top:1.25rem}.embarkai-ui-scope .text-left{text-align:left}.embarkai-ui-scope .text-center{text-align:center}.embarkai-ui-scope .text-right{text-align:right}.embarkai-ui-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.embarkai-ui-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.embarkai-ui-scope .text-2xl{font-size:1.5rem;line-height:2rem}.embarkai-ui-scope .text-\\[10px\\]{font-size:10px}.embarkai-ui-scope .text-\\[14px\\]{font-size:14px}.embarkai-ui-scope .text-\\[16px\\]{font-size:16px}.embarkai-ui-scope .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:1rem}.embarkai-ui-scope .font-bold{font-weight:700}.embarkai-ui-scope .font-medium{font-weight:500}.embarkai-ui-scope .font-normal{font-weight:400}.embarkai-ui-scope .font-semibold{font-weight:600}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .leading-3{line-height:.75rem}.embarkai-ui-scope .leading-4{line-height:1rem}.embarkai-ui-scope .leading-5{line-height:1.25rem}.embarkai-ui-scope .leading-6{line-height:1.5rem}.embarkai-ui-scope .leading-7{line-height:1.75rem}.embarkai-ui-scope .leading-8{line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{line-height:8px}.embarkai-ui-scope .leading-none{line-height:1}.embarkai-ui-scope .leading-tight{line-height:1.25}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{letter-spacing:-.025em}.embarkai-ui-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-error\\)\\]{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-success\\)\\]{color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-warning\\)\\]{color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-error\\)\\]{color:var(--ui-kit-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg\\)\\]{color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-inverted\\)\\]{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-muted\\)\\]{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-info\\)\\]{color:var(--ui-kit-info)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-primary\\)\\]{color:var(--ui-kit-primary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-success\\)\\]{color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-text-secondary\\)\\]{color:var(--ui-kit-text-secondary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-warning\\)\\]{color:var(--ui-kit-warning)}.embarkai-ui-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.embarkai-ui-scope .underline{text-decoration-line:underline}.embarkai-ui-scope .underline-offset-2{text-underline-offset:2px}.embarkai-ui-scope .underline-offset-4{text-underline-offset:4px}.embarkai-ui-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.embarkai-ui-scope .shadow,.embarkai-ui-scope .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .blur{--tw-blur:blur(8px)}.embarkai-ui-scope .blur,.embarkai-ui-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .grayscale{--tw-grayscale:grayscale(100%)}.embarkai-ui-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,hsla(0,0%,100%,.8));--ui-kit-bg:var(--embark-ui-bg,#fff);--ui-kit-fg:var(--embark-ui-fg,#000);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#fff);--ui-kit-fg-muted:var(--embark-ui-fg-muted,rgba(0,0,0,.6));--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-primary-h:var(--embark-ui-primary-h,rgba(0,0,0,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,rgba(0,0,0,.6));--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-secondary-h:var(--embark-ui-secondary-h,hsla(0,0%,89%,.8));--ui-kit-secondary-a:var(--embark-ui-secondary-a,hsla(0,0%,89%,.6));--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,rgba(0,0,0,.8));--ui-kit-bg:var(--embark-ui-bg,#1a1a1a);--ui-kit-fg:var(--embark-ui-fg,#fff);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#000);--ui-kit-fg-muted:var(--embark-ui-fg-muted,hsla(0,0%,100%,.6));--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-primary-h:var(--embark-ui-primary-h,hsla(0,0%,100%,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,hsla(0,0%,100%,.6));--ui-kit-secondary:var(--embark-ui-secondary,#2a2a2a);--ui-kit-secondary-h:var(--embark-ui-secondary-h,rgba(42,42,42,.6));--ui-kit-secondary-a:var(--embark-ui-secondary-a,rgba(42,42,42,.4));--ui-kit-bd:var(--embark-ui-bd,#3a3a3a);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#4a4a4a);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope,.embarkai-ui-scope *{margin:0;box-sizing:border-box;font-family:var(--ui-kit-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope button,.embarkai-ui-scope h1,.embarkai-ui-scope h2,.embarkai-ui-scope h3,.embarkai-ui-scope h4,.embarkai-ui-scope h5,.embarkai-ui-scope h6,.embarkai-ui-scope input,.embarkai-ui-scope p,.embarkai-ui-scope select,.embarkai-ui-scope textarea{font-family:var(--ui-kit-ff)!important;margin:0}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0 4px 20px var(--ui-kit-shadow-c),inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s ease}.embarkai-ui-scope .account-connect-button:hover{transform:scale(1.02)}.embarkai-ui-scope .account-connect-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.embarkai-ui-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.embarkai-ui-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--ui-kit-scrollbar-mah,300px)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--ui-kit-bd)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.embarkai-ui-scope .noScrollbars::-webkit-scrollbar{display:none}.embarkai-ui-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}@keyframes rotateShine{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.embarkai-ui-scope .button-shine-outline{position:absolute;top:0;left:0;width:100%;height:100%;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;-webkit-mask-composite:xor;mask-composite:exclude}.embarkai-ui-scope .button-shine-outline-shiner{position:absolute;top:50%;left:50%;width:500px;height:500px;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0,var(--ui-kit-fg) 8%,transparent 24%);animation:rotateShine 3s linear infinite}.embarkai-ui-scope .file\\:mr-\\[var\\(--ui-kit-gap\\)\\]::file-selector-button{margin-right:var(--ui-kit-gap)}.embarkai-ui-scope .file\\:h-12::file-selector-button{height:3rem}.embarkai-ui-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.embarkai-ui-scope .file\\:rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]::file-selector-button{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .file\\:border-0::file-selector-button{border-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.embarkai-ui-scope .file\\:font-medium::file-selector-button{font-weight:500}.embarkai-ui-scope .file\\:text-\\[var\\(--ui-kit-fg-inverted\\)\\]::file-selector-button{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::-moz-placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus-within{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .hover\\:bg-\\[\\#002c15\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#081f2c\\]:hover{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary-h\\)\\]:hover{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .hover\\:brightness-110:hover{--tw-brightness:brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:transparent}.embarkai-ui-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.embarkai-ui-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:active{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.embarkai-ui-scope .disabled\\:cursor-default:disabled{cursor:default}.embarkai-ui-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.embarkai-ui-scope .disabled\\:opacity-50:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover:disabled{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:hover:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:hover:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:active:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:active:disabled{opacity:.5}.embarkai-ui-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.embarkai-ui-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.embarkai-ui-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.embarkai-ui-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--ui-kit-bd-intense\\)\\][data-state=checked]{border-color:var(--ui-kit-bd-intense)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--ui-kit-secondary\\)\\][data-state=checked]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--ui-kit-fg\\)\\][data-state=checked]{color:var(--ui-kit-fg)}.embarkai-ui-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}@media (min-width:640px){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}.embarkai-ui-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.embarkai-ui-scope .md\\:h-8{height:2rem}.embarkai-ui-scope .md\\:w-8{width:2rem}.embarkai-ui-scope .md\\:gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}.embarkai-ui-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}`;
28378
28488
 
28379
28489
  // src/index.ts
28380
28490
  init_ProviderContext();
@@ -29060,12 +29170,12 @@ var Hash = ({
29060
29170
 
29061
29171
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
29062
29172
  init_base2();
29063
- import { useEffect as useEffect56, useState as useState33 } from "react";
29173
+ import { useEffect as useEffect56, useState as useState32 } from "react";
29064
29174
  import { jsx as jsx131, jsxs as jsxs115 } from "react/jsx-runtime";
29065
29175
  var TransactionsList = ({ address, itemsCount = 10 }) => {
29066
- const [transactions, setTransactions] = useState33([]);
29067
- const [loading, setLoading] = useState33(true);
29068
- const [error, setError] = useState33(null);
29176
+ const [transactions, setTransactions] = useState32([]);
29177
+ const [loading, setLoading] = useState32(true);
29178
+ const [error, setError] = useState32(null);
29069
29179
  useEffect56(() => {
29070
29180
  const fetchTransactions2 = async () => {
29071
29181
  try {
@@ -29416,7 +29526,7 @@ function useDirectWallet() {
29416
29526
 
29417
29527
  // src/hooks/useSendDirectTransaction.ts
29418
29528
  init_useExternalWalletStore();
29419
- import { useCallback as useCallback40, useState as useState35 } from "react";
29529
+ import { useCallback as useCallback40, useState as useState34 } from "react";
29420
29530
  import { isAddress as isAddress3, parseEther as parseEther3 } from "viem";
29421
29531
  import { useSendTransaction as useWagmiSendTransaction, useSwitchChain as useSwitchChain3 } from "wagmi";
29422
29532
  function useSendDirectTransaction() {
@@ -29424,9 +29534,9 @@ function useSendDirectTransaction() {
29424
29534
  const externalChainId = useExternalWalletStore((st) => st.externalChainId);
29425
29535
  const { sendTransactionAsync } = useWagmiSendTransaction();
29426
29536
  const { switchChainAsync } = useSwitchChain3();
29427
- const [isPending, setIsPending] = useState35(false);
29428
- const [error, setError] = useState35(null);
29429
- const [txHash, setTxHash] = useState35(null);
29537
+ const [isPending, setIsPending] = useState34(false);
29538
+ const [error, setError] = useState34(null);
29539
+ const [txHash, setTxHash] = useState34(null);
29430
29540
  const sendTransaction = useCallback40(
29431
29541
  async (params) => {
29432
29542
  if (!isConnected) {
@@ -29473,7 +29583,7 @@ function useSendDirectTransaction() {
29473
29583
  init_SessionContext();
29474
29584
  init_account2();
29475
29585
  init_linkedProfiles();
29476
- import { useCallback as useCallback41, useMemo as useMemo19, useState as useState36 } from "react";
29586
+ import { useCallback as useCallback41, useMemo as useMemo19, useState as useState35 } from "react";
29477
29587
  import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
29478
29588
  var ERC20_TRANSFER_ABI2 = [
29479
29589
  {
@@ -29489,9 +29599,9 @@ var ERC20_TRANSFER_ABI2 = [
29489
29599
  function useTransferToLinkedWallet() {
29490
29600
  const session = useSession((st) => st.session);
29491
29601
  const { profiles } = useLinkedProfiles();
29492
- const [isPending, setIsPending] = useState36(false);
29493
- const [error, setError] = useState36(null);
29494
- const [userOpHash, setUserOpHash] = useState36(null);
29602
+ const [isPending, setIsPending] = useState35(false);
29603
+ const [error, setError] = useState35(null);
29604
+ const [userOpHash, setUserOpHash] = useState35(null);
29495
29605
  const linkedWallets = useMemo19(
29496
29606
  () => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
29497
29607
  [profiles]
@@ -29639,7 +29749,7 @@ init_linkedProfiles();
29639
29749
  init_nickname_fingerprint();
29640
29750
  init_errors();
29641
29751
  init_base2();
29642
- init_useBlockscoutAssets();
29752
+ init_useBlockscoutAssets2();
29643
29753
 
29644
29754
  // src/modules/transactions.ts
29645
29755
  init_SessionContext();
@@ -29710,7 +29820,7 @@ function useTransactions() {
29710
29820
  // src/modules/assets.ts
29711
29821
  init_SessionContext();
29712
29822
  import React33 from "react";
29713
- import { erc20Abi as erc20Abi4, formatUnits as formatUnits12 } from "viem";
29823
+ import { erc20Abi as erc20Abi5, formatUnits as formatUnits13 } from "viem";
29714
29824
  import { useBalance as useBalance2, useReadContract as useReadContract2, useReadContracts } from "wagmi";
29715
29825
  var COMMON_TOKENS = [
29716
29826
  // Add real token addresses here when available
@@ -29737,22 +29847,21 @@ function useAssets(address) {
29737
29847
  });
29738
29848
  const tokenContracts = COMMON_TOKENS.map((token) => ({
29739
29849
  address: token.address,
29740
- abi: erc20Abi4,
29850
+ abi: erc20Abi5,
29741
29851
  functionName: "balanceOf",
29742
29852
  args: [address],
29743
29853
  chainId
29744
29854
  }));
29745
- const readContractsResult = useReadContracts({
29855
+ const {
29856
+ data: tokenBalances,
29857
+ isLoading: tokenBalancesLoading,
29858
+ refetch: refetchTokenBalances
29859
+ } = useReadContracts({
29746
29860
  contracts: tokenContracts,
29747
29861
  query: {
29748
29862
  enabled: !!address && COMMON_TOKENS.length > 0
29749
29863
  }
29750
29864
  });
29751
- const {
29752
- data: tokenBalances,
29753
- isLoading: tokenBalancesLoading,
29754
- refetch: refetchTokenBalances
29755
- } = readContractsResult;
29756
29865
  const getAllAssets = () => {
29757
29866
  const assets = [];
29758
29867
  if (nativeBalance) {
@@ -29761,7 +29870,7 @@ function useAssets(address) {
29761
29870
  name: "Lumia",
29762
29871
  symbol: "LUMIA",
29763
29872
  balance: nativeBalance.value.toString(),
29764
- formattedBalance: parseFloat(formatUnits12(nativeBalance.value, nativeBalance.decimals)).toFixed(4),
29873
+ formattedBalance: parseFloat(formatUnits13(nativeBalance.value, nativeBalance.decimals)).toFixed(4),
29765
29874
  decimals: 18
29766
29875
  });
29767
29876
  }
@@ -29770,7 +29879,7 @@ function useAssets(address) {
29770
29879
  const token = COMMON_TOKENS[index];
29771
29880
  if (balance.status === "success" && balance.result) {
29772
29881
  const balanceValue = balance.result;
29773
- const formattedBalance = formatUnits12(balanceValue, token.decimals);
29882
+ const formattedBalance = formatUnits13(balanceValue, token.decimals);
29774
29883
  assets.push({
29775
29884
  type: "erc20",
29776
29885
  address: token.address,
@@ -29795,7 +29904,7 @@ function useAssets(address) {
29795
29904
  const token = COMMON_TOKENS[tokenIndex];
29796
29905
  if (balance.status === "success" && balance.result) {
29797
29906
  const balanceValue = balance.result;
29798
- const formattedBalance = formatUnits12(balanceValue, token.decimals);
29907
+ const formattedBalance = formatUnits13(balanceValue, token.decimals);
29799
29908
  return {
29800
29909
  address: token.address,
29801
29910
  name: token.name,
@@ -29825,9 +29934,9 @@ function useTokenInfo(tokenAddress) {
29825
29934
  const chainId = requireActiveChainId();
29826
29935
  const readContractsResult = useReadContracts({
29827
29936
  contracts: [
29828
- { address: tokenAddress, abi: erc20Abi4, functionName: "name", chainId },
29829
- { address: tokenAddress, abi: erc20Abi4, functionName: "symbol", chainId },
29830
- { address: tokenAddress, abi: erc20Abi4, functionName: "decimals", chainId }
29937
+ { address: tokenAddress, abi: erc20Abi5, functionName: "name", chainId },
29938
+ { address: tokenAddress, abi: erc20Abi5, functionName: "symbol", chainId },
29939
+ { address: tokenAddress, abi: erc20Abi5, functionName: "decimals", chainId }
29831
29940
  ]
29832
29941
  });
29833
29942
  const { data: tokenData, isLoading } = readContractsResult;
@@ -29856,7 +29965,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
29856
29965
  refetch
29857
29966
  } = useReadContract2({
29858
29967
  address: tokenAddress,
29859
- abi: erc20Abi4,
29968
+ abi: erc20Abi5,
29860
29969
  functionName: "balanceOf",
29861
29970
  args: userAddress ? [userAddress] : void 0,
29862
29971
  chainId,
@@ -29867,7 +29976,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
29867
29976
  const { tokenInfo } = useTokenInfo(tokenAddress);
29868
29977
  const formattedBalance = React33.useMemo(() => {
29869
29978
  if (!balance || !tokenInfo) return "0";
29870
- return formatUnits12(balance, tokenInfo.decimals);
29979
+ return formatUnits13(balance, tokenInfo.decimals);
29871
29980
  }, [balance, tokenInfo]);
29872
29981
  return {
29873
29982
  balance,