@0xsquid/ui 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/cjs/index.js +106 -45
  2. package/dist/cjs/types/components/buttons/CopyButton.d.ts +7 -0
  3. package/dist/cjs/types/components/buttons/LinkButton.d.ts +5 -0
  4. package/dist/cjs/types/components/icons/Arrow.d.ts +5 -0
  5. package/dist/cjs/types/components/icons/Timeline.d.ts +1 -1
  6. package/dist/cjs/types/components/layout/AnimationWrapper.d.ts +1 -1
  7. package/dist/cjs/types/components/layout/HashLink.d.ts +2 -2
  8. package/dist/cjs/types/components/layout/PipeSeparator.d.ts +6 -2
  9. package/dist/cjs/types/components/lists/TransactionAction/FeesAction.d.ts +2 -1
  10. package/dist/cjs/types/components/lists/TransactionAction/SuccessAction.d.ts +1 -1
  11. package/dist/cjs/types/components/lists/TransactionAction/TransactionAction.d.ts +1 -1
  12. package/dist/cjs/types/components/views/SwapProgressView.d.ts +2 -1
  13. package/dist/cjs/types/components/views/TransactionView/BridgeTransactionView.d.ts +12 -4
  14. package/dist/cjs/types/components/views/TransactionView/SwapTransactionView.d.ts +4 -2
  15. package/dist/cjs/types/components/views/TransactionView/TransactionView.d.ts +2 -2
  16. package/dist/cjs/types/stories/views/SwapProgressView.stories.d.ts +1 -0
  17. package/dist/cjs/types/stories/views/TransactionView.stories.d.ts +12 -6
  18. package/dist/esm/index.js +106 -46
  19. package/dist/esm/types/components/buttons/CopyButton.d.ts +7 -0
  20. package/dist/esm/types/components/buttons/LinkButton.d.ts +5 -0
  21. package/dist/esm/types/components/icons/Arrow.d.ts +5 -0
  22. package/dist/esm/types/components/icons/Timeline.d.ts +1 -1
  23. package/dist/esm/types/components/layout/AnimationWrapper.d.ts +1 -1
  24. package/dist/esm/types/components/layout/HashLink.d.ts +2 -2
  25. package/dist/esm/types/components/layout/PipeSeparator.d.ts +6 -2
  26. package/dist/esm/types/components/lists/TransactionAction/FeesAction.d.ts +2 -1
  27. package/dist/esm/types/components/lists/TransactionAction/SuccessAction.d.ts +1 -1
  28. package/dist/esm/types/components/lists/TransactionAction/TransactionAction.d.ts +1 -1
  29. package/dist/esm/types/components/views/SwapProgressView.d.ts +2 -1
  30. package/dist/esm/types/components/views/TransactionView/BridgeTransactionView.d.ts +12 -4
  31. package/dist/esm/types/components/views/TransactionView/SwapTransactionView.d.ts +4 -2
  32. package/dist/esm/types/components/views/TransactionView/TransactionView.d.ts +2 -2
  33. package/dist/esm/types/stories/views/SwapProgressView.stories.d.ts +1 -0
  34. package/dist/esm/types/stories/views/TransactionView.stories.d.ts +12 -6
  35. package/dist/index.css +1 -1
  36. package/dist/index.d.ts +37 -17
  37. 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$1 = {
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$1[size], propsClassName, roundedClassMap[rounded], shadow && boxShadowClassMap[size], borderClassMap[border]);
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: () => {
@@ -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
  }
@@ -4613,10 +4616,21 @@ function UsdAmount({ usdAmount }) {
4613
4616
  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
4617
  }
4615
4618
 
4616
- function HashLink({ showTx = false, hash, showCopyButton = false, url, children, className, formattedHash, copyIconSize = "16", }) {
4617
- return (jsxRuntime.jsxs("div", { className: cn("tw-flex tw-items-center", className), children: [showTx && jsxRuntime.jsx("span", { className: "tw-mr-squid-xs tw-text-grey-700", children: "TX" }), children !== null && children !== void 0 ? children : formattedHash, url && (jsxRuntime.jsx("a", { href: url, target: "_blank", className: "tw-rounded-squid-s tw-px-squid-xxs hover:tw-bg-material-light-thin", rel: "noreferrer", children: jsxRuntime.jsx(SquareArrowTopRight2Icon, { strokeWidth: "1.5", className: "tw-h-[1.2em] tw-w-[1.2em] tw-text-royal-500" }) })), showCopyButton && (jsxRuntime.jsx("span", { onClick: () => {
4618
- navigator.clipboard.writeText(hash).catch(() => { });
4619
- }, className: "tw-cursor-pointer tw-rounded-squid-s tw-px-squid-xxs hover:tw-bg-material-light-thin", children: jsxRuntime.jsx(CopyOutlinedIcon, { size: copyIconSize, strokeWidth: "2.5", className: "tw-text-royal-500" }) }))] }));
4619
+ const CopyButton = (_a) => {
4620
+ var { copyText, className, size } = _a, props = __rest$1(_a, ["copyText", "className", "size"]);
4621
+ const [copied, setCopied] = require$$0.useState(false);
4622
+ const handleCopy = () => {
4623
+ navigator.clipboard.writeText(copyText).catch(() => { });
4624
+ setCopied(true);
4625
+ setTimeout(() => {
4626
+ setCopied(false);
4627
+ }, 1500);
4628
+ };
4629
+ 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" }) })] })));
4630
+ };
4631
+
4632
+ function HashLink({ showTx = false, hash, showCopyButton = false, url, children, className, formattedHash, size, }) {
4633
+ 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
4634
  }
4621
4635
 
4622
4636
  function WalletLink({ imageURI, address }) {
@@ -38233,8 +38247,14 @@ function NavigationBar(_a) {
38233
38247
  : "tw-flex"), children: jsxRuntime.jsx(HeadingText, { size: "small", children: title }) })) : null] })));
38234
38248
  }
38235
38249
 
38236
- function PipeSeparator(props) {
38237
- return (jsxRuntime.jsx("div", Object.assign({}, props, { className: cn("tw-h-[0.8em] tw-w-[2px] tw-rounded-full tw-bg-[currentColor]", props.className) })));
38250
+ const sizeClassMap = {
38251
+ default: "tw-h-[0.8em]",
38252
+ small: "tw-h-2.5",
38253
+ large: "tw-h-5",
38254
+ };
38255
+ function PipeSeparator(_a) {
38256
+ var { className, size = "default" } = _a, props = __rest$1(_a, ["className", "size"]);
38257
+ return (jsxRuntime.jsx("div", Object.assign({}, props, { className: cn("tw-w-[2px] tw-rounded-full tw-bg-[currentColor]", sizeClassMap[size], className) })));
38238
38258
  }
38239
38259
 
38240
38260
  function ProductCard({ children }) {
@@ -39007,7 +39027,7 @@ function PropertyListItem(_a) {
39007
39027
  const Text = variant === "small" ? CaptionText : SmallBodyText;
39008
39028
  const isCollapsible = !!collapsibleContent;
39009
39029
  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-bg-gradient-to-r tw-from-grey-800", 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 }))] }) })));
39030
+ 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
39031
  }
39012
39032
 
39013
39033
  function RouteStep({ imageUrl, descriptionBlocks, subtitle, showStepSeparator = false, }) {
@@ -39192,10 +39212,10 @@ function TokenGroups({ groups, className, onGroupChildClick, variant = "large",
39192
39212
  }
39193
39213
 
39194
39214
  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-opacity tw-duration-200", !showBody && "tw-opacity-0", title && "tw-pt-squid-xxs"), children: children })] })] }));
39215
+ 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
39216
  }
39197
39217
  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 })] }));
39218
+ 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
39219
  }
39200
39220
  function renderStatusIcon(status, defaultIcon) {
39201
39221
  switch (status) {
@@ -39214,7 +39234,7 @@ function renderStatusIcon(status, defaultIcon) {
39214
39234
  }
39215
39235
  }
39216
39236
  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(BodyText, { size: "small", tight: true, className: "tw-block tw-w-full tw-text-grey-300", children: children }) })] }));
39237
+ 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
39238
  function ActionRow(_a) {
39219
39239
  var { className } = _a, props = __rest$1(_a, ["className"]);
39220
39240
  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 +39258,13 @@ function FeesAction({ status, nextStatus, showTimeline = false, total, lines, })
39238
39258
  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
39259
  }
39240
39260
  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, {})] }) })] }));
39261
+ 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
39262
  }
39243
- function FeesLines({ status, lines, showTimeline = false, }) {
39244
- return (jsxRuntime.jsxs(ActionWrapper, { status: status, children: [lines && (jsxRuntime.jsx("div", { children: lines.map((line, index) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [index > 0 && (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.jsxs(ActionRow, { children: [jsxRuntime.jsxs(Timeline, { className: statusTextClassMap[status], children: [jsxRuntime.jsx(Timeline.Straight, {}), jsxRuntime.jsx(Timeline.ArrowRight, {})] }), jsxRuntime.jsx("div", { className: "tw-relative tw-top-[2px] tw-flex tw-items-end", children: jsxRuntime.jsx(FeesRow, Object.assign({}, line)) })] })] }, index))) })), jsxRuntime.jsx(ActionRow, { children: jsxRuntime.jsxs(Timeline, { className: cn("tw-h-squid-xs", showTimeline
39245
- ? statusTextClassMap[status]
39246
- : "!tw-text-[transparent]"), children: [jsxRuntime.jsx(Timeline.CapTop, {}), jsxRuntime.jsx(Timeline.Straight, {})] }) })] }));
39263
+ function FeesLines({ status, lines }) {
39264
+ 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
39265
  }
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 tw-text-grey-300", !collapsed && "tw-w-[100px]"), children: label }) }), jsxRuntime.jsx("div", { className: "tw-flex tw-items-center", children: jsxRuntime.jsx(PipeSeparator, { 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] })] }));
39266
+ function FeesRow({ label, usd, amount, symbol, collapsed = false, className, }) {
39267
+ 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
39268
  }
39251
39269
 
39252
39270
  function IncompleteAction({ status, nextStatus, message, buttons, }) {
@@ -39298,7 +39316,7 @@ function StartAction({ status, nextStatus, showTimeline = false, showBody = fals
39298
39316
  function SuccessAction({ nextStatus, status, description = status === "error"
39299
39317
  ? "Transaction failed"
39300
39318
  : "Transaction successful", showTimeline, showBody, timestamp, hash, url, }) {
39301
- return (jsxRuntime.jsx(ActionLayout, { description: description, status: status, nextStatus: nextStatus, showTimeline: showTimeline, showBody: showBody, children: (timestamp || hash) && (jsxRuntime.jsx(ActionProperties, { timestamp: timestamp, hash: hash, url: url })) }));
39319
+ 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
39320
  }
39303
39321
 
39304
39322
  function SwapAction({ status, nextStatus, showTimeline, showBody, fromToken, toToken, provider, timestamp, hash, url, }) {
@@ -87250,27 +87268,39 @@ const swapProgressAnimations = {
87250
87268
  [SwapState.CONFIRMATION_REJECTED]: transactionRejectedAnimation,
87251
87269
  [SwapState.NEEDS_GAS]: transactionErrorPauseAnimation,
87252
87270
  };
87253
- const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction, }) => {
87271
+ const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction, isBridgeTransaction, }) => {
87254
87272
  switch (swapState) {
87255
87273
  case SwapState.CONFIRM:
87256
87274
  if (isSendTransaction) {
87257
87275
  return "Confirm transaction";
87258
87276
  }
87277
+ if (isBridgeTransaction) {
87278
+ return "Confirm bridge";
87279
+ }
87259
87280
  return "Confirm swap";
87260
87281
  case SwapState.PROGRESS:
87261
87282
  if (isSendTransaction) {
87262
87283
  return `Send ${fromToken.symbol}`;
87263
87284
  }
87285
+ if (isBridgeTransaction) {
87286
+ return `Bridge ${fromToken.symbol}`;
87287
+ }
87264
87288
  return `Swap ${fromToken.symbol} to ${toToken.symbol}`;
87265
87289
  case SwapState.COMPLETED:
87266
87290
  if (isSendTransaction) {
87267
87291
  return "Tokens received";
87268
87292
  }
87293
+ if (isBridgeTransaction) {
87294
+ return "Bridge complete";
87295
+ }
87269
87296
  return "Swap complete";
87270
87297
  case SwapState.ERROR:
87271
87298
  if (isSendTransaction) {
87272
87299
  return "Transaction failed";
87273
87300
  }
87301
+ if (isBridgeTransaction) {
87302
+ return "Bridge failed";
87303
+ }
87274
87304
  return "Swap failed";
87275
87305
  case SwapState.CONFIRMATION_TOO_LONG:
87276
87306
  return "Confirmation taking too long";
@@ -87278,14 +87308,23 @@ const getSwapProgressTitle = ({ fromToken, toToken, swapState, isSendTransaction
87278
87308
  if (isSendTransaction) {
87279
87309
  return "Transaction rejected";
87280
87310
  }
87311
+ if (isBridgeTransaction) {
87312
+ return "Bridge rejected";
87313
+ }
87281
87314
  return "Swap rejected";
87282
87315
  case SwapState.PARTIAL_SUCCESS:
87316
+ if (isSendTransaction) {
87317
+ return "Transaction failed to complete";
87318
+ }
87319
+ if (isBridgeTransaction) {
87320
+ return "Bridge failed to complete";
87321
+ }
87283
87322
  return "Swap failed to complete";
87284
87323
  case SwapState.NEEDS_GAS:
87285
87324
  return "Needs gas on destination";
87286
87325
  }
87287
87326
  };
87288
- const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, toAddressFormatted, refundTokenSymbol, isSendTransaction, }) => {
87327
+ const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, toAddressFormatted, refundTokenSymbol, isSendTransaction, isBridgeTransaction, }) => {
87289
87328
  switch (swapState) {
87290
87329
  case SwapState.CONFIRM: {
87291
87330
  return "Authenticate the transaction in your wallet.";
@@ -87294,6 +87333,9 @@ const getSwapProgressDescriptions = ({ swapState, toAmount, toChain, toToken, to
87294
87333
  if (isSendTransaction) {
87295
87334
  return "Feel free to dismiss this dialog, we’ll notify you when the recipient receives your tokens.";
87296
87335
  }
87336
+ if (isBridgeTransaction) {
87337
+ return "Feel free to dismiss this dialog, we’ll notify you when the bridge is complete.";
87338
+ }
87297
87339
  return "Feel free to dismiss this dialog, we’ll notify you when the swap is complete.";
87298
87340
  }
87299
87341
  case SwapState.COMPLETED: {
@@ -87329,7 +87371,7 @@ const swapProgressButtonTexts = {
87329
87371
  [SwapState.PARTIAL_SUCCESS]: "Cancel",
87330
87372
  [SwapState.NEEDS_GAS]: "Go to Axelarscan",
87331
87373
  };
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, }) {
87374
+ 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
87375
  const [showSwapInfoSection, setShowSwapInfoSection] = require$$0.useState(true);
87334
87376
  const isFirstRenderRef = require$$0.useRef(true);
87335
87377
  const { timer, stopTimer, startTimer } = useTimer({
@@ -87353,6 +87395,7 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
87353
87395
  fromToken,
87354
87396
  toToken,
87355
87397
  isSendTransaction,
87398
+ isBridgeTransaction,
87356
87399
  });
87357
87400
  const headerDescription = getSwapProgressDescriptions({
87358
87401
  swapState,
@@ -87362,12 +87405,13 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
87362
87405
  toAddressFormatted,
87363
87406
  refundTokenSymbol,
87364
87407
  isSendTransaction,
87408
+ isBridgeTransaction,
87365
87409
  });
87366
87410
  return {
87367
87411
  headerTitle,
87368
87412
  headerDescription,
87369
87413
  };
87370
- }, [swapState, fromToken, toToken, toAmount, toChain]);
87414
+ }, [swapState, fromToken, toToken, toAmount, toChain, isBridgeTransaction]);
87371
87415
  const trackTransactionViewRef = require$$0.useRef(null);
87372
87416
  const handleCollapseRouteSteps = () => { var _a; return (_a = trackTransactionViewRef.current) === null || _a === void 0 ? void 0 : _a.handleToggleRouteSteps(); };
87373
87417
  return (jsxRuntime.jsxs(Modal, { isOpen: isOpen, onBackdropClick:
@@ -87387,13 +87431,18 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
87387
87431
  height: "100%",
87388
87432
  maxHeight: "100%",
87389
87433
  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: {
87434
+ }, 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
87435
  bgColor: fromToken.bgColor,
87392
87436
  logoURI: fromToken.logoUrl,
87393
87437
  }, secondToken: {
87394
87438
  bgColor: toToken.bgColor,
87395
87439
  logoURI: toToken.logoUrl,
87396
- } })) }), jsxRuntime.jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxRuntime.jsxs("ul", { className: "tw-squid-property-gradient-bg-odd-container 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 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 ? "Send" : "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 ? (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: () => {
87440
+ } })) }), 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
87441
+ ? "Send"
87442
+ : isBridgeTransaction
87443
+ ? "Bridge"
87444
+ : "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 ||
87445
+ 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
87446
  stopTimer();
87398
87447
  }, onTxStart: () => {
87399
87448
  startTimer();
@@ -87495,20 +87544,27 @@ function TransactionViewLayout(_a) {
87495
87544
  var { isLoading, header, properties, actions, fees } = _a, props = __rest$1(_a, ["isLoading", "header", "properties", "actions", "fees"]);
87496
87545
  const [actionsCollapsed, setActionsCollapsed] = require$$0.useState(true);
87497
87546
  const [feesCollapsed, setFeesCollapsed] = require$$0.useState(true);
87498
- return (jsxRuntime.jsx("div", Object.assign({ className: "tw-relative tw-divide-y tw-divide-material-light-thin" }, 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: {
87547
+ const items = require$$0.useMemo(() => {
87548
+ if (actions)
87549
+ return linkActionTimelineProps(actions, actionsCollapsed);
87550
+ return [];
87551
+ }, [actions, actionsCollapsed]);
87552
+ 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
87553
  backgroundSize: "200% 100%",
87500
- } }), jsxRuntime.jsx(TransactionHeaderLayout, { isLoading: true }), jsxRuntime.jsx(PropertiesSkeleton, {})] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [header, properties, " ", actions && (jsxRuntime.jsx(CollapsibleSection, { collapsed: actionsCollapsed, setCollapsed: setActionsCollapsed, children: linkActionTimelineProps(actions, actionsCollapsed).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.jsxs(CollapsibleSection, { collapsed: feesCollapsed, setCollapsed: setFeesCollapsed, children: [jsxRuntime.jsx(FeesTotal, Object.assign({ collapsed: feesCollapsed, showTimeline: true }, fees)), jsxRuntime.jsx(FeesLines, Object.assign({}, fees))] }))] })) })));
87501
- }
87502
- function CollapsibleSection({ children, collapsed, setCollapsed, collapsedHeight = 50, }) {
87503
- return (jsxRuntime.jsx("div", { className: cn("tw-group/Collapsible-section tw-relative tw-bg-grey-900", collapsed ? "tw-cursor-pointer" : ""), onClick: () => {
87504
- if (collapsed)
87505
- setCollapsed(false);
87506
- }, children: jsxRuntime.jsxs("div", { className: cn("tw-relative tw-border-material-light-thin tw-transition-[border-width] tw-duration-200", !collapsed && "tw-border-t-[4px]"), children: [jsxRuntime.jsx("div", { className: "cursor-pointer tw-absolute tw-right-0 tw-top-0 tw-z-10 tw-flex tw-h-full tw-cursor-pointer tw-items-center tw-pr-squid-m", style: { height: `${collapsedHeight}px` }, onClick: () => {
87507
- if (!collapsed)
87508
- setCollapsed(true);
87509
- }, children: jsxRuntime.jsx(ChevronLargeDownIcon, { className: cn("tw-origin-center tw-text-grey-300 tw-transition-transform tw-duration-200", collapsed && "-tw-rotate-90") }) }), jsxRuntime.jsx("div", {
87510
- // hover highlight
87511
- className: "tw-pointer-events-none tw-absolute tw-left-0 tw-top-0 tw-h-[50px] tw-w-full", children: jsxRuntime.jsx("div", { className: cn("tw-absolute tw-bottom-squid-xxs tw-left-squid-xs tw-right-squid-xs tw-top-squid-xxs tw-rounded-squid-xs tw-bg-material-light-thin tw-opacity-0 tw-transition-opacity tw-duration-200", collapsed && "group-hover/Collapsible-section:tw-opacity-100") }) }), jsxRuntime.jsx(Collapse, { collapsed: collapsed, collapsedHeight: collapsedHeight, children: children })] }) }));
87554
+ } }), 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)
87555
+ .slice(1, linkActionTimelineProps.length)
87556
+ .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)) }))] })) })));
87557
+ }
87558
+ function CollapsibleSection({ header, children, collapsed, setCollapsed, collapsedHeight = 0, }) {
87559
+ 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) => {
87560
+ const target = e.target;
87561
+ if (target.tagName === "BUTTON" ||
87562
+ target.tagName === "A" ||
87563
+ target.closest("button, a, input, select, textarea")) {
87564
+ return;
87565
+ }
87566
+ setCollapsed((prev) => !prev);
87567
+ }, 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
87568
  }
87513
87569
  function PropertiesSkeleton() {
87514
87570
  return (jsxRuntime.jsx(PropertiesLayout, { children: Array.from({ length: 5 }, (_, i) => (jsxRuntime.jsx(PropertyListItem, { variant: "large", isLoading: true, showGradientBg: false }, i))) }));
@@ -87529,16 +87585,20 @@ function InteractionTransactionView({ title = "Interaction", hash, status, url,
87529
87585
  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
87586
  }
87531
87587
 
87532
- function SwapTransactionView({ title = "Swap", hash, status, url, fromAmount, fromToken, toAmount, toToken, fromChain, toChain, fromAddress, toAddress, exchangeRate, boosted, timeToComplete, actions, fees, isLoading, }) {
87588
+ function LinkButton({ href }) {
87589
+ 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, {}) }));
87590
+ }
87591
+
87592
+ function SwapTransactionView({ title = "Swap", hash, toLink, fromLink, status, url, fromAmount, fromToken, toAmount, toToken, fromChain, toChain, fromAddress, toAddress, exchangeRate, boosted, timeToComplete, actions, fees, isLoading, }) {
87533
87593
  if (isLoading)
87534
87594
  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 }));
87595
+ 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
87596
  }
87537
87597
 
87538
- function BridgeTransactionView({ title = "Bridge", hash, status, url, amount, token, fromChain, toChain, address, actions, fees, boosted, timeToComplete, isLoading, }) {
87598
+ function BridgeTransactionView({ title = "Bridge", hash, fromLink, toLink, status, url, fromAmount, toAmount, fromToken, toToken, fromChain, toChain, address, actions, fees, boosted, timeToComplete, isLoading, }) {
87539
87599
  if (isLoading)
87540
87600
  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) }), " "] }) }), properties: jsxRuntime.jsxs(PropertiesLayout, { children: [jsxRuntime.jsx(PropertyListItem, { variant: "large", icon: jsxRuntime.jsx(SquareArrowTopLeftIcon, { size: "20" }), label: jsxRuntime.jsxs(BodyText, { size: "small", children: ["Bridge ", token.symbol] }), detail: jsxRuntime.jsx(IconLabel, { src: token.logoURI, rounded: "full", children: jsxRuntime.jsx(BodyText, { size: "small", children: amount }) }) }), 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 }));
87601
+ 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
87602
  }
87543
87603
 
87544
87604
  function TransactionView({ type, isLoading, data, }) {
@@ -88117,6 +88177,7 @@ exports.SparklesIcon = SparklesIcon;
88117
88177
  exports.SquareArrowCenter = SquareArrowCenter;
88118
88178
  exports.SquareArrowTopLeftIcon = SquareArrowTopLeftIcon;
88119
88179
  exports.SquareArrowTopRight2Icon = SquareArrowTopRight2Icon;
88180
+ exports.SquareArrowTopRightIcon = SquareArrowTopRightIcon;
88120
88181
  exports.SquidLogo = SquidLogo;
88121
88182
  exports.StakeAction = StakeAction;
88122
88183
  exports.StarLinesIcon = StarLinesIcon;
@@ -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 {};
@@ -0,0 +1,5 @@
1
+ interface Props {
2
+ href: string;
3
+ }
4
+ export default function LinkButton({ href }: Props): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -49,6 +49,11 @@ export declare function ChevronGrabberVerticalIcon({ size, className, }: {
49
49
  size?: string;
50
50
  className?: string;
51
51
  }): import("react/jsx-runtime").JSX.Element;
52
+ export declare function SquareArrowTopRightIcon({ className, size, strokeWidth, }: {
53
+ className?: string;
54
+ size?: string;
55
+ strokeWidth?: string;
56
+ }): import("react/jsx-runtime").JSX.Element;
52
57
  export declare function SquareArrowTopRight2Icon({ className, size, strokeWidth, }: {
53
58
  className?: string;
54
59
  size?: string;
@@ -1,4 +1,4 @@
1
- import { ComponentProps } from "react";
1
+ import { type ComponentProps } from "react";
2
2
  export declare function Timeline({ className, ...props }: ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
3
  export declare namespace Timeline {
4
4
  var ArrowDown: (props: import("react").SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { type LottieComponentProps } from "lottie-react";
3
- interface Props extends Omit<LottieComponentProps, "src"> {
3
+ interface Props extends Omit<LottieComponentProps, "src" | "animationData"> {
4
4
  style?: React.CSSProperties;
5
5
  autoplay?: boolean;
6
6
  loop?: boolean;
@@ -7,7 +7,7 @@ interface HashLinkProps {
7
7
  url?: string;
8
8
  className?: string;
9
9
  formattedHash?: string;
10
- copyIconSize?: string;
10
+ size?: "default" | "small";
11
11
  }
12
- export declare function HashLink({ showTx, hash, showCopyButton, url, children, className, formattedHash, copyIconSize, }: HashLinkProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function HashLink({ showTx, hash, showCopyButton, url, children, className, formattedHash, size, }: HashLinkProps): import("react/jsx-runtime").JSX.Element;
13
13
  export {};
@@ -1,2 +1,6 @@
1
- import { ComponentProps } from "react";
2
- export declare function PipeSeparator(props: ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
1
+ import { type ComponentProps } from "react";
2
+ interface Props extends ComponentProps<"div"> {
3
+ size?: "default" | "small" | "large";
4
+ }
5
+ export declare function PipeSeparator({ className, size, ...props }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -18,12 +18,13 @@ interface FeesLinesProps {
18
18
  lines?: FeesRowProps[];
19
19
  showTimeline?: boolean;
20
20
  }
21
- export declare function FeesLines({ status, lines, showTimeline, }: FeesLinesProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function FeesLines({ status, lines }: FeesLinesProps): import("react/jsx-runtime").JSX.Element;
22
22
  interface FeesRowProps {
23
23
  label: string;
24
24
  amount: number | string;
25
25
  symbol: string;
26
26
  usd: number | string;
27
27
  collapsed?: boolean;
28
+ className?: string;
28
29
  }
29
30
  export {};
@@ -1,4 +1,4 @@
1
- import { BaseActionProps } from "./BaseActionProps";
1
+ import { type BaseActionProps } from "./BaseActionProps";
2
2
  interface SuccessActionProps extends BaseActionProps {
3
3
  description?: string;
4
4
  timestamp?: number;
@@ -1,4 +1,4 @@
1
- import { ComponentProps } from "react";
1
+ import { type ComponentProps } from "react";
2
2
  import { ApproveAction } from "./ApproveAction";
3
3
  import { BridgeAction } from "./BridgeAction";
4
4
  import { FeesAction } from "./FeesAction";
@@ -10,7 +10,7 @@ interface Token {
10
10
  logoUrl: string;
11
11
  bgColor: string;
12
12
  }
13
- export declare function SwapProgressView({ steps, isOpen, handleClose, handleComplete, supportLink, fromAmount, fromChain, fromToken, toAmount, toChain, toToken, fromAddressFormatted, toAddressFormatted, swapState, estimatedTimeToComplete, footerButton, refundTokenSymbol, addGasLink, shareSwapDropdownContent, isSendTransaction, }: {
13
+ export declare function SwapProgressView({ steps, isOpen, handleClose, handleComplete, supportLink, fromAmount, fromChain, fromToken, toAmount, toChain, toToken, fromAddressFormatted, toAddressFormatted, swapState, estimatedTimeToComplete, footerButton, refundTokenSymbol, addGasLink, shareSwapDropdownContent, isSendTransaction, isBridgeTransaction, }: {
14
14
  steps: SwapStep[];
15
15
  handleClose?: (swapState: SwapState) => void;
16
16
  handleComplete?: () => void;
@@ -31,5 +31,6 @@ export declare function SwapProgressView({ steps, isOpen, handleClose, handleCom
31
31
  refundTokenSymbol?: string;
32
32
  addGasLink?: string;
33
33
  isSendTransaction?: boolean;
34
+ isBridgeTransaction?: boolean;
34
35
  }): import("react/jsx-runtime").JSX.Element;
35
36
  export {};
@@ -1,7 +1,11 @@
1
1
  import { type BaseTransactionViewProps } from "./BaseTransactionViewProps";
2
2
  interface BaseBridgeTransactionViewProps extends BaseTransactionViewProps {
3
- amount: string;
4
- token: {
3
+ fromToken: {
4
+ logoURI: string;
5
+ bgColor: string;
6
+ symbol: string;
7
+ };
8
+ toToken: {
5
9
  logoURI: string;
6
10
  bgColor: string;
7
11
  symbol: string;
@@ -19,11 +23,15 @@ interface BaseBridgeTransactionViewProps extends BaseTransactionViewProps {
19
23
  address: string;
20
24
  boosted?: boolean;
21
25
  timeToComplete: string;
26
+ fromLink?: string;
27
+ toLink?: string;
28
+ fromAmount: string;
29
+ toAmount: string;
22
30
  }
23
31
  type BridgeTransactionViewProps = (BaseBridgeTransactionViewProps & {
24
32
  isLoading?: false;
25
- }) | (Partial<BaseBridgeTransactionViewProps> & BaseTransactionViewProps & {
33
+ }) | (Partial<Omit<BaseBridgeTransactionViewProps, keyof BaseTransactionViewProps>> & BaseTransactionViewProps & {
26
34
  isLoading: true;
27
35
  });
28
- export declare function BridgeTransactionView({ title, hash, status, url, amount, token, fromChain, toChain, address, actions, fees, boosted, timeToComplete, isLoading, }: BridgeTransactionViewProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function BridgeTransactionView({ title, hash, fromLink, toLink, status, url, fromAmount, toAmount, fromToken, toToken, fromChain, toChain, address, actions, fees, boosted, timeToComplete, isLoading, }: BridgeTransactionViewProps): import("react/jsx-runtime").JSX.Element;
29
37
  export {};
@@ -20,16 +20,18 @@ interface BaseSwapTransactionViewProps extends BaseTransactionViewProps {
20
20
  logoURI: string;
21
21
  name: string;
22
22
  };
23
+ fromLink?: string;
24
+ toLink?: string;
23
25
  fromAddress: string;
24
26
  toAddress: string;
25
27
  exchangeRate: string;
26
28
  boosted?: boolean;
27
29
  timeToComplete: string;
28
30
  }
29
- export type SwapTransactionViewProps = (BaseSwapTransactionViewProps & {
31
+ type SwapTransactionViewProps = (BaseSwapTransactionViewProps & {
30
32
  isLoading?: false;
31
33
  }) | (Partial<Omit<BaseSwapTransactionViewProps, keyof BaseTransactionViewProps>> & BaseTransactionViewProps & {
32
34
  isLoading: true;
33
35
  });
34
- export declare function SwapTransactionView({ title, hash, status, url, fromAmount, fromToken, toAmount, toToken, fromChain, toChain, fromAddress, toAddress, exchangeRate, boosted, timeToComplete, actions, fees, isLoading, }: SwapTransactionViewProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function SwapTransactionView({ title, hash, toLink, fromLink, status, url, fromAmount, fromToken, toAmount, toToken, fromChain, toChain, fromAddress, toAddress, exchangeRate, boosted, timeToComplete, actions, fees, isLoading, }: SwapTransactionViewProps): import("react/jsx-runtime").JSX.Element;
35
37
  export {};