@aurora-is-near/intents-swap-widget 3.18.3 → 3.19.0
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/components/AllNetworksIcon.js +11 -0
- package/dist/components/AllNetworksIcon.js.map +1 -0
- package/dist/components/ChainShortcut.d.ts +15 -0
- package/dist/components/ChainShortcut.js +57 -0
- package/dist/components/ChainShortcut.js.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +21 -17
- package/dist/components/index.js.map +1 -1
- package/dist/{config-BMvXuF1-.js → config-C47AYcMK.js} +913 -898
- package/dist/config-C47AYcMK.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +2 -2
- package/dist/errors.js +1 -1
- package/dist/ext/alchemy/index.js +1 -1
- package/dist/ext/index.js +1 -1
- package/dist/features/BalanceRpcLoader/TokenBalanceLoader.js +1 -1
- package/dist/features/BalanceRpcLoader/index.js +1 -1
- package/dist/features/BalanceRpcLoader/useTokenBalanceRpc.js +1 -1
- package/dist/features/ChainsDropdown/ChainItem.d.ts +1 -0
- package/dist/features/ChainsDropdown/ChainItem.js +23 -14
- package/dist/features/ChainsDropdown/ChainItem.js.map +1 -1
- package/dist/features/ChainsDropdown/index.js +61 -94
- package/dist/features/ChainsDropdown/index.js.map +1 -1
- package/dist/features/ChainsSelector/index.d.ts +15 -0
- package/dist/features/ChainsSelector/index.js +108 -0
- package/dist/features/ChainsSelector/index.js.map +1 -0
- package/dist/features/DepositMethodSwitcher.js +1 -1
- package/dist/features/ErrorBoundary.js +1 -1
- package/dist/features/ExternalDeposit.js +4 -3
- package/dist/features/ExternalDeposit.js.map +1 -1
- package/dist/features/SendAddress/index.js +1 -1
- package/dist/features/SendAddress/useNotification.js +1 -1
- package/dist/features/SubmitButton/index.js +1 -1
- package/dist/features/SuccessScreen/index.js +1 -1
- package/dist/features/SuccessScreen/useSummaryItemsCount.js +1 -1
- package/dist/features/SwapDirectionSwitcher.js +1 -1
- package/dist/features/SwapQuote/SwapQuote.js +1 -1
- package/dist/features/SwapQuote/index.js +1 -1
- package/dist/features/TokenInput/TokenInput.js +1 -1
- package/dist/features/TokenInput/TokenInputEmpty.js +1 -1
- package/dist/features/TokenInput/TokenInputSource.js +1 -1
- package/dist/features/TokenInput/TokenInputTarget.js +1 -1
- package/dist/features/TokenInput/WalletBalance.js +1 -1
- package/dist/features/TokenInput/hooks/index.js +1 -1
- package/dist/features/TokenInput/hooks/useTokenInputBalance.js +1 -1
- package/dist/features/TokenInput/index.js +1 -1
- package/dist/features/TokensList/TokenItem.js +1 -1
- package/dist/features/TokensList/TokensList.js +1 -1
- package/dist/features/TokensList/index.js +1 -1
- package/dist/features/TokensModal.js +62 -64
- package/dist/features/TokensModal.js.map +1 -1
- package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js +5 -4
- package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js.map +1 -1
- package/dist/features/WalletCompatibilityCheck/index.js +1 -1
- package/dist/features/index.js +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useAllTokens.js +1 -1
- package/dist/hooks/useChains.js +1 -1
- package/dist/hooks/useCompatibilityCheck.js +1 -1
- package/dist/hooks/useDefaultToken.js +1 -1
- package/dist/hooks/useExternalDepositStatus/index.js +1 -1
- package/dist/hooks/useExternalDepositStatus/usePoaExternalDepositStatus.js +1 -1
- package/dist/hooks/useIntentsBalance.js +1 -1
- package/dist/hooks/useIsCompatibilityCheckRequired.js +1 -1
- package/dist/hooks/useMakeDepositAddress.js +1 -1
- package/dist/hooks/useMakeIntentsTransfer.js +1 -1
- package/dist/hooks/useMakeNEARFtTransferCall.js +1 -1
- package/dist/hooks/useMakeQuote.js +1 -1
- package/dist/hooks/useMakeQuoteTransfer.js +1 -1
- package/dist/hooks/useMakeTransfer.js +1 -1
- package/dist/hooks/useMergedBalance.js +1 -1
- package/dist/hooks/useSwitchChain.js +1 -1
- package/dist/hooks/useTheme.js +1 -1
- package/dist/hooks/useTokenInputPair.js +1 -1
- package/dist/hooks/useTokens.js +1 -1
- package/dist/hooks/useTokensFiltered.d.ts +3 -1
- package/dist/hooks/useTokensFiltered.js +1 -1
- package/dist/hooks/useTokensIntentsUnique.js +1 -1
- package/dist/index.js +74 -70
- package/dist/index.js.map +1 -1
- package/dist/machine/effects/index.js +1 -1
- package/dist/machine/effects/useAlchemyBalanceEffect.js +1 -1
- package/dist/machine/effects/useBalancesUpdateEffect.js +1 -1
- package/dist/machine/effects/useMakeQuoteEffect.js +1 -1
- package/dist/machine/effects/useSelectedTokensEffect.js +1 -1
- package/dist/machine/effects/useSetTokenBalanceEffect.js +1 -1
- package/dist/machine/effects/useSetTokenIntentsTargetEffect.js +1 -1
- package/dist/machine/effects/useWalletConnEffect.js +1 -1
- package/dist/machine/events/index.js +1 -1
- package/dist/machine/events/tokenSelect.js +1 -1
- package/dist/machine/events/validateInputAndMoveTo.js +1 -1
- package/dist/machine/events/validateInputs.js +1 -1
- package/dist/machine/index.js +1 -1
- package/dist/machine/snap.js +1 -1
- package/dist/machine/subscriptions/checkers/isSendAddressAsConnected.js +1 -1
- package/dist/machine/subscriptions/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme/ThemeProvider.js +1 -1
- package/dist/types/config.d.ts +3 -0
- package/dist/types/localisation.d.ts +1 -1
- package/dist/utils/intents/signers/near.js +1 -1
- package/dist/utils/intents/signers/privy.js +1 -1
- package/dist/utils/near/getNearNep141StorageBalance.js +1 -1
- package/dist/utils/tokens/sort.d.ts +2 -1
- package/dist/utils/tokens/sort.js +55 -24
- package/dist/utils/tokens/sort.js.map +1 -1
- package/dist/widgets/WidgetDeposit/WidgetDepositContent.js +2 -2
- package/dist/widgets/WidgetDeposit/WidgetDepositSkeleton.js +1 -1
- package/dist/widgets/WidgetSwap/WidgetSwapContent.js +2 -2
- package/dist/widgets/WidgetSwap/WidgetSwapSkeleton.js +1 -1
- package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js +2 -2
- package/dist/widgets/WidgetWithdraw/WidgetWithdrawSkeleton.js +1 -1
- package/package.json +1 -1
- package/src/components/AllNetworksIcon.tsx +8 -0
- package/src/components/ChainShortcut.tsx +67 -0
- package/src/components/index.ts +2 -0
- package/src/config.tsx +13 -0
- package/src/features/ChainsDropdown/ChainItem.tsx +17 -4
- package/src/features/ChainsDropdown/index.tsx +10 -41
- package/src/features/ChainsSelector/index.tsx +113 -0
- package/src/features/TokensList/TokensList.tsx +2 -1
- package/src/features/TokensModal.tsx +29 -29
- package/src/hooks/useTokensFiltered.ts +4 -0
- package/src/types/config.ts +8 -0
- package/src/types/localisation.ts +1 -0
- package/src/utils/tokens/sort.ts +107 -20
- package/dist/config-BMvXuF1-.js.map +0 -1
- package/dist/features/ChainsDropdown/AllNetworksIcon.js +0 -7
- package/dist/features/ChainsDropdown/AllNetworksIcon.js.map +0 -1
- package/src/features/ChainsDropdown/AllNetworksIcon.tsx +0 -7
- /package/dist/{features/ChainsDropdown → components}/AllNetworksIcon.d.ts +0 -0
package/dist/config.d.ts
CHANGED
|
@@ -56,11 +56,13 @@ export declare const useConfig: () => {
|
|
|
56
56
|
readonly allowedTokensList?: readonly string[] | undefined;
|
|
57
57
|
readonly allowedSourceTokensList?: readonly string[] | undefined;
|
|
58
58
|
readonly allowedTargetTokensList?: readonly string[] | undefined;
|
|
59
|
+
readonly priorityAssets?: readonly string[] | readonly (readonly ["eth" | "bera" | "base" | "gnosis" | "arb" | "bsc" | "avax" | "op" | "pol" | "sui" | "xrp" | "btc" | "doge" | "tron" | "ton" | "near" | "sol" | "zec" | "ltc" | "cardano", string])[] | undefined;
|
|
59
60
|
readonly filterTokens: (token: Token) => boolean;
|
|
60
61
|
readonly chainsOrder: readonly ("eth" | "bera" | "base" | "gnosis" | "arb" | "bsc" | "avax" | "op" | "pol" | "sui" | "xrp" | "btc" | "doge" | "tron" | "ton" | "near" | "sol" | "zec" | "ltc" | "cardano")[];
|
|
61
62
|
readonly allowedChainsList?: readonly ("eth" | "bera" | "base" | "gnosis" | "arb" | "bsc" | "avax" | "op" | "pol" | "sui" | "xrp" | "btc" | "doge" | "tron" | "ton" | "near" | "sol" | "zec" | "ltc" | "cardano")[] | undefined;
|
|
62
63
|
readonly allowedSourceChainsList?: readonly ("eth" | "bera" | "base" | "gnosis" | "arb" | "bsc" | "avax" | "op" | "pol" | "sui" | "xrp" | "btc" | "doge" | "tron" | "ton" | "near" | "sol" | "zec" | "ltc" | "cardano")[] | undefined;
|
|
63
64
|
readonly allowedTargetChainsList?: readonly ("eth" | "bera" | "base" | "gnosis" | "arb" | "bsc" | "avax" | "op" | "pol" | "sui" | "xrp" | "btc" | "doge" | "tron" | "ton" | "near" | "sol" | "zec" | "ltc" | "cardano")[] | undefined;
|
|
65
|
+
readonly topChainShortcuts?: ((intentsAccountType?: import('./types').IntentsAccountType) => [import('./types').Chains, import('./types').Chains, import('./types').Chains, import('./types').Chains]) | undefined;
|
|
64
66
|
readonly chainsFilter: {
|
|
65
67
|
readonly source: {
|
|
66
68
|
readonly intents: "none" | "all" | "with-balance";
|
package/dist/config.js
CHANGED
|
@@ -8,12 +8,11 @@ import "react";
|
|
|
8
8
|
import "@tanstack/react-query";
|
|
9
9
|
import "react-i18next";
|
|
10
10
|
import "./localisation.js";
|
|
11
|
-
import { W as ro, ah as to, y as mo } from "./config-
|
|
11
|
+
import { W as ro, ah as to, y as mo } from "./config-C47AYcMK.js";
|
|
12
12
|
import "@headlessui/react";
|
|
13
13
|
import "@material-symbols-svg/react-rounded/icons/chevron-left";
|
|
14
14
|
import "framer-motion";
|
|
15
15
|
import "./features/ChainsDropdown/ChainItem.js";
|
|
16
|
-
import "@material-symbols-svg/react-rounded/icons/target";
|
|
17
16
|
import "./utils/cn.js";
|
|
18
17
|
import "@defuse-protocol/one-click-sdk-typescript";
|
|
19
18
|
import "./constants/chains.js";
|
|
@@ -44,6 +43,7 @@ import "./network.js";
|
|
|
44
43
|
import "viem/chains";
|
|
45
44
|
import "browser-or-node";
|
|
46
45
|
import "@material-symbols-svg/react-rounded/icons/search";
|
|
46
|
+
import "./components/ChainShortcut.js";
|
|
47
47
|
import "@material-symbols-svg/react-rounded/icons/arrow-downward";
|
|
48
48
|
import "qrcode.react";
|
|
49
49
|
import "@material-symbols-svg/react-rounded/icons/cached";
|
package/dist/errors.js
CHANGED
|
@@ -3,7 +3,7 @@ import "@tanstack/react-query";
|
|
|
3
3
|
import "./parse.js";
|
|
4
4
|
import "./load.js";
|
|
5
5
|
import "./types.js";
|
|
6
|
-
import { t as s } from "../../config-
|
|
6
|
+
import { t as s } from "../../config-C47AYcMK.js";
|
|
7
7
|
import "../../machine/guards/index.js";
|
|
8
8
|
import "../../machine/machine.js";
|
|
9
9
|
import "../../machine/events/utils/fireEvent.js";
|
package/dist/ext/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import "../../logger.js";
|
|
|
3
3
|
import "../../utils/ton/getTonTokenBalance.js";
|
|
4
4
|
import "../../utils/solana/getSolanaTokenBalance.js";
|
|
5
5
|
import "../../hooks/useWalletAddressForToken.js";
|
|
6
|
-
import { D as x } from "../../config-
|
|
6
|
+
import { D as x } from "../../config-C47AYcMK.js";
|
|
7
7
|
import "../../utils/evm/isEvmChain.js";
|
|
8
8
|
import "../../utils/evm/isEvmToken.js";
|
|
9
9
|
import "../../utils/evm/isEvmBaseToken.js";
|
|
@@ -1,32 +1,41 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { jsxs as p, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import w from "react";
|
|
3
|
+
import { CheckFillW700 as l } from "@material-symbols-svg/react-rounded/icons/check";
|
|
4
4
|
import { cn as f } from "../../utils/cn.js";
|
|
5
5
|
import { Icon as x } from "../../components/Icon.js";
|
|
6
|
-
const
|
|
7
|
-
({
|
|
6
|
+
const b = w.forwardRef(
|
|
7
|
+
({
|
|
8
|
+
chain: e,
|
|
9
|
+
label: r,
|
|
10
|
+
icon: a,
|
|
11
|
+
iconClassName: m,
|
|
12
|
+
isFocused: o,
|
|
13
|
+
isSelected: s,
|
|
14
|
+
className: c,
|
|
15
|
+
onMsg: n
|
|
16
|
+
}, i) => /* @__PURE__ */ p(
|
|
8
17
|
"button",
|
|
9
18
|
{
|
|
10
|
-
ref:
|
|
19
|
+
ref: i,
|
|
11
20
|
type: "button",
|
|
12
|
-
onClick: () =>
|
|
21
|
+
onClick: () => n({ type: "on_click_chain", chain: e }),
|
|
13
22
|
className: f(
|
|
14
23
|
"gap-sw-md px-sw-lg py-sw-sm text-sw-gray-50 flex cursor-pointer items-center justify-between rounded-sw-md transition-colors",
|
|
15
|
-
{ "bg-sw-gray-700":
|
|
24
|
+
{ "bg-sw-gray-700": s || o },
|
|
16
25
|
{
|
|
17
|
-
"hover:text-sw-accent-200 hover:bg-sw-gray-700": !
|
|
26
|
+
"hover:text-sw-accent-200 hover:bg-sw-gray-700": !s && !o
|
|
18
27
|
},
|
|
19
|
-
|
|
28
|
+
c
|
|
20
29
|
),
|
|
21
30
|
children: [
|
|
22
|
-
/* @__PURE__ */ t(x, { radius: 10, label:
|
|
23
|
-
/* @__PURE__ */ t("span", { className: "text-sw-label-md mr-auto", children:
|
|
24
|
-
|
|
31
|
+
/* @__PURE__ */ t(x, { radius: 10, label: r, icon: a, className: m }),
|
|
32
|
+
/* @__PURE__ */ t("span", { className: "text-sw-label-md mr-auto", children: r }),
|
|
33
|
+
s && /* @__PURE__ */ t(l, { size: 16, className: "text-sw-status-success" })
|
|
25
34
|
]
|
|
26
35
|
}
|
|
27
36
|
)
|
|
28
37
|
);
|
|
29
38
|
export {
|
|
30
|
-
|
|
39
|
+
b as ChainItem
|
|
31
40
|
};
|
|
32
41
|
//# sourceMappingURL=ChainItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainItem.js","sources":["../../../src/features/ChainsDropdown/ChainItem.tsx"],"sourcesContent":["import React from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"ChainItem.js","sources":["../../../src/features/ChainsDropdown/ChainItem.tsx"],"sourcesContent":["import React from 'react';\nimport { CheckFillW700 as Check } from '@material-symbols-svg/react-rounded/icons/check';\n\nimport { cn } from '@/utils/cn';\nimport { Icon } from '@/components/Icon';\nimport type { Chains } from '@/types/chain';\n\ntype Msg = { type: 'on_click_chain'; chain: 'intents' | 'all' | Chains };\n\ntype Props = {\n label: string;\n isFocused: boolean;\n isSelected: boolean;\n chain: 'intents' | 'all' | Chains;\n icon: string | React.ReactElement;\n iconClassName?: string;\n className?: string;\n onMsg: (msg: Msg) => void;\n};\n\nexport const ChainItem = React.forwardRef<HTMLButtonElement, Props>(\n (\n {\n chain,\n label,\n icon,\n iconClassName,\n isFocused,\n isSelected,\n className,\n onMsg,\n },\n ref,\n ) => (\n <button\n ref={ref}\n type=\"button\"\n onClick={() => onMsg({ type: 'on_click_chain', chain })}\n className={cn(\n 'gap-sw-md px-sw-lg py-sw-sm text-sw-gray-50 flex cursor-pointer items-center justify-between rounded-sw-md transition-colors',\n { 'bg-sw-gray-700': isSelected || isFocused },\n {\n 'hover:text-sw-accent-200 hover:bg-sw-gray-700':\n !isSelected && !isFocused,\n },\n className,\n )}>\n <Icon radius={10} label={label} icon={icon} className={iconClassName} />\n <span className=\"text-sw-label-md mr-auto\">{label}</span>\n {isSelected && <Check size={16} className=\"text-sw-status-success\" />}\n </button>\n ),\n);\n"],"names":["ChainItem","React","chain","label","icon","iconClassName","isFocused","isSelected","className","onMsg","ref","jsxs","cn","jsx","Icon","Check"],"mappings":";;;;;AAoBO,MAAMA,IAAYC,EAAM;AAAA,EAC7B,CACE;AAAA,IACE,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,GAEFC,MAEA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,SAAS,MAAMD,EAAM,EAAE,MAAM,kBAAkB,OAAAP,GAAO;AAAA,MACtD,WAAWU;AAAA,QACT;AAAA,QACA,EAAE,kBAAkBL,KAAcD,EAAA;AAAA,QAClC;AAAA,UACE,iDACE,CAACC,KAAc,CAACD;AAAA,QAAA;AAAA,QAEpBE;AAAA,MAAA;AAAA,MAEF,UAAA;AAAA,QAAA,gBAAAK,EAACC,KAAK,QAAQ,IAAI,OAAAX,GAAc,MAAAC,GAAY,WAAWC,GAAe;AAAA,QACtE,gBAAAQ,EAAC,QAAA,EAAK,WAAU,4BAA4B,UAAAV,GAAM;AAAA,QACjDI,KAAc,gBAAAM,EAACE,GAAA,EAAM,MAAM,IAAI,WAAU,yBAAA,CAAyB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzE;"}
|
|
@@ -1,147 +1,114 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import {
|
|
3
|
-
import { Menu as
|
|
4
|
-
import { ChevronLeftW700 as
|
|
5
|
-
import { AnimatePresence as
|
|
6
|
-
import { ChainItem as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
onMsg: o
|
|
1
|
+
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment as N } from "react";
|
|
3
|
+
import { Menu as _, MenuButton as I, MenuItems as k, MenuItem as c } from "@headlessui/react";
|
|
4
|
+
import { ChevronLeftW700 as h } from "@material-symbols-svg/react-rounded/icons/chevron-left";
|
|
5
|
+
import { AnimatePresence as C, motion as M } from "framer-motion";
|
|
6
|
+
import { ChainItem as m } from "./ChainItem.js";
|
|
7
|
+
import { d as v, y as A } from "../../config-C47AYcMK.js";
|
|
8
|
+
import { Hr as F } from "../../components/Hr.js";
|
|
9
|
+
import { AllNetworksIcon as S } from "../../components/AllNetworksIcon.js";
|
|
10
|
+
import { notReachable as p } from "../../utils/notReachable.js";
|
|
11
|
+
import { useTypedTranslation as z } from "../../localisation.js";
|
|
12
|
+
import { UNKNOWN_ICON as w, CHAIN_ICONS as E } from "../../icons/index.js";
|
|
13
|
+
const q = ({
|
|
14
|
+
variant: g,
|
|
15
|
+
selected: a,
|
|
16
|
+
chainsFilter: f,
|
|
17
|
+
onMsg: n
|
|
19
18
|
}) => {
|
|
20
|
-
const { t:
|
|
21
|
-
|
|
22
|
-
[
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
(() => {
|
|
27
|
-
switch (t) {
|
|
28
|
-
case "all":
|
|
29
|
-
return /* @__PURE__ */ e(
|
|
30
|
-
i,
|
|
31
|
-
{
|
|
32
|
-
radius: 10,
|
|
33
|
-
icon: /* @__PURE__ */ e(h, {}),
|
|
34
|
-
label: "All networks"
|
|
35
|
-
}
|
|
36
|
-
);
|
|
37
|
-
case "intents":
|
|
38
|
-
return C ? /* @__PURE__ */ e(i, { radius: 10, icon: f, label: b }) : null;
|
|
39
|
-
default:
|
|
40
|
-
return g ? /* @__PURE__ */ e(
|
|
41
|
-
i,
|
|
42
|
-
{
|
|
43
|
-
radius: 10,
|
|
44
|
-
label: g.label,
|
|
45
|
-
icon: k[t] ?? w
|
|
46
|
-
}
|
|
47
|
-
) : /* @__PURE__ */ e(
|
|
48
|
-
i,
|
|
49
|
-
{
|
|
50
|
-
radius: 10,
|
|
51
|
-
icon: /* @__PURE__ */ e(h, {}),
|
|
52
|
-
label: I("chain.all.label", "All networks")
|
|
53
|
-
}
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
})(),
|
|
57
|
-
n ? /* @__PURE__ */ e(
|
|
58
|
-
x,
|
|
19
|
+
const { t: u } = z(), s = v(g), { appIcon: y, appName: x } = A(), d = f.intents !== "none";
|
|
20
|
+
return /* @__PURE__ */ e(_, { children: ({ open: b, close: o }) => /* @__PURE__ */ l("div", { children: [
|
|
21
|
+
/* @__PURE__ */ e(I, { as: N, children: ({ open: r }) => /* @__PURE__ */ l("div", { className: "py-sw-sm pr-sw-md pl-sw-lg gap-sw-xs flex h-[36px] cursor-pointer items-center rounded-sw-md bg-sw-gray-800 hover:bg-sw-gray-700", children: [
|
|
22
|
+
/* @__PURE__ */ e("span", { className: "text-sw-label-md text-sw-gray-50", children: u("chain.more.label", "More") }),
|
|
23
|
+
r ? /* @__PURE__ */ e(
|
|
24
|
+
h,
|
|
59
25
|
{
|
|
60
26
|
size: 18,
|
|
61
27
|
className: "text-sw-gray-50 rotate-90"
|
|
62
28
|
}
|
|
63
29
|
) : /* @__PURE__ */ e(
|
|
64
|
-
|
|
30
|
+
h,
|
|
65
31
|
{
|
|
66
32
|
size: 18,
|
|
67
33
|
className: "text-sw-gray-50 -rotate-90"
|
|
68
34
|
}
|
|
69
35
|
)
|
|
70
36
|
] }) }),
|
|
71
|
-
/* @__PURE__ */ e(
|
|
72
|
-
|
|
37
|
+
/* @__PURE__ */ e(C, { children: b && /* @__PURE__ */ l(
|
|
38
|
+
k,
|
|
73
39
|
{
|
|
74
40
|
static: !0,
|
|
75
|
-
as:
|
|
41
|
+
as: M.div,
|
|
76
42
|
animate: { opacity: 1, scale: 1 },
|
|
77
43
|
initial: { opacity: 0, scale: 0.95 },
|
|
78
44
|
anchor: { to: "bottom end", gap: 8, padding: 32 },
|
|
79
45
|
className: "hide-scrollbar gap-sw-xxs p-sw-md z-10 flex max-h-[400px] min-w-[200px] flex-col rounded-sw-lg bg-sw-gray-800 shadow-[0_6px_48px_0_rgba(36,38,45,0.3)] ring-1 ring-inset ring-sw-gray-700 outline-none",
|
|
80
46
|
children: [
|
|
81
|
-
|
|
82
|
-
|
|
47
|
+
s.length > 1 && /* @__PURE__ */ e(c, { children: ({ focus: r }) => /* @__PURE__ */ e(
|
|
48
|
+
m,
|
|
83
49
|
{
|
|
84
50
|
chain: "all",
|
|
85
51
|
label: "All networks",
|
|
86
|
-
isSelected:
|
|
87
|
-
isFocused:
|
|
88
|
-
icon: /* @__PURE__ */ e(
|
|
89
|
-
|
|
90
|
-
|
|
52
|
+
isSelected: a === "all",
|
|
53
|
+
isFocused: r,
|
|
54
|
+
icon: /* @__PURE__ */ e(S, {}),
|
|
55
|
+
iconClassName: "bg-sw-gray-50",
|
|
56
|
+
onMsg: (t) => {
|
|
57
|
+
switch (t.type) {
|
|
91
58
|
case "on_click_chain":
|
|
92
|
-
|
|
59
|
+
o(), n(t);
|
|
93
60
|
break;
|
|
94
61
|
default:
|
|
95
|
-
|
|
62
|
+
p(t.type, { throwError: !1 });
|
|
96
63
|
}
|
|
97
64
|
}
|
|
98
65
|
}
|
|
99
66
|
) }),
|
|
100
|
-
|
|
101
|
-
|
|
67
|
+
d && /* @__PURE__ */ e(c, { children: ({ focus: r }) => /* @__PURE__ */ e(
|
|
68
|
+
m,
|
|
102
69
|
{
|
|
103
70
|
chain: "intents",
|
|
104
|
-
label:
|
|
105
|
-
isSelected:
|
|
106
|
-
isFocused:
|
|
107
|
-
icon:
|
|
108
|
-
onMsg: (
|
|
109
|
-
switch (
|
|
71
|
+
label: x,
|
|
72
|
+
isSelected: a === "intents",
|
|
73
|
+
isFocused: r,
|
|
74
|
+
icon: y ?? w,
|
|
75
|
+
onMsg: (t) => {
|
|
76
|
+
switch (t.type) {
|
|
110
77
|
case "on_click_chain":
|
|
111
|
-
|
|
78
|
+
o(), n(t);
|
|
112
79
|
break;
|
|
113
80
|
default:
|
|
114
|
-
|
|
81
|
+
p(t.type, { throwError: !1 });
|
|
115
82
|
}
|
|
116
83
|
}
|
|
117
84
|
}
|
|
118
85
|
) }),
|
|
119
|
-
!!
|
|
120
|
-
|
|
121
|
-
|
|
86
|
+
!!s.length && !!(s.length > 1 || d) && /* @__PURE__ */ e(F, { className: "shrink-0 my-sw-sm bg-sw-gray-700" }),
|
|
87
|
+
s.map((r) => /* @__PURE__ */ e(c, { children: ({ focus: t }) => /* @__PURE__ */ e(
|
|
88
|
+
m,
|
|
122
89
|
{
|
|
123
|
-
chain:
|
|
124
|
-
label:
|
|
125
|
-
icon:
|
|
126
|
-
isSelected:
|
|
127
|
-
isFocused:
|
|
128
|
-
onMsg: (
|
|
129
|
-
switch (
|
|
90
|
+
chain: r.id,
|
|
91
|
+
label: r.label,
|
|
92
|
+
icon: E[r.id] ?? w,
|
|
93
|
+
isSelected: a === r.id,
|
|
94
|
+
isFocused: t,
|
|
95
|
+
onMsg: (i) => {
|
|
96
|
+
switch (i.type) {
|
|
130
97
|
case "on_click_chain":
|
|
131
|
-
|
|
98
|
+
o(), n(i);
|
|
132
99
|
break;
|
|
133
100
|
default:
|
|
134
|
-
|
|
101
|
+
p(i.type, { throwError: !1 });
|
|
135
102
|
}
|
|
136
103
|
}
|
|
137
104
|
}
|
|
138
|
-
) },
|
|
105
|
+
) }, r.id))
|
|
139
106
|
]
|
|
140
107
|
}
|
|
141
108
|
) })
|
|
142
109
|
] }) });
|
|
143
110
|
};
|
|
144
111
|
export {
|
|
145
|
-
|
|
112
|
+
q as ChainsDropdown
|
|
146
113
|
};
|
|
147
114
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/features/ChainsDropdown/index.tsx"],"sourcesContent":["import { Fragment, useMemo } from 'react';\nimport { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react';\nimport { ChevronLeftW700 as ChevronLeft } from '@material-symbols-svg/react-rounded/icons/chevron-left';\nimport { AnimatePresence, motion } from 'framer-motion';\n\nimport { ChainItem } from './ChainItem';\nimport { AllNetworksIcon } from './AllNetworksIcon';\nimport { useConfig } from '@/config';\nimport { Hr } from '@/components/Hr';\nimport { Icon } from '@/components/Icon';\nimport { useChains } from '@/hooks/useChains';\nimport { notReachable } from '@/utils/notReachable';\nimport { useTypedTranslation } from '@/localisation';\nimport { ASSET_ICONS, UNKNOWN_ICON } from '@/icons';\nimport type { Chains, ChainsFilter } from '@/types/chain';\n\ntype Msg = { type: 'on_click_chain'; chain: 'all' | 'intents' | Chains };\n\ntype Props = {\n variant: 'source' | 'target';\n chainsFilter: ChainsFilter;\n selected: 'all' | 'intents' | Chains;\n onMsg: (msg: Msg) => void;\n};\n\nexport const ChainsDropdown = ({\n variant,\n selected,\n chainsFilter,\n onMsg,\n}: Props) => {\n const { t } = useTypedTranslation();\n\n const chains = useChains(variant);\n const { appIcon, appName, showIntentTokens } = useConfig();\n const selectedChain = useMemo(\n () => chains.find((item) => item.id === selected),\n [chains, selected],\n );\n\n const hasIntentsAccountMenuItem = chainsFilter.intents !== 'none';\n\n return (\n <Menu>\n {({ open, close }) => (\n <div>\n <MenuButton as={Fragment}>\n {({ open: isOpen }) => (\n <div className=\"py-sw-sm px-sw-md gap-sw-md flex h-[40px] cursor-pointer items-center rounded-sw-md bg-sw-gray-800 hover:bg-sw-gray-700\">\n {(() => {\n switch (selected) {\n case 'all':\n return (\n <Icon\n radius={10}\n icon={<AllNetworksIcon />}\n label=\"All networks\"\n />\n );\n case 'intents':\n return showIntentTokens ? (\n <Icon radius={10} icon={appIcon} label={appName} />\n ) : null;\n default:\n return !selectedChain ? (\n <Icon\n radius={10}\n icon={<AllNetworksIcon />}\n label={t('chain.all.label', 'All networks')}\n />\n ) : (\n <Icon\n radius={10}\n label={selectedChain.label}\n icon={ASSET_ICONS[selected] ?? UNKNOWN_ICON}\n />\n );\n }\n })()}\n\n {isOpen ? (\n <ChevronLeft\n size={18}\n className=\"text-sw-gray-50 rotate-90\"\n />\n ) : (\n <ChevronLeft\n size={18}\n className=\"text-sw-gray-50 -rotate-90\"\n />\n )}\n </div>\n )}\n </MenuButton>\n\n <AnimatePresence>\n {open && (\n <MenuItems\n static\n as={motion.div}\n animate={{ opacity: 1, scale: 1 }}\n initial={{ opacity: 0, scale: 0.95 }}\n anchor={{ to: 'bottom end', gap: 8, padding: 32 }}\n className=\"hide-scrollbar gap-sw-xxs p-sw-md z-10 flex max-h-[400px] min-w-[200px] flex-col rounded-sw-lg bg-sw-gray-800 shadow-[0_6px_48px_0_rgba(36,38,45,0.3)] ring-1 ring-inset ring-sw-gray-700 outline-none\">\n {chains.length > 1 && (\n <MenuItem>\n {({ focus }) => (\n <ChainItem\n chain=\"all\"\n label=\"All networks\"\n isSelected={selected === 'all'}\n isFocused={focus}\n icon={<AllNetworksIcon />}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_click_chain':\n close();\n onMsg(msg);\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n </MenuItem>\n )}\n\n {hasIntentsAccountMenuItem && (\n <MenuItem>\n {({ focus }) => (\n <ChainItem\n chain=\"intents\"\n label={appName}\n isSelected={selected === 'intents'}\n isFocused={focus}\n icon={appIcon ?? UNKNOWN_ICON}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_click_chain':\n close();\n onMsg(msg);\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n </MenuItem>\n )}\n\n {!!chains.length &&\n !!(chains.length > 1 || hasIntentsAccountMenuItem) && (\n <Hr className=\"shrink-0 my-sw-sm bg-sw-gray-700\" />\n )}\n\n {chains.map((chain) => {\n return (\n <MenuItem key={chain.id}>\n {({ focus }) => (\n <ChainItem\n chain={chain.id}\n label={chain.label}\n icon={ASSET_ICONS[chain.id] ?? UNKNOWN_ICON}\n isSelected={selected === chain.id}\n isFocused={focus}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_click_chain':\n close();\n onMsg(msg);\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n </MenuItem>\n );\n })}\n </MenuItems>\n )}\n </AnimatePresence>\n </div>\n )}\n </Menu>\n );\n};\n"],"names":["ChainsDropdown","variant","selected","chainsFilter","onMsg","t","useTypedTranslation","chains","useChains","appIcon","appName","showIntentTokens","useConfig","selectedChain","useMemo","item","hasIntentsAccountMenuItem","jsx","Menu","open","close","MenuButton","Fragment","isOpen","jsxs","Icon","AllNetworksIcon","ASSET_ICONS","UNKNOWN_ICON","ChevronLeft","AnimatePresence","MenuItems","motion","MenuItem","focus","ChainItem","msg","notReachable","Hr","chain"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/features/ChainsDropdown/index.tsx"],"sourcesContent":["import { Fragment } from 'react';\nimport { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react';\nimport { ChevronLeftW700 as ChevronLeft } from '@material-symbols-svg/react-rounded/icons/chevron-left';\nimport { AnimatePresence, motion } from 'framer-motion';\n\nimport { ChainItem } from './ChainItem';\nimport { useConfig } from '@/config';\nimport { Hr } from '@/components/Hr';\nimport { AllNetworksIcon } from '@/components/AllNetworksIcon';\nimport { useChains } from '@/hooks/useChains';\nimport { notReachable } from '@/utils/notReachable';\nimport { useTypedTranslation } from '@/localisation';\nimport { CHAIN_ICONS, UNKNOWN_ICON } from '@/icons';\nimport type { Chains, ChainsFilter } from '@/types/chain';\n\ntype Msg = { type: 'on_click_chain'; chain: 'all' | 'intents' | Chains };\n\ntype Props = {\n variant: 'source' | 'target';\n chainsFilter: ChainsFilter;\n selected: 'all' | 'intents' | Chains;\n onMsg: (msg: Msg) => void;\n};\n\nexport const ChainsDropdown = ({\n variant,\n selected,\n chainsFilter,\n onMsg,\n}: Props) => {\n const { t } = useTypedTranslation();\n\n const chains = useChains(variant);\n const { appIcon, appName } = useConfig();\n\n const hasIntentsAccountMenuItem = chainsFilter.intents !== 'none';\n\n return (\n <Menu>\n {({ open, close }) => (\n <div>\n <MenuButton as={Fragment}>\n {({ open: isOpen }) => (\n <div className=\"py-sw-sm pr-sw-md pl-sw-lg gap-sw-xs flex h-[36px] cursor-pointer items-center rounded-sw-md bg-sw-gray-800 hover:bg-sw-gray-700\">\n <span className=\"text-sw-label-md text-sw-gray-50\">\n {t('chain.more.label', 'More')}\n </span>\n\n {isOpen ? (\n <ChevronLeft\n size={18}\n className=\"text-sw-gray-50 rotate-90\"\n />\n ) : (\n <ChevronLeft\n size={18}\n className=\"text-sw-gray-50 -rotate-90\"\n />\n )}\n </div>\n )}\n </MenuButton>\n\n <AnimatePresence>\n {open && (\n <MenuItems\n static\n as={motion.div}\n animate={{ opacity: 1, scale: 1 }}\n initial={{ opacity: 0, scale: 0.95 }}\n anchor={{ to: 'bottom end', gap: 8, padding: 32 }}\n className=\"hide-scrollbar gap-sw-xxs p-sw-md z-10 flex max-h-[400px] min-w-[200px] flex-col rounded-sw-lg bg-sw-gray-800 shadow-[0_6px_48px_0_rgba(36,38,45,0.3)] ring-1 ring-inset ring-sw-gray-700 outline-none\">\n {chains.length > 1 && (\n <MenuItem>\n {({ focus }) => (\n <ChainItem\n chain=\"all\"\n label=\"All networks\"\n isSelected={selected === 'all'}\n isFocused={focus}\n icon={<AllNetworksIcon />}\n iconClassName=\"bg-sw-gray-50\"\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_click_chain':\n close();\n onMsg(msg);\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n </MenuItem>\n )}\n\n {hasIntentsAccountMenuItem && (\n <MenuItem>\n {({ focus }) => (\n <ChainItem\n chain=\"intents\"\n label={appName}\n isSelected={selected === 'intents'}\n isFocused={focus}\n icon={appIcon ?? UNKNOWN_ICON}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_click_chain':\n close();\n onMsg(msg);\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n </MenuItem>\n )}\n\n {!!chains.length &&\n !!(chains.length > 1 || hasIntentsAccountMenuItem) && (\n <Hr className=\"shrink-0 my-sw-sm bg-sw-gray-700\" />\n )}\n\n {chains.map((chain) => {\n return (\n <MenuItem key={chain.id}>\n {({ focus }) => (\n <ChainItem\n chain={chain.id}\n label={chain.label}\n icon={CHAIN_ICONS[chain.id] ?? UNKNOWN_ICON}\n isSelected={selected === chain.id}\n isFocused={focus}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_click_chain':\n close();\n onMsg(msg);\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n </MenuItem>\n );\n })}\n </MenuItems>\n )}\n </AnimatePresence>\n </div>\n )}\n </Menu>\n );\n};\n"],"names":["ChainsDropdown","variant","selected","chainsFilter","onMsg","t","useTypedTranslation","chains","useChains","appIcon","appName","useConfig","hasIntentsAccountMenuItem","jsx","Menu","open","close","MenuButton","Fragment","isOpen","jsxs","ChevronLeft","AnimatePresence","MenuItems","motion","MenuItem","focus","ChainItem","AllNetworksIcon","msg","notReachable","UNKNOWN_ICON","Hr","chain","CHAIN_ICONS"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Chains, ChainsFilter } from '../../types/chain';
|
|
2
|
+
type SelectedChain = 'all' | 'intents' | Chains;
|
|
3
|
+
type Msg = {
|
|
4
|
+
type: 'on_select_chain';
|
|
5
|
+
chain: SelectedChain;
|
|
6
|
+
};
|
|
7
|
+
type Props = {
|
|
8
|
+
variant: 'source' | 'target';
|
|
9
|
+
chainsFilter: ChainsFilter;
|
|
10
|
+
selectedChain: SelectedChain;
|
|
11
|
+
className?: string;
|
|
12
|
+
onMsg: (msg: Msg) => void;
|
|
13
|
+
};
|
|
14
|
+
export declare const ChainsSelector: ({ variant, chainsFilter, selectedChain, className, onMsg, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsxs as c, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { ChainsDropdown as S } from "../ChainsDropdown/index.js";
|
|
3
|
+
import { CHAIN_ICONS as s } from "../../icons/index.js";
|
|
4
|
+
import { ChainShortcut as n } from "../../components/ChainShortcut.js";
|
|
5
|
+
import { cn as k } from "../../utils/cn.js";
|
|
6
|
+
import { d as w, y as C } from "../../config-C47AYcMK.js";
|
|
7
|
+
import "react";
|
|
8
|
+
import "@tanstack/react-query";
|
|
9
|
+
import "@defuse-protocol/one-click-sdk-typescript";
|
|
10
|
+
import "../../constants/chains.js";
|
|
11
|
+
import "ethers";
|
|
12
|
+
import "../../machine/machine.js";
|
|
13
|
+
import { notReachable as x } from "../../utils/notReachable.js";
|
|
14
|
+
import "zod";
|
|
15
|
+
import "../../utils/near/rpc.js";
|
|
16
|
+
import "../../index-DEq3oXQF.js";
|
|
17
|
+
import "@defuse-protocol/intents-sdk";
|
|
18
|
+
import "change-case";
|
|
19
|
+
import "@defuse-protocol/internal-utils";
|
|
20
|
+
import "bs58";
|
|
21
|
+
import "../../index-xuotMAFm.js";
|
|
22
|
+
import "axios";
|
|
23
|
+
import "../../network.js";
|
|
24
|
+
import "viem";
|
|
25
|
+
import { noop as N } from "../../utils/noop.js";
|
|
26
|
+
import "viem/chains";
|
|
27
|
+
import "browser-or-node";
|
|
28
|
+
const $ = ({
|
|
29
|
+
variant: l,
|
|
30
|
+
chainsFilter: a,
|
|
31
|
+
selectedChain: o,
|
|
32
|
+
className: f,
|
|
33
|
+
onMsg: e
|
|
34
|
+
}) => {
|
|
35
|
+
const p = w(l), {
|
|
36
|
+
appIcon: u,
|
|
37
|
+
appName: h,
|
|
38
|
+
topChainShortcuts: d,
|
|
39
|
+
intentsAccountType: _,
|
|
40
|
+
showIntentTokens: b
|
|
41
|
+
} = C(), m = d?.(_) ?? ["eth", "btc", "sol", "near"];
|
|
42
|
+
return /* @__PURE__ */ c(
|
|
43
|
+
"div",
|
|
44
|
+
{
|
|
45
|
+
className: k("flex items-center justify-between gap-sw-md", f),
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ r(
|
|
48
|
+
n.All,
|
|
49
|
+
{
|
|
50
|
+
isSelected: o === "all",
|
|
51
|
+
onClick: () => e({ type: "on_select_chain", chain: "all" })
|
|
52
|
+
}
|
|
53
|
+
),
|
|
54
|
+
/* @__PURE__ */ c("ul", { className: "flex items-center gap-sw-md", children: [
|
|
55
|
+
b && /* @__PURE__ */ r(
|
|
56
|
+
n,
|
|
57
|
+
{
|
|
58
|
+
icon: u,
|
|
59
|
+
label: h,
|
|
60
|
+
isSelected: o === "intents",
|
|
61
|
+
onClick: () => e({ type: "on_select_chain", chain: "intents" })
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
m.map((t, y) => y === m.length - 1 && ![...m, "all", "intents"].includes(o) ? /* @__PURE__ */ r(
|
|
65
|
+
n,
|
|
66
|
+
{
|
|
67
|
+
isSelected: !0,
|
|
68
|
+
icon: s[o],
|
|
69
|
+
label: p.find((i) => i.id === o)?.label ?? "",
|
|
70
|
+
onClick: N
|
|
71
|
+
},
|
|
72
|
+
o
|
|
73
|
+
) : p.some((i) => i.id === t) ? /* @__PURE__ */ r(
|
|
74
|
+
n,
|
|
75
|
+
{
|
|
76
|
+
icon: s[t],
|
|
77
|
+
isSelected: o === t,
|
|
78
|
+
label: p.find((i) => i.id === t)?.label ?? "",
|
|
79
|
+
onClick: () => e({ type: "on_select_chain", chain: t })
|
|
80
|
+
},
|
|
81
|
+
t
|
|
82
|
+
) : null)
|
|
83
|
+
] }),
|
|
84
|
+
/* @__PURE__ */ r(
|
|
85
|
+
S,
|
|
86
|
+
{
|
|
87
|
+
variant: l,
|
|
88
|
+
selected: o,
|
|
89
|
+
chainsFilter: a,
|
|
90
|
+
onMsg: (t) => {
|
|
91
|
+
switch (t.type) {
|
|
92
|
+
case "on_click_chain":
|
|
93
|
+
e({ type: "on_select_chain", chain: t.chain });
|
|
94
|
+
break;
|
|
95
|
+
default:
|
|
96
|
+
x(t.type, { throwError: !1 });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
};
|
|
105
|
+
export {
|
|
106
|
+
$ as ChainsSelector
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/features/ChainsSelector/index.tsx"],"sourcesContent":["import { ChainsDropdown } from '../ChainsDropdown';\n\nimport { CHAIN_ICONS } from '@/icons';\nimport { ChainShortcut } from '@/components/ChainShortcut';\n\nimport { cn } from '@/utils/cn';\nimport { useChains } from '@/hooks';\nimport { useConfig } from '@/config';\nimport { noop } from '@/utils/noop';\nimport { notReachable } from '@/utils/notReachable';\nimport type { Chains, ChainsFilter } from '@/types/chain';\n\ntype SelectedChain = 'all' | 'intents' | Chains;\n\ntype Msg = { type: 'on_select_chain'; chain: SelectedChain };\n\ntype Props = {\n variant: 'source' | 'target';\n chainsFilter: ChainsFilter;\n selectedChain: SelectedChain;\n className?: string;\n onMsg: (msg: Msg) => void;\n};\n\nexport const ChainsSelector = ({\n variant,\n chainsFilter,\n selectedChain,\n className,\n onMsg,\n}: Props) => {\n const chains = useChains(variant);\n const {\n appIcon,\n appName,\n topChainShortcuts,\n intentsAccountType,\n showIntentTokens,\n } = useConfig();\n\n const topChains =\n topChainShortcuts?.(intentsAccountType) ??\n (['eth', 'btc', 'sol', 'near'] as const);\n\n return (\n <div\n className={cn('flex items-center justify-between gap-sw-md', className)}>\n <ChainShortcut.All\n isSelected={selectedChain === 'all'}\n onClick={() => onMsg({ type: 'on_select_chain', chain: 'all' })}\n />\n\n <ul className=\"flex items-center gap-sw-md\">\n {showIntentTokens && (\n <ChainShortcut\n icon={appIcon}\n label={appName}\n isSelected={selectedChain === 'intents'}\n onClick={() => onMsg({ type: 'on_select_chain', chain: 'intents' })}\n />\n )}\n\n {topChains.map((chain, index) => {\n // last shortcut reserved for the selected chain\n if (\n index === topChains.length - 1 &&\n ![...topChains, 'all', 'intents'].includes(selectedChain)\n ) {\n return (\n <ChainShortcut\n isSelected\n key={selectedChain}\n icon={CHAIN_ICONS[selectedChain as Chains]}\n label={chains.find((c) => c.id === selectedChain)?.label ?? ''}\n onClick={noop}\n />\n );\n }\n\n // check it here to respect global chain filters\n if (chains.some((c) => c.id === chain)) {\n return (\n <ChainShortcut\n key={chain}\n icon={CHAIN_ICONS[chain]}\n isSelected={selectedChain === chain}\n label={chains.find((c) => c.id === chain)?.label ?? ''}\n onClick={() => onMsg({ type: 'on_select_chain', chain })}\n />\n );\n }\n\n return null;\n })}\n </ul>\n\n <ChainsDropdown\n variant={variant}\n selected={selectedChain}\n chainsFilter={chainsFilter}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_click_chain':\n onMsg({ type: 'on_select_chain', chain: msg.chain });\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n </div>\n );\n};\n"],"names":["ChainsSelector","variant","chainsFilter","selectedChain","className","onMsg","chains","useChains","appIcon","appName","topChainShortcuts","intentsAccountType","showIntentTokens","useConfig","topChains","jsxs","cn","jsx","ChainShortcut","chain","index","CHAIN_ICONS","c","noop","ChainsDropdown","msg","notReachable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBO,MAAMA,IAAiB,CAAC;AAAA,EAC7B,SAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AACF,MAAa;AACX,QAAMC,IAASC,EAAUN,CAAO,GAC1B;AAAA,IACJ,SAAAO;AAAA,IACA,SAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,IACEC,EAAA,GAEEC,IACJJ,IAAoBC,CAAkB,KACrC,CAAC,OAAO,OAAO,OAAO,MAAM;AAE/B,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,+CAA+CZ,CAAS;AAAA,MACtE,UAAA;AAAA,QAAA,gBAAAa;AAAA,UAACC,EAAc;AAAA,UAAd;AAAA,YACC,YAAYf,MAAkB;AAAA,YAC9B,SAAS,MAAME,EAAM,EAAE,MAAM,mBAAmB,OAAO,OAAO;AAAA,UAAA;AAAA,QAAA;AAAA,QAGhE,gBAAAU,EAAC,MAAA,EAAG,WAAU,+BACX,UAAA;AAAA,UAAAH,KACC,gBAAAK;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,MAAMV;AAAA,cACN,OAAOC;AAAA,cACP,YAAYN,MAAkB;AAAA,cAC9B,SAAS,MAAME,EAAM,EAAE,MAAM,mBAAmB,OAAO,WAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAIrES,EAAU,IAAI,CAACK,GAAOC,MAGnBA,MAAUN,EAAU,SAAS,KAC7B,CAAC,CAAC,GAAGA,GAAW,OAAO,SAAS,EAAE,SAASX,CAAa,IAGtD,gBAAAc;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,YAAU;AAAA,cAEV,MAAMG,EAAYlB,CAAuB;AAAA,cACzC,OAAOG,EAAO,KAAK,CAACgB,MAAMA,EAAE,OAAOnB,CAAa,GAAG,SAAS;AAAA,cAC5D,SAASoB;AAAA,YAAA;AAAA,YAHJpB;AAAA,UAAA,IASPG,EAAO,KAAK,CAACgB,MAAMA,EAAE,OAAOH,CAAK,IAEjC,gBAAAF;AAAA,YAACC;AAAA,YAAA;AAAA,cAEC,MAAMG,EAAYF,CAAK;AAAA,cACvB,YAAYhB,MAAkBgB;AAAA,cAC9B,OAAOb,EAAO,KAAK,CAACgB,MAAMA,EAAE,OAAOH,CAAK,GAAG,SAAS;AAAA,cACpD,SAAS,MAAMd,EAAM,EAAE,MAAM,mBAAmB,OAAAc,GAAO;AAAA,YAAA;AAAA,YAJlDA;AAAA,UAAA,IASJ,IACR;AAAA,QAAA,GACH;AAAA,QAEA,gBAAAF;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,SAAAvB;AAAA,YACA,UAAUE;AAAA,YACV,cAAAD;AAAA,YACA,OAAO,CAACuB,MAAQ;AACd,sBAAQA,EAAI,MAAA;AAAA,gBACV,KAAK;AACH,kBAAApB,EAAM,EAAE,MAAM,mBAAmB,OAAOoB,EAAI,OAAO;AACnD;AAAA,gBACF;AACE,kBAAAC,EAAaD,EAAI,MAAM,EAAE,YAAY,IAAO;AAAA,cAAA;AAAA,YAElD;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -4,7 +4,7 @@ import { WalletW700 as n } from "@material-symbols-svg/react-rounded/icons/walle
|
|
|
4
4
|
import { cn as p } from "../utils/cn.js";
|
|
5
5
|
import { Card as c } from "../components/Card.js";
|
|
6
6
|
import { Button as i } from "../components/Button.js";
|
|
7
|
-
import { b as d } from "../config-
|
|
7
|
+
import { b as d } from "../config-C47AYcMK.js";
|
|
8
8
|
import "ethers";
|
|
9
9
|
import "../machine/machine.js";
|
|
10
10
|
import { fireEvent as x } from "../machine/events/utils/fireEvent.js";
|
|
@@ -12,7 +12,7 @@ import { formatAddressTruncate as _ } from "../utils/formatters/formatAddressTru
|
|
|
12
12
|
import "../utils/cn.js";
|
|
13
13
|
import { notReachable as l } from "../utils/notReachable.js";
|
|
14
14
|
import "@tanstack/react-query";
|
|
15
|
-
import { b as E, u as I } from "../config-
|
|
15
|
+
import { b as E, u as I } from "../config-C47AYcMK.js";
|
|
16
16
|
import { guardStates as k } from "../machine/guards/index.js";
|
|
17
17
|
import { moveTo as A } from "../machine/machine.js";
|
|
18
18
|
import { fireEvent as o } from "../machine/events/utils/fireEvent.js";
|
|
@@ -43,6 +43,7 @@ import "../components/Input.js";
|
|
|
43
43
|
import "../components/InputAmount.js";
|
|
44
44
|
import "../components/Notes.js";
|
|
45
45
|
import { StatusWidget as n } from "../components/StatusWidget.js";
|
|
46
|
+
import "../components/ChainShortcut.js";
|
|
46
47
|
const f = ({ address: r }) => /* @__PURE__ */ c("div", { className: "flex flex-col gap-sw-2xl items-center", children: [
|
|
47
48
|
/* @__PURE__ */ t("div", { className: "p-sw-lg m-sw-lg mx-auto w-fit rounded-sw-md bg-[#fff]", children: /* @__PURE__ */ t(w, { size: 156, value: r, fgColor: "#161926" }) }),
|
|
48
49
|
/* @__PURE__ */ c("div", { className: "py-sw-lg px-sw-lg w-full flex items-center justify-between rounded-sw-md bg-sw-gray-800", children: [
|
|
@@ -58,7 +59,7 @@ const f = ({ address: r }) => /* @__PURE__ */ c("div", { className: "flex flex-c
|
|
|
58
59
|
/* @__PURE__ */ t("span", { className: "text-sw-gray-100 text-sw-label-sm", children: T(i.sourceTokenAmount) ? r("deposit.external.loading.fetching", "Fetching new address") : r("deposit.external.loading.waiting", "Waiting for token amount") })
|
|
59
60
|
] })
|
|
60
61
|
] });
|
|
61
|
-
},
|
|
62
|
+
}, Dt = ({ onMsg: r }) => {
|
|
62
63
|
const { t: i } = S(), { ctx: s } = E(), { isNativeNearDeposit: u } = I(), p = k(s, [
|
|
63
64
|
"quote_success_external",
|
|
64
65
|
"quote_success_internal"
|
|
@@ -166,6 +167,6 @@ const f = ({ address: r }) => /* @__PURE__ */ c("div", { className: "flex flex-c
|
|
|
166
167
|
}
|
|
167
168
|
};
|
|
168
169
|
export {
|
|
169
|
-
|
|
170
|
+
Dt as ExternalDeposit
|
|
170
171
|
};
|
|
171
172
|
//# sourceMappingURL=ExternalDeposit.js.map
|