@rash2x/bridge-widget 0.3.0 → 0.3.1
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/evaa-bridge.cjs +57 -32
- package/dist/evaa-bridge.cjs.map +1 -1
- package/dist/evaa-bridge.mjs +57 -32
- package/dist/evaa-bridge.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/evaa-bridge.mjs
CHANGED
|
@@ -31,7 +31,7 @@ import { CardHeader, CardTitle, CardAction, Card, CardContent, CardFooter } from
|
|
|
31
31
|
import { Badge } from "@/components/ui/badge";
|
|
32
32
|
const common$1 = { "connecting": "Connecting…", "initializing": "Initializing...", "loading": "Loading...", "paste": "paste", "close": "Close", "zeroPlaceholder": "0", "nativeToken": "Native Token" };
|
|
33
33
|
const wallets$1 = { "addTonWallet": "Add TON wallet", "addEvmWallet": "Add EVM wallet", "connectTonWallet": "Connect TON wallet", "connectEvmWallet": "Connect EVM wallet", "initializingMetamask": "Initializing MetaMask SDK...", "initializingTronlink": "Initializing TronLink...", "failedToConnectTon": "Failed to connect to TON wallet", "failedToDisconnect": "Failed to disconnect", "metamaskConnectionError": "MetaMask connection error", "failedToConnectMetamask": "Failed to connect to MetaMask", "failedToDisconnectMetamask": "Failed to disconnect from MetaMask", "selectWallet": "Select Wallet", "tonWallets": "TON", "evmWallets": "EVM", "tronWallets": "TRON", "tonconnect": "TonConnect", "metaMask": "WalletConnect", "tronLink": "TronLink", "addTronWallet": "Add Tron wallet", "comingSoon": "Coming Soon", "connected": "CONNECTED", "disconnect": "Disconnect", "chooseWallet": "Choose wallet", "oneWalletPerEnv": "You can only connect one wallet per environment.", "connect": "Connect", "connectTronWallet": "Connect Tron wallet", "connectWallet": "Connect wallet" };
|
|
34
|
-
const bridge$1 = { "max": "Max", "sourceNetwork": "Source network", "destinationNetwork": "Destination network", "selectToken": "Select token", "selectNetwork": "Select network", "searchToken": "Search token", "searchDestinationChain": "Search destination chain", "myTokens": "My tokens", "allTokens": "All tokens", "willChangeSourceChain": "Will change source network", "willChangeSourceNetworkAndToken": "Will change source
|
|
34
|
+
const bridge$1 = { "max": "Max", "sourceNetwork": "Source network", "destinationNetwork": "Destination network", "selectToken": "Select token", "selectNetwork": "Select network", "searchToken": "Search token", "searchDestinationChain": "Search destination chain", "myTokens": "My tokens", "allTokens": "All tokens", "willChangeSourceChain": "Will change source network", "willChangeSourceNetworkAndToken": "Will change source token", "noBalancesFound": "No balances found.", "noResults": "No results", "sendToAnotherAddress": "Send to another address", "youWillReceive": "You will receive", "anotherAddressPlaceholder": "Address", "addressDoesntMatch": "Address doesn't match the {{network}} network", "checkBeforeTransfer": "Check correctness before transfer" };
|
|
35
35
|
const transaction$1 = { "enterAmount": "Enter amount", "transfer": "Transfer", "getQuote": "Get quote", "failed": "Transaction Failed", "confirm": "Confirm transaction", "signTransaction": "Sign in transaction in wallet", "quoting": "Quoting...", "inProgress": "Processing...", "checkingBalance": "Checking balance...", "insufficientBalance": "Insufficient balance", "amountTooSmall": "Min {{min}}", "amountTooLarge": "Max {{max}}", "success": "Success", "successTitle": "Success", "done": "Done", "hashCopied": "Hash copied to clipboard", "bridged": "Bridged", "transferTitle": "Transfer", "hash": "Hash", "finalFee": "Final Fee", "route": "Route", "estTime": "Est. Time", "slippage": "Slippage", "minimumReceived": "Minimum received", "totalFee": "Total Fee", "noRouteFound": "No route found", "notEnoughGas": "Not enough gas", "noRouteFoundForSettings": "No route found for current settings.", "tryAdjustSettings": "Try disabling Gas on Destination, or adjust amount/networks.", "quoteError": "Quote error" };
|
|
36
36
|
const app$1 = { "stargateWidgetName": "Stargate Bridge Widget", "liveWidget": "Live Widget", "getStarted": "Get Started" };
|
|
37
37
|
const settings$1 = { "title": "Settings", "gasOnDestination": "Gas on destination", "slippageTolerance": "Slippage tolerance", "routePriority": "Route Priority", "highSlippageWarning": "High slippage warning", "gasPresets": { "auto": "Auto", "none": "None", "medium": "Medium", "max": "Max" }, "routePresets": { "fastest": "Fastest", "cheapest": "Cheapest", "recommended": "Recommended" } };
|
|
@@ -47,7 +47,7 @@ const en = {
|
|
|
47
47
|
};
|
|
48
48
|
const common = { "connecting": "Подключение…", "initializing": "Инициализация...", "loading": "Загрузка...", "paste": "вставить", "close": "Закрыть", "zeroPlaceholder": "0", "nativeToken": "Нативный токен" };
|
|
49
49
|
const wallets = { "addTonWallet": "Добавить TON кошелёк", "addEvmWallet": "Добавить EVM кошелёк", "connectTonWallet": "Подключить TON кошелёк", "connectEvmWallet": "Подключить EVM кошелёк", "initializingMetamask": "Инициализация MetaMask SDK...", "initializingTronlink": "Инициализация TronLink...", "failedToConnectTon": "Не удалось подключиться к TON кошельку", "failedToDisconnect": "Не удалось отключиться", "metamaskConnectionError": "Ошибка подключения MetaMask", "failedToConnectMetamask": "Не удалось подключиться к MetaMask", "failedToDisconnectMetamask": "Не удалось отключиться от MetaMask", "selectWallet": "Выберите кошелёк", "tonWallets": "TON", "evmWallets": "EVM", "tronWallets": "TRON", "tonconnect": "TonConnect", "metaMask": "WalletConnect", "tronLink": "TronLink", "addTronWallet": "Добавить Tron кошелёк", "comingSoon": "Скоро", "connected": "ПОДКЛЮЧЕНО", "disconnect": "Отключить", "chooseWallet": "Выберите кошелёк", "oneWalletPerEnv": "Можно подключить только один кошелёк на окружение.", "connect": "Подключить", "connectTronWallet": "Подключить Tron кошелёк", "connectWallet": "Подключить кошелёк" };
|
|
50
|
-
const bridge = { "max": "Макс", "sourceNetwork": "Исходная сеть", "destinationNetwork": "Целевая сеть", "selectToken": "Выбрать токен", "selectNetwork": "Выбрать сеть", "searchToken": "Поиск токена", "searchDestinationChain": "Поиск целевой сети", "myTokens": "Мои токены", "allTokens": "Все токены", "willChangeSourceChain": "Сменит исходную сеть", "willChangeSourceNetworkAndToken": "Сменит
|
|
50
|
+
const bridge = { "max": "Макс", "sourceNetwork": "Исходная сеть", "destinationNetwork": "Целевая сеть", "selectToken": "Выбрать токен", "selectNetwork": "Выбрать сеть", "searchToken": "Поиск токена", "searchDestinationChain": "Поиск целевой сети", "myTokens": "Мои токены", "allTokens": "Все токены", "willChangeSourceChain": "Сменит исходную сеть", "willChangeSourceNetworkAndToken": "Сменит исходный токен", "noBalancesFound": "Балансы не найдены.", "noResults": "Нет результатов", "sendToAnotherAddress": "Отправить на другой адрес", "youWillReceive": "Вы получите", "anotherAddressPlaceholder": "Адрес", "addressDoesntMatch": "Адрес не соответствует сети {{network}}", "checkBeforeTransfer": "Проверьте корректность перед переводом" };
|
|
51
51
|
const transaction = { "enterAmount": "Введите сумму", "transfer": "Перевести", "getQuote": "Получить котировку", "quoting": "Расчет котировки...", "failed": "Ошибка транзакции", "confirm": "Подтвердите транзакцию", "signTransaction": "Подпишите транзакцию в кошельке", "inProgress": "Выполнение...", "checkingBalance": "Проверка баланса...", "insufficientBalance": "Недостаточно средств", "amountTooSmall": "Минимум {{min}}", "amountTooLarge": "Максимум {{max}}", "success": "Успех", "successTitle": "Успех", "done": "Готово", "hashCopied": "Хэш скопирован в буфер обмена", "bridged": "Переведено", "transferTitle": "Перевод", "hash": "Хэш", "finalFee": "Итоговая комиссия", "route": "Маршрут", "estTime": "Время", "slippage": "Проскальзывание", "minimumReceived": "Минимум к получению", "totalFee": "Общая комиссия", "noRouteFound": "Маршрут не найден", "notEnoughGas": "Недостаточно газа", "noRouteFoundForSettings": "Маршрут не найден для текущих настроек.", "tryAdjustSettings": "Попробуйте отключить Gas on Destination или измените сумму/сети.", "quoteError": "Ошибка котировки" };
|
|
52
52
|
const app = { "stargateWidgetName": "Виджет Stargate Bridge", "liveWidget": "Живой виджет", "getStarted": "Начало работы" };
|
|
53
53
|
const settings = { "title": "Настройки", "gasOnDestination": "Газ на назначении", "slippageTolerance": "Толерантность к проскальзыванию", "routePriority": "Приоритет маршрута", "highSlippageWarning": "Высокое проскальзывание", "gasPresets": { "auto": "Авто", "none": "Нет", "medium": "Средний", "max": "Макс" }, "routePresets": { "fastest": "Быстрейший", "cheapest": "Дешевейший", "recommended": "Рекомендуемый" } };
|
|
@@ -2262,7 +2262,7 @@ const SwapButton = () => {
|
|
|
2262
2262
|
variant: "secondary",
|
|
2263
2263
|
size: "sm",
|
|
2264
2264
|
className: cn(
|
|
2265
|
-
"
|
|
2265
|
+
"backdrop-blur-md h-9 w-9",
|
|
2266
2266
|
"absolute top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2",
|
|
2267
2267
|
!canSwap || isSwapping ? "opacity-50 cursor-not-allowed" : "hover:scale-110"
|
|
2268
2268
|
),
|
|
@@ -2452,7 +2452,6 @@ const ChainSelectModal = ({
|
|
|
2452
2452
|
const [query, setQuery] = useState("");
|
|
2453
2453
|
const { setFromChain, chains, fromChain, toChain } = useChainsStore();
|
|
2454
2454
|
const { assetMatrix, selectedAssetSymbol, setSelectedAssetSymbol } = useTokensStore();
|
|
2455
|
-
console.log("allowedItems", allowedItems);
|
|
2456
2455
|
const handleClose = useCallback(() => {
|
|
2457
2456
|
setQuery("");
|
|
2458
2457
|
onClose();
|
|
@@ -2516,7 +2515,11 @@ const ChainSelectModal = ({
|
|
|
2516
2515
|
const filtered = q ? (items ?? []).filter(
|
|
2517
2516
|
(c) => c.name.toLowerCase().includes(q) || c.chainKey.toLowerCase().includes(q)
|
|
2518
2517
|
) : items ?? [];
|
|
2519
|
-
const groups = {
|
|
2518
|
+
const groups = {
|
|
2519
|
+
available: [],
|
|
2520
|
+
willChangeSrc: [],
|
|
2521
|
+
willChangeTokenAndSrc: []
|
|
2522
|
+
};
|
|
2520
2523
|
for (const chain of filtered) {
|
|
2521
2524
|
const isAllowed = allowedItems?.some((c) => c.chainKey === chain.chainKey) || false;
|
|
2522
2525
|
if (isAllowed) {
|
|
@@ -2537,7 +2540,13 @@ const ChainSelectModal = ({
|
|
|
2537
2540
|
groups.willChangeSrc.sort((a, b) => a.name.localeCompare(b.name));
|
|
2538
2541
|
groups.willChangeTokenAndSrc.sort((a, b) => a.name.localeCompare(b.name));
|
|
2539
2542
|
return groups;
|
|
2540
|
-
}, [
|
|
2543
|
+
}, [
|
|
2544
|
+
items,
|
|
2545
|
+
query,
|
|
2546
|
+
allowedItems,
|
|
2547
|
+
findCompatibleSrcChain,
|
|
2548
|
+
findCompatibleTokenAndSrcChain
|
|
2549
|
+
]);
|
|
2541
2550
|
const onChainPick = (chain, willChangeSrc = false, willChangeTokenAndSrc = false) => {
|
|
2542
2551
|
if (willChangeTokenAndSrc) {
|
|
2543
2552
|
const result = findCompatibleTokenAndSrcChain(chain);
|
|
@@ -2558,7 +2567,11 @@ const ChainSelectModal = ({
|
|
|
2558
2567
|
Button,
|
|
2559
2568
|
{
|
|
2560
2569
|
onClick: () => onChainPick(chain, willChangeSrc, willChangeTokenAndSrc),
|
|
2561
|
-
className:
|
|
2570
|
+
className: cn(
|
|
2571
|
+
"w-full cursor-pointer flex shadow-none rounded-xs items-center justify-between gap-3 px-5 py-4 h-13 font-semibold capitalize bg-transparent hover:scale-100 hover:bg-accent",
|
|
2572
|
+
isSelected ? "bg-accent" : "",
|
|
2573
|
+
willChangeSrc || willChangeTokenAndSrc ? "opacity-50 hover:opacity-100" : ""
|
|
2574
|
+
),
|
|
2562
2575
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
2563
2576
|
/* @__PURE__ */ jsx(
|
|
2564
2577
|
NetworkSymbol,
|
|
@@ -2574,8 +2587,8 @@ const ChainSelectModal = ({
|
|
|
2574
2587
|
chain.chainKey
|
|
2575
2588
|
);
|
|
2576
2589
|
};
|
|
2577
|
-
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && handleClose(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "md:max-h-[90dvh] md:h-[90dvh] overflow-hidden flex flex-col", children: [
|
|
2578
|
-
/* @__PURE__ */ jsx(DialogHeader, { className: "text-left", children: /* @__PURE__ */ jsx(DialogTitle, { children: t("bridge.selectNetwork") }) }),
|
|
2590
|
+
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && handleClose(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "md:max-h-[90dvh] md:h-[90dvh] overflow-hidden flex flex-col p-10", children: [
|
|
2591
|
+
/* @__PURE__ */ jsx(DialogHeader, { className: "text-left", children: /* @__PURE__ */ jsx(DialogTitle, { className: "text-2xl leading-8", children: t("bridge.selectNetwork") }) }),
|
|
2579
2592
|
/* @__PURE__ */ jsx(
|
|
2580
2593
|
SearchInput,
|
|
2581
2594
|
{
|
|
@@ -2588,13 +2601,25 @@ const ChainSelectModal = ({
|
|
|
2588
2601
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto", children: [
|
|
2589
2602
|
groupedChains.available.length > 0 && groupedChains.available.map((c) => renderChainItem(c, false)),
|
|
2590
2603
|
groupedChains.willChangeSrc.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2591
|
-
/* @__PURE__ */ jsx(
|
|
2604
|
+
/* @__PURE__ */ jsx(
|
|
2605
|
+
"p",
|
|
2606
|
+
{
|
|
2607
|
+
className: `px-5 py-2 leading-4 text-base font-semibold text-muted-foreground uppercase ${groupedChains.available.length > 0 ? "mt-10" : ""}`,
|
|
2608
|
+
children: t("bridge.willChangeSourceChain")
|
|
2609
|
+
}
|
|
2610
|
+
),
|
|
2592
2611
|
groupedChains.willChangeSrc.map(
|
|
2593
2612
|
(c) => renderChainItem(c, true, false)
|
|
2594
2613
|
)
|
|
2595
2614
|
] }),
|
|
2596
2615
|
groupedChains.willChangeTokenAndSrc.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2597
|
-
/* @__PURE__ */ jsx(
|
|
2616
|
+
/* @__PURE__ */ jsx(
|
|
2617
|
+
"p",
|
|
2618
|
+
{
|
|
2619
|
+
className: `px-5 py-2 leading-4 text-base font-semibold text-muted-foreground uppercase ${groupedChains.available.length > 0 || groupedChains.willChangeSrc.length > 0 ? "mt-10" : ""}`,
|
|
2620
|
+
children: t("bridge.willChangeSourceNetworkAndToken")
|
|
2621
|
+
}
|
|
2622
|
+
),
|
|
2598
2623
|
groupedChains.willChangeTokenAndSrc.map(
|
|
2599
2624
|
(c) => renderChainItem(c, false, true)
|
|
2600
2625
|
)
|
|
@@ -3942,9 +3967,9 @@ const WalletSelectModal = () => {
|
|
|
3942
3967
|
wallets: tronWallets.filter(notConnected)
|
|
3943
3968
|
}
|
|
3944
3969
|
].filter((category) => category.wallets.length > 0);
|
|
3945
|
-
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsxs(DialogContent, { children: [
|
|
3970
|
+
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "p-10", children: [
|
|
3946
3971
|
/* @__PURE__ */ jsxs(DialogHeader, { className: "text-left", children: [
|
|
3947
|
-
/* @__PURE__ */ jsx(DialogTitle, { children: t("wallets.chooseWallet") }),
|
|
3972
|
+
/* @__PURE__ */ jsx(DialogTitle, { className: "text-2xl leading-8", children: t("wallets.chooseWallet") }),
|
|
3948
3973
|
/* @__PURE__ */ jsx(DialogDescription, { children: t("wallets.oneWalletPerEnv") })
|
|
3949
3974
|
] }),
|
|
3950
3975
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
@@ -6021,8 +6046,8 @@ const SettingsModal = ({ isOpen, onClose }) => {
|
|
|
6021
6046
|
);
|
|
6022
6047
|
const activeBtn = "bg-primary hover:bg-primary/80 text-primary-foreground transition-colors";
|
|
6023
6048
|
const notActiveBtn = "bg-accent hover:bg-accent/80 text-accent-foreground transition-colors";
|
|
6024
|
-
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsxs(DialogContent, { onOpenAutoFocus: (e) => e.preventDefault(), children: [
|
|
6025
|
-
/* @__PURE__ */ jsx(DialogHeader, { className: "text-left", children: /* @__PURE__ */ jsx(DialogTitle, { children: t("settings.title") }) }),
|
|
6049
|
+
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsxs(DialogContent, { onOpenAutoFocus: (e) => e.preventDefault(), className: "p-10", children: [
|
|
6050
|
+
/* @__PURE__ */ jsx(DialogHeader, { className: "text-left", children: /* @__PURE__ */ jsx(DialogTitle, { className: "text-2xl leading-8", children: t("settings.title") }) }),
|
|
6026
6051
|
/* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
|
|
6027
6052
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
|
|
6028
6053
|
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center", children: [
|
|
@@ -6050,9 +6075,8 @@ const SettingsModal = ({ isOpen, onClose }) => {
|
|
|
6050
6075
|
Badge,
|
|
6051
6076
|
{
|
|
6052
6077
|
onClick: () => setGasPreset(g),
|
|
6053
|
-
size: "lg",
|
|
6054
6078
|
className: cn(
|
|
6055
|
-
"cursor-pointer",
|
|
6079
|
+
"cursor-pointer h-7 rounded px-2",
|
|
6056
6080
|
gasPreset === g ? activeBtn : notActiveBtn
|
|
6057
6081
|
),
|
|
6058
6082
|
children: t(`settings.gasPresets.${g}`)
|
|
@@ -6077,13 +6101,12 @@ const SettingsModal = ({ isOpen, onClose }) => {
|
|
|
6077
6101
|
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: slippagePresets.map((p) => /* @__PURE__ */ jsx(
|
|
6078
6102
|
Badge,
|
|
6079
6103
|
{
|
|
6080
|
-
size: "lg",
|
|
6081
6104
|
onClick: () => {
|
|
6082
6105
|
const bps = parseFloat(p.replace("%", "")) * 100;
|
|
6083
6106
|
setSlippageBps(bps);
|
|
6084
6107
|
},
|
|
6085
6108
|
className: cn(
|
|
6086
|
-
"cursor-pointer",
|
|
6109
|
+
"cursor-pointer h-7 rounded px-2",
|
|
6087
6110
|
activeSlippagePreset === p ? activeBtn : notActiveBtn
|
|
6088
6111
|
),
|
|
6089
6112
|
children: p
|
|
@@ -6101,10 +6124,9 @@ const SettingsModal = ({ isOpen, onClose }) => {
|
|
|
6101
6124
|
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-end gap-2", children: routePresets.map((r) => /* @__PURE__ */ jsx(
|
|
6102
6125
|
Badge,
|
|
6103
6126
|
{
|
|
6104
|
-
size: "lg",
|
|
6105
6127
|
onClick: () => setRoutePriority(r),
|
|
6106
6128
|
className: cn(
|
|
6107
|
-
"cursor-pointer",
|
|
6129
|
+
"cursor-pointer h-7 rounded px-2",
|
|
6108
6130
|
routePriority === r ? activeBtn : notActiveBtn
|
|
6109
6131
|
),
|
|
6110
6132
|
children: t(`settings.routePresets.${r}`)
|
|
@@ -6129,7 +6151,7 @@ const TokenRow = ({
|
|
|
6129
6151
|
Button,
|
|
6130
6152
|
{
|
|
6131
6153
|
onClick: onPick,
|
|
6132
|
-
className: `w-full rounded-xs bg-transparent flex items-center justify-between gap-3
|
|
6154
|
+
className: `w-full px-5 rounded-xs bg-transparent flex items-center justify-between gap-3 hover:bg-accent hover:scale-100 ${isSelected ? "bg-accent hover:bg-accent/50" : ""}`,
|
|
6133
6155
|
children: [
|
|
6134
6156
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
6135
6157
|
/* @__PURE__ */ jsx(
|
|
@@ -6141,15 +6163,15 @@ const TokenRow = ({
|
|
|
6141
6163
|
}
|
|
6142
6164
|
),
|
|
6143
6165
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-1", children: [
|
|
6144
|
-
/* @__PURE__ */ jsx("p", { className: "font-semibold text-foreground text-
|
|
6145
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs leading-3
|
|
6166
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-foreground text-sm leading-4 truncate flex items-center gap-1", children: symbol }),
|
|
6167
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs leading-3 text-muted-foreground truncate", children: name })
|
|
6146
6168
|
] })
|
|
6147
6169
|
] }),
|
|
6148
6170
|
/* @__PURE__ */ jsx("div", { className: "text-right space-y-1", children: isBalanceLoading && hasAnyWallet ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end gap-1", children: [
|
|
6149
6171
|
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-16 rounded-md" }),
|
|
6150
6172
|
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-12 rounded-md" })
|
|
6151
6173
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6152
|
-
/* @__PURE__ */ jsx("div", { className: "font-semibold text-foreground text-
|
|
6174
|
+
/* @__PURE__ */ jsx("div", { className: "font-semibold text-foreground text-sm leading-4 truncate", children: hasAnyWallet ? formatBalance(balance) : "—" }),
|
|
6153
6175
|
/* @__PURE__ */ jsx("div", { className: "text-xs leading-3 text-muted-foreground/50", children: hasAnyWallet && balance > 0 && usdValue > 0 ? formatUsd(usdValue) : "—" })
|
|
6154
6176
|
] }) })
|
|
6155
6177
|
]
|
|
@@ -6293,8 +6315,8 @@ const TokenSelectModal = ({
|
|
|
6293
6315
|
[groupedTokens.willChangeSrcChain]
|
|
6294
6316
|
);
|
|
6295
6317
|
const hasNoResults = tokensToRender.length === 0 && willChangeSrcTokens.length === 0;
|
|
6296
|
-
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && handleClose(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "md:max-h-[90dvh] md:h-[90dvh] overflow-hidden flex flex-col", children: [
|
|
6297
|
-
/* @__PURE__ */ jsx(DialogHeader, { className: "text-left", children: /* @__PURE__ */ jsx(DialogTitle, { children: t("bridge.selectToken") }) }),
|
|
6318
|
+
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && handleClose(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "md:max-h-[90dvh] md:h-[90dvh] overflow-hidden flex flex-col p-10", children: [
|
|
6319
|
+
/* @__PURE__ */ jsx(DialogHeader, { className: "text-left", children: /* @__PURE__ */ jsx(DialogTitle, { className: "text-2xl leading-8", children: t("bridge.selectToken") }) }),
|
|
6298
6320
|
/* @__PURE__ */ jsx(
|
|
6299
6321
|
SearchInput,
|
|
6300
6322
|
{
|
|
@@ -6310,7 +6332,7 @@ const TokenSelectModal = ({
|
|
|
6310
6332
|
variant: tab === "my" ? "default" : "ghost",
|
|
6311
6333
|
onClick: () => setTab("my"),
|
|
6312
6334
|
size: "sm",
|
|
6313
|
-
className: cn(tab !== "my" && "bg-muted hover:bg-accent"),
|
|
6335
|
+
className: cn("px-4", tab !== "my" && "bg-muted hover:bg-accent"),
|
|
6314
6336
|
children: t("bridge.myTokens")
|
|
6315
6337
|
}
|
|
6316
6338
|
),
|
|
@@ -6320,13 +6342,16 @@ const TokenSelectModal = ({
|
|
|
6320
6342
|
variant: tab === "all" ? "default" : "ghost",
|
|
6321
6343
|
onClick: () => setTab("all"),
|
|
6322
6344
|
size: "sm",
|
|
6323
|
-
className: cn(
|
|
6345
|
+
className: cn(
|
|
6346
|
+
"px-4",
|
|
6347
|
+
tab !== "all" && "bg-muted hover:bg-accent"
|
|
6348
|
+
),
|
|
6324
6349
|
children: t("bridge.allTokens")
|
|
6325
6350
|
}
|
|
6326
6351
|
)
|
|
6327
6352
|
] }),
|
|
6328
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto
|
|
6329
|
-
effectiveTab === "my" && myTokens.length === 0 && /* @__PURE__ */ jsx("p", { className: "leading-4 text-base
|
|
6353
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto -mx-5", children: hasNoResults ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground px-5 py-4", children: t("bridge.noResults") }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6354
|
+
effectiveTab === "my" && myTokens.length === 0 && /* @__PURE__ */ jsx("p", { className: "leading-4 px-5 text-base text-muted-foreground uppercase py-2", children: t("bridge.noBalancesFound") }),
|
|
6330
6355
|
tokensToRender.map(({ token, willChangeSrc }) => {
|
|
6331
6356
|
const bal = getBalance(token.symbol);
|
|
6332
6357
|
const usd = getTokenUsdValue(token.symbol, token.price?.usd);
|
|
@@ -6347,7 +6372,7 @@ const TokenSelectModal = ({
|
|
|
6347
6372
|
);
|
|
6348
6373
|
}),
|
|
6349
6374
|
effectiveTab === "all" && willChangeSrcTokens.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6350
|
-
/* @__PURE__ */ jsx("div", { className: "px-5 flex leading-4 text-base py-2
|
|
6375
|
+
/* @__PURE__ */ jsx("div", { className: "px-5 flex leading-4 text-base py-2 text-muted-foreground uppercase mt-8", children: /* @__PURE__ */ jsx("p", { children: t("bridge.willChangeSourceChain") }) }),
|
|
6351
6376
|
willChangeSrcTokens.map(({ token, willChangeSrc }) => {
|
|
6352
6377
|
const bal = getBalance(token.symbol);
|
|
6353
6378
|
const usd = getTokenUsdValue(
|