@relayprotocol/relay-kit-ui 5.1.0 → 5.1.2
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/_cjs/src/components/common/BalanceDisplay.js.map +1 -1
- package/_cjs/src/components/common/CustomAddressModal.js +24 -2
- package/_cjs/src/components/common/CustomAddressModal.js.map +1 -1
- package/_cjs/src/components/common/Modal.js +2 -2
- package/_cjs/src/components/common/Modal.js.map +1 -1
- package/_cjs/src/components/common/PercentageButtons.js +64 -0
- package/_cjs/src/components/common/PercentageButtons.js.map +1 -0
- package/_cjs/src/components/common/SlippageToleranceConfig.js +133 -44
- package/_cjs/src/components/common/SlippageToleranceConfig.js.map +1 -1
- package/_cjs/src/components/common/TokenSelector/ChainShortcuts.js +83 -0
- package/_cjs/src/components/common/TokenSelector/ChainShortcuts.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/MobileChainSelector.js +255 -0
- package/_cjs/src/components/common/TokenSelector/MobileChainSelector.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/TokenSelector.js +62 -27
- package/_cjs/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
- package/_cjs/src/components/primitives/Dialog.js +6 -5
- package/_cjs/src/components/primitives/Dialog.js.map +1 -1
- package/_cjs/src/components/primitives/Input.js +5 -4
- package/_cjs/src/components/primitives/Input.js.map +1 -1
- package/_cjs/src/components/widgets/SwapWidget/index.js +44 -103
- package/_cjs/src/components/widgets/SwapWidget/index.js.map +1 -1
- package/_cjs/src/styles.css +252 -102
- package/_cjs/src/version.js +1 -1
- package/_cjs/tsconfig.build.tsbuildinfo +1 -1
- package/_esm/src/components/common/BalanceDisplay.js +0 -1
- package/_esm/src/components/common/BalanceDisplay.js.map +1 -1
- package/_esm/src/components/common/CustomAddressModal.js +25 -3
- package/_esm/src/components/common/CustomAddressModal.js.map +1 -1
- package/_esm/src/components/common/Modal.js +2 -2
- package/_esm/src/components/common/Modal.js.map +1 -1
- package/_esm/src/components/common/PercentageButtons.js +61 -0
- package/_esm/src/components/common/PercentageButtons.js.map +1 -0
- package/_esm/src/components/common/SlippageToleranceConfig.js +135 -45
- package/_esm/src/components/common/SlippageToleranceConfig.js.map +1 -1
- package/_esm/src/components/common/TokenSelector/ChainShortcuts.js +84 -0
- package/_esm/src/components/common/TokenSelector/ChainShortcuts.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/MobileChainSelector.js +260 -0
- package/_esm/src/components/common/TokenSelector/MobileChainSelector.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/TokenSelector.js +64 -28
- package/_esm/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
- package/_esm/src/components/primitives/Dialog.js +6 -5
- package/_esm/src/components/primitives/Dialog.js.map +1 -1
- package/_esm/src/components/primitives/Input.js +5 -4
- package/_esm/src/components/primitives/Input.js.map +1 -1
- package/_esm/src/components/widgets/SwapWidget/index.js +52 -111
- package/_esm/src/components/widgets/SwapWidget/index.js.map +1 -1
- package/_esm/src/styles.css +252 -102
- package/_esm/src/version.js +1 -1
- package/_esm/tsconfig.build.tsbuildinfo +1 -1
- package/_types/src/components/common/BalanceDisplay.d.ts.map +1 -1
- package/_types/src/components/common/CustomAddressModal.d.ts.map +1 -1
- package/_types/src/components/common/Modal.d.ts +2 -1
- package/_types/src/components/common/Modal.d.ts.map +1 -1
- package/_types/src/components/common/PercentageButtons.d.ts +15 -0
- package/_types/src/components/common/PercentageButtons.d.ts.map +1 -0
- package/_types/src/components/common/SlippageToleranceConfig.d.ts.map +1 -1
- package/_types/src/components/common/TokenSelector/ChainShortcuts.d.ts +19 -0
- package/_types/src/components/common/TokenSelector/ChainShortcuts.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/MobileChainSelector.d.ts +21 -0
- package/_types/src/components/common/TokenSelector/MobileChainSelector.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/TokenSelector.d.ts.map +1 -1
- package/_types/src/components/primitives/Dialog.d.ts +1 -0
- package/_types/src/components/primitives/Dialog.d.ts.map +1 -1
- package/_types/src/components/primitives/Input.d.ts +1 -0
- package/_types/src/components/primitives/Input.d.ts.map +1 -1
- package/_types/src/components/widgets/SwapWidget/index.d.ts.map +1 -1
- package/_types/src/version.d.ts +1 -1
- package/_types/tsconfig.build.tsbuildinfo +1 -1
- package/dist/panda.buildinfo.json +74 -34
- package/dist/styles.css +252 -102
- package/package.json +3 -3
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Flex, Skeleton, Text } from '../primitives/index.js';
|
|
3
3
|
import { formatBN } from '../../utils/numbers.js';
|
|
4
|
-
import { useAccount } from 'wagmi';
|
|
5
4
|
export const BalanceDisplay = ({ balance, decimals, symbol, isLoading, hasInsufficientBalance, displaySymbol = true, isConnected, pending }) => {
|
|
6
5
|
const compactBalance = Boolean(balance && decimals && balance.toString().length - decimals > 4);
|
|
7
6
|
if (pending) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceDisplay.js","sourceRoot":"","sources":["../../../../src/components/common/BalanceDisplay.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"BalanceDisplay.js","sourceRoot":"","sources":["../../../../src/components/common/BalanceDisplay.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAajD,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,EACtD,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,aAAa,GAAG,IAAI,EACpB,WAAW,EACX,OAAO,EACR,EAAE,EAAE;IACH,MAAM,cAAc,GAAG,OAAO,CAC5B,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,CAChE,CAAA;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,KAAC,IAAI,IAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YACvB,KAAC,IAAI,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,KAAK,iCAE7B,GACF,CACR,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,IAAI,IAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YACtB,WAAW,CAAC,CAAC,CAAC,CACb,4BACG,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,QAAQ,IAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAI,CACjC,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IACH,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,yBAEhD,GAAG,EACX,OAAO,KAAK,SAAS;wBACpB,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC;4BACpD,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/C,CAAC,CAAC,GAAG,EAAE,GAAG,IACP,CACR,GACA,CACJ,CAAC,CAAC,CAAC,IAAI,GACH,CACR,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -8,7 +8,7 @@ import { useENSResolver, useWalletAddress } from '../../hooks/index.js';
|
|
|
8
8
|
import { isENSName } from '../../utils/ens.js';
|
|
9
9
|
import { LoadingSpinner } from '../common/LoadingSpinner.js';
|
|
10
10
|
import { EventNames } from '../../constants/events.js';
|
|
11
|
-
import { faCircleCheck, faTriangleExclamation, faClipboard } from '@fortawesome/free-solid-svg-icons';
|
|
11
|
+
import { faCircleCheck, faTriangleExclamation, faClipboard, faCircleXmark } from '@fortawesome/free-solid-svg-icons';
|
|
12
12
|
import { AnchorButton } from '../primitives/Anchor.js';
|
|
13
13
|
import { truncateAddress } from '../../utils/truncate.js';
|
|
14
14
|
import { isValidAddress } from '../../utils/address.js';
|
|
@@ -60,7 +60,7 @@ export const CustomAddressModal = ({ open, toAddress, toChain, linkedWallets, is
|
|
|
60
60
|
height: '100%',
|
|
61
61
|
gap: '4',
|
|
62
62
|
sm: {
|
|
63
|
-
width:
|
|
63
|
+
width: 386
|
|
64
64
|
}
|
|
65
65
|
}, children: [_jsx(Text, { style: "h6", children: "To Address" }), _jsxs(Flex, { direction: "column", css: { gap: '2', position: 'relative' }, children: [_jsxs(Flex, { css: {
|
|
66
66
|
position: 'relative',
|
|
@@ -68,13 +68,35 @@ export const CustomAddressModal = ({ open, toAddress, toChain, linkedWallets, is
|
|
|
68
68
|
}, children: [_jsx(Input, { type: "text", inputMode: "text", autoComplete: "off", autoCorrect: "off", className: "ph-no-capture", css: {
|
|
69
69
|
width: '100%',
|
|
70
70
|
height: 48
|
|
71
|
+
}, inputStyle: {
|
|
72
|
+
paddingRight: input.length > 0 ? '42px' : '16px'
|
|
71
73
|
}, placeholder: !toChain
|
|
72
74
|
? 'Enter address'
|
|
73
75
|
: toChain.vmType === 'evm'
|
|
74
76
|
? 'Address or ENS'
|
|
75
77
|
: `Enter ${toChain.displayName} address`, value: input, onChange: (e) => {
|
|
76
78
|
setInput(e.target.value);
|
|
77
|
-
} }), isLoading && (_jsx(
|
|
79
|
+
} }), input.length > 0 && !isLoading && (_jsx(Button, { color: "ghost", size: "none", css: {
|
|
80
|
+
position: 'absolute',
|
|
81
|
+
right: '8px',
|
|
82
|
+
top: '50%',
|
|
83
|
+
transform: 'translateY(-50%)',
|
|
84
|
+
width: '24px',
|
|
85
|
+
height: '24px',
|
|
86
|
+
minWidth: '24px',
|
|
87
|
+
minHeight: '24px',
|
|
88
|
+
padding: '0',
|
|
89
|
+
borderRadius: '4px',
|
|
90
|
+
display: 'flex',
|
|
91
|
+
alignItems: 'center',
|
|
92
|
+
justifyContent: 'center',
|
|
93
|
+
backgroundColor: 'gray3',
|
|
94
|
+
color: 'gray8'
|
|
95
|
+
}, onMouseDown: (e) => {
|
|
96
|
+
e.preventDefault(); // Prevent input from losing focus
|
|
97
|
+
}, onClick: () => {
|
|
98
|
+
setInput('');
|
|
99
|
+
}, children: _jsx(FontAwesomeIcon, { icon: faCircleXmark, width: 16, height: 16 }) })), isLoading && (_jsx(LoadingSpinner, { css: {
|
|
78
100
|
right: 2,
|
|
79
101
|
top: 3,
|
|
80
102
|
position: 'absolute'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomAddressModal.js","sourceRoot":"","sources":["../../../../src/components/common/CustomAddressModal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAW,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAgB,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAEtD,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,WAAW,
|
|
1
|
+
{"version":3,"file":"CustomAddressModal.js","sourceRoot":"","sources":["../../../../src/components/common/CustomAddressModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { Button } from '../primitives/index.js';
|
|
|
5
5
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
6
6
|
import { faXmark } from '@fortawesome/free-solid-svg-icons/faXmark';
|
|
7
7
|
import { AnimatePresence } from 'framer-motion';
|
|
8
|
-
export const Modal = ({ trigger, css, overlayZIndex = 9999, showCloseButton = true, children, ...props }) => {
|
|
8
|
+
export const Modal = ({ trigger, css, overlayZIndex = 9999, showCloseButton = true, disableAnimation = false, children, ...props }) => {
|
|
9
9
|
return (_jsxs(DialogRoot, { modal: true, ...props, children: [_jsx(DialogTrigger, { asChild: true, children: trigger }), _jsx(AnimatePresence, { children: props.open ? (_jsx(DialogPortal, { forceMount: true, children: _jsx(Overlay, { forceMount: true, css: {
|
|
10
10
|
position: 'fixed',
|
|
11
11
|
top: 0,
|
|
@@ -18,7 +18,7 @@ export const Modal = ({ trigger, css, overlayZIndex = 9999, showCloseButton = tr
|
|
|
18
18
|
border: '1px solid var(--borderColor)',
|
|
19
19
|
padding: '4',
|
|
20
20
|
...css
|
|
21
|
-
}, onPointerDownOutside: props.onPointerDownOutside, children: [showCloseButton ? (_jsx(DialogClose, { asChild: true, style: {
|
|
21
|
+
}, disableAnimation: disableAnimation, onPointerDownOutside: props.onPointerDownOutside, onOpenAutoFocus: props.onOpenAutoFocus, children: [showCloseButton ? (_jsx(DialogClose, { asChild: true, style: {
|
|
22
22
|
position: 'absolute',
|
|
23
23
|
right: 10,
|
|
24
24
|
top: 12,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/common/Modal.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EACL,IAAI,IAAI,UAAU,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/common/Modal.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EACL,IAAI,IAAI,UAAU,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAc/C,MAAM,CAAC,MAAM,KAAK,GAOd,CAAC,EACH,OAAO,EACP,GAAG,EACH,aAAa,GAAG,IAAI,EACpB,eAAe,GAAG,IAAI,EACtB,gBAAgB,GAAG,KAAK,EACxB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,EAAE;IACH,OAAO,CACL,MAAC,UAAU,IAAC,KAAK,EAAE,IAAI,KAAM,KAAK,aAChC,KAAC,aAAa,IAAC,OAAO,kBAAE,OAAO,GAAiB,EAChD,KAAC,eAAe,cACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACZ,KAAC,YAAY,IAAC,UAAU,kBACtB,KAAC,OAAO,IACN,UAAU,QACV,GAAG,EAAE;4BACH,QAAQ,EAAE,OAAO;4BACjB,GAAG,EAAE,CAAC;4BACN,IAAI,EAAE,CAAC;4BACP,KAAK,EAAE,CAAC;4BACR,MAAM,EAAE,CAAC;4BACT,eAAe,EAAE,UAAU;yBAC5B,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,YAEhC,MAAC,eAAe,IACd,UAAU,QACV,GAAG,EAAE;gCACH,eAAe,EAAE,4BAA4B;gCAC7C,MAAM,EAAE,8BAA8B;gCACtC,OAAO,EAAE,GAAG;gCACZ,GAAG,GAAG;6BACP,EACD,gBAAgB,EAAE,gBAAgB,EAClC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAChD,eAAe,EAAE,KAAK,CAAC,eAAe,aAErC,eAAe,CAAC,CAAC,CAAC,CACjB,KAAC,WAAW,IACV,OAAO,QACP,KAAK,EAAE;wCACL,QAAQ,EAAE,UAAU;wCACpB,KAAK,EAAE,EAAE;wCACT,GAAG,EAAE,EAAE;wCACP,MAAM,EAAE,EAAE;qCACX,YAED,KAAC,MAAM,IACL,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4CACb,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAA;wCACjC,CAAC,YAED,KAAC,eAAe,IAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,GAClD,GACG,CACf,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IACO,GACV,GACG,CAChB,CAAC,CAAC,CAAC,IAAI,GACQ,IACP,CACd,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import {} from 'react';
|
|
3
|
+
import { Button, Flex } from '../primitives/index.js';
|
|
4
|
+
export const PercentageButtons = ({ balance, onPercentageClick, getFeeBufferAmount, fromChain, publicClient, isFromNative, variant = 'desktop' }) => {
|
|
5
|
+
const isMobile = variant === 'mobile';
|
|
6
|
+
const buttonStyles = {
|
|
7
|
+
fontSize: isMobile ? 14 : 12,
|
|
8
|
+
fontWeight: '500',
|
|
9
|
+
px: '1',
|
|
10
|
+
py: isMobile ? '6px' : '1',
|
|
11
|
+
minHeight: isMobile ? 'auto' : '23px',
|
|
12
|
+
lineHeight: '100%',
|
|
13
|
+
backgroundColor: 'widget-selector-background',
|
|
14
|
+
border: 'none',
|
|
15
|
+
borderRadius: isMobile ? '6px' : '12px',
|
|
16
|
+
flex: isMobile ? '1' : 'none',
|
|
17
|
+
justifyContent: 'center',
|
|
18
|
+
_hover: {
|
|
19
|
+
backgroundColor: 'widget-selector-hover-background'
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const handleMaxClick = async () => {
|
|
23
|
+
if (!balance || !fromChain)
|
|
24
|
+
return;
|
|
25
|
+
let feeBufferAmount = 0n;
|
|
26
|
+
if (isFromNative && getFeeBufferAmount) {
|
|
27
|
+
feeBufferAmount = await getFeeBufferAmount(fromChain.vmType, fromChain.id, balance, publicClient ?? null);
|
|
28
|
+
}
|
|
29
|
+
const finalMaxAmount = isFromNative && feeBufferAmount > 0n
|
|
30
|
+
? balance > feeBufferAmount
|
|
31
|
+
? balance - feeBufferAmount
|
|
32
|
+
: 0n
|
|
33
|
+
: balance;
|
|
34
|
+
onPercentageClick(finalMaxAmount, 'max', isFromNative ? feeBufferAmount : 0n);
|
|
35
|
+
};
|
|
36
|
+
const handleMaxMouseEnter = () => {
|
|
37
|
+
if (fromChain?.vmType === 'evm' &&
|
|
38
|
+
publicClient &&
|
|
39
|
+
balance &&
|
|
40
|
+
getFeeBufferAmount) {
|
|
41
|
+
getFeeBufferAmount(fromChain.vmType, fromChain.id, balance, publicClient);
|
|
42
|
+
}
|
|
43
|
+
else if (fromChain?.vmType === 'svm' &&
|
|
44
|
+
fromChain.id &&
|
|
45
|
+
getFeeBufferAmount) {
|
|
46
|
+
getFeeBufferAmount(fromChain.vmType, fromChain.id, 0n, null);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return (_jsxs(Flex, { css: {
|
|
50
|
+
gap: '1',
|
|
51
|
+
width: isMobile ? '100%' : 'auto',
|
|
52
|
+
mb: isMobile ? '1' : '0'
|
|
53
|
+
}, children: [_jsx(Button, { "aria-label": "20%", css: buttonStyles, color: "white", onClick: () => {
|
|
54
|
+
const percentageBuffer = (balance * 20n) / 100n;
|
|
55
|
+
onPercentageClick(percentageBuffer, '20%');
|
|
56
|
+
}, children: "20%" }), _jsx(Button, { "aria-label": "50%", css: buttonStyles, color: "white", onClick: () => {
|
|
57
|
+
const percentageBuffer = (balance * 50n) / 100n;
|
|
58
|
+
onPercentageClick(percentageBuffer, '50%');
|
|
59
|
+
}, children: "50%" }), _jsx(Button, { "aria-label": "MAX", css: buttonStyles, color: "white", onMouseEnter: handleMaxMouseEnter, onClick: handleMaxClick, children: "MAX" })] }));
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=PercentageButtons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PercentageButtons.js","sourceRoot":"","sources":["../../../../src/components/common/PercentageButtons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,106 @@ import Tooltip from '../primitives/Tooltip.js';
|
|
|
8
8
|
import { TabsRoot, TabsList, TabsTrigger, TabsContent } from '../primitives/Tabs.js';
|
|
9
9
|
import { getSlippageRating, ratingToColor } from '../../utils/slippage.js';
|
|
10
10
|
import { EventNames } from '../../constants/events.js';
|
|
11
|
-
import { useDebounceValue } from 'usehooks-ts';
|
|
11
|
+
import { useDebounceValue, useMediaQuery } from 'usehooks-ts';
|
|
12
12
|
import useFallbackState from '../../hooks/useFallbackState.js';
|
|
13
|
+
import { Modal } from './Modal.js';
|
|
14
|
+
const SlippageTabs = ({ mode, setMode, displayValue, setDisplayValue, handleInputChange, handleKeyDown, handleClose, slippageRating, slippageRatingColor, inputRef }) => {
|
|
15
|
+
const isMobile = useMediaQuery('(max-width: 520px)');
|
|
16
|
+
return (_jsxs(TabsRoot, { value: mode, onValueChange: (value) => {
|
|
17
|
+
setMode(value);
|
|
18
|
+
if (value === 'Auto') {
|
|
19
|
+
setDisplayValue(undefined);
|
|
20
|
+
}
|
|
21
|
+
}, css: {
|
|
22
|
+
display: 'flex',
|
|
23
|
+
flexDirection: 'column',
|
|
24
|
+
width: '100%',
|
|
25
|
+
gap: '3',
|
|
26
|
+
sm: {
|
|
27
|
+
gap: '2'
|
|
28
|
+
}
|
|
29
|
+
}, children: [_jsxs(TabsList, { css: { width: '100%' }, children: [_jsx(TabsTrigger, { value: "Auto", css: { width: '50%' }, children: "Auto" }), _jsx(TabsTrigger, { value: "Custom", css: { width: '50%' }, children: "Custom" })] }), _jsx(TabsContent, { value: "Auto", css: { width: '100%' }, children: _jsx(Text, { style: "body2", color: "subtle", css: { lineHeight: '14px', sm: { fontSize: '12px' } }, children: "We'll set the slippage automatically to minimize the failure rate." }) }), _jsxs(TabsContent, { value: "Custom", css: {
|
|
30
|
+
display: 'flex',
|
|
31
|
+
width: '100%',
|
|
32
|
+
overflow: 'hidden',
|
|
33
|
+
flexDirection: 'column',
|
|
34
|
+
gap: '1'
|
|
35
|
+
}, children: [_jsxs(Flex, { css: {
|
|
36
|
+
display: 'none',
|
|
37
|
+
smDown: {
|
|
38
|
+
display: 'flex',
|
|
39
|
+
width: '100%',
|
|
40
|
+
gap: '2',
|
|
41
|
+
mb: '2'
|
|
42
|
+
}
|
|
43
|
+
}, children: [_jsx(Button, { color: "ghost", size: "small", css: {
|
|
44
|
+
flex: 1,
|
|
45
|
+
minHeight: 32,
|
|
46
|
+
backgroundColor: 'gray3',
|
|
47
|
+
fontWeight: 500,
|
|
48
|
+
fontSize: 14,
|
|
49
|
+
py: 2,
|
|
50
|
+
borderRadius: '6px',
|
|
51
|
+
justifyContent: 'center',
|
|
52
|
+
'&:hover': {
|
|
53
|
+
backgroundColor: 'gray5'
|
|
54
|
+
}
|
|
55
|
+
}, onClick: () => handleInputChange('1'), children: "1%" }), _jsx(Button, { color: "ghost", size: "small", css: {
|
|
56
|
+
flex: 1,
|
|
57
|
+
minHeight: 32,
|
|
58
|
+
backgroundColor: 'gray3',
|
|
59
|
+
fontWeight: 500,
|
|
60
|
+
fontSize: 14,
|
|
61
|
+
py: 2,
|
|
62
|
+
borderRadius: '6px',
|
|
63
|
+
justifyContent: 'center',
|
|
64
|
+
'&:hover': {
|
|
65
|
+
backgroundColor: 'gray5'
|
|
66
|
+
}
|
|
67
|
+
}, onClick: () => handleInputChange('2'), children: "2%" }), _jsx(Button, { color: "ghost", size: "small", css: {
|
|
68
|
+
flex: 1,
|
|
69
|
+
minHeight: 32,
|
|
70
|
+
backgroundColor: 'gray3',
|
|
71
|
+
fontWeight: 500,
|
|
72
|
+
fontSize: 14,
|
|
73
|
+
py: 2,
|
|
74
|
+
borderRadius: '6px',
|
|
75
|
+
justifyContent: 'center',
|
|
76
|
+
'&:hover': {
|
|
77
|
+
backgroundColor: 'gray5'
|
|
78
|
+
}
|
|
79
|
+
}, onClick: () => handleInputChange('5'), children: "5%" })] }), _jsxs(Flex, { css: { display: 'flex', width: '100%', position: 'relative' }, children: [_jsx(Input, { ref: inputRef, value: displayValue || '', onChange: (e) => handleInputChange(e.target.value), onKeyDown: handleKeyDown, onBlur: handleClose, onFocus: (e) => {
|
|
80
|
+
// Move cursor to end of input on focus for better mobile UX
|
|
81
|
+
if (isMobile) {
|
|
82
|
+
const input = e.target;
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
input.setSelectionRange(input.value.length, input.value.length);
|
|
85
|
+
}, 0);
|
|
86
|
+
}
|
|
87
|
+
}, placeholder: "2", containerCss: {
|
|
88
|
+
width: '100%'
|
|
89
|
+
}, css: {
|
|
90
|
+
height: '36px',
|
|
91
|
+
pr: '28px !important',
|
|
92
|
+
border: 'none',
|
|
93
|
+
textAlign: 'right',
|
|
94
|
+
width: '100%',
|
|
95
|
+
smDown: {
|
|
96
|
+
backgroundColor: 'transparent',
|
|
97
|
+
'--borderColor': 'colors.gray.5',
|
|
98
|
+
border: '1px solid var(--borderColor)'
|
|
99
|
+
},
|
|
100
|
+
color: slippageRatingColor
|
|
101
|
+
} }), _jsx(Box, { css: {
|
|
102
|
+
position: 'absolute',
|
|
103
|
+
right: 8,
|
|
104
|
+
top: '50%',
|
|
105
|
+
transform: 'translateY(-50%)',
|
|
106
|
+
color: slippageRatingColor
|
|
107
|
+
}, children: "%" })] }), slippageRating === 'very-high' ? (_jsx(Text, { style: "body3", css: { color: 'red11' }, children: "Very high slippage" })) : null, slippageRating === 'high' ? (_jsx(Text, { style: "body3", css: { color: 'amber11' }, children: "High slippage" })) : null] })] }));
|
|
108
|
+
};
|
|
13
109
|
export const SlippageToleranceConfig = ({ open: _open, setOpen: _setOpen, setSlippageTolerance: externalSetValue, onAnalyticEvent }) => {
|
|
110
|
+
const isMobile = useMediaQuery('(max-width: 520px)');
|
|
14
111
|
const [displayValue, setDisplayValue] = useState(undefined);
|
|
15
112
|
const [debouncedDisplayValue] = useDebounceValue(displayValue, 500);
|
|
16
113
|
const bpsValue = debouncedDisplayValue
|
|
@@ -87,24 +184,46 @@ export const SlippageToleranceConfig = ({ open: _open, setOpen: _setOpen, setSli
|
|
|
87
184
|
value: isAuto ? 'auto' : displayValue
|
|
88
185
|
});
|
|
89
186
|
};
|
|
90
|
-
|
|
187
|
+
const triggerButton = (_jsxs(Button, { "aria-label": "Slippage Tolerance Configuration", color: "ghost", size: "none", css: {
|
|
188
|
+
display: 'flex',
|
|
189
|
+
alignItems: 'center',
|
|
190
|
+
justifyContent: 'center',
|
|
191
|
+
gap: '1',
|
|
192
|
+
bg: 'subtle-background-color',
|
|
193
|
+
color: slippageRatingColor ?? 'gray9',
|
|
194
|
+
p: '2',
|
|
195
|
+
borderRadius: 12,
|
|
196
|
+
border: 'widget-card-border',
|
|
197
|
+
height: '36px',
|
|
198
|
+
px: '10px'
|
|
199
|
+
}, children: [open === false && displayValue && (_jsxs(Text, { style: "subtitle2", css: { color: slippageRatingColor }, children: [displayValue, "%"] })), _jsx(FontAwesomeIcon, { icon: faGear })] }));
|
|
200
|
+
const slippageTabsProps = {
|
|
201
|
+
mode,
|
|
202
|
+
setMode,
|
|
203
|
+
displayValue,
|
|
204
|
+
setDisplayValue,
|
|
205
|
+
handleInputChange,
|
|
206
|
+
handleKeyDown,
|
|
207
|
+
handleClose,
|
|
208
|
+
slippageRating,
|
|
209
|
+
slippageRatingColor,
|
|
210
|
+
inputRef
|
|
211
|
+
};
|
|
212
|
+
return (_jsx("div", { className: "relay-kit-reset", children: isMobile ? (_jsx(Modal, { open: open, onOpenChange: (isOpen) => {
|
|
91
213
|
setOpen(isOpen);
|
|
92
214
|
if (!isOpen) {
|
|
93
215
|
handleClose();
|
|
94
216
|
}
|
|
95
|
-
}, trigger:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
height: '36px',
|
|
106
|
-
px: '10px'
|
|
107
|
-
}, children: [open === false && displayValue && (_jsxs(Text, { style: "subtitle2", css: { color: slippageRatingColor }, children: [displayValue, "%"] })), _jsx(FontAwesomeIcon, { icon: faGear })] }), contentProps: {
|
|
217
|
+
}, trigger: triggerButton, css: {
|
|
218
|
+
width: '100%',
|
|
219
|
+
minHeight: '262px',
|
|
220
|
+
maxHeight: '90vh'
|
|
221
|
+
}, children: _jsxs(Flex, { direction: "column", css: { width: '100%', gap: '4' }, children: [_jsx(Text, { style: "h6", children: "Max Slippage" }), _jsx(Text, { style: "body3", color: "subtle", children: "If the price exceeds the maximum slippage percentage, the transaction will revert." }), _jsx(SlippageTabs, { ...slippageTabsProps })] }) })) : (_jsx(Dropdown, { open: open, onOpenChange: (isOpen) => {
|
|
222
|
+
setOpen(isOpen);
|
|
223
|
+
if (!isOpen) {
|
|
224
|
+
handleClose();
|
|
225
|
+
}
|
|
226
|
+
}, trigger: triggerButton, contentProps: {
|
|
108
227
|
align: 'end',
|
|
109
228
|
sideOffset: 5,
|
|
110
229
|
css: { maxWidth: 188, mx: 0 },
|
|
@@ -112,35 +231,6 @@ export const SlippageToleranceConfig = ({ open: _open, setOpen: _setOpen, setSli
|
|
|
112
231
|
onCloseAutoFocus: (e) => {
|
|
113
232
|
e.preventDefault();
|
|
114
233
|
}
|
|
115
|
-
}, children: _jsxs(Flex, { direction: "column", css: { width: '100%', gap: '2', maxWidth: 188 }, children: [_jsxs(Flex, { direction: "row", css: { gap: '1', alignItems: 'center' }, children: [_jsx(Text, { style: "subtitle3", children: "Max Slippage" }), _jsx(Tooltip, { content: _jsx(Text, { style: "tiny", css: { display: 'inline-block', maxWidth: 190 }, children: "If the price exceeds the maximum slippage percentage, the transaction will revert." }), children: _jsx(Box, { css: { color: 'gray8' }, children: _jsx(FontAwesomeIcon, { icon: faInfoCircle, width: 14, height: 14 }) }) })] }),
|
|
116
|
-
setMode(value);
|
|
117
|
-
if (value === 'Auto') {
|
|
118
|
-
setDisplayValue(undefined);
|
|
119
|
-
}
|
|
120
|
-
}, css: {
|
|
121
|
-
display: 'flex',
|
|
122
|
-
flexDirection: 'column',
|
|
123
|
-
width: '100%',
|
|
124
|
-
gap: '2'
|
|
125
|
-
}, children: [_jsxs(TabsList, { css: { width: '100%' }, children: [_jsx(TabsTrigger, { value: "Auto", css: { width: '50%' }, children: "Auto" }), _jsx(TabsTrigger, { value: "Custom", css: { width: '50%' }, children: "Custom" })] }), _jsx(TabsContent, { value: "Auto", css: { width: '100%' }, children: _jsx(Text, { style: "body3", color: "subtle", css: { lineHeight: '14px' }, children: "We'll set the slippage automatically to minimize the failure rate." }) }), _jsxs(TabsContent, { value: "Custom", css: {
|
|
126
|
-
display: 'flex',
|
|
127
|
-
width: '100%',
|
|
128
|
-
overflow: 'hidden',
|
|
129
|
-
flexDirection: 'column',
|
|
130
|
-
gap: '1'
|
|
131
|
-
}, children: [_jsxs(Flex, { css: { display: 'flex', width: '100%', position: 'relative' }, children: [_jsx(Input, { ref: inputRef, value: displayValue || '', onChange: (e) => handleInputChange(e.target.value), onKeyDown: handleKeyDown, onBlur: handleClose, placeholder: "2", css: {
|
|
132
|
-
height: '36px',
|
|
133
|
-
pr: '28px !important',
|
|
134
|
-
border: 'none',
|
|
135
|
-
textAlign: 'right',
|
|
136
|
-
width: '100%',
|
|
137
|
-
color: slippageRatingColor
|
|
138
|
-
} }), _jsx(Box, { css: {
|
|
139
|
-
position: 'absolute',
|
|
140
|
-
right: 8,
|
|
141
|
-
top: '50%',
|
|
142
|
-
transform: 'translateY(-50%)',
|
|
143
|
-
color: slippageRatingColor
|
|
144
|
-
}, children: "%" })] }), slippageRating === 'very-high' ? (_jsx(Text, { style: "body3", css: { color: 'red11' }, children: "Very high slippage" })) : null, slippageRating === 'high' ? (_jsx(Text, { style: "body3", css: { color: 'amber11' }, children: "High slippage" })) : null] })] })] }) }) }));
|
|
234
|
+
}, children: _jsxs(Flex, { direction: "column", css: { width: '100%', gap: '2', maxWidth: 188 }, children: [_jsxs(Flex, { direction: "row", css: { gap: '1', alignItems: 'center' }, children: [_jsx(Text, { style: "subtitle3", children: "Max Slippage" }), _jsx(Tooltip, { content: _jsx(Text, { style: "tiny", css: { display: 'inline-block', maxWidth: 190 }, children: "If the price exceeds the maximum slippage percentage, the transaction will revert." }), children: _jsx(Box, { css: { color: 'gray8' }, children: _jsx(FontAwesomeIcon, { icon: faInfoCircle, width: 14, height: 14 }) }) })] }), _jsx(SlippageTabs, { ...slippageTabsProps })] }) })) }));
|
|
145
235
|
};
|
|
146
236
|
//# sourceMappingURL=SlippageToleranceConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlippageToleranceConfig.js","sourceRoot":"","sources":["../../../../src/components/common/SlippageToleranceConfig.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,OAAO,MAAM,0BAA0B,CAAA;AAC9C,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,iBAAiB,EACjB,aAAa,EAEd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"SlippageToleranceConfig.js","sourceRoot":"","sources":["../../../../src/components/common/SlippageToleranceConfig.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { Flex, Button, Text, ChainIcon } from '../../primitives/index.js';
|
|
4
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
5
|
+
import { faChevronRight } from '@fortawesome/free-solid-svg-icons';
|
|
6
|
+
import { groupChains } from '../../../utils/tokenSelector.js';
|
|
7
|
+
import { EventNames } from '../../../constants/events.js';
|
|
8
|
+
export const ChainShortcuts = ({ options, value, onSelect, onMoreClick, popularChainIds, starredChainIds, onAnalyticEvent, context }) => {
|
|
9
|
+
const shortcutChains = useMemo(() => {
|
|
10
|
+
const { allChainsOption, starredChains, alphabeticalChains } = groupChains(options, popularChainIds, starredChainIds);
|
|
11
|
+
// Start with All Chains if available
|
|
12
|
+
const shortcuts = [];
|
|
13
|
+
if (allChainsOption) {
|
|
14
|
+
shortcuts.push(allChainsOption);
|
|
15
|
+
}
|
|
16
|
+
// Add starred chains first (up to 4 more slots after All Chains)
|
|
17
|
+
const remainingSlots = 5 - shortcuts.length; // Allow for "All" + 4 chains
|
|
18
|
+
const starredToAdd = starredChains.slice(0, remainingSlots);
|
|
19
|
+
shortcuts.push(...starredToAdd);
|
|
20
|
+
// Fill remaining slots with popular/alphabetical chains
|
|
21
|
+
const currentSlots = shortcuts.length;
|
|
22
|
+
if (currentSlots < 5) {
|
|
23
|
+
const remainingSlots = 5 - currentSlots;
|
|
24
|
+
const existingIds = new Set(shortcuts.map((c) => c.id));
|
|
25
|
+
// Try to add popular chains first
|
|
26
|
+
const popularChains = alphabeticalChains.filter((chain) => chain.id &&
|
|
27
|
+
popularChainIds?.includes(chain.id) &&
|
|
28
|
+
!existingIds.has(chain.id));
|
|
29
|
+
const popularToAdd = popularChains.slice(0, remainingSlots);
|
|
30
|
+
shortcuts.push(...popularToAdd);
|
|
31
|
+
// Fill any remaining slots with alphabetical chains
|
|
32
|
+
const finalSlots = shortcuts.length;
|
|
33
|
+
if (finalSlots < 5) {
|
|
34
|
+
const finalRemaining = 5 - finalSlots;
|
|
35
|
+
const finalExistingIds = new Set(shortcuts.map((c) => c.id));
|
|
36
|
+
const alphabeticalToAdd = alphabeticalChains
|
|
37
|
+
.filter((chain) => chain.id && !finalExistingIds.has(chain.id))
|
|
38
|
+
.slice(0, finalRemaining);
|
|
39
|
+
shortcuts.push(...alphabeticalToAdd);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return shortcuts.slice(0, 5); // Show "All" + up to 4 chains + More button
|
|
43
|
+
}, [options, popularChainIds, starredChainIds]);
|
|
44
|
+
const handleChainSelect = (chain) => {
|
|
45
|
+
onAnalyticEvent?.(EventNames.CURRENCY_STEP_CHAIN_FILTER, {
|
|
46
|
+
chain: chain.name,
|
|
47
|
+
chain_id: chain.id,
|
|
48
|
+
search_term: '',
|
|
49
|
+
context,
|
|
50
|
+
from_starred_list: starredChainIds?.includes(chain.id) ?? false
|
|
51
|
+
});
|
|
52
|
+
onSelect(chain);
|
|
53
|
+
};
|
|
54
|
+
return (_jsxs(Flex, { css: { gap: '2', width: '100%', overflowX: 'auto', py: '2' }, children: [shortcutChains.map((chain) => (_jsx(ChainShortcutButton, { chain: chain, isSelected: value.id === chain.id, onClick: () => handleChainSelect(chain) }, chain.id?.toString() ?? 'all-chains'))), _jsxs(Button, { color: "ghost", size: "none", onClick: onMoreClick, css: {
|
|
55
|
+
display: 'flex',
|
|
56
|
+
alignItems: 'center',
|
|
57
|
+
gap: '1',
|
|
58
|
+
px: '2',
|
|
59
|
+
py: '10px',
|
|
60
|
+
height: '40px',
|
|
61
|
+
borderRadius: '8px',
|
|
62
|
+
backgroundColor: 'dropdown-background',
|
|
63
|
+
color: 'gray9',
|
|
64
|
+
_hover: {
|
|
65
|
+
backgroundColor: 'gray3'
|
|
66
|
+
}
|
|
67
|
+
}, children: [_jsx(Text, { style: "subtitle1", color: "subtle", children: "More" }), _jsx(FontAwesomeIcon, { icon: faChevronRight, width: 16, height: 16 })] })] }));
|
|
68
|
+
};
|
|
69
|
+
const ChainShortcutButton = ({ chain, isSelected, onClick }) => {
|
|
70
|
+
return (_jsx(Button, { color: "ghost", size: "none", onClick: onClick, css: {
|
|
71
|
+
display: 'flex',
|
|
72
|
+
flexDirection: 'column',
|
|
73
|
+
alignItems: 'center',
|
|
74
|
+
gap: '1',
|
|
75
|
+
py: '2',
|
|
76
|
+
px: '3',
|
|
77
|
+
borderRadius: '12px',
|
|
78
|
+
backgroundColor: isSelected ? 'gray6' : 'dropdown-background',
|
|
79
|
+
_hover: {
|
|
80
|
+
backgroundColor: isSelected ? 'gray6' : 'gray3'
|
|
81
|
+
}
|
|
82
|
+
}, children: chain.id ? (_jsx(ChainIcon, { chainId: chain.id, width: 24, height: 24, css: { borderRadius: '4px', overflow: 'hidden' } })) : (_jsx(Text, { style: "subtitle1", css: { height: '24px', width: '20px' }, children: "All" })) }));
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=ChainShortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChainShortcuts.js","sourceRoot":"","sources":["../../../../../src/components/common/TokenSelector/ChainShortcuts.tsx"],"names":[],"mappings":"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"}
|