@0xsquid/ui 3.1.0 → 3.2.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/cjs/index.js +162 -49
- package/dist/cjs/types/components/badges/TransactionState.d.ts +2 -2
- package/dist/cjs/types/components/buttons/CopyButton.d.ts +7 -0
- package/dist/cjs/types/components/buttons/LinkButton.d.ts +5 -0
- package/dist/cjs/types/components/buttons/TokenOnlyButton.d.ts +18 -0
- package/dist/cjs/types/components/buttons/index.d.ts +1 -0
- package/dist/cjs/types/components/icons/Arrow.d.ts +5 -0
- package/dist/cjs/types/components/icons/Timeline.d.ts +1 -1
- package/dist/cjs/types/components/layout/AnimationWrapper.d.ts +1 -1
- package/dist/cjs/types/components/layout/HashLink.d.ts +2 -2
- package/dist/cjs/types/components/layout/PipeSeparator.d.ts +6 -2
- package/dist/cjs/types/components/layout/SwapConfiguration.d.ts +2 -1
- package/dist/cjs/types/components/lists/TransactionAction/FeesAction.d.ts +2 -1
- package/dist/cjs/types/components/lists/TransactionAction/SuccessAction.d.ts +1 -1
- package/dist/cjs/types/components/lists/TransactionAction/TransactionAction.d.ts +1 -1
- package/dist/cjs/types/components/views/SwapProgressView.d.ts +2 -1
- package/dist/cjs/types/components/views/TransactionView/BridgeTransactionView.d.ts +12 -4
- package/dist/cjs/types/components/views/TransactionView/SwapTransactionView.d.ts +4 -2
- package/dist/cjs/types/components/views/TransactionView/TransactionView.d.ts +2 -2
- package/dist/cjs/types/stories/buttons/TokenOnlyButton.stories.d.ts +18 -0
- package/dist/cjs/types/stories/views/SwapProgressView.stories.d.ts +1 -0
- package/dist/cjs/types/stories/views/TransactionView.stories.d.ts +12 -6
- package/dist/cjs/types/types/components.d.ts +1 -1
- package/dist/esm/index.js +161 -50
- package/dist/esm/types/components/badges/TransactionState.d.ts +2 -2
- package/dist/esm/types/components/buttons/CopyButton.d.ts +7 -0
- package/dist/esm/types/components/buttons/LinkButton.d.ts +5 -0
- package/dist/esm/types/components/buttons/TokenOnlyButton.d.ts +18 -0
- package/dist/esm/types/components/buttons/index.d.ts +1 -0
- package/dist/esm/types/components/icons/Arrow.d.ts +5 -0
- package/dist/esm/types/components/icons/Timeline.d.ts +1 -1
- package/dist/esm/types/components/layout/AnimationWrapper.d.ts +1 -1
- package/dist/esm/types/components/layout/HashLink.d.ts +2 -2
- package/dist/esm/types/components/layout/PipeSeparator.d.ts +6 -2
- package/dist/esm/types/components/layout/SwapConfiguration.d.ts +2 -1
- package/dist/esm/types/components/lists/TransactionAction/FeesAction.d.ts +2 -1
- package/dist/esm/types/components/lists/TransactionAction/SuccessAction.d.ts +1 -1
- package/dist/esm/types/components/lists/TransactionAction/TransactionAction.d.ts +1 -1
- package/dist/esm/types/components/views/SwapProgressView.d.ts +2 -1
- package/dist/esm/types/components/views/TransactionView/BridgeTransactionView.d.ts +12 -4
- package/dist/esm/types/components/views/TransactionView/SwapTransactionView.d.ts +4 -2
- package/dist/esm/types/components/views/TransactionView/TransactionView.d.ts +2 -2
- package/dist/esm/types/stories/buttons/TokenOnlyButton.stories.d.ts +18 -0
- package/dist/esm/types/stories/views/SwapProgressView.stories.d.ts +1 -0
- package/dist/esm/types/stories/views/TransactionView.stories.d.ts +12 -6
- package/dist/esm/types/types/components.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +56 -19
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -3738,7 +3738,7 @@ exports.ImageState = void 0;
|
|
|
3738
3738
|
ImageState[ImageState["LOADED"] = 1] = "LOADED";
|
|
3739
3739
|
ImageState[ImageState["ERROR"] = 2] = "ERROR";
|
|
3740
3740
|
})(exports.ImageState || (exports.ImageState = {}));
|
|
3741
|
-
const sizeClassMap$
|
|
3741
|
+
const sizeClassMap$2 = {
|
|
3742
3742
|
small: "tw-w-squid-s",
|
|
3743
3743
|
medium: "tw-w-squid-m",
|
|
3744
3744
|
large: "tw-w-squid-l",
|
|
@@ -3770,7 +3770,7 @@ const borderClassMap = {
|
|
|
3770
3770
|
};
|
|
3771
3771
|
function Image$1(_a) {
|
|
3772
3772
|
var { src, size = "medium", className: propsClassName, placeholderImageUrl, border = "none", rounded = "xxs", shadow = false, children, containerProps } = _a, props = __rest$1(_a, ["src", "size", "className", "placeholderImageUrl", "border", "rounded", "shadow", "children", "containerProps"]);
|
|
3773
|
-
const className = cn("tw-object-cover tw-aspect-square tw-relative tw-duration-300 tw-transition-[width,height] tw-max-w-full tw-bg-grey-500", sizeClassMap$
|
|
3773
|
+
const className = cn("tw-object-cover tw-aspect-square tw-relative tw-duration-300 tw-transition-[width,height] tw-max-w-full tw-bg-grey-500", sizeClassMap$2[size], propsClassName, roundedClassMap[rounded], shadow && boxShadowClassMap[size], borderClassMap[border]);
|
|
3774
3774
|
const [imageState, setImageState] = require$$0.useState(exports.ImageState.LOADED);
|
|
3775
3775
|
return (jsxRuntime.jsxs("div", Object.assign({}, containerProps, { className: cn("tw-relative", containerProps === null || containerProps === void 0 ? void 0 : containerProps.className), children: [children != null ? (jsxRuntime.jsx("div", Object.assign({ className: cn(className, "tw-flex tw-items-center tw-justify-center") }, props, { children: children }))) : ((imageState !== exports.ImageState.LOADED || !src) &&
|
|
3776
3776
|
(placeholderImageUrl ? (jsxRuntime.jsx("img", Object.assign({ src: placeholderImageUrl, className: className }, props))) : (jsxRuntime.jsx("div", Object.assign({ className: className }, props))))), children == null && src && (jsxRuntime.jsx("img", Object.assign({}, props, { src: src, onError: () => {
|
|
@@ -3784,7 +3784,7 @@ function BadgeImage({ image, badge, extraMarginForBadge = false, className, }) {
|
|
|
3784
3784
|
return (((image === null || image === void 0 ? void 0 : image.src) != null || (image === null || image === void 0 ? void 0 : image.placeholderImageUrl) != null) && (jsxRuntime.jsxs("div", { className: cn("tw-relative tw-w-fit", extraMarginForBadge && "tw-mr-1.5", className), children: [jsxRuntime.jsx(Image$1, Object.assign({}, image)), ((badge === null || badge === void 0 ? void 0 : badge.src) != null || (badge === null || badge === void 0 ? void 0 : badge.children) != null) && (jsxRuntime.jsx("div", { className: cn("tw-absolute tw-bottom-0 tw-right-0 tw-h-fit tw-w-fit", image.size !== "xxlarge" && "tw-translate-x-1/3"), children: jsxRuntime.jsx(Image$1, Object.assign({}, badge)) }))] })));
|
|
3785
3785
|
}
|
|
3786
3786
|
|
|
3787
|
-
const themeKeyVariantMap$
|
|
3787
|
+
const themeKeyVariantMap$2 = {
|
|
3788
3788
|
primary: "grey-800",
|
|
3789
3789
|
accent: "royal-500",
|
|
3790
3790
|
};
|
|
@@ -3799,7 +3799,7 @@ const gradientClassMap = {
|
|
|
3799
3799
|
const Drip = ({ direction = "vertical", from, to }) => {
|
|
3800
3800
|
var _a, _b;
|
|
3801
3801
|
const isVertical = direction === "vertical";
|
|
3802
|
-
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap$
|
|
3802
|
+
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap$2.primary].cssVariable})`;
|
|
3803
3803
|
const chainBgColor = (_a = from === null || from === void 0 ? void 0 : from.bgColor) !== null && _a !== void 0 ? _a : defaultBgColor;
|
|
3804
3804
|
const tokenBgColor = (_b = to === null || to === void 0 ? void 0 : to.bgColor) !== null && _b !== void 0 ? _b : "#fff";
|
|
3805
3805
|
const bgGradient = require$$0.useMemo(() => {
|
|
@@ -3890,7 +3890,7 @@ function IconLabel({ src, children, rounded }) {
|
|
|
3890
3890
|
return (jsxRuntime.jsxs("div", { className: "tw-inline-flex tw-items-center tw-gap-squid-xxs", children: [src && jsxRuntime.jsx(Image$1, { src: src, rounded: rounded, size: "medium" }), typeof children === "string" ? (jsxRuntime.jsx(CaptionText, { children: children })) : (children)] }));
|
|
3891
3891
|
}
|
|
3892
3892
|
|
|
3893
|
-
const sizeClassMap = {
|
|
3893
|
+
const sizeClassMap$1 = {
|
|
3894
3894
|
large: "tw-h-squid-xxl tw-w-squid-xxl tw-rounded-squid-s",
|
|
3895
3895
|
small: "tw-h-squid-xl tw-w-squid-xl tw-rounded-squid-xs",
|
|
3896
3896
|
};
|
|
@@ -3907,7 +3907,7 @@ const customImageStylesMap = {
|
|
|
3907
3907
|
},
|
|
3908
3908
|
};
|
|
3909
3909
|
function ImageGroup({ imageUrls, badge, size = "large", }) {
|
|
3910
|
-
return (jsxRuntime.jsxs("div", { className: cn("tw-relative tw-flex tw-flex-shrink-0 tw-flex-wrap tw-content-center tw-items-center tw-justify-center tw-gap-0.5 tw-border tw-border-solid tw-border-material-light-thin tw-bg-grey-700", sizeClassMap[size]), children: [imageUrls.map((url) => (jsxRuntime.jsx(Image$1, { src: url, size: "medium", rounded: "xxs", style: customImageStylesMap[size] }, url))), badge != null && size !== "small" && (jsxRuntime.jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px]", children: jsxRuntime.jsx(Image$1, Object.assign({}, badge, { border: "outline-lg", size: "medium" })) }))] }));
|
|
3910
|
+
return (jsxRuntime.jsxs("div", { className: cn("tw-relative tw-flex tw-flex-shrink-0 tw-flex-wrap tw-content-center tw-items-center tw-justify-center tw-gap-0.5 tw-border tw-border-solid tw-border-material-light-thin tw-bg-grey-700", sizeClassMap$1[size]), children: [imageUrls.map((url) => (jsxRuntime.jsx(Image$1, { src: url, size: "medium", rounded: "xxs", style: customImageStylesMap[size] }, url))), badge != null && size !== "small" && (jsxRuntime.jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px]", children: jsxRuntime.jsx(Image$1, Object.assign({}, badge, { border: "outline-lg", size: "medium" })) }))] }));
|
|
3911
3911
|
}
|
|
3912
3912
|
|
|
3913
3913
|
function Approve() {
|
|
@@ -3965,6 +3965,9 @@ function ArrowOutOfBoxIcon() {
|
|
|
3965
3965
|
function ChevronGrabberVerticalIcon({ size = "16", className, }) {
|
|
3966
3966
|
return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 16 16", fill: "none", className: className, children: jsxRuntime.jsx("path", { d: "M5.33301 6.00002L7.52827 3.80476C7.78862 3.54441 8.21073 3.54441 8.47108 3.80476L10.6663 6.00002M5.33301 10L7.52827 12.1953C7.78862 12.4556 8.21073 12.4556 8.47108 12.1953L10.6663 10", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
3967
3967
|
}
|
|
3968
|
+
function SquareArrowTopRightIcon({ className, size = "24", strokeWidth = "2", }) {
|
|
3969
|
+
return (jsxRuntime.jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, xmlns: "http://www.w3.org/2000/svg", children: jsxRuntime.jsx("path", { d: "M9 6H8.8C7.11984 6 6.27976 6 5.63803 6.32698C5.07354 6.6146 4.6146 7.07354 4.32698 7.63803C4 8.27976 4 9.11984 4 10.8V15.2C4 16.8802 4 17.7202 4.32698 18.362C4.6146 18.9265 5.07354 19.3854 5.63803 19.673C6.27976 20 7.11984 20 8.8 20H13.2C14.8802 20 15.7202 20 16.362 19.673C16.9265 19.3854 17.3854 18.9265 17.673 18.362C18 17.7202 18 16.8802 18 15.2V15M14 4H20M20 4V10M20 4L11 13", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
3970
|
+
}
|
|
3968
3971
|
function SquareArrowTopRight2Icon({ className, size = "16", strokeWidth = "2", }) {
|
|
3969
3972
|
return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 16 16", fill: "none", className: className, children: jsxRuntime.jsx("path", { d: "M6.00033 2.66663H4.80033C4.05359 2.66663 3.68022 2.66663 3.395 2.81195C3.14412 2.93978 2.94015 3.14376 2.81232 3.39464C2.66699 3.67985 2.66699 4.05322 2.66699 4.79996L2.66699 11.2C2.66699 11.9467 2.66699 12.3201 2.81232 12.6053C2.94015 12.8562 3.14412 13.0601 3.395 13.188C3.68022 13.3333 4.05359 13.3333 4.80033 13.3333L11.2003 13.3333C11.9471 13.3333 12.3204 13.3333 12.6056 13.188C12.8565 13.0601 13.0605 12.8562 13.1883 12.6053C13.3337 12.3201 13.3337 11.9467 13.3337 11.2V9.99996M9.33366 2.66663L13.3337 2.66663M13.3337 2.66663V6.66663M13.3337 2.66663L7.33366 8.66663", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }) }));
|
|
3970
3973
|
}
|
|
@@ -4563,6 +4566,8 @@ const statusBgClassMap$1 = {
|
|
|
4563
4566
|
ongoing: "tw-bg-royal-500",
|
|
4564
4567
|
waiting: "tw-bg-grey-500",
|
|
4565
4568
|
warning: "tw-bg-status-partial",
|
|
4569
|
+
refunded: "tw-bg-status-partial",
|
|
4570
|
+
troubleshoot: "tw-bg-status-partial",
|
|
4566
4571
|
};
|
|
4567
4572
|
const statusTextClassMap = {
|
|
4568
4573
|
pending: "tw-text-grey-300",
|
|
@@ -4572,6 +4577,8 @@ const statusTextClassMap = {
|
|
|
4572
4577
|
ongoing: "tw-text-royal-500",
|
|
4573
4578
|
waiting: "tw-text-grey-500",
|
|
4574
4579
|
warning: "tw-text-status-partial",
|
|
4580
|
+
refunded: "tw-text-status-partial",
|
|
4581
|
+
troubleshoot: "tw-text-status-partial",
|
|
4575
4582
|
};
|
|
4576
4583
|
const statusTextMap = {
|
|
4577
4584
|
pending: "Pending",
|
|
@@ -4581,6 +4588,8 @@ const statusTextMap = {
|
|
|
4581
4588
|
ongoing: "Processing",
|
|
4582
4589
|
waiting: "Waiting to start...",
|
|
4583
4590
|
warning: "Incomplete",
|
|
4591
|
+
refunded: "Refunded",
|
|
4592
|
+
troubleshoot: "Troubleshoot",
|
|
4584
4593
|
};
|
|
4585
4594
|
const variantClassMap = {
|
|
4586
4595
|
full: "tw-h-squid-l tw-min-w-squid-xxl tw-pl-squid-xxs tw-pr-squid-xs",
|
|
@@ -4599,6 +4608,8 @@ function renderIcon(status, variant) {
|
|
|
4599
4608
|
case "waiting":
|
|
4600
4609
|
return jsxRuntime.jsx(DotGrid1x3HorizontalIcon, {});
|
|
4601
4610
|
case "warning":
|
|
4611
|
+
case "troubleshoot":
|
|
4612
|
+
case "refunded":
|
|
4602
4613
|
return jsxRuntime.jsx(RefreshIcon, {});
|
|
4603
4614
|
}
|
|
4604
4615
|
}
|
|
@@ -4613,10 +4624,21 @@ function UsdAmount({ usdAmount }) {
|
|
|
4613
4624
|
return (jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-text-grey-500", children: [jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "$" }), jsxRuntime.jsx(CaptionText, { children: usdAmount.toString() })] }));
|
|
4614
4625
|
}
|
|
4615
4626
|
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4627
|
+
const CopyButton = (_a) => {
|
|
4628
|
+
var { copyText, className, size } = _a, props = __rest$1(_a, ["copyText", "className", "size"]);
|
|
4629
|
+
const [copied, setCopied] = require$$0.useState(false);
|
|
4630
|
+
const handleCopy = () => {
|
|
4631
|
+
navigator.clipboard.writeText(copyText).catch(() => { });
|
|
4632
|
+
setCopied(true);
|
|
4633
|
+
setTimeout(() => {
|
|
4634
|
+
setCopied(false);
|
|
4635
|
+
}, 1500);
|
|
4636
|
+
};
|
|
4637
|
+
return (jsxRuntime.jsxs("button", Object.assign({ type: "button", onClick: handleCopy, className: cn("tw-relative tw-cursor-pointer tw-rounded-squid-xs tw-p-0.5 tw-text-royal-500 hover:tw-bg-material-light-thin", className) }, props, { children: [jsxRuntime.jsx(CopyOutlinedIcon, { strokeWidth: "2", size: size === "small" ? "1rem" : "1.5rem", className: cn("tw-text-royal-500", copied ? "tw-invisible" : "tw-visible") }), jsxRuntime.jsx("span", { className: cn("tw-absolute tw-left-1/2 tw-top-1/2 -tw-translate-x-1/2 -tw-translate-y-1/2", copied ? "tw-visible" : "tw-invisible"), children: jsxRuntime.jsx(Checkmark1Icon, { size: size === "small" ? "0.75rem" : "1.35rem" }) })] })));
|
|
4638
|
+
};
|
|
4639
|
+
|
|
4640
|
+
function HashLink({ showTx = false, hash, showCopyButton = false, url, children, className, formattedHash, size, }) {
|
|
4641
|
+
return (jsxRuntime.jsxs("div", { className: cn("tw-flex tw-items-center tw-gap-1", className), children: [showTx && jsxRuntime.jsx("span", { className: "tw-mr-1 tw-text-grey-700", children: "TX" }), children !== null && children !== void 0 ? children : formattedHash, url && (jsxRuntime.jsx("a", { href: url, target: "_blank", className: "tw-ml-0.5 tw-rounded-squid-xs tw-p-0.5 tw-text-royal-500 hover:tw-bg-material-light-thin", rel: "noreferrer", children: jsxRuntime.jsx(SquareArrowTopRightIcon, { size: size === "small" ? "16" : "24" }) })), showCopyButton && jsxRuntime.jsx(CopyButton, { copyText: hash, size: size })] }));
|
|
4620
4642
|
}
|
|
4621
4643
|
|
|
4622
4644
|
function WalletLink({ imageURI, address }) {
|
|
@@ -38233,8 +38255,14 @@ function NavigationBar(_a) {
|
|
|
38233
38255
|
: "tw-flex"), children: jsxRuntime.jsx(HeadingText, { size: "small", children: title }) })) : null] })));
|
|
38234
38256
|
}
|
|
38235
38257
|
|
|
38236
|
-
|
|
38237
|
-
|
|
38258
|
+
const sizeClassMap = {
|
|
38259
|
+
default: "tw-h-[0.8em]",
|
|
38260
|
+
small: "tw-h-2.5",
|
|
38261
|
+
large: "tw-h-5",
|
|
38262
|
+
};
|
|
38263
|
+
function PipeSeparator(_a) {
|
|
38264
|
+
var { className, size = "default" } = _a, props = __rest$1(_a, ["className", "size"]);
|
|
38265
|
+
return (jsxRuntime.jsx("div", Object.assign({}, props, { className: cn("tw-w-[2px] tw-rounded-full tw-bg-[currentColor]", sizeClassMap[size], className) })));
|
|
38238
38266
|
}
|
|
38239
38267
|
|
|
38240
38268
|
function ProductCard({ children }) {
|
|
@@ -38437,12 +38465,55 @@ function QrCodeModal({ qrData, imageUrl, handleClose, handleGoBack, isModalOpen,
|
|
|
38437
38465
|
return (jsxRuntime.jsxs(Modal, { onBackdropClick: handleClose, isOpen: isModalOpen, children: [jsxRuntime.jsxs(ModalContent, { addGap: true, className: "tw-pb-squid-s", children: [jsxRuntime.jsx(NavigationBar, { displayBackButton: !!handleGoBack, onBackButtonClick: handleGoBack, subtitle: title, transparent: true }), jsxRuntime.jsx("div", { className: "tw-flex tw-items-center tw-justify-center tw-gap-squid-xs tw-self-stretch tw-px-squid-m tw-py-squid-xs", children: jsxRuntime.jsx("div", { className: "tw-flex tw-aspect-square tw-size-[22.5rem] tw-items-center tw-justify-center tw-rounded-squid-m tw-border tw-border-material-light-thin tw-bg-grey-900 tw-p-squid-m tw-shadow-elevation-light-1", children: isError ? (jsxRuntime.jsx(SwapErrorIcon, {})) : qrData ? (jsxRuntime.jsx(QrCode, { matrix: qrData, size: 320, imageUrl: imageUrl })) : (jsxRuntime.jsx(Loader, { className: "tw-text-grey-300", size: "32", strokeWidth: "3" })) }) }), jsxRuntime.jsx("footer", { className: "tw-flex tw-flex-col tw-items-center tw-gap-squid-xs tw-self-stretch tw-px-squid-m tw-text-center tw-text-grey-500", children: footerContent })] }), ctaButton != null && (jsxRuntime.jsx(Button$1, Object.assign({}, ctaButton, { size: "lg", variant: "primary" }))), jsxRuntime.jsx(Button$1, { size: "lg", variant: "secondary", label: "Cancel", onClick: handleClose })] }));
|
|
38438
38466
|
}
|
|
38439
38467
|
|
|
38468
|
+
const tokenImageClassName$1 = "tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover";
|
|
38469
|
+
const themeKeyVariantMap$1 = {
|
|
38470
|
+
primary: "grey-800",
|
|
38471
|
+
accent: "royal-500",
|
|
38472
|
+
};
|
|
38473
|
+
const buttonTextClassNameMap$1 = {
|
|
38474
|
+
primary: "tw-text-grey-300",
|
|
38475
|
+
accent: "group-data-[squid-theme-type=dark]:tw-text-grey-100 group-data-[squid-theme-type=light]:tw-text-grey-900",
|
|
38476
|
+
};
|
|
38477
|
+
var ImageLoadingState$1;
|
|
38478
|
+
(function (ImageLoadingState) {
|
|
38479
|
+
ImageLoadingState[ImageLoadingState["LOADING"] = 0] = "LOADING";
|
|
38480
|
+
ImageLoadingState[ImageLoadingState["LOADED"] = 1] = "LOADED";
|
|
38481
|
+
ImageLoadingState[ImageLoadingState["ERROR"] = 2] = "ERROR";
|
|
38482
|
+
})(ImageLoadingState$1 || (ImageLoadingState$1 = {}));
|
|
38483
|
+
function TokenOnlyButton({ token, onClick, variant = "primary", isLoading = false, tooltip, emptyTokenLabel = "Select token", }) {
|
|
38484
|
+
var _a, _b, _c;
|
|
38485
|
+
const [tokenImageLoadingState, setTokenImageLoadingState] = require$$0.useState(ImageLoadingState$1.LOADING);
|
|
38486
|
+
const [fallbackImageLoadingState, setFallbackImageLoadingState] = require$$0.useState(ImageLoadingState$1.LOADING);
|
|
38487
|
+
const isImgLoadError = tokenImageLoadingState === ImageLoadingState$1.ERROR;
|
|
38488
|
+
const isFallbackImgLoadError = fallbackImageLoadingState === ImageLoadingState$1.ERROR;
|
|
38489
|
+
const showTextFallback = (isImgLoadError && !(token === null || token === void 0 ? void 0 : token.fallbackIconUrl)) || isFallbackImgLoadError;
|
|
38490
|
+
const fallbackBgColor = useColorFromSeed((_a = token === null || token === void 0 ? void 0 : token.symbol) !== null && _a !== void 0 ? _a : "");
|
|
38491
|
+
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap$1[variant]].cssVariable})`;
|
|
38492
|
+
const tokenTextColor = isImgLoadError ? "#fff" : token === null || token === void 0 ? void 0 : token.textColor;
|
|
38493
|
+
const tokenBgColor = showTextFallback
|
|
38494
|
+
? fallbackBgColor || defaultBgColor
|
|
38495
|
+
: (token === null || token === void 0 ? void 0 : token.bgColor) || defaultBgColor;
|
|
38496
|
+
const ButtonTag = isLoading ? "div" : "button";
|
|
38497
|
+
return (jsxRuntime.jsx(Tooltip, Object.assign({}, tooltip, { tooltipWidth: "max", containerClassName: "tw-w-fit", tooltipContent: isLoading ? undefined : tooltip === null || tooltip === void 0 ? void 0 : tooltip.tooltipContent, children: jsxRuntime.jsxs(ButtonTag, { onClick: isLoading ? undefined : onClick, disabled: isLoading, "aria-disabled": isLoading, className: cn("tw-group/token-button tw-relative tw-flex tw-h-squid-xl tw-w-fit tw-items-center tw-gap-squid-xxs tw-rounded-full tw-border tw-border-material-light-thin tw-py-squid-xs focus:tw-outline-none", "before:tw-absolute before:-tw-inset-[3px] before:tw-rounded-full before:tw-border-2 before:tw-border-transparent", "after:tw-absolute after:-tw-inset-[5px] after:tw-rounded-full after:tw-border-4 after:tw-border-transparent", "hover:before:tw-border-grey-900 hover:after:tw-border-material-light-average", buttonTextClassNameMap$1[variant], isLoading && "tw-cursor-not-allowed", token ? "tw-pl-squid-xxs tw-pr-squid-xs" : "tw-px-squid-s"), style: {
|
|
38498
|
+
backgroundColor: token ? tokenBgColor : defaultBgColor,
|
|
38499
|
+
color: token ? tokenTextColor : undefined,
|
|
38500
|
+
}, children: [token && !isLoading && (jsxRuntime.jsxs("div", { className: "tw-relative tw-flex tw-h-squid-xl tw-w-squid-xl tw-items-center tw-justify-center", children: [isImgLoadError && token.fallbackIconUrl && (jsxRuntime.jsx("img", { src: token.fallbackIconUrl, alt: token.symbol, onLoad: () => {
|
|
38501
|
+
setFallbackImageLoadingState(ImageLoadingState$1.LOADED);
|
|
38502
|
+
}, onError: () => {
|
|
38503
|
+
setFallbackImageLoadingState(ImageLoadingState$1.ERROR);
|
|
38504
|
+
}, className: cn(tokenImageClassName$1, "tw-absolute", isFallbackImgLoadError && "tw-opacity-0") })), showTextFallback && (jsxRuntime.jsx("div", { style: { color: tokenTextColor }, className: cn(tokenImageClassName$1, "tw-absolute tw-flex tw-items-center tw-justify-center tw-text-body-small"), children: (_c = (_b = token.symbol) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.toUpperCase() })), jsxRuntime.jsx("img", { onLoad: () => {
|
|
38505
|
+
setTokenImageLoadingState(ImageLoadingState$1.LOADED);
|
|
38506
|
+
}, onError: () => {
|
|
38507
|
+
setTokenImageLoadingState(ImageLoadingState$1.ERROR);
|
|
38508
|
+
}, src: token.iconUrl, alt: token.symbol, className: cn(tokenImageClassName$1, "tw-absolute", isImgLoadError && "tw-opacity-0") })] })), jsxRuntime.jsx(BodyText, { size: "small", className: cn("tw-leading-[13px]", isLoading && "tw-min-w-[135px]"), children: token && !isLoading ? token.symbol : !isLoading && emptyTokenLabel }), !isLoading && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: "tw-w-4 tw-min-w-4 tw-opacity-66" }))] }) })));
|
|
38509
|
+
}
|
|
38510
|
+
|
|
38440
38511
|
const AddressHeader = ({ direction, onClick, isDisabled, tooltip, label, walletIconUrl, isLoading, displayLabel = true, highlightLabel = false, showIcon = true, }) => {
|
|
38441
38512
|
const ButtonTag = onClick && !isDisabled ? "button" : "div";
|
|
38442
38513
|
return (jsxRuntime.jsx("header", { className: "tw-flex tw-h-squid-xl2 tw-items-center tw-self-stretch tw-px-squid-m tw-py-squid-xxs", children: jsxRuntime.jsx(Tooltip, Object.assign({}, tooltip, { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs(ButtonTag, { onClick: onClick, disabled: isDisabled, type: onClick ? "button" : undefined, className: cn("tw-flex tw-h-squid-l tw-items-center tw-gap-squid-xxs tw-rounded-squid-s tw-px-squid-xs", onClick && !isDisabled && "hover:tw-bg-material-light-thin", isLoading && "tw-opacity-50"), children: [jsxRuntime.jsx(BodyText, { size: "small", className: "tw-text-grey-500", children: direction === "from" ? "Pay" : "Receive" }), displayLabel && !isLoading && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(BodyText, { size: "small", className: "tw-text-grey-600", children: ":" }), jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: [showIcon &&
|
|
38443
38514
|
(walletIconUrl ? (jsxRuntime.jsx(Image$1, { className: "!tw-h-6 !tw-w-6 !tw-rounded-lg", src: walletIconUrl })) : (jsxRuntime.jsx("div", { className: "tw-flex tw-h-6 tw-w-6 tw-items-center tw-justify-center tw-rounded-lg tw-bg-royal-500 tw-px-0.5 tw-text-grey-900 tw-outline tw-outline-1 tw-outline-material-light-thin", children: jsxRuntime.jsx(WalletIcon, { size: "18" }) }))), jsxRuntime.jsx(BodyText, { size: "small", className: cn(highlightLabel ? "tw-text-royal-500" : "tw-text-grey-300"), children: label }), jsxRuntime.jsx(ChevronArrowIcon, { className: cn(highlightLabel ? "tw-text-royal-500" : "tw-text-grey-600"), size: "16" })] })] }))] }) })) }));
|
|
38444
38515
|
};
|
|
38445
|
-
function SwapConfiguration({ amount, tokenPrice = 0, isFetching: isFetchingProp = false, chain, token, direction = "from", onAmountChange, balance, criticalPriceImpactPercentage, error, priceImpactPercentage, maxUsdDecimals, isInputInteractive = true, isLoading = false, inputModeButton, balanceButton, assetsButton, walletButton, showNumericInputDetails = true, fullHeight = true, debounceInput = true, showWalletButtonHeader = true, }) {
|
|
38516
|
+
function SwapConfiguration({ amount, tokenPrice = 0, isFetching: isFetchingProp = false, chain, token, direction = "from", onAmountChange, balance, criticalPriceImpactPercentage, error, priceImpactPercentage, maxUsdDecimals, isInputInteractive = true, isLoading = false, inputModeButton, balanceButton, assetsButton, walletButton, showNumericInputDetails = true, fullHeight = true, debounceInput = true, showWalletButtonHeader = true, hideChainSelector = false, }) {
|
|
38446
38517
|
var _a, _b, _c, _d, _e;
|
|
38447
38518
|
const isFetching = isFetchingProp || isLoading;
|
|
38448
38519
|
const [forcedAmount, setForcedAmount] = require$$0.useState(amount);
|
|
@@ -38470,7 +38541,7 @@ function SwapConfiguration({ amount, tokenPrice = 0, isFetching: isFetchingProp
|
|
|
38470
38541
|
}
|
|
38471
38542
|
setForcedAmount(prevRef.current.amount);
|
|
38472
38543
|
}, [amount, chain, token]);
|
|
38473
|
-
return (jsxRuntime.jsxs("section", { className: cn("tw-relative tw-flex tw-w-full tw-flex-col tw-border-t tw-border-t-material-light-thin tw-bg-grey-900 mobile-lg:tw-w-card-large", fullHeight && "tw-h-full tw-pb-squid-m"), children: [jsxRuntime.jsx(AddressHeader, { direction: direction, onClick: walletButton === null || walletButton === void 0 ? void 0 : walletButton.onClick, isDisabled: walletButton === null || walletButton === void 0 ? void 0 : walletButton.disabled, tooltip: walletButton === null || walletButton === void 0 ? void 0 : walletButton.tooltip, label: (_b = (_a = walletButton === null || walletButton === void 0 ? void 0 : walletButton.address) !== null && _a !== void 0 ? _a : walletButton === null || walletButton === void 0 ? void 0 : walletButton.emptyAddressLabel) !== null && _b !== void 0 ? _b : (direction === "from" ? "Connect wallet" : "Select recipient"), walletIconUrl: walletButton === null || walletButton === void 0 ? void 0 : walletButton.walletIconUrl, isLoading: isLoading, displayLabel: showWalletButtonHeader, highlightLabel: !(walletButton === null || walletButton === void 0 ? void 0 : walletButton.address), showIcon: (_c = walletButton === null || walletButton === void 0 ? void 0 : walletButton.showIcon) !== null && _c !== void 0 ? _c : true }), jsxRuntime.jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: jsxRuntime.jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading })) }), jsxRuntime.jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
|
|
38544
|
+
return (jsxRuntime.jsxs("section", { className: cn("tw-relative tw-flex tw-w-full tw-flex-col tw-border-t tw-border-t-material-light-thin tw-bg-grey-900 mobile-lg:tw-w-card-large", fullHeight && "tw-h-full tw-pb-squid-m"), children: [jsxRuntime.jsx(AddressHeader, { direction: direction, onClick: walletButton === null || walletButton === void 0 ? void 0 : walletButton.onClick, isDisabled: walletButton === null || walletButton === void 0 ? void 0 : walletButton.disabled, tooltip: walletButton === null || walletButton === void 0 ? void 0 : walletButton.tooltip, label: (_b = (_a = walletButton === null || walletButton === void 0 ? void 0 : walletButton.address) !== null && _a !== void 0 ? _a : walletButton === null || walletButton === void 0 ? void 0 : walletButton.emptyAddressLabel) !== null && _b !== void 0 ? _b : (direction === "from" ? "Connect wallet" : "Select recipient"), walletIconUrl: walletButton === null || walletButton === void 0 ? void 0 : walletButton.walletIconUrl, isLoading: isLoading, displayLabel: showWalletButtonHeader, highlightLabel: !(walletButton === null || walletButton === void 0 ? void 0 : walletButton.address), showIcon: (_c = walletButton === null || walletButton === void 0 ? void 0 : walletButton.showIcon) !== null && _c !== void 0 ? _c : true }), jsxRuntime.jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: hideChainSelector ? (jsxRuntime.jsx(TokenOnlyButton, Object.assign({}, assetsButton, { token: token, isLoading: isLoading }))) : (jsxRuntime.jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading }))) }), jsxRuntime.jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
|
|
38474
38545
|
decimals: (_d = token === null || token === void 0 ? void 0 : token.decimals) !== null && _d !== void 0 ? _d : 18,
|
|
38475
38546
|
symbol: (_e = token === null || token === void 0 ? void 0 : token.symbol) !== null && _e !== void 0 ? _e : "",
|
|
38476
38547
|
price: tokenPrice,
|
|
@@ -39007,7 +39078,7 @@ function PropertyListItem(_a) {
|
|
|
39007
39078
|
const Text = variant === "small" ? CaptionText : SmallBodyText;
|
|
39008
39079
|
const isCollapsible = !!collapsibleContent;
|
|
39009
39080
|
const ContentWrapperTag = isCollapsible ? "button" : "div";
|
|
39010
|
-
return (jsxRuntime.jsx("li", Object.assign({}, props, { className: cn("tw-flex tw-w-full tw-gap-squid-xs tw-rounded-squid-xs tw-text-grey-300", showGradientBg && "tw-
|
|
39081
|
+
return (jsxRuntime.jsx("li", Object.assign({}, props, { className: cn("tw-flex tw-w-full tw-gap-squid-xs tw-rounded-squid-xs tw-text-grey-300", showGradientBg && "tw-squid-property-row-bg", addExtraPadding && containerPaddingClassNameMap[variant], className), children: jsxRuntime.jsxs(ContentWrapperTag, { onClick: isCollapsible ? handleToggleCollapsed : undefined, className: "tw-w-full tw-rounded-squid-xs", children: [jsxRuntime.jsxs("div", { className: cn("tw-flex tw-h-squid-l tw-w-full tw-items-center tw-justify-between tw-gap-squid-xs", childrenVariantClassNameMap[variant]), children: [jsxRuntime.jsx("div", { className: cn("tw-w-6 tw-text-grey-500", iconClassName), children: icon }), jsxRuntime.jsxs(Text, { className: cn("tw-flex tw-min-w-fit tw-flex-1 tw-gap-squid-xxs tw-text-grey-500", labelClassName), children: [jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, showGradient: false, children: label }), !!tooltip && (jsxRuntime.jsx(Tooltip, Object.assign({}, tooltip, { children: jsxRuntime.jsx(HelpIcon, { className: "tw-cursor-help tw-text-grey-600 hover:tw-text-grey-500" }) })))] }), jsxRuntime.jsx(Text, { truncate: variant === "small" || undefined, className: cn("tw-flex tw-text-grey-300", detailClassName), children: jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, showGradient: false, children: detail }) }), isCollapsible && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: cn("tw-text-grey-600 tw-duration-generic", !isCollapsed && "tw-rotate-90"), size: "16" }))] }), isCollapsible && (jsxRuntime.jsx(Collapse, { collapsed: isCollapsed, children: collapsibleContent }))] }) })));
|
|
39011
39082
|
}
|
|
39012
39083
|
|
|
39013
39084
|
function RouteStep({ imageUrl, descriptionBlocks, subtitle, showStepSeparator = false, }) {
|
|
@@ -39192,10 +39263,10 @@ function TokenGroups({ groups, className, onGroupChildClick, variant = "large",
|
|
|
39192
39263
|
}
|
|
39193
39264
|
|
|
39194
39265
|
function ActionLayout({ lineCap = jsxRuntime.jsx(Timeline.CapTop, {}), status = "executed", showTimeline = true, showBody = true, nextStatus, statusIcon, description, title, icon, children, }) {
|
|
39195
|
-
return (jsxRuntime.jsxs(ActionWrapper, { status: status, children: [jsxRuntime.jsx(ActionLineOutRow, { status: nextStatus }), jsxRuntime.jsx(ActionStatusRow, { status: status, icon: statusIcon, children: description }), title && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ActionRow, { children: jsxRuntime.jsxs(Timeline, { className: cn("tw-h-squid-xs", statusTextClassMap[status]), children: [jsxRuntime.jsx(Timeline.CapTop, {}), jsxRuntime.jsx(Timeline.Straight, {}), jsxRuntime.jsx(Timeline.CapBottom, {})] }) }), jsxRuntime.jsxs(ActionRow, { children: [jsxRuntime.jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: icon }), jsxRuntime.jsx(BodyText, { size: "large", className: cn("tw-flex tw-min-h-squid-l tw-items-center !tw-leading-[1] tw-text-grey-300 tw-transition-opacity tw-duration-200", !showBody && "tw-opacity-0"), children: title })] })] })), jsxRuntime.jsxs(ActionRow, { children: [jsxRuntime.jsxs(Timeline, { className: showTimeline ? statusTextClassMap[status] : "!tw-text-[transparent]", children: [lineCap, jsxRuntime.jsx(Timeline.Straight, {})] }), jsxRuntime.jsx("div", { className: cn("tw-flex tw-flex-col tw-gap-squid-xs tw-pb-squid-xs tw-text-grey-500 tw-transition-
|
|
39266
|
+
return (jsxRuntime.jsxs(ActionWrapper, { status: status, children: [jsxRuntime.jsx(ActionLineOutRow, { status: nextStatus }), jsxRuntime.jsx(ActionStatusRow, { status: status, icon: statusIcon, children: jsxRuntime.jsx(BodyText, { size: "small", tight: true, className: "tw-block tw-w-full tw-font-medium tw-text-grey-300", children: description }) }), title && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ActionRow, { children: jsxRuntime.jsxs(Timeline, { className: cn("tw-h-squid-xs", statusTextClassMap[status]), children: [jsxRuntime.jsx(Timeline.CapTop, {}), jsxRuntime.jsx(Timeline.Straight, {}), jsxRuntime.jsx(Timeline.CapBottom, {})] }) }), jsxRuntime.jsxs(ActionRow, { children: [jsxRuntime.jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: icon }), jsxRuntime.jsx(BodyText, { size: "large", className: cn("tw-flex tw-min-h-squid-l tw-items-center !tw-leading-[1] tw-text-grey-300 tw-transition-opacity tw-duration-200", !showBody && "tw-opacity-0"), children: title })] })] })), jsxRuntime.jsxs(ActionRow, { children: [jsxRuntime.jsxs(Timeline, { className: showTimeline ? statusTextClassMap[status] : "!tw-text-[transparent]", children: [lineCap, jsxRuntime.jsx(Timeline.Straight, {})] }), jsxRuntime.jsx("div", { className: cn("tw-flex tw-flex-col tw-gap-squid-xs tw-overflow-hidden tw-pb-squid-xs tw-text-grey-500 tw-transition-all tw-duration-200", !showBody ? "tw-max-h-0 !tw-pt-0 tw-opacity-0" : "tw-max-h-20", title && "tw-pt-squid-xxs"), children: children })] })] }));
|
|
39196
39267
|
}
|
|
39197
39268
|
function ActionProperties({ timestamp, hash, url, }) {
|
|
39198
|
-
return (jsxRuntime.jsxs(CaptionText, { className: "tw-flex tw-items-center tw-gap-squid-xs", children: [timestamp && jsxRuntime.jsx(Timestamp, { time: timestamp }), timestamp && hash && jsxRuntime.jsx(PipeSeparator, { className: "tw-text-grey-700" }), hash && jsxRuntime.jsx(HashLink, { hash: hash, url: url, showTx: true })] }));
|
|
39269
|
+
return (jsxRuntime.jsxs(CaptionText, { className: "tw-flex tw-items-center tw-gap-squid-xs", children: [timestamp && jsxRuntime.jsx(Timestamp, { time: timestamp }), timestamp && hash && (jsxRuntime.jsx(PipeSeparator, { size: "small", className: "tw-text-grey-700" })), hash && (jsxRuntime.jsx(HashLink, { size: "small", hash: hash, url: url, formattedHash: formatHash(hash), showTx: true, showCopyButton: true }))] }));
|
|
39199
39270
|
}
|
|
39200
39271
|
function renderStatusIcon(status, defaultIcon) {
|
|
39201
39272
|
switch (status) {
|
|
@@ -39214,7 +39285,7 @@ function renderStatusIcon(status, defaultIcon) {
|
|
|
39214
39285
|
}
|
|
39215
39286
|
}
|
|
39216
39287
|
const ActionLineOutRow = ({ status }) => (jsxRuntime.jsx(ActionRow, { children: jsxRuntime.jsxs(Timeline, { className: cn("tw-h-squid-xs", status ? statusTextClassMap[status] : "!tw-text-[transparent]"), children: [jsxRuntime.jsx(Timeline.Straight, {}), jsxRuntime.jsx(Timeline.CapBottom, {})] }) }));
|
|
39217
|
-
const ActionStatusRow = ({ children, status, icon, }) => (jsxRuntime.jsxs(ActionRow, { children: [jsxRuntime.jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: renderStatusIcon(status, icon) }), jsxRuntime.jsx("div", { className: "tw-flex tw-items-center", children: jsxRuntime.jsx(
|
|
39288
|
+
const ActionStatusRow = ({ children, status, icon, }) => (jsxRuntime.jsxs(ActionRow, { children: [jsxRuntime.jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: renderStatusIcon(status, icon) }), jsxRuntime.jsx("div", { className: "tw-flex tw-items-center", children: jsxRuntime.jsx("span", { className: "tw-block tw-w-full tw-text-grey-300", children: children }) })] }));
|
|
39218
39289
|
function ActionRow(_a) {
|
|
39219
39290
|
var { className } = _a, props = __rest$1(_a, ["className"]);
|
|
39220
39291
|
return (jsxRuntime.jsx("div", Object.assign({}, props, { className: cn("tw-grid tw-grid-cols-[40px,1fr,60px] tw-gap-squid-xs tw-pl-squid-m", className) })));
|
|
@@ -39238,15 +39309,13 @@ function FeesAction({ status, nextStatus, showTimeline = false, total, lines, })
|
|
|
39238
39309
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(FeesTotal, { status: status, nextStatus: nextStatus, total: total, showTimeline: lines !== undefined || showTimeline }), lines && (jsxRuntime.jsx(FeesLines, { status: status, lines: lines, showTimeline: showTimeline }))] }));
|
|
39239
39310
|
}
|
|
39240
39311
|
function FeesTotal({ status, nextStatus, total, showTimeline, collapsed, }) {
|
|
39241
|
-
return (jsxRuntime.jsxs(ActionWrapper, { status: status, children: [jsxRuntime.jsx(ActionLineOutRow, { status: nextStatus }), jsxRuntime.jsx(ActionStatusRow, { status: status, icon: jsxRuntime.jsx(TagIconFilled, {}), children: jsxRuntime.jsx(FeesRow, Object.assign({ collapsed: collapsed }, total)) }), jsxRuntime.jsx(ActionRow, { children: jsxRuntime.jsxs(Timeline, { className: cn("tw-h-squid-xs", showTimeline ? statusTextClassMap[status] : "tw-text-transparent"), children: [jsxRuntime.jsx(Timeline.CapTop, {}), jsxRuntime.jsx(Timeline.Straight, {})] }) })] }));
|
|
39312
|
+
return (jsxRuntime.jsxs(ActionWrapper, { status: status, children: [jsxRuntime.jsx(ActionLineOutRow, { status: nextStatus }), jsxRuntime.jsx(ActionStatusRow, { status: status, icon: jsxRuntime.jsx(TagIconFilled, {}), children: jsxRuntime.jsx(FeesRow, Object.assign({ className: "tw-text-grey-300", collapsed: collapsed }, total)) }), jsxRuntime.jsx(ActionRow, { children: jsxRuntime.jsxs(Timeline, { className: cn("tw-h-squid-xs", showTimeline ? statusTextClassMap[status] : "tw-text-transparent"), children: [jsxRuntime.jsx(Timeline.CapTop, {}), jsxRuntime.jsx(Timeline.Straight, {})] }) })] }));
|
|
39242
39313
|
}
|
|
39243
|
-
function FeesLines({ status, lines
|
|
39244
|
-
return (jsxRuntime.
|
|
39245
|
-
? statusTextClassMap[status]
|
|
39246
|
-
: "!tw-text-[transparent]"), children: [jsxRuntime.jsx(Timeline.CapTop, {}), jsxRuntime.jsx(Timeline.Straight, {})] }) })] }));
|
|
39314
|
+
function FeesLines({ status, lines }) {
|
|
39315
|
+
return (jsxRuntime.jsx(ActionWrapper, { status: status, children: lines && (jsxRuntime.jsx("div", { children: lines.map((line, index) => (jsxRuntime.jsxs(ActionRow, { children: [jsxRuntime.jsx("div", { className: "tw-flex tw-h-10", children: jsxRuntime.jsxs(Timeline, { className: statusTextClassMap[status], children: [jsxRuntime.jsx(Timeline.Straight, {}), jsxRuntime.jsx(Timeline.ArrowRight, {}), jsxRuntime.jsx(Timeline.Straight, { className: index < lines.length - 1 ? "visible" : "tw-invisible" })] }) }), jsxRuntime.jsx("div", { className: "tw-flex tw-items-center", children: jsxRuntime.jsx(FeesRow, Object.assign({ className: "tw-text-grey-400" }, line)) })] }, index))) })) }));
|
|
39247
39316
|
}
|
|
39248
|
-
function FeesRow({ label, usd, amount, symbol, collapsed = false, }) {
|
|
39249
|
-
return (jsxRuntime.jsxs("div", { className: "tw-flex tw-w-full tw-gap-squid-xs", children: [jsxRuntime.jsx(SizeTransition, { disableInitialAnimation: true, children: jsxRuntime.jsx(BodyText, { size: "small", tight: true, className: cn("tw-block tw-truncate
|
|
39317
|
+
function FeesRow({ label, usd, amount, symbol, collapsed = false, className, }) {
|
|
39318
|
+
return (jsxRuntime.jsxs("div", { className: cn("tw-flex tw-h-5 tw-w-full tw-items-center tw-gap-squid-xs", className), children: [jsxRuntime.jsx(SizeTransition, { disableInitialAnimation: true, children: jsxRuntime.jsx(BodyText, { size: "small", tight: true, className: cn("tw-block tw-truncate", !collapsed && "tw-w-[100px]"), children: label }) }), jsxRuntime.jsx("div", { className: "tw-flex tw-items-center", children: jsxRuntime.jsx(PipeSeparator, { size: "large", className: "tw-text-grey-700" }) }), jsxRuntime.jsxs(BodyText, { size: "small", tight: true, className: "tw-flex-grow tw-text-grey-300", children: ["$", usd] }), jsxRuntime.jsxs(CaptionText, { className: "tw-text-right tw-text-grey-500", children: [amount, " ", symbol] })] }));
|
|
39250
39319
|
}
|
|
39251
39320
|
|
|
39252
39321
|
function IncompleteAction({ status, nextStatus, message, buttons, }) {
|
|
@@ -39298,7 +39367,7 @@ function StartAction({ status, nextStatus, showTimeline = false, showBody = fals
|
|
|
39298
39367
|
function SuccessAction({ nextStatus, status, description = status === "error"
|
|
39299
39368
|
? "Transaction failed"
|
|
39300
39369
|
: "Transaction successful", showTimeline, showBody, timestamp, hash, url, }) {
|
|
39301
|
-
return (jsxRuntime.jsx(ActionLayout, { description: description, status: status, nextStatus: nextStatus, showTimeline: showTimeline, showBody: showBody, children: (timestamp
|
|
39370
|
+
return (jsxRuntime.jsx(ActionLayout, { description: description, status: status, nextStatus: nextStatus, showTimeline: showTimeline, showBody: showBody, children: (timestamp !== null && timestamp !== void 0 ? timestamp : hash) && (jsxRuntime.jsx(ActionProperties, { timestamp: timestamp, hash: hash, url: url })) }));
|
|
39302
39371
|
}
|
|
39303
39372
|
|
|
39304
39373
|
function SwapAction({ status, nextStatus, showTimeline, showBody, fromToken, toToken, provider, timestamp, hash, url, }) {
|
|
@@ -87250,27 +87319,39 @@ const swapProgressAnimations = {
|
|
|
87250
87319
|
[SwapState.CONFIRMATION_REJECTED]: transactionRejectedAnimation,
|
|
87251
87320
|
[SwapState.NEEDS_GAS]: transactionErrorPauseAnimation,
|
|
87252
87321
|
};
|
|
87253
|
-
const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction, }) => {
|
|
87322
|
+
const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction, isBridgeTransaction, }) => {
|
|
87254
87323
|
switch (swapState) {
|
|
87255
87324
|
case SwapState.CONFIRM:
|
|
87256
87325
|
if (isSendTransaction) {
|
|
87257
87326
|
return "Confirm transaction";
|
|
87258
87327
|
}
|
|
87328
|
+
if (isBridgeTransaction) {
|
|
87329
|
+
return "Confirm bridge";
|
|
87330
|
+
}
|
|
87259
87331
|
return "Confirm swap";
|
|
87260
87332
|
case SwapState.PROGRESS:
|
|
87261
87333
|
if (isSendTransaction) {
|
|
87262
87334
|
return `Send ${fromToken.symbol}`;
|
|
87263
87335
|
}
|
|
87336
|
+
if (isBridgeTransaction) {
|
|
87337
|
+
return `Bridge ${fromToken.symbol}`;
|
|
87338
|
+
}
|
|
87264
87339
|
return `Swap ${fromToken.symbol} to ${toToken.symbol}`;
|
|
87265
87340
|
case SwapState.COMPLETED:
|
|
87266
87341
|
if (isSendTransaction) {
|
|
87267
87342
|
return "Tokens received";
|
|
87268
87343
|
}
|
|
87344
|
+
if (isBridgeTransaction) {
|
|
87345
|
+
return "Bridge complete";
|
|
87346
|
+
}
|
|
87269
87347
|
return "Swap complete";
|
|
87270
87348
|
case SwapState.ERROR:
|
|
87271
87349
|
if (isSendTransaction) {
|
|
87272
87350
|
return "Transaction failed";
|
|
87273
87351
|
}
|
|
87352
|
+
if (isBridgeTransaction) {
|
|
87353
|
+
return "Bridge failed";
|
|
87354
|
+
}
|
|
87274
87355
|
return "Swap failed";
|
|
87275
87356
|
case SwapState.CONFIRMATION_TOO_LONG:
|
|
87276
87357
|
return "Confirmation taking too long";
|
|
@@ -87278,14 +87359,23 @@ const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction
|
|
|
87278
87359
|
if (isSendTransaction) {
|
|
87279
87360
|
return "Transaction rejected";
|
|
87280
87361
|
}
|
|
87362
|
+
if (isBridgeTransaction) {
|
|
87363
|
+
return "Bridge rejected";
|
|
87364
|
+
}
|
|
87281
87365
|
return "Swap rejected";
|
|
87282
87366
|
case SwapState.PARTIAL_SUCCESS:
|
|
87367
|
+
if (isSendTransaction) {
|
|
87368
|
+
return "Transaction failed to complete";
|
|
87369
|
+
}
|
|
87370
|
+
if (isBridgeTransaction) {
|
|
87371
|
+
return "Bridge failed to complete";
|
|
87372
|
+
}
|
|
87283
87373
|
return "Swap failed to complete";
|
|
87284
87374
|
case SwapState.NEEDS_GAS:
|
|
87285
87375
|
return "Needs gas on destination";
|
|
87286
87376
|
}
|
|
87287
87377
|
};
|
|
87288
|
-
const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, toAddressFormatted, refundTokenSymbol, isSendTransaction, }) => {
|
|
87378
|
+
const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, toAddressFormatted, refundTokenSymbol, isSendTransaction, isBridgeTransaction, }) => {
|
|
87289
87379
|
switch (swapState) {
|
|
87290
87380
|
case SwapState.CONFIRM: {
|
|
87291
87381
|
return "Authenticate the transaction in your wallet.";
|
|
@@ -87294,6 +87384,9 @@ const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, to
|
|
|
87294
87384
|
if (isSendTransaction) {
|
|
87295
87385
|
return "Feel free to dismiss this dialog, we’ll notify you when the recipient receives your tokens.";
|
|
87296
87386
|
}
|
|
87387
|
+
if (isBridgeTransaction) {
|
|
87388
|
+
return "Feel free to dismiss this dialog, we’ll notify you when the bridge is complete.";
|
|
87389
|
+
}
|
|
87297
87390
|
return "Feel free to dismiss this dialog, we’ll notify you when the swap is complete.";
|
|
87298
87391
|
}
|
|
87299
87392
|
case SwapState.COMPLETED: {
|
|
@@ -87329,7 +87422,7 @@ const swapProgressButtonTexts = {
|
|
|
87329
87422
|
[SwapState.PARTIAL_SUCCESS]: "Cancel",
|
|
87330
87423
|
[SwapState.NEEDS_GAS]: "Go to Axelarscan",
|
|
87331
87424
|
};
|
|
87332
|
-
function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, supportLink, fromAmount, fromChain, fromToken, toAmount, toChain, toToken, fromAddressFormatted, toAddressFormatted, swapState, estimatedTimeToComplete, footerButton, refundTokenSymbol, addGasLink, shareSwapDropdownContent, isSendTransaction = false, }) {
|
|
87425
|
+
function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, supportLink, fromAmount, fromChain, fromToken, toAmount, toChain, toToken, fromAddressFormatted, toAddressFormatted, swapState, estimatedTimeToComplete, footerButton, refundTokenSymbol, addGasLink, shareSwapDropdownContent, isSendTransaction = false, isBridgeTransaction = false, }) {
|
|
87333
87426
|
const [showSwapInfoSection, setShowSwapInfoSection] = require$$0.useState(true);
|
|
87334
87427
|
const isFirstRenderRef = require$$0.useRef(true);
|
|
87335
87428
|
const { timer, stopTimer, startTimer } = useTimer({
|
|
@@ -87353,6 +87446,7 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
|
|
|
87353
87446
|
fromToken,
|
|
87354
87447
|
toToken,
|
|
87355
87448
|
isSendTransaction,
|
|
87449
|
+
isBridgeTransaction,
|
|
87356
87450
|
});
|
|
87357
87451
|
const headerDescription = getSwapProgressDescriptions({
|
|
87358
87452
|
swapState,
|
|
@@ -87362,12 +87456,13 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
|
|
|
87362
87456
|
toAddressFormatted,
|
|
87363
87457
|
refundTokenSymbol,
|
|
87364
87458
|
isSendTransaction,
|
|
87459
|
+
isBridgeTransaction,
|
|
87365
87460
|
});
|
|
87366
87461
|
return {
|
|
87367
87462
|
headerTitle,
|
|
87368
87463
|
headerDescription,
|
|
87369
87464
|
};
|
|
87370
|
-
}, [swapState, fromToken, toToken, toAmount, toChain]);
|
|
87465
|
+
}, [swapState, fromToken, toToken, toAmount, toChain, isBridgeTransaction]);
|
|
87371
87466
|
const trackTransactionViewRef = require$$0.useRef(null);
|
|
87372
87467
|
const handleCollapseRouteSteps = () => { var _a; return (_a = trackTransactionViewRef.current) === null || _a === void 0 ? void 0 : _a.handleToggleRouteSteps(); };
|
|
87373
87468
|
return (jsxRuntime.jsxs(Modal, { isOpen: isOpen, onBackdropClick:
|
|
@@ -87387,13 +87482,18 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
|
|
|
87387
87482
|
height: "100%",
|
|
87388
87483
|
maxHeight: "100%",
|
|
87389
87484
|
width: "auto",
|
|
87390
|
-
}, autoplay: true, loop: true, src: swapProgressAnimations[swapState] }) }), jsxRuntime.jsx("div", { className: "tw-relative tw-flex tw-h-squid-m tw-w-full tw-items-end tw-justify-between tw-self-stretch tw-px-squid-m", children: swapState === SwapState.COMPLETED ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { className: "-tw-mb-1 -tw-ml-1", children: jsxRuntime.jsx(SwapSuccessIcon, {}) }), shareSwapDropdownContent ? (jsxRuntime.jsx(ShareSwapButton, { dropdownContent: shareSwapDropdownContent })) : null] })) : swapState === SwapState.ERROR ? (jsxRuntime.jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "error" })) : swapState === SwapState.PARTIAL_SUCCESS ? (jsxRuntime.jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "warning" })) : isSendTransaction ? (jsxRuntime.jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", size: "xlarge", shadow: true })) : (jsxRuntime.jsx(TokenPair, { firstToken: {
|
|
87485
|
+
}, autoplay: true, loop: true, src: swapProgressAnimations[swapState] }) }), jsxRuntime.jsx("div", { className: "tw-relative tw-flex tw-h-squid-m tw-w-full tw-items-end tw-justify-between tw-self-stretch tw-px-squid-m", children: swapState === SwapState.COMPLETED ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { className: "-tw-mb-1 -tw-ml-1", children: jsxRuntime.jsx(SwapSuccessIcon, {}) }), shareSwapDropdownContent ? (jsxRuntime.jsx(ShareSwapButton, { dropdownContent: shareSwapDropdownContent })) : null] })) : swapState === SwapState.ERROR ? (jsxRuntime.jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "error" })) : swapState === SwapState.PARTIAL_SUCCESS ? (jsxRuntime.jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "warning" })) : isSendTransaction || isBridgeTransaction ? (jsxRuntime.jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", size: "xlarge", shadow: true })) : (jsxRuntime.jsx(TokenPair, { firstToken: {
|
|
87391
87486
|
bgColor: fromToken.bgColor,
|
|
87392
87487
|
logoURI: fromToken.logoUrl,
|
|
87393
87488
|
}, secondToken: {
|
|
87394
87489
|
bgColor: toToken.bgColor,
|
|
87395
87490
|
logoURI: toToken.logoUrl,
|
|
87396
|
-
} })) }), jsxRuntime.jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxRuntime.jsxs("ul", { className: "tw-
|
|
87491
|
+
} })) }), jsxRuntime.jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxRuntime.jsxs("ul", { className: "tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-center tw-gap-squid-xxs tw-rounded-squid-l tw-pb-squid-s tw-pt-squid-xs tw-squid-property-gradient-bg-odd-container mobile-xs-height:tw-h-[195px] mobile-sm-height:tw-py-squid-s", children: [jsxRuntime.jsx(PropertyListItem, { icon: isSendTransaction ? (jsxRuntime.jsx(ArrowRightUpCircleIcon, {})) : (jsxRuntime.jsx(ArrowsSwapIcon, {})), label: isSendTransaction
|
|
87492
|
+
? "Send"
|
|
87493
|
+
: isBridgeTransaction
|
|
87494
|
+
? "Bridge"
|
|
87495
|
+
: "Swap", detail: isSendTransaction ? (jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount })) : (jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsxRuntime.jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) })) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: isSendTransaction ||
|
|
87496
|
+
fromChain.networkName === toChain.networkName ? (jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] })) : (jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: toChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: toChain.networkName })] }) })) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Wallet", detail: jsxRuntime.jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsxRuntime.jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsxRuntime.jsx(CaptionText, { children: timer })) : (jsxRuntime.jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsxRuntime.jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
|
|
87397
87497
|
stopTimer();
|
|
87398
87498
|
}, onTxStart: () => {
|
|
87399
87499
|
startTimer();
|
|
@@ -87495,20 +87595,27 @@ function TransactionViewLayout(_a) {
|
|
|
87495
87595
|
var { isLoading, header, properties, actions, fees } = _a, props = __rest$1(_a, ["isLoading", "header", "properties", "actions", "fees"]);
|
|
87496
87596
|
const [actionsCollapsed, setActionsCollapsed] = require$$0.useState(true);
|
|
87497
87597
|
const [feesCollapsed, setFeesCollapsed] = require$$0.useState(true);
|
|
87498
|
-
|
|
87598
|
+
const items = require$$0.useMemo(() => {
|
|
87599
|
+
if (actions)
|
|
87600
|
+
return linkActionTimelineProps(actions, actionsCollapsed);
|
|
87601
|
+
return [];
|
|
87602
|
+
}, [actions, actionsCollapsed]);
|
|
87603
|
+
return (jsxRuntime.jsx("div", Object.assign({ className: "tw-relative tw-divide-y tw-divide-material-light-thin tw-squid-property-gradient-bg-even-container" }, props, { children: isLoading ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: "tw-absolute tw-left-0 tw-top-0 tw-z-10 tw-h-full tw-w-full tw-animate-shimmer tw-bg-shimmer tw-text-transparent", style: {
|
|
87499
87604
|
backgroundSize: "200% 100%",
|
|
87500
|
-
} }), jsxRuntime.jsx(TransactionHeaderLayout, { isLoading: true }), jsxRuntime.jsx(PropertiesSkeleton, {})] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [header, properties,
|
|
87501
|
-
|
|
87502
|
-
|
|
87503
|
-
|
|
87504
|
-
|
|
87505
|
-
|
|
87506
|
-
|
|
87507
|
-
|
|
87508
|
-
|
|
87509
|
-
|
|
87510
|
-
|
|
87511
|
-
|
|
87605
|
+
} }), jsxRuntime.jsx(TransactionHeaderLayout, { isLoading: true }), jsxRuntime.jsx(PropertiesSkeleton, {})] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [header, properties, actions && (jsxRuntime.jsx(CollapsibleSection, { header: jsxRuntime.jsx("div", { className: "tw-w-full", children: items[0] && jsxRuntime.jsx(TransactionAction, Object.assign({}, items[0])) }), collapsed: actionsCollapsed, setCollapsed: setActionsCollapsed, children: linkActionTimelineProps(actions, actionsCollapsed)
|
|
87606
|
+
.slice(1, linkActionTimelineProps.length)
|
|
87607
|
+
.map((props, i) => (jsxRuntime.jsx("div", { className: cn(i > 0 && "tw-border-t tw-border-t-material-light-thin"), children: jsxRuntime.jsx(TransactionAction, Object.assign({}, props)) }, i))) })), fees && (jsxRuntime.jsx(CollapsibleSection, { header: jsxRuntime.jsx(FeesTotal, Object.assign({ collapsed: feesCollapsed, showTimeline: true }, fees)), collapsed: feesCollapsed, setCollapsed: setFeesCollapsed, children: jsxRuntime.jsx(FeesLines, Object.assign({}, fees)) }))] })) })));
|
|
87608
|
+
}
|
|
87609
|
+
function CollapsibleSection({ header, children, collapsed, setCollapsed, collapsedHeight = 0, }) {
|
|
87610
|
+
return (jsxRuntime.jsx("div", { className: cn("tw-group/collapsible-section tw-relative tw-bg-grey-900", collapsed ? "tw-cursor-pointer" : ""), children: jsxRuntime.jsx("div", { className: cn("tw-relative tw-border-material-light-thin tw-transition-[border-width] tw-duration-200", !collapsed && "tw-border-t-[4px]"), children: jsxRuntime.jsxs("div", { className: "tw-border-t tw-border-t-material-light-thin", children: [jsxRuntime.jsxs("span", { className: "tw-relative tw-z-10 tw-flex tw-flex tw-w-full tw-cursor-pointer tw-items-center tw-justify-between tw-text-left hover:tw-bg-grey-800", onClick: (e) => {
|
|
87611
|
+
const target = e.target;
|
|
87612
|
+
if (target.tagName === "BUTTON" ||
|
|
87613
|
+
target.tagName === "A" ||
|
|
87614
|
+
target.closest("button, a, input, select, textarea")) {
|
|
87615
|
+
return;
|
|
87616
|
+
}
|
|
87617
|
+
setCollapsed((prev) => !prev);
|
|
87618
|
+
}, children: [jsxRuntime.jsx("div", { className: "tw-w-full", children: header }), jsxRuntime.jsx(ChevronLargeDownIcon, { className: cn("tw-absolute tw-right-squid-m tw-top-1/2 tw-origin-center -tw-translate-y-1/2 tw-text-grey-300 tw-transition-transform tw-duration-200", collapsed && "-tw-rotate-90") })] }), jsxRuntime.jsx(Collapse, { collapsed: collapsed, collapsedHeight: collapsedHeight, children: children })] }) }) }));
|
|
87512
87619
|
}
|
|
87513
87620
|
function PropertiesSkeleton() {
|
|
87514
87621
|
return (jsxRuntime.jsx(PropertiesLayout, { children: Array.from({ length: 5 }, (_, i) => (jsxRuntime.jsx(PropertyListItem, { variant: "large", isLoading: true, showGradientBg: false }, i))) }));
|
|
@@ -87529,16 +87636,20 @@ function InteractionTransactionView({ title = "Interaction", hash, status, url,
|
|
|
87529
87636
|
return (jsxRuntime.jsx(TransactionViewLayout, { isLoading: isLoading, header: jsxRuntime.jsx(TransactionHeaderLayout, { title: title, status: status, media: jsxRuntime.jsx("div", { className: "tw-flex tw-h-10 tw-w-10 tw-items-center tw-justify-center tw-rounded-md tw-bg-royal-400 tw-text-grey-900", children: jsxRuntime.jsx(ThumbsUp, { size: "24" }) }), children: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsxRuntime.jsx(Chip, { label: "TX" }), jsxRuntime.jsx(HashLink, { hash: hash, url: url, showCopyButton: true }), " "] }) }), properties: jsxRuntime.jsxs(PropertiesLayout, { children: [jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsxRuntime.jsx(IconLabel, { src: chain.logoURI, children: jsxRuntime.jsx(BodyText, { size: "small", children: chain.name }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsxRuntime.jsx(BodyText, { size: "small", children: jsxRuntime.jsx(HashLink, { hash: address, showCopyButton: true }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsxRuntime.jsx(BoostBadge, {}), jsxRuntime.jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87530
87637
|
}
|
|
87531
87638
|
|
|
87532
|
-
function
|
|
87639
|
+
function LinkButton({ href }) {
|
|
87640
|
+
return (jsxRuntime.jsx("a", { href: href, target: "_blank", className: "tw-ml-0.5 tw-rounded-squid-xs tw-p-0.5 tw-text-royal-500 hover:tw-bg-material-light-thin", rel: "noreferrer", children: jsxRuntime.jsx(SquareArrowTopRightIcon, {}) }));
|
|
87641
|
+
}
|
|
87642
|
+
|
|
87643
|
+
function SwapTransactionView({ title = "Swap", hash, toLink, fromLink, status, url, fromAmount, fromToken, toAmount, toToken, fromChain, toChain, fromAddress, toAddress, exchangeRate, boosted, timeToComplete, actions, fees, isLoading, }) {
|
|
87533
87644
|
if (isLoading)
|
|
87534
87645
|
return jsxRuntime.jsx(TransactionViewLayout, { isLoading: isLoading });
|
|
87535
|
-
return (jsxRuntime.jsx(TransactionViewLayout, { header: jsxRuntime.jsx(TransactionHeaderLayout, { title: title, status: status, media: jsxRuntime.jsx(Drip, { direction: "horizontal", from: fromToken, to: toToken }), children: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsxRuntime.jsx(Chip, { label: "TX" }), jsxRuntime.jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })] }) }), properties: jsxRuntime.jsxs(PropertiesLayout, { children: [jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(ArrowRightUpCircleIcon, {}), label: jsxRuntime.jsxs(BodyText, { size: "small", children: ["Swap ", fromToken.symbol] }), detail: jsxRuntime.jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsxRuntime.jsx(BodyText, { size: "small", children: fromAmount }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(ArrowRightDownCircleIcon, {}), label: jsxRuntime.jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsxRuntime.jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsxRuntime.jsx(BodyText, { size: "small", children: toAmount }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromChain.logoURI, children: jsxRuntime.jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsxRuntime.jsx(IconLabel, { src: toChain.logoURI, children: jsxRuntime.jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(BodyText, { size: "small", children: jsxRuntime.jsx(HashLink, { hash: fromAddress, showCopyButton: true, formattedHash: formatHash(fromAddress) }) }), to: jsxRuntime.jsx(BodyText, { size: "small", children: jsxRuntime.jsx(HashLink, { hash: toAddress, showCopyButton: true, formattedHash: formatHash(toAddress) }) }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(ArrowsSwapIcon, {}), label: "Exchange rate", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsxs(BodyText, { size: "small", children: ["1 ", fromToken.symbol] }), to: jsxRuntime.jsxs(BodyText, { size: "small", children: [exchangeRate, " ", toToken.symbol] }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsxRuntime.jsx(BoostBadge, {}), jsxRuntime.jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87646
|
+
return (jsxRuntime.jsx(TransactionViewLayout, { header: jsxRuntime.jsx(TransactionHeaderLayout, { title: title, status: status, media: jsxRuntime.jsx(Drip, { direction: "horizontal", from: fromToken, to: toToken }), children: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsxRuntime.jsx(Chip, { label: "TX" }), jsxRuntime.jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })] }) }), properties: jsxRuntime.jsxs(PropertiesLayout, { children: [jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(ArrowRightUpCircleIcon, {}), label: jsxRuntime.jsxs(BodyText, { size: "small", children: ["Swap ", fromToken.symbol] }), detail: jsxRuntime.jsxs("span", { className: "tw-inline-flex tw-inline-flex tw-gap-0.5", children: [jsxRuntime.jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsxRuntime.jsx(BodyText, { size: "small", children: fromAmount }) }), fromLink && jsxRuntime.jsx(LinkButton, { href: fromLink })] }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(ArrowRightDownCircleIcon, {}), label: jsxRuntime.jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsxRuntime.jsxs("span", { className: "tw-inline-flex tw-items-center tw-gap-0.5", children: [jsxRuntime.jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsxRuntime.jsx(BodyText, { size: "small", children: toAmount }) }), toLink && jsxRuntime.jsx(LinkButton, { href: toLink })] }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromChain.logoURI, children: jsxRuntime.jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsxRuntime.jsx(IconLabel, { src: toChain.logoURI, children: jsxRuntime.jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(BodyText, { size: "small", children: jsxRuntime.jsx(HashLink, { hash: fromAddress, showCopyButton: true, formattedHash: formatHash(fromAddress) }) }), to: jsxRuntime.jsx(BodyText, { size: "small", children: jsxRuntime.jsx(HashLink, { hash: toAddress, showCopyButton: true, formattedHash: formatHash(toAddress) }) }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(ArrowsSwapIcon, {}), label: "Exchange rate", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsxs(BodyText, { size: "small", children: ["1 ", fromToken.symbol] }), to: jsxRuntime.jsxs(BodyText, { size: "small", children: [exchangeRate, " ", toToken.symbol] }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsxRuntime.jsx(BoostBadge, {}), jsxRuntime.jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87536
87647
|
}
|
|
87537
87648
|
|
|
87538
|
-
function BridgeTransactionView({ title = "Bridge", hash, status, url,
|
|
87649
|
+
function BridgeTransactionView({ title = "Bridge", hash, fromLink, toLink, status, url, fromAmount, toAmount, fromToken, toToken, fromChain, toChain, address, actions, fees, boosted, timeToComplete, isLoading, }) {
|
|
87539
87650
|
if (isLoading)
|
|
87540
87651
|
return jsxRuntime.jsx(TransactionViewLayout, { isLoading: isLoading });
|
|
87541
|
-
return (jsxRuntime.jsx(TransactionViewLayout, { isLoading: isLoading, header: jsxRuntime.jsx(TransactionHeaderLayout, { title: title, status: status, media: jsxRuntime.jsxs("div", { className: "tw-relative", children: [jsxRuntime.jsx(Image$1, { src: fromChain.logoURI, size: "xlarge", rounded: "full" }), jsxRuntime.jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px] tw-rounded-md tw-border tw-border-white", children: jsxRuntime.jsx(Image$1, { src: toChain.logoURI, size: "medium" }) })] }), children: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsxRuntime.jsx(Chip, { label: "TX" }), jsxRuntime.jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })
|
|
87652
|
+
return (jsxRuntime.jsx(TransactionViewLayout, { isLoading: isLoading, header: jsxRuntime.jsx(TransactionHeaderLayout, { title: title, status: status, media: jsxRuntime.jsxs("div", { className: "tw-relative", children: [jsxRuntime.jsx(Image$1, { src: fromChain.logoURI, size: "xlarge", rounded: "full" }), jsxRuntime.jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px] tw-rounded-md tw-border tw-border-white", children: jsxRuntime.jsx(Image$1, { src: toChain.logoURI, size: "medium" }) })] }), children: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsxRuntime.jsx(Chip, { label: "TX" }), jsxRuntime.jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })] }) }), properties: jsxRuntime.jsxs(PropertiesLayout, { children: [jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(ArrowRightUpCircleIcon, {}), label: jsxRuntime.jsxs(BodyText, { size: "small", children: ["Bridge ", fromToken.symbol] }), detail: jsxRuntime.jsxs("span", { className: "tw-inline-flex tw-inline-flex tw-gap-0.5", children: [jsxRuntime.jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsxRuntime.jsx(BodyText, { size: "small", children: fromAmount }) }), fromLink && jsxRuntime.jsx(LinkButton, { href: fromLink })] }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(ArrowRightDownCircleIcon, {}), label: jsxRuntime.jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsxRuntime.jsxs("span", { className: "tw-inline-flex tw-items-center tw-gap-0.5", children: [jsxRuntime.jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsxRuntime.jsx(BodyText, { size: "small", children: toAmount }) }), toLink && jsxRuntime.jsx(LinkButton, { href: toLink })] }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromChain.logoURI, children: jsxRuntime.jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsxRuntime.jsx(IconLabel, { src: toChain.logoURI, children: jsxRuntime.jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsxRuntime.jsx(BodyText, { size: "small", children: jsxRuntime.jsx(HashLink, { hash: address, showCopyButton: true, formattedHash: address }) }) }), jsxRuntime.jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsxRuntime.jsx(BoostBadge, {}), jsxRuntime.jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87542
87653
|
}
|
|
87543
87654
|
|
|
87544
87655
|
function TransactionView({ type, isLoading, data, }) {
|
|
@@ -88117,6 +88228,7 @@ exports.SparklesIcon = SparklesIcon;
|
|
|
88117
88228
|
exports.SquareArrowCenter = SquareArrowCenter;
|
|
88118
88229
|
exports.SquareArrowTopLeftIcon = SquareArrowTopLeftIcon;
|
|
88119
88230
|
exports.SquareArrowTopRight2Icon = SquareArrowTopRight2Icon;
|
|
88231
|
+
exports.SquareArrowTopRightIcon = SquareArrowTopRightIcon;
|
|
88120
88232
|
exports.SquidLogo = SquidLogo;
|
|
88121
88233
|
exports.StakeAction = StakeAction;
|
|
88122
88234
|
exports.StarLinesIcon = StarLinesIcon;
|
|
@@ -88156,6 +88268,7 @@ exports.Toast = Toast;
|
|
|
88156
88268
|
exports.TokenDetailsView = TokenDetailsView;
|
|
88157
88269
|
exports.TokenGroup = TokenGroup;
|
|
88158
88270
|
exports.TokenGroups = TokenGroups;
|
|
88271
|
+
exports.TokenOnlyButton = TokenOnlyButton;
|
|
88159
88272
|
exports.TokenPair = TokenPair;
|
|
88160
88273
|
exports.Tooltip = Tooltip;
|
|
88161
88274
|
exports.TradingViewStepsIcon = TradingViewStepsIcon;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ReactNode } from "react";
|
|
2
|
-
import { ActionStatus, TransactionStateVariant } from "../../types/components";
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type ActionStatus, type TransactionStateVariant } from "../../types/components";
|
|
3
3
|
export declare const statusTextClassMap: Record<ActionStatus, string>;
|
|
4
4
|
interface TransactionStateProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
5
|
status: ActionStatus;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface Props extends React.HTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
copyText: string;
|
|
4
|
+
size?: "default" | "small";
|
|
5
|
+
}
|
|
6
|
+
export declare const CopyButton: ({ copyText, className, size, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|