@embarkai/ui-kit 0.4.29 → 0.4.30
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/iframe/index.html +1 -1
- package/dist/iframe/main.js +1 -1
- package/dist/index.cjs +1199 -1032
- package/dist/index.d.cts +7 -3
- package/dist/index.d.ts +7 -3
- package/dist/index.js +918 -752
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -5408,22 +5408,26 @@ var init_en = __esm({
|
|
|
5408
5408
|
actions: {
|
|
5409
5409
|
connectWallet: "CONNECT WALLET",
|
|
5410
5410
|
bridge: "BRIDGE",
|
|
5411
|
+
estimateQuote: "ESTIMATE QUOTE",
|
|
5411
5412
|
bridgeAsset: "BRIDGE {{asset}}",
|
|
5412
|
-
confirmBridge: "
|
|
5413
|
+
confirmBridge: "I confirm bridging {{amount}} {{asset}} to {{destinationChain}}"
|
|
5413
5414
|
},
|
|
5414
5415
|
statuses: {
|
|
5415
|
-
qouteEstimating: "Estimating quote...",
|
|
5416
|
-
switchingWalletChain: "Switching chain...",
|
|
5417
5416
|
txPrepare: "Preparing transactions...",
|
|
5418
5417
|
txSending: "Sending {{txCount}} transactions...",
|
|
5419
|
-
txSent: "Transactions sent. Delivery to {{destination}}"
|
|
5420
|
-
|
|
5418
|
+
txSent: "Transactions sent. Delivery to {{destination}}"
|
|
5419
|
+
},
|
|
5420
|
+
consent: {
|
|
5421
|
+
recipient: "IMPORTANT! Make sure the address {{address}} exists on the {{destinationChain}} chain and supports receiving bridged {{asset}}!",
|
|
5422
|
+
lostFunds: "Your funds may be lost otherwise."
|
|
5421
5423
|
},
|
|
5422
5424
|
errors: {
|
|
5423
5425
|
directWalletWarn: "In order to bridge from your {{originWalletProvider}} wallet, you need to connect it first (since originally it provides embarkAi auth-profile, not a connection). You will be guided through the process in the next steps.",
|
|
5424
5426
|
routeUnavailable: "The route {{originChain}} \u2194 {{destinationChain}} is currently unavailable. Please try again later or select a different route.",
|
|
5425
5427
|
noConnections: "No connections found between {{originChain}} & {{destinationChain}}",
|
|
5426
|
-
wrongNetwork: " Please switch embarkAi to origin chain to proceed with bridging"
|
|
5428
|
+
wrongNetwork: " Please switch embarkAi to origin chain to proceed with bridging",
|
|
5429
|
+
noHistory: "No bridge history yet. Bridge your assets to see the history here.",
|
|
5430
|
+
unsupportedNetwork: "Briging from {{originChain}} not yet supported by {{sender}}. Swap network pair, or select different token route, or change sender wallet"
|
|
5427
5431
|
}
|
|
5428
5432
|
},
|
|
5429
5433
|
receiveMenu: {
|
|
@@ -11668,7 +11672,7 @@ import {
|
|
|
11668
11672
|
ARBITRUM_SEPOLIA_CHAIN_ID,
|
|
11669
11673
|
BASE_SEPOLIA_CHAIN_ID,
|
|
11670
11674
|
BSC_TESTNET_CHAIN_ID as BSC_TESTNET_CHAIN_ID3,
|
|
11671
|
-
|
|
11675
|
+
LUMIA_PULSAR_TESTNET_CHAIN_ID,
|
|
11672
11676
|
LUMIA_MAINNET_CHAIN_ID as LUMIA_MAINNET_CHAIN_ID3,
|
|
11673
11677
|
LUMIA_TESTNET_CHAIN_ID as LUMIA_TESTNET_CHAIN_ID3,
|
|
11674
11678
|
SEPOLIA_CHAIN_ID
|
|
@@ -11725,8 +11729,8 @@ var init_networks3 = __esm({
|
|
|
11725
11729
|
isActive: true
|
|
11726
11730
|
},
|
|
11727
11731
|
{
|
|
11728
|
-
chainId:
|
|
11729
|
-
name: "
|
|
11732
|
+
chainId: LUMIA_PULSAR_TESTNET_CHAIN_ID,
|
|
11733
|
+
name: "Lumia Pulsar Testnet",
|
|
11730
11734
|
badge: "TESTNET",
|
|
11731
11735
|
Icon: LumiaIcon2,
|
|
11732
11736
|
isActive: true
|
|
@@ -19273,7 +19277,8 @@ var init_chains = __esm({
|
|
|
19273
19277
|
// exact hyperlane registry chain name
|
|
19274
19278
|
Icon: LumiaIcon2,
|
|
19275
19279
|
explorerUrl: lumiaprism.blockExplorers.default.url,
|
|
19276
|
-
chain: lumiaprism
|
|
19280
|
+
chain: lumiaprism,
|
|
19281
|
+
nativeCurrency: lumiaprism.nativeCurrency.symbol
|
|
19277
19282
|
},
|
|
19278
19283
|
bsc: {
|
|
19279
19284
|
chainID: bsc.id,
|
|
@@ -19282,7 +19287,8 @@ var init_chains = __esm({
|
|
|
19282
19287
|
// exact hyperlane registry chain name
|
|
19283
19288
|
Icon: BnbIcon2,
|
|
19284
19289
|
explorerUrl: bsc.blockExplorers.default.url,
|
|
19285
|
-
chain: bsc
|
|
19290
|
+
chain: bsc,
|
|
19291
|
+
nativeCurrency: bsc.nativeCurrency.symbol
|
|
19286
19292
|
},
|
|
19287
19293
|
ethereum: {
|
|
19288
19294
|
chainID: ethereum.id,
|
|
@@ -19291,7 +19297,8 @@ var init_chains = __esm({
|
|
|
19291
19297
|
// exact hyperlane registry chain name
|
|
19292
19298
|
Icon: EthereumIcon,
|
|
19293
19299
|
explorerUrl: ethereum.blockExplorers.default.url,
|
|
19294
|
-
chain: ethereum
|
|
19300
|
+
chain: ethereum,
|
|
19301
|
+
nativeCurrency: ethereum.nativeCurrency.symbol
|
|
19295
19302
|
}
|
|
19296
19303
|
// base: {
|
|
19297
19304
|
// chainID: base.id,
|
|
@@ -19480,7 +19487,6 @@ function SenderSelector() {
|
|
|
19480
19487
|
break;
|
|
19481
19488
|
case "direct-wallet":
|
|
19482
19489
|
if (isDirectWalletReady) {
|
|
19483
|
-
useBridgeStore.getState().refreshRoteTokenBalance();
|
|
19484
19490
|
useBridgeStore.getState().setBridgeSender("direct-wallet");
|
|
19485
19491
|
useBridgeStore.getState().setBridgeStep("select");
|
|
19486
19492
|
} else {
|
|
@@ -19562,6 +19568,28 @@ var init_ResolveChainIcon = __esm({
|
|
|
19562
19568
|
}
|
|
19563
19569
|
});
|
|
19564
19570
|
|
|
19571
|
+
// src/internal/components/SendMenu/hyperbridge/utils.ts
|
|
19572
|
+
import { formatUnits as formatUnits6 } from "viem";
|
|
19573
|
+
function isNftAsset2(asset) {
|
|
19574
|
+
if (!asset) return false;
|
|
19575
|
+
return asset.type === "erc721" || asset.type === "erc1155";
|
|
19576
|
+
}
|
|
19577
|
+
function getAssetBalance(asset) {
|
|
19578
|
+
if (!asset) return 0;
|
|
19579
|
+
if (isNftAsset2(asset)) return 1;
|
|
19580
|
+
return Number(formatUnits6(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
19581
|
+
}
|
|
19582
|
+
function isOririnChainEmbarkSupported(originChain) {
|
|
19583
|
+
const supportedChain = NETWORK_OPTIONS.map((c) => c.chainId);
|
|
19584
|
+
return supportedChain.includes(CHAINS_UI_META[originChain].chainID);
|
|
19585
|
+
}
|
|
19586
|
+
var init_utils8 = __esm({
|
|
19587
|
+
"src/internal/components/SendMenu/hyperbridge/utils.ts"() {
|
|
19588
|
+
init_networks3();
|
|
19589
|
+
init_chains();
|
|
19590
|
+
}
|
|
19591
|
+
});
|
|
19592
|
+
|
|
19565
19593
|
// src/internal/components/SendMenu/hyperbridge/components/TokenHyperlaneRouteSelector.tsx
|
|
19566
19594
|
import { ArrowLeftRightIcon } from "lucide-react";
|
|
19567
19595
|
import { Fragment as Fragment36 } from "react";
|
|
@@ -19586,8 +19614,19 @@ function TokenHyperlaneRouteSelector(props) {
|
|
|
19586
19614
|
className: "justify-between",
|
|
19587
19615
|
onClick: () => {
|
|
19588
19616
|
const { setHyperRoute, setBridgeStep, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
19589
|
-
|
|
19590
|
-
|
|
19617
|
+
let originChainIndex = 0;
|
|
19618
|
+
let destinationChainIndex = 1;
|
|
19619
|
+
if (useBridgeStore.getState().bridgeSender === "embarkai-wallet") {
|
|
19620
|
+
const foundIdx = hyperRoute.chainPair.findIndex(
|
|
19621
|
+
(chain) => isOririnChainEmbarkSupported(chain.chainName)
|
|
19622
|
+
);
|
|
19623
|
+
if (foundIdx !== -1) {
|
|
19624
|
+
originChainIndex = foundIdx;
|
|
19625
|
+
destinationChainIndex = foundIdx === 0 ? 1 : 0;
|
|
19626
|
+
}
|
|
19627
|
+
}
|
|
19628
|
+
setOriginChain(hyperRoute.chainPair[originChainIndex].chainName);
|
|
19629
|
+
setDestinationChain(hyperRoute.chainPair[destinationChainIndex].chainName);
|
|
19591
19630
|
setHyperRoute(hyperRoute.routeId);
|
|
19592
19631
|
setBridgeStep("select");
|
|
19593
19632
|
},
|
|
@@ -19612,6 +19651,7 @@ var init_TokenHyperlaneRouteSelector = __esm({
|
|
|
19612
19651
|
init_button();
|
|
19613
19652
|
init_ResolveChainIcon();
|
|
19614
19653
|
init_useBridgeStore();
|
|
19654
|
+
init_utils8();
|
|
19615
19655
|
}
|
|
19616
19656
|
});
|
|
19617
19657
|
|
|
@@ -19912,44 +19952,44 @@ var init_useHyperlaneHistory = __esm({
|
|
|
19912
19952
|
}
|
|
19913
19953
|
});
|
|
19914
19954
|
|
|
19955
|
+
// src/internal/components/SendMenu/hyperbridge/hooks/useOperationHashesStore.ts
|
|
19956
|
+
import { create as create9 } from "zustand";
|
|
19957
|
+
var useOperationHashesStore;
|
|
19958
|
+
var init_useOperationHashesStore = __esm({
|
|
19959
|
+
"src/internal/components/SendMenu/hyperbridge/hooks/useOperationHashesStore.ts"() {
|
|
19960
|
+
useOperationHashesStore = create9()((set) => ({
|
|
19961
|
+
operationHashes: [],
|
|
19962
|
+
setOperationHashes: (hashes) => set({ operationHashes: hashes })
|
|
19963
|
+
}));
|
|
19964
|
+
}
|
|
19965
|
+
});
|
|
19966
|
+
|
|
19915
19967
|
// src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts
|
|
19916
19968
|
import { useMutation as useMutation19, useQueryClient as useQueryClient23 } from "@tanstack/react-query";
|
|
19917
|
-
import { useCallback as useCallback22
|
|
19918
|
-
import {
|
|
19969
|
+
import { useCallback as useCallback22 } from "react";
|
|
19970
|
+
import { useSwitchChain, useWalletClient } from "wagmi";
|
|
19919
19971
|
function useBridge() {
|
|
19920
19972
|
const qc = useQueryClient23();
|
|
19921
19973
|
const { t } = useT();
|
|
19922
|
-
const { data: walletClient } = useWalletClient();
|
|
19923
|
-
const { refetch: waitForWalletTxReceipt } = useWaitForTransactionReceipt({ chainId: walletClient?.chain?.id });
|
|
19924
19974
|
const address = useSession((st) => st.address);
|
|
19925
|
-
const
|
|
19926
|
-
const
|
|
19927
|
-
const currentChainId = useSession((st) => st.activeChainId);
|
|
19928
|
-
const amountToBridge = useBridgeStore((st) => st.amount);
|
|
19929
|
-
const recipient = useBridgeStore((st) => st.recipient);
|
|
19975
|
+
const { data: walletClient } = useWalletClient();
|
|
19976
|
+
const { switchChainAsync } = useSwitchChain();
|
|
19930
19977
|
const swapDirection = useCallback22(() => {
|
|
19931
19978
|
const {
|
|
19932
19979
|
bridgeStep,
|
|
19933
19980
|
originChain,
|
|
19934
19981
|
destinationChain,
|
|
19935
|
-
amount,
|
|
19936
19982
|
//
|
|
19937
19983
|
setOriginChain,
|
|
19938
|
-
setDestinationChain
|
|
19939
|
-
setAmount,
|
|
19940
|
-
setQuote
|
|
19984
|
+
setDestinationChain
|
|
19941
19985
|
} = useBridgeStore.getState();
|
|
19942
19986
|
useFlowSelectorStore.getState().setError(null);
|
|
19943
19987
|
useFlowSelectorStore.getState().setRenderKey(`${bridgeStep}-swaped-${Date.now()}`);
|
|
19944
19988
|
setOriginChain(destinationChain);
|
|
19945
19989
|
setDestinationChain(originChain);
|
|
19946
|
-
const cacheAmount = amount;
|
|
19947
|
-
setAmount("0");
|
|
19948
|
-
setQuote(null);
|
|
19949
|
-
setTimeout(() => setAmount(cacheAmount), 250);
|
|
19950
19990
|
}, []);
|
|
19951
19991
|
const { mutate: estimateQuote } = useMutation19({
|
|
19952
|
-
mutationFn: async (
|
|
19992
|
+
mutationFn: async (amountToBridge) => {
|
|
19953
19993
|
useFlowSelectorStore.getState().setError(null);
|
|
19954
19994
|
useFlowSelectorStore.getState().setIsUiLocked(true);
|
|
19955
19995
|
const bridgeSender = useBridgeStore.getState().bridgeSenders.find((s) => s.type === useBridgeStore.getState().bridgeSender);
|
|
@@ -19957,28 +19997,26 @@ function useBridge() {
|
|
|
19957
19997
|
hyperRoute,
|
|
19958
19998
|
originChain,
|
|
19959
19999
|
destinationChain,
|
|
19960
|
-
recipient
|
|
20000
|
+
recipient,
|
|
19961
20001
|
//
|
|
19962
20002
|
setIsQuoteEstimating
|
|
19963
20003
|
} = useBridgeStore.getState();
|
|
19964
20004
|
setIsQuoteEstimating(true);
|
|
19965
|
-
console.log("[HYPERLANE SDK] recipient:", recipient2 || address);
|
|
19966
20005
|
return await estimateHyperlaneQuote({
|
|
19967
20006
|
warpRouteId: hyperRoute,
|
|
19968
20007
|
address: bridgeSender.address,
|
|
19969
20008
|
originChain,
|
|
19970
20009
|
destinationChain,
|
|
19971
|
-
recipient:
|
|
19972
|
-
amountToBridge
|
|
20010
|
+
recipient: recipient || address,
|
|
20011
|
+
amountToBridge
|
|
19973
20012
|
});
|
|
19974
20013
|
},
|
|
19975
20014
|
onSuccess: (quote) => {
|
|
19976
|
-
|
|
19977
|
-
const { bridgeStep, setQuote, setIsQuoteEstimating } = useBridgeStore.getState();
|
|
20015
|
+
const { setQuote, setIsQuoteEstimating, setBridgeStep } = useBridgeStore.getState();
|
|
19978
20016
|
setQuote(quote);
|
|
19979
20017
|
setIsQuoteEstimating(false);
|
|
19980
20018
|
useFlowSelectorStore.getState().setIsUiLocked(false);
|
|
19981
|
-
|
|
20019
|
+
setBridgeStep("confirm");
|
|
19982
20020
|
},
|
|
19983
20021
|
onError: (error) => {
|
|
19984
20022
|
const { setQuote, setIsQuoteEstimating } = useBridgeStore.getState();
|
|
@@ -19989,21 +20027,36 @@ function useBridge() {
|
|
|
19989
20027
|
useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
|
|
19990
20028
|
}
|
|
19991
20029
|
});
|
|
19992
|
-
const
|
|
19993
|
-
|
|
19994
|
-
if (
|
|
19995
|
-
if (page !== "send" /* SEND */ || flow !== "bridge") return;
|
|
19996
|
-
if (!amountToBridge || !Number(amountToBridge)) {
|
|
20030
|
+
const handleQuoteEstimation = useCallback22((amnt) => {
|
|
20031
|
+
const { originChain, destinationChain, bridgeSender } = useBridgeStore.getState();
|
|
20032
|
+
if (!amnt || !Number(amnt)) {
|
|
19997
20033
|
useBridgeStore.getState().setQuote(null);
|
|
19998
20034
|
useFlowSelectorStore.getState().setRenderKey(`bridge-no-amount-${Date.now()}`);
|
|
19999
20035
|
return;
|
|
20000
20036
|
}
|
|
20001
|
-
const { originChain, destinationChain } = useBridgeStore.getState();
|
|
20002
20037
|
if (!originChain || !destinationChain) return;
|
|
20003
|
-
|
|
20004
|
-
|
|
20005
|
-
|
|
20006
|
-
|
|
20038
|
+
let isEstimationLocked = false;
|
|
20039
|
+
switch (bridgeSender) {
|
|
20040
|
+
case "embarkai-wallet":
|
|
20041
|
+
isEstimationLocked = !isOririnChainEmbarkSupported(originChain);
|
|
20042
|
+
break;
|
|
20043
|
+
case "direct-wallet":
|
|
20044
|
+
isEstimationLocked = false;
|
|
20045
|
+
break;
|
|
20046
|
+
}
|
|
20047
|
+
if (!isEstimationLocked) {
|
|
20048
|
+
estimateQuote(amnt);
|
|
20049
|
+
return;
|
|
20050
|
+
}
|
|
20051
|
+
useBridgeStore.getState().setQuote(null);
|
|
20052
|
+
useFlowSelectorStore.getState().setError(
|
|
20053
|
+
// @ts-expect-error i18n typing
|
|
20054
|
+
t("passport:bridgeMenu.errors.unsupportedNetwork", {
|
|
20055
|
+
originChain: originChain ? CHAINS_UI_META[originChain].chainLabel : "",
|
|
20056
|
+
sender: bridgeSender === "embarkai-wallet" ? "EmbarkAI Wallet" : "Direct Wallet"
|
|
20057
|
+
})
|
|
20058
|
+
);
|
|
20059
|
+
}, []);
|
|
20007
20060
|
const { mutate: bridgeAsset, isPending: isAssetBridging } = useMutation19({
|
|
20008
20061
|
mutationFn: async () => {
|
|
20009
20062
|
const {
|
|
@@ -20012,18 +20065,37 @@ function useBridge() {
|
|
|
20012
20065
|
destinationChain,
|
|
20013
20066
|
amount,
|
|
20014
20067
|
quote,
|
|
20015
|
-
recipient
|
|
20068
|
+
recipient,
|
|
20016
20069
|
setBridgeTxStatus,
|
|
20017
20070
|
setLastTxHashes
|
|
20018
20071
|
} = useBridgeStore.getState();
|
|
20019
20072
|
const bridgeSender = useBridgeStore.getState().bridgeSenders.find((s) => s.type === useBridgeStore.getState().bridgeSender);
|
|
20073
|
+
const embarkChainId = useSession.getState().activeChainId;
|
|
20020
20074
|
const originChainId = CHAINS_UI_META[originChain].chainID;
|
|
20021
|
-
|
|
20022
|
-
|
|
20075
|
+
const directWalletChainId = useExternalWalletStore.getState().externalChainId;
|
|
20076
|
+
const directWalletConnectorName = useExternalWalletStore.getState().connectorName;
|
|
20077
|
+
switch (bridgeSender.type) {
|
|
20078
|
+
case "direct-wallet":
|
|
20079
|
+
if (directWalletChainId !== CHAINS_UI_META[originChain].chainID) {
|
|
20080
|
+
console.log("[HYPERLANE SDK] External wallet on wrong chain:", directWalletChainId, "; switching...");
|
|
20081
|
+
switchChainAsync({ chainId: CHAINS_UI_META[originChain].chainID }).catch((err) => {
|
|
20082
|
+
useFlowSelectorStore.getState().setError(
|
|
20083
|
+
`Failed switch ${directWalletConnectorName} to ${CHAINS_UI_META[originChain].chainLabel}
|
|
20084
|
+
${err?.message || "Failed to switch to the correct network"}`
|
|
20085
|
+
);
|
|
20086
|
+
});
|
|
20087
|
+
}
|
|
20088
|
+
break;
|
|
20089
|
+
case "embarkai-wallet":
|
|
20090
|
+
if (embarkChainId !== originChainId) {
|
|
20091
|
+
throw new Error(`Please switch embarkAi chain to ${CHAINS_UI_META[originChain].chainLabel}.`);
|
|
20092
|
+
}
|
|
20093
|
+
break;
|
|
20023
20094
|
}
|
|
20024
20095
|
useLayoutStore.getState().setIsDialogForced(true);
|
|
20025
20096
|
useFlowSelectorStore.getState().setIsUiLocked(true);
|
|
20026
20097
|
useFlowSelectorStore.getState().setError(null);
|
|
20098
|
+
useOperationHashesStore.getState().setOperationHashes([]);
|
|
20027
20099
|
setBridgeTxStatus(null);
|
|
20028
20100
|
setLastTxHashes([]);
|
|
20029
20101
|
setBridgeTxStatus(t("passport:bridgeMenu.statuses.txPrepare"));
|
|
@@ -20032,7 +20104,7 @@ function useBridge() {
|
|
|
20032
20104
|
address: bridgeSender.address,
|
|
20033
20105
|
originChain,
|
|
20034
20106
|
destinationChain,
|
|
20035
|
-
recipient:
|
|
20107
|
+
recipient: recipient || address,
|
|
20036
20108
|
amountToBridge: amount,
|
|
20037
20109
|
quote
|
|
20038
20110
|
});
|
|
@@ -20040,7 +20112,10 @@ function useBridge() {
|
|
|
20040
20112
|
hyperlaneDbTx.id,
|
|
20041
20113
|
warpTxs,
|
|
20042
20114
|
bridgeSender.type === "direct-wallet" ? walletClient : null
|
|
20043
|
-
)
|
|
20115
|
+
).then((hashes) => {
|
|
20116
|
+
useOperationHashesStore.getState().setOperationHashes(hashes);
|
|
20117
|
+
return hashes;
|
|
20118
|
+
});
|
|
20044
20119
|
console.log("[HYPERLANE SDK] Transactions sent, operation hashes:", operationHashes);
|
|
20045
20120
|
Promise.all(
|
|
20046
20121
|
operationHashes.map(async (opHash) => {
|
|
@@ -20062,7 +20137,8 @@ function useBridge() {
|
|
|
20062
20137
|
txStatus: "SENT",
|
|
20063
20138
|
txHashes: filteredTxHashes
|
|
20064
20139
|
});
|
|
20065
|
-
qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, 1] });
|
|
20140
|
+
await qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, 1] });
|
|
20141
|
+
useFlowSelectorStore.getState().setRenderKey(`bridge-txHashes-patched-${Date.now()}`);
|
|
20066
20142
|
}).catch((error) => {
|
|
20067
20143
|
console.error("[HYPERLANE SDK] Error while waiting for transaction receipts & patching DB:", error?.message);
|
|
20068
20144
|
});
|
|
@@ -20086,27 +20162,34 @@ function useBridge() {
|
|
|
20086
20162
|
useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
|
|
20087
20163
|
}
|
|
20088
20164
|
});
|
|
20089
|
-
return {
|
|
20165
|
+
return {
|
|
20166
|
+
swapDirection,
|
|
20167
|
+
handleQuoteEstimation,
|
|
20168
|
+
bridgeAsset,
|
|
20169
|
+
isAssetBridging
|
|
20170
|
+
};
|
|
20090
20171
|
}
|
|
20091
20172
|
var init_useBridge = __esm({
|
|
20092
20173
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
|
|
20093
20174
|
init_clients2();
|
|
20094
20175
|
init_SessionContext();
|
|
20095
20176
|
init_i18n();
|
|
20096
|
-
|
|
20177
|
+
init_useExternalWalletStore();
|
|
20097
20178
|
init_useLayoutStore();
|
|
20098
20179
|
init_useFlowSelector();
|
|
20099
20180
|
init_api4();
|
|
20100
20181
|
init_chains();
|
|
20101
20182
|
init_executeWarpTxs();
|
|
20102
20183
|
init_useBridgeStore();
|
|
20184
|
+
init_utils8();
|
|
20103
20185
|
init_useHyperlaneHistory();
|
|
20186
|
+
init_useOperationHashesStore();
|
|
20104
20187
|
}
|
|
20105
20188
|
});
|
|
20106
20189
|
|
|
20107
20190
|
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts
|
|
20108
20191
|
import { useQuery as useQuery21 } from "@tanstack/react-query";
|
|
20109
|
-
import { useEffect as
|
|
20192
|
+
import { useEffect as useEffect36 } from "react";
|
|
20110
20193
|
function useHyperlaneRoutes() {
|
|
20111
20194
|
const address = useSession((st) => st.address);
|
|
20112
20195
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -20122,19 +20205,31 @@ function useHyperlaneRoutes() {
|
|
|
20122
20205
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
20123
20206
|
queryFn: async () => getHyperlaneWarpRoutes()
|
|
20124
20207
|
});
|
|
20125
|
-
|
|
20208
|
+
useEffect36(() => {
|
|
20126
20209
|
if (!errorWarpRoutes) return;
|
|
20127
20210
|
useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
|
|
20128
|
-
useBridgeStore.getState()
|
|
20129
|
-
|
|
20130
|
-
|
|
20131
|
-
|
|
20211
|
+
const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
20212
|
+
resetSelections();
|
|
20213
|
+
setRecipient(null);
|
|
20214
|
+
setOriginChain(null);
|
|
20215
|
+
setDestinationChain(null);
|
|
20132
20216
|
}, [errorWarpRoutes]);
|
|
20133
|
-
|
|
20217
|
+
useEffect36(() => {
|
|
20134
20218
|
if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
|
|
20135
20219
|
const warpRouteToAutoSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
|
|
20136
|
-
|
|
20137
|
-
|
|
20220
|
+
let originChainIndex = 0;
|
|
20221
|
+
let destinationChainIndex = 1;
|
|
20222
|
+
if (useBridgeStore.getState().bridgeSender === "embarkai-wallet") {
|
|
20223
|
+
const foundIdx = warpRouteToAutoSelect.chainPair.findIndex(
|
|
20224
|
+
(chain) => isOririnChainEmbarkSupported(chain.chainName)
|
|
20225
|
+
);
|
|
20226
|
+
if (foundIdx !== -1) {
|
|
20227
|
+
originChainIndex = foundIdx;
|
|
20228
|
+
destinationChainIndex = foundIdx === 0 ? 1 : 0;
|
|
20229
|
+
}
|
|
20230
|
+
}
|
|
20231
|
+
useBridgeStore.getState().setOriginChain(warpRouteToAutoSelect.chainPair[originChainIndex].chainName);
|
|
20232
|
+
useBridgeStore.getState().setDestinationChain(warpRouteToAutoSelect.chainPair[destinationChainIndex].chainName);
|
|
20138
20233
|
useBridgeStore.getState().setHyperRoute(warpRouteToAutoSelect?.routeId || hyperlaneWarpRoutes[0].routeId);
|
|
20139
20234
|
}, [hyperRoute, hyperlaneWarpRoutes]);
|
|
20140
20235
|
return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
|
|
@@ -20147,17 +20242,18 @@ var init_useHyperlaneRoutes = __esm({
|
|
|
20147
20242
|
init_useFlowSelector();
|
|
20148
20243
|
init_api4();
|
|
20149
20244
|
init_useBridgeStore();
|
|
20245
|
+
init_utils8();
|
|
20150
20246
|
HYPERLANE_WARP_ROUTES_QUERY_KEY = "hyperlane-available-warp-routes";
|
|
20151
20247
|
}
|
|
20152
20248
|
});
|
|
20153
20249
|
|
|
20154
20250
|
// src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts
|
|
20155
|
-
import { useEffect as
|
|
20251
|
+
import { useEffect as useEffect37 } from "react";
|
|
20156
20252
|
function useMenuTitle(warpRoutes) {
|
|
20157
20253
|
const { t } = useT();
|
|
20158
20254
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
20159
|
-
const hyperRouteMeta = useBridgeStore((st) => warpRoutes.find((route) => route.routeId === st.hyperRoute));
|
|
20160
|
-
|
|
20255
|
+
const hyperRouteMeta = useBridgeStore((st) => (warpRoutes || []).find((route) => route.routeId === st.hyperRoute));
|
|
20256
|
+
useEffect37(() => {
|
|
20161
20257
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
20162
20258
|
switch (true) {
|
|
20163
20259
|
case bridgeStep === "sender-selector":
|
|
@@ -20281,14 +20377,14 @@ var init_wallets = __esm({
|
|
|
20281
20377
|
});
|
|
20282
20378
|
|
|
20283
20379
|
// src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts
|
|
20284
|
-
import { useEffect as
|
|
20380
|
+
import { useEffect as useEffect38, useRef as useRef18 } from "react";
|
|
20285
20381
|
function useAvailableSenders() {
|
|
20286
20382
|
const address = useSession((st) => st.address);
|
|
20287
20383
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
20288
20384
|
const { profiles } = useLinkedProfiles();
|
|
20289
20385
|
const walletProfiles = profiles.filter((p) => p.provider === "wallet");
|
|
20290
|
-
const lastCalcedSenders =
|
|
20291
|
-
|
|
20386
|
+
const lastCalcedSenders = useRef18([]);
|
|
20387
|
+
useEffect38(() => {
|
|
20292
20388
|
const sendersAccumulator = [
|
|
20293
20389
|
{
|
|
20294
20390
|
type: "embarkai-wallet",
|
|
@@ -20328,33 +20424,18 @@ var init_useAvailableSenders = __esm({
|
|
|
20328
20424
|
}
|
|
20329
20425
|
});
|
|
20330
20426
|
|
|
20331
|
-
// src/internal/components/SendMenu/hyperbridge/utils.ts
|
|
20332
|
-
import { formatUnits as formatUnits6 } from "viem";
|
|
20333
|
-
function isNftAsset2(asset) {
|
|
20334
|
-
if (!asset) return false;
|
|
20335
|
-
return asset.type === "erc721" || asset.type === "erc1155";
|
|
20336
|
-
}
|
|
20337
|
-
function getAssetBalance(asset) {
|
|
20338
|
-
if (!asset) return 0;
|
|
20339
|
-
if (isNftAsset2(asset)) return 1;
|
|
20340
|
-
return Number(formatUnits6(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
20341
|
-
}
|
|
20342
|
-
var init_utils8 = __esm({
|
|
20343
|
-
"src/internal/components/SendMenu/hyperbridge/utils.ts"() {
|
|
20344
|
-
}
|
|
20345
|
-
});
|
|
20346
|
-
|
|
20347
20427
|
// src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts
|
|
20348
20428
|
import { useQuery as useQuery22, useQueryClient as useQueryClient24 } from "@tanstack/react-query";
|
|
20349
|
-
import { useEffect as
|
|
20429
|
+
import { useCallback as useCallback23, useEffect as useEffect39 } from "react";
|
|
20350
20430
|
import { createPublicClient as createPublicClient2, erc20Abi as erc20Abi2, formatUnits as formatUnits7, http as http3 } from "viem";
|
|
20351
|
-
import { useSwitchChain } from "wagmi";
|
|
20431
|
+
import { useBalance, useSwitchChain as useSwitchChain2 } from "wagmi";
|
|
20352
20432
|
function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
20353
20433
|
const qc = useQueryClient24();
|
|
20434
|
+
const { t } = useT();
|
|
20354
20435
|
const address = useSession((st) => st.address);
|
|
20355
20436
|
const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
20356
20437
|
const directWalletChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
20357
|
-
const { switchChainAsync } =
|
|
20438
|
+
const { switchChainAsync } = useSwitchChain2();
|
|
20358
20439
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
20359
20440
|
const bridgeSender = useBridgeStore((st) => st.bridgeSender);
|
|
20360
20441
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
@@ -20370,22 +20451,20 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20370
20451
|
refreshBalances,
|
|
20371
20452
|
isLoading: isAssetsLoading
|
|
20372
20453
|
} = useBlockscoutAssets({
|
|
20373
|
-
enabled:
|
|
20454
|
+
enabled: bridgeSender === "embarkai-wallet" && !!selectedWarpRoute && !!address && !!originChain,
|
|
20374
20455
|
address
|
|
20375
20456
|
});
|
|
20457
|
+
const embarkTokenBalanace = assets.find((a) => a.symbol === selectedWarpRoute?.symbol);
|
|
20458
|
+
const originChainMeta = CHAINS_UI_META[originChain];
|
|
20459
|
+
const isSelectedTokenNative = selectedWarpRoute?.symbol?.toUpperCase() === originChainMeta.nativeCurrency.toUpperCase();
|
|
20376
20460
|
const { data: externalBalanceData, isLoading: isExternalBalanceLoading } = useQuery22({
|
|
20461
|
+
enabled: bridgeSender === "direct-wallet" && !isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain,
|
|
20377
20462
|
retry: false,
|
|
20378
|
-
enabled: !isEmbarkSender && !!directWalletAddress && !!routeTokenAddress && !!originChain,
|
|
20379
20463
|
queryKey: [EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, originChain, directWalletAddress, routeTokenAddress],
|
|
20380
20464
|
queryFn: async () => {
|
|
20381
20465
|
const client = createPublicClient2({
|
|
20382
|
-
chain:
|
|
20383
|
-
transport: http3(
|
|
20384
|
-
});
|
|
20385
|
-
console.warn("[BRIDGE BALANCE] Fetching external wallet:", {
|
|
20386
|
-
originChain,
|
|
20387
|
-
directWalletAddress,
|
|
20388
|
-
routeTokenAddress
|
|
20466
|
+
chain: originChainMeta.chain,
|
|
20467
|
+
transport: http3(originChainMeta.chain.rpcUrls.default.http[0])
|
|
20389
20468
|
});
|
|
20390
20469
|
const [value, decimals, symbol] = await Promise.all([
|
|
20391
20470
|
client.readContract({
|
|
@@ -20408,65 +20487,81 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20408
20487
|
authorizationList: void 0
|
|
20409
20488
|
})
|
|
20410
20489
|
]).catch((err) => {
|
|
20411
|
-
|
|
20412
|
-
|
|
20413
|
-
|
|
20414
|
-
|
|
20415
|
-
|
|
20490
|
+
console.error("[BRIDGE BALANCE] Failed to fetch external wallet balance:", {
|
|
20491
|
+
directWalletAddress,
|
|
20492
|
+
routeTokenAddress,
|
|
20493
|
+
originChain,
|
|
20494
|
+
error: err
|
|
20495
|
+
});
|
|
20416
20496
|
return [BigInt(0), 18, selectedWarpRoute.symbol];
|
|
20417
20497
|
});
|
|
20418
20498
|
const formatted = Number(formatUnits7(value, decimals));
|
|
20419
|
-
console.log("[BRIDGE BALANCE] Fetched external wallet balance:", formatted);
|
|
20420
20499
|
return { value, decimals, symbol, formatted };
|
|
20421
20500
|
}
|
|
20422
20501
|
});
|
|
20423
|
-
const
|
|
20424
|
-
|
|
20425
|
-
|
|
20426
|
-
|
|
20427
|
-
|
|
20428
|
-
|
|
20429
|
-
|
|
20430
|
-
|
|
20431
|
-
|
|
20432
|
-
|
|
20433
|
-
|
|
20434
|
-
|
|
20435
|
-
|
|
20436
|
-
|
|
20437
|
-
|
|
20438
|
-
|
|
20439
|
-
|
|
20440
|
-
|
|
20441
|
-
"[BRIDGE BALANCE] External wallet on wrong chain:",
|
|
20442
|
-
directWalletChainId,
|
|
20443
|
-
"\nswitching to:",
|
|
20444
|
-
CHAINS_UI_META[originChain].chainID
|
|
20445
|
-
);
|
|
20446
|
-
switchChainAsync({ chainId: CHAINS_UI_META[originChain].chainID }).then(() => {
|
|
20447
|
-
console.log(
|
|
20448
|
-
"[BRIDGE BALANCE] Successfully switched to the correct network:",
|
|
20449
|
-
CHAINS_UI_META[originChain].chainLabel
|
|
20450
|
-
);
|
|
20502
|
+
const {
|
|
20503
|
+
data: externalNativeBalanceData,
|
|
20504
|
+
refetch: refetchExternalNativeBalance,
|
|
20505
|
+
isLoading: isExternalNativeBalanceLoading
|
|
20506
|
+
} = useBalance({
|
|
20507
|
+
address: directWalletAddress,
|
|
20508
|
+
chainId: directWalletChainId,
|
|
20509
|
+
query: {
|
|
20510
|
+
enabled: bridgeSender === "direct-wallet" && isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain
|
|
20511
|
+
}
|
|
20512
|
+
});
|
|
20513
|
+
const refreshRouteTokenBalance = useCallback23(
|
|
20514
|
+
(senderWallet) => {
|
|
20515
|
+
switch (true) {
|
|
20516
|
+
case senderWallet === "embarkai-wallet":
|
|
20517
|
+
refreshBalances();
|
|
20518
|
+
break;
|
|
20519
|
+
case (senderWallet === "direct-wallet" && !isSelectedTokenNative):
|
|
20451
20520
|
qc.invalidateQueries({ queryKey: [EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY] });
|
|
20452
|
-
|
|
20521
|
+
break;
|
|
20522
|
+
case (senderWallet === "direct-wallet" && !!isSelectedTokenNative):
|
|
20523
|
+
refetchExternalNativeBalance();
|
|
20524
|
+
break;
|
|
20525
|
+
}
|
|
20526
|
+
},
|
|
20527
|
+
[refreshBalances, qc, refetchExternalNativeBalance]
|
|
20528
|
+
);
|
|
20529
|
+
useEffect39(() => {
|
|
20530
|
+
if (!bridgeSender || !originChain) return;
|
|
20531
|
+
switch (bridgeSender) {
|
|
20532
|
+
case "embarkai-wallet":
|
|
20533
|
+
if (!isOririnChainEmbarkSupported(originChain)) {
|
|
20453
20534
|
useFlowSelectorStore.getState().setError(
|
|
20454
|
-
|
|
20455
|
-
|
|
20535
|
+
//@ts-expect-error i18n key typings
|
|
20536
|
+
t("passport:bridgeMenu.errors.unsupportedNetwork", {
|
|
20537
|
+
originChain: CHAINS_UI_META[originChain].chainLabel,
|
|
20538
|
+
sender: bridgeSender.toUpperCase()
|
|
20539
|
+
})
|
|
20456
20540
|
);
|
|
20457
|
-
}
|
|
20458
|
-
|
|
20459
|
-
|
|
20460
|
-
|
|
20541
|
+
} else {
|
|
20542
|
+
refreshRouteTokenBalance(bridgeSender);
|
|
20543
|
+
}
|
|
20544
|
+
break;
|
|
20545
|
+
case "direct-wallet":
|
|
20546
|
+
if (!directWalletChainId) break;
|
|
20547
|
+
if (directWalletChainId !== CHAINS_UI_META[originChain].chainID) {
|
|
20548
|
+
switchChainAsync({ chainId: CHAINS_UI_META[originChain].chainID }).then(() => refreshRouteTokenBalance(bridgeSender)).catch((err) => console.error("[BRIDGE BALANCE] Failed to switch to the correct network", err?.message));
|
|
20549
|
+
}
|
|
20550
|
+
break;
|
|
20551
|
+
}
|
|
20552
|
+
}, [bridgeSender, originChain, directWalletChainId, switchChainAsync]);
|
|
20553
|
+
const embarkBalance = embarkTokenBalanace ? getAssetBalance(embarkTokenBalanace) : 0;
|
|
20554
|
+
const externalWalletBalance = isSelectedTokenNative ? formatUnits7(externalNativeBalanceData?.value || BigInt(0), externalNativeBalanceData?.decimals || 18) : formatUnits7(externalBalanceData?.value || BigInt(0), externalBalanceData?.decimals || 18);
|
|
20461
20555
|
return {
|
|
20462
20556
|
routeTokenBalance: isEmbarkSender ? embarkBalance : externalWalletBalance,
|
|
20463
|
-
isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading
|
|
20557
|
+
isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
|
|
20464
20558
|
};
|
|
20465
20559
|
}
|
|
20466
20560
|
var EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY;
|
|
20467
20561
|
var init_useBridgeBalance = __esm({
|
|
20468
20562
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
|
|
20469
20563
|
init_SessionContext();
|
|
20564
|
+
init_i18n();
|
|
20470
20565
|
init_useBlockscoutAssets();
|
|
20471
20566
|
init_useExternalWalletStore();
|
|
20472
20567
|
init_useFlowSelector();
|
|
@@ -20482,9 +20577,8 @@ import { ArrowLeftRightIcon as ArrowLeftRightIcon2, ArrowRightLeftIcon, LoaderIc
|
|
|
20482
20577
|
import { Fragment as Fragment37 } from "react";
|
|
20483
20578
|
import { Fragment as Fragment38, jsx as jsx95, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
20484
20579
|
function SelectStep(props) {
|
|
20485
|
-
const { swapChains, hyperlaneWarpRoutes, isLoadingWarpRoutes } = props;
|
|
20580
|
+
const { swapChains, hyperlaneWarpRoutes, isLoadingWarpRoutes, handleQuoteEstimation } = props;
|
|
20486
20581
|
const { t } = useT();
|
|
20487
|
-
const currentChainId = useSession((st) => st.activeChainId);
|
|
20488
20582
|
const {
|
|
20489
20583
|
originChain,
|
|
20490
20584
|
destinationChain,
|
|
@@ -20492,7 +20586,6 @@ function SelectStep(props) {
|
|
|
20492
20586
|
amount,
|
|
20493
20587
|
bridgeSenders,
|
|
20494
20588
|
isQuoteEstimating,
|
|
20495
|
-
quote,
|
|
20496
20589
|
recipient,
|
|
20497
20590
|
setBridgeStep,
|
|
20498
20591
|
setAmount,
|
|
@@ -20558,7 +20651,7 @@ function SelectStep(props) {
|
|
|
20558
20651
|
": "
|
|
20559
20652
|
] }),
|
|
20560
20653
|
!isRouteTokenBalanceLoading && /* @__PURE__ */ jsxs87("span", { className: "font-semibold", children: [
|
|
20561
|
-
formatPrice(routeTokenBalance || 0),
|
|
20654
|
+
formatPrice(Number(routeTokenBalance || 0)),
|
|
20562
20655
|
" ",
|
|
20563
20656
|
selectedWarpRoute?.symbol
|
|
20564
20657
|
] })
|
|
@@ -20699,74 +20792,17 @@ function SelectStep(props) {
|
|
|
20699
20792
|
}
|
|
20700
20793
|
)
|
|
20701
20794
|
] }),
|
|
20702
|
-
quote && /* @__PURE__ */ jsxs87(
|
|
20703
|
-
Highlight,
|
|
20704
|
-
{
|
|
20705
|
-
type: "info",
|
|
20706
|
-
className: cn("flex flex-col gap-[var(--ui-kit-gap)] w-full", {
|
|
20707
|
-
"opacity-50": isQuoteEstimating
|
|
20708
|
-
}),
|
|
20709
|
-
children: [
|
|
20710
|
-
/* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20711
|
-
/* @__PURE__ */ jsx95("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
20712
|
-
/* @__PURE__ */ jsx95("strong", { children: formatPrice(Number(quote.amount)) })
|
|
20713
|
-
] }),
|
|
20714
|
-
/* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20715
|
-
/* @__PURE__ */ jsx95("span", { children: t("passport:bridgeMenu.quote.igpFee") }),
|
|
20716
|
-
/* @__PURE__ */ jsxs87("strong", { children: [
|
|
20717
|
-
/* @__PURE__ */ jsx95("span", { children: formatPrice(Number(quote.igpFee)) }),
|
|
20718
|
-
/* @__PURE__ */ jsxs87("span", { children: [
|
|
20719
|
-
" ",
|
|
20720
|
-
quote.igpSymbol
|
|
20721
|
-
] })
|
|
20722
|
-
] })
|
|
20723
|
-
] }),
|
|
20724
|
-
/* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20725
|
-
/* @__PURE__ */ jsx95("span", { children: t("passport:bridgeMenu.quote.localFee") }),
|
|
20726
|
-
/* @__PURE__ */ jsxs87("strong", { children: [
|
|
20727
|
-
/* @__PURE__ */ jsx95("span", { children: formatPrice(Number(quote.localFee)) }),
|
|
20728
|
-
/* @__PURE__ */ jsxs87("span", { children: [
|
|
20729
|
-
" ",
|
|
20730
|
-
quote.localSymbol
|
|
20731
|
-
] })
|
|
20732
|
-
] })
|
|
20733
|
-
] }),
|
|
20734
|
-
quote.tokenFee && /* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20735
|
-
/* @__PURE__ */ jsx95("span", { children: t("passport:bridgeMenu.quote.tokenFee") }),
|
|
20736
|
-
/* @__PURE__ */ jsx95("strong", { children: formatPrice(Number(quote.tokenFee)) })
|
|
20737
|
-
] })
|
|
20738
|
-
]
|
|
20739
|
-
}
|
|
20740
|
-
),
|
|
20741
20795
|
!isError && /* @__PURE__ */ jsxs87(
|
|
20742
20796
|
Button,
|
|
20743
20797
|
{
|
|
20744
20798
|
size: "large",
|
|
20745
20799
|
variant: "default",
|
|
20746
20800
|
className: "w-full",
|
|
20747
|
-
|
|
20748
|
-
|
|
20749
|
-
const originChainId = CHAINS_UI_META[originChain].chainID;
|
|
20750
|
-
if (selectedSender.type === "embarkai-wallet" && currentChainId !== originChainId) {
|
|
20751
|
-
useFlowSelectorStore.getState().setError(`Please switch embarkAi chain to ${CHAINS_UI_META[originChain].chainLabel}.`);
|
|
20752
|
-
return;
|
|
20753
|
-
}
|
|
20754
|
-
useBridgeStore.getState().setBridgeStep("confirm");
|
|
20755
|
-
},
|
|
20801
|
+
onClick: () => handleQuoteEstimation(amount),
|
|
20802
|
+
disabled: isQuoteEstimating || !selectedSender || !amount || !Number(amount) || !originChain || !destinationChain || !hyperRoute,
|
|
20756
20803
|
children: [
|
|
20757
20804
|
isQuoteEstimating && /* @__PURE__ */ jsx95(LoaderIcon10, { className: "h-4 w-4 animate-spin" }),
|
|
20758
|
-
/* @__PURE__ */ jsx95("span", { children: t(
|
|
20759
|
-
(() => {
|
|
20760
|
-
switch (true) {
|
|
20761
|
-
// case isWalletChainConnecting:
|
|
20762
|
-
// return 'passport:bridgeMenu.statuses.switchingWalletChain'
|
|
20763
|
-
case isQuoteEstimating:
|
|
20764
|
-
return "passport:bridgeMenu.statuses.qouteEstimating";
|
|
20765
|
-
default:
|
|
20766
|
-
return "passport:bridgeMenu.actions.confirmBridge";
|
|
20767
|
-
}
|
|
20768
|
-
})()
|
|
20769
|
-
).toUpperCase() })
|
|
20805
|
+
/* @__PURE__ */ jsx95("span", { children: t("passport:bridgeMenu.actions.estimateQuote") })
|
|
20770
20806
|
]
|
|
20771
20807
|
}
|
|
20772
20808
|
)
|
|
@@ -20775,13 +20811,11 @@ function SelectStep(props) {
|
|
|
20775
20811
|
var init_SelectStep = __esm({
|
|
20776
20812
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx"() {
|
|
20777
20813
|
init_tokens();
|
|
20778
|
-
init_SessionContext();
|
|
20779
20814
|
init_i18n();
|
|
20780
20815
|
init_priceFormatter();
|
|
20781
20816
|
init_utils2();
|
|
20782
20817
|
init_badge();
|
|
20783
20818
|
init_button();
|
|
20784
|
-
init_highlight();
|
|
20785
20819
|
init_input();
|
|
20786
20820
|
init_useFlowSelector();
|
|
20787
20821
|
init_ResolveChainIcon();
|
|
@@ -20792,46 +20826,84 @@ var init_SelectStep = __esm({
|
|
|
20792
20826
|
}
|
|
20793
20827
|
});
|
|
20794
20828
|
|
|
20829
|
+
// src/internal/components/ui/checkbox.tsx
|
|
20830
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
20831
|
+
import { CheckIcon as CheckIcon2 } from "lucide-react";
|
|
20832
|
+
import { jsx as jsx96 } from "react/jsx-runtime";
|
|
20833
|
+
function Checkbox({ className, ...props }) {
|
|
20834
|
+
return /* @__PURE__ */ jsx96(
|
|
20835
|
+
CheckboxPrimitive.Root,
|
|
20836
|
+
{
|
|
20837
|
+
"data-slot": "checkbox",
|
|
20838
|
+
className: cn(
|
|
20839
|
+
"cursor-pointer peer size-8 shrink-0 rounded-[var(--ui-kit-el-bdrs)] outline-none",
|
|
20840
|
+
"border border-[var(--ui-kit-bd)] data-[state=checked]:border-[var(--ui-kit-bd-intense)] aria-invalid:border-[var(--ui-kit-error)]",
|
|
20841
|
+
"bg-[var(--ui-kit-secondary)] data-[state=checked]:bg-[var(--ui-kit-secondary)]",
|
|
20842
|
+
"data-[state=checked]:text-[var(--ui-kit-fg)]",
|
|
20843
|
+
"aria-invalid:ring-[var(--ui-kit-error)]",
|
|
20844
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[2px]",
|
|
20845
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
20846
|
+
className
|
|
20847
|
+
),
|
|
20848
|
+
...props,
|
|
20849
|
+
children: /* @__PURE__ */ jsx96(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "grid place-content-center transition-none", children: /* @__PURE__ */ jsx96(CheckIcon2, { className: "w-4 h-4 text-[var(--ui-kit-fg)]" }) })
|
|
20850
|
+
}
|
|
20851
|
+
);
|
|
20852
|
+
}
|
|
20853
|
+
var init_checkbox = __esm({
|
|
20854
|
+
"src/internal/components/ui/checkbox.tsx"() {
|
|
20855
|
+
init_utils2();
|
|
20856
|
+
}
|
|
20857
|
+
});
|
|
20858
|
+
|
|
20795
20859
|
// src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
|
|
20796
20860
|
import { LoaderIcon as LoaderIcon11 } from "lucide-react";
|
|
20797
|
-
import {
|
|
20861
|
+
import { useState as useState27 } from "react";
|
|
20862
|
+
import { jsx as jsx97, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
20798
20863
|
function ConfirmStep(props) {
|
|
20799
|
-
const { isAssetBridging, bridgeAsset } = props;
|
|
20864
|
+
const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
|
|
20865
|
+
const [userConsent, setUserConsent] = useState27(false);
|
|
20800
20866
|
const { t } = useT();
|
|
20801
20867
|
const address = useSession((st) => st.address);
|
|
20802
|
-
const isError = useFlowSelectorStore((st) => !!st.error);
|
|
20803
20868
|
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
20869
|
+
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
20804
20870
|
const quote = useBridgeStore((st) => st.quote);
|
|
20805
20871
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
20806
20872
|
const destinationChain = useBridgeStore((st) => st.destinationChain);
|
|
20807
20873
|
const recipient = useBridgeStore((st) => st.recipient);
|
|
20808
20874
|
const bridgeTxStatus = useBridgeStore((st) => st.bridgeTxStatus);
|
|
20809
|
-
|
|
20875
|
+
const isError = useFlowSelectorStore((st) => !!st.error);
|
|
20876
|
+
const selectedWarpRoute = hyperlaneWarpRoutes.find((route) => {
|
|
20877
|
+
const { routeId, chainPair } = route;
|
|
20878
|
+
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
20879
|
+
return routeId === hyperRoute && chainPairNames.includes(originChain) && chainPairNames.includes(destinationChain);
|
|
20880
|
+
});
|
|
20881
|
+
return /* @__PURE__ */ jsxs88("div", { className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20810
20882
|
/* @__PURE__ */ jsxs88(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20811
20883
|
/* @__PURE__ */ jsxs88("p", { className: P_CN, children: [
|
|
20812
|
-
/* @__PURE__ */
|
|
20813
|
-
/* @__PURE__ */
|
|
20884
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:common.asset") }),
|
|
20885
|
+
/* @__PURE__ */ jsx97("strong", { children: selectedWarpRoute.symbol })
|
|
20814
20886
|
] }),
|
|
20815
20887
|
/* @__PURE__ */ jsxs88("p", { className: P_CN, children: [
|
|
20816
|
-
/* @__PURE__ */
|
|
20817
|
-
/* @__PURE__ */
|
|
20888
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
20889
|
+
/* @__PURE__ */ jsx97("strong", { children: bridgeSender.name + " (" + (bridgeSender?.address || "").slice(0, 6) + "..." + (bridgeSender?.address || "").slice(-4) + ")" })
|
|
20818
20890
|
] }),
|
|
20819
20891
|
/* @__PURE__ */ jsxs88("p", { className: P_CN, children: [
|
|
20820
|
-
/* @__PURE__ */
|
|
20821
|
-
/* @__PURE__ */
|
|
20892
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
20893
|
+
/* @__PURE__ */ jsx97("strong", { children: CHAINS_UI_META[originChain].chainLabel })
|
|
20822
20894
|
] }),
|
|
20823
20895
|
/* @__PURE__ */ jsxs88("p", { className: P_CN, children: [
|
|
20824
|
-
/* @__PURE__ */
|
|
20825
|
-
/* @__PURE__ */
|
|
20896
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
20897
|
+
/* @__PURE__ */ jsx97("strong", { children: CHAINS_UI_META[destinationChain].chainLabel })
|
|
20826
20898
|
] }),
|
|
20827
20899
|
/* @__PURE__ */ jsxs88("p", { className: P_CN, children: [
|
|
20828
|
-
/* @__PURE__ */
|
|
20829
|
-
/* @__PURE__ */
|
|
20900
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
20901
|
+
/* @__PURE__ */ jsx97("strong", { children: formatPrice(Number(quote.amount)) })
|
|
20830
20902
|
] }),
|
|
20831
20903
|
/* @__PURE__ */ jsxs88("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20832
|
-
/* @__PURE__ */
|
|
20904
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.igpFee") }),
|
|
20833
20905
|
/* @__PURE__ */ jsxs88("strong", { children: [
|
|
20834
|
-
/* @__PURE__ */
|
|
20906
|
+
/* @__PURE__ */ jsx97("span", { children: formatPrice(Number(quote.igpFee)) }),
|
|
20835
20907
|
/* @__PURE__ */ jsxs88("span", { children: [
|
|
20836
20908
|
" ",
|
|
20837
20909
|
quote.igpSymbol
|
|
@@ -20839,9 +20911,9 @@ function ConfirmStep(props) {
|
|
|
20839
20911
|
] })
|
|
20840
20912
|
] }),
|
|
20841
20913
|
/* @__PURE__ */ jsxs88("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20842
|
-
/* @__PURE__ */
|
|
20914
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.localFee") }),
|
|
20843
20915
|
/* @__PURE__ */ jsxs88("strong", { children: [
|
|
20844
|
-
/* @__PURE__ */
|
|
20916
|
+
/* @__PURE__ */ jsx97("span", { children: formatPrice(Number(quote.localFee)) }),
|
|
20845
20917
|
/* @__PURE__ */ jsxs88("span", { children: [
|
|
20846
20918
|
" ",
|
|
20847
20919
|
quote.localSymbol
|
|
@@ -20849,8 +20921,37 @@ function ConfirmStep(props) {
|
|
|
20849
20921
|
] })
|
|
20850
20922
|
] }),
|
|
20851
20923
|
quote.tokenFee && /* @__PURE__ */ jsxs88("p", { className: P_CN, children: [
|
|
20852
|
-
/* @__PURE__ */
|
|
20853
|
-
/* @__PURE__ */
|
|
20924
|
+
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.tokenFee") }),
|
|
20925
|
+
/* @__PURE__ */ jsx97("strong", { children: formatPrice(Number(quote.tokenFee)) })
|
|
20926
|
+
] })
|
|
20927
|
+
] }),
|
|
20928
|
+
/* @__PURE__ */ jsxs88(Highlight, { type: "warning", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20929
|
+
/* @__PURE__ */ jsx97("strong", { className: "text-xs", children: t("passport:bridgeMenu.quote.recipient") }),
|
|
20930
|
+
/* @__PURE__ */ jsx97(
|
|
20931
|
+
"span",
|
|
20932
|
+
{
|
|
20933
|
+
className: cn(
|
|
20934
|
+
"w-full flex items-center justify-center h-8",
|
|
20935
|
+
"px-[var(--ui-kit-pd)]",
|
|
20936
|
+
"bg-[var(--ui-kit-bg)] text-[var(--ui-kit-fg)]",
|
|
20937
|
+
"rounded-[var(--ui-kit-el-bdrs)]"
|
|
20938
|
+
),
|
|
20939
|
+
children: (recipient || address).slice(0, 10) + "..." + (recipient || address).slice(-8)
|
|
20940
|
+
}
|
|
20941
|
+
),
|
|
20942
|
+
/* @__PURE__ */ jsx97("strong", { className: "text-xs", children: t("passport:bridgeMenu.consent.recipient", {
|
|
20943
|
+
address: (recipient || address).slice(0, 6) + "..." + (recipient || address).slice(-4),
|
|
20944
|
+
destinationChain: CHAINS_UI_META[destinationChain].chainLabel,
|
|
20945
|
+
asset: selectedWarpRoute.symbol
|
|
20946
|
+
}) }),
|
|
20947
|
+
/* @__PURE__ */ jsx97("strong", { className: "text-xs text-[var(--ui-kit-bg-error)]", children: t("passport:bridgeMenu.consent.lostFunds") }),
|
|
20948
|
+
/* @__PURE__ */ jsxs88("label", { className: "flex items-center gap-[var(--ui-kit-gap)] text-xs cursor-pointer", children: [
|
|
20949
|
+
/* @__PURE__ */ jsx97(Checkbox, { checked: userConsent, onCheckedChange: () => setUserConsent((prev) => !prev) }),
|
|
20950
|
+
/* @__PURE__ */ jsx97("strong", { children: t("passport:bridgeMenu.actions.confirmBridge", {
|
|
20951
|
+
amount: quote.amount,
|
|
20952
|
+
asset: selectedWarpRoute.symbol,
|
|
20953
|
+
destinationChain: CHAINS_UI_META[destinationChain].chainLabel
|
|
20954
|
+
}) })
|
|
20854
20955
|
] })
|
|
20855
20956
|
] }),
|
|
20856
20957
|
!isError && /* @__PURE__ */ jsxs88(
|
|
@@ -20858,12 +20959,12 @@ function ConfirmStep(props) {
|
|
|
20858
20959
|
{
|
|
20859
20960
|
size: "large",
|
|
20860
20961
|
variant: "default",
|
|
20861
|
-
disabled: isAssetBridging,
|
|
20962
|
+
disabled: !quote || isAssetBridging || !userConsent,
|
|
20862
20963
|
onClick: () => bridgeAsset(),
|
|
20863
20964
|
className: "w-full",
|
|
20864
20965
|
children: [
|
|
20865
|
-
isAssetBridging && /* @__PURE__ */
|
|
20866
|
-
|
|
20966
|
+
isAssetBridging && /* @__PURE__ */ jsx97(LoaderIcon11, { className: "h-4 w-4 animate-spin" }),
|
|
20967
|
+
/* @__PURE__ */ jsx97("span", { children: (bridgeTxStatus || t("passport:common.continue")).toUpperCase() })
|
|
20867
20968
|
]
|
|
20868
20969
|
}
|
|
20869
20970
|
)
|
|
@@ -20875,7 +20976,9 @@ var init_ConfirmStep = __esm({
|
|
|
20875
20976
|
init_SessionContext();
|
|
20876
20977
|
init_i18n();
|
|
20877
20978
|
init_priceFormatter();
|
|
20979
|
+
init_utils2();
|
|
20878
20980
|
init_button();
|
|
20981
|
+
init_checkbox();
|
|
20879
20982
|
init_highlight();
|
|
20880
20983
|
init_useFlowSelector();
|
|
20881
20984
|
init_chains();
|
|
@@ -20885,7 +20988,7 @@ var init_ConfirmStep = __esm({
|
|
|
20885
20988
|
});
|
|
20886
20989
|
|
|
20887
20990
|
// src/internal/components/SendMenu/hyperbridge/steps/SuccessStep.tsx
|
|
20888
|
-
import { Fragment as
|
|
20991
|
+
import { Fragment as Fragment39, jsx as jsx98, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
20889
20992
|
function SuccessStep() {
|
|
20890
20993
|
const { t } = useT();
|
|
20891
20994
|
const address = useSession((st) => st.address);
|
|
@@ -20896,32 +20999,32 @@ function SuccessStep() {
|
|
|
20896
20999
|
const lastTxHashes = useBridgeStore((st) => st.lastTxHashes);
|
|
20897
21000
|
const bridgeTxStatus = useBridgeStore((st) => st.bridgeTxStatus);
|
|
20898
21001
|
const recipientAddress = (recipient || address).slice(0, 6) + "..." + (recipient || address).slice(-4);
|
|
20899
|
-
return /* @__PURE__ */ jsxs89(
|
|
21002
|
+
return /* @__PURE__ */ jsxs89(Fragment39, { children: [
|
|
20900
21003
|
/* @__PURE__ */ jsxs89(Highlight, { type: "success", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20901
21004
|
/* @__PURE__ */ jsxs89("p", { className: P_CN2, children: [
|
|
20902
|
-
/* @__PURE__ */
|
|
20903
|
-
/* @__PURE__ */
|
|
21005
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.status") }),
|
|
21006
|
+
/* @__PURE__ */ jsx98("strong", { children: bridgeTxStatus })
|
|
20904
21007
|
] }),
|
|
20905
21008
|
/* @__PURE__ */ jsxs89("p", { className: P_CN2, children: [
|
|
20906
|
-
/* @__PURE__ */
|
|
20907
|
-
/* @__PURE__ */
|
|
21009
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.recipient") }),
|
|
21010
|
+
/* @__PURE__ */ jsx98("strong", { children: recipientAddress })
|
|
20908
21011
|
] }),
|
|
20909
21012
|
/* @__PURE__ */ jsxs89("p", { className: P_CN2, children: [
|
|
20910
|
-
/* @__PURE__ */
|
|
20911
|
-
/* @__PURE__ */
|
|
21013
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
21014
|
+
/* @__PURE__ */ jsx98("strong", { children: CHAINS_UI_META[originChain].chainLabel })
|
|
20912
21015
|
] }),
|
|
20913
21016
|
/* @__PURE__ */ jsxs89("p", { className: P_CN2, children: [
|
|
20914
|
-
/* @__PURE__ */
|
|
20915
|
-
/* @__PURE__ */
|
|
21017
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
21018
|
+
/* @__PURE__ */ jsx98("strong", { children: CHAINS_UI_META[destinationChain].chainLabel })
|
|
20916
21019
|
] }),
|
|
20917
21020
|
/* @__PURE__ */ jsxs89("p", { className: P_CN2, children: [
|
|
20918
|
-
/* @__PURE__ */
|
|
20919
|
-
/* @__PURE__ */
|
|
21021
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
21022
|
+
/* @__PURE__ */ jsx98("strong", { children: formatPrice(Number(amount)) })
|
|
20920
21023
|
] }),
|
|
20921
|
-
/* @__PURE__ */
|
|
20922
|
-
lastTxHashes.map((hash) => /* @__PURE__ */
|
|
21024
|
+
/* @__PURE__ */ jsx98("p", { className: "mt-[var(--ui-kit-gap)]", children: t("passport:bridgeMenu.labels.bridgeTransactions") + ":" }),
|
|
21025
|
+
lastTxHashes.map((hash) => /* @__PURE__ */ jsx98("p", { className: "truncate max-w-full font-mono! text-sm", children: hash }, hash))
|
|
20923
21026
|
] }),
|
|
20924
|
-
/* @__PURE__ */
|
|
21027
|
+
/* @__PURE__ */ jsx98(
|
|
20925
21028
|
Button,
|
|
20926
21029
|
{
|
|
20927
21030
|
size: "large",
|
|
@@ -20933,7 +21036,7 @@ function SuccessStep() {
|
|
|
20933
21036
|
useBridgeStore.getState().setLastTxHashes([]);
|
|
20934
21037
|
useBridgeStore.getState().setBridgeStep("select");
|
|
20935
21038
|
},
|
|
20936
|
-
children: /* @__PURE__ */
|
|
21039
|
+
children: /* @__PURE__ */ jsx98("span", { children: `${t("passport:common.continue")}`.toUpperCase() })
|
|
20937
21040
|
}
|
|
20938
21041
|
)
|
|
20939
21042
|
] });
|
|
@@ -20957,14 +21060,14 @@ var init_SuccessStep = __esm({
|
|
|
20957
21060
|
import { useQueryClient as useQueryClient25 } from "@tanstack/react-query";
|
|
20958
21061
|
import dayjs7 from "dayjs";
|
|
20959
21062
|
import { ArrowRightIcon, ExternalLinkIcon as ExternalLinkIcon2 } from "lucide-react";
|
|
20960
|
-
import { jsx as
|
|
21063
|
+
import { jsx as jsx99, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
20961
21064
|
function HistoryDetailsStep() {
|
|
20962
21065
|
const { t } = useT();
|
|
20963
21066
|
const item = useBridgeStore((st) => st.bridgeHistoryItem);
|
|
20964
21067
|
const destinationAdress = item.recipient || item.address;
|
|
20965
21068
|
return /* @__PURE__ */ jsxs90(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20966
21069
|
/* @__PURE__ */ jsxs90("p", { className: P_CN3, children: [
|
|
20967
|
-
/* @__PURE__ */
|
|
21070
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
20968
21071
|
/* @__PURE__ */ jsxs90("strong", { children: [
|
|
20969
21072
|
item.address.slice(0, 6),
|
|
20970
21073
|
"...",
|
|
@@ -20972,7 +21075,7 @@ function HistoryDetailsStep() {
|
|
|
20972
21075
|
] })
|
|
20973
21076
|
] }),
|
|
20974
21077
|
/* @__PURE__ */ jsxs90("p", { className: P_CN3, children: [
|
|
20975
|
-
/* @__PURE__ */
|
|
21078
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.recipient") }),
|
|
20976
21079
|
/* @__PURE__ */ jsxs90("strong", { children: [
|
|
20977
21080
|
destinationAdress.slice(0, 6),
|
|
20978
21081
|
"...",
|
|
@@ -20980,21 +21083,21 @@ function HistoryDetailsStep() {
|
|
|
20980
21083
|
] })
|
|
20981
21084
|
] }),
|
|
20982
21085
|
/* @__PURE__ */ jsxs90("p", { className: P_CN3, children: [
|
|
20983
|
-
/* @__PURE__ */
|
|
20984
|
-
/* @__PURE__ */
|
|
21086
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
21087
|
+
/* @__PURE__ */ jsx99("strong", { children: CHAINS_UI_META[item.originChain].chainLabel })
|
|
20985
21088
|
] }),
|
|
20986
21089
|
/* @__PURE__ */ jsxs90("p", { className: P_CN3, children: [
|
|
20987
|
-
/* @__PURE__ */
|
|
20988
|
-
/* @__PURE__ */
|
|
21090
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
21091
|
+
/* @__PURE__ */ jsx99("strong", { children: CHAINS_UI_META[item.destinationChain].chainLabel })
|
|
20989
21092
|
] }),
|
|
20990
21093
|
/* @__PURE__ */ jsxs90("p", { className: P_CN3, children: [
|
|
20991
|
-
/* @__PURE__ */
|
|
20992
|
-
/* @__PURE__ */
|
|
21094
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
21095
|
+
/* @__PURE__ */ jsx99("strong", { children: formatPrice(Number(item.quote.amount)) })
|
|
20993
21096
|
] }),
|
|
20994
21097
|
/* @__PURE__ */ jsxs90("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20995
|
-
/* @__PURE__ */
|
|
21098
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.igpFee") }),
|
|
20996
21099
|
/* @__PURE__ */ jsxs90("strong", { children: [
|
|
20997
|
-
/* @__PURE__ */
|
|
21100
|
+
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(item.quote.igpFee)) }),
|
|
20998
21101
|
/* @__PURE__ */ jsxs90("span", { children: [
|
|
20999
21102
|
" ",
|
|
21000
21103
|
item.quote.igpSymbol
|
|
@@ -21002,9 +21105,9 @@ function HistoryDetailsStep() {
|
|
|
21002
21105
|
] })
|
|
21003
21106
|
] }),
|
|
21004
21107
|
/* @__PURE__ */ jsxs90("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
21005
|
-
/* @__PURE__ */
|
|
21108
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.localFee") }),
|
|
21006
21109
|
/* @__PURE__ */ jsxs90("strong", { children: [
|
|
21007
|
-
/* @__PURE__ */
|
|
21110
|
+
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(item.quote.localFee)) }),
|
|
21008
21111
|
/* @__PURE__ */ jsxs90("span", { children: [
|
|
21009
21112
|
" ",
|
|
21010
21113
|
item.quote.localSymbol
|
|
@@ -21012,10 +21115,10 @@ function HistoryDetailsStep() {
|
|
|
21012
21115
|
] })
|
|
21013
21116
|
] }),
|
|
21014
21117
|
item.quote.tokenFee && /* @__PURE__ */ jsxs90("p", { className: P_CN3, children: [
|
|
21015
|
-
/* @__PURE__ */
|
|
21016
|
-
/* @__PURE__ */
|
|
21118
|
+
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.tokenFee") }),
|
|
21119
|
+
/* @__PURE__ */ jsx99("strong", { children: formatPrice(Number(item.quote.tokenFee)) })
|
|
21017
21120
|
] }),
|
|
21018
|
-
item.txHashes?.map((txHash) => /* @__PURE__ */
|
|
21121
|
+
item.txHashes?.map((txHash) => /* @__PURE__ */ jsx99(
|
|
21019
21122
|
"a",
|
|
21020
21123
|
{
|
|
21021
21124
|
href: `${CHAINS_UI_META[item.originChain].explorerUrl}/tx/${txHash}`,
|
|
@@ -21023,7 +21126,7 @@ function HistoryDetailsStep() {
|
|
|
21023
21126
|
rel: "noopener noreferrer",
|
|
21024
21127
|
className: "w-full block",
|
|
21025
21128
|
children: /* @__PURE__ */ jsxs90(Badge, { variant: "outline", size: "default", className: "block flex-1 flex gap-[var(--ui-kit-gap)] justify-center", children: [
|
|
21026
|
-
/* @__PURE__ */
|
|
21129
|
+
/* @__PURE__ */ jsx99(ExternalLinkIcon2, { className: "w-4 h-4" }),
|
|
21027
21130
|
txHash ? `${txHash.slice(0, 10)}...${txHash.slice(-4)}` : "N/A"
|
|
21028
21131
|
] })
|
|
21029
21132
|
},
|
|
@@ -21031,6 +21134,34 @@ function HistoryDetailsStep() {
|
|
|
21031
21134
|
))
|
|
21032
21135
|
] });
|
|
21033
21136
|
}
|
|
21137
|
+
function resolveStatusBadgeCaptions(txStatus) {
|
|
21138
|
+
switch (txStatus) {
|
|
21139
|
+
case "PREPARE":
|
|
21140
|
+
return "INIT";
|
|
21141
|
+
case "SENDING":
|
|
21142
|
+
return "SENDING";
|
|
21143
|
+
case "SENT":
|
|
21144
|
+
return "BRIDGED";
|
|
21145
|
+
case "REJECTED":
|
|
21146
|
+
return "REJECTED";
|
|
21147
|
+
default:
|
|
21148
|
+
return "INIT";
|
|
21149
|
+
}
|
|
21150
|
+
}
|
|
21151
|
+
function resolveStatusBadgeVariant(txStatus) {
|
|
21152
|
+
switch (txStatus) {
|
|
21153
|
+
case "PREPARE":
|
|
21154
|
+
return "outline";
|
|
21155
|
+
case "SENDING":
|
|
21156
|
+
return "warning";
|
|
21157
|
+
case "SENT":
|
|
21158
|
+
return "success";
|
|
21159
|
+
case "REJECTED":
|
|
21160
|
+
return "destructive";
|
|
21161
|
+
default:
|
|
21162
|
+
return "outline";
|
|
21163
|
+
}
|
|
21164
|
+
}
|
|
21034
21165
|
function HistoryItem(props) {
|
|
21035
21166
|
const {
|
|
21036
21167
|
//
|
|
@@ -21040,7 +21171,8 @@ function HistoryItem(props) {
|
|
|
21040
21171
|
originChain,
|
|
21041
21172
|
destinationChain,
|
|
21042
21173
|
quote,
|
|
21043
|
-
updatedAt
|
|
21174
|
+
updatedAt,
|
|
21175
|
+
txStatus
|
|
21044
21176
|
} = props;
|
|
21045
21177
|
const qc = useQueryClient25();
|
|
21046
21178
|
const address = useSession((st) => st.address);
|
|
@@ -21061,56 +21193,82 @@ function HistoryItem(props) {
|
|
|
21061
21193
|
setBridgeStep("tx-history-details");
|
|
21062
21194
|
},
|
|
21063
21195
|
className: cn(
|
|
21064
|
-
"w-full
|
|
21196
|
+
"w-full cursor-pointer",
|
|
21197
|
+
// 'flex items-start',
|
|
21198
|
+
"flex flex-col gap-1",
|
|
21199
|
+
"bg-[var(--ui-kit-secondary)]",
|
|
21065
21200
|
"border border-[var(--ui-kit-bd)]",
|
|
21066
21201
|
"gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)] rounded-[var(--ui-kit-el-bdrs)]",
|
|
21067
21202
|
"hover:bg-[var(--ui-kit-secondary-h)] active:bg-[var(--ui-kit-secondary-a)]",
|
|
21068
21203
|
"transition-colors duration-200"
|
|
21069
21204
|
),
|
|
21070
21205
|
children: [
|
|
21071
|
-
/* @__PURE__ */
|
|
21072
|
-
|
|
21073
|
-
|
|
21074
|
-
/* @__PURE__ */
|
|
21075
|
-
|
|
21076
|
-
/* @__PURE__ */ jsx98("span", { children: " " }),
|
|
21077
|
-
/* @__PURE__ */ jsx98("span", { children: assetWarpRoute?.symbol || "" })
|
|
21078
|
-
] }),
|
|
21079
|
-
/* @__PURE__ */ jsx98("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: dayjs7(updatedAt).format("MMMM D, YYYY [at] HH:mm") })
|
|
21206
|
+
/* @__PURE__ */ jsxs90("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
21207
|
+
/* @__PURE__ */ jsxs90("span", { className: "font-bold text-lg leading-6 flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
21208
|
+
/* @__PURE__ */ jsx99(AssetIcon, { className: "w-6 h-6 flex-none" }),
|
|
21209
|
+
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(quote.amount)) }),
|
|
21210
|
+
/* @__PURE__ */ jsx99("span", { children: assetWarpRoute?.symbol || "" })
|
|
21080
21211
|
] }),
|
|
21081
|
-
/* @__PURE__ */
|
|
21082
|
-
|
|
21083
|
-
|
|
21084
|
-
|
|
21085
|
-
|
|
21086
|
-
|
|
21087
|
-
|
|
21088
|
-
|
|
21089
|
-
|
|
21090
|
-
|
|
21091
|
-
|
|
21092
|
-
|
|
21093
|
-
|
|
21094
|
-
|
|
21095
|
-
|
|
21096
|
-
|
|
21097
|
-
|
|
21098
|
-
|
|
21099
|
-
|
|
21100
|
-
|
|
21101
|
-
|
|
21102
|
-
|
|
21103
|
-
|
|
21104
|
-
|
|
21105
|
-
|
|
21212
|
+
/* @__PURE__ */ jsx99(Badge, { variant: resolveStatusBadgeVariant(txStatus), children: resolveStatusBadgeCaptions(txStatus) })
|
|
21213
|
+
] }),
|
|
21214
|
+
/* @__PURE__ */ jsxs90("div", { className: "w-full flex items-center gap-1 justify-center", children: [
|
|
21215
|
+
/* @__PURE__ */ jsxs90(
|
|
21216
|
+
"div",
|
|
21217
|
+
{
|
|
21218
|
+
className: cn(
|
|
21219
|
+
"max-w-[calc(50%-12px)]",
|
|
21220
|
+
"flex flex-col flex-1 items-end p-2 bg-[var(--ui-kit-bg)]",
|
|
21221
|
+
"border border-[var(--ui-kit-bd)] rounded-[var(--ui-kit-el-bdrs)]"
|
|
21222
|
+
),
|
|
21223
|
+
children: [
|
|
21224
|
+
/* @__PURE__ */ jsxs90("div", { className: "flex w-full items-center justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
|
|
21225
|
+
/* @__PURE__ */ jsx99(ResolveChainIcon, { chainName: originChain, className: "w-6 h-6 flex-none" }),
|
|
21226
|
+
/* @__PURE__ */ jsx99("span", { className: "block flex-1 text-xs truncate", children: CHAINS_UI_META[originChain]?.chainLabel || "N/A" })
|
|
21227
|
+
] }),
|
|
21228
|
+
/* @__PURE__ */ jsxs90("strong", { className: "text-[10px] leading-5", children: [
|
|
21229
|
+
fromAddress.slice(0, 6),
|
|
21230
|
+
"...",
|
|
21231
|
+
fromAddress.slice(-4)
|
|
21232
|
+
] })
|
|
21233
|
+
]
|
|
21234
|
+
}
|
|
21235
|
+
),
|
|
21236
|
+
/* @__PURE__ */ jsx99(ArrowRightIcon, { className: "w-4 h-4 flex-none" }),
|
|
21237
|
+
/* @__PURE__ */ jsxs90(
|
|
21238
|
+
"div",
|
|
21239
|
+
{
|
|
21240
|
+
className: cn(
|
|
21241
|
+
"max-w-[calc(50%-12px)]",
|
|
21242
|
+
"flex flex-col flex-1 items-start p-2 bg-[var(--ui-kit-bg)]",
|
|
21243
|
+
"border border-[var(--ui-kit-bd)] rounded-[var(--ui-kit-el-bdrs)]"
|
|
21244
|
+
),
|
|
21245
|
+
children: [
|
|
21246
|
+
/* @__PURE__ */ jsxs90("div", { className: "flex w-full items-center justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
|
|
21247
|
+
/* @__PURE__ */ jsx99("span", { className: "block flex-1 text-xs truncate", children: CHAINS_UI_META[destinationChain]?.chainLabel || "N/A" }),
|
|
21248
|
+
/* @__PURE__ */ jsx99(ResolveChainIcon, { chainName: destinationChain, className: "w-6 h-6 flex-none" })
|
|
21249
|
+
] }),
|
|
21250
|
+
/* @__PURE__ */ jsxs90("strong", { className: "text-[10px] leading-5", children: [
|
|
21251
|
+
destinationAdress.slice(0, 6),
|
|
21252
|
+
"...",
|
|
21253
|
+
destinationAdress.slice(-4)
|
|
21254
|
+
] })
|
|
21255
|
+
]
|
|
21256
|
+
}
|
|
21257
|
+
)
|
|
21258
|
+
] }),
|
|
21259
|
+
/* @__PURE__ */ jsx99("span", { className: "block w-full text-[10px] text-[var(--ui-kit-fg-muted)]", children: dayjs7(updatedAt).format("MMMM D, YYYY [at] HH:mm") })
|
|
21106
21260
|
]
|
|
21107
21261
|
}
|
|
21108
21262
|
);
|
|
21109
21263
|
}
|
|
21110
21264
|
function HistoryStep(props) {
|
|
21111
21265
|
const { historyQuery } = props;
|
|
21266
|
+
const { t } = useT();
|
|
21112
21267
|
const { data: historyItems = [] } = historyQuery?.data || {};
|
|
21113
|
-
|
|
21268
|
+
if (!historyItems || historyItems.length === 0) {
|
|
21269
|
+
return /* @__PURE__ */ jsx99(Highlight, { type: "info", className: "w-full text-center text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.errors.noHistory") });
|
|
21270
|
+
}
|
|
21271
|
+
return /* @__PURE__ */ jsx99("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: historyItems.map((item) => /* @__PURE__ */ jsx99(HistoryItem, { ...item }, item.id)) });
|
|
21114
21272
|
}
|
|
21115
21273
|
var P_CN3;
|
|
21116
21274
|
var init_HistoryStep = __esm({
|
|
@@ -21141,36 +21299,44 @@ var init_steps = __esm({
|
|
|
21141
21299
|
});
|
|
21142
21300
|
|
|
21143
21301
|
// src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx
|
|
21144
|
-
import { useEffect as
|
|
21145
|
-
import { Fragment as
|
|
21302
|
+
import { useEffect as useEffect40 } from "react";
|
|
21303
|
+
import { Fragment as Fragment40, jsx as jsx100, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
21146
21304
|
function HyperlaneBridge() {
|
|
21147
21305
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
21148
|
-
const { swapDirection, bridgeAsset, isAssetBridging } = useBridge();
|
|
21306
|
+
const { swapDirection, handleQuoteEstimation, bridgeAsset, isAssetBridging } = useBridge();
|
|
21149
21307
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
21150
|
-
const {
|
|
21308
|
+
const { setCurrentPage, ...historyQuery } = useHyperlaneHistory();
|
|
21151
21309
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
21152
|
-
|
|
21310
|
+
useEffect40(
|
|
21153
21311
|
() => () => {
|
|
21154
21312
|
useBridgeStore.getState().resetSelections();
|
|
21155
21313
|
setCurrentPage(1);
|
|
21156
21314
|
},
|
|
21157
21315
|
[]
|
|
21158
21316
|
);
|
|
21159
|
-
return /* @__PURE__ */ jsxs91(
|
|
21160
|
-
bridgeStep === "sender-selector" && /* @__PURE__ */
|
|
21161
|
-
bridgeStep === "select" && /* @__PURE__ */
|
|
21317
|
+
return /* @__PURE__ */ jsxs91(Fragment40, { children: [
|
|
21318
|
+
bridgeStep === "sender-selector" && /* @__PURE__ */ jsx100(SenderSelector, {}),
|
|
21319
|
+
bridgeStep === "select" && /* @__PURE__ */ jsx100(
|
|
21162
21320
|
SelectStep,
|
|
21163
21321
|
{
|
|
21164
21322
|
isLoadingWarpRoutes,
|
|
21165
21323
|
hyperlaneWarpRoutes,
|
|
21166
|
-
swapChains: swapDirection
|
|
21324
|
+
swapChains: swapDirection,
|
|
21325
|
+
handleQuoteEstimation
|
|
21167
21326
|
}
|
|
21168
21327
|
),
|
|
21169
|
-
bridgeStep === "select-token" && /* @__PURE__ */
|
|
21170
|
-
bridgeStep === "confirm" && /* @__PURE__ */
|
|
21171
|
-
|
|
21172
|
-
|
|
21173
|
-
|
|
21328
|
+
bridgeStep === "select-token" && /* @__PURE__ */ jsx100(TokenHyperlaneRouteSelector, { hyperlaneWarpRoutes }),
|
|
21329
|
+
bridgeStep === "confirm" && /* @__PURE__ */ jsx100(
|
|
21330
|
+
ConfirmStep,
|
|
21331
|
+
{
|
|
21332
|
+
isAssetBridging,
|
|
21333
|
+
hyperlaneWarpRoutes,
|
|
21334
|
+
bridgeAsset
|
|
21335
|
+
}
|
|
21336
|
+
),
|
|
21337
|
+
bridgeStep === "success" && /* @__PURE__ */ jsx100(SuccessStep, {}),
|
|
21338
|
+
bridgeStep === "tx-history" && /* @__PURE__ */ jsx100(HistoryStep, { historyQuery }),
|
|
21339
|
+
bridgeStep === "tx-history-details" && /* @__PURE__ */ jsx100(HistoryDetailsStep, {})
|
|
21174
21340
|
] });
|
|
21175
21341
|
}
|
|
21176
21342
|
var init_HyperlaneBridge = __esm({
|
|
@@ -21187,18 +21353,18 @@ var init_HyperlaneBridge = __esm({
|
|
|
21187
21353
|
});
|
|
21188
21354
|
|
|
21189
21355
|
// src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx
|
|
21190
|
-
import { useRef as
|
|
21191
|
-
import { jsx as
|
|
21356
|
+
import { useRef as useRef19 } from "react";
|
|
21357
|
+
import { jsx as jsx101 } from "react/jsx-runtime";
|
|
21192
21358
|
function BridgeHistorySwitch(props) {
|
|
21193
21359
|
const { disabled } = props;
|
|
21194
21360
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
21195
21361
|
const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
|
|
21196
21362
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
21197
|
-
const lastBridgeStepRef =
|
|
21363
|
+
const lastBridgeStepRef = useRef19(null);
|
|
21198
21364
|
if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
|
|
21199
21365
|
return null;
|
|
21200
21366
|
}
|
|
21201
|
-
return /* @__PURE__ */
|
|
21367
|
+
return /* @__PURE__ */ jsx101(
|
|
21202
21368
|
Switch,
|
|
21203
21369
|
{
|
|
21204
21370
|
labels: { checked: "BRIDGE", unchecked: "HISTORY" },
|
|
@@ -21295,7 +21461,7 @@ var init_useErc3643Compliance = __esm({
|
|
|
21295
21461
|
|
|
21296
21462
|
// src/hooks/useNicknameResolve.ts
|
|
21297
21463
|
import { useQuery as useQuery23 } from "@tanstack/react-query";
|
|
21298
|
-
import { useState as
|
|
21464
|
+
import { useState as useState28, useEffect as useEffect41, useMemo as useMemo7 } from "react";
|
|
21299
21465
|
function looksLikeNickname(input) {
|
|
21300
21466
|
if (!input) return false;
|
|
21301
21467
|
if (input.startsWith("0x")) return false;
|
|
@@ -21305,11 +21471,11 @@ function looksLikeNickname(input) {
|
|
|
21305
21471
|
}
|
|
21306
21472
|
function useNicknameResolve(input, options) {
|
|
21307
21473
|
const { enabled = true, chainId } = options;
|
|
21308
|
-
const [debouncedInput, setDebouncedInput] =
|
|
21309
|
-
const [isDebouncing, setIsDebouncing] =
|
|
21474
|
+
const [debouncedInput, setDebouncedInput] = useState28("");
|
|
21475
|
+
const [isDebouncing, setIsDebouncing] = useState28(false);
|
|
21310
21476
|
const normalized = normalizeNickname(input);
|
|
21311
21477
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
21312
|
-
|
|
21478
|
+
useEffect41(() => {
|
|
21313
21479
|
if (!isNicknameInput || !enabled) {
|
|
21314
21480
|
setDebouncedInput("");
|
|
21315
21481
|
setIsDebouncing(false);
|
|
@@ -21369,15 +21535,15 @@ var init_useNicknameResolve = __esm({
|
|
|
21369
21535
|
});
|
|
21370
21536
|
|
|
21371
21537
|
// src/hooks/useSendTransaction.ts
|
|
21372
|
-
import { useCallback as
|
|
21538
|
+
import { useCallback as useCallback24, useState as useState29 } from "react";
|
|
21373
21539
|
import { encodeFunctionData as encodeFunctionData2, isAddress, parseEther as parseEther2, parseUnits } from "viem";
|
|
21374
21540
|
function useSendTransaction() {
|
|
21375
21541
|
const session = useSession((st) => st.session);
|
|
21376
21542
|
const address = useSession((st) => st.address);
|
|
21377
|
-
const [isLoading, setIsLoading] =
|
|
21378
|
-
const [error, setError] =
|
|
21379
|
-
const [userOpHash, setUserOpHash] =
|
|
21380
|
-
const sendTransaction =
|
|
21543
|
+
const [isLoading, setIsLoading] = useState29(false);
|
|
21544
|
+
const [error, setError] = useState29(null);
|
|
21545
|
+
const [userOpHash, setUserOpHash] = useState29(null);
|
|
21546
|
+
const sendTransaction = useCallback24(
|
|
21381
21547
|
async (params) => {
|
|
21382
21548
|
if (!session || !address) {
|
|
21383
21549
|
setError("No active session");
|
|
@@ -21474,7 +21640,7 @@ function useSendTransaction() {
|
|
|
21474
21640
|
},
|
|
21475
21641
|
[session, address]
|
|
21476
21642
|
);
|
|
21477
|
-
const reset =
|
|
21643
|
+
const reset = useCallback24(() => {
|
|
21478
21644
|
setError(null);
|
|
21479
21645
|
setUserOpHash(null);
|
|
21480
21646
|
setIsLoading(false);
|
|
@@ -21565,15 +21731,15 @@ var init_fallbackAssetImage = __esm({
|
|
|
21565
21731
|
|
|
21566
21732
|
// src/internal/components/SendMenu/send/components/AssetInputIcon.tsx
|
|
21567
21733
|
import { Coins, Image as ImageIcon2, ShieldCheck, Sparkles as Sparkles2 } from "lucide-react";
|
|
21568
|
-
import { jsx as
|
|
21734
|
+
import { jsx as jsx102, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
21569
21735
|
function AssetInputIcon({ asset, size = "small" }) {
|
|
21570
21736
|
const iconSizeClass = size === "small" ? "w-6 h-6" : "w-12 h-12";
|
|
21571
21737
|
const subiconSizeClass = size === "small" ? "w-4 h-4" : "w-5 h-5";
|
|
21572
|
-
if (!asset) return /* @__PURE__ */
|
|
21738
|
+
if (!asset) return /* @__PURE__ */ jsx102(Coins, { className: iconSizeClass, strokeWidth: 1 });
|
|
21573
21739
|
const isNft = isNftAsset3(asset);
|
|
21574
21740
|
if (isNft) {
|
|
21575
21741
|
return asset.image || asset.nftMetadata?.image ? /* @__PURE__ */ jsxs92("div", { className: cn(iconSizeClass, "flex-none relative"), children: [
|
|
21576
|
-
/* @__PURE__ */
|
|
21742
|
+
/* @__PURE__ */ jsx102(
|
|
21577
21743
|
"img",
|
|
21578
21744
|
{
|
|
21579
21745
|
src: asset.image || asset.nftMetadata?.image,
|
|
@@ -21586,15 +21752,15 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21586
21752
|
}
|
|
21587
21753
|
}
|
|
21588
21754
|
),
|
|
21589
|
-
/* @__PURE__ */
|
|
21755
|
+
/* @__PURE__ */ jsx102(Sparkles2, { className: cn(subiconSizeClass, "absolute -top-1 -right-1") })
|
|
21590
21756
|
] }) : /* @__PURE__ */ jsxs92("div", { className: cn(iconSizeClass, "relative flex-none"), children: [
|
|
21591
|
-
/* @__PURE__ */
|
|
21592
|
-
/* @__PURE__ */
|
|
21757
|
+
/* @__PURE__ */ jsx102(ImageIcon2, { className: cn(iconSizeClass, "flex-none") }),
|
|
21758
|
+
/* @__PURE__ */ jsx102(Sparkles2, { className: cn(subiconSizeClass, "absolute -top-1 -right-1 text-[var(--ui-kit-bg-success)]") })
|
|
21593
21759
|
] });
|
|
21594
21760
|
}
|
|
21595
21761
|
const isSecurity = isSecurityToken2(asset);
|
|
21596
21762
|
const CommonAssetIcon = TOKENS_ICONS[asset.symbol] || null;
|
|
21597
|
-
const targetAssetIcon = !!asset.logo ? /* @__PURE__ */
|
|
21763
|
+
const targetAssetIcon = !!asset.logo ? /* @__PURE__ */ jsx102(
|
|
21598
21764
|
"img",
|
|
21599
21765
|
{
|
|
21600
21766
|
src: asset.logo,
|
|
@@ -21605,7 +21771,7 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21605
21771
|
e.currentTarget.src = fallbackAssetImage_default;
|
|
21606
21772
|
}
|
|
21607
21773
|
}
|
|
21608
|
-
) : /* @__PURE__ */
|
|
21774
|
+
) : /* @__PURE__ */ jsx102("span", { className: "text-[var(--ui-kit-fg-inverted)] font-bold text-xs", children: asset.symbol.charAt(0) });
|
|
21609
21775
|
return /* @__PURE__ */ jsxs92(
|
|
21610
21776
|
"div",
|
|
21611
21777
|
{
|
|
@@ -21614,8 +21780,8 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21614
21780
|
"flex items-center justify-center bg-[var(--ui-kit-fg)] rounded-full": !asset.logo
|
|
21615
21781
|
}),
|
|
21616
21782
|
children: [
|
|
21617
|
-
!!CommonAssetIcon ? /* @__PURE__ */
|
|
21618
|
-
isSecurity && /* @__PURE__ */
|
|
21783
|
+
!!CommonAssetIcon ? /* @__PURE__ */ jsx102(CommonAssetIcon, { className: iconSizeClass }) : targetAssetIcon,
|
|
21784
|
+
isSecurity && /* @__PURE__ */ jsx102(
|
|
21619
21785
|
ShieldCheck,
|
|
21620
21786
|
{
|
|
21621
21787
|
style: { fill: "var(--ui-kit-bg-warning)" },
|
|
@@ -21637,13 +21803,13 @@ var init_AssetInputIcon = __esm({
|
|
|
21637
21803
|
|
|
21638
21804
|
// src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
|
|
21639
21805
|
import { Image as ImageIcon3, Sparkles as Sparkles3 } from "lucide-react";
|
|
21640
|
-
import { useState as
|
|
21641
|
-
import { jsx as
|
|
21806
|
+
import { useState as useState30 } from "react";
|
|
21807
|
+
import { jsx as jsx103, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
21642
21808
|
function NftDisplayCard({ asset }) {
|
|
21643
|
-
const [imageError, setImageError] =
|
|
21809
|
+
const [imageError, setImageError] = useState30(false);
|
|
21644
21810
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
21645
21811
|
return /* @__PURE__ */ jsxs93("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
|
|
21646
|
-
nftImage && !imageError ? /* @__PURE__ */
|
|
21812
|
+
nftImage && !imageError ? /* @__PURE__ */ jsx103(
|
|
21647
21813
|
"img",
|
|
21648
21814
|
{
|
|
21649
21815
|
src: nftImage,
|
|
@@ -21651,9 +21817,9 @@ function NftDisplayCard({ asset }) {
|
|
|
21651
21817
|
className: "w-16 h-16 rounded-[var(--ui-kit-el-bdrs)] object-cover",
|
|
21652
21818
|
onError: () => setImageError(true)
|
|
21653
21819
|
}
|
|
21654
|
-
) : /* @__PURE__ */
|
|
21820
|
+
) : /* @__PURE__ */ jsx103("div", { className: "w-16 h-16 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-fg)] flex items-center justify-center", children: /* @__PURE__ */ jsx103(ImageIcon3, { className: "w-8 h-8 text-[var(--ui-kit-fg-inverted)]" }) }),
|
|
21655
21821
|
/* @__PURE__ */ jsxs93("div", { className: "flex-1 min-w-0", children: [
|
|
21656
|
-
/* @__PURE__ */
|
|
21822
|
+
/* @__PURE__ */ jsx103("div", { className: "font-semibold text-[var(--ui-kit-fg)] truncate", children: asset.nftMetadata?.name || asset.name }),
|
|
21657
21823
|
/* @__PURE__ */ jsxs93("div", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: [
|
|
21658
21824
|
asset.symbol,
|
|
21659
21825
|
asset.tokenId && /* @__PURE__ */ jsxs93("span", { className: "ml-1", children: [
|
|
@@ -21662,8 +21828,8 @@ function NftDisplayCard({ asset }) {
|
|
|
21662
21828
|
] })
|
|
21663
21829
|
] }),
|
|
21664
21830
|
/* @__PURE__ */ jsxs93("div", { className: "text-xs text-[var(--ui-kit-fg-muted)] mt-1 flex items-center gap-1", children: [
|
|
21665
|
-
/* @__PURE__ */
|
|
21666
|
-
/* @__PURE__ */
|
|
21831
|
+
/* @__PURE__ */ jsx103(Sparkles3, { className: "w-3 h-3" }),
|
|
21832
|
+
/* @__PURE__ */ jsx103("span", { children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" })
|
|
21667
21833
|
] })
|
|
21668
21834
|
] })
|
|
21669
21835
|
] });
|
|
@@ -21674,12 +21840,12 @@ var init_NftDisplayCard = __esm({
|
|
|
21674
21840
|
});
|
|
21675
21841
|
|
|
21676
21842
|
// src/internal/components/SendMenu/send/useSendStore.ts
|
|
21677
|
-
import { create as
|
|
21843
|
+
import { create as create10 } from "zustand";
|
|
21678
21844
|
var useSendStore;
|
|
21679
21845
|
var init_useSendStore = __esm({
|
|
21680
21846
|
"src/internal/components/SendMenu/send/useSendStore.ts"() {
|
|
21681
21847
|
init_useFlowSelector();
|
|
21682
|
-
useSendStore =
|
|
21848
|
+
useSendStore = create10((set) => ({
|
|
21683
21849
|
recipient: "",
|
|
21684
21850
|
//
|
|
21685
21851
|
amount: "",
|
|
@@ -21714,7 +21880,7 @@ var init_useSendStore = __esm({
|
|
|
21714
21880
|
|
|
21715
21881
|
// src/internal/components/SendMenu/send/components/AssetList.tsx
|
|
21716
21882
|
import { formatUnits as formatUnits9 } from "viem";
|
|
21717
|
-
import { Fragment as
|
|
21883
|
+
import { Fragment as Fragment41, jsx as jsx104, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
21718
21884
|
function getAssetBalance3(asset) {
|
|
21719
21885
|
if (isNftAsset3(asset)) return "1";
|
|
21720
21886
|
const balance = Number(formatUnits9(BigInt(asset?.balance || "0"), asset?.decimals || 18));
|
|
@@ -21743,23 +21909,23 @@ function AssetListItem(props) {
|
|
|
21743
21909
|
isSelected && "bg-[var(--ui-kit-secondary)]"
|
|
21744
21910
|
),
|
|
21745
21911
|
children: [
|
|
21746
|
-
/* @__PURE__ */
|
|
21912
|
+
/* @__PURE__ */ jsx104(AssetInputIcon, { asset, size: "large" }),
|
|
21747
21913
|
/* @__PURE__ */ jsxs94("div", { className: "flex-1 flex flex-col items-start", children: [
|
|
21748
|
-
/* @__PURE__ */
|
|
21914
|
+
/* @__PURE__ */ jsx104("div", { className: "text-[10px] truncate leading-4", children: isNft ? asset.nftMetadata?.name || asset.name : asset.name }),
|
|
21749
21915
|
!isNft && asset.address && /* @__PURE__ */ jsxs94("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] font-mono truncate leading-4", title: asset.address, children: [
|
|
21750
21916
|
asset.symbol,
|
|
21751
21917
|
" \xB7 ",
|
|
21752
21918
|
truncateMiddle(asset.address, 6, 4)
|
|
21753
21919
|
] }),
|
|
21754
|
-
/* @__PURE__ */
|
|
21920
|
+
/* @__PURE__ */ jsx104("span", { className: "block text-lg font-bold", children: isNft ? /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
21755
21921
|
asset.symbol,
|
|
21756
21922
|
asset.tokenId && /* @__PURE__ */ jsxs94("span", { className: "ml-1", children: [
|
|
21757
21923
|
"#",
|
|
21758
21924
|
asset.tokenId.length > 6 ? `${asset.tokenId.slice(0, 4)}...` : asset.tokenId
|
|
21759
21925
|
] })
|
|
21760
|
-
] }) : /* @__PURE__ */ jsxs94(
|
|
21926
|
+
] }) : /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
21761
21927
|
BALANCE_PREFIXES[asset.symbol] || null,
|
|
21762
|
-
/* @__PURE__ */
|
|
21928
|
+
/* @__PURE__ */ jsx104("span", { children: getAssetBalance3(asset) }),
|
|
21763
21929
|
" ",
|
|
21764
21930
|
!BALANCE_PREFIXES[asset.symbol] && /* @__PURE__ */ jsxs94("span", { children: [
|
|
21765
21931
|
" ",
|
|
@@ -21782,24 +21948,24 @@ function AssetList(props) {
|
|
|
21782
21948
|
const tokenAssets = transferableAssets.filter((a) => a.type === "erc20");
|
|
21783
21949
|
const securityAssets = transferableAssets.filter((a) => a.type === "erc3643");
|
|
21784
21950
|
const nftAssets = transferableAssets.filter((a) => a.type === "erc721" || a.type === "erc1155");
|
|
21785
|
-
return /* @__PURE__ */ jsxs94(
|
|
21786
|
-
nativeAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21787
|
-
/* @__PURE__ */
|
|
21788
|
-
nativeAssets.map((asset) => /* @__PURE__ */
|
|
21951
|
+
return /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
21952
|
+
nativeAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
21953
|
+
/* @__PURE__ */ jsx104("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Crypto" }),
|
|
21954
|
+
nativeAssets.map((asset) => /* @__PURE__ */ jsx104(AssetListItem, { asset }, `native-${asset.symbol}`))
|
|
21789
21955
|
] }),
|
|
21790
|
-
tokenAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21791
|
-
/* @__PURE__ */
|
|
21792
|
-
tokenAssets.map((asset) => /* @__PURE__ */
|
|
21956
|
+
tokenAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
21957
|
+
/* @__PURE__ */ jsx104("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Tokens" }),
|
|
21958
|
+
tokenAssets.map((asset) => /* @__PURE__ */ jsx104(AssetListItem, { asset }, `token-${asset.address}`))
|
|
21793
21959
|
] }),
|
|
21794
|
-
securityAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21795
|
-
/* @__PURE__ */
|
|
21796
|
-
securityAssets.map((asset) => /* @__PURE__ */
|
|
21960
|
+
securityAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
21961
|
+
/* @__PURE__ */ jsx104("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Security Tokens" }),
|
|
21962
|
+
securityAssets.map((asset) => /* @__PURE__ */ jsx104(AssetListItem, { asset }, `security-${asset.address}`))
|
|
21797
21963
|
] }),
|
|
21798
|
-
nftAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21799
|
-
/* @__PURE__ */
|
|
21800
|
-
nftAssets.map((asset) => /* @__PURE__ */
|
|
21964
|
+
nftAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
21965
|
+
/* @__PURE__ */ jsx104("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "NFTs" }),
|
|
21966
|
+
nftAssets.map((asset) => /* @__PURE__ */ jsx104(AssetListItem, { asset }, `nft-${asset.address}-${asset.tokenId}`))
|
|
21801
21967
|
] }),
|
|
21802
|
-
transferableAssets.length === 0 && /* @__PURE__ */
|
|
21968
|
+
transferableAssets.length === 0 && /* @__PURE__ */ jsx104("div", { className: "p-4 text-center text-[10px] text-[var(--ui-kit-fg-muted)]", children: "No assets available" })
|
|
21803
21969
|
] });
|
|
21804
21970
|
}
|
|
21805
21971
|
var init_AssetList = __esm({
|
|
@@ -21816,7 +21982,7 @@ var init_AssetList = __esm({
|
|
|
21816
21982
|
|
|
21817
21983
|
// src/internal/components/SendMenu/send/components/NicknameData.tsx
|
|
21818
21984
|
import { AlertCircle as AlertCircle5, AlertTriangle as AlertTriangle6, AtSign as AtSign2, CheckCircle2 as CheckCircle24, ShieldAlert as ShieldAlert2, ShieldCheck as ShieldCheck2 } from "lucide-react";
|
|
21819
|
-
import { jsx as
|
|
21985
|
+
import { jsx as jsx105, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
21820
21986
|
function NicknameData(props) {
|
|
21821
21987
|
const { resolvedNicknameData, isNicknameInput } = props;
|
|
21822
21988
|
const {
|
|
@@ -21831,7 +21997,7 @@ function NicknameData(props) {
|
|
|
21831
21997
|
if (!isNicknameInput) return null;
|
|
21832
21998
|
if (resolvedAddress && !isResolving && nicknameData)
|
|
21833
21999
|
return /* @__PURE__ */ jsxs95("div", { className: "flex items-center gap-[var(--ui-kit-gap)] rounded-[var(--ui-kit-el-bdrs)] px-[var(--ui-kit-gap)]", children: [
|
|
21834
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
22000
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx105(
|
|
21835
22001
|
"img",
|
|
21836
22002
|
{
|
|
21837
22003
|
src: nicknameData.avatarSvg,
|
|
@@ -21842,11 +22008,11 @@ function NicknameData(props) {
|
|
|
21842
22008
|
e.currentTarget.src = fallbackAssetImage_default;
|
|
21843
22009
|
}
|
|
21844
22010
|
}
|
|
21845
|
-
) : /* @__PURE__ */
|
|
22011
|
+
) : /* @__PURE__ */ jsx105("div", { className: "w-12 h-12 rounded-full bg-[var(--ui-kit-secondary)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx105(AtSign2, { className: "w-5 h-5" }) }),
|
|
21846
22012
|
/* @__PURE__ */ jsxs95("div", { className: "flex flex-col gap-1", children: [
|
|
21847
22013
|
/* @__PURE__ */ jsxs95("div", { className: "flex items-center gap-[var(--ui-kit-gap)] text-[10px] text-[var(--ui-kit-bg-success)]", children: [
|
|
21848
|
-
/* @__PURE__ */
|
|
21849
|
-
/* @__PURE__ */
|
|
22014
|
+
/* @__PURE__ */ jsx105(CheckCircle24, { className: "w-4 h-4 flex-shrink-0" }),
|
|
22015
|
+
/* @__PURE__ */ jsx105("span", { children: nicknameData.handle })
|
|
21850
22016
|
] }),
|
|
21851
22017
|
nicknameData.fingerprint && /* @__PURE__ */ jsxs95(
|
|
21852
22018
|
"div",
|
|
@@ -21856,9 +22022,9 @@ function NicknameData(props) {
|
|
|
21856
22022
|
isFingerprintVerified ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-error)]"
|
|
21857
22023
|
),
|
|
21858
22024
|
children: [
|
|
21859
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
21860
|
-
/* @__PURE__ */
|
|
21861
|
-
/* @__PURE__ */
|
|
22025
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx105(ShieldCheck2, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx105(ShieldAlert2, { className: "w-4 h-4 flex-shrink-0" }),
|
|
22026
|
+
/* @__PURE__ */ jsx105("span", { children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)} : ` }),
|
|
22027
|
+
/* @__PURE__ */ jsx105("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
21862
22028
|
]
|
|
21863
22029
|
}
|
|
21864
22030
|
)
|
|
@@ -21866,20 +22032,20 @@ function NicknameData(props) {
|
|
|
21866
22032
|
] });
|
|
21867
22033
|
if (isFrozen && !isResolving) {
|
|
21868
22034
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
21869
|
-
/* @__PURE__ */
|
|
21870
|
-
/* @__PURE__ */
|
|
22035
|
+
/* @__PURE__ */ jsx105(AlertTriangle6, { className: "w-4 h-4" }),
|
|
22036
|
+
/* @__PURE__ */ jsx105("span", { children: "This handle is frozen. Proceed with caution." })
|
|
21871
22037
|
] });
|
|
21872
22038
|
}
|
|
21873
22039
|
if (isWalletNotSetup && !isResolving) {
|
|
21874
22040
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
21875
|
-
/* @__PURE__ */
|
|
21876
|
-
/* @__PURE__ */
|
|
22041
|
+
/* @__PURE__ */ jsx105(AlertCircle5, { className: "w-4 h-4" }),
|
|
22042
|
+
/* @__PURE__ */ jsx105("span", { children: "This user has not set up wallet yet" })
|
|
21877
22043
|
] });
|
|
21878
22044
|
}
|
|
21879
22045
|
if (isNotFound && !isResolving) {
|
|
21880
22046
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
21881
|
-
/* @__PURE__ */
|
|
21882
|
-
/* @__PURE__ */
|
|
22047
|
+
/* @__PURE__ */ jsx105(AlertCircle5, { className: "w-4 h-4" }),
|
|
22048
|
+
/* @__PURE__ */ jsx105("span", { children: "Nickname not found" })
|
|
21883
22049
|
] });
|
|
21884
22050
|
}
|
|
21885
22051
|
}
|
|
@@ -21904,7 +22070,7 @@ var init_components3 = __esm({
|
|
|
21904
22070
|
// src/internal/components/SendMenu/send/sendSteps/InputSendStep.tsx
|
|
21905
22071
|
import { AlertCircle as AlertCircle6, AtSign as AtSign3, CheckCircle2 as CheckCircle25, Loader as Loader31, Wallet2 as Wallet24 } from "lucide-react";
|
|
21906
22072
|
import { formatUnits as formatUnits10, isAddress as isAddress2 } from "viem";
|
|
21907
|
-
import { Fragment as
|
|
22073
|
+
import { Fragment as Fragment42, jsx as jsx106, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
21908
22074
|
function InputSendStep(props) {
|
|
21909
22075
|
const {
|
|
21910
22076
|
erc3643Compliance,
|
|
@@ -22010,8 +22176,8 @@ function InputSendStep(props) {
|
|
|
22010
22176
|
setError(null);
|
|
22011
22177
|
return true;
|
|
22012
22178
|
};
|
|
22013
|
-
return /* @__PURE__ */ jsxs96(
|
|
22014
|
-
/* @__PURE__ */
|
|
22179
|
+
return /* @__PURE__ */ jsxs96(Fragment42, { children: [
|
|
22180
|
+
/* @__PURE__ */ jsx106("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:sendMenu.selectAsset") }),
|
|
22015
22181
|
/* @__PURE__ */ jsxs96(
|
|
22016
22182
|
Button,
|
|
22017
22183
|
{
|
|
@@ -22022,15 +22188,15 @@ function InputSendStep(props) {
|
|
|
22022
22188
|
className: "justify-between",
|
|
22023
22189
|
children: [
|
|
22024
22190
|
selectedAsset ? /* @__PURE__ */ jsxs96("span", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22025
|
-
/* @__PURE__ */
|
|
22026
|
-
/* @__PURE__ */
|
|
22027
|
-
] }) : /* @__PURE__ */
|
|
22028
|
-
isAssetsLoading && /* @__PURE__ */
|
|
22191
|
+
/* @__PURE__ */ jsx106(AssetInputIcon, { asset: selectedAsset }),
|
|
22192
|
+
/* @__PURE__ */ jsx106("span", { children: (isNft ? selectedAsset.nftMetadata?.name || selectedAsset.symbol : selectedAsset.name).toUpperCase() })
|
|
22193
|
+
] }) : /* @__PURE__ */ jsx106("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "No Asset Selected" }),
|
|
22194
|
+
isAssetsLoading && /* @__PURE__ */ jsx106(Loader31, { className: "w-4 h-4 animate-spin" })
|
|
22029
22195
|
]
|
|
22030
22196
|
}
|
|
22031
22197
|
),
|
|
22032
|
-
/* @__PURE__ */
|
|
22033
|
-
/* @__PURE__ */
|
|
22198
|
+
/* @__PURE__ */ jsx106("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:sendMenu.recipient") }),
|
|
22199
|
+
/* @__PURE__ */ jsx106(
|
|
22034
22200
|
Input,
|
|
22035
22201
|
{
|
|
22036
22202
|
Icon: isNicknameInput ? AtSign3 : Wallet24,
|
|
@@ -22039,12 +22205,12 @@ function InputSendStep(props) {
|
|
|
22039
22205
|
disabled: isAssetsLoading,
|
|
22040
22206
|
onChange: (e) => setRecipient(e.target.value),
|
|
22041
22207
|
placeholder: "0x... or @nickname",
|
|
22042
|
-
element: isNicknameInput && isResolving ? /* @__PURE__ */
|
|
22208
|
+
element: isNicknameInput && isResolving ? /* @__PURE__ */ jsx106(Loader31, { className: "w-4 h-4 animate-spin text-[var(--ui-kit-fg-muted)]" }) : null
|
|
22043
22209
|
}
|
|
22044
22210
|
),
|
|
22045
|
-
/* @__PURE__ */
|
|
22211
|
+
/* @__PURE__ */ jsx106(NicknameData, { resolvedNicknameData, isNicknameInput }),
|
|
22046
22212
|
/* @__PURE__ */ jsxs96("div", { className: "flex justify-between items-center text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
22047
|
-
/* @__PURE__ */
|
|
22213
|
+
/* @__PURE__ */ jsx106("span", { className: "block ", children: isNft ? t("passport:common.asset") : t("passport:common.amount") }),
|
|
22048
22214
|
!isNft && selectedAsset && /* @__PURE__ */ jsxs96("span", { className: "block text-[10px]", children: [
|
|
22049
22215
|
t("passport:common.balance"),
|
|
22050
22216
|
" ",
|
|
@@ -22055,8 +22221,8 @@ function InputSendStep(props) {
|
|
|
22055
22221
|
] })
|
|
22056
22222
|
] })
|
|
22057
22223
|
] }),
|
|
22058
|
-
isNft && selectedAsset && /* @__PURE__ */
|
|
22059
|
-
!isNft && /* @__PURE__ */
|
|
22224
|
+
isNft && selectedAsset && /* @__PURE__ */ jsx106(NftDisplayCard, { asset: selectedAsset }),
|
|
22225
|
+
!isNft && /* @__PURE__ */ jsx106(
|
|
22060
22226
|
Input,
|
|
22061
22227
|
{
|
|
22062
22228
|
type: "number",
|
|
@@ -22064,29 +22230,29 @@ function InputSendStep(props) {
|
|
|
22064
22230
|
onChange: (e) => setAmount(e.target.value),
|
|
22065
22231
|
placeholder: "0.0",
|
|
22066
22232
|
step: "0.000001",
|
|
22067
|
-
Icon: () => /* @__PURE__ */
|
|
22233
|
+
Icon: () => /* @__PURE__ */ jsx106(AssetInputIcon, { asset: selectedAsset }),
|
|
22068
22234
|
className: "pb-[var(--ui-kit-pd)]",
|
|
22069
|
-
element: /* @__PURE__ */
|
|
22235
|
+
element: /* @__PURE__ */ jsx106(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", className: "px-2", children: "MAX" })
|
|
22070
22236
|
}
|
|
22071
22237
|
),
|
|
22072
|
-
isSecurity && effectiveAddress && amount && /* @__PURE__ */
|
|
22238
|
+
isSecurity && effectiveAddress && amount && /* @__PURE__ */ jsx106(
|
|
22073
22239
|
Highlight,
|
|
22074
22240
|
{
|
|
22075
22241
|
type: isComplianceLoading ? "info" : erc3643CanTransfer ? "success" : "error",
|
|
22076
22242
|
className: "flex gap-[var(--ui-kit-gap)]",
|
|
22077
|
-
children: isComplianceLoading ? /* @__PURE__ */ jsxs96(
|
|
22078
|
-
/* @__PURE__ */
|
|
22079
|
-
/* @__PURE__ */
|
|
22080
|
-
] }) : erc3643CanTransfer ? /* @__PURE__ */ jsxs96(
|
|
22081
|
-
/* @__PURE__ */
|
|
22082
|
-
/* @__PURE__ */
|
|
22083
|
-
] }) : /* @__PURE__ */ jsxs96(
|
|
22084
|
-
/* @__PURE__ */
|
|
22085
|
-
/* @__PURE__ */
|
|
22243
|
+
children: isComplianceLoading ? /* @__PURE__ */ jsxs96(Fragment42, { children: [
|
|
22244
|
+
/* @__PURE__ */ jsx106(Loader31, { className: "h-4 w-4 animate-spin" }),
|
|
22245
|
+
/* @__PURE__ */ jsx106("span", { children: "Checking compliance..." })
|
|
22246
|
+
] }) : erc3643CanTransfer ? /* @__PURE__ */ jsxs96(Fragment42, { children: [
|
|
22247
|
+
/* @__PURE__ */ jsx106(CheckCircle25, { className: "h-4 w-4" }),
|
|
22248
|
+
/* @__PURE__ */ jsx106("span", { children: "Transfer compliant" })
|
|
22249
|
+
] }) : /* @__PURE__ */ jsxs96(Fragment42, { children: [
|
|
22250
|
+
/* @__PURE__ */ jsx106(AlertCircle6, { className: "h-4 w-4" }),
|
|
22251
|
+
/* @__PURE__ */ jsx106("span", { children: complianceError || "Transfer not allowed" })
|
|
22086
22252
|
] })
|
|
22087
22253
|
}
|
|
22088
22254
|
),
|
|
22089
|
-
/* @__PURE__ */
|
|
22255
|
+
/* @__PURE__ */ jsx106(
|
|
22090
22256
|
Button,
|
|
22091
22257
|
{
|
|
22092
22258
|
size: "large",
|
|
@@ -22118,7 +22284,7 @@ var init_InputSendStep = __esm({
|
|
|
22118
22284
|
|
|
22119
22285
|
// src/internal/components/SendMenu/send/sendSteps/ConfirmSendStep.tsx
|
|
22120
22286
|
import { AlertTriangle as AlertTriangle7, AtSign as AtSign4, Loader as Loader32, Shield as Shield2, ShieldAlert as ShieldAlert3, ShieldCheck as ShieldCheck3 } from "lucide-react";
|
|
22121
|
-
import { Fragment as
|
|
22287
|
+
import { Fragment as Fragment43, jsx as jsx107, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
22122
22288
|
function ConfirmSendStep(props) {
|
|
22123
22289
|
const {
|
|
22124
22290
|
sendTransaction,
|
|
@@ -22155,14 +22321,14 @@ function ConfirmSendStep(props) {
|
|
|
22155
22321
|
setTxStep("input");
|
|
22156
22322
|
}
|
|
22157
22323
|
};
|
|
22158
|
-
return /* @__PURE__ */ jsxs97(
|
|
22324
|
+
return /* @__PURE__ */ jsxs97(Fragment43, { children: [
|
|
22159
22325
|
isNicknameInput && isFrozen && /* @__PURE__ */ jsxs97(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22160
|
-
/* @__PURE__ */
|
|
22161
|
-
/* @__PURE__ */
|
|
22326
|
+
/* @__PURE__ */ jsx107(AlertTriangle7, { className: "h-4 w-4" }),
|
|
22327
|
+
/* @__PURE__ */ jsx107("span", { children: "This handle is frozen. Proceed with caution." })
|
|
22162
22328
|
] }),
|
|
22163
22329
|
isSecurity && erc3643CanTransfer && /* @__PURE__ */ jsxs97(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22164
|
-
/* @__PURE__ */
|
|
22165
|
-
/* @__PURE__ */
|
|
22330
|
+
/* @__PURE__ */ jsx107(Shield2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
22331
|
+
/* @__PURE__ */ jsx107("span", { children: "Security token compliance verified" })
|
|
22166
22332
|
] }),
|
|
22167
22333
|
!isNft && /* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5", children: [
|
|
22168
22334
|
/* @__PURE__ */ jsxs97("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
@@ -22175,18 +22341,18 @@ function ConfirmSendStep(props) {
|
|
|
22175
22341
|
selectedAsset.symbol
|
|
22176
22342
|
] })
|
|
22177
22343
|
] }),
|
|
22178
|
-
/* @__PURE__ */
|
|
22344
|
+
/* @__PURE__ */ jsx107(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)]", children: isNicknameInput && nicknameData ? /* @__PURE__ */ jsxs97(Fragment43, { children: [
|
|
22179
22345
|
/* @__PURE__ */ jsxs97("div", { className: "flex items-start gap-[var(--ui-kit-gap)]", children: [
|
|
22180
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
22346
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx107(
|
|
22181
22347
|
"img",
|
|
22182
22348
|
{
|
|
22183
22349
|
src: nicknameData.avatarSvg,
|
|
22184
22350
|
alt: nicknameData.handle,
|
|
22185
22351
|
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
22186
22352
|
}
|
|
22187
|
-
) : /* @__PURE__ */
|
|
22353
|
+
) : /* @__PURE__ */ jsx107("div", { className: "w-12 h-12 rounded-full bg-[var(--ui-kit-secondary)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx107(AtSign4, { className: "w-6 h-6" }) }),
|
|
22188
22354
|
/* @__PURE__ */ jsxs97("div", { className: "flex flex-1 flex-col gap-1", children: [
|
|
22189
|
-
/* @__PURE__ */
|
|
22355
|
+
/* @__PURE__ */ jsx107("span", { className: "font-medium text-[14px] leading-4 truncate", children: nicknameData.handle }),
|
|
22190
22356
|
nicknameData.fingerprint && /* @__PURE__ */ jsxs97(
|
|
22191
22357
|
"span",
|
|
22192
22358
|
{
|
|
@@ -22195,23 +22361,23 @@ function ConfirmSendStep(props) {
|
|
|
22195
22361
|
isFingerprintVerified ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-error)]"
|
|
22196
22362
|
),
|
|
22197
22363
|
children: [
|
|
22198
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
22364
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx107(ShieldCheck3, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx107(ShieldAlert3, { className: "w-4 h-4 flex-shrink-0" }),
|
|
22199
22365
|
/* @__PURE__ */ jsxs97("span", { children: [
|
|
22200
22366
|
"Fingerprint: ",
|
|
22201
22367
|
nicknameData.fingerprint
|
|
22202
22368
|
] }),
|
|
22203
|
-
/* @__PURE__ */
|
|
22369
|
+
/* @__PURE__ */ jsx107("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
22204
22370
|
]
|
|
22205
22371
|
}
|
|
22206
22372
|
),
|
|
22207
|
-
/* @__PURE__ */
|
|
22373
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)} : ` })
|
|
22208
22374
|
] })
|
|
22209
22375
|
] }),
|
|
22210
22376
|
/* @__PURE__ */ jsxs97("div", { className: "border-t border-[var(--ui-kit-bd)] py-[var(--ui-kit-pd)] text-[10px]", children: [
|
|
22211
22377
|
isNft ? /* @__PURE__ */ jsxs97("div", { className: "flex justify-between items-start", children: [
|
|
22212
|
-
/* @__PURE__ */
|
|
22378
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "NFT:" }),
|
|
22213
22379
|
/* @__PURE__ */ jsxs97("div", { className: "text-right", children: [
|
|
22214
|
-
/* @__PURE__ */
|
|
22380
|
+
/* @__PURE__ */ jsx107("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
22215
22381
|
selectedAsset.tokenId && /* @__PURE__ */ jsxs97("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
22216
22382
|
"#",
|
|
22217
22383
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
@@ -22220,7 +22386,7 @@ function ConfirmSendStep(props) {
|
|
|
22220
22386
|
] }) : (
|
|
22221
22387
|
// Fungible token details
|
|
22222
22388
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22223
|
-
/* @__PURE__ */
|
|
22389
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: "Amount:" }),
|
|
22224
22390
|
/* @__PURE__ */ jsxs97("span", { className: "text-sm font-bold", children: [
|
|
22225
22391
|
amount,
|
|
22226
22392
|
" ",
|
|
@@ -22229,23 +22395,23 @@ function ConfirmSendStep(props) {
|
|
|
22229
22395
|
] })
|
|
22230
22396
|
),
|
|
22231
22397
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22232
|
-
/* @__PURE__ */
|
|
22233
|
-
/* @__PURE__ */
|
|
22398
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: "Network:" }),
|
|
22399
|
+
/* @__PURE__ */ jsx107("span", { className: "text-sm font-bold", children: chainConfig.name })
|
|
22234
22400
|
] })
|
|
22235
22401
|
] })
|
|
22236
|
-
] }) : /* @__PURE__ */ jsxs97(
|
|
22237
|
-
/* @__PURE__ */
|
|
22402
|
+
] }) : /* @__PURE__ */ jsxs97(Fragment43, { children: [
|
|
22403
|
+
/* @__PURE__ */ jsx107("h3", { className: "font-medium mb-3 text-[var(--ui-kit-fg)]", children: "Transaction Details" }),
|
|
22238
22404
|
/* @__PURE__ */ jsxs97("div", { className: "space-y-2 text-sm text-[var(--ui-kit-fg)]", children: [
|
|
22239
22405
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between", children: [
|
|
22240
|
-
/* @__PURE__ */
|
|
22241
|
-
/* @__PURE__ */
|
|
22406
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "To:" }),
|
|
22407
|
+
/* @__PURE__ */ jsx107("span", { className: "font-mono text-xs", children: `${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-4)}` })
|
|
22242
22408
|
] }),
|
|
22243
22409
|
isNft ? (
|
|
22244
22410
|
// NFT details
|
|
22245
|
-
/* @__PURE__ */
|
|
22246
|
-
/* @__PURE__ */
|
|
22411
|
+
/* @__PURE__ */ jsx107(Fragment43, { children: /* @__PURE__ */ jsxs97("div", { className: "flex justify-between items-start", children: [
|
|
22412
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "NFT:" }),
|
|
22247
22413
|
/* @__PURE__ */ jsxs97("div", { className: "text-right", children: [
|
|
22248
|
-
/* @__PURE__ */
|
|
22414
|
+
/* @__PURE__ */ jsx107("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
22249
22415
|
selectedAsset.tokenId && /* @__PURE__ */ jsxs97("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: [
|
|
22250
22416
|
"#",
|
|
22251
22417
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
@@ -22255,7 +22421,7 @@ function ConfirmSendStep(props) {
|
|
|
22255
22421
|
) : (
|
|
22256
22422
|
// Fungible token details
|
|
22257
22423
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22258
|
-
/* @__PURE__ */
|
|
22424
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "Amount:" }),
|
|
22259
22425
|
/* @__PURE__ */ jsxs97("span", { className: "font-semibold", children: [
|
|
22260
22426
|
amount,
|
|
22261
22427
|
" ",
|
|
@@ -22264,13 +22430,13 @@ function ConfirmSendStep(props) {
|
|
|
22264
22430
|
] })
|
|
22265
22431
|
),
|
|
22266
22432
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22267
|
-
/* @__PURE__ */
|
|
22268
|
-
/* @__PURE__ */
|
|
22433
|
+
/* @__PURE__ */ jsx107("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "Network:" }),
|
|
22434
|
+
/* @__PURE__ */ jsx107("span", { children: chainConfig.name })
|
|
22269
22435
|
] })
|
|
22270
22436
|
] })
|
|
22271
22437
|
] }) }),
|
|
22272
22438
|
/* @__PURE__ */ jsxs97(Button, { onClick: handleConfirm, disabled: isTransactionPending, className: "w-full", size: "large", children: [
|
|
22273
|
-
isTransactionPending && /* @__PURE__ */
|
|
22439
|
+
isTransactionPending && /* @__PURE__ */ jsx107(Loader32, { className: "h-4 w-4 animate-spin" }),
|
|
22274
22440
|
"CONFIRM"
|
|
22275
22441
|
] })
|
|
22276
22442
|
] });
|
|
@@ -22297,9 +22463,9 @@ var init_sendSteps = __esm({
|
|
|
22297
22463
|
|
|
22298
22464
|
// src/internal/components/SendMenu/send/SendMenu.tsx
|
|
22299
22465
|
import { CheckCircle2 as CheckCircle26, Loader as Loader33 } from "lucide-react";
|
|
22300
|
-
import { useEffect as
|
|
22466
|
+
import { useEffect as useEffect42, useMemo as useMemo8 } from "react";
|
|
22301
22467
|
import { parseUnits as parseUnits2 } from "viem";
|
|
22302
|
-
import { Fragment as
|
|
22468
|
+
import { Fragment as Fragment44, jsx as jsx108, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
22303
22469
|
function SendMenu() {
|
|
22304
22470
|
const address = useSession((st) => st.address);
|
|
22305
22471
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
@@ -22319,10 +22485,10 @@ function SendMenu() {
|
|
|
22319
22485
|
userOpHash,
|
|
22320
22486
|
reset
|
|
22321
22487
|
} = useSendTransaction();
|
|
22322
|
-
|
|
22488
|
+
useEffect42(() => {
|
|
22323
22489
|
useFlowSelectorStore.getState().setIsUiLocked(isAssetsLoading || isTransactionPending);
|
|
22324
22490
|
}, [isAssetsLoading, isTransactionPending]);
|
|
22325
|
-
|
|
22491
|
+
useEffect42(() => {
|
|
22326
22492
|
useFlowSelectorStore.getState().setError(sendTransactionError || null);
|
|
22327
22493
|
}, [sendTransactionError]);
|
|
22328
22494
|
const {
|
|
@@ -22337,7 +22503,7 @@ function SendMenu() {
|
|
|
22337
22503
|
} = useSendStore();
|
|
22338
22504
|
const isNft = isNftAsset3(selectedAsset);
|
|
22339
22505
|
const isSecurity = isSecurityToken2(selectedAsset);
|
|
22340
|
-
|
|
22506
|
+
useEffect42(
|
|
22341
22507
|
() => () => {
|
|
22342
22508
|
setSelectedAsset(null);
|
|
22343
22509
|
setRecipient("");
|
|
@@ -22347,7 +22513,7 @@ function SendMenu() {
|
|
|
22347
22513
|
},
|
|
22348
22514
|
[]
|
|
22349
22515
|
);
|
|
22350
|
-
|
|
22516
|
+
useEffect42(() => {
|
|
22351
22517
|
const shouldSetNativeAsset = assets.length > 0 && !selectedAsset;
|
|
22352
22518
|
if (!shouldSetNativeAsset) return;
|
|
22353
22519
|
const native = assets.find((a) => a.type === "native");
|
|
@@ -22373,7 +22539,7 @@ function SendMenu() {
|
|
|
22373
22539
|
enabled: isSecurity && !!effectiveAddress && !!complianceAmount,
|
|
22374
22540
|
chainId: activeChainId
|
|
22375
22541
|
});
|
|
22376
|
-
|
|
22542
|
+
useEffect42(() => {
|
|
22377
22543
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
22378
22544
|
switch (true) {
|
|
22379
22545
|
case txStep === "select-asset":
|
|
@@ -22396,9 +22562,9 @@ function SendMenu() {
|
|
|
22396
22562
|
break;
|
|
22397
22563
|
}
|
|
22398
22564
|
}, [txStep, selectedAsset, isNft, t]);
|
|
22399
|
-
return /* @__PURE__ */ jsxs98(
|
|
22400
|
-
txStep === "select-asset" && /* @__PURE__ */
|
|
22401
|
-
txStep === "input" && /* @__PURE__ */
|
|
22565
|
+
return /* @__PURE__ */ jsxs98(Fragment44, { children: [
|
|
22566
|
+
txStep === "select-asset" && /* @__PURE__ */ jsx108(AssetList, { assets }),
|
|
22567
|
+
txStep === "input" && /* @__PURE__ */ jsx108(
|
|
22402
22568
|
InputSendStep,
|
|
22403
22569
|
{
|
|
22404
22570
|
erc3643Compliance,
|
|
@@ -22407,7 +22573,7 @@ function SendMenu() {
|
|
|
22407
22573
|
isAssetsLoading
|
|
22408
22574
|
}
|
|
22409
22575
|
),
|
|
22410
|
-
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */
|
|
22576
|
+
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ jsx108(
|
|
22411
22577
|
ConfirmSendStep,
|
|
22412
22578
|
{
|
|
22413
22579
|
sendTransaction,
|
|
@@ -22419,21 +22585,21 @@ function SendMenu() {
|
|
|
22419
22585
|
}
|
|
22420
22586
|
),
|
|
22421
22587
|
txStep === "pending" && /* @__PURE__ */ jsxs98(Highlight, { type: "info", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22422
|
-
/* @__PURE__ */
|
|
22588
|
+
/* @__PURE__ */ jsx108(Loader33, { className: "h-4 w-4 animate-spin" }),
|
|
22423
22589
|
/* @__PURE__ */ jsxs98("span", { className: "flex-1", children: [
|
|
22424
|
-
/* @__PURE__ */
|
|
22425
|
-
/* @__PURE__ */
|
|
22590
|
+
/* @__PURE__ */ jsx108("span", { className: "block leading-4 font-semibold", children: t("passport:sendMenu.pendingStep") }),
|
|
22591
|
+
/* @__PURE__ */ jsx108("span", { children: t("passport:sendMenu.pendingStepMsg") })
|
|
22426
22592
|
] })
|
|
22427
22593
|
] }),
|
|
22428
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs98(
|
|
22594
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs98(Fragment44, { children: [
|
|
22429
22595
|
/* @__PURE__ */ jsxs98(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22430
|
-
/* @__PURE__ */
|
|
22596
|
+
/* @__PURE__ */ jsx108(CheckCircle26, { className: "h-4 w-4" }),
|
|
22431
22597
|
/* @__PURE__ */ jsxs98("span", { className: "flex-1", children: [
|
|
22432
|
-
/* @__PURE__ */
|
|
22433
|
-
/* @__PURE__ */
|
|
22598
|
+
/* @__PURE__ */ jsx108("span", { className: "block leading-4 font-semibold", children: "Transaction Initiated" }),
|
|
22599
|
+
/* @__PURE__ */ jsx108("span", { children: "Your transaction is being processed and might take some time to accomplish. Visit your transaction history for details." })
|
|
22434
22600
|
] })
|
|
22435
22601
|
] }),
|
|
22436
|
-
/* @__PURE__ */
|
|
22602
|
+
/* @__PURE__ */ jsx108(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "TRANSACTION HISTORY" })
|
|
22437
22603
|
] })
|
|
22438
22604
|
] });
|
|
22439
22605
|
}
|
|
@@ -22466,8 +22632,8 @@ var init_send = __esm({
|
|
|
22466
22632
|
|
|
22467
22633
|
// src/internal/components/SendMenu/SendFlowSelector.tsx
|
|
22468
22634
|
import { ArrowLeft as ArrowLeft19, ArrowRightIcon as ArrowRightIcon2, ArrowRightLeftIcon as ArrowRightLeftIcon2, InfoIcon as InfoIcon4 } from "lucide-react";
|
|
22469
|
-
import { useEffect as
|
|
22470
|
-
import { jsx as
|
|
22635
|
+
import { useEffect as useEffect43 } from "react";
|
|
22636
|
+
import { jsx as jsx109, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
22471
22637
|
function SelectorFlowButtons() {
|
|
22472
22638
|
const { t } = useT();
|
|
22473
22639
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
@@ -22495,7 +22661,7 @@ function SelectorFlowButtons() {
|
|
|
22495
22661
|
useFlowSelectorStore.getState().setFlow("send");
|
|
22496
22662
|
},
|
|
22497
22663
|
children: [
|
|
22498
|
-
/* @__PURE__ */
|
|
22664
|
+
/* @__PURE__ */ jsx109(ArrowRightIcon2, { className: "h-4 w-4" }),
|
|
22499
22665
|
t("passport:sendMenu.actions.send")
|
|
22500
22666
|
]
|
|
22501
22667
|
}
|
|
@@ -22511,7 +22677,7 @@ function SelectorFlowButtons() {
|
|
|
22511
22677
|
useFlowSelectorStore.getState().setFlow("bridge");
|
|
22512
22678
|
},
|
|
22513
22679
|
children: [
|
|
22514
|
-
/* @__PURE__ */
|
|
22680
|
+
/* @__PURE__ */ jsx109(ArrowRightLeftIcon2, { className: "h-4 w-4" }),
|
|
22515
22681
|
t("passport:bridgeMenu.actions.bridge")
|
|
22516
22682
|
]
|
|
22517
22683
|
}
|
|
@@ -22529,13 +22695,13 @@ function SendFlowSelector() {
|
|
|
22529
22695
|
const error = useFlowSelectorStore((st) => st.error);
|
|
22530
22696
|
const menuTitle = useFlowSelectorStore((st) => st.menuTitle);
|
|
22531
22697
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
22532
|
-
|
|
22698
|
+
useEffect43(
|
|
22533
22699
|
() => () => {
|
|
22534
22700
|
useFlowSelectorStore.getState().setError(null);
|
|
22535
22701
|
},
|
|
22536
22702
|
[]
|
|
22537
22703
|
);
|
|
22538
|
-
return /* @__PURE__ */
|
|
22704
|
+
return /* @__PURE__ */ jsx109(
|
|
22539
22705
|
"div",
|
|
22540
22706
|
{
|
|
22541
22707
|
style: {
|
|
@@ -22546,7 +22712,7 @@ function SendFlowSelector() {
|
|
|
22546
22712
|
children: /* @__PURE__ */ jsxs99(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22547
22713
|
/* @__PURE__ */ jsxs99("div", { className: "flex items-center justify-between", children: [
|
|
22548
22714
|
/* @__PURE__ */ jsxs99("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22549
|
-
/* @__PURE__ */
|
|
22715
|
+
/* @__PURE__ */ jsx109(
|
|
22550
22716
|
Button,
|
|
22551
22717
|
{
|
|
22552
22718
|
variant: "ghost",
|
|
@@ -22576,21 +22742,21 @@ function SendFlowSelector() {
|
|
|
22576
22742
|
}
|
|
22577
22743
|
}
|
|
22578
22744
|
},
|
|
22579
|
-
children: /* @__PURE__ */
|
|
22745
|
+
children: /* @__PURE__ */ jsx109(ArrowLeft19, { className: "h-4 w-4" })
|
|
22580
22746
|
}
|
|
22581
22747
|
),
|
|
22582
|
-
/* @__PURE__ */
|
|
22748
|
+
/* @__PURE__ */ jsx109("span", { className: "text-xl font-semibold", children: menuTitle })
|
|
22583
22749
|
] }),
|
|
22584
|
-
/* @__PURE__ */
|
|
22750
|
+
/* @__PURE__ */ jsx109(BridgeHistorySwitch, {})
|
|
22585
22751
|
] }),
|
|
22586
|
-
/* @__PURE__ */
|
|
22752
|
+
/* @__PURE__ */ jsx109(SelectorFlowButtons, {}),
|
|
22587
22753
|
SELECTOR_FLOW[selectorFlow],
|
|
22588
22754
|
error && /* @__PURE__ */ jsxs99(Highlight, { type: "error", className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22589
22755
|
/* @__PURE__ */ jsxs99("div", { className: "w-full flex gap-[var(--ui-kit-gap)]", children: [
|
|
22590
|
-
/* @__PURE__ */
|
|
22591
|
-
/* @__PURE__ */
|
|
22756
|
+
/* @__PURE__ */ jsx109(InfoIcon4, { className: "h-4 w-4 flex-none" }),
|
|
22757
|
+
/* @__PURE__ */ jsx109("span", { children: error })
|
|
22592
22758
|
] }),
|
|
22593
|
-
/* @__PURE__ */
|
|
22759
|
+
/* @__PURE__ */ jsx109(
|
|
22594
22760
|
Button,
|
|
22595
22761
|
{
|
|
22596
22762
|
variant: "default",
|
|
@@ -22601,7 +22767,7 @@ function SendFlowSelector() {
|
|
|
22601
22767
|
}
|
|
22602
22768
|
)
|
|
22603
22769
|
] }),
|
|
22604
|
-
/* @__PURE__ */
|
|
22770
|
+
/* @__PURE__ */ jsx109("div", {}, renderKey)
|
|
22605
22771
|
] })
|
|
22606
22772
|
}
|
|
22607
22773
|
);
|
|
@@ -22620,8 +22786,8 @@ var init_SendFlowSelector = __esm({
|
|
|
22620
22786
|
init_send();
|
|
22621
22787
|
init_useFlowSelector();
|
|
22622
22788
|
SELECTOR_FLOW = {
|
|
22623
|
-
send: /* @__PURE__ */
|
|
22624
|
-
bridge: /* @__PURE__ */
|
|
22789
|
+
send: /* @__PURE__ */ jsx109(SendMenu, {}),
|
|
22790
|
+
bridge: /* @__PURE__ */ jsx109(HyperlaneBridge, {})
|
|
22625
22791
|
};
|
|
22626
22792
|
}
|
|
22627
22793
|
});
|
|
@@ -22675,10 +22841,10 @@ var init_pro_mode = __esm({
|
|
|
22675
22841
|
});
|
|
22676
22842
|
|
|
22677
22843
|
// src/internal/assets/KycIcon.tsx
|
|
22678
|
-
import { jsx as
|
|
22844
|
+
import { jsx as jsx110 } from "react/jsx-runtime";
|
|
22679
22845
|
function KycIcon(props) {
|
|
22680
22846
|
const { width = "24", height = "24", ...rest } = props;
|
|
22681
|
-
return /* @__PURE__ */
|
|
22847
|
+
return /* @__PURE__ */ jsx110("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx110(
|
|
22682
22848
|
"path",
|
|
22683
22849
|
{
|
|
22684
22850
|
d: "M12 18.5455C10.1727 18.5455 8.625 17.9114 7.35682 16.6432C6.08864 15.375 5.45455 13.8273 5.45455 12C5.45455 10.1727 6.08864 8.625 7.35682 7.35682C8.625 6.08864 10.1727 5.45455 12 5.45455C13.8273 5.45455 15.375 6.08864 16.6432 7.35682C17.9114 8.625 18.5455 10.1727 18.5455 12C18.5455 13.8273 17.9114 15.375 16.6432 16.6432C15.375 17.9114 13.8273 18.5455 12 18.5455ZM12 16.9091C13.3636 16.9091 14.5227 16.4318 15.4773 15.4773C16.4318 14.5227 16.9091 13.3636 16.9091 12C16.9091 11.7682 16.892 11.5398 16.858 11.3148C16.8239 11.0898 16.7727 10.8682 16.7045 10.65C16.5 10.6909 16.2955 10.7216 16.0909 10.742C15.8864 10.7625 15.6818 10.7727 15.4773 10.7727C14.6182 10.7727 13.8 10.6091 13.0227 10.2818C12.2455 9.95455 11.55 9.47727 10.9364 8.85C10.5545 9.62727 10.0295 10.3023 9.36136 10.875C8.69318 11.4477 7.93636 11.8636 7.09091 12.1227C7.13182 13.4591 7.62614 14.5909 8.57386 15.5182C9.52159 16.4455 10.6636 16.9091 12 16.9091ZM7.41818 10.2409C8.01818 9.92727 8.475 9.5625 8.78864 9.14659C9.10227 8.73068 9.40909 8.23636 9.70909 7.66364C9.19091 7.93636 8.73409 8.29432 8.33864 8.7375C7.94318 9.18068 7.63636 9.68182 7.41818 10.2409ZM9.95455 13.6364C9.72273 13.6364 9.52841 13.558 9.37159 13.4011C9.21477 13.2443 9.13636 13.05 9.13636 12.8182C9.13636 12.5864 9.21477 12.392 9.37159 12.2352C9.52841 12.0784 9.72273 12 9.95455 12C10.1864 12 10.3807 12.0784 10.5375 12.2352C10.6943 12.392 10.7727 12.5864 10.7727 12.8182C10.7727 13.05 10.6943 13.2443 10.5375 13.4011C10.3807 13.558 10.1864 13.6364 9.95455 13.6364ZM15.4773 9.13636H15.7227C15.8045 9.13636 15.8864 9.12955 15.9682 9.11591C15.5182 8.50227 14.9489 8.01136 14.2602 7.64318C13.5716 7.275 12.8182 7.09091 12 7.09091H11.7545C11.6727 7.09091 11.5977 7.09773 11.5295 7.11136C12.0614 7.725 12.6239 8.21591 13.217 8.58409C13.8102 8.95227 14.5636 9.13636 15.4773 9.13636ZM14.0455 13.6364C13.8136 13.6364 13.6193 13.558 13.4625 13.4011C13.3057 13.2443 13.2273 13.05 13.2273 12.8182C13.2273 12.5864 13.3057 12.392 13.4625 12.2352C13.6193 12.0784 13.8136 12 14.0455 12C14.2773 12 14.4716 12.0784 14.6284 12.2352C14.7852 12.392 14.8636 12.5864 14.8636 12.8182C14.8636 13.05 14.7852 13.2443 14.6284 13.4011C14.4716 13.558 14.2773 13.6364 14.0455 13.6364ZM3 7.09091V4.63636C3 4.18636 3.16023 3.80114 3.48068 3.48068C3.80114 3.16023 4.18636 3 4.63636 3H7.09091V4.63636H4.63636V7.09091H3ZM7.09091 21H4.63636C4.18636 21 3.80114 20.8398 3.48068 20.5193C3.16023 20.1989 3 19.8136 3 19.3636V16.9091H4.63636V19.3636H7.09091V21ZM16.9091 21V19.3636H19.3636V16.9091H21V19.3636C21 19.8136 20.8398 20.1989 20.5193 20.5193C20.1989 20.8398 19.8136 21 19.3636 21H16.9091ZM19.3636 7.09091V4.63636H16.9091V3H19.3636C19.8136 3 20.1989 3.16023 20.5193 3.48068C20.8398 3.80114 21 4.18636 21 4.63636V7.09091H19.3636Z",
|
|
@@ -22712,8 +22878,8 @@ var init_constants7 = __esm({
|
|
|
22712
22878
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
22713
22879
|
import { useQuery as useQuery24 } from "@tanstack/react-query";
|
|
22714
22880
|
import { ArrowLeft as ArrowLeft20, HardDrive as HardDrive3 } from "lucide-react";
|
|
22715
|
-
import { useEffect as
|
|
22716
|
-
import { jsx as
|
|
22881
|
+
import { useEffect as useEffect44 } from "react";
|
|
22882
|
+
import { jsx as jsx111, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
22717
22883
|
function useSettingsButtons() {
|
|
22718
22884
|
const config = useProviderConfig().config;
|
|
22719
22885
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
@@ -22731,7 +22897,7 @@ function useSettingsButtons() {
|
|
|
22731
22897
|
if (proMode) {
|
|
22732
22898
|
settingsButtons.push({ id: "devices" /* DEVICES */, name: "Guardians", Icon: HardDrive3 });
|
|
22733
22899
|
}
|
|
22734
|
-
|
|
22900
|
+
useEffect44(() => {
|
|
22735
22901
|
const cssvEl = document.querySelector(".embarkai-ui-scope");
|
|
22736
22902
|
if (!cssvEl || !window?.getComputedStyle) {
|
|
22737
22903
|
return;
|
|
@@ -22770,10 +22936,10 @@ function SettingsMenu() {
|
|
|
22770
22936
|
className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]",
|
|
22771
22937
|
children: [
|
|
22772
22938
|
/* @__PURE__ */ jsxs100("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22773
|
-
/* @__PURE__ */
|
|
22774
|
-
/* @__PURE__ */
|
|
22939
|
+
/* @__PURE__ */ jsx111(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx111(ArrowLeft20, { className: "h-4 w-4" }) }),
|
|
22940
|
+
/* @__PURE__ */ jsx111("span", { className: "text-xl font-semibold", children: t("passport:common.settings") })
|
|
22775
22941
|
] }),
|
|
22776
|
-
/* @__PURE__ */
|
|
22942
|
+
/* @__PURE__ */ jsx111("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: settingsButtons.map((el) => ({ ...el, onClick: () => setPage(el.id) })).map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ jsxs100(
|
|
22777
22943
|
Button,
|
|
22778
22944
|
{
|
|
22779
22945
|
variant: "outline",
|
|
@@ -22785,8 +22951,8 @@ function SettingsMenu() {
|
|
|
22785
22951
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
22786
22952
|
),
|
|
22787
22953
|
children: [
|
|
22788
|
-
/* @__PURE__ */
|
|
22789
|
-
/* @__PURE__ */
|
|
22954
|
+
/* @__PURE__ */ jsx111(Icon2, { className: "w-4 h-4" }),
|
|
22955
|
+
/* @__PURE__ */ jsx111("span", { children: t(name) })
|
|
22790
22956
|
]
|
|
22791
22957
|
},
|
|
22792
22958
|
id
|
|
@@ -22821,27 +22987,27 @@ var init_SettingsMenu2 = __esm({
|
|
|
22821
22987
|
|
|
22822
22988
|
// src/internal/components/TermsOfService.tsx
|
|
22823
22989
|
import { ArrowLeft as ArrowLeft21 } from "lucide-react";
|
|
22824
|
-
import { jsx as
|
|
22990
|
+
import { jsx as jsx112, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
22825
22991
|
function TermsOfService() {
|
|
22826
22992
|
const address = useSession((st) => st.address);
|
|
22827
22993
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
22828
22994
|
return /* @__PURE__ */ jsxs101("div", { className: "w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22829
22995
|
/* @__PURE__ */ jsxs101("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22830
|
-
/* @__PURE__ */
|
|
22996
|
+
/* @__PURE__ */ jsx112(
|
|
22831
22997
|
Button,
|
|
22832
22998
|
{
|
|
22833
22999
|
variant: "ghost",
|
|
22834
23000
|
size: "icon",
|
|
22835
23001
|
title: "Back",
|
|
22836
23002
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
22837
|
-
children: /* @__PURE__ */
|
|
23003
|
+
children: /* @__PURE__ */ jsx112(ArrowLeft21, { className: "h-4 w-4" })
|
|
22838
23004
|
}
|
|
22839
23005
|
),
|
|
22840
|
-
/* @__PURE__ */
|
|
23006
|
+
/* @__PURE__ */ jsx112("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
22841
23007
|
] }),
|
|
22842
23008
|
/* @__PURE__ */ jsxs101(Highlight, { type: "warning", className: "text-center", children: [
|
|
22843
|
-
/* @__PURE__ */
|
|
22844
|
-
/* @__PURE__ */
|
|
23009
|
+
/* @__PURE__ */ jsx112("span", { className: "block text-xs", children: "By using EmbarkAI Wallet you agree to our terms." }),
|
|
23010
|
+
/* @__PURE__ */ jsx112("span", { className: "block text-xs", children: "To be updated..." })
|
|
22845
23011
|
] })
|
|
22846
23012
|
] });
|
|
22847
23013
|
}
|
|
@@ -23479,7 +23645,7 @@ var init_api5 = __esm({
|
|
|
23479
23645
|
});
|
|
23480
23646
|
|
|
23481
23647
|
// src/internal/assets/LumiaIcon.tsx
|
|
23482
|
-
import { jsx as
|
|
23648
|
+
import { jsx as jsx113, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
23483
23649
|
function LumiaIcon3(props) {
|
|
23484
23650
|
const { width = "24", height = "24", ...svgProps } = props;
|
|
23485
23651
|
return /* @__PURE__ */ jsxs102(
|
|
@@ -23493,29 +23659,29 @@ function LumiaIcon3(props) {
|
|
|
23493
23659
|
xmlns: "http://www.w3.org/2000/svg",
|
|
23494
23660
|
style: { flexShrink: 0 },
|
|
23495
23661
|
children: [
|
|
23496
|
-
/* @__PURE__ */
|
|
23497
|
-
/* @__PURE__ */
|
|
23662
|
+
/* @__PURE__ */ jsx113("rect", { width: "72", height: "72", rx: "36", fill: "var(--ui-kit-fg)" }),
|
|
23663
|
+
/* @__PURE__ */ jsx113(
|
|
23498
23664
|
"path",
|
|
23499
23665
|
{
|
|
23500
23666
|
d: "M25.3636 35.359H6.77698L26.3313 26.2792L35.3827 6.78174L35.404 25.3043C35.4112 30.8547 30.9139 35.3661 25.3565 35.3661L25.3636 35.359Z",
|
|
23501
23667
|
fill: "var(--ui-kit-bg)"
|
|
23502
23668
|
}
|
|
23503
23669
|
),
|
|
23504
|
-
/* @__PURE__ */
|
|
23670
|
+
/* @__PURE__ */ jsx113(
|
|
23505
23671
|
"path",
|
|
23506
23672
|
{
|
|
23507
23673
|
d: "M47.4365 35.359H66.0231L46.4687 26.2792L37.4174 6.78174L37.396 25.3043C37.3889 30.8547 41.8861 35.3661 47.4436 35.3661L47.4365 35.359Z",
|
|
23508
23674
|
fill: "var(--ui-kit-bg)"
|
|
23509
23675
|
}
|
|
23510
23676
|
),
|
|
23511
|
-
/* @__PURE__ */
|
|
23677
|
+
/* @__PURE__ */ jsx113(
|
|
23512
23678
|
"path",
|
|
23513
23679
|
{
|
|
23514
23680
|
d: "M47.4365 37.4226H66.0231L46.4687 46.5025L37.4174 65.9999L37.396 47.4773C37.3889 41.927 41.8861 37.4155 47.4436 37.4155L47.4365 37.4226Z",
|
|
23515
23681
|
fill: "var(--ui-kit-bg)"
|
|
23516
23682
|
}
|
|
23517
23683
|
),
|
|
23518
|
-
/* @__PURE__ */
|
|
23684
|
+
/* @__PURE__ */ jsx113(
|
|
23519
23685
|
"path",
|
|
23520
23686
|
{
|
|
23521
23687
|
d: "M25.3636 37.4226H6.77698L26.3313 46.5025L35.3827 65.9999L35.404 47.4773C35.4112 41.927 30.9139 37.4155 25.3565 37.4155L25.3636 37.4226Z",
|
|
@@ -23592,14 +23758,14 @@ var init_utils10 = __esm({
|
|
|
23592
23758
|
|
|
23593
23759
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
23594
23760
|
import { ChevronDown, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6, ChevronUp, Copy as Copy4 } from "lucide-react";
|
|
23595
|
-
import { Fragment as
|
|
23761
|
+
import { Fragment as Fragment45, jsx as jsx114, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
23596
23762
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
23597
23763
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
23598
23764
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
23599
23765
|
const { t } = useT();
|
|
23600
23766
|
return /* @__PURE__ */ jsxs103("div", { className: "border-t border-dashed border-[var(--ui-kit-bd)]", children: [
|
|
23601
23767
|
/* @__PURE__ */ jsxs103("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
23602
|
-
/* @__PURE__ */
|
|
23768
|
+
/* @__PURE__ */ jsx114("span", { className: "text-[var(--ui-kit-fg-muted)]", children: internal.method || "CALL" }),
|
|
23603
23769
|
/* @__PURE__ */ jsxs103("span", { children: [
|
|
23604
23770
|
formatValue2(internal.value, internalDecimals),
|
|
23605
23771
|
" ",
|
|
@@ -23611,7 +23777,7 @@ function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
|
23611
23777
|
internal.direction === "in" ? t("passport:common.from") : t("passport:common.to"),
|
|
23612
23778
|
": "
|
|
23613
23779
|
] }),
|
|
23614
|
-
/* @__PURE__ */
|
|
23780
|
+
/* @__PURE__ */ jsx114("span", { className: "font-mono", children: internal.counterpartyName || formatAddress(internal.counterparty) })
|
|
23615
23781
|
] })
|
|
23616
23782
|
] });
|
|
23617
23783
|
}
|
|
@@ -23635,11 +23801,11 @@ function TransactionsGroup(props) {
|
|
|
23635
23801
|
children: [
|
|
23636
23802
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
23637
23803
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
23638
|
-
parent.direction === "in" ? /* @__PURE__ */
|
|
23639
|
-
/* @__PURE__ */
|
|
23640
|
-
parent.status === "ok" ? /* @__PURE__ */
|
|
23804
|
+
parent.direction === "in" ? /* @__PURE__ */ jsx114(ChevronLeft2, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx114(ChevronRight6, { className: "w-4 h-4" }),
|
|
23805
|
+
/* @__PURE__ */ jsx114("span", { className: "text-[10px] uppercase", children: isIncoming ? t("passport:common.received") : t("passport:common.sent") }),
|
|
23806
|
+
parent.status === "ok" ? /* @__PURE__ */ jsx114(PositiveIcon, {}) : /* @__PURE__ */ jsx114(NegativeIcon, {})
|
|
23641
23807
|
] }),
|
|
23642
|
-
/* @__PURE__ */
|
|
23808
|
+
/* @__PURE__ */ jsx114("span", { className: "block flex-0 font-mono text-[10px] text-[var(--ui-kit-fg-muted)]", children: formatTimestamp(group.timestampMs) })
|
|
23643
23809
|
] }),
|
|
23644
23810
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
23645
23811
|
/* @__PURE__ */ jsxs103("div", { className: "flex flex-col gap-0", children: [
|
|
@@ -23655,7 +23821,7 @@ function TransactionsGroup(props) {
|
|
|
23655
23821
|
] })
|
|
23656
23822
|
] }),
|
|
23657
23823
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-0", children: [
|
|
23658
|
-
/* @__PURE__ */
|
|
23824
|
+
/* @__PURE__ */ jsx114(
|
|
23659
23825
|
Button,
|
|
23660
23826
|
{
|
|
23661
23827
|
variant: "ghost",
|
|
@@ -23664,10 +23830,10 @@ function TransactionsGroup(props) {
|
|
|
23664
23830
|
onClick: (e) => {
|
|
23665
23831
|
e.stopPropagation();
|
|
23666
23832
|
},
|
|
23667
|
-
children: /* @__PURE__ */
|
|
23833
|
+
children: /* @__PURE__ */ jsx114(Copy4, { className: "w-4 h-4" })
|
|
23668
23834
|
}
|
|
23669
23835
|
),
|
|
23670
|
-
/* @__PURE__ */
|
|
23836
|
+
/* @__PURE__ */ jsx114(
|
|
23671
23837
|
Button,
|
|
23672
23838
|
{
|
|
23673
23839
|
variant: "ghost",
|
|
@@ -23676,13 +23842,13 @@ function TransactionsGroup(props) {
|
|
|
23676
23842
|
onClick: (e) => {
|
|
23677
23843
|
e.stopPropagation();
|
|
23678
23844
|
},
|
|
23679
|
-
children: /* @__PURE__ */
|
|
23845
|
+
children: /* @__PURE__ */ jsx114(LumiaIcon3, { className: "w-4 h-4" })
|
|
23680
23846
|
}
|
|
23681
23847
|
)
|
|
23682
23848
|
] })
|
|
23683
23849
|
] }),
|
|
23684
|
-
internalsToRender.length > 0 && /* @__PURE__ */ jsxs103(
|
|
23685
|
-
/* @__PURE__ */
|
|
23850
|
+
internalsToRender.length > 0 && /* @__PURE__ */ jsxs103(Fragment45, { children: [
|
|
23851
|
+
/* @__PURE__ */ jsx114("div", { className: "w-full flex items-center h-4", children: /* @__PURE__ */ jsx114("div", { style: { borderTop: "1px solid var(--ui-kit-bd)" }, className: "flex-1" }) }),
|
|
23686
23852
|
/* @__PURE__ */ jsxs103(
|
|
23687
23853
|
"div",
|
|
23688
23854
|
{
|
|
@@ -23703,11 +23869,11 @@ function TransactionsGroup(props) {
|
|
|
23703
23869
|
internalsToRender.length,
|
|
23704
23870
|
")"
|
|
23705
23871
|
] }),
|
|
23706
|
-
expanded ? /* @__PURE__ */
|
|
23872
|
+
expanded ? /* @__PURE__ */ jsx114(ChevronUp, { className: "w-4 h-4 text-[var(--ui-kit-fg-muted)]" }) : /* @__PURE__ */ jsx114(ChevronDown, { className: "w-4 h-4 text-[var(--ui-kit-fg-muted)]" })
|
|
23707
23873
|
]
|
|
23708
23874
|
}
|
|
23709
23875
|
),
|
|
23710
|
-
expanded && /* @__PURE__ */
|
|
23876
|
+
expanded && /* @__PURE__ */ jsx114("div", { className: "px-2 pb-2 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ jsx114(
|
|
23711
23877
|
InternalTransaction,
|
|
23712
23878
|
{
|
|
23713
23879
|
internal,
|
|
@@ -23739,8 +23905,8 @@ var init_TransactionsGroup = __esm({
|
|
|
23739
23905
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
23740
23906
|
import { useQuery as useQuery25, useQueryClient as useQueryClient26 } from "@tanstack/react-query";
|
|
23741
23907
|
import { ArrowLeft as ArrowLeft22, Loader as Loader34, RefreshCw as RefreshCw3, XCircle } from "lucide-react";
|
|
23742
|
-
import { useCallback as
|
|
23743
|
-
import { jsx as
|
|
23908
|
+
import { useCallback as useCallback25, useState as useState31 } from "react";
|
|
23909
|
+
import { jsx as jsx115, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
23744
23910
|
function TransactionsMenu() {
|
|
23745
23911
|
const qc = useQueryClient26();
|
|
23746
23912
|
const address = useSession((st) => st.address);
|
|
@@ -23748,7 +23914,7 @@ function TransactionsMenu() {
|
|
|
23748
23914
|
const { t } = useT();
|
|
23749
23915
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
23750
23916
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
23751
|
-
const [expandedGroups, setExpandedGroups] =
|
|
23917
|
+
const [expandedGroups, setExpandedGroups] = useState31({});
|
|
23752
23918
|
const historySupported = isTransactionHistorySupported(chainConfig?.id);
|
|
23753
23919
|
const {
|
|
23754
23920
|
data: txHistoryGroups = [],
|
|
@@ -23761,12 +23927,12 @@ function TransactionsMenu() {
|
|
|
23761
23927
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address],
|
|
23762
23928
|
queryFn: () => getTransactionsListQuery({ address, chainConfig })
|
|
23763
23929
|
});
|
|
23764
|
-
const refreshTxHistory =
|
|
23930
|
+
const refreshTxHistory = useCallback25(
|
|
23765
23931
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address] }),
|
|
23766
23932
|
[qc, chainConfig.id, address]
|
|
23767
23933
|
);
|
|
23768
23934
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
23769
|
-
return /* @__PURE__ */
|
|
23935
|
+
return /* @__PURE__ */ jsx115(
|
|
23770
23936
|
"div",
|
|
23771
23937
|
{
|
|
23772
23938
|
style: {
|
|
@@ -23776,9 +23942,9 @@ function TransactionsMenu() {
|
|
|
23776
23942
|
className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
|
|
23777
23943
|
children: /* @__PURE__ */ jsxs104(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
23778
23944
|
/* @__PURE__ */ jsxs104("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
23779
|
-
/* @__PURE__ */
|
|
23780
|
-
/* @__PURE__ */
|
|
23781
|
-
historySupported && /* @__PURE__ */
|
|
23945
|
+
/* @__PURE__ */ jsx115(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx115(ArrowLeft22, { className: "h-4 w-4" }) }),
|
|
23946
|
+
/* @__PURE__ */ jsx115("span", { className: "text-xl font-semibold", children: t("passport:transactionsMenu.title") }),
|
|
23947
|
+
historySupported && /* @__PURE__ */ jsx115(
|
|
23782
23948
|
Button,
|
|
23783
23949
|
{
|
|
23784
23950
|
variant: "ghost",
|
|
@@ -23786,18 +23952,18 @@ function TransactionsMenu() {
|
|
|
23786
23952
|
onClick: refreshTxHistory,
|
|
23787
23953
|
disabled: isTxHistoryFetching,
|
|
23788
23954
|
title: "Refresh transactions",
|
|
23789
|
-
children: isTxHistoryFetching ? /* @__PURE__ */
|
|
23955
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ jsx115(Loader34, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx115(RefreshCw3, { className: "h-4 w-4" })
|
|
23790
23956
|
}
|
|
23791
23957
|
)
|
|
23792
23958
|
] }),
|
|
23793
|
-
!historySupported && /* @__PURE__ */
|
|
23794
|
-
historySupported && isTxHistoryLoading && /* @__PURE__ */
|
|
23959
|
+
!historySupported && /* @__PURE__ */ jsx115(Highlight, { type: "warning", children: /* @__PURE__ */ jsx115("span", { children: t("passport:transactionsMenu.comingSoon") }) }),
|
|
23960
|
+
historySupported && isTxHistoryLoading && /* @__PURE__ */ jsx115("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx115(Loader34, { className: "w-4 h-4 animate-spin" }) }),
|
|
23795
23961
|
historySupported && !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs104(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
23796
|
-
/* @__PURE__ */
|
|
23797
|
-
/* @__PURE__ */
|
|
23962
|
+
/* @__PURE__ */ jsx115(XCircle, { className: "w-4 h-4 flex-none" }),
|
|
23963
|
+
/* @__PURE__ */ jsx115("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
23798
23964
|
] }),
|
|
23799
|
-
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */
|
|
23800
|
-
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */
|
|
23965
|
+
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx115(Highlight, { type: "warning", children: /* @__PURE__ */ jsx115("span", { children: t("passport:transactionsMenu.noTransactions") }) }),
|
|
23966
|
+
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx115("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx115(
|
|
23801
23967
|
TransactionsGroup,
|
|
23802
23968
|
{
|
|
23803
23969
|
group,
|
|
@@ -24000,8 +24166,8 @@ var init_PageMap = __esm({
|
|
|
24000
24166
|
});
|
|
24001
24167
|
|
|
24002
24168
|
// src/internal/hooks/usePageMapper.tsx
|
|
24003
|
-
import { useCallback as
|
|
24004
|
-
import { jsx as
|
|
24169
|
+
import { useCallback as useCallback26, useEffect as useEffect45 } from "react";
|
|
24170
|
+
import { jsx as jsx116 } from "react/jsx-runtime";
|
|
24005
24171
|
function usePageMapper() {
|
|
24006
24172
|
const page = useLayoutDataStore((st) => st.page);
|
|
24007
24173
|
const {
|
|
@@ -24012,7 +24178,7 @@ function usePageMapper() {
|
|
|
24012
24178
|
setIsDialogOpen,
|
|
24013
24179
|
setIsDialogClosing
|
|
24014
24180
|
} = useLayoutStore();
|
|
24015
|
-
const closeDialog =
|
|
24181
|
+
const closeDialog = useCallback26(() => {
|
|
24016
24182
|
setIsDialogClosing(true);
|
|
24017
24183
|
setTimeout(() => {
|
|
24018
24184
|
setDialogContent(null);
|
|
@@ -24023,17 +24189,17 @@ function usePageMapper() {
|
|
|
24023
24189
|
setIsDialogOpen(false);
|
|
24024
24190
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
24025
24191
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
24026
|
-
const openDialog =
|
|
24192
|
+
const openDialog = useCallback26(
|
|
24027
24193
|
(pageItem) => {
|
|
24028
24194
|
const PageContentComponent = pageItem.component;
|
|
24029
24195
|
setDialogTitle(pageItem.title);
|
|
24030
24196
|
setDialogDescription(pageItem.description);
|
|
24031
|
-
setDialogContent(/* @__PURE__ */
|
|
24197
|
+
setDialogContent(/* @__PURE__ */ jsx116(PageContentComponent, {}));
|
|
24032
24198
|
setIsDialogOpen(true);
|
|
24033
24199
|
},
|
|
24034
24200
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
24035
24201
|
);
|
|
24036
|
-
|
|
24202
|
+
useEffect45(() => {
|
|
24037
24203
|
if (page === null) return closeDialog();
|
|
24038
24204
|
const pageItem = PAGE_MAP[page];
|
|
24039
24205
|
if (!pageItem) {
|
|
@@ -24057,7 +24223,7 @@ var init_usePageMapper = __esm({
|
|
|
24057
24223
|
|
|
24058
24224
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
24059
24225
|
import { useQuery as useQuery26 } from "@tanstack/react-query";
|
|
24060
|
-
import { useEffect as
|
|
24226
|
+
import { useEffect as useEffect46 } from "react";
|
|
24061
24227
|
function useSettingsNotifications() {
|
|
24062
24228
|
const address = useSession((st) => st.address);
|
|
24063
24229
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
@@ -24069,14 +24235,14 @@ function useSettingsNotifications() {
|
|
|
24069
24235
|
queryKey: [QUERY_KEYS.userProfile, address],
|
|
24070
24236
|
queryFn: getUserProfile
|
|
24071
24237
|
});
|
|
24072
|
-
|
|
24238
|
+
useEffect46(() => {
|
|
24073
24239
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
24074
24240
|
setSettingsNotifications({
|
|
24075
24241
|
...COMPLETE_KYC_PROGRESS,
|
|
24076
24242
|
status: isKYCVerified ? "resolved" : "active"
|
|
24077
24243
|
});
|
|
24078
24244
|
}, [userProfile, setSettingsNotifications]);
|
|
24079
|
-
|
|
24245
|
+
useEffect46(() => {
|
|
24080
24246
|
setSettingsNotifications({
|
|
24081
24247
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
24082
24248
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -24109,7 +24275,7 @@ var init_package = __esm({
|
|
|
24109
24275
|
"package.json"() {
|
|
24110
24276
|
package_default = {
|
|
24111
24277
|
name: "@embarkai/ui-kit",
|
|
24112
|
-
version: "0.4.
|
|
24278
|
+
version: "0.4.30",
|
|
24113
24279
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
24114
24280
|
type: "module",
|
|
24115
24281
|
main: "./dist/index.cjs",
|
|
@@ -24209,7 +24375,7 @@ var init_package = __esm({
|
|
|
24209
24375
|
// src/internal/components/Footer/Footer.tsx
|
|
24210
24376
|
import { useMutation as useMutation20, useQueryClient as useQueryClient27 } from "@tanstack/react-query";
|
|
24211
24377
|
import { Loader as Loader35, LogOut } from "lucide-react";
|
|
24212
|
-
import { jsx as
|
|
24378
|
+
import { jsx as jsx117, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
24213
24379
|
function Footer() {
|
|
24214
24380
|
const qc = useQueryClient27();
|
|
24215
24381
|
const { callbacksRef } = useProviderConfig();
|
|
@@ -24250,7 +24416,7 @@ function Footer() {
|
|
|
24250
24416
|
setIsDialogForced(false);
|
|
24251
24417
|
}
|
|
24252
24418
|
});
|
|
24253
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */
|
|
24419
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ jsx117("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ jsx117("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
24254
24420
|
return /* @__PURE__ */ jsxs105(
|
|
24255
24421
|
"div",
|
|
24256
24422
|
{
|
|
@@ -24266,8 +24432,8 @@ function Footer() {
|
|
|
24266
24432
|
disabled: isDisconnecting,
|
|
24267
24433
|
onClick: () => address && window.open(`${getExplorerUrl()}/address/${address}`, "_blank"),
|
|
24268
24434
|
children: [
|
|
24269
|
-
/* @__PURE__ */
|
|
24270
|
-
/* @__PURE__ */
|
|
24435
|
+
/* @__PURE__ */ jsx117(ChainIcon, { className: "flex-none w-6 h-6" }),
|
|
24436
|
+
/* @__PURE__ */ jsx117("span", { className: "text-xs font-bold", children: chainConfig.name || "EmbarkAI Wallet" })
|
|
24271
24437
|
]
|
|
24272
24438
|
}
|
|
24273
24439
|
),
|
|
@@ -24280,13 +24446,13 @@ function Footer() {
|
|
|
24280
24446
|
onClick: () => disconnect(address),
|
|
24281
24447
|
disabled: isDisconnecting,
|
|
24282
24448
|
children: [
|
|
24283
|
-
/* @__PURE__ */
|
|
24284
|
-
isDisconnecting ? /* @__PURE__ */
|
|
24449
|
+
/* @__PURE__ */ jsx117("span", { children: t("passport:auth.logout") }),
|
|
24450
|
+
isDisconnecting ? /* @__PURE__ */ jsx117(Loader35, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx117(LogOut, { className: "w-4 h-4" })
|
|
24285
24451
|
]
|
|
24286
24452
|
}
|
|
24287
24453
|
) : null
|
|
24288
24454
|
] }),
|
|
24289
|
-
/* @__PURE__ */
|
|
24455
|
+
/* @__PURE__ */ jsx117(
|
|
24290
24456
|
"span",
|
|
24291
24457
|
{
|
|
24292
24458
|
className: cn(
|
|
@@ -24327,8 +24493,8 @@ var init_Footer2 = __esm({
|
|
|
24327
24493
|
// src/internal/components/Header/Header.tsx
|
|
24328
24494
|
import { useQuery as useQuery27 } from "@tanstack/react-query";
|
|
24329
24495
|
import { Copy as Copy5, Loader as Loader36 } from "lucide-react";
|
|
24330
|
-
import { useCallback as
|
|
24331
|
-
import { Fragment as
|
|
24496
|
+
import { useCallback as useCallback27, useRef as useRef20, useState as useState32 } from "react";
|
|
24497
|
+
import { Fragment as Fragment46, jsx as jsx118, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
24332
24498
|
function formatAddress2(addr) {
|
|
24333
24499
|
if (!addr) return "";
|
|
24334
24500
|
return `${addr.slice(0, 10)}...${addr.slice(-4)}`;
|
|
@@ -24339,11 +24505,11 @@ function Header() {
|
|
|
24339
24505
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
24340
24506
|
const { t } = useT();
|
|
24341
24507
|
const proMode = useProMode();
|
|
24342
|
-
const [proToast, setProToast] =
|
|
24343
|
-
const [copied, setCopied] =
|
|
24344
|
-
const clickCountRef =
|
|
24345
|
-
const clickTimerRef =
|
|
24346
|
-
const handleAvatarClick =
|
|
24508
|
+
const [proToast, setProToast] = useState32(false);
|
|
24509
|
+
const [copied, setCopied] = useState32(false);
|
|
24510
|
+
const clickCountRef = useRef20(0);
|
|
24511
|
+
const clickTimerRef = useRef20(null);
|
|
24512
|
+
const handleAvatarClick = useCallback27(() => {
|
|
24347
24513
|
clickCountRef.current += 1;
|
|
24348
24514
|
if (clickTimerRef.current) {
|
|
24349
24515
|
clearTimeout(clickTimerRef.current);
|
|
@@ -24369,7 +24535,7 @@ function Header() {
|
|
|
24369
24535
|
});
|
|
24370
24536
|
const avatar = profile?.avatar || jwtTokenManager2.getAvatar();
|
|
24371
24537
|
const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
|
|
24372
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */
|
|
24538
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ jsx118("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ jsx118("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
24373
24539
|
return /* @__PURE__ */ jsxs106(
|
|
24374
24540
|
"div",
|
|
24375
24541
|
{
|
|
@@ -24383,8 +24549,8 @@ function Header() {
|
|
|
24383
24549
|
className: "relative flex-none w-12 h-12 flex items-center justify-center cursor-pointer select-none",
|
|
24384
24550
|
onClick: handleAvatarClick,
|
|
24385
24551
|
children: [
|
|
24386
|
-
proMode && /* @__PURE__ */
|
|
24387
|
-
avatar ? /* @__PURE__ */
|
|
24552
|
+
proMode && /* @__PURE__ */ jsx118("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3", children: "PRO" }),
|
|
24553
|
+
avatar ? /* @__PURE__ */ jsx118("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ jsx118(LumiaIcon3, { width: 48, height: 48 })
|
|
24388
24554
|
]
|
|
24389
24555
|
}
|
|
24390
24556
|
),
|
|
@@ -24394,10 +24560,10 @@ function Header() {
|
|
|
24394
24560
|
style: { width: "calc(100% - 48px - var(--ui-kit-gap))" },
|
|
24395
24561
|
className: "flex-1 flex flex-col justify-center gap-1",
|
|
24396
24562
|
children: [
|
|
24397
|
-
isProfileLoading && /* @__PURE__ */
|
|
24398
|
-
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ jsxs106(
|
|
24563
|
+
isProfileLoading && /* @__PURE__ */ jsx118(Loader36, { className: "w-4 h-4 animate-spin" }),
|
|
24564
|
+
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ jsxs106(Fragment46, { children: [
|
|
24399
24565
|
/* @__PURE__ */ jsxs106("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
24400
|
-
/* @__PURE__ */
|
|
24566
|
+
/* @__PURE__ */ jsx118(
|
|
24401
24567
|
"span",
|
|
24402
24568
|
{
|
|
24403
24569
|
className: cn(
|
|
@@ -24407,9 +24573,9 @@ function Header() {
|
|
|
24407
24573
|
children: displayName || config.current?.ui?.title || "EmbarkAI"
|
|
24408
24574
|
}
|
|
24409
24575
|
),
|
|
24410
|
-
/* @__PURE__ */
|
|
24576
|
+
/* @__PURE__ */ jsx118(KYCStatus, {})
|
|
24411
24577
|
] }),
|
|
24412
|
-
/* @__PURE__ */
|
|
24578
|
+
/* @__PURE__ */ jsx118(BalanceView, {})
|
|
24413
24579
|
] })
|
|
24414
24580
|
]
|
|
24415
24581
|
}
|
|
@@ -24417,10 +24583,10 @@ function Header() {
|
|
|
24417
24583
|
] }),
|
|
24418
24584
|
!!address && /* @__PURE__ */ jsxs106("div", { className: "w-full flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
24419
24585
|
/* @__PURE__ */ jsxs106("div", { className: "flex items-center w-fit text-[10px] px-2 leading-6 text-[var(--ui-kit-fg)] gap-2", children: [
|
|
24420
|
-
/* @__PURE__ */
|
|
24421
|
-
/* @__PURE__ */
|
|
24586
|
+
/* @__PURE__ */ jsx118("span", { children: formatAddress2(address) }),
|
|
24587
|
+
/* @__PURE__ */ jsx118(ChainIcon, { className: "flex-none w-4 h-4" })
|
|
24422
24588
|
] }),
|
|
24423
|
-
/* @__PURE__ */
|
|
24589
|
+
/* @__PURE__ */ jsx118("div", { className: "w-fit flex items-center gap-[var(--ui-kit-gap)] justify-between", children: /* @__PURE__ */ jsxs106(
|
|
24424
24590
|
Button,
|
|
24425
24591
|
{
|
|
24426
24592
|
size: "small",
|
|
@@ -24432,13 +24598,13 @@ function Header() {
|
|
|
24432
24598
|
setTimeout(() => setCopied(false), 1500);
|
|
24433
24599
|
},
|
|
24434
24600
|
children: [
|
|
24435
|
-
copied ? /* @__PURE__ */
|
|
24436
|
-
/* @__PURE__ */
|
|
24601
|
+
copied ? /* @__PURE__ */ jsx118(PositiveIcon, {}) : /* @__PURE__ */ jsx118(Copy5, { className: "w-4 h-4" }),
|
|
24602
|
+
/* @__PURE__ */ jsx118("span", { className: "uppercase", children: t("passport:common.copy") })
|
|
24437
24603
|
]
|
|
24438
24604
|
}
|
|
24439
24605
|
) })
|
|
24440
24606
|
] }),
|
|
24441
|
-
proToast && /* @__PURE__ */
|
|
24607
|
+
proToast && /* @__PURE__ */ jsx118("div", { className: "text-xs text-center text-[var(--ui-kit-primary)] font-medium animate-pulse", children: "Pro Mode activated" })
|
|
24442
24608
|
]
|
|
24443
24609
|
}
|
|
24444
24610
|
);
|
|
@@ -24473,7 +24639,7 @@ import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
|
24473
24639
|
import { merge as merge2 } from "lodash-es";
|
|
24474
24640
|
import { ArrowLeft as ArrowLeft23, SlidersHorizontal, X as X2 } from "lucide-react";
|
|
24475
24641
|
import { forwardRef as forwardRef4 } from "react";
|
|
24476
|
-
import { jsx as
|
|
24642
|
+
import { jsx as jsx119, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
24477
24643
|
function useDecideContentStyles() {
|
|
24478
24644
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
24479
24645
|
const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
|
|
@@ -24496,7 +24662,7 @@ var init_dialog = __esm({
|
|
|
24496
24662
|
Dialog = DialogPrimitive.Root;
|
|
24497
24663
|
DialogPortal = DialogPrimitive.Portal;
|
|
24498
24664
|
DialogOverlay = forwardRef4(
|
|
24499
|
-
({ className, closing, ...props }, ref) => /* @__PURE__ */
|
|
24665
|
+
({ className, closing, ...props }, ref) => /* @__PURE__ */ jsx119(
|
|
24500
24666
|
DialogPrimitive.Overlay,
|
|
24501
24667
|
{
|
|
24502
24668
|
ref,
|
|
@@ -24529,9 +24695,9 @@ var init_dialog = __esm({
|
|
|
24529
24695
|
const { isMobileView, isClosing, style } = useDecideContentStyles();
|
|
24530
24696
|
const animationCnPrefix = isMobileView ? "animate-mobile-dialog" : "animate-dialog";
|
|
24531
24697
|
const dialogAnimationCn = isClosing ? `${animationCnPrefix}-out` : `${animationCnPrefix}-in`;
|
|
24532
|
-
return /* @__PURE__ */
|
|
24533
|
-
/* @__PURE__ */
|
|
24534
|
-
/* @__PURE__ */
|
|
24698
|
+
return /* @__PURE__ */ jsx119(DialogPortal, { children: /* @__PURE__ */ jsxs107("div", { className: "embarkai-ui-scope", "data-current-theme-mode": colorMode, style: { ...style, outline: "none" }, children: [
|
|
24699
|
+
/* @__PURE__ */ jsx119(DialogOverlay, { closing: isClosing, className: cn(isWalletLinking && "pointer-events-none") }),
|
|
24700
|
+
/* @__PURE__ */ jsx119(
|
|
24535
24701
|
"div",
|
|
24536
24702
|
{
|
|
24537
24703
|
className: cn(
|
|
@@ -24571,8 +24737,8 @@ var init_dialog = __esm({
|
|
|
24571
24737
|
className: "relative w-4 h-4",
|
|
24572
24738
|
onClick: () => setPage("languages" /* LANGUAGES */),
|
|
24573
24739
|
children: [
|
|
24574
|
-
/* @__PURE__ */
|
|
24575
|
-
/* @__PURE__ */
|
|
24740
|
+
/* @__PURE__ */ jsx119("span", { className: "sr-only", children: t("passport:common.language") }),
|
|
24741
|
+
/* @__PURE__ */ jsx119("span", { className: "w-4 h-4 leading-4 block text-[10px] font-bold", children: getLanguageIcon(i18n.resolvedLanguage) || i18n.resolvedLanguage?.toUpperCase() })
|
|
24576
24742
|
]
|
|
24577
24743
|
}
|
|
24578
24744
|
),
|
|
@@ -24584,9 +24750,9 @@ var init_dialog = __esm({
|
|
|
24584
24750
|
className: "relative w-4 h-4",
|
|
24585
24751
|
onClick: () => setPage("settings" /* SETTINGS */),
|
|
24586
24752
|
children: [
|
|
24587
|
-
/* @__PURE__ */
|
|
24588
|
-
/* @__PURE__ */
|
|
24589
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
24753
|
+
/* @__PURE__ */ jsx119("span", { className: "sr-only", children: t("passport:common.settings") }),
|
|
24754
|
+
/* @__PURE__ */ jsx119(SlidersHorizontal, { className: "w-4 h-4" }),
|
|
24755
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx119(
|
|
24590
24756
|
"div",
|
|
24591
24757
|
{
|
|
24592
24758
|
className: cn(
|
|
@@ -24600,9 +24766,9 @@ var init_dialog = __esm({
|
|
|
24600
24766
|
]
|
|
24601
24767
|
}
|
|
24602
24768
|
),
|
|
24603
|
-
/* @__PURE__ */
|
|
24604
|
-
/* @__PURE__ */
|
|
24605
|
-
/* @__PURE__ */
|
|
24769
|
+
/* @__PURE__ */ jsx119(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsxs107(Button, { variant: "ghost", size: "icon", className: "w-4 h-4", children: [
|
|
24770
|
+
/* @__PURE__ */ jsx119(X2, { className: "h-4 w-4" }),
|
|
24771
|
+
/* @__PURE__ */ jsx119("span", { className: "sr-only", children: t("passport:common.close") })
|
|
24606
24772
|
] }) })
|
|
24607
24773
|
]
|
|
24608
24774
|
}
|
|
@@ -24616,11 +24782,11 @@ var init_dialog = __esm({
|
|
|
24616
24782
|
}
|
|
24617
24783
|
);
|
|
24618
24784
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
24619
|
-
DialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
24785
|
+
DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx119("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
24620
24786
|
DialogHeader.displayName = "DialogHeader";
|
|
24621
|
-
DialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
24787
|
+
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx119("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
24622
24788
|
DialogFooter.displayName = "DialogFooter";
|
|
24623
|
-
DialogTitle = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24789
|
+
DialogTitle = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx119(
|
|
24624
24790
|
DialogPrimitive.Title,
|
|
24625
24791
|
{
|
|
24626
24792
|
ref,
|
|
@@ -24629,24 +24795,24 @@ var init_dialog = __esm({
|
|
|
24629
24795
|
}
|
|
24630
24796
|
));
|
|
24631
24797
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
24632
|
-
DialogDescription = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24798
|
+
DialogDescription = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx119(DialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
24633
24799
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
24634
24800
|
}
|
|
24635
24801
|
});
|
|
24636
24802
|
|
|
24637
24803
|
// src/internal/components/ui/visually-hidden.tsx
|
|
24638
|
-
import { jsx as
|
|
24804
|
+
import { jsx as jsx120 } from "react/jsx-runtime";
|
|
24639
24805
|
var VisuallyHidden;
|
|
24640
24806
|
var init_visually_hidden = __esm({
|
|
24641
24807
|
"src/internal/components/ui/visually-hidden.tsx"() {
|
|
24642
|
-
VisuallyHidden = ({ children }) => /* @__PURE__ */
|
|
24808
|
+
VisuallyHidden = ({ children }) => /* @__PURE__ */ jsx120("span", { className: "sr-only absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children });
|
|
24643
24809
|
}
|
|
24644
24810
|
});
|
|
24645
24811
|
|
|
24646
24812
|
// src/internal/components/Dialog/Dialog.tsx
|
|
24647
24813
|
import { AnimatePresence, motion } from "framer-motion";
|
|
24648
|
-
import { useEffect as
|
|
24649
|
-
import { jsx as
|
|
24814
|
+
import { useEffect as useEffect47 } from "react";
|
|
24815
|
+
import { jsx as jsx121, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
24650
24816
|
function Dialog2() {
|
|
24651
24817
|
const config = useProviderConfig().config;
|
|
24652
24818
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -24657,7 +24823,7 @@ function Dialog2() {
|
|
|
24657
24823
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
24658
24824
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
24659
24825
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
24660
|
-
|
|
24826
|
+
useEffect47(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
24661
24827
|
usePageMapper();
|
|
24662
24828
|
useAutoConnect();
|
|
24663
24829
|
useBackupStatusChanges();
|
|
@@ -24665,7 +24831,7 @@ function Dialog2() {
|
|
|
24665
24831
|
useSettingsNotifications();
|
|
24666
24832
|
useListenIframeAuthEvents();
|
|
24667
24833
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
24668
|
-
return /* @__PURE__ */
|
|
24834
|
+
return /* @__PURE__ */ jsx121(
|
|
24669
24835
|
Dialog,
|
|
24670
24836
|
{
|
|
24671
24837
|
modal: !isWalletLinking,
|
|
@@ -24675,10 +24841,10 @@ function Dialog2() {
|
|
|
24675
24841
|
if (!open) setPage(null);
|
|
24676
24842
|
},
|
|
24677
24843
|
children: /* @__PURE__ */ jsxs108(DialogContent, { colorMode, className, children: [
|
|
24678
|
-
/* @__PURE__ */
|
|
24679
|
-
/* @__PURE__ */
|
|
24680
|
-
!isHeaderHidden && /* @__PURE__ */
|
|
24681
|
-
/* @__PURE__ */
|
|
24844
|
+
/* @__PURE__ */ jsx121(VisuallyHidden, { children: /* @__PURE__ */ jsx121(DialogTitle, { children: dialogTitle }) }),
|
|
24845
|
+
/* @__PURE__ */ jsx121(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
24846
|
+
!isHeaderHidden && /* @__PURE__ */ jsx121(Header, {}),
|
|
24847
|
+
/* @__PURE__ */ jsx121(AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ jsx121(
|
|
24682
24848
|
motion.div,
|
|
24683
24849
|
{
|
|
24684
24850
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
@@ -24690,7 +24856,7 @@ function Dialog2() {
|
|
|
24690
24856
|
},
|
|
24691
24857
|
page || "empty"
|
|
24692
24858
|
) }),
|
|
24693
|
-
/* @__PURE__ */
|
|
24859
|
+
/* @__PURE__ */ jsx121(Footer, {})
|
|
24694
24860
|
] })
|
|
24695
24861
|
}
|
|
24696
24862
|
);
|
|
@@ -24723,7 +24889,7 @@ var init_Dialog2 = __esm({
|
|
|
24723
24889
|
});
|
|
24724
24890
|
|
|
24725
24891
|
// src/internal/components/TssManager.tsx
|
|
24726
|
-
import React9, { useCallback as
|
|
24892
|
+
import React9, { useCallback as useCallback28 } from "react";
|
|
24727
24893
|
var TssManagerWithRef;
|
|
24728
24894
|
var init_TssManager = __esm({
|
|
24729
24895
|
"src/internal/components/TssManager.tsx"() {
|
|
@@ -24738,7 +24904,7 @@ var init_TssManager = __esm({
|
|
|
24738
24904
|
const setStatus = useSession((st) => st.setStatus);
|
|
24739
24905
|
const setSession = useSession((st) => st.setSession);
|
|
24740
24906
|
const setAddress = useSession((st) => st.setAddress);
|
|
24741
|
-
const onSessionCreated =
|
|
24907
|
+
const onSessionCreated = useCallback28(
|
|
24742
24908
|
(session, address) => {
|
|
24743
24909
|
setSession(session);
|
|
24744
24910
|
setAddress(address);
|
|
@@ -24779,7 +24945,7 @@ var init_TssManager = __esm({
|
|
|
24779
24945
|
// src/internal/components/WalletConnectHandler.tsx
|
|
24780
24946
|
import { useConnectModal as useConnectModal2 } from "@rainbow-me/rainbowkit";
|
|
24781
24947
|
import { useMutation as useMutation21, useQueryClient as useQueryClient28 } from "@tanstack/react-query";
|
|
24782
|
-
import React10, { useCallback as
|
|
24948
|
+
import React10, { useCallback as useCallback29, useEffect as useEffect48 } from "react";
|
|
24783
24949
|
import { useAccount, useDisconnect, useSignMessage as useSignMessage2 } from "wagmi";
|
|
24784
24950
|
function WalletConnectHandler() {
|
|
24785
24951
|
const qc = useQueryClient28();
|
|
@@ -24802,7 +24968,7 @@ function WalletConnectHandler() {
|
|
|
24802
24968
|
const projectId = providerConfig?.projectId;
|
|
24803
24969
|
const setExternalWallet = useExternalWalletStore((st) => st.setExternalWallet);
|
|
24804
24970
|
const setPendingWalletLogin = useLayoutDataStore((st) => st.setPendingWalletLogin);
|
|
24805
|
-
const onLinkingComplete =
|
|
24971
|
+
const onLinkingComplete = useCallback29(
|
|
24806
24972
|
async (success) => {
|
|
24807
24973
|
setIsWalletLinking(false);
|
|
24808
24974
|
if (!success && !passportWalletAddress) {
|
|
@@ -24834,7 +25000,7 @@ function WalletConnectHandler() {
|
|
|
24834
25000
|
const [hasStartedLinking, setHasStartedLinking] = React10.useState(false);
|
|
24835
25001
|
const [modalWasOpened, setModalWasOpened] = React10.useState(false);
|
|
24836
25002
|
const [pendingModalOpen, setPendingModalOpen] = React10.useState(false);
|
|
24837
|
-
|
|
25003
|
+
useEffect48(() => {
|
|
24838
25004
|
if (isWalletLinking && !hasStartedLinking) {
|
|
24839
25005
|
console.log("[WalletConnectHandler] Starting wallet link flow:", {
|
|
24840
25006
|
isConnected,
|
|
@@ -24872,18 +25038,18 @@ function WalletConnectHandler() {
|
|
|
24872
25038
|
setProviderType,
|
|
24873
25039
|
walletMode
|
|
24874
25040
|
]);
|
|
24875
|
-
|
|
25041
|
+
useEffect48(() => {
|
|
24876
25042
|
if (pendingModalOpen && !isConnected && openConnectModal) {
|
|
24877
25043
|
setPendingModalOpen(false);
|
|
24878
25044
|
openConnectModal();
|
|
24879
25045
|
}
|
|
24880
25046
|
}, [pendingModalOpen, isConnected, openConnectModal]);
|
|
24881
|
-
|
|
25047
|
+
useEffect48(() => {
|
|
24882
25048
|
if (connectModalOpen && hasStartedLinking) {
|
|
24883
25049
|
setModalWasOpened(true);
|
|
24884
25050
|
}
|
|
24885
25051
|
}, [connectModalOpen, hasStartedLinking]);
|
|
24886
|
-
|
|
25052
|
+
useEffect48(() => {
|
|
24887
25053
|
if (modalWasOpened && !connectModalOpen && !isConnected && isWalletLinking) {
|
|
24888
25054
|
console.log("[WalletConnectHandler] Modal closed without connecting");
|
|
24889
25055
|
onLinkingComplete(false);
|
|
@@ -24891,7 +25057,7 @@ function WalletConnectHandler() {
|
|
|
24891
25057
|
setModalWasOpened(false);
|
|
24892
25058
|
}
|
|
24893
25059
|
}, [connectModalOpen, modalWasOpened, isConnected, isWalletLinking]);
|
|
24894
|
-
|
|
25060
|
+
useEffect48(() => {
|
|
24895
25061
|
if (isWalletLinking) {
|
|
24896
25062
|
const timeout = setTimeout(() => {
|
|
24897
25063
|
console.warn("[WalletConnectHandler] Wallet linking timed out, resetting state");
|
|
@@ -25011,7 +25177,7 @@ function WalletConnectHandler() {
|
|
|
25011
25177
|
setPage(passportWalletAddress ? "manage-wallet" /* MANAGE_WALLET */ : "auth" /* AUTH */);
|
|
25012
25178
|
}
|
|
25013
25179
|
});
|
|
25014
|
-
|
|
25180
|
+
useEffect48(() => {
|
|
25015
25181
|
if (!!chain?.id && isConnected && walletAddress && isWalletLinking && hasStartedLinking && modalWasOpened && !pendingModalOpen) {
|
|
25016
25182
|
console.log("[WalletConnectHandler] handleWalletSign triggered");
|
|
25017
25183
|
if (!passportWalletAddress) {
|
|
@@ -25021,7 +25187,7 @@ function WalletConnectHandler() {
|
|
|
25021
25187
|
handleWalletSign({ chainId: chain.id, signingWalletAddress: walletAddress });
|
|
25022
25188
|
}
|
|
25023
25189
|
}, [chain, isConnected, walletAddress, isWalletLinking, hasStartedLinking, modalWasOpened, pendingModalOpen]);
|
|
25024
|
-
|
|
25190
|
+
useEffect48(() => {
|
|
25025
25191
|
if (isConnected && !chain?.id && isWalletLinking && hasStartedLinking && !connectModalOpen && !isWalletSigning) {
|
|
25026
25192
|
const timeout = setTimeout(() => {
|
|
25027
25193
|
console.warn("[WalletConnectHandler] Wallet connected but chain info missing, resetting");
|
|
@@ -25057,7 +25223,7 @@ var init_WalletConnectHandler = __esm({
|
|
|
25057
25223
|
});
|
|
25058
25224
|
|
|
25059
25225
|
// src/internal/components/DirectWalletHandler.tsx
|
|
25060
|
-
import { useEffect as
|
|
25226
|
+
import { useEffect as useEffect49 } from "react";
|
|
25061
25227
|
import { useAccount as useAccount2 } from "wagmi";
|
|
25062
25228
|
function DirectWalletHandler() {
|
|
25063
25229
|
const walletMode = useProviderConfig().config.current?.wallet?.mode || "linked";
|
|
@@ -25069,13 +25235,13 @@ function DirectWalletHandler() {
|
|
|
25069
25235
|
const setExternalChainId = useExternalWalletStore((st) => st.setExternalChainId);
|
|
25070
25236
|
const setConfigMode = useExternalWalletStore((st) => st.setConfigMode);
|
|
25071
25237
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
25072
|
-
|
|
25238
|
+
useEffect49(() => {
|
|
25073
25239
|
setConfigMode(walletMode);
|
|
25074
25240
|
if (walletMode !== "both") {
|
|
25075
25241
|
setActiveMode(walletMode);
|
|
25076
25242
|
}
|
|
25077
25243
|
}, [walletMode, setConfigMode, setActiveMode]);
|
|
25078
|
-
|
|
25244
|
+
useEffect49(() => {
|
|
25079
25245
|
if (isConnected && address && !isExternalConnected && connector && chain?.id) {
|
|
25080
25246
|
setExternalWallet({
|
|
25081
25247
|
address,
|
|
@@ -25084,17 +25250,17 @@ function DirectWalletHandler() {
|
|
|
25084
25250
|
});
|
|
25085
25251
|
}
|
|
25086
25252
|
}, [isConnected, address, isExternalConnected, connector, chain?.id, setExternalWallet]);
|
|
25087
|
-
|
|
25253
|
+
useEffect49(() => {
|
|
25088
25254
|
if (isExternalConnected && !isConnected) {
|
|
25089
25255
|
clearExternalWallet();
|
|
25090
25256
|
}
|
|
25091
25257
|
}, [isConnected, isExternalConnected, clearExternalWallet]);
|
|
25092
|
-
|
|
25258
|
+
useEffect49(() => {
|
|
25093
25259
|
if (isExternalConnected && isConnected && chain?.id) {
|
|
25094
25260
|
setExternalChainId(chain.id);
|
|
25095
25261
|
}
|
|
25096
25262
|
}, [chain?.id, isConnected, isExternalConnected, setExternalChainId]);
|
|
25097
|
-
|
|
25263
|
+
useEffect49(() => {
|
|
25098
25264
|
if (isExternalConnected && isConnected && address && address !== externalAddress && connector && chain?.id) {
|
|
25099
25265
|
setExternalWallet({
|
|
25100
25266
|
address,
|
|
@@ -25120,10 +25286,10 @@ import {
|
|
|
25120
25286
|
getChainConfig as getChainConfig10,
|
|
25121
25287
|
getViemChain as getViemChain2
|
|
25122
25288
|
} from "@embarkai/core/read";
|
|
25123
|
-
import { Fragment as
|
|
25124
|
-
import { create as
|
|
25289
|
+
import { Fragment as Fragment47 } from "react";
|
|
25290
|
+
import { create as create11 } from "zustand";
|
|
25125
25291
|
import { persist as persist3 } from "zustand/middleware";
|
|
25126
|
-
import { jsx as
|
|
25292
|
+
import { jsx as jsx122, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
25127
25293
|
function getChainParams(chainCfg) {
|
|
25128
25294
|
return {
|
|
25129
25295
|
activeChainId: chainCfg.id,
|
|
@@ -25141,19 +25307,19 @@ function waitForStoreHydration() {
|
|
|
25141
25307
|
}
|
|
25142
25308
|
function SessionProvider({ children }) {
|
|
25143
25309
|
const config = useProviderConfig().config;
|
|
25144
|
-
return /* @__PURE__ */ jsxs109(
|
|
25310
|
+
return /* @__PURE__ */ jsxs109(Fragment47, { children: [
|
|
25145
25311
|
children,
|
|
25146
|
-
config.current?.wallet?.enabled && /* @__PURE__ */
|
|
25147
|
-
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */
|
|
25148
|
-
/* @__PURE__ */
|
|
25149
|
-
/* @__PURE__ */
|
|
25150
|
-
/* @__PURE__ */
|
|
25312
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ jsx122(WalletConnectHandler, {}),
|
|
25313
|
+
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */ jsx122(DirectWalletHandler, {}),
|
|
25314
|
+
/* @__PURE__ */ jsx122(BalanceFeedProvider, {}),
|
|
25315
|
+
/* @__PURE__ */ jsx122(ChainSync, {}),
|
|
25316
|
+
/* @__PURE__ */ jsx122(
|
|
25151
25317
|
TssManagerWithRef,
|
|
25152
25318
|
{
|
|
25153
25319
|
mpcPin: void 0
|
|
25154
25320
|
}
|
|
25155
25321
|
),
|
|
25156
|
-
/* @__PURE__ */
|
|
25322
|
+
/* @__PURE__ */ jsx122(Dialog2, {})
|
|
25157
25323
|
] });
|
|
25158
25324
|
}
|
|
25159
25325
|
var useSession, requireActiveChainId;
|
|
@@ -25166,7 +25332,7 @@ var init_SessionContext = __esm({
|
|
|
25166
25332
|
init_WalletConnectHandler();
|
|
25167
25333
|
init_DirectWalletHandler();
|
|
25168
25334
|
init_ProviderContext();
|
|
25169
|
-
useSession =
|
|
25335
|
+
useSession = create11()(
|
|
25170
25336
|
persist3(
|
|
25171
25337
|
(set) => ({
|
|
25172
25338
|
isLoading: false,
|
|
@@ -27837,7 +28003,7 @@ import { darkTheme, lightTheme, RainbowKitProvider as NativeRainbowKitProvider }
|
|
|
27837
28003
|
import { useMemo as useMemo9 } from "react";
|
|
27838
28004
|
import { WagmiProvider } from "wagmi";
|
|
27839
28005
|
import "@rainbow-me/rainbowkit/styles.css";
|
|
27840
|
-
import { Fragment as
|
|
28006
|
+
import { Fragment as Fragment48, jsx as jsx123 } from "react/jsx-runtime";
|
|
27841
28007
|
function RainbowKitProvider({ children }) {
|
|
27842
28008
|
const config = useProviderConfig().config;
|
|
27843
28009
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -27869,8 +28035,8 @@ function RainbowKitProvider({ children }) {
|
|
|
27869
28035
|
radii: rainbowTheme.lightMode.radii
|
|
27870
28036
|
};
|
|
27871
28037
|
}, [colorMode]);
|
|
27872
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */
|
|
27873
|
-
return /* @__PURE__ */
|
|
28038
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx123(Fragment48, { children });
|
|
28039
|
+
return /* @__PURE__ */ jsx123(WagmiProvider, { config: rainbowConfig, children: /* @__PURE__ */ jsx123(NativeRainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
27874
28040
|
}
|
|
27875
28041
|
var init_RainbowKitContext = __esm({
|
|
27876
28042
|
"src/context/RainbowKitContext.tsx"() {
|
|
@@ -27936,13 +28102,13 @@ var init_wagmi = __esm({
|
|
|
27936
28102
|
|
|
27937
28103
|
// src/context/WagmiContext.tsx
|
|
27938
28104
|
import { WagmiProvider as NativeWagmiProvider } from "wagmi";
|
|
27939
|
-
import { jsx as
|
|
28105
|
+
import { jsx as jsx124 } from "react/jsx-runtime";
|
|
27940
28106
|
var WagmiProvider2;
|
|
27941
28107
|
var init_WagmiContext = __esm({
|
|
27942
28108
|
"src/context/WagmiContext.tsx"() {
|
|
27943
28109
|
init_wagmi();
|
|
27944
28110
|
WagmiProvider2 = ({ children }) => {
|
|
27945
|
-
return /* @__PURE__ */
|
|
28111
|
+
return /* @__PURE__ */ jsx124(NativeWagmiProvider, { config: wagmiConfig, children });
|
|
27946
28112
|
};
|
|
27947
28113
|
}
|
|
27948
28114
|
});
|
|
@@ -27952,13 +28118,13 @@ import { initSdkErrorTracking } from "@embarkai/core/internal/error-tracking";
|
|
|
27952
28118
|
import { merge as merge3 } from "lodash-es";
|
|
27953
28119
|
import {
|
|
27954
28120
|
createContext,
|
|
27955
|
-
useCallback as
|
|
28121
|
+
useCallback as useCallback30,
|
|
27956
28122
|
useContext,
|
|
27957
|
-
useEffect as
|
|
28123
|
+
useEffect as useEffect50,
|
|
27958
28124
|
useMemo as useMemo10,
|
|
27959
|
-
useRef as
|
|
28125
|
+
useRef as useRef21
|
|
27960
28126
|
} from "react";
|
|
27961
|
-
import { jsx as
|
|
28127
|
+
import { jsx as jsx125 } from "react/jsx-runtime";
|
|
27962
28128
|
function clearLegacyWagmiStorage() {
|
|
27963
28129
|
if (typeof window === "undefined" || !window.localStorage) return;
|
|
27964
28130
|
const legacyKeys = [
|
|
@@ -27976,10 +28142,10 @@ function clearLegacyWagmiStorage() {
|
|
|
27976
28142
|
}
|
|
27977
28143
|
function Provider(props) {
|
|
27978
28144
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
27979
|
-
const callbacksRef =
|
|
27980
|
-
|
|
27981
|
-
const config =
|
|
27982
|
-
const updateConfig =
|
|
28145
|
+
const callbacksRef = useRef21(callbacks);
|
|
28146
|
+
useEffect50(() => notifyNoProjetctId(projectId), [projectId]);
|
|
28147
|
+
const config = useRef21(merge3({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
|
|
28148
|
+
const updateConfig = useCallback30((updates) => {
|
|
27983
28149
|
const prev = config.current;
|
|
27984
28150
|
const next = { ...prev };
|
|
27985
28151
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -28013,12 +28179,12 @@ function Provider(props) {
|
|
|
28013
28179
|
if (updates.translations) next.translations = { ...next.translations, ...updates.translations };
|
|
28014
28180
|
config.current = next;
|
|
28015
28181
|
}, []);
|
|
28016
|
-
const updateCallbacks =
|
|
28182
|
+
const updateCallbacks = useCallback30((updates) => {
|
|
28017
28183
|
const prev = callbacksRef.current;
|
|
28018
28184
|
const next = updates ? { ...prev, ...updates } : void 0;
|
|
28019
28185
|
callbacksRef.current = next;
|
|
28020
28186
|
}, []);
|
|
28021
|
-
|
|
28187
|
+
useEffect50(() => {
|
|
28022
28188
|
if (typeof window === "undefined" || !projectId) return;
|
|
28023
28189
|
const mergedConfig = merge3(DEFAULT_PROVIDER_CONFIG, initialConfig);
|
|
28024
28190
|
updateConfig(mergedConfig);
|
|
@@ -28039,7 +28205,7 @@ function Provider(props) {
|
|
|
28039
28205
|
useSession.getState().setActiveChainId(mergedConfig.network.chainId);
|
|
28040
28206
|
}
|
|
28041
28207
|
}, [projectId, initialConfig]);
|
|
28042
|
-
|
|
28208
|
+
useEffect50(() => {
|
|
28043
28209
|
if (typeof window === "undefined" || !projectId) return;
|
|
28044
28210
|
try {
|
|
28045
28211
|
initSdkErrorTracking();
|
|
@@ -28080,8 +28246,8 @@ function Provider(props) {
|
|
|
28080
28246
|
[config, updateConfig, callbacks, updateCallbacks]
|
|
28081
28247
|
);
|
|
28082
28248
|
if (!!initialConfig?.wallet?.enabled)
|
|
28083
|
-
return /* @__PURE__ */
|
|
28084
|
-
return /* @__PURE__ */
|
|
28249
|
+
return /* @__PURE__ */ jsx125(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx125(RainbowKitProvider, { children: /* @__PURE__ */ jsx125(SessionProvider, { children }) }) });
|
|
28250
|
+
return /* @__PURE__ */ jsx125(WagmiProvider2, { children: /* @__PURE__ */ jsx125(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx125(SessionProvider, { children }) }) });
|
|
28085
28251
|
}
|
|
28086
28252
|
var UIContext, useProviderConfig;
|
|
28087
28253
|
var init_ProviderContext = __esm({
|
|
@@ -28102,7 +28268,7 @@ var init_ProviderContext = __esm({
|
|
|
28102
28268
|
});
|
|
28103
28269
|
|
|
28104
28270
|
// src/styles/built.css
|
|
28105
|
-
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 .sticky{position:sticky}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-0\\.5{right:-.125rem}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-0\\.5{top:-.125rem}.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-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-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 .mt-\\[var\\(--ui-kit-gap\\)\\]{margin-top:var(--ui-kit-gap)}.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 .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-5{width:1.25rem;height:1.25rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.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-2{height:.5rem}.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-64{max-height:16rem}.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 .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-2{width:.5rem}.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-72{width:18rem}.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-\\[72px\\]{max-width:72px}.embarkai-ui-scope .max-w-\\[80px\\]{max-width:80px}.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 .rotate-180{--tw-rotate:180deg}.embarkai-ui-scope .rotate-180,.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-not-allowed{cursor:not-allowed}.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-1\\.5{gap:.375rem}.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-\\[5px\\]{border-radius:5px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.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-accent\\)\\]{background-color:var(--ui-kit-accent)}.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-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.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 .tracking-wider{letter-spacing:.05em}.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 .opacity-70{opacity:.7}.embarkai-ui-scope .opacity-75{opacity:.75}.embarkai-ui-scope .opacity-90{opacity:.9}.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 .transition-transform{transition-property:transform;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}.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-bg-secondary\\)\\]:hover{background-color:var(--ui-kit-bg-secondary)}.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-100:hover{opacity:1}.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 .md\\:text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .md\\:text-xs{font-size:.75rem;line-height:1rem}}.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}`;
|
|
28271
|
+
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 .sticky{position:sticky}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-0\\.5{right:-.125rem}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-0\\.5{top:-.125rem}.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-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-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 .mt-\\[var\\(--ui-kit-gap\\)\\]{margin-top:var(--ui-kit-gap)}.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 .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-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-2{height:.5rem}.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-64{max-height:16rem}.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 .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-2{width:.5rem}.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-72{width:18rem}.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-\\[80px\\]{max-width:80px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-12px\\)\\]{max-width:calc(50% - 12px)}.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 .rotate-180{--tw-rotate:180deg}.embarkai-ui-scope .rotate-180,.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-not-allowed{cursor:not-allowed}.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-1\\.5{gap:.375rem}.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-\\[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-accent\\)\\]{background-color:var(--ui-kit-accent)}.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-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.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 .tracking-wider{letter-spacing:.05em}.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 .opacity-70{opacity:.7}.embarkai-ui-scope .opacity-75{opacity:.75}.embarkai-ui-scope .opacity-90{opacity:.9}.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 .transition-transform{transition-property:transform;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}.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-bg-secondary\\)\\]:hover{background-color:var(--ui-kit-bg-secondary)}.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-100:hover{opacity:1}.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 .md\\:text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .md\\:text-xs{font-size:.75rem;line-height:1rem}}.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}`;
|
|
28106
28272
|
|
|
28107
28273
|
// src/index.ts
|
|
28108
28274
|
init_ProviderContext();
|
|
@@ -28121,8 +28287,8 @@ init_pro_mode();
|
|
|
28121
28287
|
init_utils2();
|
|
28122
28288
|
import { useQuery as useQuery28 } from "@tanstack/react-query";
|
|
28123
28289
|
import { Cloud as Cloud4, Laptop as Laptop2, Loader as Loader37, Shield as Shield3 } from "lucide-react";
|
|
28124
|
-
import { useEffect as
|
|
28125
|
-
import { Fragment as
|
|
28290
|
+
import { useEffect as useEffect51, useMemo as useMemo11 } from "react";
|
|
28291
|
+
import { Fragment as Fragment49, jsx as jsx126, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
28126
28292
|
function getFormattedStatus(label, status, showStatus) {
|
|
28127
28293
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
28128
28294
|
if (!isStatus) return label;
|
|
@@ -28141,7 +28307,7 @@ function ConnectWalletButton(props) {
|
|
|
28141
28307
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
28142
28308
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
|
|
28143
28309
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
28144
|
-
|
|
28310
|
+
useEffect51(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
28145
28311
|
const { data: profile, isLoading: isProfileLoading } = useQuery28({
|
|
28146
28312
|
retry: false,
|
|
28147
28313
|
enabled: !!address,
|
|
@@ -28158,16 +28324,16 @@ function ConnectWalletButton(props) {
|
|
|
28158
28324
|
}, [session, address, hasServerVault]);
|
|
28159
28325
|
const proMode = useProMode();
|
|
28160
28326
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
28161
|
-
return /* @__PURE__ */
|
|
28327
|
+
return /* @__PURE__ */ jsx126("div", { "data-current-theme-mode": colorMode, className: cn("embarkai-ui-scope w-fit h-fit", className), children: !address ? (
|
|
28162
28328
|
/** external Buttons can be provided */
|
|
28163
|
-
/* @__PURE__ */
|
|
28329
|
+
/* @__PURE__ */ jsx126(Fragment49, { children: ConnectButton ? /* @__PURE__ */ jsxs110(
|
|
28164
28330
|
ConnectButton,
|
|
28165
28331
|
{
|
|
28166
28332
|
type: "button",
|
|
28167
28333
|
disabled: isConnecting,
|
|
28168
28334
|
onClick: () => setPage("auth" /* AUTH */),
|
|
28169
28335
|
children: [
|
|
28170
|
-
isConnecting && /* @__PURE__ */
|
|
28336
|
+
isConnecting && /* @__PURE__ */ jsx126(Loader37, { className: "w-4 h-4 animate-spin" }),
|
|
28171
28337
|
connectButtonLabel
|
|
28172
28338
|
]
|
|
28173
28339
|
}
|
|
@@ -28188,7 +28354,7 @@ function ConnectWalletButton(props) {
|
|
|
28188
28354
|
"disabled:hover:bg-[var(--ui-kit-bg)] disabled:active:bg-[var(--ui-kit-bg)]"
|
|
28189
28355
|
),
|
|
28190
28356
|
children: [
|
|
28191
|
-
isConnecting && /* @__PURE__ */
|
|
28357
|
+
isConnecting && /* @__PURE__ */ jsx126(Loader37, { className: "w-4 h-4 animate-spin" }),
|
|
28192
28358
|
connectButtonLabel.toUpperCase()
|
|
28193
28359
|
]
|
|
28194
28360
|
}
|
|
@@ -28207,19 +28373,19 @@ function ConnectWalletButton(props) {
|
|
|
28207
28373
|
),
|
|
28208
28374
|
children: [
|
|
28209
28375
|
/* @__PURE__ */ jsxs110("div", { className: "relative w-12 h-12 rounded-full bg-[var(--ui-kit-fg)] flex items-center justify-center flex-shrink-0", children: [
|
|
28210
|
-
proMode && /* @__PURE__ */
|
|
28211
|
-
profile?.avatar ? /* @__PURE__ */
|
|
28376
|
+
proMode && /* @__PURE__ */ jsx126("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3 z-10", children: "PRO" }),
|
|
28377
|
+
profile?.avatar ? /* @__PURE__ */ jsx126("img", { src: profile.avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ jsx126(LumiaIcon3, { width: 48, height: 48 })
|
|
28212
28378
|
] }),
|
|
28213
28379
|
/* @__PURE__ */ jsxs110("div", { className: "text-left flex-1 min-w-0 text-[var(--ui-kit-fg)]", children: [
|
|
28214
28380
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
28215
|
-
isProfileLoading ? /* @__PURE__ */
|
|
28216
|
-
!isProfileLoading && /* @__PURE__ */
|
|
28381
|
+
isProfileLoading ? /* @__PURE__ */ jsx126(Loader37, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx126("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--ui-kit-fg)]", children: displayName }),
|
|
28382
|
+
!isProfileLoading && /* @__PURE__ */ jsx126(KYCStatus, {})
|
|
28217
28383
|
] }),
|
|
28218
|
-
/* @__PURE__ */
|
|
28384
|
+
/* @__PURE__ */ jsx126(BalanceView, {})
|
|
28219
28385
|
] }),
|
|
28220
28386
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center space-x-1", children: [
|
|
28221
28387
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28222
|
-
/* @__PURE__ */
|
|
28388
|
+
/* @__PURE__ */ jsx126(
|
|
28223
28389
|
Cloud4,
|
|
28224
28390
|
{
|
|
28225
28391
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28241,7 +28407,7 @@ function ConnectWalletButton(props) {
|
|
|
28241
28407
|
)
|
|
28242
28408
|
] }),
|
|
28243
28409
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28244
|
-
/* @__PURE__ */
|
|
28410
|
+
/* @__PURE__ */ jsx126(
|
|
28245
28411
|
Laptop2,
|
|
28246
28412
|
{
|
|
28247
28413
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28263,7 +28429,7 @@ function ConnectWalletButton(props) {
|
|
|
28263
28429
|
)
|
|
28264
28430
|
] }),
|
|
28265
28431
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28266
|
-
/* @__PURE__ */
|
|
28432
|
+
/* @__PURE__ */ jsx126(
|
|
28267
28433
|
Shield3,
|
|
28268
28434
|
{
|
|
28269
28435
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28285,7 +28451,7 @@ function ConnectWalletButton(props) {
|
|
|
28285
28451
|
)
|
|
28286
28452
|
] })
|
|
28287
28453
|
] }),
|
|
28288
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
28454
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx126(
|
|
28289
28455
|
"div",
|
|
28290
28456
|
{
|
|
28291
28457
|
className: cn(
|
|
@@ -28336,13 +28502,13 @@ var useHydrated = () => useSession((st) => st.hasHydrated);
|
|
|
28336
28502
|
// src/hooks/useOpenPage.ts
|
|
28337
28503
|
init_SessionContext();
|
|
28338
28504
|
init_useLayoutDataStore();
|
|
28339
|
-
import { useCallback as
|
|
28505
|
+
import { useCallback as useCallback31 } from "react";
|
|
28340
28506
|
function useOpenPage() {
|
|
28341
28507
|
const page = useLayoutDataStore((st) => st.page);
|
|
28342
28508
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
28343
28509
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
28344
28510
|
const address = useSession((st) => st.address);
|
|
28345
|
-
const open =
|
|
28511
|
+
const open = useCallback31(
|
|
28346
28512
|
(passportPage, params) => {
|
|
28347
28513
|
if (!address) return setPage("auth" /* AUTH */);
|
|
28348
28514
|
if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
@@ -28351,7 +28517,7 @@ function useOpenPage() {
|
|
|
28351
28517
|
},
|
|
28352
28518
|
[setPage, setPageParams, address]
|
|
28353
28519
|
);
|
|
28354
|
-
const close =
|
|
28520
|
+
const close = useCallback31(() => setPage(null), [setPage]);
|
|
28355
28521
|
return { open, close, isOpen: page !== null };
|
|
28356
28522
|
}
|
|
28357
28523
|
|
|
@@ -28363,24 +28529,24 @@ init_useColorMode();
|
|
|
28363
28529
|
init_button();
|
|
28364
28530
|
init_utils2();
|
|
28365
28531
|
import { Moon, Sun } from "lucide-react";
|
|
28366
|
-
import { jsx as
|
|
28532
|
+
import { jsx as jsx127 } from "react/jsx-runtime";
|
|
28367
28533
|
function ThemeToggle(props) {
|
|
28368
28534
|
const { className, ...btnProps } = props;
|
|
28369
28535
|
const { colorMode, setColorMode } = useColorMode();
|
|
28370
|
-
return /* @__PURE__ */
|
|
28536
|
+
return /* @__PURE__ */ jsx127(
|
|
28371
28537
|
"div",
|
|
28372
28538
|
{
|
|
28373
28539
|
className: cn("embarkai-ui-scope", className),
|
|
28374
28540
|
"data-current-theme-mode": colorMode,
|
|
28375
28541
|
style: { width: "fit-content", height: "fit-content" },
|
|
28376
|
-
children: /* @__PURE__ */
|
|
28542
|
+
children: /* @__PURE__ */ jsx127(
|
|
28377
28543
|
Button,
|
|
28378
28544
|
{
|
|
28379
28545
|
...btnProps,
|
|
28380
28546
|
variant: "ghost",
|
|
28381
28547
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
28382
28548
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
28383
|
-
children: colorMode === "dark" ? /* @__PURE__ */
|
|
28549
|
+
children: colorMode === "dark" ? /* @__PURE__ */ jsx127(Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx127(Moon, { className: "w-4 h-4" })
|
|
28384
28550
|
}
|
|
28385
28551
|
)
|
|
28386
28552
|
}
|
|
@@ -28392,18 +28558,18 @@ init_i18n();
|
|
|
28392
28558
|
init_button();
|
|
28393
28559
|
init_useLayoutDataStore();
|
|
28394
28560
|
init_utils2();
|
|
28395
|
-
import { jsx as
|
|
28561
|
+
import { jsx as jsx128 } from "react/jsx-runtime";
|
|
28396
28562
|
function LangToggle(props) {
|
|
28397
28563
|
const { className, ...btnProps } = props;
|
|
28398
28564
|
const { i18n } = useT();
|
|
28399
28565
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
28400
|
-
return /* @__PURE__ */
|
|
28566
|
+
return /* @__PURE__ */ jsx128(
|
|
28401
28567
|
"div",
|
|
28402
28568
|
{
|
|
28403
28569
|
className: cn("embarkai-ui-scope", className),
|
|
28404
28570
|
"data-mbark-language": i18n.resolvedLanguage || "en",
|
|
28405
28571
|
style: { width: "fit-content", height: "fit-content" },
|
|
28406
|
-
children: /* @__PURE__ */
|
|
28572
|
+
children: /* @__PURE__ */ jsx128(
|
|
28407
28573
|
Button,
|
|
28408
28574
|
{
|
|
28409
28575
|
...btnProps,
|
|
@@ -28432,7 +28598,7 @@ init_cn();
|
|
|
28432
28598
|
init_button();
|
|
28433
28599
|
import { Copy as Copy6, ExternalLink as ExternalLink2 } from "lucide-react";
|
|
28434
28600
|
import * as React11 from "react";
|
|
28435
|
-
import { jsx as
|
|
28601
|
+
import { jsx as jsx129, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
28436
28602
|
function toExplorerAddressUrl(address, chain) {
|
|
28437
28603
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
28438
28604
|
if (!base2) return null;
|
|
@@ -28454,11 +28620,11 @@ var Address = ({
|
|
|
28454
28620
|
const addr = address || "";
|
|
28455
28621
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
28456
28622
|
const [copied, setCopied] = React11.useState(false);
|
|
28457
|
-
if (!addr) return /* @__PURE__ */
|
|
28623
|
+
if (!addr) return /* @__PURE__ */ jsx129("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
28458
28624
|
return /* @__PURE__ */ jsxs111("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
28459
|
-
label && /* @__PURE__ */
|
|
28460
|
-
/* @__PURE__ */
|
|
28461
|
-
showCopy && /* @__PURE__ */
|
|
28625
|
+
label && /* @__PURE__ */ jsx129("span", { className: "text-sm font-medium", children: label }),
|
|
28626
|
+
/* @__PURE__ */ jsx129("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
28627
|
+
showCopy && /* @__PURE__ */ jsx129(
|
|
28462
28628
|
Button,
|
|
28463
28629
|
{
|
|
28464
28630
|
variant: "ghost",
|
|
@@ -28472,10 +28638,10 @@ var Address = ({
|
|
|
28472
28638
|
} catch {
|
|
28473
28639
|
}
|
|
28474
28640
|
},
|
|
28475
|
-
children: /* @__PURE__ */
|
|
28641
|
+
children: /* @__PURE__ */ jsx129(Copy6, { className: "h-4 w-4" })
|
|
28476
28642
|
}
|
|
28477
28643
|
),
|
|
28478
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
28644
|
+
showExplorer && explorer && /* @__PURE__ */ jsx129(
|
|
28479
28645
|
"a",
|
|
28480
28646
|
{
|
|
28481
28647
|
href: explorer,
|
|
@@ -28483,7 +28649,7 @@ var Address = ({
|
|
|
28483
28649
|
rel: "noreferrer noopener",
|
|
28484
28650
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
28485
28651
|
title: "Open in explorer",
|
|
28486
|
-
children: /* @__PURE__ */
|
|
28652
|
+
children: /* @__PURE__ */ jsx129(ExternalLink2, { className: "h-4 w-4" })
|
|
28487
28653
|
}
|
|
28488
28654
|
)
|
|
28489
28655
|
] });
|
|
@@ -28492,7 +28658,7 @@ var Address = ({
|
|
|
28492
28658
|
// src/internal/components/UserOpStatus.tsx
|
|
28493
28659
|
init_badge();
|
|
28494
28660
|
init_button();
|
|
28495
|
-
import { jsx as
|
|
28661
|
+
import { jsx as jsx130, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
28496
28662
|
var UserOpStatus = ({
|
|
28497
28663
|
userOpHash,
|
|
28498
28664
|
chain,
|
|
@@ -28608,30 +28774,30 @@ var UserOpStatus = ({
|
|
|
28608
28774
|
if (receipt) {
|
|
28609
28775
|
const ok = !!receipt.success;
|
|
28610
28776
|
return /* @__PURE__ */ jsxs112(Badge, { variant: ok ? "success" : "destructive", children: [
|
|
28611
|
-
ok ? /* @__PURE__ */
|
|
28777
|
+
ok ? /* @__PURE__ */ jsx130(CheckCircle27, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx130(AlertCircle8, { className: "h-3 w-3" }),
|
|
28612
28778
|
ok ? "Included" : "Failed"
|
|
28613
28779
|
] });
|
|
28614
28780
|
}
|
|
28615
28781
|
if (rejected) {
|
|
28616
28782
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "destructive", children: [
|
|
28617
|
-
/* @__PURE__ */
|
|
28783
|
+
/* @__PURE__ */ jsx130(AlertCircle8, { className: "h-3 w-3" }),
|
|
28618
28784
|
" Rejected by bundler"
|
|
28619
28785
|
] });
|
|
28620
28786
|
}
|
|
28621
28787
|
if (timedOut) {
|
|
28622
28788
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "warning", children: [
|
|
28623
|
-
/* @__PURE__ */
|
|
28789
|
+
/* @__PURE__ */ jsx130(AlertCircle8, { className: "h-3 w-3" }),
|
|
28624
28790
|
" Timeout - may be rejected"
|
|
28625
28791
|
] });
|
|
28626
28792
|
}
|
|
28627
28793
|
if (mempool) {
|
|
28628
28794
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "outline", children: [
|
|
28629
|
-
/* @__PURE__ */
|
|
28795
|
+
/* @__PURE__ */ jsx130(Clock2, { className: "h-3 w-3" }),
|
|
28630
28796
|
" Pending in bundler"
|
|
28631
28797
|
] });
|
|
28632
28798
|
}
|
|
28633
28799
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "secondary", children: [
|
|
28634
|
-
/* @__PURE__ */
|
|
28800
|
+
/* @__PURE__ */ jsx130(Clock2, { className: "h-3 w-3" }),
|
|
28635
28801
|
" Waiting"
|
|
28636
28802
|
] });
|
|
28637
28803
|
};
|
|
@@ -28647,17 +28813,17 @@ var UserOpStatus = ({
|
|
|
28647
28813
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center justify-between mb-3", children: [
|
|
28648
28814
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2", children: [
|
|
28649
28815
|
stateBadge(),
|
|
28650
|
-
/* @__PURE__ */
|
|
28816
|
+
/* @__PURE__ */ jsx130("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
28651
28817
|
] }),
|
|
28652
28818
|
/* @__PURE__ */ jsxs112(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
28653
|
-
/* @__PURE__ */
|
|
28654
|
-
/* @__PURE__ */
|
|
28819
|
+
/* @__PURE__ */ jsx130(RefreshCw4, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
28820
|
+
/* @__PURE__ */ jsx130("span", { className: "text-xs", children: "Refresh" })
|
|
28655
28821
|
] })
|
|
28656
28822
|
] }),
|
|
28657
28823
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
28658
|
-
/* @__PURE__ */
|
|
28659
|
-
/* @__PURE__ */
|
|
28660
|
-
/* @__PURE__ */
|
|
28824
|
+
/* @__PURE__ */ jsx130("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
28825
|
+
/* @__PURE__ */ jsx130("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
28826
|
+
/* @__PURE__ */ jsx130(
|
|
28661
28827
|
Button,
|
|
28662
28828
|
{
|
|
28663
28829
|
variant: "ghost",
|
|
@@ -28669,14 +28835,14 @@ var UserOpStatus = ({
|
|
|
28669
28835
|
} catch {
|
|
28670
28836
|
}
|
|
28671
28837
|
},
|
|
28672
|
-
children: /* @__PURE__ */
|
|
28838
|
+
children: /* @__PURE__ */ jsx130(Copy7, { className: "h-3.5 w-3.5" })
|
|
28673
28839
|
}
|
|
28674
28840
|
)
|
|
28675
28841
|
] }),
|
|
28676
28842
|
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
28677
|
-
/* @__PURE__ */
|
|
28678
|
-
/* @__PURE__ */
|
|
28679
|
-
/* @__PURE__ */
|
|
28843
|
+
/* @__PURE__ */ jsx130("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
28844
|
+
/* @__PURE__ */ jsx130("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
28845
|
+
/* @__PURE__ */ jsx130(
|
|
28680
28846
|
Button,
|
|
28681
28847
|
{
|
|
28682
28848
|
variant: "ghost",
|
|
@@ -28688,10 +28854,10 @@ var UserOpStatus = ({
|
|
|
28688
28854
|
} catch {
|
|
28689
28855
|
}
|
|
28690
28856
|
},
|
|
28691
|
-
children: /* @__PURE__ */
|
|
28857
|
+
children: /* @__PURE__ */ jsx130(Copy7, { className: "h-3.5 w-3.5" })
|
|
28692
28858
|
}
|
|
28693
28859
|
),
|
|
28694
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */
|
|
28860
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx130(
|
|
28695
28861
|
"a",
|
|
28696
28862
|
{
|
|
28697
28863
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -28699,7 +28865,7 @@ var UserOpStatus = ({
|
|
|
28699
28865
|
rel: "noreferrer noopener",
|
|
28700
28866
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
28701
28867
|
title: "Open in explorer",
|
|
28702
|
-
children: /* @__PURE__ */
|
|
28868
|
+
children: /* @__PURE__ */ jsx130(ExternalLink3, { className: "h-3.5 w-3.5" })
|
|
28703
28869
|
}
|
|
28704
28870
|
)
|
|
28705
28871
|
] }),
|
|
@@ -28712,7 +28878,7 @@ var UserOpStatus = ({
|
|
|
28712
28878
|
" \u2022 Success ",
|
|
28713
28879
|
String(!!receipt.success)
|
|
28714
28880
|
] }),
|
|
28715
|
-
/* @__PURE__ */
|
|
28881
|
+
/* @__PURE__ */ jsx130("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs112("span", { className: "ml-2", children: [
|
|
28716
28882
|
"\u2022 Polling for ",
|
|
28717
28883
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
28718
28884
|
"s"
|
|
@@ -28720,24 +28886,24 @@ var UserOpStatus = ({
|
|
|
28720
28886
|
mempool && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
28721
28887
|
/* @__PURE__ */ jsxs112("div", { children: [
|
|
28722
28888
|
"Seen by bundler at ",
|
|
28723
|
-
/* @__PURE__ */
|
|
28889
|
+
/* @__PURE__ */ jsx130(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
28724
28890
|
] }),
|
|
28725
28891
|
/* @__PURE__ */ jsxs112("div", { children: [
|
|
28726
28892
|
"sender ",
|
|
28727
|
-
/* @__PURE__ */
|
|
28893
|
+
/* @__PURE__ */ jsx130(Address, { address: mempool.sender, chain, truncate: false })
|
|
28728
28894
|
] })
|
|
28729
28895
|
] }),
|
|
28730
28896
|
error && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28731
|
-
/* @__PURE__ */
|
|
28897
|
+
/* @__PURE__ */ jsx130(AlertCircle8, { className: "h-4 w-4" }),
|
|
28732
28898
|
" ",
|
|
28733
28899
|
error
|
|
28734
28900
|
] }),
|
|
28735
28901
|
rejected && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28736
|
-
/* @__PURE__ */
|
|
28902
|
+
/* @__PURE__ */ jsx130(AlertCircle8, { className: "h-4 w-4" }),
|
|
28737
28903
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
28738
28904
|
] }),
|
|
28739
28905
|
timedOut && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28740
|
-
/* @__PURE__ */
|
|
28906
|
+
/* @__PURE__ */ jsx130(AlertCircle8, { className: "h-4 w-4" }),
|
|
28741
28907
|
"Stopped polling after ",
|
|
28742
28908
|
Math.round(maxPollTimeMs / 1e3),
|
|
28743
28909
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -28752,7 +28918,7 @@ init_cn();
|
|
|
28752
28918
|
init_button();
|
|
28753
28919
|
import { Copy as Copy8, ExternalLink as ExternalLink4 } from "lucide-react";
|
|
28754
28920
|
import * as React13 from "react";
|
|
28755
|
-
import { jsx as
|
|
28921
|
+
import { jsx as jsx131, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
28756
28922
|
function toExplorerUrl(kind, value, chain) {
|
|
28757
28923
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
28758
28924
|
if (!base2) return null;
|
|
@@ -28776,11 +28942,11 @@ var Hash = ({
|
|
|
28776
28942
|
const value = hash || "";
|
|
28777
28943
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
28778
28944
|
const [copied, setCopied] = React13.useState(false);
|
|
28779
|
-
if (!value) return /* @__PURE__ */
|
|
28945
|
+
if (!value) return /* @__PURE__ */ jsx131("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
28780
28946
|
return /* @__PURE__ */ jsxs113("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
28781
|
-
label && /* @__PURE__ */
|
|
28782
|
-
/* @__PURE__ */
|
|
28783
|
-
showCopy && /* @__PURE__ */
|
|
28947
|
+
label && /* @__PURE__ */ jsx131("span", { className: "text-sm font-medium", children: label }),
|
|
28948
|
+
/* @__PURE__ */ jsx131("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
28949
|
+
showCopy && /* @__PURE__ */ jsx131(
|
|
28784
28950
|
Button,
|
|
28785
28951
|
{
|
|
28786
28952
|
variant: "ghost",
|
|
@@ -28794,10 +28960,10 @@ var Hash = ({
|
|
|
28794
28960
|
} catch {
|
|
28795
28961
|
}
|
|
28796
28962
|
},
|
|
28797
|
-
children: /* @__PURE__ */
|
|
28963
|
+
children: /* @__PURE__ */ jsx131(Copy8, { className: "h-4 w-4" })
|
|
28798
28964
|
}
|
|
28799
28965
|
),
|
|
28800
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
28966
|
+
showExplorer && explorer && /* @__PURE__ */ jsx131(
|
|
28801
28967
|
"a",
|
|
28802
28968
|
{
|
|
28803
28969
|
href: explorer,
|
|
@@ -28805,7 +28971,7 @@ var Hash = ({
|
|
|
28805
28971
|
rel: "noreferrer noopener",
|
|
28806
28972
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
28807
28973
|
title: "Open in explorer",
|
|
28808
|
-
children: /* @__PURE__ */
|
|
28974
|
+
children: /* @__PURE__ */ jsx131(ExternalLink4, { className: "h-4 w-4" })
|
|
28809
28975
|
}
|
|
28810
28976
|
)
|
|
28811
28977
|
] });
|
|
@@ -28813,13 +28979,13 @@ var Hash = ({
|
|
|
28813
28979
|
|
|
28814
28980
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
28815
28981
|
init_base();
|
|
28816
|
-
import { useEffect as
|
|
28817
|
-
import { jsx as
|
|
28982
|
+
import { useEffect as useEffect53, useState as useState36 } from "react";
|
|
28983
|
+
import { jsx as jsx132, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
28818
28984
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
28819
|
-
const [transactions, setTransactions] =
|
|
28820
|
-
const [loading, setLoading] =
|
|
28821
|
-
const [error, setError] =
|
|
28822
|
-
|
|
28985
|
+
const [transactions, setTransactions] = useState36([]);
|
|
28986
|
+
const [loading, setLoading] = useState36(true);
|
|
28987
|
+
const [error, setError] = useState36(null);
|
|
28988
|
+
useEffect53(() => {
|
|
28823
28989
|
const fetchTransactions2 = async () => {
|
|
28824
28990
|
try {
|
|
28825
28991
|
setLoading(true);
|
|
@@ -28866,20 +29032,20 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
28866
29032
|
};
|
|
28867
29033
|
if (loading) {
|
|
28868
29034
|
return /* @__PURE__ */ jsxs114("div", { className: "p-4 text-center", children: [
|
|
28869
|
-
/* @__PURE__ */
|
|
28870
|
-
/* @__PURE__ */
|
|
29035
|
+
/* @__PURE__ */ jsx132("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
29036
|
+
/* @__PURE__ */ jsx132("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
28871
29037
|
] });
|
|
28872
29038
|
}
|
|
28873
29039
|
if (error) {
|
|
28874
29040
|
return /* @__PURE__ */ jsxs114("div", { className: "p-4 text-center", children: [
|
|
28875
|
-
/* @__PURE__ */
|
|
28876
|
-
/* @__PURE__ */
|
|
29041
|
+
/* @__PURE__ */ jsx132("p", { className: "text-red-600 text-sm", children: error }),
|
|
29042
|
+
/* @__PURE__ */ jsx132("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
28877
29043
|
] });
|
|
28878
29044
|
}
|
|
28879
29045
|
if (transactions.length === 0) {
|
|
28880
|
-
return /* @__PURE__ */
|
|
29046
|
+
return /* @__PURE__ */ jsx132("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx132("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
28881
29047
|
}
|
|
28882
|
-
return /* @__PURE__ */
|
|
29048
|
+
return /* @__PURE__ */ jsx132("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ jsx132("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ jsxs114(
|
|
28883
29049
|
"div",
|
|
28884
29050
|
{
|
|
28885
29051
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
@@ -28888,8 +29054,8 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
28888
29054
|
/* @__PURE__ */ jsxs114("div", { className: "flex justify-between items-start mb-2", children: [
|
|
28889
29055
|
/* @__PURE__ */ jsxs114("div", { className: "flex-1", children: [
|
|
28890
29056
|
/* @__PURE__ */ jsxs114("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
28891
|
-
/* @__PURE__ */
|
|
28892
|
-
/* @__PURE__ */
|
|
29057
|
+
/* @__PURE__ */ jsx132("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
29058
|
+
/* @__PURE__ */ jsx132(
|
|
28893
29059
|
"span",
|
|
28894
29060
|
{
|
|
28895
29061
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -28899,21 +29065,21 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
28899
29065
|
] }),
|
|
28900
29066
|
/* @__PURE__ */ jsxs114("div", { className: "text-sm space-y-1", children: [
|
|
28901
29067
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
28902
|
-
/* @__PURE__ */
|
|
29068
|
+
/* @__PURE__ */ jsx132("span", { className: "text-gray-600", children: "From:" }),
|
|
28903
29069
|
/* @__PURE__ */ jsxs114("span", { className: "font-mono ml-1", children: [
|
|
28904
29070
|
formatAddress3(tx.from.hash),
|
|
28905
|
-
tx.from.is_contract && /* @__PURE__ */
|
|
29071
|
+
tx.from.is_contract && /* @__PURE__ */ jsx132("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
28906
29072
|
] })
|
|
28907
29073
|
] }),
|
|
28908
29074
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
28909
|
-
/* @__PURE__ */
|
|
29075
|
+
/* @__PURE__ */ jsx132("span", { className: "text-gray-600", children: "To:" }),
|
|
28910
29076
|
/* @__PURE__ */ jsxs114("span", { className: "font-mono ml-1", children: [
|
|
28911
29077
|
formatAddress3(tx.to.hash),
|
|
28912
|
-
tx.to.is_contract && /* @__PURE__ */
|
|
29078
|
+
tx.to.is_contract && /* @__PURE__ */ jsx132("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
28913
29079
|
] })
|
|
28914
29080
|
] }),
|
|
28915
29081
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
28916
|
-
/* @__PURE__ */
|
|
29082
|
+
/* @__PURE__ */ jsx132("span", { className: "text-gray-600", children: "Value:" }),
|
|
28917
29083
|
/* @__PURE__ */ jsxs114("span", { className: "font-semibold ml-1", children: [
|
|
28918
29084
|
formatValue3(tx.value),
|
|
28919
29085
|
" LUMIA"
|
|
@@ -28922,15 +29088,15 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
28922
29088
|
] })
|
|
28923
29089
|
] }),
|
|
28924
29090
|
/* @__PURE__ */ jsxs114("div", { className: "text-right text-xs text-gray-500", children: [
|
|
28925
|
-
/* @__PURE__ */
|
|
29091
|
+
/* @__PURE__ */ jsx132("div", { children: formatDate2(tx.timestamp) }),
|
|
28926
29092
|
/* @__PURE__ */ jsxs114("div", { className: "mt-1", children: [
|
|
28927
29093
|
"Gas: ",
|
|
28928
29094
|
parseInt(tx.gas_used).toLocaleString()
|
|
28929
29095
|
] }),
|
|
28930
|
-
tx.method && /* @__PURE__ */
|
|
29096
|
+
tx.method && /* @__PURE__ */ jsx132("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
28931
29097
|
] })
|
|
28932
29098
|
] }),
|
|
28933
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */
|
|
29099
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ jsx132("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx132("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
28934
29100
|
]
|
|
28935
29101
|
},
|
|
28936
29102
|
tx.hash
|
|
@@ -29111,12 +29277,12 @@ init_useErc3643Compliance();
|
|
|
29111
29277
|
|
|
29112
29278
|
// src/hooks/useWalletMode.ts
|
|
29113
29279
|
init_useExternalWalletStore();
|
|
29114
|
-
import { useCallback as
|
|
29280
|
+
import { useCallback as useCallback34 } from "react";
|
|
29115
29281
|
function useWalletMode() {
|
|
29116
29282
|
const configMode = useExternalWalletStore((st) => st.configMode);
|
|
29117
29283
|
const activeMode = useExternalWalletStore((st) => st.activeMode);
|
|
29118
29284
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
29119
|
-
const switchMode =
|
|
29285
|
+
const switchMode = useCallback34(
|
|
29120
29286
|
(mode) => {
|
|
29121
29287
|
if (configMode !== "both") return;
|
|
29122
29288
|
setActiveMode(mode);
|
|
@@ -29134,7 +29300,7 @@ function useWalletMode() {
|
|
|
29134
29300
|
// src/hooks/useDirectWallet.ts
|
|
29135
29301
|
init_useExternalWalletStore();
|
|
29136
29302
|
init_useLayoutDataStore();
|
|
29137
|
-
import { useCallback as
|
|
29303
|
+
import { useCallback as useCallback35 } from "react";
|
|
29138
29304
|
import { useConnectModal as useConnectModal3 } from "@rainbow-me/rainbowkit";
|
|
29139
29305
|
import { useDisconnect as useDisconnect2 } from "wagmi";
|
|
29140
29306
|
function useDirectWallet() {
|
|
@@ -29146,13 +29312,13 @@ function useDirectWallet() {
|
|
|
29146
29312
|
const { disconnect: wagmiDisconnect } = useDisconnect2();
|
|
29147
29313
|
const { openConnectModal } = useConnectModal3();
|
|
29148
29314
|
const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
|
|
29149
|
-
const connect =
|
|
29315
|
+
const connect = useCallback35(() => {
|
|
29150
29316
|
setIsWalletLinking(true);
|
|
29151
29317
|
}, [setIsWalletLinking]);
|
|
29152
|
-
const reconnect =
|
|
29318
|
+
const reconnect = useCallback35(() => {
|
|
29153
29319
|
if (openConnectModal) openConnectModal();
|
|
29154
29320
|
}, [openConnectModal]);
|
|
29155
|
-
const disconnect =
|
|
29321
|
+
const disconnect = useCallback35(() => {
|
|
29156
29322
|
wagmiDisconnect();
|
|
29157
29323
|
clearExternalWallet();
|
|
29158
29324
|
}, [wagmiDisconnect, clearExternalWallet]);
|
|
@@ -29169,18 +29335,18 @@ function useDirectWallet() {
|
|
|
29169
29335
|
|
|
29170
29336
|
// src/hooks/useSendDirectTransaction.ts
|
|
29171
29337
|
init_useExternalWalletStore();
|
|
29172
|
-
import { useCallback as
|
|
29338
|
+
import { useCallback as useCallback36, useState as useState38 } from "react";
|
|
29173
29339
|
import { isAddress as isAddress3, parseEther as parseEther3 } from "viem";
|
|
29174
|
-
import { useSendTransaction as useWagmiSendTransaction, useSwitchChain as
|
|
29340
|
+
import { useSendTransaction as useWagmiSendTransaction, useSwitchChain as useSwitchChain3 } from "wagmi";
|
|
29175
29341
|
function useSendDirectTransaction() {
|
|
29176
29342
|
const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
29177
29343
|
const externalChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
29178
29344
|
const { sendTransactionAsync } = useWagmiSendTransaction();
|
|
29179
|
-
const { switchChainAsync } =
|
|
29180
|
-
const [isPending, setIsPending] =
|
|
29181
|
-
const [error, setError] =
|
|
29182
|
-
const [txHash, setTxHash] =
|
|
29183
|
-
const sendTransaction =
|
|
29345
|
+
const { switchChainAsync } = useSwitchChain3();
|
|
29346
|
+
const [isPending, setIsPending] = useState38(false);
|
|
29347
|
+
const [error, setError] = useState38(null);
|
|
29348
|
+
const [txHash, setTxHash] = useState38(null);
|
|
29349
|
+
const sendTransaction = useCallback36(
|
|
29184
29350
|
async (params) => {
|
|
29185
29351
|
if (!isConnected) {
|
|
29186
29352
|
setError("No external wallet connected");
|
|
@@ -29214,7 +29380,7 @@ function useSendDirectTransaction() {
|
|
|
29214
29380
|
},
|
|
29215
29381
|
[isConnected, externalChainId, sendTransactionAsync, switchChainAsync]
|
|
29216
29382
|
);
|
|
29217
|
-
const reset =
|
|
29383
|
+
const reset = useCallback36(() => {
|
|
29218
29384
|
setError(null);
|
|
29219
29385
|
setTxHash(null);
|
|
29220
29386
|
setIsPending(false);
|
|
@@ -29226,7 +29392,7 @@ function useSendDirectTransaction() {
|
|
|
29226
29392
|
init_SessionContext();
|
|
29227
29393
|
init_account2();
|
|
29228
29394
|
init_linkedProfiles();
|
|
29229
|
-
import { useCallback as
|
|
29395
|
+
import { useCallback as useCallback37, useMemo as useMemo12, useState as useState39 } from "react";
|
|
29230
29396
|
import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
|
|
29231
29397
|
var ERC20_TRANSFER_ABI2 = [
|
|
29232
29398
|
{
|
|
@@ -29242,14 +29408,14 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
29242
29408
|
function useTransferToLinkedWallet() {
|
|
29243
29409
|
const session = useSession((st) => st.session);
|
|
29244
29410
|
const { profiles } = useLinkedProfiles();
|
|
29245
|
-
const [isPending, setIsPending] =
|
|
29246
|
-
const [error, setError] =
|
|
29247
|
-
const [userOpHash, setUserOpHash] =
|
|
29411
|
+
const [isPending, setIsPending] = useState39(false);
|
|
29412
|
+
const [error, setError] = useState39(null);
|
|
29413
|
+
const [userOpHash, setUserOpHash] = useState39(null);
|
|
29248
29414
|
const linkedWallets = useMemo12(
|
|
29249
29415
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
29250
29416
|
[profiles]
|
|
29251
29417
|
);
|
|
29252
|
-
const transfer =
|
|
29418
|
+
const transfer = useCallback37(
|
|
29253
29419
|
async (params) => {
|
|
29254
29420
|
if (!session) {
|
|
29255
29421
|
setError("No active session");
|
|
@@ -29300,7 +29466,7 @@ function useTransferToLinkedWallet() {
|
|
|
29300
29466
|
},
|
|
29301
29467
|
[session, linkedWallets]
|
|
29302
29468
|
);
|
|
29303
|
-
const reset =
|
|
29469
|
+
const reset = useCallback37(() => {
|
|
29304
29470
|
setError(null);
|
|
29305
29471
|
setUserOpHash(null);
|
|
29306
29472
|
setIsPending(false);
|
|
@@ -29326,11 +29492,11 @@ function useNativeWalletSignature() {
|
|
|
29326
29492
|
init_ProviderContext();
|
|
29327
29493
|
init_SessionContext();
|
|
29328
29494
|
import { logout as coreLogout, jwtTokenManager as jwtTokenManager3 } from "@embarkai/core/auth";
|
|
29329
|
-
import { useCallback as
|
|
29495
|
+
import { useCallback as useCallback38 } from "react";
|
|
29330
29496
|
function useLogout() {
|
|
29331
29497
|
const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useSession();
|
|
29332
29498
|
const { callbacksRef } = useProviderConfig();
|
|
29333
|
-
const logout2 =
|
|
29499
|
+
const logout2 = useCallback38(async () => {
|
|
29334
29500
|
const prevAddress = address;
|
|
29335
29501
|
let userId = null;
|
|
29336
29502
|
setIsLoading(true);
|