@hyperbridge/ui 0.0.4 → 0.0.6
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/{chunk-O7MCYCGJ.mjs → chunk-DO43LZ75.mjs} +173 -125
- package/dist/icons/index.d.mts +5 -1
- package/dist/icons/index.mjs +5 -1
- package/dist/index.d.mts +135 -52
- package/dist/index.mjs +1865 -1384
- package/package.json +4 -3
- package/styles/base.css +3 -0
- package/styles/shadcn.css +4 -4
package/dist/index.mjs
CHANGED
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
__objRest,
|
|
30
30
|
__spreadProps,
|
|
31
31
|
__spreadValues
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-DO43LZ75.mjs";
|
|
33
33
|
|
|
34
34
|
// src/components/atoms/search-input.tsx
|
|
35
35
|
import { cva } from "class-variance-authority";
|
|
@@ -48,14 +48,6 @@ function shortenAccountAddress(address, length = 6) {
|
|
|
48
48
|
address.length - length
|
|
49
49
|
)}`;
|
|
50
50
|
}
|
|
51
|
-
var defaultPolkadotImage = {
|
|
52
|
-
name: "Polkadot",
|
|
53
|
-
src: "https://app.hyperbridge.network/networks/polkadot.png"
|
|
54
|
-
};
|
|
55
|
-
var defaultEvmImage = {
|
|
56
|
-
name: "Ethereum",
|
|
57
|
-
src: "https://app.hyperbridge.network/networks/ethereum.png"
|
|
58
|
-
};
|
|
59
51
|
|
|
60
52
|
// src/components/atoms/search-input.tsx
|
|
61
53
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -97,7 +89,7 @@ function SearchInput(_a) {
|
|
|
97
89
|
);
|
|
98
90
|
}
|
|
99
91
|
var searchInput = cva(
|
|
100
|
-
"
|
|
92
|
+
"pl-[1.875rem] text-white py-[0.5rem] flex-1 h-full !outline-none rounded-md ring-1 ring-transparent focus:text-brand-white-500 focus-visible:ring-brand-black-300 placeholder:text-brand-black-100 pr-[0.625rem]",
|
|
101
93
|
{
|
|
102
94
|
variants: {
|
|
103
95
|
size: {
|
|
@@ -126,7 +118,7 @@ import { Slot } from "@radix-ui/react-slot";
|
|
|
126
118
|
import { cva as cva2 } from "class-variance-authority";
|
|
127
119
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
128
120
|
var variant_ = {
|
|
129
|
-
|
|
121
|
+
display: "text-display font-bold",
|
|
130
122
|
h1: "text-h1 font-bold",
|
|
131
123
|
h2: "text-h2 font-medium",
|
|
132
124
|
h3: "text-h3 font-bold",
|
|
@@ -134,6 +126,7 @@ var variant_ = {
|
|
|
134
126
|
h5: "text-h5 font-bold",
|
|
135
127
|
h6: "text-h6 font-bold",
|
|
136
128
|
h7: "text-[1.25rem] font-medium",
|
|
129
|
+
title: "text-title",
|
|
137
130
|
body1: "text-body-2 font-medium",
|
|
138
131
|
body2: "text-body font-medium",
|
|
139
132
|
p: "text-base font-normal",
|
|
@@ -189,7 +182,7 @@ function BadgeIcon(props) {
|
|
|
189
182
|
{
|
|
190
183
|
"data-chain": "true",
|
|
191
184
|
"data-token": "BNC",
|
|
192
|
-
className: "relative rounded-full w-[var(--badge-size)] h-[var(--badge-size)]",
|
|
185
|
+
className: "relative rounded-full w-[var(--badge-size)] h-[var(--badge-size)] shrink-0",
|
|
193
186
|
style: {
|
|
194
187
|
fontSize: size,
|
|
195
188
|
"--badge-size": size
|
|
@@ -206,7 +199,7 @@ function BadgeIcon(props) {
|
|
|
206
199
|
draggable: false,
|
|
207
200
|
objectFit: "cover",
|
|
208
201
|
className: cn(
|
|
209
|
-
"absolute inset-0 aspect-square h-full w-full rounded-full bg-
|
|
202
|
+
"absolute inset-0 aspect-square h-full w-full rounded-full bg-transparent shrink-0",
|
|
210
203
|
className,
|
|
211
204
|
{
|
|
212
205
|
"border border-brand-black-600": outline
|
|
@@ -218,7 +211,7 @@ function BadgeIcon(props) {
|
|
|
218
211
|
"div",
|
|
219
212
|
{
|
|
220
213
|
className: cn(
|
|
221
|
-
"w-[0.4375em] h-[0.4375em] right-0 bottom-0 absolute bg-
|
|
214
|
+
"w-[0.4375em] h-[0.4375em] right-0 bottom-0 absolute bg-brand-black-300 rounded-[0.15625em] overflow-hidden outline outline-offset-[-1px] outline-neutral-900",
|
|
222
215
|
{
|
|
223
216
|
"outline-brand-black-600": outline
|
|
224
217
|
}
|
|
@@ -500,7 +493,7 @@ function TagButton(props) {
|
|
|
500
493
|
}
|
|
501
494
|
function SwapTokenButton(props) {
|
|
502
495
|
const _a = props, { token, network } = _a, _props = __objRest(_a, ["token", "network"]);
|
|
503
|
-
return /* @__PURE__ */ jsxs6(BaseButton, __spreadProps(__spreadValues({}, _props), { children: [
|
|
496
|
+
return /* @__PURE__ */ jsxs6(BaseButton, __spreadProps(__spreadValues({ className: "cursor-pointer" }, _props), { children: [
|
|
504
497
|
/* @__PURE__ */ jsx7("span", { className: "inline-flex text-[0.875rem]", children: /* @__PURE__ */ jsx7(
|
|
505
498
|
BadgeIcon,
|
|
506
499
|
{
|
|
@@ -596,6 +589,9 @@ function Input(_a) {
|
|
|
596
589
|
// src/lib/form-utils.ts
|
|
597
590
|
var createKeyDownHandler = () => {
|
|
598
591
|
return (e) => {
|
|
592
|
+
if (e.ctrlKey || e.metaKey || e.altKey) {
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
599
595
|
if (["e", "E", "+", "-"].includes(e.key) || /^[a-zA-Z]$/.test(e.key)) {
|
|
600
596
|
e.preventDefault();
|
|
601
597
|
}
|
|
@@ -603,57 +599,30 @@ var createKeyDownHandler = () => {
|
|
|
603
599
|
};
|
|
604
600
|
|
|
605
601
|
// src/components/form/swap-form.tsx
|
|
602
|
+
import { useState } from "react";
|
|
606
603
|
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
607
604
|
function SwapForm({
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
symbol: "DOT",
|
|
614
|
-
image: "https://app.hyperbridge.network/networks/polkadot.png",
|
|
615
|
-
network: {
|
|
616
|
-
name: "Polkadot",
|
|
617
|
-
image: "https://app.hyperbridge.network/networks/polkadot.png"
|
|
618
|
-
}
|
|
619
|
-
},
|
|
620
|
-
onSenderAmountChange,
|
|
621
|
-
onSenderTokenSelect,
|
|
622
|
-
receiverAddress,
|
|
623
|
-
receiverAmount = "0",
|
|
624
|
-
receiverUsdValue = "0",
|
|
625
|
-
receiverToken = {
|
|
626
|
-
symbol: "DOT",
|
|
627
|
-
image: "https://app.hyperbridge.network/networks/polkadot.png",
|
|
628
|
-
network: {
|
|
629
|
-
name: "Ethereum",
|
|
630
|
-
image: "https://app.hyperbridge.network/networks/ethereum.png"
|
|
631
|
-
}
|
|
605
|
+
sender,
|
|
606
|
+
receiver,
|
|
607
|
+
percentage = {
|
|
608
|
+
options: [25, 50, 100],
|
|
609
|
+
value: null
|
|
632
610
|
},
|
|
633
|
-
|
|
634
|
-
onReceiverAddressEdit,
|
|
635
|
-
percentagePresets = [25, 50, 100],
|
|
636
|
-
activePercentage = null,
|
|
637
|
-
onPercentageClick,
|
|
638
|
-
onPercentageReset,
|
|
611
|
+
onPercentageChange,
|
|
639
612
|
onInvert,
|
|
640
|
-
estimatedTime = "
|
|
613
|
+
estimatedTime = "",
|
|
641
614
|
isLoading = false,
|
|
642
615
|
className,
|
|
643
616
|
error = false
|
|
644
617
|
}) {
|
|
618
|
+
var _a;
|
|
645
619
|
const handleKeyDown = createKeyDownHandler();
|
|
646
|
-
const
|
|
647
|
-
const numericBalance = Number.parseFloat(senderBalance.replace(/[^\d.]/g, "")) || 0;
|
|
648
|
-
const amount = numericBalance * percentage / 100;
|
|
649
|
-
onSenderAmountChange == null ? void 0 : onSenderAmountChange(amount.toString());
|
|
650
|
-
onPercentageClick == null ? void 0 : onPercentageClick(percentage);
|
|
651
|
-
};
|
|
620
|
+
const [focusedSection, setFocusedSection] = useState("sender");
|
|
652
621
|
const handleInvert = () => {
|
|
653
622
|
onInvert == null ? void 0 : onInvert();
|
|
654
623
|
};
|
|
655
|
-
const formatPercentageLabel = (
|
|
656
|
-
return
|
|
624
|
+
const formatPercentageLabel = (percentage2) => {
|
|
625
|
+
return percentage2 === 100 ? "Max" : `${percentage2}%`;
|
|
657
626
|
};
|
|
658
627
|
return /* @__PURE__ */ jsxs7(
|
|
659
628
|
"div",
|
|
@@ -671,154 +640,199 @@ function SwapForm({
|
|
|
671
640
|
"relative h-1/2 -mx-[1.5px] rounded-[16px] p-[1.5px] transition-all duration-200",
|
|
672
641
|
error ? "bg-brand-danger-500 focus-within:bg-brand-danger-500/60 hover:bg-brand-danger-500/60" : "bridge-form-border"
|
|
673
642
|
),
|
|
674
|
-
children: /* @__PURE__ */ jsxs7(
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
" "
|
|
680
|
-
/* @__PURE__ */ jsx10("span", { className: "text-white max-w-[100px] truncate", children: isLoading ? /* @__PURE__ */ jsx10(
|
|
681
|
-
"div",
|
|
682
|
-
{
|
|
683
|
-
className: cn(
|
|
684
|
-
"w-8 h-3 bg-brand-black-200 animate-pulse rounded",
|
|
685
|
-
error && "text-danger-500"
|
|
686
|
-
)
|
|
687
|
-
}
|
|
688
|
-
) : senderBalance })
|
|
689
|
-
] }) })
|
|
690
|
-
] }),
|
|
691
|
-
/* @__PURE__ */ jsxs7("div", { className: "flex mt-3", children: [
|
|
692
|
-
/* @__PURE__ */ jsx10(
|
|
693
|
-
Input,
|
|
694
|
-
{
|
|
695
|
-
min: 0,
|
|
696
|
-
type: "number",
|
|
697
|
-
placeholder: "0",
|
|
698
|
-
value: senderAmount,
|
|
699
|
-
onChange: (event) => {
|
|
700
|
-
onSenderAmountChange == null ? void 0 : onSenderAmountChange(event.target.value, event);
|
|
701
|
-
onPercentageReset == null ? void 0 : onPercentageReset();
|
|
702
|
-
},
|
|
703
|
-
onKeyDown: handleKeyDown,
|
|
704
|
-
disabled: isLoading,
|
|
705
|
-
"data-testid": "sender-amount-input",
|
|
706
|
-
className: "border-none ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 text-[48px] leading-[1.2] h-[58px] p-0 text-white placeholder:text-brand-black-100 [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none disabled:opacity-50"
|
|
707
|
-
}
|
|
708
|
-
),
|
|
709
|
-
/* @__PURE__ */ jsx10("div", { className: "w-[170px] pl-3 py-[13px]", children: /* @__PURE__ */ jsx10(
|
|
710
|
-
SwapTokenButton,
|
|
711
|
-
{
|
|
712
|
-
network: senderToken.network,
|
|
713
|
-
token: { image: senderToken.image, symbol: senderToken.symbol },
|
|
714
|
-
onClick: onSenderTokenSelect,
|
|
715
|
-
disabled: isLoading
|
|
716
|
-
}
|
|
717
|
-
) })
|
|
718
|
-
] }),
|
|
719
|
-
/* @__PURE__ */ jsxs7("div", { className: "flex justify-between pt-1 pb-3", children: [
|
|
720
|
-
/* @__PURE__ */ jsxs7(
|
|
721
|
-
"div",
|
|
722
|
-
{
|
|
723
|
-
"data-testid": "sender-usd-value",
|
|
724
|
-
className: "flex items-center text-caption text-brand-black-100 font-medium min-h-6",
|
|
725
|
-
children: [
|
|
726
|
-
"$",
|
|
727
|
-
isLoading ? /* @__PURE__ */ jsx10("div", { className: "w-8 h-3 bg-brand-black-200 animate-pulse rounded ml-1" }) : senderUsdValue
|
|
728
|
-
]
|
|
729
|
-
}
|
|
643
|
+
children: /* @__PURE__ */ jsxs7(
|
|
644
|
+
"div",
|
|
645
|
+
{
|
|
646
|
+
className: cn(
|
|
647
|
+
"rounded-[14.5px] h-full p-3 relative transition-colors duration-200",
|
|
648
|
+
focusedSection === "sender" ? "bg-brand-black-500" : "bg-brand-black-550"
|
|
730
649
|
),
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
"
|
|
738
|
-
|
|
650
|
+
children: [
|
|
651
|
+
/* @__PURE__ */ jsxs7("div", { className: "w-full flex justify-between", children: [
|
|
652
|
+
/* @__PURE__ */ jsx10("div", { className: "w-1/2", children: /* @__PURE__ */ jsx10("p", { className: "text-caption text-brand-black-100 font-medium", children: "Send" }) }),
|
|
653
|
+
/* @__PURE__ */ jsx10("div", { className: "w-1/2", children: /* @__PURE__ */ jsxs7("div", { className: "text-caption text-brand-black-100 font-medium text-right flex items-center gap-1 justify-end", children: [
|
|
654
|
+
/* @__PURE__ */ jsx10("span", { className: "max-w-[100px] truncate", children: (_a = sender.address) != null ? _a : "Balance" }),
|
|
655
|
+
" ",
|
|
656
|
+
/* @__PURE__ */ jsx10("span", { className: "text-white max-w-[100px] truncate", children: isLoading ? /* @__PURE__ */ jsx10(
|
|
657
|
+
"div",
|
|
658
|
+
{
|
|
659
|
+
className: cn(
|
|
660
|
+
"w-8 h-3 bg-brand-black-200 animate-pulse rounded",
|
|
661
|
+
error && "text-danger-500"
|
|
662
|
+
)
|
|
663
|
+
}
|
|
664
|
+
) : sender.balance })
|
|
665
|
+
] }) })
|
|
666
|
+
] }),
|
|
667
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex mt-3", children: [
|
|
668
|
+
/* @__PURE__ */ jsx10(
|
|
669
|
+
Input,
|
|
670
|
+
{
|
|
671
|
+
min: 0,
|
|
672
|
+
type: "number",
|
|
673
|
+
placeholder: "0",
|
|
674
|
+
value: sender.amount,
|
|
675
|
+
onChange: (event) => {
|
|
676
|
+
var _a2;
|
|
677
|
+
(_a2 = sender.onAmountChange) == null ? void 0 : _a2.call(sender, event.target.value, event);
|
|
678
|
+
onPercentageChange == null ? void 0 : onPercentageChange(null);
|
|
679
|
+
},
|
|
680
|
+
onKeyDown: handleKeyDown,
|
|
681
|
+
onFocus: () => setFocusedSection("sender"),
|
|
682
|
+
onBlur: () => setFocusedSection(null),
|
|
683
|
+
disabled: isLoading,
|
|
684
|
+
"data-testid": "sender-amount-input",
|
|
685
|
+
className: "border-none ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 text-[48px] leading-[1.2] h-[58px] p-0 text-white placeholder:text-brand-black-100 [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none disabled:opacity-50 !rounded-none"
|
|
686
|
+
}
|
|
739
687
|
),
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
"
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
688
|
+
/* @__PURE__ */ jsx10("div", { className: "w-[170px] pl-3 py-[13px]", children: /* @__PURE__ */ jsx10(
|
|
689
|
+
SwapTokenButton,
|
|
690
|
+
{
|
|
691
|
+
network: sender.token.network,
|
|
692
|
+
token: {
|
|
693
|
+
image: sender.token.image,
|
|
694
|
+
symbol: sender.token.symbol
|
|
695
|
+
},
|
|
696
|
+
onClick: sender.onTokenSelect,
|
|
697
|
+
disabled: isLoading
|
|
698
|
+
}
|
|
699
|
+
) })
|
|
700
|
+
] }),
|
|
701
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex justify-between pt-1 pb-3", children: [
|
|
702
|
+
/* @__PURE__ */ jsx10(
|
|
703
|
+
"div",
|
|
704
|
+
{
|
|
705
|
+
"data-testid": "sender-usd-value",
|
|
706
|
+
className: "flex items-center text-caption text-brand-black-100 font-medium min-h-6",
|
|
707
|
+
children: isLoading ? /* @__PURE__ */ jsx10("div", { className: "w-8 h-3 bg-brand-black-200 animate-pulse rounded ml-1" }) : sender.usdValue
|
|
708
|
+
}
|
|
709
|
+
),
|
|
710
|
+
sender.address && /* @__PURE__ */ jsx10("div", { className: "flex gap-[6px]", children: percentage.options.map((percent_value) => /* @__PURE__ */ jsx10(
|
|
711
|
+
Button,
|
|
712
|
+
{
|
|
713
|
+
onClick: () => onPercentageChange == null ? void 0 : onPercentageChange(percent_value),
|
|
714
|
+
disabled: isLoading,
|
|
715
|
+
className: cn(
|
|
716
|
+
"rounded-[60px] h-6 py-1 px-[9.5px] text-caption transition-colors",
|
|
717
|
+
percentage.value === percent_value ? "bg-white text-brand-black-500 hover:bg-white/90" : "text-brand-black-100 hover:text-white hover:bg-brand-black-200"
|
|
718
|
+
),
|
|
719
|
+
variant: "message",
|
|
720
|
+
size: "sm",
|
|
721
|
+
children: formatPercentageLabel(percent_value)
|
|
722
|
+
},
|
|
723
|
+
percent_value
|
|
724
|
+
)) })
|
|
725
|
+
] }),
|
|
726
|
+
/* @__PURE__ */ jsx10(
|
|
727
|
+
"button",
|
|
757
728
|
{
|
|
758
|
-
|
|
729
|
+
type: "button",
|
|
730
|
+
onClick: handleInvert,
|
|
731
|
+
disabled: isLoading,
|
|
732
|
+
"aria-label": "ArrowDownUp",
|
|
733
|
+
className: "absolute group z-[2] -bottom-[15px] left-1/2 -translate-x-1/2 bg-brand-black-200 rounded-[8px] p-[6px] border-[3px] border-brand-black-500 cursor-pointer hover:scale-105 transition-all duration-200 disabled:cursor-not-allowed disabled:hover:scale-100",
|
|
734
|
+
children: /* @__PURE__ */ jsx10(
|
|
735
|
+
ArrowBottomTop_default,
|
|
736
|
+
{
|
|
737
|
+
className: "text-brand-black-100 size-3.5 transition-transform duration-200"
|
|
738
|
+
}
|
|
739
|
+
)
|
|
759
740
|
}
|
|
760
741
|
)
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
742
|
+
]
|
|
743
|
+
}
|
|
744
|
+
)
|
|
764
745
|
}
|
|
765
746
|
),
|
|
766
|
-
/* @__PURE__ */
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
" ",
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
type: "button",
|
|
776
|
-
onClick: onReceiverAddressEdit,
|
|
777
|
-
disabled: isLoading,
|
|
778
|
-
"aria-label": "Edit receiver's address",
|
|
779
|
-
className: "cursor-pointer hover:scale-110 transition-transform disabled:opacity-50 ml-1",
|
|
780
|
-
children: /* @__PURE__ */ jsx10(Pen_default, { className: "size-3.5" })
|
|
781
|
-
}
|
|
782
|
-
)
|
|
783
|
-
] }) })
|
|
784
|
-
] }),
|
|
785
|
-
/* @__PURE__ */ jsxs7("div", { className: "flex mt-3", children: [
|
|
786
|
-
/* @__PURE__ */ jsx10("div", { className: "w-full text-[48px] leading-[1.2] h-[58px] flex items-center", children: isLoading ? /* @__PURE__ */ jsx10("div", { className: "w-16 h-12 bg-brand-black-200 animate-pulse rounded" }) : /* @__PURE__ */ jsx10(
|
|
787
|
-
"span",
|
|
788
|
-
{
|
|
789
|
-
"data-testid": "receiver-amount",
|
|
790
|
-
className: "text-brand-black-100 max-w-[250px] truncate",
|
|
791
|
-
children: receiverAmount
|
|
792
|
-
}
|
|
793
|
-
) }),
|
|
794
|
-
/* @__PURE__ */ jsx10("div", { className: "w-[170px] pl-3 py-[13px]", children: /* @__PURE__ */ jsx10(
|
|
795
|
-
SwapTokenButton,
|
|
796
|
-
{
|
|
797
|
-
network: receiverToken.network,
|
|
798
|
-
token: {
|
|
799
|
-
image: receiverToken.image,
|
|
800
|
-
symbol: receiverToken.symbol
|
|
801
|
-
},
|
|
802
|
-
onClick: onReceiverTokenSelect,
|
|
803
|
-
disabled: isLoading
|
|
804
|
-
}
|
|
805
|
-
) })
|
|
806
|
-
] }),
|
|
807
|
-
/* @__PURE__ */ jsxs7("div", { className: "flex justify-between pt-1 pb-3", children: [
|
|
808
|
-
/* @__PURE__ */ jsxs7(
|
|
747
|
+
/* @__PURE__ */ jsx10(
|
|
748
|
+
"div",
|
|
749
|
+
{
|
|
750
|
+
"data-testid": "receive-section",
|
|
751
|
+
className: cn(
|
|
752
|
+
"relative mt-0.5 h-1/2 -mx-[1.5px] rounded-[16px] p-[1.5px] transition-all duration-200",
|
|
753
|
+
error ? "bg-brand-danger-500 focus-within:bg-brand-danger-500/60 hover:bg-brand-danger-500/60" : "bridge-form-border"
|
|
754
|
+
),
|
|
755
|
+
children: /* @__PURE__ */ jsxs7(
|
|
809
756
|
"div",
|
|
810
757
|
{
|
|
811
|
-
|
|
812
|
-
|
|
758
|
+
className: cn(
|
|
759
|
+
"rounded-[14.5px] h-full p-3 relative transition-colors duration-200",
|
|
760
|
+
focusedSection === "receiver" ? "bg-brand-black-500" : "bg-brand-black-550"
|
|
761
|
+
),
|
|
813
762
|
children: [
|
|
814
|
-
"
|
|
815
|
-
|
|
763
|
+
/* @__PURE__ */ jsxs7("div", { className: "w-full flex justify-between", children: [
|
|
764
|
+
/* @__PURE__ */ jsx10("div", { className: "w-1/2", children: /* @__PURE__ */ jsx10("div", { className: "text-caption text-brand-black-100 font-medium", children: "Receive" }) }),
|
|
765
|
+
receiver.address && /* @__PURE__ */ jsx10("div", { className: "w-1/2", children: /* @__PURE__ */ jsx10("div", { className: "flex items-center justify-end", children: /* @__PURE__ */ jsxs7(
|
|
766
|
+
"button",
|
|
767
|
+
{
|
|
768
|
+
type: "button",
|
|
769
|
+
disabled: isLoading,
|
|
770
|
+
onClick: receiver.onAddressEdit,
|
|
771
|
+
"aria-label": "Edit receiver address",
|
|
772
|
+
className: "cursor-pointer flex !gap-1.5 !text-caption text-brand-black-100 font-medium text-right items-center justify-end w-1/2",
|
|
773
|
+
children: [
|
|
774
|
+
/* @__PURE__ */ jsx10("span", { className: "max-w-[100px]", children: receiver.address }),
|
|
775
|
+
/* @__PURE__ */ jsx10(
|
|
776
|
+
"span",
|
|
777
|
+
{
|
|
778
|
+
"aria-label": "Edit address",
|
|
779
|
+
className: "cursor-pointer text-foreground hover:scale-110 transition-transform disabled:opacity-50",
|
|
780
|
+
children: /* @__PURE__ */ jsx10(Pen_default, { className: "size-[0.875rem]" })
|
|
781
|
+
}
|
|
782
|
+
)
|
|
783
|
+
]
|
|
784
|
+
}
|
|
785
|
+
) }) })
|
|
786
|
+
] }),
|
|
787
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex mt-3", children: [
|
|
788
|
+
/* @__PURE__ */ jsx10(
|
|
789
|
+
Input,
|
|
790
|
+
{
|
|
791
|
+
min: 0,
|
|
792
|
+
type: "number",
|
|
793
|
+
placeholder: "0",
|
|
794
|
+
value: receiver.amount,
|
|
795
|
+
onChange: (event) => {
|
|
796
|
+
var _a2;
|
|
797
|
+
(_a2 = receiver.onAmountChange) == null ? void 0 : _a2.call(receiver, event.target.value, event);
|
|
798
|
+
},
|
|
799
|
+
onKeyDown: handleKeyDown,
|
|
800
|
+
onFocus: () => setFocusedSection("receiver"),
|
|
801
|
+
onBlur: () => setFocusedSection(null),
|
|
802
|
+
disabled: isLoading,
|
|
803
|
+
"data-testid": "receiver-amount-input",
|
|
804
|
+
className: "border-none ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 text-[48px] leading-[1.2] h-[58px] p-0 text-brand-black-100 placeholder:text-brand-black-100 [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none disabled:opacity-50 !rounded-none"
|
|
805
|
+
}
|
|
806
|
+
),
|
|
807
|
+
/* @__PURE__ */ jsx10("div", { className: "w-[170px] pl-3 py-[13px]", children: /* @__PURE__ */ jsx10(
|
|
808
|
+
SwapTokenButton,
|
|
809
|
+
{
|
|
810
|
+
network: receiver.token.network,
|
|
811
|
+
token: {
|
|
812
|
+
image: receiver.token.image,
|
|
813
|
+
symbol: receiver.token.symbol
|
|
814
|
+
},
|
|
815
|
+
onClick: receiver.onTokenSelect,
|
|
816
|
+
disabled: isLoading
|
|
817
|
+
}
|
|
818
|
+
) })
|
|
819
|
+
] }),
|
|
820
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex justify-between pt-1 pb-3", children: [
|
|
821
|
+
/* @__PURE__ */ jsx10(
|
|
822
|
+
"div",
|
|
823
|
+
{
|
|
824
|
+
"data-testid": "receiver-usd-value",
|
|
825
|
+
className: "flex items-center text-caption text-brand-black-100 font-medium",
|
|
826
|
+
children: isLoading ? /* @__PURE__ */ jsx10("div", { className: "w-8 h-3 bg-brand-black-200 animate-pulse rounded ml-1" }) : receiver.usdValue
|
|
827
|
+
}
|
|
828
|
+
),
|
|
829
|
+
sender.address && receiver.address && /* @__PURE__ */ jsx10("div", { className: "text-brand-black-100 text-caption font-medium", children: isLoading ? /* @__PURE__ */ jsx10("div", { className: "w-12 h-3 bg-brand-black-200 animate-pulse rounded" }) : `~ ${estimatedTime}` })
|
|
830
|
+
] })
|
|
816
831
|
]
|
|
817
832
|
}
|
|
818
|
-
)
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
] })
|
|
833
|
+
)
|
|
834
|
+
}
|
|
835
|
+
)
|
|
822
836
|
]
|
|
823
837
|
}
|
|
824
838
|
);
|
|
@@ -960,64 +974,23 @@ function NetworkSwitcherButton(props) {
|
|
|
960
974
|
import { useMemo } from "react";
|
|
961
975
|
|
|
962
976
|
// src/components/molecules/modal.tsx
|
|
963
|
-
import {
|
|
964
|
-
import { useEffect
|
|
977
|
+
import { AnimatePresence, motion } from "motion/react";
|
|
978
|
+
import { useEffect as useEffect2 } from "react";
|
|
965
979
|
|
|
966
|
-
// src
|
|
967
|
-
import {
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
DrawerPrimitive.Overlay,
|
|
981
|
-
__spreadValues({
|
|
982
|
-
"data-slot": "drawer-overlay",
|
|
983
|
-
className: cn(
|
|
984
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
985
|
-
className
|
|
986
|
-
)
|
|
987
|
-
}, props)
|
|
988
|
-
);
|
|
989
|
-
}
|
|
990
|
-
function DrawerContent(_a) {
|
|
991
|
-
var _b = _a, {
|
|
992
|
-
className,
|
|
993
|
-
children
|
|
994
|
-
} = _b, props = __objRest(_b, [
|
|
995
|
-
"className",
|
|
996
|
-
"children"
|
|
997
|
-
]);
|
|
998
|
-
return /* @__PURE__ */ jsxs9(Fragment, { children: [
|
|
999
|
-
/* @__PURE__ */ jsx14(DrawerOverlay, {}),
|
|
1000
|
-
/* @__PURE__ */ jsxs9(
|
|
1001
|
-
DrawerPrimitive.Content,
|
|
1002
|
-
__spreadProps(__spreadValues({
|
|
1003
|
-
"data-slot": "drawer-content",
|
|
1004
|
-
className: cn(
|
|
1005
|
-
"group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
|
|
1006
|
-
"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
|
|
1007
|
-
"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
|
|
1008
|
-
"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
|
|
1009
|
-
"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
|
|
1010
|
-
className
|
|
1011
|
-
)
|
|
1012
|
-
}, props), {
|
|
1013
|
-
children: [
|
|
1014
|
-
/* @__PURE__ */ jsx14("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
1015
|
-
children
|
|
1016
|
-
]
|
|
1017
|
-
})
|
|
1018
|
-
)
|
|
1019
|
-
] });
|
|
1020
|
-
}
|
|
980
|
+
// src/hooks/is-mobile.ts
|
|
981
|
+
import { useEffect, useState as useState2 } from "react";
|
|
982
|
+
var useIsMobile = () => {
|
|
983
|
+
const [isMobile, setIsMobile] = useState2(false);
|
|
984
|
+
useEffect(() => {
|
|
985
|
+
const checkIsMobile = () => {
|
|
986
|
+
setIsMobile(window.innerWidth < 768);
|
|
987
|
+
};
|
|
988
|
+
checkIsMobile();
|
|
989
|
+
window.addEventListener("resize", checkIsMobile);
|
|
990
|
+
return () => window.removeEventListener("resize", checkIsMobile);
|
|
991
|
+
}, []);
|
|
992
|
+
return isMobile;
|
|
993
|
+
};
|
|
1021
994
|
|
|
1022
995
|
// src/lib/animations.ts
|
|
1023
996
|
var modalVariants = {
|
|
@@ -1129,66 +1102,118 @@ var animationPresets = {
|
|
|
1129
1102
|
}
|
|
1130
1103
|
};
|
|
1131
1104
|
|
|
1132
|
-
// src/
|
|
1133
|
-
import {
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
window.removeEventListener("resize", checkMobile);
|
|
1150
|
-
};
|
|
1151
|
-
}, []);
|
|
1152
|
-
useEffect(() => {
|
|
1153
|
-
const handleEscapeKey = (event) => {
|
|
1154
|
-
if (event.key === "Escape" && isOpen && onClose && !isMobile) {
|
|
1155
|
-
onClose();
|
|
1156
|
-
}
|
|
1157
|
-
};
|
|
1158
|
-
if (isOpen && !isMobile) {
|
|
1159
|
-
document.addEventListener("keydown", handleEscapeKey);
|
|
1160
|
-
}
|
|
1161
|
-
return () => {
|
|
1162
|
-
document.removeEventListener("keydown", handleEscapeKey);
|
|
1163
|
-
};
|
|
1164
|
-
}, [isOpen, onClose, isMobile]);
|
|
1165
|
-
const { variants, transition } = animationPresets[animationPreset];
|
|
1166
|
-
if (isMobile) {
|
|
1167
|
-
return /* @__PURE__ */ jsx15(Drawer, { open: isOpen, onOpenChange: onClose, children: /* @__PURE__ */ jsx15(DrawerContent, { className: "bg-brand-black-550 border-brand-black-300 min-h-[90dvh]", children }) });
|
|
1168
|
-
}
|
|
1169
|
-
return /* @__PURE__ */ jsx15(AnimatePresence, { mode: "wait", children: isOpen && /* @__PURE__ */ jsx15(
|
|
1170
|
-
motion.div,
|
|
1171
|
-
{
|
|
1105
|
+
// src/@/ui/drawer.tsx
|
|
1106
|
+
import { Drawer as DrawerPrimitive } from "vaul";
|
|
1107
|
+
import { Fragment, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1108
|
+
function Drawer(_a) {
|
|
1109
|
+
var props = __objRest(_a, []);
|
|
1110
|
+
return /* @__PURE__ */ jsx14(DrawerPrimitive.Root, __spreadValues({ "data-slot": "drawer" }, props));
|
|
1111
|
+
}
|
|
1112
|
+
function DrawerOverlay(_a) {
|
|
1113
|
+
var _b = _a, {
|
|
1114
|
+
className
|
|
1115
|
+
} = _b, props = __objRest(_b, [
|
|
1116
|
+
"className"
|
|
1117
|
+
]);
|
|
1118
|
+
return /* @__PURE__ */ jsx14(
|
|
1119
|
+
DrawerPrimitive.Overlay,
|
|
1120
|
+
__spreadValues({
|
|
1121
|
+
"data-slot": "drawer-overlay",
|
|
1172
1122
|
className: cn(
|
|
1173
|
-
"
|
|
1123
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
1174
1124
|
className
|
|
1175
|
-
)
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1125
|
+
)
|
|
1126
|
+
}, props)
|
|
1127
|
+
);
|
|
1128
|
+
}
|
|
1129
|
+
function DrawerContent(_a) {
|
|
1130
|
+
var _b = _a, {
|
|
1131
|
+
className,
|
|
1132
|
+
children
|
|
1133
|
+
} = _b, props = __objRest(_b, [
|
|
1134
|
+
"className",
|
|
1135
|
+
"children"
|
|
1136
|
+
]);
|
|
1137
|
+
return /* @__PURE__ */ jsxs9(Fragment, { children: [
|
|
1138
|
+
/* @__PURE__ */ jsx14(DrawerOverlay, {}),
|
|
1139
|
+
/* @__PURE__ */ jsxs9(
|
|
1140
|
+
DrawerPrimitive.Content,
|
|
1141
|
+
__spreadProps(__spreadValues({
|
|
1142
|
+
"data-slot": "drawer-content",
|
|
1143
|
+
className: cn(
|
|
1144
|
+
"group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
|
|
1145
|
+
"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
|
|
1146
|
+
"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
|
|
1147
|
+
"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
|
|
1148
|
+
"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
|
|
1149
|
+
className
|
|
1150
|
+
)
|
|
1151
|
+
}, props), {
|
|
1152
|
+
children: [
|
|
1153
|
+
/* @__PURE__ */ jsx14("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
1154
|
+
children
|
|
1155
|
+
]
|
|
1156
|
+
})
|
|
1157
|
+
)
|
|
1158
|
+
] });
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
// src/components/molecules/modal.tsx
|
|
1162
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1163
|
+
var Modal = (props) => {
|
|
1164
|
+
const { isOpen, children, onClose } = props;
|
|
1165
|
+
const isMobile = useIsMobile();
|
|
1166
|
+
if (isMobile) {
|
|
1167
|
+
return /* @__PURE__ */ jsx15(Drawer, { open: isOpen, onOpenChange: onClose, children: /* @__PURE__ */ jsx15(DrawerContent, { className: "bg-brand-black-550 border-brand-black-300 min-h-[90dvh]", children }) });
|
|
1168
|
+
}
|
|
1169
|
+
return /* @__PURE__ */ jsx15(DestkopModal, __spreadValues({}, props));
|
|
1184
1170
|
};
|
|
1171
|
+
function DestkopModal(props) {
|
|
1172
|
+
const {
|
|
1173
|
+
children,
|
|
1174
|
+
animationPreset = "modal",
|
|
1175
|
+
isOpen,
|
|
1176
|
+
onClose,
|
|
1177
|
+
className
|
|
1178
|
+
} = props;
|
|
1179
|
+
const { variants, transition } = animationPresets[animationPreset];
|
|
1180
|
+
useEffect2(() => {
|
|
1181
|
+
const handleEscapeKey = (event) => {
|
|
1182
|
+
if (event.key === "Escape" && isOpen && onClose) {
|
|
1183
|
+
onClose();
|
|
1184
|
+
}
|
|
1185
|
+
};
|
|
1186
|
+
if (isOpen) {
|
|
1187
|
+
document.addEventListener("keydown", handleEscapeKey);
|
|
1188
|
+
}
|
|
1189
|
+
return () => {
|
|
1190
|
+
document.removeEventListener("keydown", handleEscapeKey);
|
|
1191
|
+
};
|
|
1192
|
+
}, [isOpen, onClose]);
|
|
1193
|
+
return /* @__PURE__ */ jsx15(AnimatePresence, { mode: "wait", children: isOpen && /* @__PURE__ */ jsx15(
|
|
1194
|
+
motion.div,
|
|
1195
|
+
{
|
|
1196
|
+
"data-modal": "true",
|
|
1197
|
+
className: cn(
|
|
1198
|
+
"absolute inset-0 z-50 bg-brand-black-550 rounded-xl w-full max-w-[440px] mx-auto overflow-hidden h-[min(515px,90vh)] flex flex-col ring-3 ring-brand-black-550",
|
|
1199
|
+
className
|
|
1200
|
+
),
|
|
1201
|
+
variants,
|
|
1202
|
+
initial: "initial",
|
|
1203
|
+
animate: "animate",
|
|
1204
|
+
exit: "exit",
|
|
1205
|
+
transition,
|
|
1206
|
+
children
|
|
1207
|
+
}
|
|
1208
|
+
) });
|
|
1209
|
+
}
|
|
1185
1210
|
|
|
1186
1211
|
// src/hooks/selector-hooks.ts
|
|
1187
|
-
import { useState as
|
|
1212
|
+
import { useState as useState4, useRef, useEffect as useEffect3 } from "react";
|
|
1188
1213
|
var useScrollBorder = () => {
|
|
1189
|
-
const [showHeaderBorder, setShowHeaderBorder] =
|
|
1214
|
+
const [showHeaderBorder, setShowHeaderBorder] = useState4(false);
|
|
1190
1215
|
const scrollableRef = useRef(null);
|
|
1191
|
-
|
|
1216
|
+
useEffect3(() => {
|
|
1192
1217
|
const scrollableElement = scrollableRef.current;
|
|
1193
1218
|
if (!scrollableElement) return;
|
|
1194
1219
|
const handleScroll = () => {
|
|
@@ -1209,7 +1234,7 @@ var useScrollBorder = () => {
|
|
|
1209
1234
|
return { showHeaderBorder, scrollableRef };
|
|
1210
1235
|
};
|
|
1211
1236
|
var useSearch = () => {
|
|
1212
|
-
const [searchQuery, setSearchQuery] =
|
|
1237
|
+
const [searchQuery, setSearchQuery] = useState4("");
|
|
1213
1238
|
const resetSearch = () => setSearchQuery("");
|
|
1214
1239
|
return { searchQuery, setSearchQuery, resetSearch };
|
|
1215
1240
|
};
|
|
@@ -1781,7 +1806,10 @@ function TokenSelectionItem(props) {
|
|
|
1781
1806
|
}
|
|
1782
1807
|
|
|
1783
1808
|
// src/components/form/bridge-form.tsx
|
|
1784
|
-
import { useState as
|
|
1809
|
+
import { useState as useState5 } from "react";
|
|
1810
|
+
|
|
1811
|
+
// src/components/form/bridge-input.tsx
|
|
1812
|
+
import React8 from "react";
|
|
1785
1813
|
|
|
1786
1814
|
// src/components/input/input.tsx
|
|
1787
1815
|
import * as React7 from "react";
|
|
@@ -1824,7 +1852,6 @@ var Input2 = React7.forwardRef((_a, ref) => {
|
|
|
1824
1852
|
Input2.displayName = "Input";
|
|
1825
1853
|
|
|
1826
1854
|
// src/components/form/bridge-input.tsx
|
|
1827
|
-
import React8 from "react";
|
|
1828
1855
|
import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1829
1856
|
function BridgeInput(props) {
|
|
1830
1857
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
@@ -2203,9 +2230,9 @@ function BridgeForm({
|
|
|
2203
2230
|
onSourceNetworkSelect,
|
|
2204
2231
|
onDestinationNetworkSelect
|
|
2205
2232
|
}) {
|
|
2206
|
-
const [showDetails, setShowDetails] =
|
|
2207
|
-
const [isGasHovered, setIsGasHovered] =
|
|
2208
|
-
const [networkSelectorState, setNetworkSelectorState] =
|
|
2233
|
+
const [showDetails, setShowDetails] = useState5(false);
|
|
2234
|
+
const [isGasHovered, setIsGasHovered] = useState5(false);
|
|
2235
|
+
const [networkSelectorState, setNetworkSelectorState] = useState5(null);
|
|
2209
2236
|
const isConnected = !!senderAddress;
|
|
2210
2237
|
const handleSubmit = (e) => {
|
|
2211
2238
|
e.preventDefault();
|
|
@@ -2516,7 +2543,7 @@ function TokenSelectorDialog(props) {
|
|
|
2516
2543
|
onAddToWallet,
|
|
2517
2544
|
children
|
|
2518
2545
|
} = props;
|
|
2519
|
-
const [isTokenSelectorOpen, setIsTokenSelectorOpen] =
|
|
2546
|
+
const [isTokenSelectorOpen, setIsTokenSelectorOpen] = useState5(false);
|
|
2520
2547
|
const handleCloseTokenSelector = () => {
|
|
2521
2548
|
setIsTokenSelectorOpen(false);
|
|
2522
2549
|
};
|
|
@@ -2829,7 +2856,22 @@ function WalletProviderItem(props) {
|
|
|
2829
2856
|
children: status === "connecting" ? "Connecting" : "Connect"
|
|
2830
2857
|
}
|
|
2831
2858
|
),
|
|
2832
|
-
status === "connected" && /* @__PURE__ */
|
|
2859
|
+
status === "connected" && /* @__PURE__ */ jsxs20(
|
|
2860
|
+
Button,
|
|
2861
|
+
{
|
|
2862
|
+
size: "sm",
|
|
2863
|
+
variant: "level_2",
|
|
2864
|
+
className: "!h-8 min-w-8 !gap-0 group cursor-pointer",
|
|
2865
|
+
onClick: () => {
|
|
2866
|
+
var _a;
|
|
2867
|
+
return (_a = props == null ? void 0 : props.onDisconnect) == null ? void 0 : _a.call(props);
|
|
2868
|
+
},
|
|
2869
|
+
children: [
|
|
2870
|
+
/* @__PURE__ */ jsx29(Power_default, { className: "size-4 text-brand-black-100" }),
|
|
2871
|
+
/* @__PURE__ */ jsx29("span", { className: "w-0 transition-all overflow-hidden group-hover:w-[10ch]", children: "Disconnect" })
|
|
2872
|
+
]
|
|
2873
|
+
}
|
|
2874
|
+
)
|
|
2833
2875
|
] })
|
|
2834
2876
|
] })
|
|
2835
2877
|
] }) });
|
|
@@ -2857,7 +2899,10 @@ function AccountItem(props) {
|
|
|
2857
2899
|
/* @__PURE__ */ jsx29(
|
|
2858
2900
|
IconButton,
|
|
2859
2901
|
{
|
|
2860
|
-
className:
|
|
2902
|
+
className: cn(
|
|
2903
|
+
"group shrink-0 !size-[1.875rem] !rounded-[10px]",
|
|
2904
|
+
isActive ? "cursor-default" : "cursor-pointer"
|
|
2905
|
+
),
|
|
2861
2906
|
variant: "secondary",
|
|
2862
2907
|
onClick: handleSelect,
|
|
2863
2908
|
title: isActive ? "Already active" : "Activate this account",
|
|
@@ -2870,15 +2915,13 @@ function AccountItem(props) {
|
|
|
2870
2915
|
src: wallet.image,
|
|
2871
2916
|
alt: wallet.name,
|
|
2872
2917
|
badgeSrc: network.image,
|
|
2873
|
-
badgeAlt: network.name
|
|
2918
|
+
badgeAlt: network.name,
|
|
2919
|
+
className: "shrink-0"
|
|
2874
2920
|
}
|
|
2875
2921
|
),
|
|
2876
2922
|
/* @__PURE__ */ jsxs20(Fragment6, { children: [
|
|
2877
|
-
/* @__PURE__ */ jsx29("div", { className: "flex grow-1 flex-col font-medium text-brand-white-500", children: /* @__PURE__ */
|
|
2878
|
-
|
|
2879
|
-
isActive && /* @__PURE__ */ jsx29("span", { className: "bg-brand-success-400/10 text-brand-success-400 px-[6px] py-[3px] rounded-[60px]", children: /* @__PURE__ */ jsx29(Text, { variant: "caption2", className: "font-semibold", children: "Active" }) })
|
|
2880
|
-
] }) }),
|
|
2881
|
-
/* @__PURE__ */ jsxs20("div", { className: "flex gap-[6px] grow-0 h-[2rem] items-stretch shrink-0 *:shrink-0", children: [
|
|
2923
|
+
/* @__PURE__ */ jsx29("div", { className: "flex grow-1 flex-col font-medium text-brand-white-500", children: /* @__PURE__ */ jsx29("div", { className: "flex items-center gap-[6px]", children: /* @__PURE__ */ jsx29("span", { className: "text-body", children: address != null ? address : "{{Address}}" }) }) }),
|
|
2924
|
+
/* @__PURE__ */ jsxs20("div", { className: "relative flex gap-[6px] grow-0 h-[2rem] items-stretch shrink-0 *:shrink-0 pr-[45px]", children: [
|
|
2882
2925
|
/* @__PURE__ */ jsx29(
|
|
2883
2926
|
IconButton,
|
|
2884
2927
|
{
|
|
@@ -2898,7 +2941,7 @@ function AccountItem(props) {
|
|
|
2898
2941
|
{
|
|
2899
2942
|
size: "sm",
|
|
2900
2943
|
variant: "level_2",
|
|
2901
|
-
className: "h-
|
|
2944
|
+
className: "!min-w-8 !h-8 !gap-0 group cursor-pointer absolute right-0",
|
|
2902
2945
|
onClick: () => {
|
|
2903
2946
|
var _a;
|
|
2904
2947
|
return (_a = props == null ? void 0 : props.onDisconnect) == null ? void 0 : _a.call(props);
|
|
@@ -2982,11 +3025,13 @@ function DialogMorphContent(_a) {
|
|
|
2982
3025
|
var _b = _a, {
|
|
2983
3026
|
className,
|
|
2984
3027
|
children,
|
|
2985
|
-
showCloseButton = true
|
|
3028
|
+
showCloseButton = true,
|
|
3029
|
+
onInteractOutside
|
|
2986
3030
|
} = _b, props = __objRest(_b, [
|
|
2987
3031
|
"className",
|
|
2988
3032
|
"children",
|
|
2989
|
-
"showCloseButton"
|
|
3033
|
+
"showCloseButton",
|
|
3034
|
+
"onInteractOutside"
|
|
2990
3035
|
]);
|
|
2991
3036
|
const [mode, setViewMode] = React11.useState("card");
|
|
2992
3037
|
React11.useEffect(() => {
|
|
@@ -3009,12 +3054,19 @@ function DialogMorphContent(_a) {
|
|
|
3009
3054
|
controller.abort();
|
|
3010
3055
|
};
|
|
3011
3056
|
}, []);
|
|
3012
|
-
const
|
|
3057
|
+
const handleInteractOutside = (event) => {
|
|
3058
|
+
onInteractOutside == null ? void 0 : onInteractOutside(event);
|
|
3059
|
+
if (event.target.closest('[data-is-toast="true"]')) {
|
|
3060
|
+
event.preventDefault();
|
|
3061
|
+
}
|
|
3062
|
+
};
|
|
3063
|
+
const Content8 = /* @__PURE__ */ jsxs22(
|
|
3013
3064
|
DialogPrimitive2.Content,
|
|
3014
3065
|
__spreadProps(__spreadValues({
|
|
3066
|
+
onInteractOutside: handleInteractOutside,
|
|
3015
3067
|
"data-slot": "dialog-content",
|
|
3016
3068
|
className: cn(
|
|
3017
|
-
"bg-brand-black-600 text-brand-black-100 data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 grid w-full gap-4 pt-4 p-6 duration-200",
|
|
3069
|
+
"review-dialog bg-brand-black-600 text-brand-black-100 data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 grid w-full gap-4 pt-4 p-6 duration-200",
|
|
3018
3070
|
{
|
|
3019
3071
|
"responsive-fullscren-dialog": mode === "fullscreen",
|
|
3020
3072
|
"responsive-card-dialog": mode === "card"
|
|
@@ -3028,7 +3080,7 @@ function DialogMorphContent(_a) {
|
|
|
3028
3080
|
DialogPrimitive2.Close,
|
|
3029
3081
|
{
|
|
3030
3082
|
"data-slot": "dialog-close",
|
|
3031
|
-
className: "ring-offset-background w-[calc(32rem/16)] inline-flex items-center justify-center rounded-full text-brand-black-100 aspect-square focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
3083
|
+
className: "ring-offset-background cursor-pointer w-[calc(32rem/16)] inline-flex items-center justify-center rounded-full text-brand-black-100 aspect-square focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
3032
3084
|
children: [
|
|
3033
3085
|
/* @__PURE__ */ jsx31(XIcon_default, { width: "1rem", height: "1rem" }),
|
|
3034
3086
|
/* @__PURE__ */ jsx31("span", { className: "sr-only", children: "Close" })
|
|
@@ -3040,676 +3092,328 @@ function DialogMorphContent(_a) {
|
|
|
3040
3092
|
);
|
|
3041
3093
|
return /* @__PURE__ */ jsxs22(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
3042
3094
|
/* @__PURE__ */ jsx31(DialogOverlay, {}),
|
|
3043
|
-
mode === "card" ? /* @__PURE__ */ jsx31(SmoothCorners, { children:
|
|
3095
|
+
mode === "card" ? /* @__PURE__ */ jsx31(SmoothCorners, { children: Content8 }) : /* @__PURE__ */ jsx31(Fragment7, { children: Content8 })
|
|
3044
3096
|
] });
|
|
3045
3097
|
}
|
|
3046
3098
|
|
|
3047
3099
|
// src/components/molecules/manage-wallet.tsx
|
|
3048
3100
|
import React12 from "react";
|
|
3049
|
-
import {
|
|
3101
|
+
import { Slot as Slot8 } from "@radix-ui/react-slot";
|
|
3102
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
3103
|
+
function WalletManagerUIProvider(props) {
|
|
3104
|
+
const { expand: open = false, children } = props;
|
|
3105
|
+
const [show, setShow] = React12.useState(open);
|
|
3106
|
+
return /* @__PURE__ */ jsx32(WalletManagerContext.Provider, { value: { show, setShow }, children });
|
|
3107
|
+
}
|
|
3108
|
+
var WalletManagerContext = React12.createContext({
|
|
3109
|
+
show: false,
|
|
3110
|
+
// @ts-expect-error
|
|
3111
|
+
setShow: React12.Dispatch
|
|
3112
|
+
});
|
|
3113
|
+
function useManager() {
|
|
3114
|
+
return React12.useContext(WalletManagerContext);
|
|
3115
|
+
}
|
|
3116
|
+
function WalletManagerUIContent({
|
|
3117
|
+
children
|
|
3118
|
+
}) {
|
|
3119
|
+
const { show } = useManager();
|
|
3120
|
+
return /* @__PURE__ */ jsx32(
|
|
3121
|
+
Slot8,
|
|
3122
|
+
{
|
|
3123
|
+
className: cn("transition-all pt-[1rem] flex-1", {
|
|
3124
|
+
"opacity-15 pointer-events-none filter blur-[2px]": show
|
|
3125
|
+
}),
|
|
3126
|
+
children
|
|
3127
|
+
}
|
|
3128
|
+
);
|
|
3129
|
+
}
|
|
3050
3130
|
|
|
3051
|
-
// src
|
|
3052
|
-
import
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
var props = __objRest(_a, []);
|
|
3056
|
-
return /* @__PURE__ */ jsx32(SheetPrimitive.Root, __spreadValues({ "data-slot": "sheet" }, props));
|
|
3131
|
+
// src/components/molecules/summary.tsx
|
|
3132
|
+
import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3133
|
+
function Summary(props) {
|
|
3134
|
+
return /* @__PURE__ */ jsx33("div", { className: "flex flex-col gap-2 text-brand-black-100", children: props.children });
|
|
3057
3135
|
}
|
|
3058
|
-
function
|
|
3059
|
-
|
|
3060
|
-
return /* @__PURE__ */
|
|
3136
|
+
function SummaryEntry(props) {
|
|
3137
|
+
const Icon = props.icon;
|
|
3138
|
+
return /* @__PURE__ */ jsxs23("div", { className: "flex select-none items-center text-[calc(12rem/16)] font-medium", children: [
|
|
3139
|
+
/* @__PURE__ */ jsxs23("dt", { className: "flex-1 gap-1 flex items-center", children: [
|
|
3140
|
+
/* @__PURE__ */ jsx33(Icon, { size: "1.16em" }),
|
|
3141
|
+
/* @__PURE__ */ jsx33("span", { className: "text-[1em] leading-[1rem]", children: props.name })
|
|
3142
|
+
] }),
|
|
3143
|
+
/* @__PURE__ */ jsx33("dd", { children: props.children })
|
|
3144
|
+
] });
|
|
3061
3145
|
}
|
|
3062
|
-
function
|
|
3063
|
-
|
|
3064
|
-
|
|
3146
|
+
function makeEntry({
|
|
3147
|
+
name,
|
|
3148
|
+
icon
|
|
3149
|
+
}) {
|
|
3150
|
+
return function Entry({ children }) {
|
|
3151
|
+
return /* @__PURE__ */ jsx33(SummaryEntry, { icon, name, children }, name);
|
|
3152
|
+
};
|
|
3065
3153
|
}
|
|
3066
|
-
|
|
3154
|
+
var Bridge = makeEntry({
|
|
3155
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(Percent_default, { width: size }),
|
|
3156
|
+
name: "Bridge fee"
|
|
3157
|
+
});
|
|
3158
|
+
var RecipientAddress = makeEntry({
|
|
3159
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(Wallet_default, { width: size }),
|
|
3160
|
+
name: "Recipient Address"
|
|
3161
|
+
});
|
|
3162
|
+
var GasEntry = makeEntry({
|
|
3163
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(Gas_default, { width: size }),
|
|
3164
|
+
name: "Gas costs"
|
|
3165
|
+
});
|
|
3166
|
+
var SpillageTolerance = makeEntry({
|
|
3167
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(ArrowBottomTop_default, { width: size }),
|
|
3168
|
+
name: "Spillage tolerance"
|
|
3169
|
+
});
|
|
3170
|
+
var Route = makeEntry({
|
|
3171
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(ArrowSplit_default, { width: size }),
|
|
3172
|
+
name: "Route"
|
|
3173
|
+
});
|
|
3174
|
+
var Rate = makeEntry({
|
|
3175
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(Percent_default, { width: size }),
|
|
3176
|
+
name: "Rate"
|
|
3177
|
+
});
|
|
3178
|
+
var Fee = makeEntry({
|
|
3179
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(ArrowBottomTop_default, { width: size }),
|
|
3180
|
+
name: "Fee"
|
|
3181
|
+
});
|
|
3182
|
+
var ETA = makeEntry({
|
|
3183
|
+
icon: ({ size }) => /* @__PURE__ */ jsx33(Clock_default, { width: size }),
|
|
3184
|
+
name: "Estimated time"
|
|
3185
|
+
});
|
|
3186
|
+
var SummaryValues = {
|
|
3187
|
+
Key: {
|
|
3188
|
+
Bridge,
|
|
3189
|
+
GasEntry,
|
|
3190
|
+
Rate,
|
|
3191
|
+
SpillageTolerance,
|
|
3192
|
+
Route,
|
|
3193
|
+
ETA,
|
|
3194
|
+
RecipientAddress,
|
|
3195
|
+
Fee
|
|
3196
|
+
},
|
|
3197
|
+
Values: {
|
|
3198
|
+
Highlight: ({ children }) => {
|
|
3199
|
+
return /* @__PURE__ */ jsx33("span", { className: "text-[inherit] text-brand-white-500", children });
|
|
3200
|
+
},
|
|
3201
|
+
Soft: ({ children }) => {
|
|
3202
|
+
return /* @__PURE__ */ jsx33("span", { className: "text-[inherit]text-brand-black-50", children });
|
|
3203
|
+
}
|
|
3204
|
+
}
|
|
3205
|
+
};
|
|
3206
|
+
|
|
3207
|
+
// src/components/molecules/timeline.tsx
|
|
3208
|
+
import { Slot as Slot9 } from "@radix-ui/react-slot";
|
|
3209
|
+
import { Loader2 } from "lucide-react";
|
|
3210
|
+
import { AnimatePresence as AnimatePresence2, motion as motion3 } from "motion/react";
|
|
3211
|
+
import React13 from "react";
|
|
3212
|
+
|
|
3213
|
+
// src/@/ui/progress.tsx
|
|
3214
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
3215
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3216
|
+
function Progress(_a) {
|
|
3067
3217
|
var _b = _a, {
|
|
3068
|
-
className
|
|
3218
|
+
className,
|
|
3219
|
+
value
|
|
3069
3220
|
} = _b, props = __objRest(_b, [
|
|
3070
|
-
"className"
|
|
3221
|
+
"className",
|
|
3222
|
+
"value"
|
|
3071
3223
|
]);
|
|
3072
|
-
return /* @__PURE__ */
|
|
3073
|
-
|
|
3074
|
-
__spreadValues({
|
|
3075
|
-
"data-slot": "
|
|
3224
|
+
return /* @__PURE__ */ jsx34(
|
|
3225
|
+
ProgressPrimitive.Root,
|
|
3226
|
+
__spreadProps(__spreadValues({
|
|
3227
|
+
"data-slot": "progress",
|
|
3076
3228
|
className: cn(
|
|
3077
|
-
"
|
|
3229
|
+
"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
|
|
3078
3230
|
className
|
|
3079
3231
|
)
|
|
3080
|
-
}, props)
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
"children",
|
|
3091
|
-
"side"
|
|
3092
|
-
]);
|
|
3093
|
-
return /* @__PURE__ */ jsxs23(SheetPortal, { children: [
|
|
3094
|
-
/* @__PURE__ */ jsx32(SheetOverlay, {}),
|
|
3095
|
-
/* @__PURE__ */ jsxs23(
|
|
3096
|
-
SheetPrimitive.Content,
|
|
3097
|
-
__spreadProps(__spreadValues({
|
|
3098
|
-
"data-slot": "sheet-content",
|
|
3099
|
-
className: cn(
|
|
3100
|
-
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
3101
|
-
side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-sm",
|
|
3102
|
-
side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
|
|
3103
|
-
side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
|
|
3104
|
-
side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
|
|
3105
|
-
className
|
|
3106
|
-
)
|
|
3107
|
-
}, props), {
|
|
3108
|
-
children: [
|
|
3109
|
-
children,
|
|
3110
|
-
/* @__PURE__ */ jsx32(
|
|
3111
|
-
SheetPrimitive.Close,
|
|
3112
|
-
{
|
|
3113
|
-
asChild: true,
|
|
3114
|
-
className: "absolute top-[1.625rem] -left-10",
|
|
3115
|
-
children: /* @__PURE__ */ jsxs23(
|
|
3116
|
-
IconButton,
|
|
3117
|
-
{
|
|
3118
|
-
className: "cursor-pointer",
|
|
3119
|
-
variant: "secondary",
|
|
3120
|
-
rounded: "full",
|
|
3121
|
-
size: "sm",
|
|
3122
|
-
children: [
|
|
3123
|
-
/* @__PURE__ */ jsx32(ChevronDoubleRight_default, { className: "size-4 text-brand-black-100" }),
|
|
3124
|
-
/* @__PURE__ */ jsx32("span", { className: "sr-only", children: "Close" })
|
|
3125
|
-
]
|
|
3126
|
-
}
|
|
3127
|
-
)
|
|
3128
|
-
}
|
|
3129
|
-
)
|
|
3130
|
-
]
|
|
3131
|
-
})
|
|
3132
|
-
)
|
|
3133
|
-
] });
|
|
3134
|
-
}
|
|
3135
|
-
function SheetHeader(_a) {
|
|
3136
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3137
|
-
return /* @__PURE__ */ jsx32(
|
|
3138
|
-
"div",
|
|
3139
|
-
__spreadValues({
|
|
3140
|
-
"data-slot": "sheet-header",
|
|
3141
|
-
className: cn("flex flex-col gap-1.5 p-4", className)
|
|
3142
|
-
}, props)
|
|
3143
|
-
);
|
|
3144
|
-
}
|
|
3145
|
-
function SheetTitle(_a) {
|
|
3146
|
-
var _b = _a, {
|
|
3147
|
-
className
|
|
3148
|
-
} = _b, props = __objRest(_b, [
|
|
3149
|
-
"className"
|
|
3150
|
-
]);
|
|
3151
|
-
return /* @__PURE__ */ jsx32(
|
|
3152
|
-
SheetPrimitive.Title,
|
|
3153
|
-
__spreadValues({
|
|
3154
|
-
"data-slot": "sheet-title",
|
|
3155
|
-
className: cn("text-foreground font-semibold", className)
|
|
3156
|
-
}, props)
|
|
3157
|
-
);
|
|
3158
|
-
}
|
|
3159
|
-
function SheetDescription(_a) {
|
|
3160
|
-
var _b = _a, {
|
|
3161
|
-
className
|
|
3162
|
-
} = _b, props = __objRest(_b, [
|
|
3163
|
-
"className"
|
|
3164
|
-
]);
|
|
3165
|
-
return /* @__PURE__ */ jsx32(
|
|
3166
|
-
SheetPrimitive.Description,
|
|
3167
|
-
__spreadValues({
|
|
3168
|
-
"data-slot": "sheet-description",
|
|
3169
|
-
className: cn("text-muted-foreground text-sm", className)
|
|
3170
|
-
}, props)
|
|
3232
|
+
}, props), {
|
|
3233
|
+
children: /* @__PURE__ */ jsx34(
|
|
3234
|
+
ProgressPrimitive.Indicator,
|
|
3235
|
+
{
|
|
3236
|
+
"data-slot": "progress-indicator",
|
|
3237
|
+
className: "bg-[var(--track-color)] h-full w-full flex-1 transition-all",
|
|
3238
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
3239
|
+
}
|
|
3240
|
+
)
|
|
3241
|
+
})
|
|
3171
3242
|
);
|
|
3172
3243
|
}
|
|
3173
3244
|
|
|
3174
|
-
// src/components/
|
|
3175
|
-
import { jsx as
|
|
3176
|
-
function
|
|
3177
|
-
return /* @__PURE__ */
|
|
3178
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-[0.625rem] select-none", children: [
|
|
3179
|
-
/* @__PURE__ */ jsx33(
|
|
3180
|
-
IconButton,
|
|
3181
|
-
{
|
|
3182
|
-
disabled: true,
|
|
3183
|
-
className: "pointer-events-none !text-brand-white-500",
|
|
3184
|
-
variant: "level_2",
|
|
3185
|
-
rounded: "full",
|
|
3186
|
-
size: "sm",
|
|
3187
|
-
children: /* @__PURE__ */ jsx33(Wallet_default, { className: "size-5" })
|
|
3188
|
-
}
|
|
3189
|
-
),
|
|
3190
|
-
/* @__PURE__ */ jsx33(SheetTitle, { className: "text-brand-white-100", children: /* @__PURE__ */ jsx33("span", { className: "text-base font-medium", children: "Connect Your Wallet" }) })
|
|
3191
|
-
] }),
|
|
3192
|
-
/* @__PURE__ */ jsx33(SheetDescription, { className: "sr-only", children: "Choose a wallet provider to connect to our application." })
|
|
3193
|
-
] });
|
|
3194
|
-
}
|
|
3195
|
-
function HeaderNested(props) {
|
|
3196
|
-
var _a;
|
|
3197
|
-
const { heading, image, onBack, hideBackButton } = props;
|
|
3198
|
-
return /* @__PURE__ */ jsxs24("div", { className: "p-[1rem] -mx-[1rem]", children: [
|
|
3199
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-[0.625rem] select-none", children: [
|
|
3200
|
-
/* @__PURE__ */ jsx33(
|
|
3201
|
-
TokenImage,
|
|
3202
|
-
{
|
|
3203
|
-
src: image.src,
|
|
3204
|
-
className: "w-[2rem]",
|
|
3205
|
-
alt: (_a = image.alt) != null ? _a : heading
|
|
3206
|
-
}
|
|
3207
|
-
),
|
|
3208
|
-
/* @__PURE__ */ jsx33(SheetTitle, { className: "text-brand-white-100 flex-1", children: /* @__PURE__ */ jsx33("span", { className: "text-base font-medium", children: heading }) }),
|
|
3209
|
-
!hideBackButton && /* @__PURE__ */ jsx33(
|
|
3210
|
-
IconButton,
|
|
3211
|
-
{
|
|
3212
|
-
variant: "level_1",
|
|
3213
|
-
rounded: "full",
|
|
3214
|
-
size: "sm",
|
|
3215
|
-
onClick: onBack,
|
|
3216
|
-
children: /* @__PURE__ */ jsx33(
|
|
3217
|
-
StepBack_default,
|
|
3218
|
-
{
|
|
3219
|
-
width: "1rem",
|
|
3220
|
-
height: "1rem",
|
|
3221
|
-
className: "text-brand-black-100"
|
|
3222
|
-
}
|
|
3223
|
-
)
|
|
3224
|
-
}
|
|
3225
|
-
)
|
|
3226
|
-
] }),
|
|
3227
|
-
/* @__PURE__ */ jsx33(SheetDescription, { className: "sr-only", children: "Choose a wallet provider to connect to our application." })
|
|
3228
|
-
] });
|
|
3229
|
-
}
|
|
3230
|
-
function ListSection({
|
|
3231
|
-
children,
|
|
3232
|
-
caption = "Heading"
|
|
3233
|
-
}) {
|
|
3234
|
-
return /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-y-[0.375rem]", children: [
|
|
3235
|
-
/* @__PURE__ */ jsx33("div", { className: "text-caption text-brand-black-100 select-none font-normal", children: caption }),
|
|
3236
|
-
/* @__PURE__ */ jsx33("div", { className: "grid gap-2", children })
|
|
3237
|
-
] });
|
|
3238
|
-
}
|
|
3239
|
-
function CWDrawerContent(_a) {
|
|
3240
|
-
var _b = _a, {
|
|
3241
|
-
children
|
|
3242
|
-
} = _b, props = __objRest(_b, [
|
|
3243
|
-
"children"
|
|
3244
|
-
]);
|
|
3245
|
-
return /* @__PURE__ */ jsx33(
|
|
3246
|
-
SheetContent,
|
|
3247
|
-
__spreadProps(__spreadValues({}, props), {
|
|
3248
|
-
side: "right",
|
|
3249
|
-
className: "max-w-[calc(29.75rem_+_1.25rem)] select-none border-none shadow-none text-brand-white-500 sm:w-[540px] bg-transparent p-[0.625rem]",
|
|
3250
|
-
children: /* @__PURE__ */ jsx33("div", { className: "bg-brand-black-550 flex-1 flex flex-col rounded-[1rem] w-[29.75rem] px-[1rem]", children })
|
|
3251
|
-
})
|
|
3252
|
-
);
|
|
3245
|
+
// src/components/molecules/timeline.tsx
|
|
3246
|
+
import { jsx as jsx35, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3247
|
+
function TimelineList(props) {
|
|
3248
|
+
return /* @__PURE__ */ jsx35("ul", { className: "flex flex-col", children: props.children });
|
|
3253
3249
|
}
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
import { Fragment as Fragment8, jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3259
|
-
var slideDown = {
|
|
3260
|
-
show: {
|
|
3261
|
-
opacity: [0, 0.8, 1]
|
|
3262
|
-
},
|
|
3263
|
-
hide: {
|
|
3264
|
-
opacity: [1, 0.25, 0]
|
|
3265
|
-
}
|
|
3250
|
+
var StatusTextMap = {
|
|
3251
|
+
processing: "Processing",
|
|
3252
|
+
upcoming: "Upcoming",
|
|
3253
|
+
error: "Failed"
|
|
3266
3254
|
};
|
|
3267
|
-
function
|
|
3268
|
-
|
|
3269
|
-
const {
|
|
3270
|
-
const
|
|
3271
|
-
const
|
|
3272
|
-
const
|
|
3273
|
-
const
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
const shouldShowNetworkGroup = shouldShowPolkadotOption || shouldShowEVMOption;
|
|
3277
|
-
React12.useEffect(() => {
|
|
3278
|
-
const updateHeight = () => {
|
|
3279
|
-
if (containerRef.current && parent.current) {
|
|
3280
|
-
const height = containerRef.current.offsetHeight;
|
|
3281
|
-
parent.current.style.setProperty("--container-height", `${height}px`);
|
|
3282
|
-
}
|
|
3283
|
-
};
|
|
3284
|
-
updateHeight();
|
|
3285
|
-
const resizeObserver = new ResizeObserver(updateHeight);
|
|
3286
|
-
if (containerRef.current) {
|
|
3287
|
-
resizeObserver.observe(containerRef.current);
|
|
3288
|
-
}
|
|
3289
|
-
return () => {
|
|
3290
|
-
if (containerRef.current) {
|
|
3291
|
-
resizeObserver.unobserve(containerRef.current);
|
|
3292
|
-
}
|
|
3293
|
-
resizeObserver.disconnect();
|
|
3294
|
-
};
|
|
3295
|
-
}, []);
|
|
3296
|
-
return /* @__PURE__ */ jsx34(Fragment8, { children: /* @__PURE__ */ jsxs25(
|
|
3297
|
-
"div",
|
|
3255
|
+
function TimelineItem(props) {
|
|
3256
|
+
var _a, _b, _c, _d;
|
|
3257
|
+
const { processingStatus, caption, durationMode = "none" } = props;
|
|
3258
|
+
const is_visually_active = processingStatus !== "upcoming";
|
|
3259
|
+
const id = React13.useId();
|
|
3260
|
+
const layoutId = `${id}/${caption}/content-2`;
|
|
3261
|
+
const hideTime = durationMode === "none";
|
|
3262
|
+
return /* @__PURE__ */ jsx35(
|
|
3263
|
+
motion3.li,
|
|
3298
3264
|
{
|
|
3299
|
-
|
|
3300
|
-
className: "bg-brand-black-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
{
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3265
|
+
"data-process-status": processingStatus,
|
|
3266
|
+
className: "block bg-brand-black-350 cursor-default select-none font-medium text-brand-white-500",
|
|
3267
|
+
children: /* @__PURE__ */ jsxs24(
|
|
3268
|
+
motion3.div,
|
|
3269
|
+
{
|
|
3270
|
+
initial: { opacity: 0.5 },
|
|
3271
|
+
animate: {
|
|
3272
|
+
opacity: is_visually_active ? 1 : 0.5
|
|
3273
|
+
},
|
|
3274
|
+
className: "flex h-[3.5rem] items-center gap-[0.86rem] py-[0.5625rem] px-[0.75rem] ",
|
|
3275
|
+
children: [
|
|
3276
|
+
props.level === 0 ? /* @__PURE__ */ jsx35(BadgeIcon, __spreadValues({}, props.badge)) : /* @__PURE__ */ jsx35(
|
|
3277
|
+
IconButton,
|
|
3309
3278
|
{
|
|
3310
|
-
|
|
3279
|
+
variant: "level_2",
|
|
3280
|
+
size: "sm",
|
|
3281
|
+
rounded: "full",
|
|
3282
|
+
className: "pointer-events-none !bg-transparent backdrop-blur-[34px]",
|
|
3283
|
+
style: {
|
|
3284
|
+
boxShadow: "0 4px 24px 0 rgba(255, 255, 255, 0.05) inset"
|
|
3285
|
+
},
|
|
3286
|
+
children: /* @__PURE__ */ jsx35(
|
|
3287
|
+
"span",
|
|
3288
|
+
{
|
|
3289
|
+
className: cn(
|
|
3290
|
+
"w-[0.5rem] inline-block aspect-square rounded-lg bg-brand-white-500",
|
|
3291
|
+
{
|
|
3292
|
+
"bg-brand-success-400": processingStatus === "completed",
|
|
3293
|
+
"bg-brand-danger-500": processingStatus === "error"
|
|
3294
|
+
}
|
|
3295
|
+
)
|
|
3296
|
+
}
|
|
3297
|
+
)
|
|
3311
3298
|
}
|
|
3312
3299
|
),
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
/* @__PURE__ */
|
|
3316
|
-
|
|
3317
|
-
IconButton,
|
|
3300
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex flex-col flex-1 gap-[calc(4/16rem)]", children: [
|
|
3301
|
+
/* @__PURE__ */ jsx35("div", { className: "text-brand-white-500 text-[1rem] h-[1.25rem]", children: caption }),
|
|
3302
|
+
/* @__PURE__ */ jsx35("div", { className: "text-xs h-[1rem] text-brand-black-100", children: processingStatus === "completed" ? ((_a = props.data) == null ? void 0 : _a.transactionUrl) ? /* @__PURE__ */ jsxs24(
|
|
3303
|
+
"a",
|
|
3318
3304
|
{
|
|
3319
|
-
|
|
3320
|
-
"
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3305
|
+
href: props.data.transactionUrl,
|
|
3306
|
+
className: "flex cursor-pointer gap-[calc(2rem/16)] items-center",
|
|
3307
|
+
target: "_blank",
|
|
3308
|
+
rel: "noopener noreferrer",
|
|
3309
|
+
children: [
|
|
3310
|
+
/* @__PURE__ */ jsx35("span", { children: "View in explorer " }),
|
|
3311
|
+
/* @__PURE__ */ jsx35(ArrowUpRight_default, { width: "0.75rem", height: "0.75rem" })
|
|
3312
|
+
]
|
|
3326
3313
|
}
|
|
3327
|
-
)
|
|
3328
|
-
] })
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
ref: containerRef,
|
|
3343
|
-
initial: { opacity: 0 },
|
|
3344
|
-
variants: slideDown,
|
|
3345
|
-
transition: { duration: 0.4 },
|
|
3346
|
-
animate: open ? "show" : "hide",
|
|
3347
|
-
className: "border-brand-black-350 px-[1rem] border-b pb-[1rem]",
|
|
3348
|
-
children: /* @__PURE__ */ jsxs25(ListSection, { caption: "Networks", children: [
|
|
3349
|
-
accounts.map((account, index) => /* @__PURE__ */ jsx34(
|
|
3350
|
-
WalletAccountItem,
|
|
3351
|
-
{
|
|
3352
|
-
address: shortenAccountAddress(account.address),
|
|
3353
|
-
network: account.network,
|
|
3354
|
-
wallet: account.wallet,
|
|
3355
|
-
onCopy: () => onCopy == null ? void 0 : onCopy(account.address),
|
|
3356
|
-
onDisconnect: () => onDisconnect == null ? void 0 : onDisconnect(account, index),
|
|
3357
|
-
isActive: true
|
|
3358
|
-
},
|
|
3359
|
-
`${account.address}-${index}`
|
|
3360
|
-
)),
|
|
3361
|
-
shouldShowNetworkGroup && /* @__PURE__ */ jsxs25(Fragment8, { children: [
|
|
3362
|
-
shouldShowPolkadotOption && /* @__PURE__ */ jsx34(
|
|
3363
|
-
NetworkGroupItem,
|
|
3314
|
+
) : /* @__PURE__ */ jsx35("span", { children: props.secondary }) : /* @__PURE__ */ jsx35("span", { children: (_b = props == null ? void 0 : props.secondary) != null ? _b : StatusTextMap[processingStatus] }) })
|
|
3315
|
+
] }),
|
|
3316
|
+
/* @__PURE__ */ jsxs24(AnimatePresence2, { children: [
|
|
3317
|
+
processingStatus === "completed" ? /* @__PURE__ */ jsxs24(
|
|
3318
|
+
motion3.div,
|
|
3319
|
+
{
|
|
3320
|
+
layoutId,
|
|
3321
|
+
initial: { x: 10, opacity: 0 },
|
|
3322
|
+
animate: { x: 0, opacity: 1 },
|
|
3323
|
+
exit: { x: 10, opacity: 0 },
|
|
3324
|
+
className: "flex gap-[calc(8rem/16)] items-center",
|
|
3325
|
+
children: [
|
|
3326
|
+
!hideTime && /* @__PURE__ */ jsx35("span", { className: "text-[calc(13rem/16)] text-brand-black-100", children: (_c = props == null ? void 0 : props.data) == null ? void 0 : _c.completedIn }),
|
|
3327
|
+
/* @__PURE__ */ jsx35(
|
|
3328
|
+
Check_default,
|
|
3364
3329
|
{
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3330
|
+
height: "1rem",
|
|
3331
|
+
width: "1rem",
|
|
3332
|
+
className: "text-brand-success-400"
|
|
3368
3333
|
}
|
|
3369
|
-
)
|
|
3370
|
-
|
|
3371
|
-
|
|
3334
|
+
)
|
|
3335
|
+
]
|
|
3336
|
+
}
|
|
3337
|
+
) : null,
|
|
3338
|
+
processingStatus === "processing" ? /* @__PURE__ */ jsxs24(
|
|
3339
|
+
motion3.div,
|
|
3340
|
+
{
|
|
3341
|
+
initial: { x: 10, opacity: 0 },
|
|
3342
|
+
animate: { x: 0, opacity: 1 },
|
|
3343
|
+
exit: { x: 10, opacity: 0 },
|
|
3344
|
+
layoutId,
|
|
3345
|
+
className: "flex gap-[calc(10rem/16)] items-center",
|
|
3346
|
+
children: [
|
|
3347
|
+
!hideTime && /* @__PURE__ */ jsxs24("span", { className: "text-[calc(13rem/16)]", children: [
|
|
3348
|
+
"~ ",
|
|
3349
|
+
(_d = props == null ? void 0 : props.data) == null ? void 0 : _d.eta
|
|
3350
|
+
] }),
|
|
3351
|
+
/* @__PURE__ */ jsx35(
|
|
3352
|
+
Loader2,
|
|
3372
3353
|
{
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
onConnect: () => onConnect == null ? void 0 : onConnect("evm")
|
|
3354
|
+
size: "1rem",
|
|
3355
|
+
className: "animate text-brand-black-100 animate-spin"
|
|
3376
3356
|
}
|
|
3377
3357
|
)
|
|
3378
|
-
]
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
)
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3358
|
+
]
|
|
3359
|
+
}
|
|
3360
|
+
) : null
|
|
3361
|
+
] })
|
|
3362
|
+
]
|
|
3363
|
+
}
|
|
3364
|
+
)
|
|
3385
3365
|
}
|
|
3386
|
-
)
|
|
3366
|
+
);
|
|
3387
3367
|
}
|
|
3388
|
-
function
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3368
|
+
function TimelineListGroup(props) {
|
|
3369
|
+
return /* @__PURE__ */ jsx35("ul", { className: cn("flex flex-col"), children: props.children });
|
|
3370
|
+
}
|
|
3371
|
+
var TimelineRoot = React13.forwardRef((props, ref) => {
|
|
3372
|
+
return /* @__PURE__ */ jsx35(
|
|
3373
|
+
"ul",
|
|
3374
|
+
__spreadProps(__spreadValues({
|
|
3375
|
+
ref
|
|
3376
|
+
}, props), {
|
|
3377
|
+
className: cn(
|
|
3378
|
+
"flex flex-col gap-y-[calc(2rem/16)] *:first:rounded-t-[1rem] *:last:rounded-b-[1rem]",
|
|
3379
|
+
props.className
|
|
3380
|
+
),
|
|
3381
|
+
children: props.children
|
|
3382
|
+
})
|
|
3383
|
+
);
|
|
3384
|
+
});
|
|
3385
|
+
TimelineRoot.displayName = "TimelineRoot";
|
|
3386
|
+
var trackColorMap = {
|
|
3387
|
+
warning: "var(--color-brand-warning-500)",
|
|
3388
|
+
default: "var(--color-brand-black-100)"
|
|
3389
|
+
};
|
|
3390
|
+
function TransactionTimer(props) {
|
|
3391
|
+
const { mins, hours, seconds, severity = "warning" } = props;
|
|
3392
|
+
return /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-[calc(6rem/16)]", children: [
|
|
3393
|
+
/* @__PURE__ */ jsxs24(
|
|
3392
3394
|
"div",
|
|
3393
3395
|
{
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
BadgeIcon,
|
|
3396
|
+
className: cn(
|
|
3397
|
+
"flex gap-[calc(4rem/16)] font-medium h-[1rem] text-xs items-center",
|
|
3397
3398
|
{
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
alt: item.wallet.name,
|
|
3401
|
-
badgeSrc: item.network.image,
|
|
3402
|
-
badgeAlt: item.network.name
|
|
3403
|
-
}
|
|
3404
|
-
)
|
|
3405
|
-
},
|
|
3406
|
-
item.address
|
|
3407
|
-
)) }),
|
|
3408
|
-
/* @__PURE__ */ jsxs25("span", { className: "flex flex-col whitespace-nowrap", children: [
|
|
3409
|
-
/* @__PURE__ */ jsx34("span", { className: "text-base font-medium h-[1.25rem] text-brand-white-500", children: items.length > 1 ? /* @__PURE__ */ jsxs25(Fragment8, { children: [
|
|
3410
|
-
items.length,
|
|
3411
|
-
" wallets"
|
|
3412
|
-
] }) : /* @__PURE__ */ jsx34(Fragment8, { children: (_c = shortenAccountAddress((_b = (_a = items[0]) == null ? void 0 : _a.address) != null ? _b : "")) != null ? _c : "--" }) }),
|
|
3413
|
-
/* @__PURE__ */ jsx34("span", { className: "text-xs text-start h-[1rem] font-medium inline-flex items-center gap-[0.125rem] text-brand-black-100", children: "Connected" })
|
|
3414
|
-
] })
|
|
3415
|
-
] });
|
|
3416
|
-
}
|
|
3417
|
-
function WalletManagerUIProvider(props) {
|
|
3418
|
-
const { expand: open = false, children } = props;
|
|
3419
|
-
const [show, setShow] = React12.useState(open);
|
|
3420
|
-
return /* @__PURE__ */ jsx34(WalletManagerContext.Provider, { value: { show, setShow }, children });
|
|
3421
|
-
}
|
|
3422
|
-
var WalletManagerContext = React12.createContext({
|
|
3423
|
-
show: false,
|
|
3424
|
-
// @ts-expect-error
|
|
3425
|
-
setShow: React12.Dispatch
|
|
3426
|
-
});
|
|
3427
|
-
function useManager() {
|
|
3428
|
-
return React12.useContext(WalletManagerContext);
|
|
3429
|
-
}
|
|
3430
|
-
function WalletManagerUIContent({
|
|
3431
|
-
children
|
|
3432
|
-
}) {
|
|
3433
|
-
const { show } = useManager();
|
|
3434
|
-
return /* @__PURE__ */ jsx34(
|
|
3435
|
-
Slot8,
|
|
3436
|
-
{
|
|
3437
|
-
className: cn("transition-all pt-[1rem] flex-1", {
|
|
3438
|
-
"opacity-15 pointer-events-none filter blur-[2px]": show
|
|
3439
|
-
}),
|
|
3440
|
-
children
|
|
3441
|
-
}
|
|
3442
|
-
);
|
|
3443
|
-
}
|
|
3444
|
-
|
|
3445
|
-
// src/components/molecules/summary.tsx
|
|
3446
|
-
import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3447
|
-
function BridgeSummary(props) {
|
|
3448
|
-
return /* @__PURE__ */ jsx35("div", { className: "flex flex-col gap-2 text-brand-black-100", children: props.children });
|
|
3449
|
-
}
|
|
3450
|
-
function SummaryEntry(props) {
|
|
3451
|
-
const Icon = props.icon;
|
|
3452
|
-
return /* @__PURE__ */ jsxs26("div", { className: "flex select-none items-center text-[calc(12rem/16)] font-medium", children: [
|
|
3453
|
-
/* @__PURE__ */ jsxs26("dt", { className: "flex-1 gap-1 flex items-center", children: [
|
|
3454
|
-
/* @__PURE__ */ jsx35(Icon, { size: "1.16em" }),
|
|
3455
|
-
/* @__PURE__ */ jsx35("span", { className: "text-[1em] leading-[1rem]", children: props.name })
|
|
3456
|
-
] }),
|
|
3457
|
-
/* @__PURE__ */ jsx35("dd", { children: props.children })
|
|
3458
|
-
] });
|
|
3459
|
-
}
|
|
3460
|
-
function makeEntry({
|
|
3461
|
-
name,
|
|
3462
|
-
icon
|
|
3463
|
-
}) {
|
|
3464
|
-
return function Entry({ children }) {
|
|
3465
|
-
return /* @__PURE__ */ jsx35(SummaryEntry, { icon, name, children }, name);
|
|
3466
|
-
};
|
|
3467
|
-
}
|
|
3468
|
-
var Bridge = makeEntry({
|
|
3469
|
-
icon: ({ size }) => /* @__PURE__ */ jsx35(Percent_default, { width: size }),
|
|
3470
|
-
name: "Bridge fee"
|
|
3471
|
-
});
|
|
3472
|
-
var GasEntry = makeEntry({
|
|
3473
|
-
icon: ({ size }) => /* @__PURE__ */ jsx35(Gas_default, { width: size }),
|
|
3474
|
-
name: "Gas costs"
|
|
3475
|
-
});
|
|
3476
|
-
var SpillageTolerance = makeEntry({
|
|
3477
|
-
icon: ({ size }) => /* @__PURE__ */ jsx35(ArrowBottomTop_default, { width: size }),
|
|
3478
|
-
name: "Spillage tolerance"
|
|
3479
|
-
});
|
|
3480
|
-
var Route = makeEntry({
|
|
3481
|
-
icon: ({ size }) => /* @__PURE__ */ jsx35(ArrowSplit_default, { width: size }),
|
|
3482
|
-
name: "Route"
|
|
3483
|
-
});
|
|
3484
|
-
var ETA = makeEntry({
|
|
3485
|
-
icon: ({ size }) => /* @__PURE__ */ jsx35(Clock_default, { width: size }),
|
|
3486
|
-
name: "Estimated time"
|
|
3487
|
-
});
|
|
3488
|
-
var SummaryValues = {
|
|
3489
|
-
Key: {
|
|
3490
|
-
Bridge,
|
|
3491
|
-
GasEntry,
|
|
3492
|
-
SpillageTolerance,
|
|
3493
|
-
Route,
|
|
3494
|
-
ETA
|
|
3495
|
-
},
|
|
3496
|
-
Values: {
|
|
3497
|
-
Highlight: ({ children }) => {
|
|
3498
|
-
return /* @__PURE__ */ jsx35("span", { className: "text-[inherit] text-brand-white-500", children });
|
|
3499
|
-
},
|
|
3500
|
-
Soft: ({ children }) => {
|
|
3501
|
-
return /* @__PURE__ */ jsx35("span", { className: "text-[inherit]text-brand-black-50", children });
|
|
3502
|
-
}
|
|
3503
|
-
}
|
|
3504
|
-
};
|
|
3505
|
-
|
|
3506
|
-
// src/components/molecules/timeline.tsx
|
|
3507
|
-
import React13 from "react";
|
|
3508
|
-
import { Loader2 } from "lucide-react";
|
|
3509
|
-
import { AnimatePresence as AnimatePresence2, motion as motion4 } from "motion/react";
|
|
3510
|
-
|
|
3511
|
-
// src/@/ui/progress.tsx
|
|
3512
|
-
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
3513
|
-
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
3514
|
-
function Progress(_a) {
|
|
3515
|
-
var _b = _a, {
|
|
3516
|
-
className,
|
|
3517
|
-
value
|
|
3518
|
-
} = _b, props = __objRest(_b, [
|
|
3519
|
-
"className",
|
|
3520
|
-
"value"
|
|
3521
|
-
]);
|
|
3522
|
-
return /* @__PURE__ */ jsx36(
|
|
3523
|
-
ProgressPrimitive.Root,
|
|
3524
|
-
__spreadProps(__spreadValues({
|
|
3525
|
-
"data-slot": "progress",
|
|
3526
|
-
className: cn(
|
|
3527
|
-
"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
|
|
3528
|
-
className
|
|
3529
|
-
)
|
|
3530
|
-
}, props), {
|
|
3531
|
-
children: /* @__PURE__ */ jsx36(
|
|
3532
|
-
ProgressPrimitive.Indicator,
|
|
3533
|
-
{
|
|
3534
|
-
"data-slot": "progress-indicator",
|
|
3535
|
-
className: "bg-[var(--track-color)] h-full w-full flex-1 transition-all",
|
|
3536
|
-
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
3537
|
-
}
|
|
3538
|
-
)
|
|
3539
|
-
})
|
|
3540
|
-
);
|
|
3541
|
-
}
|
|
3542
|
-
|
|
3543
|
-
// src/components/molecules/timeline.tsx
|
|
3544
|
-
import { Slot as Slot9 } from "@radix-ui/react-slot";
|
|
3545
|
-
import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3546
|
-
function TimelineList(props) {
|
|
3547
|
-
return /* @__PURE__ */ jsx37("ul", { className: "flex flex-col", children: props.children });
|
|
3548
|
-
}
|
|
3549
|
-
var StatusTextMap = {
|
|
3550
|
-
processing: "Processing",
|
|
3551
|
-
upcoming: "Upcoming",
|
|
3552
|
-
error: "Failed"
|
|
3553
|
-
};
|
|
3554
|
-
function TimelineItem(props) {
|
|
3555
|
-
var _a, _b, _c, _d;
|
|
3556
|
-
const { processingStatus, caption } = props;
|
|
3557
|
-
const is_visually_active = processingStatus !== "upcoming";
|
|
3558
|
-
const id = React13.useId();
|
|
3559
|
-
const layoutId = `${id}/${caption}/content-2`;
|
|
3560
|
-
return /* @__PURE__ */ jsx37(
|
|
3561
|
-
motion4.li,
|
|
3562
|
-
{
|
|
3563
|
-
"data-process-status": processingStatus,
|
|
3564
|
-
className: "block bg-brand-black-350 cursor-default select-none font-medium text-brand-white-500",
|
|
3565
|
-
children: /* @__PURE__ */ jsxs27(
|
|
3566
|
-
motion4.div,
|
|
3567
|
-
{
|
|
3568
|
-
initial: { opacity: 0.5 },
|
|
3569
|
-
animate: {
|
|
3570
|
-
opacity: is_visually_active ? 1 : 0.5
|
|
3571
|
-
},
|
|
3572
|
-
className: "flex h-[3.5rem] items-center gap-[0.86rem] py-[0.5625rem] px-[0.75rem] ",
|
|
3573
|
-
children: [
|
|
3574
|
-
props.level === 0 ? /* @__PURE__ */ jsx37(BadgeIcon, __spreadValues({}, props.badge)) : /* @__PURE__ */ jsx37(
|
|
3575
|
-
IconButton,
|
|
3576
|
-
{
|
|
3577
|
-
variant: "level_2",
|
|
3578
|
-
size: "sm",
|
|
3579
|
-
rounded: "full",
|
|
3580
|
-
className: "pointer-events-none !bg-transparent backdrop-blur-[34px]",
|
|
3581
|
-
style: {
|
|
3582
|
-
boxShadow: "0 4px 24px 0 rgba(255, 255, 255, 0.05) inset"
|
|
3583
|
-
},
|
|
3584
|
-
children: /* @__PURE__ */ jsx37(
|
|
3585
|
-
"span",
|
|
3586
|
-
{
|
|
3587
|
-
className: cn(
|
|
3588
|
-
"w-[0.5rem] inline-block aspect-square rounded-lg bg-brand-white-500",
|
|
3589
|
-
{
|
|
3590
|
-
"bg-brand-success-400": processingStatus === "completed",
|
|
3591
|
-
"bg-brand-danger-500": processingStatus === "error"
|
|
3592
|
-
}
|
|
3593
|
-
)
|
|
3594
|
-
}
|
|
3595
|
-
)
|
|
3596
|
-
}
|
|
3597
|
-
),
|
|
3598
|
-
/* @__PURE__ */ jsxs27("div", { className: "flex flex-col flex-1 gap-[calc(4/16rem)]", children: [
|
|
3599
|
-
/* @__PURE__ */ jsx37("div", { className: "text-brand-white-500 text-[1rem] h-[1.25rem]", children: caption }),
|
|
3600
|
-
/* @__PURE__ */ jsxs27("div", { className: "text-xs h-[1rem] text-brand-black-100", children: [
|
|
3601
|
-
processingStatus === "completed" ? /* @__PURE__ */ jsx37("span", { children: /* @__PURE__ */ jsxs27(
|
|
3602
|
-
"a",
|
|
3603
|
-
{
|
|
3604
|
-
href: (_a = props == null ? void 0 : props.data) == null ? void 0 : _a.transactionUrl,
|
|
3605
|
-
className: "flex cursor-pointer gap-[calc(2rem/16)] items-center",
|
|
3606
|
-
children: [
|
|
3607
|
-
/* @__PURE__ */ jsx37("span", { children: "View in explorer " }),
|
|
3608
|
-
/* @__PURE__ */ jsx37(ArrowUpRight_default, { width: "0.75rem", height: "0.75rem" })
|
|
3609
|
-
]
|
|
3610
|
-
}
|
|
3611
|
-
) }) : null,
|
|
3612
|
-
processingStatus === "completed" ? null : /* @__PURE__ */ jsx37("span", { children: /* @__PURE__ */ jsx37("span", { children: (_b = props == null ? void 0 : props.secondary) != null ? _b : StatusTextMap[processingStatus] }) })
|
|
3613
|
-
] })
|
|
3614
|
-
] }),
|
|
3615
|
-
/* @__PURE__ */ jsxs27(AnimatePresence2, { children: [
|
|
3616
|
-
processingStatus === "completed" ? /* @__PURE__ */ jsxs27(
|
|
3617
|
-
motion4.div,
|
|
3618
|
-
{
|
|
3619
|
-
layoutId,
|
|
3620
|
-
initial: { x: 10, opacity: 0 },
|
|
3621
|
-
animate: { x: 0, opacity: 1 },
|
|
3622
|
-
exit: { x: 10, opacity: 0 },
|
|
3623
|
-
className: "flex gap-[calc(8rem/16)] items-center",
|
|
3624
|
-
children: [
|
|
3625
|
-
/* @__PURE__ */ jsx37("span", { className: "text-[calc(13rem/16)] text-brand-black-100", children: (_c = props == null ? void 0 : props.data) == null ? void 0 : _c.completedIn }),
|
|
3626
|
-
/* @__PURE__ */ jsx37(
|
|
3627
|
-
Check_default,
|
|
3628
|
-
{
|
|
3629
|
-
height: "1rem",
|
|
3630
|
-
width: "1rem",
|
|
3631
|
-
className: "text-brand-success-400"
|
|
3632
|
-
}
|
|
3633
|
-
)
|
|
3634
|
-
]
|
|
3635
|
-
}
|
|
3636
|
-
) : null,
|
|
3637
|
-
processingStatus === "processing" ? /* @__PURE__ */ jsxs27(
|
|
3638
|
-
motion4.div,
|
|
3639
|
-
{
|
|
3640
|
-
initial: { x: 10, opacity: 0 },
|
|
3641
|
-
animate: { x: 0, opacity: 1 },
|
|
3642
|
-
exit: { x: 10, opacity: 0 },
|
|
3643
|
-
layoutId,
|
|
3644
|
-
className: "flex gap-[calc(10rem/16)] items-center",
|
|
3645
|
-
children: [
|
|
3646
|
-
/* @__PURE__ */ jsx37("span", { className: "text-[calc(13rem/16)]", children: (_d = props == null ? void 0 : props.data) == null ? void 0 : _d.eta }),
|
|
3647
|
-
/* @__PURE__ */ jsx37(
|
|
3648
|
-
Loader2,
|
|
3649
|
-
{
|
|
3650
|
-
size: "1rem",
|
|
3651
|
-
className: "animate text-brand-black-100 animate-spin"
|
|
3652
|
-
}
|
|
3653
|
-
)
|
|
3654
|
-
]
|
|
3655
|
-
}
|
|
3656
|
-
) : null
|
|
3657
|
-
] })
|
|
3658
|
-
]
|
|
3659
|
-
}
|
|
3660
|
-
)
|
|
3661
|
-
}
|
|
3662
|
-
);
|
|
3663
|
-
}
|
|
3664
|
-
function TimelineListGroup(props) {
|
|
3665
|
-
return /* @__PURE__ */ jsx37("ul", { className: cn("flex flex-col"), children: props.children });
|
|
3666
|
-
}
|
|
3667
|
-
var TimelineRoot = React13.forwardRef((props, ref) => {
|
|
3668
|
-
return /* @__PURE__ */ jsx37(
|
|
3669
|
-
"ul",
|
|
3670
|
-
__spreadProps(__spreadValues({
|
|
3671
|
-
ref
|
|
3672
|
-
}, props), {
|
|
3673
|
-
className: cn(
|
|
3674
|
-
"flex flex-col gap-y-[calc(2rem/16)] *:first:rounded-t-[1rem] *:last:rounded-b-[1rem]",
|
|
3675
|
-
props.className
|
|
3676
|
-
),
|
|
3677
|
-
children: props.children
|
|
3678
|
-
})
|
|
3679
|
-
);
|
|
3680
|
-
});
|
|
3681
|
-
TimelineRoot.displayName = "TimelineRoot";
|
|
3682
|
-
var trackColorMap = {
|
|
3683
|
-
warning: "var(--color-brand-warning-500)",
|
|
3684
|
-
default: "var(--color-brand-black-100)"
|
|
3685
|
-
};
|
|
3686
|
-
function TransactionTimer(props) {
|
|
3687
|
-
const { mins, hours, seconds, severity = "warning" } = props;
|
|
3688
|
-
return /* @__PURE__ */ jsxs27("div", { className: "flex flex-col gap-[calc(6rem/16)]", children: [
|
|
3689
|
-
/* @__PURE__ */ jsxs27(
|
|
3690
|
-
"div",
|
|
3691
|
-
{
|
|
3692
|
-
className: cn(
|
|
3693
|
-
"flex gap-[calc(4rem/16)] font-medium h-[1rem] text-xs items-center",
|
|
3694
|
-
{
|
|
3695
|
-
"text-[#7A775F]": severity === "warning",
|
|
3696
|
-
"text-brand-black-100": severity === "default"
|
|
3399
|
+
"text-[#7A775F]": severity === "warning",
|
|
3400
|
+
"text-brand-black-100": severity === "default"
|
|
3697
3401
|
}
|
|
3698
3402
|
),
|
|
3699
3403
|
children: [
|
|
3700
|
-
/* @__PURE__ */
|
|
3701
|
-
/* @__PURE__ */
|
|
3404
|
+
/* @__PURE__ */ jsx35("span", { children: "Transaction will timeout in" }),
|
|
3405
|
+
/* @__PURE__ */ jsxs24("span", { className: "text-brand-white-500", children: [
|
|
3702
3406
|
String(hours).padStart(2, "0"),
|
|
3703
3407
|
":",
|
|
3704
3408
|
String(mins).padStart(2, "0"),
|
|
3705
3409
|
":",
|
|
3706
3410
|
String(seconds).padStart(2, "0")
|
|
3707
3411
|
] }),
|
|
3708
|
-
/* @__PURE__ */
|
|
3412
|
+
/* @__PURE__ */ jsx35("span", { children: /* @__PURE__ */ jsx35(CircleInfo_default, { width: "1em", height: "1em" }) })
|
|
3709
3413
|
]
|
|
3710
3414
|
}
|
|
3711
3415
|
),
|
|
3712
|
-
/* @__PURE__ */
|
|
3416
|
+
/* @__PURE__ */ jsx35(
|
|
3713
3417
|
Progress,
|
|
3714
3418
|
{
|
|
3715
3419
|
value: props.progress,
|
|
@@ -3723,8 +3427,8 @@ function TransactionTimer(props) {
|
|
|
3723
3427
|
}
|
|
3724
3428
|
function TimerWrap(props) {
|
|
3725
3429
|
const show = props.reveal;
|
|
3726
|
-
return /* @__PURE__ */
|
|
3727
|
-
|
|
3430
|
+
return /* @__PURE__ */ jsxs24(
|
|
3431
|
+
motion3.div,
|
|
3728
3432
|
{
|
|
3729
3433
|
initial: { paddingTop: 0 },
|
|
3730
3434
|
animate: !show ? { paddingBlockStart: 0 } : { paddingBlockStart: "var(--timer-top)" },
|
|
@@ -3733,7 +3437,7 @@ function TimerWrap(props) {
|
|
|
3733
3437
|
},
|
|
3734
3438
|
className: "flex flex-col items-stretch justify-start relative",
|
|
3735
3439
|
children: [
|
|
3736
|
-
/* @__PURE__ */
|
|
3440
|
+
/* @__PURE__ */ jsx35(
|
|
3737
3441
|
"div",
|
|
3738
3442
|
{
|
|
3739
3443
|
className: cn(
|
|
@@ -3743,7 +3447,7 @@ function TimerWrap(props) {
|
|
|
3743
3447
|
children: props.Timer
|
|
3744
3448
|
}
|
|
3745
3449
|
),
|
|
3746
|
-
/* @__PURE__ */
|
|
3450
|
+
/* @__PURE__ */ jsx35(
|
|
3747
3451
|
Slot9,
|
|
3748
3452
|
{
|
|
3749
3453
|
className: cn("min-h-[calc(56rem/11)] z-20 relative !rounded-[1rem]", {
|
|
@@ -3758,7 +3462,7 @@ function TimerWrap(props) {
|
|
|
3758
3462
|
}
|
|
3759
3463
|
|
|
3760
3464
|
// src/components/molecules/toast.tsx
|
|
3761
|
-
import { Fragment as
|
|
3465
|
+
import { Fragment as Fragment8, jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3762
3466
|
var SeverityConfig = {
|
|
3763
3467
|
error: {
|
|
3764
3468
|
icon: Alert_default,
|
|
@@ -3784,67 +3488,74 @@ function ToastBox(props) {
|
|
|
3784
3488
|
event.stopPropagation();
|
|
3785
3489
|
onDismiss == null ? void 0 : onDismiss(event);
|
|
3786
3490
|
};
|
|
3787
|
-
return /* @__PURE__ */
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
className: "text-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3830
|
-
|
|
3831
|
-
|
|
3832
|
-
|
|
3833
|
-
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3491
|
+
return /* @__PURE__ */ jsx36(SmoothCorners, { size: "sm", children: /* @__PURE__ */ jsxs25(
|
|
3492
|
+
"div",
|
|
3493
|
+
{
|
|
3494
|
+
"data-is-toast": "true",
|
|
3495
|
+
className: "bg-brand-black-500 flex flex-col md:flex-row gap-[0.75rem] items-start py-[calc(10rem/16)] px-[calc(12rem/16)] text-muted-foreground",
|
|
3496
|
+
children: [
|
|
3497
|
+
/* @__PURE__ */ jsx36(
|
|
3498
|
+
"div",
|
|
3499
|
+
{
|
|
3500
|
+
className: cn("items-center justify-center shrink-0 grow-0", color),
|
|
3501
|
+
style: { fontSize: "calc(calc(24/16) * 1rem)" },
|
|
3502
|
+
children: /* @__PURE__ */ jsx36(Icon, { width: "1em", height: "1em" })
|
|
3503
|
+
}
|
|
3504
|
+
),
|
|
3505
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex flex-col flex-1", children: [
|
|
3506
|
+
/* @__PURE__ */ jsx36(Text, { variant: "body1", className: "text-foreground", children: props.heading }),
|
|
3507
|
+
/* @__PURE__ */ jsx36(
|
|
3508
|
+
Text,
|
|
3509
|
+
{
|
|
3510
|
+
variant: "caption2",
|
|
3511
|
+
className: "text-muted-foreground text-balance",
|
|
3512
|
+
children: props.children
|
|
3513
|
+
}
|
|
3514
|
+
)
|
|
3515
|
+
] }),
|
|
3516
|
+
/* @__PURE__ */ jsx36("div", { className: "flex gap-[calc(6rem/16)] items-center self-center w-full md:w-auto", children: actions ? /* @__PURE__ */ jsxs25(Fragment8, { children: [
|
|
3517
|
+
/* @__PURE__ */ jsx36("div", { className: "flex gap-[calc(6rem/16)] flex-1 items-center *:flex-1", children: actions }),
|
|
3518
|
+
/* @__PURE__ */ jsx36(
|
|
3519
|
+
IconButton,
|
|
3520
|
+
{
|
|
3521
|
+
className: "cursor-pointer",
|
|
3522
|
+
onClick: handleDismiss,
|
|
3523
|
+
size: "smx",
|
|
3524
|
+
variant: "level_2",
|
|
3525
|
+
rounded: "default",
|
|
3526
|
+
children: /* @__PURE__ */ jsx36(XIcon_default, { width: "1rem" })
|
|
3527
|
+
}
|
|
3528
|
+
)
|
|
3529
|
+
] }) : /* @__PURE__ */ jsx36(
|
|
3530
|
+
Button2,
|
|
3531
|
+
{
|
|
3532
|
+
size: "sm",
|
|
3533
|
+
variant: "level_2",
|
|
3534
|
+
className: "w-full cursor-pointer",
|
|
3535
|
+
onClick: handleDismiss,
|
|
3536
|
+
children: "Close"
|
|
3537
|
+
}
|
|
3538
|
+
) })
|
|
3539
|
+
]
|
|
3540
|
+
}
|
|
3541
|
+
) });
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
// src/components/molecules/transaction-list.tsx
|
|
3545
|
+
import { motion as motion4 } from "motion/react";
|
|
3546
|
+
import { Fragment as Fragment9, jsx as jsx37, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3547
|
+
function TxListItemProcessing(props) {
|
|
3548
|
+
return /* @__PURE__ */ jsx37(GradientContainer, { children: /* @__PURE__ */ jsxs26("div", { className: "rounded-[1rem] bg-brand-black-350 px-[0.75rem] h-[3.75rem] flex items-center", children: [
|
|
3549
|
+
/* @__PURE__ */ jsx37(
|
|
3550
|
+
GradientLine,
|
|
3551
|
+
{
|
|
3552
|
+
behaviour: "progress",
|
|
3842
3553
|
value: props.percentage,
|
|
3843
3554
|
mode: props.status === "failed" ? "error" : "default"
|
|
3844
3555
|
}
|
|
3845
3556
|
),
|
|
3846
|
-
/* @__PURE__ */
|
|
3847
|
-
/* @__PURE__ */
|
|
3557
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex gap-[1rem] flex-1 z-20 text-brand-black-100 font-medium", children: [
|
|
3558
|
+
/* @__PURE__ */ jsx37(
|
|
3848
3559
|
TokenTransferPair,
|
|
3849
3560
|
{
|
|
3850
3561
|
fromToken: props.from,
|
|
@@ -3852,48 +3563,48 @@ function TxListItemProcessing(props) {
|
|
|
3852
3563
|
size: "2rem"
|
|
3853
3564
|
}
|
|
3854
3565
|
),
|
|
3855
|
-
/* @__PURE__ */
|
|
3856
|
-
/* @__PURE__ */
|
|
3857
|
-
/* @__PURE__ */
|
|
3566
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-grow flex-col text-start", children: [
|
|
3567
|
+
/* @__PURE__ */ jsx37("span", { className: "text-brand-white-500 text-[0.875rem] h-[1.25rem]", children: props.caption }),
|
|
3568
|
+
/* @__PURE__ */ jsxs26(StatusBadge, { variant: props.status === "failed" ? "error" : "none", children: [
|
|
3858
3569
|
"~ ",
|
|
3859
3570
|
props.eta
|
|
3860
3571
|
] })
|
|
3861
3572
|
] }),
|
|
3862
|
-
/* @__PURE__ */
|
|
3863
|
-
|
|
3573
|
+
/* @__PURE__ */ jsx37("div", { className: "basis-4/12 max-w-xs shrink-0 flex justify-end h-[2.25rem] whitespace-nowrap", children: /* @__PURE__ */ jsxs26(
|
|
3574
|
+
motion4.div,
|
|
3864
3575
|
{
|
|
3865
3576
|
initial: { y: 0 },
|
|
3866
3577
|
animate: { y: props.status === "failed" ? "-100%" : 0 },
|
|
3867
3578
|
className: "grid",
|
|
3868
3579
|
children: [
|
|
3869
|
-
/* @__PURE__ */
|
|
3870
|
-
|
|
3580
|
+
/* @__PURE__ */ jsxs26(
|
|
3581
|
+
motion4.div,
|
|
3871
3582
|
{
|
|
3872
3583
|
animate: { opacity: props.status === "processing" ? 1 : 0 },
|
|
3873
3584
|
className: "flex flex-col text-end h-[2.25rem]",
|
|
3874
3585
|
children: [
|
|
3875
|
-
/* @__PURE__ */
|
|
3876
|
-
/* @__PURE__ */
|
|
3586
|
+
/* @__PURE__ */ jsx37("span", { className: "text-base text-brand-white-500 h-[1.25rem]", children: props.amount }),
|
|
3587
|
+
/* @__PURE__ */ jsxs26("span", { className: "text-xs h-[1rem]", children: [
|
|
3877
3588
|
props.percentage,
|
|
3878
3589
|
"%"
|
|
3879
3590
|
] })
|
|
3880
3591
|
]
|
|
3881
3592
|
}
|
|
3882
3593
|
),
|
|
3883
|
-
/* @__PURE__ */
|
|
3884
|
-
|
|
3594
|
+
/* @__PURE__ */ jsxs26(
|
|
3595
|
+
motion4.div,
|
|
3885
3596
|
{
|
|
3886
3597
|
animate: { opacity: props.status === "failed" ? 1 : 0 },
|
|
3887
3598
|
className: "flex gap-[0.75rem] items-center h-[2.25rem] justify-end",
|
|
3888
3599
|
children: [
|
|
3889
|
-
/* @__PURE__ */
|
|
3890
|
-
/* @__PURE__ */
|
|
3600
|
+
/* @__PURE__ */ jsx37("span", { className: "text-base text-brand-white-500 h-[1.25rem]", children: props.amount }),
|
|
3601
|
+
/* @__PURE__ */ jsx37(
|
|
3891
3602
|
IconButton,
|
|
3892
3603
|
{
|
|
3893
3604
|
variant: "destructive",
|
|
3894
3605
|
rounded: "default",
|
|
3895
3606
|
size: "smx",
|
|
3896
|
-
children: /* @__PURE__ */
|
|
3607
|
+
children: /* @__PURE__ */ jsx37(RotateCcw_default, { className: "size-4 text-[currentColor]" })
|
|
3897
3608
|
}
|
|
3898
3609
|
)
|
|
3899
3610
|
]
|
|
@@ -3907,20 +3618,23 @@ function TxListItemProcessing(props) {
|
|
|
3907
3618
|
}
|
|
3908
3619
|
var TxListItem = function TxListItem2(props) {
|
|
3909
3620
|
const _a = props, { caption, completedAt, from, to, amount } = _a, rest = __objRest(_a, ["caption", "completedAt", "from", "to", "amount"]);
|
|
3910
|
-
return /* @__PURE__ */
|
|
3621
|
+
return /* @__PURE__ */ jsx37(
|
|
3911
3622
|
"button",
|
|
3912
3623
|
__spreadProps(__spreadValues({}, rest), {
|
|
3913
3624
|
type: "button",
|
|
3914
|
-
className:
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3625
|
+
className: cn(
|
|
3626
|
+
"apperance-none rounded-[1rem] bg-brand-black-350 px-[0.75rem] h-[3.75rem] flex items-center",
|
|
3627
|
+
props.className
|
|
3628
|
+
),
|
|
3629
|
+
children: /* @__PURE__ */ jsxs26("div", { className: "flex gap-[1rem] flex-1 z-20 text-brand-black-100 font-medium", children: [
|
|
3630
|
+
/* @__PURE__ */ jsx37(TokenTransferPair, { fromToken: from, toToken: to, size: "2rem" }),
|
|
3631
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-grow flex-col text-start", children: [
|
|
3632
|
+
/* @__PURE__ */ jsx37("span", { className: "text-brand-white-500 text-[0.875rem] h-[1.25rem]", children: caption }),
|
|
3633
|
+
/* @__PURE__ */ jsx37(StatusBadge, { variant: "success" })
|
|
3920
3634
|
] }),
|
|
3921
|
-
/* @__PURE__ */
|
|
3922
|
-
/* @__PURE__ */
|
|
3923
|
-
/* @__PURE__ */
|
|
3635
|
+
/* @__PURE__ */ jsxs26("div", { className: "shrink-0 flex flex-col text-end", children: [
|
|
3636
|
+
/* @__PURE__ */ jsx37("span", { className: "text-base text-brand-white-500 h-[1.25rem]", children: amount }),
|
|
3637
|
+
/* @__PURE__ */ jsx37("span", { className: "text-xs h-[1rem]", children: completedAt })
|
|
3924
3638
|
] })
|
|
3925
3639
|
] })
|
|
3926
3640
|
})
|
|
@@ -3930,14 +3644,14 @@ function StatusBadge({
|
|
|
3930
3644
|
variant,
|
|
3931
3645
|
children
|
|
3932
3646
|
}) {
|
|
3933
|
-
return /* @__PURE__ */
|
|
3934
|
-
variant === "success" ? /* @__PURE__ */
|
|
3935
|
-
/* @__PURE__ */
|
|
3647
|
+
return /* @__PURE__ */ jsxs26("span", { className: "text-xs h-[1rem] flex items-center gap-[0.125rem]", children: [
|
|
3648
|
+
variant === "success" ? /* @__PURE__ */ jsxs26(Fragment9, { children: [
|
|
3649
|
+
/* @__PURE__ */ jsx37(Check_default, { width: "0.75rem", height: "0.75rem" }),
|
|
3936
3650
|
" ",
|
|
3937
|
-
/* @__PURE__ */
|
|
3651
|
+
/* @__PURE__ */ jsx37("span", { children: "Success" })
|
|
3938
3652
|
] }) : null,
|
|
3939
|
-
variant === "error" ? /* @__PURE__ */
|
|
3940
|
-
/* @__PURE__ */
|
|
3653
|
+
variant === "error" ? /* @__PURE__ */ jsxs26(Fragment9, { children: [
|
|
3654
|
+
/* @__PURE__ */ jsx37(
|
|
3941
3655
|
Alert_default,
|
|
3942
3656
|
{
|
|
3943
3657
|
width: "0.75rem",
|
|
@@ -3945,34 +3659,34 @@ function StatusBadge({
|
|
|
3945
3659
|
className: "text-brand-danger-500"
|
|
3946
3660
|
}
|
|
3947
3661
|
),
|
|
3948
|
-
/* @__PURE__ */
|
|
3662
|
+
/* @__PURE__ */ jsx37("span", { className: "text-brand-danger-500", children: "Order expired" })
|
|
3949
3663
|
] }) : null,
|
|
3950
3664
|
variant === "none" ? children : null
|
|
3951
3665
|
] });
|
|
3952
3666
|
}
|
|
3953
3667
|
function TxList({ children }) {
|
|
3954
|
-
return /* @__PURE__ */
|
|
3668
|
+
return /* @__PURE__ */ jsx37("ul", { className: "flex flex-col gap-[0.5rem]", children });
|
|
3955
3669
|
}
|
|
3956
3670
|
|
|
3957
3671
|
// src/components/molecules/wallet-header.tsx
|
|
3958
|
-
import * as React14 from "react";
|
|
3959
|
-
import { motion as motion6 } from "motion/react";
|
|
3960
|
-
import { cva as cva6 } from "class-variance-authority";
|
|
3961
3672
|
import { Slot as Slot10 } from "@radix-ui/react-slot";
|
|
3673
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
3674
|
+
import { motion as motion5 } from "motion/react";
|
|
3675
|
+
import * as React14 from "react";
|
|
3962
3676
|
|
|
3963
3677
|
// src/components/organisms/assets-collection.tsx
|
|
3964
3678
|
import * as Tab_ from "@radix-ui/react-tabs";
|
|
3965
3679
|
|
|
3966
3680
|
// src/@/ui/tabs.tsx
|
|
3967
3681
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3968
|
-
import { jsx as
|
|
3682
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3969
3683
|
function Tabs(_a) {
|
|
3970
3684
|
var _b = _a, {
|
|
3971
3685
|
className
|
|
3972
3686
|
} = _b, props = __objRest(_b, [
|
|
3973
3687
|
"className"
|
|
3974
3688
|
]);
|
|
3975
|
-
return /* @__PURE__ */
|
|
3689
|
+
return /* @__PURE__ */ jsx38(
|
|
3976
3690
|
TabsPrimitive.Root,
|
|
3977
3691
|
__spreadValues({
|
|
3978
3692
|
"data-slot": "tabs",
|
|
@@ -3986,7 +3700,7 @@ function TabsContent(_a) {
|
|
|
3986
3700
|
} = _b, props = __objRest(_b, [
|
|
3987
3701
|
"className"
|
|
3988
3702
|
]);
|
|
3989
|
-
return /* @__PURE__ */
|
|
3703
|
+
return /* @__PURE__ */ jsx38(
|
|
3990
3704
|
TabsPrimitive.Content,
|
|
3991
3705
|
__spreadValues({
|
|
3992
3706
|
"data-slot": "tabs-content",
|
|
@@ -3996,12 +3710,12 @@ function TabsContent(_a) {
|
|
|
3996
3710
|
}
|
|
3997
3711
|
|
|
3998
3712
|
// src/components/organisms/assets-collection.tsx
|
|
3999
|
-
import { jsx as
|
|
3713
|
+
import { jsx as jsx39, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4000
3714
|
function TabsList2(props) {
|
|
4001
|
-
return /* @__PURE__ */
|
|
3715
|
+
return /* @__PURE__ */ jsx39("nav", { className: "flex flex-col", children: /* @__PURE__ */ jsx39(Tab_.TabsList, { asChild: true, children: /* @__PURE__ */ jsx39("ul", { className: "flex p-0 bg-transparent gap-3", children: props.children }) }) });
|
|
4002
3716
|
}
|
|
4003
3717
|
function TabItem(props) {
|
|
4004
|
-
return /* @__PURE__ */
|
|
3718
|
+
return /* @__PURE__ */ jsx39(
|
|
4005
3719
|
Tab_.TabsTrigger,
|
|
4006
3720
|
{
|
|
4007
3721
|
value: props.value,
|
|
@@ -4014,7 +3728,7 @@ function AssetValueTrend(props) {
|
|
|
4014
3728
|
const { percentage = 0, direction: dir, dollarValue = 0 } = props;
|
|
4015
3729
|
const isZero = dollarValue === 0;
|
|
4016
3730
|
const isUp = isZero ? "up" : dir === "up";
|
|
4017
|
-
return /* @__PURE__ */
|
|
3731
|
+
return /* @__PURE__ */ jsxs27(
|
|
4018
3732
|
"div",
|
|
4019
3733
|
{
|
|
4020
3734
|
className: "inline-flex select-none gap-[0.125rem] text-brand-black-100 h-[1rem] text-[0.7rem] font-medium items-center",
|
|
@@ -4023,7 +3737,7 @@ function AssetValueTrend(props) {
|
|
|
4023
3737
|
"--trend-color": isZero ? "inherit" : !isUp ? "var(--color-brand-danger-500, indigo)" : "var(--color-brand-success-400, cyan)"
|
|
4024
3738
|
},
|
|
4025
3739
|
children: [
|
|
4026
|
-
/* @__PURE__ */
|
|
3740
|
+
/* @__PURE__ */ jsx39("span", { className: "text-[var(--trend-color)]", children: /* @__PURE__ */ jsx39(
|
|
4027
3741
|
ArrowTriangleBottom_default,
|
|
4028
3742
|
{
|
|
4029
3743
|
width: "0.75rem",
|
|
@@ -4034,13 +3748,13 @@ function AssetValueTrend(props) {
|
|
|
4034
3748
|
)
|
|
4035
3749
|
}
|
|
4036
3750
|
) }),
|
|
4037
|
-
/* @__PURE__ */
|
|
4038
|
-
/* @__PURE__ */
|
|
3751
|
+
/* @__PURE__ */ jsxs27("span", { className: "flex items-center", children: [
|
|
3752
|
+
/* @__PURE__ */ jsxs27("span", { className: "text-[var(--trend-color)]", children: [
|
|
4039
3753
|
"$",
|
|
4040
3754
|
dollarValue
|
|
4041
3755
|
] }),
|
|
4042
3756
|
"\xA0",
|
|
4043
|
-
/* @__PURE__ */
|
|
3757
|
+
/* @__PURE__ */ jsxs27("span", { className: "text-[var(--trend-base)]", children: [
|
|
4044
3758
|
"(",
|
|
4045
3759
|
percentage,
|
|
4046
3760
|
"%)"
|
|
@@ -4058,8 +3772,8 @@ function Balance(props) {
|
|
|
4058
3772
|
const [int_, decimal] = String(props.amount).split(".");
|
|
4059
3773
|
const int = Number.isNaN(+int_) ? 0 : int_;
|
|
4060
3774
|
const is_zero = props.amount === 0;
|
|
4061
|
-
return /* @__PURE__ */
|
|
4062
|
-
/* @__PURE__ */
|
|
3775
|
+
return /* @__PURE__ */ jsx39("div", { className: "select-none", children: /* @__PURE__ */ jsxs27("span", { className: "text-[2.375rem] font-medium leading-[2.875rem] whitespace-nowrap", children: [
|
|
3776
|
+
/* @__PURE__ */ jsxs27(
|
|
4063
3777
|
"span",
|
|
4064
3778
|
{
|
|
4065
3779
|
className: cn(
|
|
@@ -4071,11 +3785,11 @@ function Balance(props) {
|
|
|
4071
3785
|
]
|
|
4072
3786
|
}
|
|
4073
3787
|
),
|
|
4074
|
-
/* @__PURE__ */
|
|
3788
|
+
/* @__PURE__ */ jsxs27("span", { className: "text-brand-black-100", children: [
|
|
4075
3789
|
".",
|
|
4076
3790
|
decimal != null ? decimal : "00"
|
|
4077
3791
|
] }),
|
|
4078
|
-
/* @__PURE__ */
|
|
3792
|
+
/* @__PURE__ */ jsxs27("span", { className: "text-brand-white-500", children: [
|
|
4079
3793
|
"\xA0",
|
|
4080
3794
|
suffix
|
|
4081
3795
|
] })
|
|
@@ -4083,7 +3797,7 @@ function Balance(props) {
|
|
|
4083
3797
|
}
|
|
4084
3798
|
|
|
4085
3799
|
// src/components/molecules/wallet-header.tsx
|
|
4086
|
-
import { Fragment as
|
|
3800
|
+
import { Fragment as Fragment11, jsx as jsx40, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4087
3801
|
var WalletHeaderContext = React14.createContext(null);
|
|
4088
3802
|
function useWalletHeader() {
|
|
4089
3803
|
const context = React14.useContext(WalletHeaderContext);
|
|
@@ -4129,7 +3843,7 @@ var WalletHeader = React14.forwardRef(
|
|
|
4129
3843
|
React14.useEffect(() => {
|
|
4130
3844
|
globalWalletHeaderState = show;
|
|
4131
3845
|
}, [show]);
|
|
4132
|
-
return /* @__PURE__ */
|
|
3846
|
+
return /* @__PURE__ */ jsx40(WalletHeaderContext.Provider, { value: { show, setShow }, children: /* @__PURE__ */ jsx40(
|
|
4133
3847
|
Comp,
|
|
4134
3848
|
__spreadProps(__spreadValues({
|
|
4135
3849
|
ref,
|
|
@@ -4145,7 +3859,7 @@ WalletHeader.displayName = "WalletHeader";
|
|
|
4145
3859
|
var WalletConnectedHeader = React14.forwardRef((_a, ref) => {
|
|
4146
3860
|
var _b = _a, { className, accounts, children } = _b, props = __objRest(_b, ["className", "accounts", "children"]);
|
|
4147
3861
|
const { show: open, setShow } = useWalletHeader();
|
|
4148
|
-
return /* @__PURE__ */
|
|
3862
|
+
return /* @__PURE__ */ jsx40(
|
|
4149
3863
|
"button",
|
|
4150
3864
|
__spreadProps(__spreadValues({
|
|
4151
3865
|
ref,
|
|
@@ -4159,9 +3873,9 @@ var WalletConnectedHeader = React14.forwardRef((_a, ref) => {
|
|
|
4159
3873
|
),
|
|
4160
3874
|
onClick: () => setShow((e) => !e)
|
|
4161
3875
|
}, props), {
|
|
4162
|
-
children: /* @__PURE__ */
|
|
4163
|
-
children || /* @__PURE__ */
|
|
4164
|
-
/* @__PURE__ */
|
|
3876
|
+
children: /* @__PURE__ */ jsxs28("div", { className: "flex w-full gap-2 justify-between items-center", children: [
|
|
3877
|
+
children || /* @__PURE__ */ jsx40(AccountStack, { accounts }),
|
|
3878
|
+
/* @__PURE__ */ jsx40(
|
|
4165
3879
|
IconButton,
|
|
4166
3880
|
{
|
|
4167
3881
|
variant: "level_1",
|
|
@@ -4170,7 +3884,7 @@ var WalletConnectedHeader = React14.forwardRef((_a, ref) => {
|
|
|
4170
3884
|
rounded: "full",
|
|
4171
3885
|
size: "sm",
|
|
4172
3886
|
asChild: true,
|
|
4173
|
-
children: /* @__PURE__ */
|
|
3887
|
+
children: /* @__PURE__ */ jsx40("span", { children: /* @__PURE__ */ jsx40(ChevronBottomDown_default, {}) })
|
|
4174
3888
|
}
|
|
4175
3889
|
)
|
|
4176
3890
|
] })
|
|
@@ -4183,7 +3897,7 @@ var WalletHeaderContent = React14.forwardRef((_a, _ref) => {
|
|
|
4183
3897
|
const { show: open } = useWalletHeader();
|
|
4184
3898
|
const containerRef = React14.useRef(null);
|
|
4185
3899
|
const parentRef = React14.useRef(null);
|
|
4186
|
-
const
|
|
3900
|
+
const slideDown = {
|
|
4187
3901
|
show: { opacity: [0, 0.8, 1] },
|
|
4188
3902
|
hide: { opacity: [1, 0.25, 0] }
|
|
4189
3903
|
};
|
|
@@ -4242,8 +3956,8 @@ var WalletHeaderContent = React14.forwardRef((_a, _ref) => {
|
|
|
4242
3956
|
"onTransitionRun",
|
|
4243
3957
|
"onTransitionCancel"
|
|
4244
3958
|
]);
|
|
4245
|
-
return /* @__PURE__ */
|
|
4246
|
-
|
|
3959
|
+
return /* @__PURE__ */ jsx40(
|
|
3960
|
+
motion5.div,
|
|
4247
3961
|
{
|
|
4248
3962
|
ref: parentRef,
|
|
4249
3963
|
initial: { height: 0 },
|
|
@@ -4251,12 +3965,12 @@ var WalletHeaderContent = React14.forwardRef((_a, _ref) => {
|
|
|
4251
3965
|
className: cn("z-10 relative", {
|
|
4252
3966
|
"pointer-events-none": !open
|
|
4253
3967
|
}),
|
|
4254
|
-
children: /* @__PURE__ */
|
|
4255
|
-
|
|
3968
|
+
children: /* @__PURE__ */ jsx40(
|
|
3969
|
+
motion5.div,
|
|
4256
3970
|
__spreadProps(__spreadValues({
|
|
4257
3971
|
ref: containerRef,
|
|
4258
3972
|
initial: { opacity: 0 },
|
|
4259
|
-
variants:
|
|
3973
|
+
variants: slideDown,
|
|
4260
3974
|
transition: { duration: 0.4 },
|
|
4261
3975
|
animate: open ? "show" : "hide",
|
|
4262
3976
|
className: cn(
|
|
@@ -4271,39 +3985,40 @@ var WalletHeaderContent = React14.forwardRef((_a, _ref) => {
|
|
|
4271
3985
|
);
|
|
4272
3986
|
});
|
|
4273
3987
|
WalletHeaderContent.displayName = "WalletHeaderContent";
|
|
4274
|
-
var
|
|
3988
|
+
var AccountStack = React14.forwardRef(
|
|
4275
3989
|
({ accounts = [] }, ref) => {
|
|
4276
3990
|
var _a, _b;
|
|
4277
|
-
return /* @__PURE__ */
|
|
4278
|
-
/* @__PURE__ */
|
|
3991
|
+
return /* @__PURE__ */ jsx40("div", { ref, className: "flex gap-[0.625rem] items-center", children: accounts.length > 0 ? /* @__PURE__ */ jsxs28(React14.Fragment, { children: [
|
|
3992
|
+
/* @__PURE__ */ jsx40("div", { className: "inline-flex -space-x-[0.3125rem]", children: accounts.map((account, index) => /* @__PURE__ */ jsx40(
|
|
4279
3993
|
"div",
|
|
4280
3994
|
{
|
|
4281
3995
|
style: {
|
|
4282
3996
|
zIndex: accounts.length - index,
|
|
4283
3997
|
position: "relative"
|
|
4284
3998
|
},
|
|
4285
|
-
children: /* @__PURE__ */
|
|
3999
|
+
children: /* @__PURE__ */ jsx40(
|
|
4286
4000
|
BadgeIcon,
|
|
4287
4001
|
{
|
|
4288
4002
|
outline: true,
|
|
4289
4003
|
src: account.wallet.image,
|
|
4290
4004
|
alt: account.wallet.name,
|
|
4291
4005
|
badgeSrc: account.network.image,
|
|
4292
|
-
badgeAlt: account.network.name
|
|
4006
|
+
badgeAlt: account.network.name,
|
|
4007
|
+
className: "bg-white"
|
|
4293
4008
|
}
|
|
4294
4009
|
)
|
|
4295
4010
|
},
|
|
4296
4011
|
account.address
|
|
4297
4012
|
)) }),
|
|
4298
|
-
/* @__PURE__ */
|
|
4299
|
-
/* @__PURE__ */
|
|
4013
|
+
/* @__PURE__ */ jsxs28("span", { className: "flex flex-col whitespace-nowrap", children: [
|
|
4014
|
+
/* @__PURE__ */ jsx40("span", { className: "text-base font-medium h-[1.25rem] text-brand-white-500", children: accounts.length > 1 ? /* @__PURE__ */ jsxs28(Fragment11, { children: [
|
|
4300
4015
|
accounts.length,
|
|
4301
4016
|
" wallets"
|
|
4302
|
-
] }) : /* @__PURE__ */
|
|
4303
|
-
/* @__PURE__ */
|
|
4017
|
+
] }) : /* @__PURE__ */ jsx40(Fragment11, { children: shortenAccountAddress((_b = (_a = accounts[0]) == null ? void 0 : _a.address) != null ? _b : "") || "--" }) }),
|
|
4018
|
+
/* @__PURE__ */ jsx40("span", { className: "text-xs text-start h-[1rem] font-medium inline-flex items-center gap-[0.125rem] text-brand-black-100", children: "Connected" })
|
|
4304
4019
|
] })
|
|
4305
|
-
] }) : /* @__PURE__ */
|
|
4306
|
-
/* @__PURE__ */
|
|
4020
|
+
] }) : /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-[0.625rem] select-none", children: [
|
|
4021
|
+
/* @__PURE__ */ jsx40(
|
|
4307
4022
|
IconButton,
|
|
4308
4023
|
{
|
|
4309
4024
|
disabled: true,
|
|
@@ -4311,22 +4026,22 @@ var AccountStack2 = React14.forwardRef(
|
|
|
4311
4026
|
variant: "level_2",
|
|
4312
4027
|
rounded: "full",
|
|
4313
4028
|
size: "sm",
|
|
4314
|
-
children: /* @__PURE__ */
|
|
4029
|
+
children: /* @__PURE__ */ jsx40(Wallet_default, { className: "size-5" })
|
|
4315
4030
|
}
|
|
4316
4031
|
),
|
|
4317
|
-
/* @__PURE__ */
|
|
4032
|
+
/* @__PURE__ */ jsx40("p", { className: "text-base font-medium text-brand-white-100", children: "Connect Your Wallet" })
|
|
4318
4033
|
] }) });
|
|
4319
4034
|
}
|
|
4320
4035
|
);
|
|
4321
|
-
|
|
4036
|
+
AccountStack.displayName = "AccountStack";
|
|
4322
4037
|
var WalletHeaderTabs = React14.forwardRef((_a, ref) => {
|
|
4323
4038
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
4324
|
-
return /* @__PURE__ */
|
|
4039
|
+
return /* @__PURE__ */ jsx40(Tabs, __spreadProps(__spreadValues({ ref, className: cn("gap-0 pt-3", className) }, props), { children }));
|
|
4325
4040
|
});
|
|
4326
4041
|
WalletHeaderTabs.displayName = "WalletHeaderTabs";
|
|
4327
4042
|
var WalletHeaderTabsList = React14.forwardRef((_a, ref) => {
|
|
4328
4043
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
4329
|
-
return /* @__PURE__ */
|
|
4044
|
+
return /* @__PURE__ */ jsx40(
|
|
4330
4045
|
TabsList2,
|
|
4331
4046
|
__spreadProps(__spreadValues({
|
|
4332
4047
|
ref,
|
|
@@ -4339,7 +4054,7 @@ var WalletHeaderTabsList = React14.forwardRef((_a, ref) => {
|
|
|
4339
4054
|
WalletHeaderTabsList.displayName = "WalletHeaderTabsList";
|
|
4340
4055
|
var WalletHeaderTabItem = React14.forwardRef((_a, ref) => {
|
|
4341
4056
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
4342
|
-
return /* @__PURE__ */
|
|
4057
|
+
return /* @__PURE__ */ jsx40(
|
|
4343
4058
|
TabItem,
|
|
4344
4059
|
__spreadProps(__spreadValues({
|
|
4345
4060
|
ref,
|
|
@@ -4355,7 +4070,7 @@ var WalletHeaderTabItem = React14.forwardRef((_a, ref) => {
|
|
|
4355
4070
|
WalletHeaderTabItem.displayName = "WalletHeaderTabItem";
|
|
4356
4071
|
var WalletHeaderTabsContent = React14.forwardRef((_a, ref) => {
|
|
4357
4072
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
4358
|
-
return /* @__PURE__ */
|
|
4073
|
+
return /* @__PURE__ */ jsx40(
|
|
4359
4074
|
TabsContent,
|
|
4360
4075
|
__spreadProps(__spreadValues({
|
|
4361
4076
|
ref,
|
|
@@ -4364,378 +4079,1110 @@ var WalletHeaderTabsContent = React14.forwardRef((_a, ref) => {
|
|
|
4364
4079
|
children
|
|
4365
4080
|
})
|
|
4366
4081
|
);
|
|
4367
|
-
});
|
|
4368
|
-
WalletHeaderTabsContent.displayName = "WalletHeaderTabsContent";
|
|
4369
|
-
var WalletHeaderContentBlur = React14.forwardRef((_a, ref) => {
|
|
4370
|
-
var _b = _a, { className, children, asChild = false } = _b, props = __objRest(_b, ["className", "children", "asChild"]);
|
|
4371
|
-
const { show: open } = useWalletHeader();
|
|
4372
|
-
const Comp = asChild ? Slot10 : "div";
|
|
4373
|
-
return /* @__PURE__ */
|
|
4374
|
-
Comp,
|
|
4375
|
-
__spreadProps(__spreadValues({
|
|
4376
|
-
ref,
|
|
4377
|
-
className: cn(
|
|
4378
|
-
"transition-all pt-[1rem]",
|
|
4082
|
+
});
|
|
4083
|
+
WalletHeaderTabsContent.displayName = "WalletHeaderTabsContent";
|
|
4084
|
+
var WalletHeaderContentBlur = React14.forwardRef((_a, ref) => {
|
|
4085
|
+
var _b = _a, { className, children, asChild = false } = _b, props = __objRest(_b, ["className", "children", "asChild"]);
|
|
4086
|
+
const { show: open } = useWalletHeader();
|
|
4087
|
+
const Comp = asChild ? Slot10 : "div";
|
|
4088
|
+
return /* @__PURE__ */ jsx40(
|
|
4089
|
+
Comp,
|
|
4090
|
+
__spreadProps(__spreadValues({
|
|
4091
|
+
ref,
|
|
4092
|
+
className: cn(
|
|
4093
|
+
"transition-all pt-[1rem]",
|
|
4094
|
+
{
|
|
4095
|
+
"opacity-15 pointer-events-none filter blur-[2px]": open
|
|
4096
|
+
},
|
|
4097
|
+
className
|
|
4098
|
+
)
|
|
4099
|
+
}, props), {
|
|
4100
|
+
children
|
|
4101
|
+
})
|
|
4102
|
+
);
|
|
4103
|
+
});
|
|
4104
|
+
WalletHeaderContentBlur.displayName = "WalletHeaderContentBlur";
|
|
4105
|
+
|
|
4106
|
+
// src/components/navigation/header.tsx
|
|
4107
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
4108
|
+
function HeaderGradient() {
|
|
4109
|
+
return /* @__PURE__ */ jsx41("div", { className: "absolute inset-0 h-[3px] bg-gradient-brand-animated" });
|
|
4110
|
+
}
|
|
4111
|
+
function HeaderContent({
|
|
4112
|
+
children,
|
|
4113
|
+
className
|
|
4114
|
+
}) {
|
|
4115
|
+
return /* @__PURE__ */ jsx41(
|
|
4116
|
+
"div",
|
|
4117
|
+
{
|
|
4118
|
+
className: cn(
|
|
4119
|
+
"header-container w-full h-full px-4 md:px-6 flex items-center justify-between mx-auto",
|
|
4120
|
+
className
|
|
4121
|
+
),
|
|
4122
|
+
children
|
|
4123
|
+
}
|
|
4124
|
+
);
|
|
4125
|
+
}
|
|
4126
|
+
function Header({
|
|
4127
|
+
children,
|
|
4128
|
+
className
|
|
4129
|
+
}) {
|
|
4130
|
+
return /* @__PURE__ */ jsx41(
|
|
4131
|
+
"header",
|
|
4132
|
+
{
|
|
4133
|
+
className: cn(
|
|
4134
|
+
"fixed top-0 left-0 z-50 h-20 backdrop-blur-sm w-full",
|
|
4135
|
+
className
|
|
4136
|
+
),
|
|
4137
|
+
children
|
|
4138
|
+
}
|
|
4139
|
+
);
|
|
4140
|
+
}
|
|
4141
|
+
|
|
4142
|
+
// src/components/navigation/tabs.tsx
|
|
4143
|
+
import { jsx as jsx42, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4144
|
+
function TabAltHeader({
|
|
4145
|
+
label,
|
|
4146
|
+
isNew,
|
|
4147
|
+
isActive,
|
|
4148
|
+
onClick,
|
|
4149
|
+
className = ""
|
|
4150
|
+
}) {
|
|
4151
|
+
return /* @__PURE__ */ jsx42(
|
|
4152
|
+
"button",
|
|
4153
|
+
{
|
|
4154
|
+
type: "button",
|
|
4155
|
+
onClick,
|
|
4156
|
+
className: cn(
|
|
4157
|
+
"relative cursor-pointer w-max duration-200 transition-colors",
|
|
4158
|
+
isActive ? "text-white" : "text-brand-black-100 hover:text-white",
|
|
4159
|
+
className
|
|
4160
|
+
),
|
|
4161
|
+
children: /* @__PURE__ */ jsxs29("span", { className: "relative z-10 flex items-center gap-2", children: [
|
|
4162
|
+
/* @__PURE__ */ jsx42("span", { className: "font-medium", children: label }),
|
|
4163
|
+
isNew && /* @__PURE__ */ jsx42("span", { className: "text-brand-warning-500 caption-text absolute top-0 left-[100%] w-max", children: "New" })
|
|
4164
|
+
] })
|
|
4165
|
+
}
|
|
4166
|
+
);
|
|
4167
|
+
}
|
|
4168
|
+
function TabAltHeaders({
|
|
4169
|
+
children,
|
|
4170
|
+
className = ""
|
|
4171
|
+
}) {
|
|
4172
|
+
return /* @__PURE__ */ jsx42("div", { className: cn("flex space-x-3 mb-6", className), children });
|
|
4173
|
+
}
|
|
4174
|
+
function TabAltContent({
|
|
4175
|
+
children,
|
|
4176
|
+
className = ""
|
|
4177
|
+
}) {
|
|
4178
|
+
return /* @__PURE__ */ jsx42("div", { className, children });
|
|
4179
|
+
}
|
|
4180
|
+
function TabAltPanel({
|
|
4181
|
+
id,
|
|
4182
|
+
activeTab,
|
|
4183
|
+
children,
|
|
4184
|
+
className = ""
|
|
4185
|
+
}) {
|
|
4186
|
+
if (activeTab !== id) return null;
|
|
4187
|
+
return /* @__PURE__ */ jsx42("div", { className, children }, id);
|
|
4188
|
+
}
|
|
4189
|
+
function TabAlt({
|
|
4190
|
+
children,
|
|
4191
|
+
className = ""
|
|
4192
|
+
}) {
|
|
4193
|
+
return /* @__PURE__ */ jsx42("div", { className: cn("w-full", className), children });
|
|
4194
|
+
}
|
|
4195
|
+
|
|
4196
|
+
// src/@/ui/tooltip.tsx
|
|
4197
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
4198
|
+
import { jsx as jsx43, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4199
|
+
function TooltipProvider(_a) {
|
|
4200
|
+
var _b = _a, {
|
|
4201
|
+
delayDuration = 0
|
|
4202
|
+
} = _b, props = __objRest(_b, [
|
|
4203
|
+
"delayDuration"
|
|
4204
|
+
]);
|
|
4205
|
+
return /* @__PURE__ */ jsx43(
|
|
4206
|
+
TooltipPrimitive.Provider,
|
|
4207
|
+
__spreadValues({
|
|
4208
|
+
"data-slot": "tooltip-provider",
|
|
4209
|
+
delayDuration
|
|
4210
|
+
}, props)
|
|
4211
|
+
);
|
|
4212
|
+
}
|
|
4213
|
+
function Tooltip(_a) {
|
|
4214
|
+
var props = __objRest(_a, []);
|
|
4215
|
+
return /* @__PURE__ */ jsx43(TooltipProvider, { children: /* @__PURE__ */ jsx43(TooltipPrimitive.Root, __spreadValues({ "data-slot": "tooltip" }, props)) });
|
|
4216
|
+
}
|
|
4217
|
+
function TooltipTrigger(_a) {
|
|
4218
|
+
var props = __objRest(_a, []);
|
|
4219
|
+
return /* @__PURE__ */ jsx43(TooltipPrimitive.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
|
|
4220
|
+
}
|
|
4221
|
+
function TooltipContent(_a) {
|
|
4222
|
+
var _b = _a, {
|
|
4223
|
+
className,
|
|
4224
|
+
sideOffset = 0,
|
|
4225
|
+
children
|
|
4226
|
+
} = _b, props = __objRest(_b, [
|
|
4227
|
+
"className",
|
|
4228
|
+
"sideOffset",
|
|
4229
|
+
"children"
|
|
4230
|
+
]);
|
|
4231
|
+
return /* @__PURE__ */ jsx43(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs30(
|
|
4232
|
+
TooltipPrimitive.Content,
|
|
4233
|
+
__spreadProps(__spreadValues({
|
|
4234
|
+
"data-slot": "tooltip-content",
|
|
4235
|
+
sideOffset,
|
|
4236
|
+
className: cn(
|
|
4237
|
+
"bg-brand-black-600 text-brand-black-100 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
|
4238
|
+
className
|
|
4239
|
+
)
|
|
4240
|
+
}, props), {
|
|
4241
|
+
children: [
|
|
4242
|
+
children,
|
|
4243
|
+
/* @__PURE__ */ jsx43(TooltipPrimitive.Arrow, { className: "bg-brand-black-600 fill-brand-black-600 z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
4244
|
+
]
|
|
4245
|
+
})
|
|
4246
|
+
) });
|
|
4247
|
+
}
|
|
4248
|
+
|
|
4249
|
+
// src/components/organisms/settings.tsx
|
|
4250
|
+
import { useState as useState7 } from "react";
|
|
4251
|
+
import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4252
|
+
var PRESET_SLIPPAGES = ["Auto", "0.25%", "0.5%", "0.75%", "1%"];
|
|
4253
|
+
var DEFAULT_TOOLTIP_TEXTS = {
|
|
4254
|
+
bridge: {
|
|
4255
|
+
slippage: "Bridge slippage tolerance helps protect against price changes during cross-chain transaction processing",
|
|
4256
|
+
deadline: "Bridge deadline is the maximum time allowed before the transaction times out and is cancelled"
|
|
4257
|
+
},
|
|
4258
|
+
swap: {
|
|
4259
|
+
slippage: "Swap slippage tolerance helps protect against price changes during token exchange",
|
|
4260
|
+
deadline: "Swap deadline is the maximum time allowed before the transaction times out and is cancelled"
|
|
4261
|
+
}
|
|
4262
|
+
};
|
|
4263
|
+
var Settings = ({
|
|
4264
|
+
isOpen,
|
|
4265
|
+
onClose,
|
|
4266
|
+
slippage = "Auto",
|
|
4267
|
+
deadline,
|
|
4268
|
+
onSlippageChange,
|
|
4269
|
+
onDeadlineChange,
|
|
4270
|
+
type,
|
|
4271
|
+
slippageTooltipText,
|
|
4272
|
+
deadlineTooltipText
|
|
4273
|
+
}) => {
|
|
4274
|
+
const [customSlippage, setCustomSlippage] = useState7("");
|
|
4275
|
+
const [customDeadline, setCustomDeadline] = useState7(deadline);
|
|
4276
|
+
const handleKeyDown = createKeyDownHandler();
|
|
4277
|
+
const handleSlippageSelect = (selectedSlippage) => {
|
|
4278
|
+
onSlippageChange == null ? void 0 : onSlippageChange(selectedSlippage);
|
|
4279
|
+
if (selectedSlippage !== "Custom") {
|
|
4280
|
+
setCustomSlippage("");
|
|
4281
|
+
}
|
|
4282
|
+
};
|
|
4283
|
+
const handleCustomSlippageChange = (e) => {
|
|
4284
|
+
const value = e.target.value;
|
|
4285
|
+
setCustomSlippage(value);
|
|
4286
|
+
if (value) {
|
|
4287
|
+
onSlippageChange == null ? void 0 : onSlippageChange(`${value}%`);
|
|
4288
|
+
}
|
|
4289
|
+
};
|
|
4290
|
+
const handleCustomSlippageBlur = (e) => {
|
|
4291
|
+
const value = Number.parseFloat(e.target.value);
|
|
4292
|
+
if (value > 100) {
|
|
4293
|
+
e.target.value = "100";
|
|
4294
|
+
setCustomSlippage("100");
|
|
4295
|
+
onSlippageChange == null ? void 0 : onSlippageChange("100%");
|
|
4296
|
+
} else if (value < 0) {
|
|
4297
|
+
e.target.value = "0";
|
|
4298
|
+
setCustomSlippage("0");
|
|
4299
|
+
onSlippageChange == null ? void 0 : onSlippageChange("0%");
|
|
4300
|
+
}
|
|
4301
|
+
};
|
|
4302
|
+
const handleDeadlineChange = (e) => {
|
|
4303
|
+
const value = e.target.value;
|
|
4304
|
+
setCustomDeadline(value);
|
|
4305
|
+
onDeadlineChange == null ? void 0 : onDeadlineChange(value);
|
|
4306
|
+
};
|
|
4307
|
+
const handleDeadlineBlur = (e) => {
|
|
4308
|
+
const value = Number.parseFloat(e.target.value);
|
|
4309
|
+
if (value < 0) {
|
|
4310
|
+
e.target.value = "0";
|
|
4311
|
+
setCustomDeadline("0");
|
|
4312
|
+
onDeadlineChange == null ? void 0 : onDeadlineChange("0");
|
|
4313
|
+
}
|
|
4314
|
+
};
|
|
4315
|
+
const isSlippageSelected = (option) => {
|
|
4316
|
+
if (option === "Custom") {
|
|
4317
|
+
return slippage !== "Auto" && !PRESET_SLIPPAGES.includes(slippage);
|
|
4318
|
+
}
|
|
4319
|
+
return slippage === option;
|
|
4320
|
+
};
|
|
4321
|
+
const isCustomSlippageActive = isSlippageSelected("Custom");
|
|
4322
|
+
const title = type === "bridge" ? "Bridge" : "Swap";
|
|
4323
|
+
const effectiveSlippageTooltip = slippageTooltipText || DEFAULT_TOOLTIP_TEXTS[type].slippage;
|
|
4324
|
+
const effectiveDeadlineTooltip = deadlineTooltipText || DEFAULT_TOOLTIP_TEXTS[type].deadline;
|
|
4325
|
+
return /* @__PURE__ */ jsxs31(Modal, { className: "p-4 !h-max", isOpen, onClose, children: [
|
|
4326
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between", children: [
|
|
4327
|
+
/* @__PURE__ */ jsxs31("div", { className: "body-1 font-medium text-white max-w-[200px] break-words", children: [
|
|
4328
|
+
title,
|
|
4329
|
+
" settings"
|
|
4330
|
+
] }),
|
|
4331
|
+
/* @__PURE__ */ jsx44(
|
|
4332
|
+
XIcon_default,
|
|
4333
|
+
{
|
|
4334
|
+
className: "size-4 cursor-pointer text-brand-black-100 hover:text-white duration-200 transition-colors",
|
|
4335
|
+
onClick: onClose
|
|
4336
|
+
}
|
|
4337
|
+
)
|
|
4338
|
+
] }),
|
|
4339
|
+
/* @__PURE__ */ jsxs31("div", { className: "mt-4", children: [
|
|
4340
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 text-brand-black-100", children: [
|
|
4341
|
+
/* @__PURE__ */ jsxs31("p", { className: "text-caption", children: [
|
|
4342
|
+
title,
|
|
4343
|
+
" Slippage"
|
|
4344
|
+
] }),
|
|
4345
|
+
/* @__PURE__ */ jsxs31(Tooltip, { children: [
|
|
4346
|
+
/* @__PURE__ */ jsx44(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx44(CircleInfo_default, { className: "size-[14px] cursor-pointer hover:text-white duration-200 transition-colors" }) }),
|
|
4347
|
+
/* @__PURE__ */ jsx44(TooltipContent, { children: /* @__PURE__ */ jsx44("p", { className: "text-caption", children: effectiveSlippageTooltip }) })
|
|
4348
|
+
] })
|
|
4349
|
+
] }),
|
|
4350
|
+
/* @__PURE__ */ jsxs31("div", { className: "grid grid-cols-3 gap-2 mt-3", children: [
|
|
4351
|
+
PRESET_SLIPPAGES.map((option) => /* @__PURE__ */ jsx44(
|
|
4352
|
+
"div",
|
|
4353
|
+
{
|
|
4354
|
+
className: cn(
|
|
4355
|
+
"relative rounded-2xl p-[1.5px]",
|
|
4356
|
+
isSlippageSelected(option) ? "animated-gradient-border" : "bg-transparent"
|
|
4357
|
+
),
|
|
4358
|
+
children: /* @__PURE__ */ jsx44(
|
|
4359
|
+
"button",
|
|
4360
|
+
{
|
|
4361
|
+
type: "button",
|
|
4362
|
+
onClick: () => handleSlippageSelect(option),
|
|
4363
|
+
className: "cursor-pointer w-full rounded-[16px] bg-brand-card-100 hover:bg-brand-card-100/80 transition-colors duration-200 p-[14px] flex items-center justify-center min-h-12",
|
|
4364
|
+
children: /* @__PURE__ */ jsx44("p", { className: "body-1 font-medium", children: option })
|
|
4365
|
+
}
|
|
4366
|
+
)
|
|
4367
|
+
},
|
|
4368
|
+
option
|
|
4369
|
+
)),
|
|
4370
|
+
/* @__PURE__ */ jsx44(
|
|
4371
|
+
"div",
|
|
4372
|
+
{
|
|
4373
|
+
className: cn(
|
|
4374
|
+
"relative rounded-2xl p-[1.5px]",
|
|
4375
|
+
isCustomSlippageActive ? "animated-gradient-border" : "bg-transparent"
|
|
4376
|
+
),
|
|
4377
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "relative bg-brand-card-100 rounded-[16px]", children: [
|
|
4378
|
+
/* @__PURE__ */ jsx44(
|
|
4379
|
+
Input,
|
|
4380
|
+
{
|
|
4381
|
+
min: 0,
|
|
4382
|
+
max: 100,
|
|
4383
|
+
value: customSlippage,
|
|
4384
|
+
onChange: handleCustomSlippageChange,
|
|
4385
|
+
onBlur: handleCustomSlippageBlur,
|
|
4386
|
+
onFocus: () => handleSlippageSelect("Custom"),
|
|
4387
|
+
className: "bg-transparent focus-visible:ring-1 focus-visible:ring-brand-black-100 h-12 border-none rounded-[16px] w-full p-4 body-1 pr-8",
|
|
4388
|
+
placeholder: "Custom",
|
|
4389
|
+
type: "number",
|
|
4390
|
+
onKeyDown: handleKeyDown
|
|
4391
|
+
}
|
|
4392
|
+
),
|
|
4393
|
+
/* @__PURE__ */ jsx44("span", { className: "body-1 absolute right-4 top-1/2 -translate-y-1/2 text-brand-black-100", children: "%" })
|
|
4394
|
+
] })
|
|
4395
|
+
}
|
|
4396
|
+
)
|
|
4397
|
+
] })
|
|
4398
|
+
] }),
|
|
4399
|
+
/* @__PURE__ */ jsxs31("div", { className: "mt-6", children: [
|
|
4400
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 text-brand-black-100", children: [
|
|
4401
|
+
/* @__PURE__ */ jsxs31("p", { className: "text-caption", children: [
|
|
4402
|
+
title,
|
|
4403
|
+
" deadline"
|
|
4404
|
+
] }),
|
|
4405
|
+
/* @__PURE__ */ jsxs31(Tooltip, { children: [
|
|
4406
|
+
/* @__PURE__ */ jsx44(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx44(CircleInfo_default, { className: "size-[14px] cursor-pointer hover:text-white duration-200 transition-colors" }) }),
|
|
4407
|
+
/* @__PURE__ */ jsx44(TooltipContent, { children: /* @__PURE__ */ jsx44("p", { className: "text-caption", children: effectiveDeadlineTooltip }) })
|
|
4408
|
+
] })
|
|
4409
|
+
] }),
|
|
4410
|
+
/* @__PURE__ */ jsxs31("div", { className: "relative mt-3", children: [
|
|
4411
|
+
/* @__PURE__ */ jsx44(
|
|
4412
|
+
Input,
|
|
4413
|
+
{
|
|
4414
|
+
value: customDeadline,
|
|
4415
|
+
onChange: handleDeadlineChange,
|
|
4416
|
+
onBlur: handleDeadlineBlur,
|
|
4417
|
+
onKeyDown: handleKeyDown,
|
|
4418
|
+
className: "bg-brand-card-100 focus-visible:ring-1 focus-visible:ring-brand-black-100 h-12 border-none rounded-[16px] w-full p-4 body-1 pr-18",
|
|
4419
|
+
placeholder: "Enter deadline",
|
|
4420
|
+
type: "number",
|
|
4421
|
+
min: 0
|
|
4422
|
+
}
|
|
4423
|
+
),
|
|
4424
|
+
/* @__PURE__ */ jsx44("span", { className: "body-1 absolute right-4 top-1/2 -translate-y-1/2 text-brand-black-100", children: "minutes" })
|
|
4425
|
+
] })
|
|
4426
|
+
] })
|
|
4427
|
+
] });
|
|
4428
|
+
};
|
|
4429
|
+
|
|
4430
|
+
// src/components/organisms/bridge-settings.tsx
|
|
4431
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
4432
|
+
var BridgeSettings = (props) => {
|
|
4433
|
+
return /* @__PURE__ */ jsx45(Settings, __spreadProps(__spreadValues({}, props), { type: "bridge" }));
|
|
4434
|
+
};
|
|
4435
|
+
|
|
4436
|
+
// src/@/ui/sheet.tsx
|
|
4437
|
+
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
4438
|
+
import { jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4439
|
+
function Sheet(_a) {
|
|
4440
|
+
var props = __objRest(_a, []);
|
|
4441
|
+
return /* @__PURE__ */ jsx46(SheetPrimitive.Root, __spreadValues({ "data-slot": "sheet" }, props));
|
|
4442
|
+
}
|
|
4443
|
+
function SheetTrigger(_a) {
|
|
4444
|
+
var props = __objRest(_a, []);
|
|
4445
|
+
return /* @__PURE__ */ jsx46(SheetPrimitive.Trigger, __spreadValues({ "data-slot": "sheet-trigger" }, props));
|
|
4446
|
+
}
|
|
4447
|
+
function SheetPortal(_a) {
|
|
4448
|
+
var props = __objRest(_a, []);
|
|
4449
|
+
return /* @__PURE__ */ jsx46(SheetPrimitive.Portal, __spreadValues({ "data-slot": "sheet-portal" }, props));
|
|
4450
|
+
}
|
|
4451
|
+
function SheetOverlay(_a) {
|
|
4452
|
+
var _b = _a, {
|
|
4453
|
+
className
|
|
4454
|
+
} = _b, props = __objRest(_b, [
|
|
4455
|
+
"className"
|
|
4456
|
+
]);
|
|
4457
|
+
return /* @__PURE__ */ jsx46(
|
|
4458
|
+
SheetPrimitive.Overlay,
|
|
4459
|
+
__spreadValues({
|
|
4460
|
+
"data-slot": "sheet-overlay",
|
|
4461
|
+
className: cn(
|
|
4462
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
4463
|
+
className
|
|
4464
|
+
)
|
|
4465
|
+
}, props)
|
|
4466
|
+
);
|
|
4467
|
+
}
|
|
4468
|
+
function SheetContent(_a) {
|
|
4469
|
+
var _b = _a, {
|
|
4470
|
+
className,
|
|
4471
|
+
children,
|
|
4472
|
+
side = "right"
|
|
4473
|
+
} = _b, props = __objRest(_b, [
|
|
4474
|
+
"className",
|
|
4475
|
+
"children",
|
|
4476
|
+
"side"
|
|
4477
|
+
]);
|
|
4478
|
+
return /* @__PURE__ */ jsxs32(SheetPortal, { children: [
|
|
4479
|
+
/* @__PURE__ */ jsx46(SheetOverlay, {}),
|
|
4480
|
+
/* @__PURE__ */ jsxs32(
|
|
4481
|
+
SheetPrimitive.Content,
|
|
4482
|
+
__spreadProps(__spreadValues({
|
|
4483
|
+
"data-slot": "sheet-content",
|
|
4484
|
+
className: cn(
|
|
4485
|
+
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
4486
|
+
side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-sm",
|
|
4487
|
+
side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
|
|
4488
|
+
side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
|
|
4489
|
+
side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
|
|
4490
|
+
className
|
|
4491
|
+
)
|
|
4492
|
+
}, props), {
|
|
4493
|
+
children: [
|
|
4494
|
+
children,
|
|
4495
|
+
/* @__PURE__ */ jsx46(
|
|
4496
|
+
SheetPrimitive.Close,
|
|
4497
|
+
{
|
|
4498
|
+
asChild: true,
|
|
4499
|
+
className: "absolute top-[1.625rem] -left-10",
|
|
4500
|
+
children: /* @__PURE__ */ jsxs32(
|
|
4501
|
+
IconButton,
|
|
4502
|
+
{
|
|
4503
|
+
className: "cursor-pointer",
|
|
4504
|
+
variant: "secondary",
|
|
4505
|
+
rounded: "full",
|
|
4506
|
+
size: "sm",
|
|
4507
|
+
children: [
|
|
4508
|
+
/* @__PURE__ */ jsx46(ChevronDoubleRight_default, { className: "size-4 text-brand-black-100" }),
|
|
4509
|
+
/* @__PURE__ */ jsx46("span", { className: "sr-only", children: "Close" })
|
|
4510
|
+
]
|
|
4511
|
+
}
|
|
4512
|
+
)
|
|
4513
|
+
}
|
|
4514
|
+
)
|
|
4515
|
+
]
|
|
4516
|
+
})
|
|
4517
|
+
)
|
|
4518
|
+
] });
|
|
4519
|
+
}
|
|
4520
|
+
function SheetHeader(_a) {
|
|
4521
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4522
|
+
return /* @__PURE__ */ jsx46(
|
|
4523
|
+
"div",
|
|
4524
|
+
__spreadValues({
|
|
4525
|
+
"data-slot": "sheet-header",
|
|
4526
|
+
className: cn("flex flex-col gap-1.5 p-4", className)
|
|
4527
|
+
}, props)
|
|
4528
|
+
);
|
|
4529
|
+
}
|
|
4530
|
+
function SheetTitle(_a) {
|
|
4531
|
+
var _b = _a, {
|
|
4532
|
+
className
|
|
4533
|
+
} = _b, props = __objRest(_b, [
|
|
4534
|
+
"className"
|
|
4535
|
+
]);
|
|
4536
|
+
return /* @__PURE__ */ jsx46(
|
|
4537
|
+
SheetPrimitive.Title,
|
|
4538
|
+
__spreadValues({
|
|
4539
|
+
"data-slot": "sheet-title",
|
|
4540
|
+
className: cn("text-foreground font-semibold", className)
|
|
4541
|
+
}, props)
|
|
4542
|
+
);
|
|
4543
|
+
}
|
|
4544
|
+
function SheetDescription(_a) {
|
|
4545
|
+
var _b = _a, {
|
|
4546
|
+
className
|
|
4547
|
+
} = _b, props = __objRest(_b, [
|
|
4548
|
+
"className"
|
|
4549
|
+
]);
|
|
4550
|
+
return /* @__PURE__ */ jsx46(
|
|
4551
|
+
SheetPrimitive.Description,
|
|
4552
|
+
__spreadValues({
|
|
4553
|
+
"data-slot": "sheet-description",
|
|
4554
|
+
className: cn("text-muted-foreground text-sm", className)
|
|
4555
|
+
}, props)
|
|
4556
|
+
);
|
|
4557
|
+
}
|
|
4558
|
+
|
|
4559
|
+
// src/components/navigation/hyperbridge-drawer.tsx
|
|
4560
|
+
import { Drawer as DrawerPrimitive2 } from "vaul";
|
|
4561
|
+
import { Fragment as Fragment12, jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4562
|
+
function HBDrawer(_a) {
|
|
4563
|
+
var props = __objRest(_a, []);
|
|
4564
|
+
return /* @__PURE__ */ jsx47(DrawerPrimitive2.Root, __spreadValues({ "data-slot": "hb-drawer" }, props));
|
|
4565
|
+
}
|
|
4566
|
+
function HBDrawerTrigger(_a) {
|
|
4567
|
+
var props = __objRest(_a, []);
|
|
4568
|
+
return /* @__PURE__ */ jsx47(DrawerPrimitive2.Trigger, __spreadValues({ "data-slot": "hb-drawer-trigger" }, props));
|
|
4569
|
+
}
|
|
4570
|
+
function HBDrawerPortal(_a) {
|
|
4571
|
+
var props = __objRest(_a, []);
|
|
4572
|
+
return /* @__PURE__ */ jsx47(DrawerPrimitive2.Portal, __spreadValues({ "data-slot": "hb-drawer-portal" }, props));
|
|
4573
|
+
}
|
|
4574
|
+
function HBDrawerClose(_a) {
|
|
4575
|
+
var props = __objRest(_a, []);
|
|
4576
|
+
return /* @__PURE__ */ jsx47(DrawerPrimitive2.Close, __spreadValues({ "data-slot": "hb-drawer-close" }, props));
|
|
4577
|
+
}
|
|
4578
|
+
function HBDrawerOverlay(_a) {
|
|
4579
|
+
var _b = _a, {
|
|
4580
|
+
className
|
|
4581
|
+
} = _b, props = __objRest(_b, [
|
|
4582
|
+
"className"
|
|
4583
|
+
]);
|
|
4584
|
+
return /* @__PURE__ */ jsx47(
|
|
4585
|
+
DrawerPrimitive2.Overlay,
|
|
4586
|
+
__spreadValues({
|
|
4587
|
+
"data-slot": "hb-drawer-overlay",
|
|
4588
|
+
className: cn(
|
|
4589
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
4590
|
+
className
|
|
4591
|
+
)
|
|
4592
|
+
}, props)
|
|
4593
|
+
);
|
|
4594
|
+
}
|
|
4595
|
+
function HBDrawerContent(_a) {
|
|
4596
|
+
var _b = _a, {
|
|
4597
|
+
className,
|
|
4598
|
+
children
|
|
4599
|
+
} = _b, props = __objRest(_b, [
|
|
4600
|
+
"className",
|
|
4601
|
+
"children"
|
|
4602
|
+
]);
|
|
4603
|
+
return /* @__PURE__ */ jsxs33(Fragment12, { children: [
|
|
4604
|
+
/* @__PURE__ */ jsx47(HBDrawerOverlay, {}),
|
|
4605
|
+
/* @__PURE__ */ jsxs33(
|
|
4606
|
+
DrawerPrimitive2.Content,
|
|
4607
|
+
__spreadProps(__spreadValues({
|
|
4608
|
+
"data-slot": "hb-drawer-content",
|
|
4609
|
+
className: cn(
|
|
4610
|
+
"group/drawer-content bg-brand-black-550 fixed z-50 flex h-auto flex-col rounded-t-2xl px-4 pb-4 pt-0 border-brand-black-300",
|
|
4611
|
+
"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
|
|
4612
|
+
"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
|
|
4613
|
+
"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
|
|
4614
|
+
"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
|
|
4615
|
+
className
|
|
4616
|
+
)
|
|
4617
|
+
}, props), {
|
|
4618
|
+
children: [
|
|
4619
|
+
/* @__PURE__ */ jsx47("div", { className: "bg-brand-black-350 mx-auto my-2 hidden h-[5px] w-16 shrink-0 rounded-[2.5px] group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
4620
|
+
children
|
|
4621
|
+
]
|
|
4622
|
+
})
|
|
4623
|
+
)
|
|
4624
|
+
] });
|
|
4625
|
+
}
|
|
4626
|
+
function HBDrawerHeader(_a) {
|
|
4627
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4628
|
+
return /* @__PURE__ */ jsx47(
|
|
4629
|
+
"div",
|
|
4630
|
+
__spreadValues({
|
|
4631
|
+
"data-slot": "hb-drawer-header",
|
|
4632
|
+
className: cn(
|
|
4633
|
+
"flex items-center justify-between py-5 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center",
|
|
4634
|
+
className
|
|
4635
|
+
)
|
|
4636
|
+
}, props)
|
|
4637
|
+
);
|
|
4638
|
+
}
|
|
4639
|
+
function HBDrawerFooter(_a) {
|
|
4640
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4641
|
+
return /* @__PURE__ */ jsx47(
|
|
4642
|
+
"div",
|
|
4643
|
+
__spreadValues({
|
|
4644
|
+
"data-slot": "hb-drawer-footer",
|
|
4645
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className)
|
|
4646
|
+
}, props)
|
|
4647
|
+
);
|
|
4648
|
+
}
|
|
4649
|
+
function HBDrawerTitle(_a) {
|
|
4650
|
+
var _b = _a, {
|
|
4651
|
+
className
|
|
4652
|
+
} = _b, props = __objRest(_b, [
|
|
4653
|
+
"className"
|
|
4654
|
+
]);
|
|
4655
|
+
return /* @__PURE__ */ jsx47(
|
|
4656
|
+
DrawerPrimitive2.Title,
|
|
4657
|
+
__spreadValues({
|
|
4658
|
+
"data-slot": "hb-drawer-title",
|
|
4659
|
+
className: cn("text-foreground font-semibold", className)
|
|
4660
|
+
}, props)
|
|
4661
|
+
);
|
|
4662
|
+
}
|
|
4663
|
+
function HBDrawerDescription(_a) {
|
|
4664
|
+
var _b = _a, {
|
|
4665
|
+
className
|
|
4666
|
+
} = _b, props = __objRest(_b, [
|
|
4667
|
+
"className"
|
|
4668
|
+
]);
|
|
4669
|
+
return /* @__PURE__ */ jsx47(
|
|
4670
|
+
DrawerPrimitive2.Description,
|
|
4671
|
+
__spreadValues({
|
|
4672
|
+
"data-slot": "hb-drawer-description",
|
|
4673
|
+
className: cn("text-muted-foreground text-sm", className)
|
|
4674
|
+
}, props)
|
|
4675
|
+
);
|
|
4676
|
+
}
|
|
4677
|
+
|
|
4678
|
+
// src/components/organisms/manage-account.tsx
|
|
4679
|
+
import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4680
|
+
function ManageAccounts() {
|
|
4681
|
+
return /* @__PURE__ */ jsxs34(SheetHeader, { className: "p-[1rem] -mx-[1rem]", children: [
|
|
4682
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-[0.625rem] select-none", children: [
|
|
4683
|
+
/* @__PURE__ */ jsx48(
|
|
4684
|
+
IconButton,
|
|
4379
4685
|
{
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4686
|
+
disabled: true,
|
|
4687
|
+
className: "pointer-events-none !text-brand-white-500",
|
|
4688
|
+
variant: "level_2",
|
|
4689
|
+
rounded: "full",
|
|
4690
|
+
size: "sm",
|
|
4691
|
+
children: /* @__PURE__ */ jsx48(Wallet_default, { className: "size-5" })
|
|
4692
|
+
}
|
|
4693
|
+
),
|
|
4694
|
+
/* @__PURE__ */ jsx48(SheetTitle, { className: "text-brand-white-100", children: /* @__PURE__ */ jsx48("span", { className: "text-base font-medium", children: "Connect Your Wallet" }) })
|
|
4695
|
+
] }),
|
|
4696
|
+
/* @__PURE__ */ jsx48(SheetDescription, { className: "sr-only", children: "Choose a wallet provider to connect to our application." })
|
|
4697
|
+
] });
|
|
4698
|
+
}
|
|
4699
|
+
function HeaderNested(props) {
|
|
4700
|
+
var _a;
|
|
4701
|
+
const { heading, image, onBack, hideBackButton } = props;
|
|
4702
|
+
return /* @__PURE__ */ jsxs34("div", { className: "p-[1rem] -mx-[1rem]", children: [
|
|
4703
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-[0.625rem] select-none", children: [
|
|
4704
|
+
/* @__PURE__ */ jsx48(
|
|
4705
|
+
TokenImage,
|
|
4706
|
+
{
|
|
4707
|
+
src: image.src,
|
|
4708
|
+
className: "w-[2rem]",
|
|
4709
|
+
alt: (_a = image.alt) != null ? _a : heading
|
|
4710
|
+
}
|
|
4711
|
+
),
|
|
4712
|
+
/* @__PURE__ */ jsx48(SheetTitle, { className: "text-brand-white-100 flex-1", children: /* @__PURE__ */ jsx48("span", { className: "text-base font-medium", children: heading }) }),
|
|
4713
|
+
!hideBackButton && /* @__PURE__ */ jsx48(
|
|
4714
|
+
IconButton,
|
|
4715
|
+
{
|
|
4716
|
+
variant: "level_1",
|
|
4717
|
+
rounded: "full",
|
|
4718
|
+
size: "sm",
|
|
4719
|
+
onClick: onBack,
|
|
4720
|
+
children: /* @__PURE__ */ jsx48(
|
|
4721
|
+
StepBack_default,
|
|
4722
|
+
{
|
|
4723
|
+
width: "1rem",
|
|
4724
|
+
height: "1rem",
|
|
4725
|
+
className: "text-brand-black-100"
|
|
4726
|
+
}
|
|
4727
|
+
)
|
|
4728
|
+
}
|
|
4383
4729
|
)
|
|
4384
|
-
}
|
|
4385
|
-
|
|
4730
|
+
] }),
|
|
4731
|
+
/* @__PURE__ */ jsx48(SheetDescription, { className: "sr-only", children: "Choose a wallet provider to connect to our application." })
|
|
4732
|
+
] });
|
|
4733
|
+
}
|
|
4734
|
+
function ListSection({
|
|
4735
|
+
children,
|
|
4736
|
+
caption = "Heading",
|
|
4737
|
+
contentClassName
|
|
4738
|
+
}) {
|
|
4739
|
+
return /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-y-[0.375rem]", children: [
|
|
4740
|
+
/* @__PURE__ */ jsx48("div", { className: "text-caption text-brand-black-100 select-none font-normal", children: caption }),
|
|
4741
|
+
/* @__PURE__ */ jsx48("div", { className: cn("flex flex-col gap-2", contentClassName), children })
|
|
4742
|
+
] });
|
|
4743
|
+
}
|
|
4744
|
+
function CWDrawerContent(_a) {
|
|
4745
|
+
var _b = _a, {
|
|
4746
|
+
children
|
|
4747
|
+
} = _b, props = __objRest(_b, [
|
|
4748
|
+
"children"
|
|
4749
|
+
]);
|
|
4750
|
+
const isMobile = useIsMobile();
|
|
4751
|
+
if (isMobile) {
|
|
4752
|
+
return /* @__PURE__ */ jsx48(HBDrawer, { open: true, children: /* @__PURE__ */ jsx48(HBDrawerContent, { className: "bg-brand-black-550 rounded-t-[1rem] w-full px-[1rem] !max-h-[95vh] h-full border-t border-brand-black-300", children: /* @__PURE__ */ jsx48("div", { className: "flex flex-col", children }) }) });
|
|
4753
|
+
}
|
|
4754
|
+
return /* @__PURE__ */ jsx48(
|
|
4755
|
+
SheetContent,
|
|
4756
|
+
__spreadProps(__spreadValues({}, props), {
|
|
4757
|
+
side: "right",
|
|
4758
|
+
className: "h-full max-h-auto max-w-[calc(29.75rem_+_1.25rem)] select-none border-none shadow-none text-brand-white-500 w-full sm:w-[540px] bg-transparent p-[0.625rem]",
|
|
4759
|
+
children: /* @__PURE__ */ jsx48("div", { className: "bg-brand-black-550 flex-1 flex flex-col rounded-[1rem] w-[23.75rem] px-[1rem]", children })
|
|
4386
4760
|
})
|
|
4387
4761
|
);
|
|
4388
|
-
});
|
|
4389
|
-
WalletHeaderContentBlur.displayName = "WalletHeaderContentBlur";
|
|
4390
|
-
|
|
4391
|
-
// src/components/navigation/header.tsx
|
|
4392
|
-
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
4393
|
-
function HeaderGradient() {
|
|
4394
|
-
return /* @__PURE__ */ jsx43("div", { className: "absolute inset-0 h-[3px] bg-gradient-brand-animated" });
|
|
4395
4762
|
}
|
|
4396
|
-
|
|
4763
|
+
|
|
4764
|
+
// src/components/tokens/swap-token-selector.tsx
|
|
4765
|
+
import { useRef as useRef3 } from "react";
|
|
4766
|
+
import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4767
|
+
var SwapTokenSelector = ({
|
|
4768
|
+
isOpen,
|
|
4769
|
+
onClose,
|
|
4397
4770
|
children,
|
|
4398
4771
|
className
|
|
4399
|
-
}) {
|
|
4400
|
-
return /* @__PURE__ */
|
|
4772
|
+
}) => {
|
|
4773
|
+
return /* @__PURE__ */ jsx49(Modal, { isOpen, onClose, className, children });
|
|
4774
|
+
};
|
|
4775
|
+
var SwapTokenSelectorHeader = ({
|
|
4776
|
+
title,
|
|
4777
|
+
onClose,
|
|
4778
|
+
children,
|
|
4779
|
+
className
|
|
4780
|
+
}) => {
|
|
4781
|
+
return /* @__PURE__ */ jsxs35(
|
|
4401
4782
|
"div",
|
|
4402
4783
|
{
|
|
4403
4784
|
className: cn(
|
|
4404
|
-
"
|
|
4785
|
+
"bg-brand-black-550 px-6 pt-6 pb-4 transition-all duration-200",
|
|
4405
4786
|
className
|
|
4406
4787
|
),
|
|
4407
|
-
children
|
|
4788
|
+
children: [
|
|
4789
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between", children: [
|
|
4790
|
+
title && /* @__PURE__ */ jsx49("div", { className: "body-1 font-medium text-white max-w-[200px] break-words", children: title }),
|
|
4791
|
+
onClose && /* @__PURE__ */ jsx49(
|
|
4792
|
+
XIcon_default,
|
|
4793
|
+
{
|
|
4794
|
+
className: "size-4 cursor-pointer text-brand-black-100 hover:text-white duration-200 transition-colors",
|
|
4795
|
+
onClick: onClose
|
|
4796
|
+
}
|
|
4797
|
+
)
|
|
4798
|
+
] }),
|
|
4799
|
+
children
|
|
4800
|
+
]
|
|
4408
4801
|
}
|
|
4409
4802
|
);
|
|
4410
|
-
}
|
|
4411
|
-
|
|
4803
|
+
};
|
|
4804
|
+
var SwapTokenSelectorSearch = ({
|
|
4412
4805
|
children,
|
|
4413
4806
|
className
|
|
4414
|
-
}) {
|
|
4415
|
-
return /* @__PURE__ */
|
|
4416
|
-
|
|
4807
|
+
}) => {
|
|
4808
|
+
return /* @__PURE__ */ jsx49("div", { className: cn("mt-4", className), children });
|
|
4809
|
+
};
|
|
4810
|
+
var SwapTokenSelectorContent = ({
|
|
4811
|
+
children,
|
|
4812
|
+
className
|
|
4813
|
+
}) => {
|
|
4814
|
+
const scrollRef = useRef3(null);
|
|
4815
|
+
return /* @__PURE__ */ jsxs35("div", { className: "relative flex-1 flex flex-col min-h-0", children: [
|
|
4816
|
+
/* @__PURE__ */ jsx49(ScrollAwareSeparator, { scrollRef }),
|
|
4817
|
+
/* @__PURE__ */ jsx49(ScrollArea, { ref: scrollRef, className: "h-full", children: /* @__PURE__ */ jsx49("div", { className: cn("px-6 pb-6 space-y-4", className), children }) })
|
|
4818
|
+
] });
|
|
4819
|
+
};
|
|
4820
|
+
var SwapTokenSelectorSection = ({
|
|
4821
|
+
title,
|
|
4822
|
+
children,
|
|
4823
|
+
className
|
|
4824
|
+
}) => {
|
|
4825
|
+
return /* @__PURE__ */ jsxs35("div", { className: cn("flex flex-col", className), children: [
|
|
4826
|
+
title && /* @__PURE__ */ jsx49("p", { className: "text-caption text-brand-black-100 mb-2", children: title }),
|
|
4827
|
+
/* @__PURE__ */ jsx49("div", { className: "space-y-2", children })
|
|
4828
|
+
] });
|
|
4829
|
+
};
|
|
4830
|
+
var SwapTokenSelectorEmpty = ({
|
|
4831
|
+
children,
|
|
4832
|
+
className
|
|
4833
|
+
}) => {
|
|
4834
|
+
return /* @__PURE__ */ jsx49(
|
|
4835
|
+
"div",
|
|
4417
4836
|
{
|
|
4418
4837
|
className: cn(
|
|
4419
|
-
"
|
|
4838
|
+
"text-center py-8 h-full flex items-center justify-center",
|
|
4420
4839
|
className
|
|
4421
4840
|
),
|
|
4422
4841
|
children
|
|
4423
4842
|
}
|
|
4424
4843
|
);
|
|
4425
|
-
}
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
isNew,
|
|
4432
|
-
isActive,
|
|
4844
|
+
};
|
|
4845
|
+
var SwapTokenItem = ({
|
|
4846
|
+
token,
|
|
4847
|
+
network,
|
|
4848
|
+
address,
|
|
4849
|
+
isActive = false,
|
|
4433
4850
|
onClick,
|
|
4434
|
-
className
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4851
|
+
className,
|
|
4852
|
+
amount,
|
|
4853
|
+
usdValue
|
|
4854
|
+
}) => {
|
|
4855
|
+
return /* @__PURE__ */ jsx49(
|
|
4856
|
+
"div",
|
|
4438
4857
|
{
|
|
4439
|
-
type: "button",
|
|
4440
|
-
onClick,
|
|
4441
4858
|
className: cn(
|
|
4442
|
-
"relative
|
|
4443
|
-
isActive
|
|
4859
|
+
"relative p-[1.5px] rounded-[16px]",
|
|
4860
|
+
isActive && "animated-gradient-border",
|
|
4861
|
+
className
|
|
4862
|
+
),
|
|
4863
|
+
children: /* @__PURE__ */ jsxs35(
|
|
4864
|
+
"button",
|
|
4865
|
+
{
|
|
4866
|
+
type: "button",
|
|
4867
|
+
className: "cursor-pointer flex items-center justify-between w-full bg-brand-black-500 hover:bg-brand-black-300 duration-200 transition-colors p-3 rounded-[16px]",
|
|
4868
|
+
onClick,
|
|
4869
|
+
children: [
|
|
4870
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center text-start gap-3", children: [
|
|
4871
|
+
/* @__PURE__ */ jsx49(
|
|
4872
|
+
BadgeIcon,
|
|
4873
|
+
{
|
|
4874
|
+
src: token.image,
|
|
4875
|
+
alt: token.symbol,
|
|
4876
|
+
badgeSrc: network.image,
|
|
4877
|
+
badgeAlt: network.name
|
|
4878
|
+
}
|
|
4879
|
+
),
|
|
4880
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-[2px] items-start", children: [
|
|
4881
|
+
/* @__PURE__ */ jsx49("p", { className: "body-1 font-medium text-white", children: token.name }),
|
|
4882
|
+
address
|
|
4883
|
+
] })
|
|
4884
|
+
] }),
|
|
4885
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex flex-col items-end gap-[2px]", children: [
|
|
4886
|
+
/* @__PURE__ */ jsx49("p", { className: "body-1 font-medium text-white", children: amount }),
|
|
4887
|
+
/* @__PURE__ */ jsx49("p", { className: "text-caption text-brand-black-100", children: usdValue })
|
|
4888
|
+
] })
|
|
4889
|
+
]
|
|
4890
|
+
}
|
|
4891
|
+
)
|
|
4892
|
+
}
|
|
4893
|
+
);
|
|
4894
|
+
};
|
|
4895
|
+
|
|
4896
|
+
// src/@/ui/dropdown-menu.tsx
|
|
4897
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
4898
|
+
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
|
|
4899
|
+
import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4900
|
+
function DropdownMenu(_a) {
|
|
4901
|
+
var props = __objRest(_a, []);
|
|
4902
|
+
return /* @__PURE__ */ jsx50(DropdownMenuPrimitive.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
|
|
4903
|
+
}
|
|
4904
|
+
function DropdownMenuPortal(_a) {
|
|
4905
|
+
var props = __objRest(_a, []);
|
|
4906
|
+
return /* @__PURE__ */ jsx50(DropdownMenuPrimitive.Portal, __spreadValues({ "data-slot": "dropdown-menu-portal" }, props));
|
|
4907
|
+
}
|
|
4908
|
+
function DropdownMenuTrigger(_a) {
|
|
4909
|
+
var props = __objRest(_a, []);
|
|
4910
|
+
return /* @__PURE__ */ jsx50(
|
|
4911
|
+
DropdownMenuPrimitive.Trigger,
|
|
4912
|
+
__spreadValues({
|
|
4913
|
+
"data-slot": "dropdown-menu-trigger"
|
|
4914
|
+
}, props)
|
|
4915
|
+
);
|
|
4916
|
+
}
|
|
4917
|
+
function DropdownMenuContent(_a) {
|
|
4918
|
+
var _b = _a, {
|
|
4919
|
+
className,
|
|
4920
|
+
sideOffset = 4
|
|
4921
|
+
} = _b, props = __objRest(_b, [
|
|
4922
|
+
"className",
|
|
4923
|
+
"sideOffset"
|
|
4924
|
+
]);
|
|
4925
|
+
return /* @__PURE__ */ jsx50(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx50(
|
|
4926
|
+
DropdownMenuPrimitive.Content,
|
|
4927
|
+
__spreadValues({
|
|
4928
|
+
"data-slot": "dropdown-menu-content",
|
|
4929
|
+
sideOffset,
|
|
4930
|
+
className: cn(
|
|
4931
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-xl p-1 shadow-md",
|
|
4932
|
+
className
|
|
4933
|
+
)
|
|
4934
|
+
}, props)
|
|
4935
|
+
) });
|
|
4936
|
+
}
|
|
4937
|
+
function DropdownMenuGroup(_a) {
|
|
4938
|
+
var props = __objRest(_a, []);
|
|
4939
|
+
return /* @__PURE__ */ jsx50(DropdownMenuPrimitive.Group, __spreadValues({ "data-slot": "dropdown-menu-group" }, props));
|
|
4940
|
+
}
|
|
4941
|
+
function DropdownMenuItem(_a) {
|
|
4942
|
+
var _b = _a, {
|
|
4943
|
+
className,
|
|
4944
|
+
inset,
|
|
4945
|
+
variant = "default"
|
|
4946
|
+
} = _b, props = __objRest(_b, [
|
|
4947
|
+
"className",
|
|
4948
|
+
"inset",
|
|
4949
|
+
"variant"
|
|
4950
|
+
]);
|
|
4951
|
+
return /* @__PURE__ */ jsx50(
|
|
4952
|
+
DropdownMenuPrimitive.Item,
|
|
4953
|
+
__spreadValues({
|
|
4954
|
+
"data-slot": "dropdown-menu-item",
|
|
4955
|
+
"data-inset": inset,
|
|
4956
|
+
"data-variant": variant,
|
|
4957
|
+
className: cn(
|
|
4958
|
+
"focus:bg-accent first:-mt-1 last:-mb-1 -mx-1 focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 px-2.5 py-3 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
4959
|
+
className
|
|
4960
|
+
)
|
|
4961
|
+
}, props)
|
|
4962
|
+
);
|
|
4963
|
+
}
|
|
4964
|
+
function DropdownMenuCheckboxItem(_a) {
|
|
4965
|
+
var _b = _a, {
|
|
4966
|
+
className,
|
|
4967
|
+
children,
|
|
4968
|
+
checked
|
|
4969
|
+
} = _b, props = __objRest(_b, [
|
|
4970
|
+
"className",
|
|
4971
|
+
"children",
|
|
4972
|
+
"checked"
|
|
4973
|
+
]);
|
|
4974
|
+
return /* @__PURE__ */ jsxs36(
|
|
4975
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
4976
|
+
__spreadProps(__spreadValues({
|
|
4977
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
4978
|
+
className: cn(
|
|
4979
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
4980
|
+
className
|
|
4981
|
+
),
|
|
4982
|
+
checked
|
|
4983
|
+
}, props), {
|
|
4984
|
+
children: [
|
|
4985
|
+
/* @__PURE__ */ jsx50("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx50(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx50(CheckIcon, { className: "size-4" }) }) }),
|
|
4986
|
+
children
|
|
4987
|
+
]
|
|
4988
|
+
})
|
|
4989
|
+
);
|
|
4990
|
+
}
|
|
4991
|
+
function DropdownMenuRadioGroup(_a) {
|
|
4992
|
+
var props = __objRest(_a, []);
|
|
4993
|
+
return /* @__PURE__ */ jsx50(
|
|
4994
|
+
DropdownMenuPrimitive.RadioGroup,
|
|
4995
|
+
__spreadValues({
|
|
4996
|
+
"data-slot": "dropdown-menu-radio-group"
|
|
4997
|
+
}, props)
|
|
4998
|
+
);
|
|
4999
|
+
}
|
|
5000
|
+
function DropdownMenuRadioItem(_a) {
|
|
5001
|
+
var _b = _a, {
|
|
5002
|
+
className,
|
|
5003
|
+
children
|
|
5004
|
+
} = _b, props = __objRest(_b, [
|
|
5005
|
+
"className",
|
|
5006
|
+
"children"
|
|
5007
|
+
]);
|
|
5008
|
+
return /* @__PURE__ */ jsxs36(
|
|
5009
|
+
DropdownMenuPrimitive.RadioItem,
|
|
5010
|
+
__spreadProps(__spreadValues({
|
|
5011
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
5012
|
+
className: cn(
|
|
5013
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
5014
|
+
className
|
|
5015
|
+
)
|
|
5016
|
+
}, props), {
|
|
5017
|
+
children: [
|
|
5018
|
+
/* @__PURE__ */ jsx50("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx50(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx50(CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
5019
|
+
children
|
|
5020
|
+
]
|
|
5021
|
+
})
|
|
5022
|
+
);
|
|
5023
|
+
}
|
|
5024
|
+
function DropdownMenuLabel(_a) {
|
|
5025
|
+
var _b = _a, {
|
|
5026
|
+
className,
|
|
5027
|
+
inset
|
|
5028
|
+
} = _b, props = __objRest(_b, [
|
|
5029
|
+
"className",
|
|
5030
|
+
"inset"
|
|
5031
|
+
]);
|
|
5032
|
+
return /* @__PURE__ */ jsx50(
|
|
5033
|
+
DropdownMenuPrimitive.Label,
|
|
5034
|
+
__spreadValues({
|
|
5035
|
+
"data-slot": "dropdown-menu-label",
|
|
5036
|
+
"data-inset": inset,
|
|
5037
|
+
className: cn(
|
|
5038
|
+
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
|
|
4444
5039
|
className
|
|
4445
|
-
)
|
|
4446
|
-
|
|
4447
|
-
/* @__PURE__ */ jsx44("span", { className: "font-medium", children: label }),
|
|
4448
|
-
isNew && /* @__PURE__ */ jsx44("span", { className: "text-brand-warning-500 caption-text absolute top-0 left-[100%] w-max", children: "New" })
|
|
4449
|
-
] })
|
|
4450
|
-
}
|
|
5040
|
+
)
|
|
5041
|
+
}, props)
|
|
4451
5042
|
);
|
|
4452
5043
|
}
|
|
4453
|
-
function
|
|
4454
|
-
children,
|
|
4455
|
-
className = ""
|
|
4456
|
-
}) {
|
|
4457
|
-
return /* @__PURE__ */ jsx44("div", { className: cn("flex space-x-3 mb-6", className), children });
|
|
4458
|
-
}
|
|
4459
|
-
function TabAltContent({
|
|
4460
|
-
children,
|
|
4461
|
-
className = ""
|
|
4462
|
-
}) {
|
|
4463
|
-
return /* @__PURE__ */ jsx44("div", { className, children });
|
|
4464
|
-
}
|
|
4465
|
-
function TabAltPanel({
|
|
4466
|
-
id,
|
|
4467
|
-
activeTab,
|
|
4468
|
-
children,
|
|
4469
|
-
className = ""
|
|
4470
|
-
}) {
|
|
4471
|
-
if (activeTab !== id) return null;
|
|
4472
|
-
return /* @__PURE__ */ jsx44("div", { className, children }, id);
|
|
4473
|
-
}
|
|
4474
|
-
function TabAlt({
|
|
4475
|
-
children,
|
|
4476
|
-
className = ""
|
|
4477
|
-
}) {
|
|
4478
|
-
return /* @__PURE__ */ jsx44("div", { className: cn("w-full", className), children });
|
|
4479
|
-
}
|
|
4480
|
-
|
|
4481
|
-
// src/@/ui/tooltip.tsx
|
|
4482
|
-
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
4483
|
-
import { jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4484
|
-
function TooltipProvider(_a) {
|
|
5044
|
+
function DropdownMenuSeparator(_a) {
|
|
4485
5045
|
var _b = _a, {
|
|
4486
|
-
|
|
5046
|
+
className
|
|
4487
5047
|
} = _b, props = __objRest(_b, [
|
|
4488
|
-
"
|
|
5048
|
+
"className"
|
|
4489
5049
|
]);
|
|
4490
|
-
return /* @__PURE__ */
|
|
4491
|
-
|
|
5050
|
+
return /* @__PURE__ */ jsx50(
|
|
5051
|
+
DropdownMenuPrimitive.Separator,
|
|
4492
5052
|
__spreadValues({
|
|
4493
|
-
"data-slot": "
|
|
4494
|
-
|
|
5053
|
+
"data-slot": "dropdown-menu-separator",
|
|
5054
|
+
className: cn("bg-border -mx-1 my-1 h-px", className)
|
|
4495
5055
|
}, props)
|
|
4496
5056
|
);
|
|
4497
5057
|
}
|
|
4498
|
-
function
|
|
4499
|
-
var
|
|
4500
|
-
|
|
5058
|
+
function DropdownMenuShortcut(_a) {
|
|
5059
|
+
var _b = _a, {
|
|
5060
|
+
className
|
|
5061
|
+
} = _b, props = __objRest(_b, [
|
|
5062
|
+
"className"
|
|
5063
|
+
]);
|
|
5064
|
+
return /* @__PURE__ */ jsx50(
|
|
5065
|
+
"span",
|
|
5066
|
+
__spreadValues({
|
|
5067
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
5068
|
+
className: cn(
|
|
5069
|
+
"text-muted-foreground ml-auto text-xs tracking-widest",
|
|
5070
|
+
className
|
|
5071
|
+
)
|
|
5072
|
+
}, props)
|
|
5073
|
+
);
|
|
4501
5074
|
}
|
|
4502
|
-
function
|
|
5075
|
+
function DropdownMenuSub(_a) {
|
|
4503
5076
|
var props = __objRest(_a, []);
|
|
4504
|
-
return /* @__PURE__ */
|
|
5077
|
+
return /* @__PURE__ */ jsx50(DropdownMenuPrimitive.Sub, __spreadValues({ "data-slot": "dropdown-menu-sub" }, props));
|
|
4505
5078
|
}
|
|
4506
|
-
function
|
|
5079
|
+
function DropdownMenuSubTrigger(_a) {
|
|
4507
5080
|
var _b = _a, {
|
|
4508
5081
|
className,
|
|
4509
|
-
|
|
5082
|
+
inset,
|
|
4510
5083
|
children
|
|
4511
5084
|
} = _b, props = __objRest(_b, [
|
|
4512
5085
|
"className",
|
|
4513
|
-
"
|
|
5086
|
+
"inset",
|
|
4514
5087
|
"children"
|
|
4515
5088
|
]);
|
|
4516
|
-
return /* @__PURE__ */
|
|
4517
|
-
|
|
5089
|
+
return /* @__PURE__ */ jsxs36(
|
|
5090
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
4518
5091
|
__spreadProps(__spreadValues({
|
|
4519
|
-
"data-slot": "
|
|
4520
|
-
|
|
5092
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
5093
|
+
"data-inset": inset,
|
|
4521
5094
|
className: cn(
|
|
4522
|
-
"bg-
|
|
5095
|
+
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
|
|
4523
5096
|
className
|
|
4524
5097
|
)
|
|
4525
5098
|
}, props), {
|
|
4526
5099
|
children: [
|
|
4527
5100
|
children,
|
|
4528
|
-
/* @__PURE__ */
|
|
5101
|
+
/* @__PURE__ */ jsx50(ChevronRightIcon, { className: "ml-auto size-4" })
|
|
4529
5102
|
]
|
|
4530
5103
|
})
|
|
4531
|
-
)
|
|
5104
|
+
);
|
|
4532
5105
|
}
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
}
|
|
4547
|
-
};
|
|
4548
|
-
var Settings = ({
|
|
4549
|
-
isOpen,
|
|
4550
|
-
onClose,
|
|
4551
|
-
slippage = "Auto",
|
|
4552
|
-
deadline,
|
|
4553
|
-
onSlippageChange,
|
|
4554
|
-
onDeadlineChange,
|
|
4555
|
-
type,
|
|
4556
|
-
slippageTooltipText,
|
|
4557
|
-
deadlineTooltipText
|
|
4558
|
-
}) => {
|
|
4559
|
-
const [customSlippage, setCustomSlippage] = useState5("");
|
|
4560
|
-
const [customDeadline, setCustomDeadline] = useState5(deadline);
|
|
4561
|
-
const handleKeyDown = createKeyDownHandler();
|
|
4562
|
-
const handleSlippageSelect = (selectedSlippage) => {
|
|
4563
|
-
onSlippageChange == null ? void 0 : onSlippageChange(selectedSlippage);
|
|
4564
|
-
if (selectedSlippage !== "Custom") {
|
|
4565
|
-
setCustomSlippage("");
|
|
4566
|
-
}
|
|
4567
|
-
};
|
|
4568
|
-
const handleCustomSlippageChange = (e) => {
|
|
4569
|
-
const value = e.target.value;
|
|
4570
|
-
setCustomSlippage(value);
|
|
4571
|
-
if (value) {
|
|
4572
|
-
onSlippageChange == null ? void 0 : onSlippageChange(`${value}%`);
|
|
4573
|
-
}
|
|
4574
|
-
};
|
|
4575
|
-
const handleCustomSlippageBlur = (e) => {
|
|
4576
|
-
const value = Number.parseFloat(e.target.value);
|
|
4577
|
-
if (value > 100) {
|
|
4578
|
-
e.target.value = "100";
|
|
4579
|
-
setCustomSlippage("100");
|
|
4580
|
-
onSlippageChange == null ? void 0 : onSlippageChange("100%");
|
|
4581
|
-
} else if (value < 0) {
|
|
4582
|
-
e.target.value = "0";
|
|
4583
|
-
setCustomSlippage("0");
|
|
4584
|
-
onSlippageChange == null ? void 0 : onSlippageChange("0%");
|
|
4585
|
-
}
|
|
4586
|
-
};
|
|
4587
|
-
const handleDeadlineChange = (e) => {
|
|
4588
|
-
const value = e.target.value;
|
|
4589
|
-
setCustomDeadline(value);
|
|
4590
|
-
onDeadlineChange == null ? void 0 : onDeadlineChange(value);
|
|
4591
|
-
};
|
|
4592
|
-
const handleDeadlineBlur = (e) => {
|
|
4593
|
-
const value = Number.parseFloat(e.target.value);
|
|
4594
|
-
if (value < 0) {
|
|
4595
|
-
e.target.value = "0";
|
|
4596
|
-
setCustomDeadline("0");
|
|
4597
|
-
onDeadlineChange == null ? void 0 : onDeadlineChange("0");
|
|
4598
|
-
}
|
|
4599
|
-
};
|
|
4600
|
-
const isSlippageSelected = (option) => {
|
|
4601
|
-
if (option === "Custom") {
|
|
4602
|
-
return slippage !== "Auto" && !PRESET_SLIPPAGES.includes(slippage);
|
|
4603
|
-
}
|
|
4604
|
-
return slippage === option;
|
|
4605
|
-
};
|
|
4606
|
-
const isCustomSlippageActive = isSlippageSelected("Custom");
|
|
4607
|
-
const title = type === "bridge" ? "Bridge" : "Swap";
|
|
4608
|
-
const effectiveSlippageTooltip = slippageTooltipText || DEFAULT_TOOLTIP_TEXTS[type].slippage;
|
|
4609
|
-
const effectiveDeadlineTooltip = deadlineTooltipText || DEFAULT_TOOLTIP_TEXTS[type].deadline;
|
|
4610
|
-
return /* @__PURE__ */ jsxs34(Modal, { className: "p-4 !h-max", isOpen, onClose, children: [
|
|
4611
|
-
/* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between", children: [
|
|
4612
|
-
/* @__PURE__ */ jsxs34("div", { className: "body-1 font-medium text-white max-w-[200px] break-words", children: [
|
|
4613
|
-
title,
|
|
4614
|
-
" settings"
|
|
4615
|
-
] }),
|
|
4616
|
-
/* @__PURE__ */ jsx46(
|
|
4617
|
-
XIcon_default,
|
|
4618
|
-
{
|
|
4619
|
-
className: "size-4 cursor-pointer text-brand-black-100 hover:text-white duration-200 transition-colors",
|
|
4620
|
-
onClick: onClose
|
|
4621
|
-
}
|
|
5106
|
+
function DropdownMenuSubContent(_a) {
|
|
5107
|
+
var _b = _a, {
|
|
5108
|
+
className
|
|
5109
|
+
} = _b, props = __objRest(_b, [
|
|
5110
|
+
"className"
|
|
5111
|
+
]);
|
|
5112
|
+
return /* @__PURE__ */ jsx50(
|
|
5113
|
+
DropdownMenuPrimitive.SubContent,
|
|
5114
|
+
__spreadValues({
|
|
5115
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
5116
|
+
className: cn(
|
|
5117
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
|
|
5118
|
+
className
|
|
4622
5119
|
)
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
/* @__PURE__ */ jsxs34("p", { className: "text-caption", children: [
|
|
4627
|
-
title,
|
|
4628
|
-
" Slippage"
|
|
4629
|
-
] }),
|
|
4630
|
-
/* @__PURE__ */ jsxs34(Tooltip, { children: [
|
|
4631
|
-
/* @__PURE__ */ jsx46(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx46(CircleInfo_default, { className: "size-[14px] cursor-pointer hover:text-white duration-200 transition-colors" }) }),
|
|
4632
|
-
/* @__PURE__ */ jsx46(TooltipContent, { children: /* @__PURE__ */ jsx46("p", { className: "text-caption", children: effectiveSlippageTooltip }) })
|
|
4633
|
-
] })
|
|
4634
|
-
] }),
|
|
4635
|
-
/* @__PURE__ */ jsxs34("div", { className: "grid grid-cols-3 gap-2 mt-3", children: [
|
|
4636
|
-
PRESET_SLIPPAGES.map((option) => /* @__PURE__ */ jsx46(
|
|
4637
|
-
"div",
|
|
4638
|
-
{
|
|
4639
|
-
className: cn(
|
|
4640
|
-
"relative rounded-2xl p-[1.5px]",
|
|
4641
|
-
isSlippageSelected(option) ? "animated-gradient-border" : "bg-transparent"
|
|
4642
|
-
),
|
|
4643
|
-
children: /* @__PURE__ */ jsx46(
|
|
4644
|
-
"button",
|
|
4645
|
-
{
|
|
4646
|
-
type: "button",
|
|
4647
|
-
onClick: () => handleSlippageSelect(option),
|
|
4648
|
-
className: "cursor-pointer w-full rounded-[16px] bg-brand-card-100 hover:bg-brand-card-100/80 transition-colors duration-200 p-[14px] flex items-center justify-center min-h-12",
|
|
4649
|
-
children: /* @__PURE__ */ jsx46("p", { className: "body-1 font-medium", children: option })
|
|
4650
|
-
}
|
|
4651
|
-
)
|
|
4652
|
-
},
|
|
4653
|
-
option
|
|
4654
|
-
)),
|
|
4655
|
-
/* @__PURE__ */ jsx46(
|
|
4656
|
-
"div",
|
|
4657
|
-
{
|
|
4658
|
-
className: cn(
|
|
4659
|
-
"relative rounded-2xl p-[1.5px]",
|
|
4660
|
-
isCustomSlippageActive ? "animated-gradient-border" : "bg-transparent"
|
|
4661
|
-
),
|
|
4662
|
-
children: /* @__PURE__ */ jsxs34("div", { className: "relative bg-brand-card-100 rounded-[16px]", children: [
|
|
4663
|
-
/* @__PURE__ */ jsx46(
|
|
4664
|
-
Input,
|
|
4665
|
-
{
|
|
4666
|
-
min: 0,
|
|
4667
|
-
max: 100,
|
|
4668
|
-
value: customSlippage,
|
|
4669
|
-
onChange: handleCustomSlippageChange,
|
|
4670
|
-
onBlur: handleCustomSlippageBlur,
|
|
4671
|
-
onFocus: () => handleSlippageSelect("Custom"),
|
|
4672
|
-
className: "bg-transparent focus-visible:ring-1 focus-visible:ring-brand-black-100 h-12 border-none rounded-[16px] w-full p-4 body-1 pr-8",
|
|
4673
|
-
placeholder: "Custom",
|
|
4674
|
-
type: "number",
|
|
4675
|
-
onKeyDown: handleKeyDown
|
|
4676
|
-
}
|
|
4677
|
-
),
|
|
4678
|
-
/* @__PURE__ */ jsx46("span", { className: "body-1 absolute right-4 top-1/2 -translate-y-1/2 text-brand-black-100", children: "%" })
|
|
4679
|
-
] })
|
|
4680
|
-
}
|
|
4681
|
-
)
|
|
4682
|
-
] })
|
|
4683
|
-
] }),
|
|
4684
|
-
/* @__PURE__ */ jsxs34("div", { className: "mt-6", children: [
|
|
4685
|
-
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-1 text-brand-black-100", children: [
|
|
4686
|
-
/* @__PURE__ */ jsxs34("p", { className: "text-caption", children: [
|
|
4687
|
-
title,
|
|
4688
|
-
" deadline"
|
|
4689
|
-
] }),
|
|
4690
|
-
/* @__PURE__ */ jsxs34(Tooltip, { children: [
|
|
4691
|
-
/* @__PURE__ */ jsx46(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx46(CircleInfo_default, { className: "size-[14px] cursor-pointer hover:text-white duration-200 transition-colors" }) }),
|
|
4692
|
-
/* @__PURE__ */ jsx46(TooltipContent, { children: /* @__PURE__ */ jsx46("p", { className: "text-caption", children: effectiveDeadlineTooltip }) })
|
|
4693
|
-
] })
|
|
4694
|
-
] }),
|
|
4695
|
-
/* @__PURE__ */ jsxs34("div", { className: "relative mt-3", children: [
|
|
4696
|
-
/* @__PURE__ */ jsx46(
|
|
4697
|
-
Input,
|
|
4698
|
-
{
|
|
4699
|
-
value: customDeadline,
|
|
4700
|
-
onChange: handleDeadlineChange,
|
|
4701
|
-
onBlur: handleDeadlineBlur,
|
|
4702
|
-
onKeyDown: handleKeyDown,
|
|
4703
|
-
className: "bg-brand-card-100 focus-visible:ring-1 focus-visible:ring-brand-black-100 h-12 border-none rounded-[16px] w-full p-4 body-1 pr-18",
|
|
4704
|
-
placeholder: "Enter deadline",
|
|
4705
|
-
type: "number",
|
|
4706
|
-
min: 0
|
|
4707
|
-
}
|
|
4708
|
-
),
|
|
4709
|
-
/* @__PURE__ */ jsx46("span", { className: "body-1 absolute right-4 top-1/2 -translate-y-1/2 text-brand-black-100", children: "minutes" })
|
|
4710
|
-
] })
|
|
4711
|
-
] })
|
|
4712
|
-
] });
|
|
4713
|
-
};
|
|
5120
|
+
}, props)
|
|
5121
|
+
);
|
|
5122
|
+
}
|
|
4714
5123
|
|
|
4715
|
-
// src/
|
|
4716
|
-
import {
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
5124
|
+
// src/@/ui/badge.tsx
|
|
5125
|
+
import { Slot as Slot11 } from "@radix-ui/react-slot";
|
|
5126
|
+
import { cva as cva7 } from "class-variance-authority";
|
|
5127
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
5128
|
+
var badgeVariants = cva7(
|
|
5129
|
+
"inline-flex font-semibold whitespace-nowrap items-center justify-center rounded-full px-2 py-1 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
5130
|
+
{
|
|
5131
|
+
variants: {
|
|
5132
|
+
size: {
|
|
5133
|
+
sm: "text-caption-2"
|
|
5134
|
+
},
|
|
5135
|
+
variant: {
|
|
5136
|
+
success: "bg-brand-success-400/15 text-brand-success-400",
|
|
5137
|
+
default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
|
5138
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
|
5139
|
+
destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
5140
|
+
outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
|
|
5141
|
+
}
|
|
5142
|
+
},
|
|
5143
|
+
defaultVariants: {
|
|
5144
|
+
variant: "default",
|
|
5145
|
+
size: "sm"
|
|
5146
|
+
}
|
|
5147
|
+
}
|
|
5148
|
+
);
|
|
5149
|
+
function Badge(_a) {
|
|
5150
|
+
var _b = _a, {
|
|
5151
|
+
className,
|
|
5152
|
+
variant,
|
|
5153
|
+
asChild = false
|
|
5154
|
+
} = _b, props = __objRest(_b, [
|
|
5155
|
+
"className",
|
|
5156
|
+
"variant",
|
|
5157
|
+
"asChild"
|
|
5158
|
+
]);
|
|
5159
|
+
const Comp = asChild ? Slot11 : "span";
|
|
5160
|
+
return /* @__PURE__ */ jsx51(
|
|
5161
|
+
Comp,
|
|
5162
|
+
__spreadValues({
|
|
5163
|
+
"data-slot": "badge",
|
|
5164
|
+
className: cn(badgeVariants({ variant }), className)
|
|
5165
|
+
}, props)
|
|
5166
|
+
);
|
|
5167
|
+
}
|
|
4720
5168
|
export {
|
|
4721
5169
|
AccessoryButton,
|
|
4722
5170
|
AccountItem,
|
|
4723
|
-
|
|
5171
|
+
AccountStack,
|
|
4724
5172
|
AddressInput,
|
|
4725
5173
|
AddressInputFocusBehaviour,
|
|
4726
5174
|
AssetList,
|
|
4727
5175
|
AssetListItem,
|
|
4728
5176
|
AssetValueTrend,
|
|
5177
|
+
Badge,
|
|
4729
5178
|
BadgeIcon,
|
|
4730
5179
|
Balance,
|
|
4731
5180
|
BridgeForm,
|
|
4732
5181
|
BridgeInput,
|
|
4733
5182
|
BridgeSettings,
|
|
4734
|
-
BridgeSummary,
|
|
4735
5183
|
BridgeTokenButton,
|
|
4736
5184
|
Button2 as Button,
|
|
4737
5185
|
CWDrawerContent,
|
|
4738
|
-
ConnectedHeader,
|
|
4739
5186
|
Dialog,
|
|
4740
5187
|
DialogClose,
|
|
4741
5188
|
DialogContent,
|
|
@@ -4749,12 +5196,37 @@ export {
|
|
|
4749
5196
|
DialogTrigger,
|
|
4750
5197
|
Drawer,
|
|
4751
5198
|
DrawerContent,
|
|
5199
|
+
DropdownMenu,
|
|
5200
|
+
DropdownMenuCheckboxItem,
|
|
5201
|
+
DropdownMenuContent,
|
|
5202
|
+
DropdownMenuGroup,
|
|
5203
|
+
DropdownMenuItem,
|
|
5204
|
+
DropdownMenuLabel,
|
|
5205
|
+
DropdownMenuPortal,
|
|
5206
|
+
DropdownMenuRadioGroup,
|
|
5207
|
+
DropdownMenuRadioItem,
|
|
5208
|
+
DropdownMenuSeparator,
|
|
5209
|
+
DropdownMenuShortcut,
|
|
5210
|
+
DropdownMenuSub,
|
|
5211
|
+
DropdownMenuSubContent,
|
|
5212
|
+
DropdownMenuSubTrigger,
|
|
5213
|
+
DropdownMenuTrigger,
|
|
4752
5214
|
EmptyState,
|
|
4753
5215
|
EmptyStateConceal,
|
|
4754
5216
|
EmptyStateContent,
|
|
4755
5217
|
EmptyStateDescription,
|
|
4756
5218
|
EmptyStateTitle,
|
|
4757
5219
|
GradientButton,
|
|
5220
|
+
HBDrawer,
|
|
5221
|
+
HBDrawerClose,
|
|
5222
|
+
HBDrawerContent,
|
|
5223
|
+
HBDrawerDescription,
|
|
5224
|
+
HBDrawerFooter,
|
|
5225
|
+
HBDrawerHeader,
|
|
5226
|
+
HBDrawerOverlay,
|
|
5227
|
+
HBDrawerPortal,
|
|
5228
|
+
HBDrawerTitle,
|
|
5229
|
+
HBDrawerTrigger,
|
|
4758
5230
|
Header,
|
|
4759
5231
|
HeaderContent,
|
|
4760
5232
|
HeaderGradient,
|
|
@@ -4780,9 +5252,17 @@ export {
|
|
|
4780
5252
|
Sheet,
|
|
4781
5253
|
SheetContent,
|
|
4782
5254
|
SheetTrigger,
|
|
5255
|
+
Summary,
|
|
4783
5256
|
SummaryValues,
|
|
4784
5257
|
SwapForm,
|
|
4785
5258
|
SwapTokenButton,
|
|
5259
|
+
SwapTokenItem,
|
|
5260
|
+
SwapTokenSelector,
|
|
5261
|
+
SwapTokenSelectorContent,
|
|
5262
|
+
SwapTokenSelectorEmpty,
|
|
5263
|
+
SwapTokenSelectorHeader,
|
|
5264
|
+
SwapTokenSelectorSearch,
|
|
5265
|
+
SwapTokenSelectorSection,
|
|
4786
5266
|
TabAlt,
|
|
4787
5267
|
TabAltContent,
|
|
4788
5268
|
TabAltHeader,
|
|
@@ -4824,5 +5304,6 @@ export {
|
|
|
4824
5304
|
WalletManagerUIContent,
|
|
4825
5305
|
WalletManagerUIProvider,
|
|
4826
5306
|
WalletProviderItem,
|
|
5307
|
+
badgeVariants,
|
|
4827
5308
|
makeEntry
|
|
4828
5309
|
};
|