@embarkai/ui-kit 0.4.66 → 0.4.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@
15
15
  <meta http-equiv="X-Content-Type-Options" content="nosniff" />
16
16
  <meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin" />
17
17
 
18
- <title>EmbarkAI Secure Wallet - iframe version 0.4.66</title>
18
+ <title>EmbarkAI Secure Wallet - iframe version 0.4.68</title>
19
19
 
20
20
  <!-- Styles will be injected by build process -->
21
21
  <style>
@@ -6398,7 +6398,7 @@ var SigningManager = class extends TokenRefreshApiClient {
6398
6398
  };
6399
6399
 
6400
6400
  // src/iframe/main.ts
6401
- var IFRAME_VERSION = "0.4.66";
6401
+ var IFRAME_VERSION = "0.4.68";
6402
6402
  var IframeWallet = class {
6403
6403
  constructor() {
6404
6404
  console.log("=".repeat(60));
package/dist/index.cjs CHANGED
@@ -997,28 +997,28 @@ var init_useAssetRate = __esm({
997
997
  // src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
998
998
  function BalanceFeedProvider() {
999
999
  const config = useProviderConfig().config;
1000
- const address = useSession((st) => st.address);
1000
+ const embarkaiAddress = useSession((st) => st.address);
1001
1001
  const chainConfig = useSession((st) => st.chainConfig);
1002
1002
  const publicClient = useSession((st) => st.publicClient);
1003
1003
  const [balanceSymbol, setBalanceSymbol] = (0, import_react.useState)(null);
1004
1004
  (0, import_react.useEffect)(
1005
1005
  () => setBalanceSymbol(config?.current?.showBalanceAs || chainConfig.nativeCurrency.symbol),
1006
- [config, address, chainConfig]
1006
+ [config, embarkaiAddress, chainConfig]
1007
1007
  );
1008
1008
  (0, import_react.useEffect)(
1009
1009
  () => useLayoutDataStore.getState().setCryptoSymbol(chainConfig?.nativeCurrency?.symbol || "LUMIA"),
1010
- [chainConfig]
1010
+ [embarkaiAddress, chainConfig]
1011
1011
  );
1012
1012
  const { data: cryptoRate } = useAssetUsdtRate(balanceSymbol);
1013
1013
  const isNativeBalanceFeedEnabled = !!balanceSymbol && !!chainConfig?.nativeCurrency.symbol && balanceSymbol === chainConfig?.nativeCurrency.symbol;
1014
1014
  const { data: nativeBalance } = (0, import_react_query2.useQuery)({
1015
- enabled: !!isNativeBalanceFeedEnabled && !!address && !!publicClient,
1015
+ enabled: !!isNativeBalanceFeedEnabled && !!embarkaiAddress && !!publicClient,
1016
1016
  retry: false,
1017
1017
  refetchInterval: BALANCE_POLLING_INTERVAL,
1018
- queryKey: [NATIVE_BALANCE_QUERY_KEY, address, chainConfig?.nativeCurrency?.symbol],
1018
+ queryKey: [NATIVE_BALANCE_QUERY_KEY, embarkaiAddress, chainConfig?.nativeCurrency?.symbol],
1019
1019
  // Include chainId in query key to refetch when chain changes
1020
1020
  queryFn: async () => {
1021
- const balanceValue = await publicClient.getBalance({ address });
1021
+ const balanceValue = await publicClient.getBalance({ address: embarkaiAddress });
1022
1022
  return {
1023
1023
  decimals: chainConfig?.nativeCurrency?.decimals || 18,
1024
1024
  formatted: (0, import_viem2.formatUnits)(balanceValue, chainConfig?.nativeCurrency?.decimals || 18),
@@ -1048,7 +1048,7 @@ function BalanceFeedProvider() {
1048
1048
  const { data: projectAssetBalance } = (0, import_react_query2.useQuery)({
1049
1049
  retry: false,
1050
1050
  refetchInterval: BALANCE_POLLING_INTERVAL,
1051
- enabled: !!address && !!isProjectAssetBalanceEnabled,
1051
+ enabled: !!embarkaiAddress && !!isProjectAssetBalanceEnabled,
1052
1052
  queryKey: PROJECT_ASSET_BALANCE_QUERY_KEY,
1053
1053
  // should be invalidated by host app via provided queryKey
1054
1054
  queryFn: async () => await projectAssetBalanceQueryFn?.()
@@ -1070,20 +1070,33 @@ function BalanceFeedProvider() {
1070
1070
  }, [isProjectAssetBalanceEnabled, projectAssetBalance]);
1071
1071
  const isCustomAssetBalanceEnabled = !isNativeBalanceFeedEnabled && !isProjectAssetBalanceEnabled;
1072
1072
  const { data: customBalance } = (0, import_react_query2.useQuery)({
1073
- enabled: !!isCustomAssetBalanceEnabled && !!balanceSymbol && !!chainConfig?.id && !!address && !!publicClient,
1073
+ enabled: !!isCustomAssetBalanceEnabled && !!balanceSymbol && !!chainConfig?.id && !!embarkaiAddress && !!publicClient,
1074
1074
  retry: false,
1075
1075
  refetchInterval: BALANCE_POLLING_INTERVAL,
1076
1076
  // staleTime: 0,
1077
- queryKey: [CUSTOM_BALANCE_QUERY_KEY, chainConfig?.id, address, balanceSymbol],
1077
+ queryKey: [CUSTOM_BALANCE_QUERY_KEY, chainConfig?.id, embarkaiAddress, balanceSymbol],
1078
1078
  // Include chainId in query key to refetch when chain changes
1079
1079
  queryFn: async () => {
1080
- const coreTokenList = import_read2.NON_BLOCKSCOUT_CORE_TOKENS[chainConfig?.id] || [];
1080
+ const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
1081
1081
  const watchTokensList = (config?.current?.watchTokens?.[chainConfig?.id] || []).map((el) => ({
1082
1082
  address: el.address,
1083
1083
  decimals: el.decimals,
1084
1084
  symbol: el.symbol
1085
1085
  }));
1086
- const customAssetList = [...watchTokensList, ...coreTokenList];
1086
+ const customAssetList = [];
1087
+ if (blockscoutApiUrl) {
1088
+ const blockscoutClient = (0, import_core.createBlockscoutClient)({ baseUrl: blockscoutApiUrl });
1089
+ const blockscoutTokens = await blockscoutClient.getTokenBalances(embarkaiAddress);
1090
+ const blockscoutAssets = blockscoutTokens.map((el) => ({
1091
+ address: el.token.address_hash,
1092
+ decimals: Number(el.token.decimals),
1093
+ symbol: el.token.symbol
1094
+ }));
1095
+ customAssetList.push(...watchTokensList, ...blockscoutAssets);
1096
+ } else {
1097
+ const coreTokenList = import_read2.NON_BLOCKSCOUT_CORE_TOKENS[chainConfig?.id] || [];
1098
+ customAssetList.push(...watchTokensList, ...coreTokenList);
1099
+ }
1087
1100
  const { address: customAssetAddress, decimals: customAssetADecimals } = customAssetList.find((el) => el.symbol === balanceSymbol) || {};
1088
1101
  if (!customAssetAddress) {
1089
1102
  console.warn(`[BALANCE FEED] No token address found for symbol ${balanceSymbol} on chain ${chainConfig?.name}`);
@@ -1093,7 +1106,7 @@ function BalanceFeedProvider() {
1093
1106
  address: customAssetAddress,
1094
1107
  abi: import_viem2.erc20Abi,
1095
1108
  functionName: "balanceOf",
1096
- args: [address],
1109
+ args: [embarkaiAddress],
1097
1110
  authorizationList: void 0
1098
1111
  });
1099
1112
  return {
@@ -1117,11 +1130,13 @@ function BalanceFeedProvider() {
1117
1130
  }, [isCustomAssetBalanceEnabled, customBalance, cryptoRate]);
1118
1131
  return null;
1119
1132
  }
1120
- var import_read2, import_react_query2, import_react, import_viem2;
1133
+ var import_core, import_read2, import_react_query2, import_react, import_viem2;
1121
1134
  var init_BalanceFeedProvider = __esm({
1122
1135
  "src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx"() {
1136
+ init_initial();
1123
1137
  init_ProviderContext();
1124
1138
  init_SessionContext();
1139
+ import_core = require("@embarkai/core");
1125
1140
  import_read2 = require("@embarkai/core/read");
1126
1141
  import_react_query2 = require("@tanstack/react-query");
1127
1142
  import_react = require("react");
@@ -1601,17 +1616,17 @@ async function resolveUiKitPaymaster(chainId, shouldUsePaymaster) {
1601
1616
  };
1602
1617
  }
1603
1618
  const chainConfig = (0, import_read5.getChainConfig)(chainId);
1604
- return (0, import_core.resolveProjectPaymaster)({
1619
+ return (0, import_core2.resolveProjectPaymaster)({
1605
1620
  chainId,
1606
1621
  projectId: getProjectId(),
1607
1622
  defaultPaymasterAddress: chainConfig?.paymasterAddress,
1608
1623
  dashboardApiUrl: getDashboardApiUrl()
1609
1624
  });
1610
1625
  }
1611
- var import_core, import_read5;
1626
+ var import_core2, import_read5;
1612
1627
  var init_resolve_paymaster = __esm({
1613
1628
  "src/internal/clients/account/resolve-paymaster.ts"() {
1614
- import_core = require("@embarkai/core");
1629
+ import_core2 = require("@embarkai/core");
1615
1630
  import_read5 = require("@embarkai/core/read");
1616
1631
  init_base2();
1617
1632
  init_projectId();
@@ -11774,8 +11789,8 @@ function ChainsMenu() {
11774
11789
  return resolveUiKitPaymaster(activeChainId, true);
11775
11790
  },
11776
11791
  enabled: !!activeChainId,
11777
- staleTime: import_core2.PAYMASTER_CACHE_TTL_MS,
11778
- gcTime: import_core2.PAYMASTER_CACHE_TTL_MS,
11792
+ staleTime: import_core3.PAYMASTER_CACHE_TTL_MS,
11793
+ gcTime: import_core3.PAYMASTER_CACHE_TTL_MS,
11779
11794
  placeholderData: activeChainId ? {
11780
11795
  address: activeDefaultPaymasterAddress ?? null,
11781
11796
  source: activeDefaultPaymasterAddress ? "default" : "none",
@@ -11829,14 +11844,14 @@ function ChainsMenu() {
11829
11844
  }
11830
11845
  );
11831
11846
  }
11832
- var import_core2, import_read15, import_react_query16, import_lucide_react20, import_react31, import_jsx_runtime53;
11847
+ var import_core3, import_read15, import_react_query16, import_lucide_react20, import_react31, import_jsx_runtime53;
11833
11848
  var init_ChainsMenu = __esm({
11834
11849
  "src/internal/components/ChainsMenu/ChainsMenu.tsx"() {
11835
11850
  init_networks3();
11836
11851
  init_ProviderContext();
11837
11852
  init_SessionContext();
11838
11853
  init_useT();
11839
- import_core2 = require("@embarkai/core");
11854
+ import_core3 = require("@embarkai/core");
11840
11855
  import_read15 = require("@embarkai/core/read");
11841
11856
  import_react_query16 = require("@tanstack/react-query");
11842
11857
  import_lucide_react20 = require("lucide-react");
@@ -17889,7 +17904,7 @@ function useBlockscoutAssets(options) {
17889
17904
  } = useProviderConfig().config?.current?.portfolio || {};
17890
17905
  const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
17891
17906
  const blockscoutClient = (0, import_react58.useMemo)(
17892
- () => blockscoutApiUrl ? (0, import_clients2.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }) : null,
17907
+ () => blockscoutApiUrl ? (0, import_core4.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }) : null,
17893
17908
  [blockscoutApiUrl]
17894
17909
  );
17895
17910
  const lastRefreshRef = (0, import_react58.useRef)(0);
@@ -17923,7 +17938,7 @@ function useBlockscoutAssets(options) {
17923
17938
  ...BALANCE_DEFAULT_QUERY_CFG,
17924
17939
  queryKey: [`NON-${BLOCKSCOUT_QUERY_KEY}`, resolvedChainId, address],
17925
17940
  queryFn: async () => {
17926
- const assetList = await import_clients2.nonBlockscoutClient.getTokenBalances({
17941
+ const assetList = await import_core4.nonBlockscoutClient.getTokenBalances({
17927
17942
  walletAddress: address,
17928
17943
  chainId: resolvedChainId
17929
17944
  });
@@ -18150,11 +18165,11 @@ function useBlockscoutAssets(options) {
18150
18165
  lastUpdated: dataUpdatedAt || null
18151
18166
  };
18152
18167
  }
18153
- var import_clients2, import_react_query39, import_react58;
18168
+ var import_core4, import_react_query39, import_react58;
18154
18169
  var init_useBlockscoutAssets = __esm({
18155
18170
  "src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts"() {
18156
18171
  init_ProviderContext();
18157
- import_clients2 = require("@embarkai/core/clients");
18172
+ import_core4 = require("@embarkai/core");
18158
18173
  import_react_query39 = require("@tanstack/react-query");
18159
18174
  import_react58 = require("react");
18160
18175
  init_initial();
@@ -19952,7 +19967,7 @@ async function getUserOperationByHash(userOpHash, chainId) {
19952
19967
  throw new Error("Operation hash is required");
19953
19968
  }
19954
19969
  try {
19955
- const result = await (0, import_core3.bundlerRpc)("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
19970
+ const result = await (0, import_core5.bundlerRpc)("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
19956
19971
  if (!result) {
19957
19972
  return null;
19958
19973
  }
@@ -19969,11 +19984,11 @@ async function getUserOperationByHash(userOpHash, chainId) {
19969
19984
  return null;
19970
19985
  }
19971
19986
  }
19972
- var import_core3, import_read18;
19987
+ var import_core5, import_read18;
19973
19988
  var init_getUserOperationByHash = __esm({
19974
19989
  "src/clients/bundler/getUserOperationByHash.ts"() {
19975
19990
  init_SessionContext();
19976
- import_core3 = require("@embarkai/core");
19991
+ import_core5 = require("@embarkai/core");
19977
19992
  import_read18 = require("@embarkai/core/read");
19978
19993
  }
19979
19994
  });
@@ -19992,7 +20007,7 @@ async function getUserOperationReceipt(userOpHash, chainId) {
19992
20007
  throw new Error("Operation hash is required");
19993
20008
  }
19994
20009
  try {
19995
- const result = await (0, import_core4.bundlerRpc)("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
20010
+ const result = await (0, import_core6.bundlerRpc)("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
19996
20011
  if (!result) {
19997
20012
  return null;
19998
20013
  }
@@ -20015,11 +20030,11 @@ async function getUserOperationReceipt(userOpHash, chainId) {
20015
20030
  return null;
20016
20031
  }
20017
20032
  }
20018
- var import_core4, import_read19;
20033
+ var import_core6, import_read19;
20019
20034
  var init_getUserOperationReceipt = __esm({
20020
20035
  "src/clients/bundler/getUserOperationReceipt.ts"() {
20021
20036
  init_SessionContext();
20022
- import_core4 = require("@embarkai/core");
20037
+ import_core6 = require("@embarkai/core");
20023
20038
  import_read19 = require("@embarkai/core/read");
20024
20039
  }
20025
20040
  });
@@ -20076,7 +20091,7 @@ async function executeWarpTransactions(txs, walletClient) {
20076
20091
  const externalWalletChain = CHAINS_UI_META[originChain].chain;
20077
20092
  const publicClient = bridgeSender === "embarkai-wallet" ? useSession.getState().publicClient : (0, import_viem12.createPublicClient)({
20078
20093
  chain: externalWalletChain,
20079
- transport: import_core5.CHAINS_BROWSERS_TRANSPORTS[externalWalletChain.id] || (0, import_viem12.http)(externalWalletChain.rpcUrls.default.http[0])
20094
+ transport: import_core7.CHAINS_BROWSERS_TRANSPORTS[externalWalletChain.id] || (0, import_viem12.http)(externalWalletChain.rpcUrls.default.http[0])
20080
20095
  });
20081
20096
  if (!session) {
20082
20097
  throw new Error("No active session");
@@ -20143,7 +20158,7 @@ async function executeWarpTransactions(txs, walletClient) {
20143
20158
  }
20144
20159
  if (!TARGET_TX_CATEGORIES.includes(tx.category)) {
20145
20160
  useBridgeStore.getState().setBridgeTxStatus(`Tx receipt: ${tx.category || ""}...`);
20146
- const wagmiNonTransferReceipt = await (0, import_core5.waitForWagmiTransactionReceipt)(import_core5.wagmiConfig, {
20161
+ const wagmiNonTransferReceipt = await (0, import_core7.waitForWagmiTransactionReceipt)(import_core7.wagmiConfig, {
20147
20162
  chainId: publicClient.chain.id,
20148
20163
  hash: walletOpHash,
20149
20164
  pollingInterval: 6e3
@@ -20157,13 +20172,13 @@ async function executeWarpTransactions(txs, walletClient) {
20157
20172
  }
20158
20173
  return hashes;
20159
20174
  }
20160
- var import_core5, import_viem12, TARGET_TX_CATEGORIES;
20175
+ var import_core7, import_viem12, TARGET_TX_CATEGORIES;
20161
20176
  var init_executeWarpTxs = __esm({
20162
20177
  "src/internal/components/SendMenu/hyperbridge/lib/executeWarpTxs.ts"() {
20163
20178
  init_bundler();
20164
20179
  init_SessionContext();
20165
20180
  init_account2();
20166
- import_core5 = require("@embarkai/core");
20181
+ import_core7 = require("@embarkai/core");
20167
20182
  import_viem12 = require("viem");
20168
20183
  init_useBridgeStore();
20169
20184
  init_chains();
@@ -20617,7 +20632,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20617
20632
  enabled: bridgeSender === "direct-wallet" && !isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain,
20618
20633
  queryKey: [EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, originChain, directWalletAddress, routeTokenAddress],
20619
20634
  queryFn: async () => {
20620
- const chainTransport = import_core6.CHAINS_BROWSERS_TRANSPORTS[originChainMeta.chain.id] || (0, import_viem14.http)(originChainMeta.chain.rpcUrls.default.http[0]);
20635
+ const chainTransport = import_core8.CHAINS_BROWSERS_TRANSPORTS[originChainMeta.chain.id] || (0, import_viem14.http)(originChainMeta.chain.rpcUrls.default.http[0]);
20621
20636
  const client = (0, import_viem14.createPublicClient)({
20622
20637
  chain: originChainMeta.chain,
20623
20638
  transport: chainTransport
@@ -20660,7 +20675,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20660
20675
  enabled: bridgeSender === "direct-wallet" && isSelectedTokenNative && !!directWalletAddress && !!originChain,
20661
20676
  queryKey: [EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY, originChain, directWalletAddress],
20662
20677
  queryFn: async () => {
20663
- const chainTransport = import_core6.CHAINS_BROWSERS_TRANSPORTS[originChainMeta.chain.id] || (0, import_viem14.http)(originChainMeta.chain.rpcUrls.default.http[0]);
20678
+ const chainTransport = import_core8.CHAINS_BROWSERS_TRANSPORTS[originChainMeta.chain.id] || (0, import_viem14.http)(originChainMeta.chain.rpcUrls.default.http[0]);
20664
20679
  const client = (0, import_viem14.createPublicClient)({ chain: originChainMeta.chain, transport: chainTransport });
20665
20680
  const rawBalance = await client.getBalance({ address: directWalletAddress });
20666
20681
  return {
@@ -20717,12 +20732,12 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
20717
20732
  isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
20718
20733
  };
20719
20734
  }
20720
- var import_core6, import_react_query49, import_react69, import_viem14, import_wagmi5, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY;
20735
+ var import_core8, import_react_query49, import_react69, import_viem14, import_wagmi5, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY;
20721
20736
  var init_useBridgeBalance = __esm({
20722
20737
  "src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
20723
20738
  init_SessionContext();
20724
20739
  init_i18n();
20725
- import_core6 = require("@embarkai/core");
20740
+ import_core8 = require("@embarkai/core");
20726
20741
  import_react_query49 = require("@tanstack/react-query");
20727
20742
  import_react69 = require("react");
20728
20743
  import_viem14 = require("viem");
@@ -24632,7 +24647,7 @@ var init_package = __esm({
24632
24647
  "package.json"() {
24633
24648
  package_default = {
24634
24649
  name: "@embarkai/ui-kit",
24635
- version: "0.4.66",
24650
+ version: "0.4.68",
24636
24651
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24637
24652
  type: "module",
24638
24653
  main: "./dist/index.cjs",
@@ -28429,14 +28444,14 @@ var init_utils12 = __esm({
28429
28444
  });
28430
28445
 
28431
28446
  // src/context/WagmiContext.tsx
28432
- var import_core7, import_wagmi12, import_jsx_runtime124, WagmiProvider2;
28447
+ var import_core9, import_wagmi12, import_jsx_runtime124, WagmiProvider2;
28433
28448
  var init_WagmiContext = __esm({
28434
28449
  "src/context/WagmiContext.tsx"() {
28435
- import_core7 = require("@embarkai/core");
28450
+ import_core9 = require("@embarkai/core");
28436
28451
  import_wagmi12 = require("wagmi");
28437
28452
  import_jsx_runtime124 = require("react/jsx-runtime");
28438
28453
  WagmiProvider2 = ({ children }) => {
28439
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_wagmi12.WagmiProvider, { config: import_core7.wagmiConfig, children });
28454
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_wagmi12.WagmiProvider, { config: import_core9.wagmiConfig, children });
28440
28455
  };
28441
28456
  }
28442
28457
  });
@@ -28684,7 +28699,7 @@ __export(index_exports, {
28684
28699
  useWalletMode: () => useWalletMode,
28685
28700
  verifyFingerprint: () => verifyFingerprint,
28686
28701
  verifyFingerprintDetailed: () => verifyFingerprintDetailed,
28687
- wagmiConfig: () => import_core8.wagmiConfig,
28702
+ wagmiConfig: () => import_core10.wagmiConfig,
28688
28703
  waitForStoreHydration: () => waitForStoreHydration,
28689
28704
  waitForUserOperationReceipt: () => waitForUserOperationReceipt
28690
28705
  });
@@ -28694,7 +28709,7 @@ module.exports = __toCommonJS(index_exports);
28694
28709
  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}`;
28695
28710
 
28696
28711
  // src/index.ts
28697
- var import_core8 = require("@embarkai/core");
28712
+ var import_core10 = require("@embarkai/core");
28698
28713
  init_ProviderContext();
28699
28714
 
28700
28715
  // src/components/ConnectWalletButton.tsx
package/dist/index.js CHANGED
@@ -984,34 +984,37 @@ var init_useAssetRate = __esm({
984
984
  });
985
985
 
986
986
  // src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
987
+ import {
988
+ createBlockscoutClient
989
+ } from "@embarkai/core";
987
990
  import { NON_BLOCKSCOUT_CORE_TOKENS } from "@embarkai/core/read";
988
991
  import { useQuery as useQuery2 } from "@tanstack/react-query";
989
992
  import { useEffect, useState } from "react";
990
993
  import { erc20Abi, formatUnits } from "viem";
991
994
  function BalanceFeedProvider() {
992
995
  const config = useProviderConfig().config;
993
- const address = useSession((st) => st.address);
996
+ const embarkaiAddress = useSession((st) => st.address);
994
997
  const chainConfig = useSession((st) => st.chainConfig);
995
998
  const publicClient = useSession((st) => st.publicClient);
996
999
  const [balanceSymbol, setBalanceSymbol] = useState(null);
997
1000
  useEffect(
998
1001
  () => setBalanceSymbol(config?.current?.showBalanceAs || chainConfig.nativeCurrency.symbol),
999
- [config, address, chainConfig]
1002
+ [config, embarkaiAddress, chainConfig]
1000
1003
  );
1001
1004
  useEffect(
1002
1005
  () => useLayoutDataStore.getState().setCryptoSymbol(chainConfig?.nativeCurrency?.symbol || "LUMIA"),
1003
- [chainConfig]
1006
+ [embarkaiAddress, chainConfig]
1004
1007
  );
1005
1008
  const { data: cryptoRate } = useAssetUsdtRate(balanceSymbol);
1006
1009
  const isNativeBalanceFeedEnabled = !!balanceSymbol && !!chainConfig?.nativeCurrency.symbol && balanceSymbol === chainConfig?.nativeCurrency.symbol;
1007
1010
  const { data: nativeBalance } = useQuery2({
1008
- enabled: !!isNativeBalanceFeedEnabled && !!address && !!publicClient,
1011
+ enabled: !!isNativeBalanceFeedEnabled && !!embarkaiAddress && !!publicClient,
1009
1012
  retry: false,
1010
1013
  refetchInterval: BALANCE_POLLING_INTERVAL,
1011
- queryKey: [NATIVE_BALANCE_QUERY_KEY, address, chainConfig?.nativeCurrency?.symbol],
1014
+ queryKey: [NATIVE_BALANCE_QUERY_KEY, embarkaiAddress, chainConfig?.nativeCurrency?.symbol],
1012
1015
  // Include chainId in query key to refetch when chain changes
1013
1016
  queryFn: async () => {
1014
- const balanceValue = await publicClient.getBalance({ address });
1017
+ const balanceValue = await publicClient.getBalance({ address: embarkaiAddress });
1015
1018
  return {
1016
1019
  decimals: chainConfig?.nativeCurrency?.decimals || 18,
1017
1020
  formatted: formatUnits(balanceValue, chainConfig?.nativeCurrency?.decimals || 18),
@@ -1041,7 +1044,7 @@ function BalanceFeedProvider() {
1041
1044
  const { data: projectAssetBalance } = useQuery2({
1042
1045
  retry: false,
1043
1046
  refetchInterval: BALANCE_POLLING_INTERVAL,
1044
- enabled: !!address && !!isProjectAssetBalanceEnabled,
1047
+ enabled: !!embarkaiAddress && !!isProjectAssetBalanceEnabled,
1045
1048
  queryKey: PROJECT_ASSET_BALANCE_QUERY_KEY,
1046
1049
  // should be invalidated by host app via provided queryKey
1047
1050
  queryFn: async () => await projectAssetBalanceQueryFn?.()
@@ -1063,20 +1066,33 @@ function BalanceFeedProvider() {
1063
1066
  }, [isProjectAssetBalanceEnabled, projectAssetBalance]);
1064
1067
  const isCustomAssetBalanceEnabled = !isNativeBalanceFeedEnabled && !isProjectAssetBalanceEnabled;
1065
1068
  const { data: customBalance } = useQuery2({
1066
- enabled: !!isCustomAssetBalanceEnabled && !!balanceSymbol && !!chainConfig?.id && !!address && !!publicClient,
1069
+ enabled: !!isCustomAssetBalanceEnabled && !!balanceSymbol && !!chainConfig?.id && !!embarkaiAddress && !!publicClient,
1067
1070
  retry: false,
1068
1071
  refetchInterval: BALANCE_POLLING_INTERVAL,
1069
1072
  // staleTime: 0,
1070
- queryKey: [CUSTOM_BALANCE_QUERY_KEY, chainConfig?.id, address, balanceSymbol],
1073
+ queryKey: [CUSTOM_BALANCE_QUERY_KEY, chainConfig?.id, embarkaiAddress, balanceSymbol],
1071
1074
  // Include chainId in query key to refetch when chain changes
1072
1075
  queryFn: async () => {
1073
- const coreTokenList = NON_BLOCKSCOUT_CORE_TOKENS[chainConfig?.id] || [];
1076
+ const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
1074
1077
  const watchTokensList = (config?.current?.watchTokens?.[chainConfig?.id] || []).map((el) => ({
1075
1078
  address: el.address,
1076
1079
  decimals: el.decimals,
1077
1080
  symbol: el.symbol
1078
1081
  }));
1079
- const customAssetList = [...watchTokensList, ...coreTokenList];
1082
+ const customAssetList = [];
1083
+ if (blockscoutApiUrl) {
1084
+ const blockscoutClient = createBlockscoutClient({ baseUrl: blockscoutApiUrl });
1085
+ const blockscoutTokens = await blockscoutClient.getTokenBalances(embarkaiAddress);
1086
+ const blockscoutAssets = blockscoutTokens.map((el) => ({
1087
+ address: el.token.address_hash,
1088
+ decimals: Number(el.token.decimals),
1089
+ symbol: el.token.symbol
1090
+ }));
1091
+ customAssetList.push(...watchTokensList, ...blockscoutAssets);
1092
+ } else {
1093
+ const coreTokenList = NON_BLOCKSCOUT_CORE_TOKENS[chainConfig?.id] || [];
1094
+ customAssetList.push(...watchTokensList, ...coreTokenList);
1095
+ }
1080
1096
  const { address: customAssetAddress, decimals: customAssetADecimals } = customAssetList.find((el) => el.symbol === balanceSymbol) || {};
1081
1097
  if (!customAssetAddress) {
1082
1098
  console.warn(`[BALANCE FEED] No token address found for symbol ${balanceSymbol} on chain ${chainConfig?.name}`);
@@ -1086,7 +1102,7 @@ function BalanceFeedProvider() {
1086
1102
  address: customAssetAddress,
1087
1103
  abi: erc20Abi,
1088
1104
  functionName: "balanceOf",
1089
- args: [address],
1105
+ args: [embarkaiAddress],
1090
1106
  authorizationList: void 0
1091
1107
  });
1092
1108
  return {
@@ -1112,6 +1128,7 @@ function BalanceFeedProvider() {
1112
1128
  }
1113
1129
  var init_BalanceFeedProvider = __esm({
1114
1130
  "src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx"() {
1131
+ init_initial();
1115
1132
  init_ProviderContext();
1116
1133
  init_SessionContext();
1117
1134
  init_useLayoutDataStore();
@@ -17807,7 +17824,7 @@ var init_utils8 = __esm({
17807
17824
  });
17808
17825
 
17809
17826
  // src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts
17810
- import { createBlockscoutClient, nonBlockscoutClient } from "@embarkai/core/clients";
17827
+ import { createBlockscoutClient as createBlockscoutClient2, nonBlockscoutClient } from "@embarkai/core";
17811
17828
  import { useQuery as useQuery16, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
17812
17829
  import { useCallback as useCallback23, useMemo as useMemo10, useRef as useRef15 } from "react";
17813
17830
  function useBlockscoutAssets(options) {
@@ -17821,7 +17838,7 @@ function useBlockscoutAssets(options) {
17821
17838
  } = useProviderConfig().config?.current?.portfolio || {};
17822
17839
  const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
17823
17840
  const blockscoutClient = useMemo10(
17824
- () => blockscoutApiUrl ? createBlockscoutClient({ baseUrl: blockscoutApiUrl }) : null,
17841
+ () => blockscoutApiUrl ? createBlockscoutClient2({ baseUrl: blockscoutApiUrl }) : null,
17825
17842
  [blockscoutApiUrl]
17826
17843
  );
17827
17844
  const lastRefreshRef = useRef15(0);
@@ -24537,7 +24554,7 @@ var init_package = __esm({
24537
24554
  "package.json"() {
24538
24555
  package_default = {
24539
24556
  name: "@embarkai/ui-kit",
24540
- version: "0.4.66",
24557
+ version: "0.4.68",
24541
24558
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24542
24559
  type: "module",
24543
24560
  main: "./dist/index.cjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embarkai/ui-kit",
3
- "version": "0.4.66",
3
+ "version": "0.4.68",
4
4
  "description": "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -51,7 +51,7 @@
51
51
  "viem": "^2.52.2",
52
52
  "wagmi": "^2.19.5",
53
53
  "zustand": "^5.0.14",
54
- "@embarkai/core": "0.4.9"
54
+ "@embarkai/core": "0.4.10"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@svgr/core": "^8.1.0",