@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/esm/index.js
CHANGED
|
@@ -3718,7 +3718,7 @@ var ImageState;
|
|
|
3718
3718
|
ImageState[ImageState["LOADED"] = 1] = "LOADED";
|
|
3719
3719
|
ImageState[ImageState["ERROR"] = 2] = "ERROR";
|
|
3720
3720
|
})(ImageState || (ImageState = {}));
|
|
3721
|
-
const sizeClassMap$
|
|
3721
|
+
const sizeClassMap$2 = {
|
|
3722
3722
|
small: "tw-w-squid-s",
|
|
3723
3723
|
medium: "tw-w-squid-m",
|
|
3724
3724
|
large: "tw-w-squid-l",
|
|
@@ -3750,7 +3750,7 @@ const borderClassMap = {
|
|
|
3750
3750
|
};
|
|
3751
3751
|
function Image$1(_a) {
|
|
3752
3752
|
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"]);
|
|
3753
|
-
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$
|
|
3753
|
+
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]);
|
|
3754
3754
|
const [imageState, setImageState] = useState(ImageState.LOADED);
|
|
3755
3755
|
return (jsxs("div", Object.assign({}, containerProps, { className: cn("tw-relative", containerProps === null || containerProps === void 0 ? void 0 : containerProps.className), children: [children != null ? (jsx("div", Object.assign({ className: cn(className, "tw-flex tw-items-center tw-justify-center") }, props, { children: children }))) : ((imageState !== ImageState.LOADED || !src) &&
|
|
3756
3756
|
(placeholderImageUrl ? (jsx("img", Object.assign({ src: placeholderImageUrl, className: className }, props))) : (jsx("div", Object.assign({ className: className }, props))))), children == null && src && (jsx("img", Object.assign({}, props, { src: src, onError: () => {
|
|
@@ -3764,7 +3764,7 @@ function BadgeImage({ image, badge, extraMarginForBadge = false, className, }) {
|
|
|
3764
3764
|
return (((image === null || image === void 0 ? void 0 : image.src) != null || (image === null || image === void 0 ? void 0 : image.placeholderImageUrl) != null) && (jsxs("div", { className: cn("tw-relative tw-w-fit", extraMarginForBadge && "tw-mr-1.5", className), children: [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) && (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: jsx(Image$1, Object.assign({}, badge)) }))] })));
|
|
3765
3765
|
}
|
|
3766
3766
|
|
|
3767
|
-
const themeKeyVariantMap$
|
|
3767
|
+
const themeKeyVariantMap$2 = {
|
|
3768
3768
|
primary: "grey-800",
|
|
3769
3769
|
accent: "royal-500",
|
|
3770
3770
|
};
|
|
@@ -3779,7 +3779,7 @@ const gradientClassMap = {
|
|
|
3779
3779
|
const Drip = ({ direction = "vertical", from, to }) => {
|
|
3780
3780
|
var _a, _b;
|
|
3781
3781
|
const isVertical = direction === "vertical";
|
|
3782
|
-
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap$
|
|
3782
|
+
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap$2.primary].cssVariable})`;
|
|
3783
3783
|
const chainBgColor = (_a = from === null || from === void 0 ? void 0 : from.bgColor) !== null && _a !== void 0 ? _a : defaultBgColor;
|
|
3784
3784
|
const tokenBgColor = (_b = to === null || to === void 0 ? void 0 : to.bgColor) !== null && _b !== void 0 ? _b : "#fff";
|
|
3785
3785
|
const bgGradient = useMemo(() => {
|
|
@@ -3870,7 +3870,7 @@ function IconLabel({ src, children, rounded }) {
|
|
|
3870
3870
|
return (jsxs("div", { className: "tw-inline-flex tw-items-center tw-gap-squid-xxs", children: [src && jsx(Image$1, { src: src, rounded: rounded, size: "medium" }), typeof children === "string" ? (jsx(CaptionText, { children: children })) : (children)] }));
|
|
3871
3871
|
}
|
|
3872
3872
|
|
|
3873
|
-
const sizeClassMap = {
|
|
3873
|
+
const sizeClassMap$1 = {
|
|
3874
3874
|
large: "tw-h-squid-xxl tw-w-squid-xxl tw-rounded-squid-s",
|
|
3875
3875
|
small: "tw-h-squid-xl tw-w-squid-xl tw-rounded-squid-xs",
|
|
3876
3876
|
};
|
|
@@ -3887,7 +3887,7 @@ const customImageStylesMap = {
|
|
|
3887
3887
|
},
|
|
3888
3888
|
};
|
|
3889
3889
|
function ImageGroup({ imageUrls, badge, size = "large", }) {
|
|
3890
|
-
return (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) => (jsx(Image$1, { src: url, size: "medium", rounded: "xxs", style: customImageStylesMap[size] }, url))), badge != null && size !== "small" && (jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px]", children: jsx(Image$1, Object.assign({}, badge, { border: "outline-lg", size: "medium" })) }))] }));
|
|
3890
|
+
return (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) => (jsx(Image$1, { src: url, size: "medium", rounded: "xxs", style: customImageStylesMap[size] }, url))), badge != null && size !== "small" && (jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px]", children: jsx(Image$1, Object.assign({}, badge, { border: "outline-lg", size: "medium" })) }))] }));
|
|
3891
3891
|
}
|
|
3892
3892
|
|
|
3893
3893
|
function Approve() {
|
|
@@ -3945,6 +3945,9 @@ function ArrowOutOfBoxIcon() {
|
|
|
3945
3945
|
function ChevronGrabberVerticalIcon({ size = "16", className, }) {
|
|
3946
3946
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 16 16", fill: "none", className: className, children: 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" }) }));
|
|
3947
3947
|
}
|
|
3948
|
+
function SquareArrowTopRightIcon({ className, size = "24", strokeWidth = "2", }) {
|
|
3949
|
+
return (jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, xmlns: "http://www.w3.org/2000/svg", children: 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" }) }));
|
|
3950
|
+
}
|
|
3948
3951
|
function SquareArrowTopRight2Icon({ className, size = "16", strokeWidth = "2", }) {
|
|
3949
3952
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 16 16", fill: "none", className: className, children: 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" }) }));
|
|
3950
3953
|
}
|
|
@@ -4543,6 +4546,8 @@ const statusBgClassMap$1 = {
|
|
|
4543
4546
|
ongoing: "tw-bg-royal-500",
|
|
4544
4547
|
waiting: "tw-bg-grey-500",
|
|
4545
4548
|
warning: "tw-bg-status-partial",
|
|
4549
|
+
refunded: "tw-bg-status-partial",
|
|
4550
|
+
troubleshoot: "tw-bg-status-partial",
|
|
4546
4551
|
};
|
|
4547
4552
|
const statusTextClassMap = {
|
|
4548
4553
|
pending: "tw-text-grey-300",
|
|
@@ -4552,6 +4557,8 @@ const statusTextClassMap = {
|
|
|
4552
4557
|
ongoing: "tw-text-royal-500",
|
|
4553
4558
|
waiting: "tw-text-grey-500",
|
|
4554
4559
|
warning: "tw-text-status-partial",
|
|
4560
|
+
refunded: "tw-text-status-partial",
|
|
4561
|
+
troubleshoot: "tw-text-status-partial",
|
|
4555
4562
|
};
|
|
4556
4563
|
const statusTextMap = {
|
|
4557
4564
|
pending: "Pending",
|
|
@@ -4561,6 +4568,8 @@ const statusTextMap = {
|
|
|
4561
4568
|
ongoing: "Processing",
|
|
4562
4569
|
waiting: "Waiting to start...",
|
|
4563
4570
|
warning: "Incomplete",
|
|
4571
|
+
refunded: "Refunded",
|
|
4572
|
+
troubleshoot: "Troubleshoot",
|
|
4564
4573
|
};
|
|
4565
4574
|
const variantClassMap = {
|
|
4566
4575
|
full: "tw-h-squid-l tw-min-w-squid-xxl tw-pl-squid-xxs tw-pr-squid-xs",
|
|
@@ -4579,6 +4588,8 @@ function renderIcon(status, variant) {
|
|
|
4579
4588
|
case "waiting":
|
|
4580
4589
|
return jsx(DotGrid1x3HorizontalIcon, {});
|
|
4581
4590
|
case "warning":
|
|
4591
|
+
case "troubleshoot":
|
|
4592
|
+
case "refunded":
|
|
4582
4593
|
return jsx(RefreshIcon, {});
|
|
4583
4594
|
}
|
|
4584
4595
|
}
|
|
@@ -4593,10 +4604,21 @@ function UsdAmount({ usdAmount }) {
|
|
|
4593
4604
|
return (jsxs("span", { className: "tw-flex tw-items-center tw-text-grey-500", children: [jsx(CaptionText, { className: "tw-opacity-66", children: "$" }), jsx(CaptionText, { children: usdAmount.toString() })] }));
|
|
4594
4605
|
}
|
|
4595
4606
|
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
|
|
4599
|
-
|
|
4607
|
+
const CopyButton = (_a) => {
|
|
4608
|
+
var { copyText, className, size } = _a, props = __rest$1(_a, ["copyText", "className", "size"]);
|
|
4609
|
+
const [copied, setCopied] = useState(false);
|
|
4610
|
+
const handleCopy = () => {
|
|
4611
|
+
navigator.clipboard.writeText(copyText).catch(() => { });
|
|
4612
|
+
setCopied(true);
|
|
4613
|
+
setTimeout(() => {
|
|
4614
|
+
setCopied(false);
|
|
4615
|
+
}, 1500);
|
|
4616
|
+
};
|
|
4617
|
+
return (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: [jsx(CopyOutlinedIcon, { strokeWidth: "2", size: size === "small" ? "1rem" : "1.5rem", className: cn("tw-text-royal-500", copied ? "tw-invisible" : "tw-visible") }), 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: jsx(Checkmark1Icon, { size: size === "small" ? "0.75rem" : "1.35rem" }) })] })));
|
|
4618
|
+
};
|
|
4619
|
+
|
|
4620
|
+
function HashLink({ showTx = false, hash, showCopyButton = false, url, children, className, formattedHash, size, }) {
|
|
4621
|
+
return (jsxs("div", { className: cn("tw-flex tw-items-center tw-gap-1", className), children: [showTx && jsx("span", { className: "tw-mr-1 tw-text-grey-700", children: "TX" }), children !== null && children !== void 0 ? children : formattedHash, url && (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: jsx(SquareArrowTopRightIcon, { size: size === "small" ? "16" : "24" }) })), showCopyButton && jsx(CopyButton, { copyText: hash, size: size })] }));
|
|
4600
4622
|
}
|
|
4601
4623
|
|
|
4602
4624
|
function WalletLink({ imageURI, address }) {
|
|
@@ -38213,8 +38235,14 @@ function NavigationBar(_a) {
|
|
|
38213
38235
|
: "tw-flex"), children: jsx(HeadingText, { size: "small", children: title }) })) : null] })));
|
|
38214
38236
|
}
|
|
38215
38237
|
|
|
38216
|
-
|
|
38217
|
-
|
|
38238
|
+
const sizeClassMap = {
|
|
38239
|
+
default: "tw-h-[0.8em]",
|
|
38240
|
+
small: "tw-h-2.5",
|
|
38241
|
+
large: "tw-h-5",
|
|
38242
|
+
};
|
|
38243
|
+
function PipeSeparator(_a) {
|
|
38244
|
+
var { className, size = "default" } = _a, props = __rest$1(_a, ["className", "size"]);
|
|
38245
|
+
return (jsx("div", Object.assign({}, props, { className: cn("tw-w-[2px] tw-rounded-full tw-bg-[currentColor]", sizeClassMap[size], className) })));
|
|
38218
38246
|
}
|
|
38219
38247
|
|
|
38220
38248
|
function ProductCard({ children }) {
|
|
@@ -38417,12 +38445,55 @@ function QrCodeModal({ qrData, imageUrl, handleClose, handleGoBack, isModalOpen,
|
|
|
38417
38445
|
return (jsxs(Modal, { onBackdropClick: handleClose, isOpen: isModalOpen, children: [jsxs(ModalContent, { addGap: true, className: "tw-pb-squid-s", children: [jsx(NavigationBar, { displayBackButton: !!handleGoBack, onBackButtonClick: handleGoBack, subtitle: title, transparent: true }), 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: 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 ? (jsx(SwapErrorIcon, {})) : qrData ? (jsx(QrCode, { matrix: qrData, size: 320, imageUrl: imageUrl })) : (jsx(Loader, { className: "tw-text-grey-300", size: "32", strokeWidth: "3" })) }) }), 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 && (jsx(Button$1, Object.assign({}, ctaButton, { size: "lg", variant: "primary" }))), jsx(Button$1, { size: "lg", variant: "secondary", label: "Cancel", onClick: handleClose })] }));
|
|
38418
38446
|
}
|
|
38419
38447
|
|
|
38448
|
+
const tokenImageClassName$1 = "tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover";
|
|
38449
|
+
const themeKeyVariantMap$1 = {
|
|
38450
|
+
primary: "grey-800",
|
|
38451
|
+
accent: "royal-500",
|
|
38452
|
+
};
|
|
38453
|
+
const buttonTextClassNameMap$1 = {
|
|
38454
|
+
primary: "tw-text-grey-300",
|
|
38455
|
+
accent: "group-data-[squid-theme-type=dark]:tw-text-grey-100 group-data-[squid-theme-type=light]:tw-text-grey-900",
|
|
38456
|
+
};
|
|
38457
|
+
var ImageLoadingState$1;
|
|
38458
|
+
(function (ImageLoadingState) {
|
|
38459
|
+
ImageLoadingState[ImageLoadingState["LOADING"] = 0] = "LOADING";
|
|
38460
|
+
ImageLoadingState[ImageLoadingState["LOADED"] = 1] = "LOADED";
|
|
38461
|
+
ImageLoadingState[ImageLoadingState["ERROR"] = 2] = "ERROR";
|
|
38462
|
+
})(ImageLoadingState$1 || (ImageLoadingState$1 = {}));
|
|
38463
|
+
function TokenOnlyButton({ token, onClick, variant = "primary", isLoading = false, tooltip, emptyTokenLabel = "Select token", }) {
|
|
38464
|
+
var _a, _b, _c;
|
|
38465
|
+
const [tokenImageLoadingState, setTokenImageLoadingState] = useState(ImageLoadingState$1.LOADING);
|
|
38466
|
+
const [fallbackImageLoadingState, setFallbackImageLoadingState] = useState(ImageLoadingState$1.LOADING);
|
|
38467
|
+
const isImgLoadError = tokenImageLoadingState === ImageLoadingState$1.ERROR;
|
|
38468
|
+
const isFallbackImgLoadError = fallbackImageLoadingState === ImageLoadingState$1.ERROR;
|
|
38469
|
+
const showTextFallback = (isImgLoadError && !(token === null || token === void 0 ? void 0 : token.fallbackIconUrl)) || isFallbackImgLoadError;
|
|
38470
|
+
const fallbackBgColor = useColorFromSeed((_a = token === null || token === void 0 ? void 0 : token.symbol) !== null && _a !== void 0 ? _a : "");
|
|
38471
|
+
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap$1[variant]].cssVariable})`;
|
|
38472
|
+
const tokenTextColor = isImgLoadError ? "#fff" : token === null || token === void 0 ? void 0 : token.textColor;
|
|
38473
|
+
const tokenBgColor = showTextFallback
|
|
38474
|
+
? fallbackBgColor || defaultBgColor
|
|
38475
|
+
: (token === null || token === void 0 ? void 0 : token.bgColor) || defaultBgColor;
|
|
38476
|
+
const ButtonTag = isLoading ? "div" : "button";
|
|
38477
|
+
return (jsx(Tooltip, Object.assign({}, tooltip, { tooltipWidth: "max", containerClassName: "tw-w-fit", tooltipContent: isLoading ? undefined : tooltip === null || tooltip === void 0 ? void 0 : tooltip.tooltipContent, children: 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: {
|
|
38478
|
+
backgroundColor: token ? tokenBgColor : defaultBgColor,
|
|
38479
|
+
color: token ? tokenTextColor : undefined,
|
|
38480
|
+
}, children: [token && !isLoading && (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 && (jsx("img", { src: token.fallbackIconUrl, alt: token.symbol, onLoad: () => {
|
|
38481
|
+
setFallbackImageLoadingState(ImageLoadingState$1.LOADED);
|
|
38482
|
+
}, onError: () => {
|
|
38483
|
+
setFallbackImageLoadingState(ImageLoadingState$1.ERROR);
|
|
38484
|
+
}, className: cn(tokenImageClassName$1, "tw-absolute", isFallbackImgLoadError && "tw-opacity-0") })), showTextFallback && (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() })), jsx("img", { onLoad: () => {
|
|
38485
|
+
setTokenImageLoadingState(ImageLoadingState$1.LOADED);
|
|
38486
|
+
}, onError: () => {
|
|
38487
|
+
setTokenImageLoadingState(ImageLoadingState$1.ERROR);
|
|
38488
|
+
}, src: token.iconUrl, alt: token.symbol, className: cn(tokenImageClassName$1, "tw-absolute", isImgLoadError && "tw-opacity-0") })] })), jsx(BodyText, { size: "small", className: cn("tw-leading-[13px]", isLoading && "tw-min-w-[135px]"), children: token && !isLoading ? token.symbol : !isLoading && emptyTokenLabel }), !isLoading && (jsx(ChevronLargeRightIcon, { className: "tw-w-4 tw-min-w-4 tw-opacity-66" }))] }) })));
|
|
38489
|
+
}
|
|
38490
|
+
|
|
38420
38491
|
const AddressHeader = ({ direction, onClick, isDisabled, tooltip, label, walletIconUrl, isLoading, displayLabel = true, highlightLabel = false, showIcon = true, }) => {
|
|
38421
38492
|
const ButtonTag = onClick && !isDisabled ? "button" : "div";
|
|
38422
38493
|
return (jsx("header", { className: "tw-flex tw-h-squid-xl2 tw-items-center tw-self-stretch tw-px-squid-m tw-py-squid-xxs", children: jsx(Tooltip, Object.assign({}, tooltip, { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: 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: [jsx(BodyText, { size: "small", className: "tw-text-grey-500", children: direction === "from" ? "Pay" : "Receive" }), displayLabel && !isLoading && (jsxs(Fragment, { children: [jsx(BodyText, { size: "small", className: "tw-text-grey-600", children: ":" }), jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: [showIcon &&
|
|
38423
38494
|
(walletIconUrl ? (jsx(Image$1, { className: "!tw-h-6 !tw-w-6 !tw-rounded-lg", src: walletIconUrl })) : (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: jsx(WalletIcon, { size: "18" }) }))), jsx(BodyText, { size: "small", className: cn(highlightLabel ? "tw-text-royal-500" : "tw-text-grey-300"), children: label }), jsx(ChevronArrowIcon, { className: cn(highlightLabel ? "tw-text-royal-500" : "tw-text-grey-600"), size: "16" })] })] }))] }) })) }));
|
|
38424
38495
|
};
|
|
38425
|
-
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, }) {
|
|
38496
|
+
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, }) {
|
|
38426
38497
|
var _a, _b, _c, _d, _e;
|
|
38427
38498
|
const isFetching = isFetchingProp || isLoading;
|
|
38428
38499
|
const [forcedAmount, setForcedAmount] = useState(amount);
|
|
@@ -38450,7 +38521,7 @@ function SwapConfiguration({ amount, tokenPrice = 0, isFetching: isFetchingProp
|
|
|
38450
38521
|
}
|
|
38451
38522
|
setForcedAmount(prevRef.current.amount);
|
|
38452
38523
|
}, [amount, chain, token]);
|
|
38453
|
-
return (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: [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 }), jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading })) }), jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
|
|
38524
|
+
return (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: [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 }), jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: hideChainSelector ? (jsx(TokenOnlyButton, Object.assign({}, assetsButton, { token: token, isLoading: isLoading }))) : (jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading }))) }), jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
|
|
38454
38525
|
decimals: (_d = token === null || token === void 0 ? void 0 : token.decimals) !== null && _d !== void 0 ? _d : 18,
|
|
38455
38526
|
symbol: (_e = token === null || token === void 0 ? void 0 : token.symbol) !== null && _e !== void 0 ? _e : "",
|
|
38456
38527
|
price: tokenPrice,
|
|
@@ -38987,7 +39058,7 @@ function PropertyListItem(_a) {
|
|
|
38987
39058
|
const Text = variant === "small" ? CaptionText : SmallBodyText;
|
|
38988
39059
|
const isCollapsible = !!collapsibleContent;
|
|
38989
39060
|
const ContentWrapperTag = isCollapsible ? "button" : "div";
|
|
38990
|
-
return (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-
|
|
39061
|
+
return (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: jsxs(ContentWrapperTag, { onClick: isCollapsible ? handleToggleCollapsed : undefined, className: "tw-w-full tw-rounded-squid-xs", children: [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: [jsx("div", { className: cn("tw-w-6 tw-text-grey-500", iconClassName), children: icon }), jsxs(Text, { className: cn("tw-flex tw-min-w-fit tw-flex-1 tw-gap-squid-xxs tw-text-grey-500", labelClassName), children: [jsx(TextSkeleton, { isLoading: isLoading, showGradient: false, children: label }), !!tooltip && (jsx(Tooltip, Object.assign({}, tooltip, { children: jsx(HelpIcon, { className: "tw-cursor-help tw-text-grey-600 hover:tw-text-grey-500" }) })))] }), jsx(Text, { truncate: variant === "small" || undefined, className: cn("tw-flex tw-text-grey-300", detailClassName), children: jsx(TextSkeleton, { isLoading: isLoading, showGradient: false, children: detail }) }), isCollapsible && (jsx(ChevronLargeRightIcon, { className: cn("tw-text-grey-600 tw-duration-generic", !isCollapsed && "tw-rotate-90"), size: "16" }))] }), isCollapsible && (jsx(Collapse, { collapsed: isCollapsed, children: collapsibleContent }))] }) })));
|
|
38991
39062
|
}
|
|
38992
39063
|
|
|
38993
39064
|
function RouteStep({ imageUrl, descriptionBlocks, subtitle, showStepSeparator = false, }) {
|
|
@@ -39172,10 +39243,10 @@ function TokenGroups({ groups, className, onGroupChildClick, variant = "large",
|
|
|
39172
39243
|
}
|
|
39173
39244
|
|
|
39174
39245
|
function ActionLayout({ lineCap = jsx(Timeline.CapTop, {}), status = "executed", showTimeline = true, showBody = true, nextStatus, statusIcon, description, title, icon, children, }) {
|
|
39175
|
-
return (jsxs(ActionWrapper, { status: status, children: [jsx(ActionLineOutRow, { status: nextStatus }), jsx(ActionStatusRow, { status: status, icon: statusIcon, children: description }), title && (jsxs(Fragment, { children: [jsx(ActionRow, { children: jsxs(Timeline, { className: cn("tw-h-squid-xs", statusTextClassMap[status]), children: [jsx(Timeline.CapTop, {}), jsx(Timeline.Straight, {}), jsx(Timeline.CapBottom, {})] }) }), jsxs(ActionRow, { children: [jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: icon }), 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 })] })] })), jsxs(ActionRow, { children: [jsxs(Timeline, { className: showTimeline ? statusTextClassMap[status] : "!tw-text-[transparent]", children: [lineCap, jsx(Timeline.Straight, {})] }), jsx("div", { className: cn("tw-flex tw-flex-col tw-gap-squid-xs tw-pb-squid-xs tw-text-grey-500 tw-transition-
|
|
39246
|
+
return (jsxs(ActionWrapper, { status: status, children: [jsx(ActionLineOutRow, { status: nextStatus }), jsx(ActionStatusRow, { status: status, icon: statusIcon, children: jsx(BodyText, { size: "small", tight: true, className: "tw-block tw-w-full tw-font-medium tw-text-grey-300", children: description }) }), title && (jsxs(Fragment, { children: [jsx(ActionRow, { children: jsxs(Timeline, { className: cn("tw-h-squid-xs", statusTextClassMap[status]), children: [jsx(Timeline.CapTop, {}), jsx(Timeline.Straight, {}), jsx(Timeline.CapBottom, {})] }) }), jsxs(ActionRow, { children: [jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: icon }), 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 })] })] })), jsxs(ActionRow, { children: [jsxs(Timeline, { className: showTimeline ? statusTextClassMap[status] : "!tw-text-[transparent]", children: [lineCap, jsx(Timeline.Straight, {})] }), 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 })] })] }));
|
|
39176
39247
|
}
|
|
39177
39248
|
function ActionProperties({ timestamp, hash, url, }) {
|
|
39178
|
-
return (jsxs(CaptionText, { className: "tw-flex tw-items-center tw-gap-squid-xs", children: [timestamp && jsx(Timestamp, { time: timestamp }), timestamp && hash && jsx(PipeSeparator, { className: "tw-text-grey-700" }), hash && jsx(HashLink, { hash: hash, url: url, showTx: true })] }));
|
|
39249
|
+
return (jsxs(CaptionText, { className: "tw-flex tw-items-center tw-gap-squid-xs", children: [timestamp && jsx(Timestamp, { time: timestamp }), timestamp && hash && (jsx(PipeSeparator, { size: "small", className: "tw-text-grey-700" })), hash && (jsx(HashLink, { size: "small", hash: hash, url: url, formattedHash: formatHash(hash), showTx: true, showCopyButton: true }))] }));
|
|
39179
39250
|
}
|
|
39180
39251
|
function renderStatusIcon(status, defaultIcon) {
|
|
39181
39252
|
switch (status) {
|
|
@@ -39194,7 +39265,7 @@ function renderStatusIcon(status, defaultIcon) {
|
|
|
39194
39265
|
}
|
|
39195
39266
|
}
|
|
39196
39267
|
const ActionLineOutRow = ({ status }) => (jsx(ActionRow, { children: jsxs(Timeline, { className: cn("tw-h-squid-xs", status ? statusTextClassMap[status] : "!tw-text-[transparent]"), children: [jsx(Timeline.Straight, {}), jsx(Timeline.CapBottom, {})] }) }));
|
|
39197
|
-
const ActionStatusRow = ({ children, status, icon, }) => (jsxs(ActionRow, { children: [jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: renderStatusIcon(status, icon) }), jsx("div", { className: "tw-flex tw-items-center", children: jsx(
|
|
39268
|
+
const ActionStatusRow = ({ children, status, icon, }) => (jsxs(ActionRow, { children: [jsx("div", { className: "tw-flex tw-items-center tw-justify-center", children: renderStatusIcon(status, icon) }), jsx("div", { className: "tw-flex tw-items-center", children: jsx("span", { className: "tw-block tw-w-full tw-text-grey-300", children: children }) })] }));
|
|
39198
39269
|
function ActionRow(_a) {
|
|
39199
39270
|
var { className } = _a, props = __rest$1(_a, ["className"]);
|
|
39200
39271
|
return (jsx("div", Object.assign({}, props, { className: cn("tw-grid tw-grid-cols-[40px,1fr,60px] tw-gap-squid-xs tw-pl-squid-m", className) })));
|
|
@@ -39218,15 +39289,13 @@ function FeesAction({ status, nextStatus, showTimeline = false, total, lines, })
|
|
|
39218
39289
|
return (jsxs(Fragment, { children: [jsx(FeesTotal, { status: status, nextStatus: nextStatus, total: total, showTimeline: lines !== undefined || showTimeline }), lines && (jsx(FeesLines, { status: status, lines: lines, showTimeline: showTimeline }))] }));
|
|
39219
39290
|
}
|
|
39220
39291
|
function FeesTotal({ status, nextStatus, total, showTimeline, collapsed, }) {
|
|
39221
|
-
return (jsxs(ActionWrapper, { status: status, children: [jsx(ActionLineOutRow, { status: nextStatus }), jsx(ActionStatusRow, { status: status, icon: jsx(TagIconFilled, {}), children: jsx(FeesRow, Object.assign({ collapsed: collapsed }, total)) }), jsx(ActionRow, { children: jsxs(Timeline, { className: cn("tw-h-squid-xs", showTimeline ? statusTextClassMap[status] : "tw-text-transparent"), children: [jsx(Timeline.CapTop, {}), jsx(Timeline.Straight, {})] }) })] }));
|
|
39292
|
+
return (jsxs(ActionWrapper, { status: status, children: [jsx(ActionLineOutRow, { status: nextStatus }), jsx(ActionStatusRow, { status: status, icon: jsx(TagIconFilled, {}), children: jsx(FeesRow, Object.assign({ className: "tw-text-grey-300", collapsed: collapsed }, total)) }), jsx(ActionRow, { children: jsxs(Timeline, { className: cn("tw-h-squid-xs", showTimeline ? statusTextClassMap[status] : "tw-text-transparent"), children: [jsx(Timeline.CapTop, {}), jsx(Timeline.Straight, {})] }) })] }));
|
|
39222
39293
|
}
|
|
39223
|
-
function FeesLines({ status, lines
|
|
39224
|
-
return (
|
|
39225
|
-
? statusTextClassMap[status]
|
|
39226
|
-
: "!tw-text-[transparent]"), children: [jsx(Timeline.CapTop, {}), jsx(Timeline.Straight, {})] }) })] }));
|
|
39294
|
+
function FeesLines({ status, lines }) {
|
|
39295
|
+
return (jsx(ActionWrapper, { status: status, children: lines && (jsx("div", { children: lines.map((line, index) => (jsxs(ActionRow, { children: [jsx("div", { className: "tw-flex tw-h-10", children: jsxs(Timeline, { className: statusTextClassMap[status], children: [jsx(Timeline.Straight, {}), jsx(Timeline.ArrowRight, {}), jsx(Timeline.Straight, { className: index < lines.length - 1 ? "visible" : "tw-invisible" })] }) }), jsx("div", { className: "tw-flex tw-items-center", children: jsx(FeesRow, Object.assign({ className: "tw-text-grey-400" }, line)) })] }, index))) })) }));
|
|
39227
39296
|
}
|
|
39228
|
-
function FeesRow({ label, usd, amount, symbol, collapsed = false, }) {
|
|
39229
|
-
return (jsxs("div", { className: "tw-flex tw-w-full tw-gap-squid-xs", children: [jsx(SizeTransition, { disableInitialAnimation: true, children: jsx(BodyText, { size: "small", tight: true, className: cn("tw-block tw-truncate
|
|
39297
|
+
function FeesRow({ label, usd, amount, symbol, collapsed = false, className, }) {
|
|
39298
|
+
return (jsxs("div", { className: cn("tw-flex tw-h-5 tw-w-full tw-items-center tw-gap-squid-xs", className), children: [jsx(SizeTransition, { disableInitialAnimation: true, children: jsx(BodyText, { size: "small", tight: true, className: cn("tw-block tw-truncate", !collapsed && "tw-w-[100px]"), children: label }) }), jsx("div", { className: "tw-flex tw-items-center", children: jsx(PipeSeparator, { size: "large", className: "tw-text-grey-700" }) }), jsxs(BodyText, { size: "small", tight: true, className: "tw-flex-grow tw-text-grey-300", children: ["$", usd] }), jsxs(CaptionText, { className: "tw-text-right tw-text-grey-500", children: [amount, " ", symbol] })] }));
|
|
39230
39299
|
}
|
|
39231
39300
|
|
|
39232
39301
|
function IncompleteAction({ status, nextStatus, message, buttons, }) {
|
|
@@ -39278,7 +39347,7 @@ function StartAction({ status, nextStatus, showTimeline = false, showBody = fals
|
|
|
39278
39347
|
function SuccessAction({ nextStatus, status, description = status === "error"
|
|
39279
39348
|
? "Transaction failed"
|
|
39280
39349
|
: "Transaction successful", showTimeline, showBody, timestamp, hash, url, }) {
|
|
39281
|
-
return (jsx(ActionLayout, { description: description, status: status, nextStatus: nextStatus, showTimeline: showTimeline, showBody: showBody, children: (timestamp
|
|
39350
|
+
return (jsx(ActionLayout, { description: description, status: status, nextStatus: nextStatus, showTimeline: showTimeline, showBody: showBody, children: (timestamp !== null && timestamp !== void 0 ? timestamp : hash) && (jsx(ActionProperties, { timestamp: timestamp, hash: hash, url: url })) }));
|
|
39282
39351
|
}
|
|
39283
39352
|
|
|
39284
39353
|
function SwapAction({ status, nextStatus, showTimeline, showBody, fromToken, toToken, provider, timestamp, hash, url, }) {
|
|
@@ -87230,27 +87299,39 @@ const swapProgressAnimations = {
|
|
|
87230
87299
|
[SwapState.CONFIRMATION_REJECTED]: transactionRejectedAnimation,
|
|
87231
87300
|
[SwapState.NEEDS_GAS]: transactionErrorPauseAnimation,
|
|
87232
87301
|
};
|
|
87233
|
-
const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction, }) => {
|
|
87302
|
+
const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction, isBridgeTransaction, }) => {
|
|
87234
87303
|
switch (swapState) {
|
|
87235
87304
|
case SwapState.CONFIRM:
|
|
87236
87305
|
if (isSendTransaction) {
|
|
87237
87306
|
return "Confirm transaction";
|
|
87238
87307
|
}
|
|
87308
|
+
if (isBridgeTransaction) {
|
|
87309
|
+
return "Confirm bridge";
|
|
87310
|
+
}
|
|
87239
87311
|
return "Confirm swap";
|
|
87240
87312
|
case SwapState.PROGRESS:
|
|
87241
87313
|
if (isSendTransaction) {
|
|
87242
87314
|
return `Send ${fromToken.symbol}`;
|
|
87243
87315
|
}
|
|
87316
|
+
if (isBridgeTransaction) {
|
|
87317
|
+
return `Bridge ${fromToken.symbol}`;
|
|
87318
|
+
}
|
|
87244
87319
|
return `Swap ${fromToken.symbol} to ${toToken.symbol}`;
|
|
87245
87320
|
case SwapState.COMPLETED:
|
|
87246
87321
|
if (isSendTransaction) {
|
|
87247
87322
|
return "Tokens received";
|
|
87248
87323
|
}
|
|
87324
|
+
if (isBridgeTransaction) {
|
|
87325
|
+
return "Bridge complete";
|
|
87326
|
+
}
|
|
87249
87327
|
return "Swap complete";
|
|
87250
87328
|
case SwapState.ERROR:
|
|
87251
87329
|
if (isSendTransaction) {
|
|
87252
87330
|
return "Transaction failed";
|
|
87253
87331
|
}
|
|
87332
|
+
if (isBridgeTransaction) {
|
|
87333
|
+
return "Bridge failed";
|
|
87334
|
+
}
|
|
87254
87335
|
return "Swap failed";
|
|
87255
87336
|
case SwapState.CONFIRMATION_TOO_LONG:
|
|
87256
87337
|
return "Confirmation taking too long";
|
|
@@ -87258,14 +87339,23 @@ const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction
|
|
|
87258
87339
|
if (isSendTransaction) {
|
|
87259
87340
|
return "Transaction rejected";
|
|
87260
87341
|
}
|
|
87342
|
+
if (isBridgeTransaction) {
|
|
87343
|
+
return "Bridge rejected";
|
|
87344
|
+
}
|
|
87261
87345
|
return "Swap rejected";
|
|
87262
87346
|
case SwapState.PARTIAL_SUCCESS:
|
|
87347
|
+
if (isSendTransaction) {
|
|
87348
|
+
return "Transaction failed to complete";
|
|
87349
|
+
}
|
|
87350
|
+
if (isBridgeTransaction) {
|
|
87351
|
+
return "Bridge failed to complete";
|
|
87352
|
+
}
|
|
87263
87353
|
return "Swap failed to complete";
|
|
87264
87354
|
case SwapState.NEEDS_GAS:
|
|
87265
87355
|
return "Needs gas on destination";
|
|
87266
87356
|
}
|
|
87267
87357
|
};
|
|
87268
|
-
const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, toAddressFormatted, refundTokenSymbol, isSendTransaction, }) => {
|
|
87358
|
+
const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, toAddressFormatted, refundTokenSymbol, isSendTransaction, isBridgeTransaction, }) => {
|
|
87269
87359
|
switch (swapState) {
|
|
87270
87360
|
case SwapState.CONFIRM: {
|
|
87271
87361
|
return "Authenticate the transaction in your wallet.";
|
|
@@ -87274,6 +87364,9 @@ const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, to
|
|
|
87274
87364
|
if (isSendTransaction) {
|
|
87275
87365
|
return "Feel free to dismiss this dialog, we’ll notify you when the recipient receives your tokens.";
|
|
87276
87366
|
}
|
|
87367
|
+
if (isBridgeTransaction) {
|
|
87368
|
+
return "Feel free to dismiss this dialog, we’ll notify you when the bridge is complete.";
|
|
87369
|
+
}
|
|
87277
87370
|
return "Feel free to dismiss this dialog, we’ll notify you when the swap is complete.";
|
|
87278
87371
|
}
|
|
87279
87372
|
case SwapState.COMPLETED: {
|
|
@@ -87309,7 +87402,7 @@ const swapProgressButtonTexts = {
|
|
|
87309
87402
|
[SwapState.PARTIAL_SUCCESS]: "Cancel",
|
|
87310
87403
|
[SwapState.NEEDS_GAS]: "Go to Axelarscan",
|
|
87311
87404
|
};
|
|
87312
|
-
function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, supportLink, fromAmount, fromChain, fromToken, toAmount, toChain, toToken, fromAddressFormatted, toAddressFormatted, swapState, estimatedTimeToComplete, footerButton, refundTokenSymbol, addGasLink, shareSwapDropdownContent, isSendTransaction = false, }) {
|
|
87405
|
+
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, }) {
|
|
87313
87406
|
const [showSwapInfoSection, setShowSwapInfoSection] = useState(true);
|
|
87314
87407
|
const isFirstRenderRef = useRef(true);
|
|
87315
87408
|
const { timer, stopTimer, startTimer } = useTimer({
|
|
@@ -87333,6 +87426,7 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
|
|
|
87333
87426
|
fromToken,
|
|
87334
87427
|
toToken,
|
|
87335
87428
|
isSendTransaction,
|
|
87429
|
+
isBridgeTransaction,
|
|
87336
87430
|
});
|
|
87337
87431
|
const headerDescription = getSwapProgressDescriptions({
|
|
87338
87432
|
swapState,
|
|
@@ -87342,12 +87436,13 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
|
|
|
87342
87436
|
toAddressFormatted,
|
|
87343
87437
|
refundTokenSymbol,
|
|
87344
87438
|
isSendTransaction,
|
|
87439
|
+
isBridgeTransaction,
|
|
87345
87440
|
});
|
|
87346
87441
|
return {
|
|
87347
87442
|
headerTitle,
|
|
87348
87443
|
headerDescription,
|
|
87349
87444
|
};
|
|
87350
|
-
}, [swapState, fromToken, toToken, toAmount, toChain]);
|
|
87445
|
+
}, [swapState, fromToken, toToken, toAmount, toChain, isBridgeTransaction]);
|
|
87351
87446
|
const trackTransactionViewRef = useRef(null);
|
|
87352
87447
|
const handleCollapseRouteSteps = () => { var _a; return (_a = trackTransactionViewRef.current) === null || _a === void 0 ? void 0 : _a.handleToggleRouteSteps(); };
|
|
87353
87448
|
return (jsxs(Modal, { isOpen: isOpen, onBackdropClick:
|
|
@@ -87367,13 +87462,18 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
|
|
|
87367
87462
|
height: "100%",
|
|
87368
87463
|
maxHeight: "100%",
|
|
87369
87464
|
width: "auto",
|
|
87370
|
-
}, autoplay: true, loop: true, src: swapProgressAnimations[swapState] }) }), 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 ? (jsxs(Fragment, { children: [jsx("span", { className: "-tw-mb-1 -tw-ml-1", children: jsx(SwapSuccessIcon, {}) }), shareSwapDropdownContent ? (jsx(ShareSwapButton, { dropdownContent: shareSwapDropdownContent })) : null] })) : swapState === SwapState.ERROR ? (jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "error" })) : swapState === SwapState.PARTIAL_SUCCESS ? (jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "warning" })) : isSendTransaction ? (jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", size: "xlarge", shadow: true })) : (jsx(TokenPair, { firstToken: {
|
|
87465
|
+
}, autoplay: true, loop: true, src: swapProgressAnimations[swapState] }) }), 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 ? (jsxs(Fragment, { children: [jsx("span", { className: "-tw-mb-1 -tw-ml-1", children: jsx(SwapSuccessIcon, {}) }), shareSwapDropdownContent ? (jsx(ShareSwapButton, { dropdownContent: shareSwapDropdownContent })) : null] })) : swapState === SwapState.ERROR ? (jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "error" })) : swapState === SwapState.PARTIAL_SUCCESS ? (jsx(SwapErrorTopMenu, { supportLink: supportLink, type: "warning" })) : isSendTransaction || isBridgeTransaction ? (jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", size: "xlarge", shadow: true })) : (jsx(TokenPair, { firstToken: {
|
|
87371
87466
|
bgColor: fromToken.bgColor,
|
|
87372
87467
|
logoURI: fromToken.logoUrl,
|
|
87373
87468
|
}, secondToken: {
|
|
87374
87469
|
bgColor: toToken.bgColor,
|
|
87375
87470
|
logoURI: toToken.logoUrl,
|
|
87376
|
-
} })) }), jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxs("ul", { className: "tw-
|
|
87471
|
+
} })) }), jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), 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: [jsx(PropertyListItem, { icon: isSendTransaction ? (jsx(ArrowRightUpCircleIcon, {})) : (jsx(ArrowsSwapIcon, {})), label: isSendTransaction
|
|
87472
|
+
? "Send"
|
|
87473
|
+
: isBridgeTransaction
|
|
87474
|
+
? "Bridge"
|
|
87475
|
+
: "Swap", detail: isSendTransaction ? (jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount })) : (jsx(Transfer, { from: jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) })) }), jsx(PropertyListItem, { icon: jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: isSendTransaction ||
|
|
87476
|
+
fromChain.networkName === toChain.networkName ? (jsxs("span", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: [jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsx(CaptionText, { children: fromChain.networkName })] })) : (jsx(Transfer, { from: jsxs(Fragment, { children: [jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxs(Fragment, { children: [jsx(Image$1, { size: "medium", rounded: "xxs", src: toChain.logoUrl }), jsx(CaptionText, { children: toChain.networkName })] }) })) }), jsx(PropertyListItem, { icon: jsx(WalletFilledIcon, { size: "24" }), label: "Wallet", detail: jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsx(PropertyListItem, { icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsx(CaptionText, { children: timer })) : (jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
|
|
87377
87477
|
stopTimer();
|
|
87378
87478
|
}, onTxStart: () => {
|
|
87379
87479
|
startTimer();
|
|
@@ -87475,20 +87575,27 @@ function TransactionViewLayout(_a) {
|
|
|
87475
87575
|
var { isLoading, header, properties, actions, fees } = _a, props = __rest$1(_a, ["isLoading", "header", "properties", "actions", "fees"]);
|
|
87476
87576
|
const [actionsCollapsed, setActionsCollapsed] = useState(true);
|
|
87477
87577
|
const [feesCollapsed, setFeesCollapsed] = useState(true);
|
|
87478
|
-
|
|
87578
|
+
const items = useMemo(() => {
|
|
87579
|
+
if (actions)
|
|
87580
|
+
return linkActionTimelineProps(actions, actionsCollapsed);
|
|
87581
|
+
return [];
|
|
87582
|
+
}, [actions, actionsCollapsed]);
|
|
87583
|
+
return (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 ? (jsxs(Fragment, { children: [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: {
|
|
87479
87584
|
backgroundSize: "200% 100%",
|
|
87480
|
-
} }), jsx(TransactionHeaderLayout, { isLoading: true }), jsx(PropertiesSkeleton, {})] })) : (jsxs(Fragment, { children: [header, properties,
|
|
87481
|
-
|
|
87482
|
-
|
|
87483
|
-
|
|
87484
|
-
|
|
87485
|
-
|
|
87486
|
-
|
|
87487
|
-
|
|
87488
|
-
|
|
87489
|
-
|
|
87490
|
-
|
|
87491
|
-
|
|
87585
|
+
} }), jsx(TransactionHeaderLayout, { isLoading: true }), jsx(PropertiesSkeleton, {})] })) : (jsxs(Fragment, { children: [header, properties, actions && (jsx(CollapsibleSection, { header: jsx("div", { className: "tw-w-full", children: items[0] && jsx(TransactionAction, Object.assign({}, items[0])) }), collapsed: actionsCollapsed, setCollapsed: setActionsCollapsed, children: linkActionTimelineProps(actions, actionsCollapsed)
|
|
87586
|
+
.slice(1, linkActionTimelineProps.length)
|
|
87587
|
+
.map((props, i) => (jsx("div", { className: cn(i > 0 && "tw-border-t tw-border-t-material-light-thin"), children: jsx(TransactionAction, Object.assign({}, props)) }, i))) })), fees && (jsx(CollapsibleSection, { header: jsx(FeesTotal, Object.assign({ collapsed: feesCollapsed, showTimeline: true }, fees)), collapsed: feesCollapsed, setCollapsed: setFeesCollapsed, children: jsx(FeesLines, Object.assign({}, fees)) }))] })) })));
|
|
87588
|
+
}
|
|
87589
|
+
function CollapsibleSection({ header, children, collapsed, setCollapsed, collapsedHeight = 0, }) {
|
|
87590
|
+
return (jsx("div", { className: cn("tw-group/collapsible-section tw-relative tw-bg-grey-900", collapsed ? "tw-cursor-pointer" : ""), children: jsx("div", { className: cn("tw-relative tw-border-material-light-thin tw-transition-[border-width] tw-duration-200", !collapsed && "tw-border-t-[4px]"), children: jsxs("div", { className: "tw-border-t tw-border-t-material-light-thin", children: [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) => {
|
|
87591
|
+
const target = e.target;
|
|
87592
|
+
if (target.tagName === "BUTTON" ||
|
|
87593
|
+
target.tagName === "A" ||
|
|
87594
|
+
target.closest("button, a, input, select, textarea")) {
|
|
87595
|
+
return;
|
|
87596
|
+
}
|
|
87597
|
+
setCollapsed((prev) => !prev);
|
|
87598
|
+
}, children: [jsx("div", { className: "tw-w-full", children: header }), 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") })] }), jsx(Collapse, { collapsed: collapsed, collapsedHeight: collapsedHeight, children: children })] }) }) }));
|
|
87492
87599
|
}
|
|
87493
87600
|
function PropertiesSkeleton() {
|
|
87494
87601
|
return (jsx(PropertiesLayout, { children: Array.from({ length: 5 }, (_, i) => (jsx(PropertyListItem, { variant: "large", isLoading: true, showGradientBg: false }, i))) }));
|
|
@@ -87509,16 +87616,20 @@ function InteractionTransactionView({ title = "Interaction", hash, status, url,
|
|
|
87509
87616
|
return (jsx(TransactionViewLayout, { isLoading: isLoading, header: jsx(TransactionHeaderLayout, { title: title, status: status, media: 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: jsx(ThumbsUp, { size: "24" }) }), children: jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsx(Chip, { label: "TX" }), jsx(HashLink, { hash: hash, url: url, showCopyButton: true }), " "] }) }), properties: jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(IconLabel, { src: chain.logoURI, children: jsx(BodyText, { size: "small", children: chain.name }) }) }), jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: address, showCopyButton: true }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87510
87617
|
}
|
|
87511
87618
|
|
|
87512
|
-
function
|
|
87619
|
+
function LinkButton({ href }) {
|
|
87620
|
+
return (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: jsx(SquareArrowTopRightIcon, {}) }));
|
|
87621
|
+
}
|
|
87622
|
+
|
|
87623
|
+
function SwapTransactionView({ title = "Swap", hash, toLink, fromLink, status, url, fromAmount, fromToken, toAmount, toToken, fromChain, toChain, fromAddress, toAddress, exchangeRate, boosted, timeToComplete, actions, fees, isLoading, }) {
|
|
87513
87624
|
if (isLoading)
|
|
87514
87625
|
return jsx(TransactionViewLayout, { isLoading: isLoading });
|
|
87515
|
-
return (jsx(TransactionViewLayout, { header: jsx(TransactionHeaderLayout, { title: title, status: status, media: jsx(Drip, { direction: "horizontal", from: fromToken, to: toToken }), children: jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsx(Chip, { label: "TX" }), jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })] }) }), properties: jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(ArrowRightUpCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Swap ", fromToken.symbol] }), detail: jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: fromAmount }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightDownCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: toAmount }) }) }), jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(Transfer, { from: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: fromAddress, showCopyButton: true, formattedHash: formatHash(fromAddress) }) }), to: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: toAddress, showCopyButton: true, formattedHash: formatHash(toAddress) }) }) }) }), jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(ArrowsSwapIcon, {}), label: "Exchange rate", detail: jsx(Transfer, { from: jsxs(BodyText, { size: "small", children: ["1 ", fromToken.symbol] }), to: jsxs(BodyText, { size: "small", children: [exchangeRate, " ", toToken.symbol] }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87626
|
+
return (jsx(TransactionViewLayout, { header: jsx(TransactionHeaderLayout, { title: title, status: status, media: jsx(Drip, { direction: "horizontal", from: fromToken, to: toToken }), children: jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsx(Chip, { label: "TX" }), jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })] }) }), properties: jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(ArrowRightUpCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Swap ", fromToken.symbol] }), detail: jsxs("span", { className: "tw-inline-flex tw-inline-flex tw-gap-0.5", children: [jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: fromAmount }) }), fromLink && jsx(LinkButton, { href: fromLink })] }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightDownCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsxs("span", { className: "tw-inline-flex tw-items-center tw-gap-0.5", children: [jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: toAmount }) }), toLink && jsx(LinkButton, { href: toLink })] }) }), jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(Transfer, { from: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: fromAddress, showCopyButton: true, formattedHash: formatHash(fromAddress) }) }), to: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: toAddress, showCopyButton: true, formattedHash: formatHash(toAddress) }) }) }) }), jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(ArrowsSwapIcon, {}), label: "Exchange rate", detail: jsx(Transfer, { from: jsxs(BodyText, { size: "small", children: ["1 ", fromToken.symbol] }), to: jsxs(BodyText, { size: "small", children: [exchangeRate, " ", toToken.symbol] }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87516
87627
|
}
|
|
87517
87628
|
|
|
87518
|
-
function BridgeTransactionView({ title = "Bridge", hash, status, url,
|
|
87629
|
+
function BridgeTransactionView({ title = "Bridge", hash, fromLink, toLink, status, url, fromAmount, toAmount, fromToken, toToken, fromChain, toChain, address, actions, fees, boosted, timeToComplete, isLoading, }) {
|
|
87519
87630
|
if (isLoading)
|
|
87520
87631
|
return jsx(TransactionViewLayout, { isLoading: isLoading });
|
|
87521
|
-
return (jsx(TransactionViewLayout, { isLoading: isLoading, header: jsx(TransactionHeaderLayout, { title: title, status: status, media: jsxs("div", { className: "tw-relative", children: [jsx(Image$1, { src: fromChain.logoURI, size: "xlarge", rounded: "full" }), jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px] tw-rounded-md tw-border tw-border-white", children: jsx(Image$1, { src: toChain.logoURI, size: "medium" }) })] }), children: jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsx(Chip, { label: "TX" }), jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })
|
|
87632
|
+
return (jsx(TransactionViewLayout, { isLoading: isLoading, header: jsx(TransactionHeaderLayout, { title: title, status: status, media: jsxs("div", { className: "tw-relative", children: [jsx(Image$1, { src: fromChain.logoURI, size: "xlarge", rounded: "full" }), jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px] tw-rounded-md tw-border tw-border-white", children: jsx(Image$1, { src: toChain.logoURI, size: "medium" }) })] }), children: jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs tw-text-grey-500", children: [jsx(Chip, { label: "TX" }), jsx(HashLink, { hash: hash, url: url, showCopyButton: true, formattedHash: formatHash(hash) })] }) }), properties: jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightUpCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Bridge ", fromToken.symbol] }), detail: jsxs("span", { className: "tw-inline-flex tw-inline-flex tw-gap-0.5", children: [jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: fromAmount }) }), fromLink && jsx(LinkButton, { href: fromLink })] }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightDownCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsxs("span", { className: "tw-inline-flex tw-items-center tw-gap-0.5", children: [jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: toAmount }) }), toLink && jsx(LinkButton, { href: toLink })] }) }), jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: address, showCopyButton: true, formattedHash: address }) }) }), jsx(PropertyListItem, { variant: "large", showGradientBg: false, icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }), actions: actions, fees: fees }));
|
|
87522
87633
|
}
|
|
87523
87634
|
|
|
87524
87635
|
function TransactionView({ type, isLoading, data, }) {
|
|
@@ -87863,4 +87974,4 @@ function ThemeProvider(_a) {
|
|
|
87863
87974
|
return (jsx("div", Object.assign({ id: "squid-style-container" }, props, { style: Object.assign(Object.assign({}, props.style), parsedStyle), "data-squid-theme-type": themeType, className: cn("tw-group tw-relative tw-flex tw-font-squid-main tw-h-d-screen mobile-lg:tw-h-auto", "squid-style-container", props.className), children: children })));
|
|
87864
87975
|
}
|
|
87865
87976
|
|
|
87866
|
-
export { ANIMATION_DURATIONS, AccountListItem, AccountsButton, ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, ActionStatusRow, ActionWrapper, AddressButton, AddressHeader, AnimateNumber, AnimationCard, AnimationWrapper, Announcement, AppContainer, ApplePayIcon, Approve, ApproveAction, ArrowBottomTopIcon, ArrowButton, ArrowCornerDownRightIcon, ArrowDownIcon, ArrowExpandIcon, ArrowLeftIcon, ArrowOutOfBoxIcon, ArrowRightDownCircleIcon, ArrowRightDownIcon, ArrowRightIcon, ArrowRightUpCircleFilledIcon, ArrowRightUpCircleIcon, ArrowRightUpIcon, ArrowRotate, ArrowSplit, ArrowTriangle, ArrowUpIcon, ArrowWallDownIcon, ArrowsSwapIcon, AssetsButton, AtomIcon, BackpackIcon, BadgeImage, BankIcon, BellAlarmIcon, BlockSkeleton, BodyText, BoostBadge, BorderedContainer, Breadcrumb, BridgeAction, BrokenHeartIcon, BubblesIcon, Button$1 as Button, BuyNFTTransactionView, CSS_VARS, Calendar, CaptionText, Card, CatSquareIcon, CelebrateIcon, ChainLink, Checkmark1Icon, Checkmark2Icon, ChevronArrowIcon, ChevronDownSmallIcon, ChevronGrabberVerticalIcon, ChevronLargeDownIcon, ChevronLargeRightIcon, ChevronRightSmallIcon, ChevronTopIcon, ChevronTopSmallIcon, Chip, CircleCheckIcon, CircleMinusIcon, CirclePlusIcon, CircleX, CircleXFilledIcon, ClockOutlineIcon, ClockSolidIcon, CodeBracketsIcon, CodeSolidSquareIcon, CoinsAddIcon, CoinsIcon, CoinsOutlinedIcon, Collapse, CollapsibleMenu, CollectionIcon, ColorPaletteIcon, CommandIcon, CompassRoundOutlinedIcon, CompassRoundSolidIcon, ConsoleIcon, Copy2Icon, CopyOutlinedIcon, CreditCardIcon, CrossAnimatedIcon, CrossedOutSunSolidIcon, DashboardFast, DepositAddressView, DescriptionBlocks, DetailsToolbar, DiscordIcon, DockIconAnalytics, DockIconCheckout, DockIconHelp, DockIconProfile, DockIconScan, DockIconSwap, DockSwapIcon, DollarOutlinedIcon, DollarSolidIcon, DotGrid1x3HorizontalIcon, Drip, DropdownMenu, DropdownMenuItem, DropdownMenuTitle, EmojiMeh, EmojiSadIcon, EmptyHeartIcon, ErrorMessage, EthereumIcon, ExplosionIcon, EyeOpenIcon, FarcasterIcon, FavouriteFilterIcon, FeeButton, FeesAction, FeesLines, FeesTotal, FileDownloadIcon, FilledHeartIcon, FilterAscendingIcon, FilterButton, FilterIcon, FilterTimelineIcon, GasIcon, GhostCircleIcon, GhostIcon, GithubIcon, GooglePayIcon, HashLink, HeadingText, HeartSmallIcon, HelpIcon, HighestPriceRangeIcon, HistoryItem, HomeIcon, IconButton, IconLabel, Image$1 as Image, ImageGroup, ImageIcon, ImageSparkle, ImageStack, ImageState, IncompleteAction, InfinityIcon, InfoBox, Inline, Input, InteractionTransactionView, Join, LaptopIcon, LargeNumericInput, LimitIcon, LinkIcon, ListItem, ListItemActionsButton, Loader, LoadingProvider, LoadingSkeleton, LoadingText, MEDIA_QUERIES, MarketCapIcon, MaxIcon, Menu, MenuItem, MenuSwapIcon, MirrorIcon, Modal, ModalContent, ModalContentDivider, ModalTitle, MoneyBagIcon, MoonIcon, NavigationBar, NewsIcon, NewspaperIcon, NotAllowedIcon, NumericInput, PathSquareIcon, PauseIcon, PercentIcon, PhoneIcon, PieChartIcon, PipeSeparator, PluginIcon, PlusIcon, PoopIcon, PowerIcon, PriceChange, ProductCard, PropertiesLayout, PropertyListItem, PunkIcon, QrCode, QrCodeIcon, QrCodeModal, RangeInput, ReceiptBillIcon, ReceiveNFTAction, ReceiveTokensAction, RefreshIcon, ReorderIcon, RouteStep, STEP_ITEM_HEIGHT, SearchIcon, SectionTitle, SendTokensAction, SettingsButton, SettingsGearIcon, SettingsItem, SettingsSlider, SettingsSliderIcon, ShoppingBagIcon, SizeTransition, SmileFilledIcon, SmileIcon, SnapIcon, SortIcon, SparkleIcon, SparklesIcon, SquareArrowCenter, SquareArrowTopLeftIcon, SquareArrowTopRight2Icon, SquidLogo, StakeAction, StarLinesIcon, StartAction, StocksIcon, SuccessAction, SunIcon, SunOutlinedIcon, SunriseIcon, SunriseSmallIcon, SwapAction, SwapConfiguration, SwapErrorIcon, SwapIcon, SwapInputsIcon, SwapProgressView, SwapStepItem, SwapStepSeparator, SwapStepsCollapsed, SwapSuccessIcon, SwapTransactionView, SwapWarningIcon, Switch, Tab, Tabs, TagIcon, TagIconFilled, TelegramIcon, TextSkeleton, ThemePreference, ThemeProvider, ThumbsUp, Tick, TimeFliesIcon, Timeline, Timestamp, Toast, TokenDetailsView, TokenGroup, TokenGroups, TokenPair, Tooltip, TradingViewStepsIcon, TransactionAction, TransactionFilters, TransactionHeaderLayout, TransactionItem, TransactionItemSkeleton, TransactionNotFoundView, TransactionSearch, TransactionState, TransactionView, TransactionViewLayout, Transfer, TranslateIcon, TriangleExclamation, TxProgressViewHeader, UnsupportedPairNotice, UsdAmount, UserInputType, WalletFilledIcon, WalletIcon, WalletLink, WrapAction, XSocialIcon, adjustColorForContrast, baseTailwindConfig, blendColors, buttonRoundedClassMap, cn, darkTheme, getColorBrightness, getContrastColor, getHexColorFromOpacityPercentage, hexToRgb, isValidHexColor, lightTheme, linkActionTimelineProps, parseColor, parseSquidTheme, pxToRem, remToPx, rgbToHex, spacing$1 as spacing, statusTextClassMap, themeKeysToCssVariables, transactionErrorPauseAnimation, transactionFailureAnimation, transactionHalfSuccessAnimation, transactionPendingAnimation, transactionProcessingAnimation, transactionRejectedAnimation, transactionSuccessAnimation, useCollapsibleMenu, useDropdownMenu, useMediaQuery, useNumericInput, useOnResize, useRect, useTimer, useUserTheme, useVersion };
|
|
87977
|
+
export { ANIMATION_DURATIONS, AccountListItem, AccountsButton, ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, ActionStatusRow, ActionWrapper, AddressButton, AddressHeader, AnimateNumber, AnimationCard, AnimationWrapper, Announcement, AppContainer, ApplePayIcon, Approve, ApproveAction, ArrowBottomTopIcon, ArrowButton, ArrowCornerDownRightIcon, ArrowDownIcon, ArrowExpandIcon, ArrowLeftIcon, ArrowOutOfBoxIcon, ArrowRightDownCircleIcon, ArrowRightDownIcon, ArrowRightIcon, ArrowRightUpCircleFilledIcon, ArrowRightUpCircleIcon, ArrowRightUpIcon, ArrowRotate, ArrowSplit, ArrowTriangle, ArrowUpIcon, ArrowWallDownIcon, ArrowsSwapIcon, AssetsButton, AtomIcon, BackpackIcon, BadgeImage, BankIcon, BellAlarmIcon, BlockSkeleton, BodyText, BoostBadge, BorderedContainer, Breadcrumb, BridgeAction, BrokenHeartIcon, BubblesIcon, Button$1 as Button, BuyNFTTransactionView, CSS_VARS, Calendar, CaptionText, Card, CatSquareIcon, CelebrateIcon, ChainLink, Checkmark1Icon, Checkmark2Icon, ChevronArrowIcon, ChevronDownSmallIcon, ChevronGrabberVerticalIcon, ChevronLargeDownIcon, ChevronLargeRightIcon, ChevronRightSmallIcon, ChevronTopIcon, ChevronTopSmallIcon, Chip, CircleCheckIcon, CircleMinusIcon, CirclePlusIcon, CircleX, CircleXFilledIcon, ClockOutlineIcon, ClockSolidIcon, CodeBracketsIcon, CodeSolidSquareIcon, CoinsAddIcon, CoinsIcon, CoinsOutlinedIcon, Collapse, CollapsibleMenu, CollectionIcon, ColorPaletteIcon, CommandIcon, CompassRoundOutlinedIcon, CompassRoundSolidIcon, ConsoleIcon, Copy2Icon, CopyOutlinedIcon, CreditCardIcon, CrossAnimatedIcon, CrossedOutSunSolidIcon, DashboardFast, DepositAddressView, DescriptionBlocks, DetailsToolbar, DiscordIcon, DockIconAnalytics, DockIconCheckout, DockIconHelp, DockIconProfile, DockIconScan, DockIconSwap, DockSwapIcon, DollarOutlinedIcon, DollarSolidIcon, DotGrid1x3HorizontalIcon, Drip, DropdownMenu, DropdownMenuItem, DropdownMenuTitle, EmojiMeh, EmojiSadIcon, EmptyHeartIcon, ErrorMessage, EthereumIcon, ExplosionIcon, EyeOpenIcon, FarcasterIcon, FavouriteFilterIcon, FeeButton, FeesAction, FeesLines, FeesTotal, FileDownloadIcon, FilledHeartIcon, FilterAscendingIcon, FilterButton, FilterIcon, FilterTimelineIcon, GasIcon, GhostCircleIcon, GhostIcon, GithubIcon, GooglePayIcon, HashLink, HeadingText, HeartSmallIcon, HelpIcon, HighestPriceRangeIcon, HistoryItem, HomeIcon, IconButton, IconLabel, Image$1 as Image, ImageGroup, ImageIcon, ImageSparkle, ImageStack, ImageState, IncompleteAction, InfinityIcon, InfoBox, Inline, Input, InteractionTransactionView, Join, LaptopIcon, LargeNumericInput, LimitIcon, LinkIcon, ListItem, ListItemActionsButton, Loader, LoadingProvider, LoadingSkeleton, LoadingText, MEDIA_QUERIES, MarketCapIcon, MaxIcon, Menu, MenuItem, MenuSwapIcon, MirrorIcon, Modal, ModalContent, ModalContentDivider, ModalTitle, MoneyBagIcon, MoonIcon, NavigationBar, NewsIcon, NewspaperIcon, NotAllowedIcon, NumericInput, PathSquareIcon, PauseIcon, PercentIcon, PhoneIcon, PieChartIcon, PipeSeparator, PluginIcon, PlusIcon, PoopIcon, PowerIcon, PriceChange, ProductCard, PropertiesLayout, PropertyListItem, PunkIcon, QrCode, QrCodeIcon, QrCodeModal, RangeInput, ReceiptBillIcon, ReceiveNFTAction, ReceiveTokensAction, RefreshIcon, ReorderIcon, RouteStep, STEP_ITEM_HEIGHT, SearchIcon, SectionTitle, SendTokensAction, SettingsButton, SettingsGearIcon, SettingsItem, SettingsSlider, SettingsSliderIcon, ShoppingBagIcon, SizeTransition, SmileFilledIcon, SmileIcon, SnapIcon, SortIcon, SparkleIcon, SparklesIcon, SquareArrowCenter, SquareArrowTopLeftIcon, SquareArrowTopRight2Icon, SquareArrowTopRightIcon, SquidLogo, StakeAction, StarLinesIcon, StartAction, StocksIcon, SuccessAction, SunIcon, SunOutlinedIcon, SunriseIcon, SunriseSmallIcon, SwapAction, SwapConfiguration, SwapErrorIcon, SwapIcon, SwapInputsIcon, SwapProgressView, SwapStepItem, SwapStepSeparator, SwapStepsCollapsed, SwapSuccessIcon, SwapTransactionView, SwapWarningIcon, Switch, Tab, Tabs, TagIcon, TagIconFilled, TelegramIcon, TextSkeleton, ThemePreference, ThemeProvider, ThumbsUp, Tick, TimeFliesIcon, Timeline, Timestamp, Toast, TokenDetailsView, TokenGroup, TokenGroups, TokenOnlyButton, TokenPair, Tooltip, TradingViewStepsIcon, TransactionAction, TransactionFilters, TransactionHeaderLayout, TransactionItem, TransactionItemSkeleton, TransactionNotFoundView, TransactionSearch, TransactionState, TransactionView, TransactionViewLayout, Transfer, TranslateIcon, TriangleExclamation, TxProgressViewHeader, UnsupportedPairNotice, UsdAmount, UserInputType, WalletFilledIcon, WalletIcon, WalletLink, WrapAction, XSocialIcon, adjustColorForContrast, baseTailwindConfig, blendColors, buttonRoundedClassMap, cn, darkTheme, getColorBrightness, getContrastColor, getHexColorFromOpacityPercentage, hexToRgb, isValidHexColor, lightTheme, linkActionTimelineProps, parseColor, parseSquidTheme, pxToRem, remToPx, rgbToHex, spacing$1 as spacing, statusTextClassMap, themeKeysToCssVariables, transactionErrorPauseAnimation, transactionFailureAnimation, transactionHalfSuccessAnimation, transactionPendingAnimation, transactionProcessingAnimation, transactionRejectedAnimation, transactionSuccessAnimation, useCollapsibleMenu, useDropdownMenu, useMediaQuery, useNumericInput, useOnResize, useRect, useTimer, useUserTheme, useVersion };
|
|
@@ -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 {};
|