@embarkai/ui-kit 0.4.59 → 0.4.61

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