@rhinestone/deposit-modal 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +151 -61
- package/dist/BankOnrampStep-JG32OCM2.mjs +435 -0
- package/dist/BankOnrampStep-NPGXAA7U.cjs +435 -0
- package/dist/{DepositModalReown-XBNY6QCI.mjs → DepositModalReown-3FGTPER6.mjs} +6 -5
- package/dist/{DepositModalReown-UITYXJ6W.cjs → DepositModalReown-ALVWADG7.cjs} +21 -20
- package/dist/WithdrawModal-5YWFJSYY.cjs +12 -0
- package/dist/WithdrawModal-LL4Z5WZP.mjs +12 -0
- package/dist/{bearer-transport-CVHNBgoV.d.cts → bearer-transport-DZyeDG64.d.cts} +5 -1
- package/dist/{bearer-transport-CVHNBgoV.d.ts → bearer-transport-DZyeDG64.d.ts} +5 -1
- package/dist/{caip-BMi-9t09.d.cts → caip-nwFFL46o.d.cts} +2 -2
- package/dist/{caip-BMi-9t09.d.ts → caip-nwFFL46o.d.ts} +2 -2
- package/dist/{chunk-NITKDXHR.mjs → chunk-247GJH57.mjs} +480 -272
- package/dist/{chunk-FTWKAJGN.mjs → chunk-2FOPO4N5.mjs} +1 -1
- package/dist/{chunk-5NWLS5BQ.mjs → chunk-32ERBFMO.mjs} +1432 -961
- package/dist/chunk-5QUWEFD4.mjs +19 -0
- package/dist/chunk-6CTJFR3T.mjs +113 -0
- package/dist/{chunk-X6N2XPTO.mjs → chunk-B2LZQIGB.mjs} +1 -1
- package/dist/{chunk-EG4H7OMC.cjs → chunk-BTEG2VNZ.cjs} +171 -130
- package/dist/{chunk-HMUGY66O.cjs → chunk-CXRH5MKO.cjs} +1502 -1031
- package/dist/chunk-E7IMWVMN.mjs +346 -0
- package/dist/{chunk-PYOC6K24.cjs → chunk-EKFXUF5A.cjs} +1 -1
- package/dist/chunk-FKJ6EJHH.cjs +346 -0
- package/dist/chunk-FMUSY563.cjs +19 -0
- package/dist/{chunk-LVCD6RHF.cjs → chunk-FVJKUTHF.cjs} +2 -2
- package/dist/chunk-G264OM23.cjs +224 -0
- package/dist/{chunk-BIL4ENC3.mjs → chunk-HP7S7AD6.mjs} +73 -32
- package/dist/{chunk-ISLVD5HQ.cjs → chunk-OPT5EW6L.cjs} +10 -5
- package/dist/chunk-PYRXOP2Y.cjs +113 -0
- package/dist/{chunk-ZGHVJ2XM.mjs → chunk-XBJCZYBX.mjs} +8 -3
- package/dist/chunk-YY4ZOAH5.mjs +224 -0
- package/dist/{chunk-OCWSMLOP.cjs → chunk-Z4RBTNKX.cjs} +980 -772
- package/dist/compliance.cjs +4 -7
- package/dist/compliance.d.cts +26 -3
- package/dist/compliance.d.ts +26 -3
- package/dist/compliance.mjs +6 -9
- package/dist/constants-BQDxVNgr.d.cts +29 -0
- package/dist/constants-DjGQW5N5.d.ts +29 -0
- package/dist/constants.cjs +3 -37
- package/dist/constants.d.cts +4 -20
- package/dist/constants.d.ts +4 -20
- package/dist/constants.mjs +4 -38
- package/dist/deposit.cjs +7 -6
- package/dist/deposit.d.cts +5 -3
- package/dist/deposit.d.ts +5 -3
- package/dist/deposit.mjs +6 -5
- package/dist/embed.cjs +21 -20
- package/dist/embed.d.cts +3 -2
- package/dist/embed.d.ts +3 -2
- package/dist/embed.mjs +7 -6
- package/dist/index.cjs +8 -35
- package/dist/index.d.cts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.mjs +9 -36
- package/dist/onramp.cjs +4 -33
- package/dist/onramp.d.cts +51 -33
- package/dist/onramp.d.ts +51 -33
- package/dist/onramp.mjs +5 -34
- package/dist/polymarket.cjs +6 -6
- package/dist/polymarket.mjs +2 -2
- package/dist/ramp-types-HYWd7CW0.d.cts +108 -0
- package/dist/ramp-types-HYWd7CW0.d.ts +108 -0
- package/dist/styles.css +255 -0
- package/dist/{types-BShYNpvO.d.cts → types-BxSrazbq.d.ts} +20 -2
- package/dist/{types-BOxa1DE-.d.ts → types-CixUBhrM.d.cts} +20 -2
- package/dist/withdraw.cjs +6 -5
- package/dist/withdraw.d.cts +4 -3
- package/dist/withdraw.d.ts +4 -3
- package/dist/withdraw.mjs +5 -4
- package/package.json +9 -17
- package/dist/WithdrawModal-DY6A55OA.mjs +0 -11
- package/dist/WithdrawModal-V42OK7L3.cjs +0 -11
- package/dist/chunk-ADEWTBSN.cjs +0 -19
- package/dist/chunk-EAGMY3QE.mjs +0 -962
- package/dist/chunk-OY5N3E6L.cjs +0 -962
- package/dist/chunk-PP4QE32S.mjs +0 -19
- package/dist/constants-BT4ctuHo.d.cts +0 -64
- package/dist/constants-D21ZdNOP.d.ts +0 -64
- package/dist/offramp.cjs +0 -25
- package/dist/offramp.d.cts +0 -28
- package/dist/offramp.d.ts +0 -28
- package/dist/offramp.mjs +0 -25
- package/dist/ramp-types-C6aUz4SZ.d.cts +0 -43
- package/dist/ramp-types-C6aUz4SZ.d.ts +0 -43
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkOPT5EW6Lcjs = require('./chunk-OPT5EW6L.cjs');
|
|
4
|
+
|
|
5
|
+
// src/core/ramp-utils.ts
|
|
6
|
+
function rampQuery(value) {
|
|
7
|
+
return new URLSearchParams(
|
|
8
|
+
Object.entries(value).filter(([, value2]) => value2 !== void 0).map(([key, value2]) => [key, String(value2)])
|
|
9
|
+
).toString();
|
|
10
|
+
}
|
|
11
|
+
function rampResourceId(value) {
|
|
12
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(
|
|
13
|
+
value
|
|
14
|
+
)) {
|
|
15
|
+
throw new Error("Invalid ramp resource ID");
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/core/onramp-service.ts
|
|
21
|
+
var RAIL_TYPES = ["BankAch", "BankFedwire", "BankSwift", "BankSepa"];
|
|
22
|
+
var text = (value) => typeof value === "string" && value.length > 0;
|
|
23
|
+
var decimal = (value) => text(value) && /^\+?(?:\d+(?:\.\d*)?|\.\d+)$/.test(value);
|
|
24
|
+
var optionalText = (value) => value === void 0 ? void 0 : text(value) ? value : false;
|
|
25
|
+
function projectBankDetails(input) {
|
|
26
|
+
if (typeof input !== "object" || input === null) return null;
|
|
27
|
+
const d = input;
|
|
28
|
+
if (d.schemaVersion !== 1 || !text(d.capturedAt) || !Number.isFinite(Date.parse(d.capturedAt))) return null;
|
|
29
|
+
if (d.currency !== "USD" && d.currency !== "EUR") return null;
|
|
30
|
+
if (!text(d.accountHolderName)) return null;
|
|
31
|
+
const bankName = optionalText(d.bankName);
|
|
32
|
+
const reference = optionalText(d.reference);
|
|
33
|
+
if (bankName === false || reference === false) return null;
|
|
34
|
+
let bankAddress;
|
|
35
|
+
if (d.bankAddress !== void 0) {
|
|
36
|
+
if (typeof d.bankAddress !== "object" || d.bankAddress === null) return null;
|
|
37
|
+
const a = d.bankAddress;
|
|
38
|
+
const street2 = optionalText(a.street2);
|
|
39
|
+
if (![a.street, a.city, a.postCode, a.state, a.country].every(text) || street2 === false) return null;
|
|
40
|
+
bankAddress = {
|
|
41
|
+
street: a.street,
|
|
42
|
+
city: a.city,
|
|
43
|
+
postCode: a.postCode,
|
|
44
|
+
state: a.state,
|
|
45
|
+
country: a.country,
|
|
46
|
+
...street2 !== void 0 ? { street2 } : {}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (!Array.isArray(d.rails) || d.rails.length === 0) return null;
|
|
50
|
+
const rails = [];
|
|
51
|
+
for (const r of d.rails) {
|
|
52
|
+
if (typeof r !== "object" || r === null) return null;
|
|
53
|
+
const type = RAIL_TYPES.find((t) => t === r.type);
|
|
54
|
+
if (!type || !text(r.accountNumber) || !text(r.bankCode)) return null;
|
|
55
|
+
if (typeof r.fee !== "object" || r.fee === null) return null;
|
|
56
|
+
const f = r.fee;
|
|
57
|
+
if (f.currency !== d.currency || !decimal(f.base) || !decimal(f.percent) || !decimal(f.minimum)) return null;
|
|
58
|
+
if (Number(f.percent) > 100) return null;
|
|
59
|
+
rails.push({
|
|
60
|
+
type,
|
|
61
|
+
accountNumber: r.accountNumber,
|
|
62
|
+
bankCode: r.bankCode,
|
|
63
|
+
fee: { currency: d.currency, base: f.base, percent: f.percent, minimum: f.minimum }
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (new Set(rails.map((rail) => rail.type)).size !== rails.length) return null;
|
|
67
|
+
return {
|
|
68
|
+
schemaVersion: 1,
|
|
69
|
+
capturedAt: d.capturedAt,
|
|
70
|
+
currency: d.currency,
|
|
71
|
+
accountHolderName: d.accountHolderName,
|
|
72
|
+
...bankName !== void 0 ? { bankName } : {},
|
|
73
|
+
...bankAddress ? { bankAddress } : {},
|
|
74
|
+
...reference !== void 0 ? { reference } : {},
|
|
75
|
+
rails
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function createOnrampService(options) {
|
|
79
|
+
const request = _chunkOPT5EW6Lcjs.createBearerTransport.call(void 0, options);
|
|
80
|
+
return {
|
|
81
|
+
// Named fields only, never a spread: this client is Noah's, whatever a
|
|
82
|
+
// caller passes.
|
|
83
|
+
getOptions: ({ currency } = {}) => request(
|
|
84
|
+
`/onramp/options?${rampQuery({ provider: "noah", currency })}`
|
|
85
|
+
),
|
|
86
|
+
createAccount: ({ currency, optionId }) => request("/onramp/accounts", {
|
|
87
|
+
provider: "noah",
|
|
88
|
+
currency,
|
|
89
|
+
optionId
|
|
90
|
+
}),
|
|
91
|
+
listAccounts: (page = {}) => request(`/onramp/accounts?${rampQuery(page)}`),
|
|
92
|
+
getAccount: (id) => request(`/onramp/accounts/${rampResourceId(id)}`),
|
|
93
|
+
getAccountDetails: async (id) => {
|
|
94
|
+
const result = await request(
|
|
95
|
+
`/onramp/accounts/${rampResourceId(id)}/details`
|
|
96
|
+
);
|
|
97
|
+
const bankDetails = result ? projectBankDetails(result.bankDetails) : null;
|
|
98
|
+
if (!bankDetails) throw new Error("Invalid bank details response");
|
|
99
|
+
return { bankDetails };
|
|
100
|
+
},
|
|
101
|
+
/**
|
|
102
|
+
* The customer's Noah orders, newest first. Filtered on the server, before
|
|
103
|
+
* `limit`, so another provider's orders can never crowd one out of a page.
|
|
104
|
+
*/
|
|
105
|
+
listOrders: ({ cursor, limit } = {}) => request(
|
|
106
|
+
`/onramp/orders?${rampQuery({ provider: "noah", cursor, limit })}`
|
|
107
|
+
)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
exports.createOnrampService = createOnrampService;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
serviceHeaders
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-B2LZQIGB.mjs";
|
|
4
4
|
|
|
5
5
|
// src/core/bearer-transport.ts
|
|
6
6
|
var ScopedRequestError = class extends Error {
|
|
7
|
-
constructor(status) {
|
|
7
|
+
constructor(status, code) {
|
|
8
8
|
super(
|
|
9
9
|
status === 404 ? "Route unavailable; upgrade the proxy before using this API" : `Scoped request failed (${status})`
|
|
10
10
|
);
|
|
11
11
|
this.status = status;
|
|
12
|
+
this.code = code;
|
|
12
13
|
}
|
|
13
14
|
};
|
|
14
15
|
function createBearerTransport(options) {
|
|
@@ -30,7 +31,11 @@ function createBearerTransport(options) {
|
|
|
30
31
|
cache: "no-store",
|
|
31
32
|
redirect: "error"
|
|
32
33
|
});
|
|
33
|
-
if (!response.ok)
|
|
34
|
+
if (!response.ok) {
|
|
35
|
+
const body2 = await response.json().catch(() => null);
|
|
36
|
+
const code = typeof body2?.code === "string" && /^[A-Z_]{1,64}$/.test(body2.code) ? body2.code : void 0;
|
|
37
|
+
throw new ScopedRequestError(response.status, code);
|
|
38
|
+
}
|
|
34
39
|
return response.json();
|
|
35
40
|
};
|
|
36
41
|
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
// src/components/ui/Icons.tsx
|
|
2
|
+
import {
|
|
3
|
+
Wallet,
|
|
4
|
+
ExternalLink,
|
|
5
|
+
Coins,
|
|
6
|
+
Check,
|
|
7
|
+
ChevronRight,
|
|
8
|
+
ChevronLeft,
|
|
9
|
+
ChevronDown,
|
|
10
|
+
X,
|
|
11
|
+
HandCoins,
|
|
12
|
+
History,
|
|
13
|
+
Info,
|
|
14
|
+
Copy,
|
|
15
|
+
ArrowRight,
|
|
16
|
+
ArrowUpRight,
|
|
17
|
+
AlertTriangle,
|
|
18
|
+
CircleArrowOutUpLeft,
|
|
19
|
+
CreditCard,
|
|
20
|
+
Landmark,
|
|
21
|
+
Unplug
|
|
22
|
+
} from "lucide-react";
|
|
23
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
24
|
+
var WalletIcon = Wallet;
|
|
25
|
+
var ExternalLinkIcon = ExternalLink;
|
|
26
|
+
var CheckIcon = Check;
|
|
27
|
+
function TransferCryptoIcon() {
|
|
28
|
+
return /* @__PURE__ */ jsx(
|
|
29
|
+
"svg",
|
|
30
|
+
{
|
|
31
|
+
width: "24",
|
|
32
|
+
height: "24",
|
|
33
|
+
viewBox: "8 8 24 24",
|
|
34
|
+
fill: "none",
|
|
35
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
36
|
+
"aria-hidden": "true",
|
|
37
|
+
children: /* @__PURE__ */ jsx(
|
|
38
|
+
"path",
|
|
39
|
+
{
|
|
40
|
+
d: "M26.08 18.37C27.03 18.72 27.87 19.30 28.53 20.07C29.19 20.83 29.65 21.75 29.86 22.73C30.07 23.72 30.03 24.74 29.74 25.71C29.45 26.68 28.92 27.55 28.20 28.26C27.48 28.97 26.59 29.49 25.62 29.76C24.65 30.04 23.63 30.06 22.64 29.83C21.66 29.61 20.75 29.14 20.00 28.47C19.24 27.80 18.67 26.95 18.33 26.00M15 14H16V18M24.70 21.87L25.40 22.58L22.58 25.40M22 16C22 19.31 19.31 22 16 22C12.68 22 10 19.31 10 16C10 12.68 12.68 10 16 10C19.31 10 22 12.68 22 16Z",
|
|
41
|
+
stroke: "currentColor",
|
|
42
|
+
strokeWidth: "2",
|
|
43
|
+
strokeLinecap: "round",
|
|
44
|
+
strokeLinejoin: "round"
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
var ChevronRightIcon = ChevronRight;
|
|
51
|
+
var ChevronLeftIcon = ChevronLeft;
|
|
52
|
+
var ChevronDownIcon = ChevronDown;
|
|
53
|
+
var CloseIcon = X;
|
|
54
|
+
var HandCoinsIcon = HandCoins;
|
|
55
|
+
var CoinsIcon = Coins;
|
|
56
|
+
var HistoryIcon = History;
|
|
57
|
+
var InfoIcon = Info;
|
|
58
|
+
var CopyIcon = Copy;
|
|
59
|
+
var ArrowUpRightIcon = ArrowUpRight;
|
|
60
|
+
var AlertTriangleIcon = AlertTriangle;
|
|
61
|
+
var CircleArrowOutUpLeftIcon = CircleArrowOutUpLeft;
|
|
62
|
+
var CardIcon = CreditCard;
|
|
63
|
+
var BankIcon = Landmark;
|
|
64
|
+
var UnplugIcon = Unplug;
|
|
65
|
+
function MigrateAssetsIcon() {
|
|
66
|
+
return /* @__PURE__ */ jsx(
|
|
67
|
+
"svg",
|
|
68
|
+
{
|
|
69
|
+
width: "24",
|
|
70
|
+
height: "24",
|
|
71
|
+
viewBox: "0 0 24 24",
|
|
72
|
+
fill: "none",
|
|
73
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
74
|
+
"aria-hidden": "true",
|
|
75
|
+
children: /* @__PURE__ */ jsxs(
|
|
76
|
+
"g",
|
|
77
|
+
{
|
|
78
|
+
stroke: "currentColor",
|
|
79
|
+
strokeWidth: "2",
|
|
80
|
+
strokeLinecap: "round",
|
|
81
|
+
strokeLinejoin: "round",
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ jsx(
|
|
84
|
+
"path",
|
|
85
|
+
{
|
|
86
|
+
d: "M19 4.344V3C19 2.46957 18.7893 1.96086 18.4142 1.58579C18.0391 1.21071 17.5304 1 17 1H3C2.46957 1 1.96086 1.21071 1.58579 1.58579C1.21071 1.96086 1 2.46957 1 3V17C1 17.5304 1.21071 18.0391 1.58579 18.4142C1.96086 18.7893 2.46957 19 3 19H17C17.5304 19 18.0391 18.7893 18.4142 18.4142C18.7893 18.0391 19 17.5304 19 17V15.656",
|
|
87
|
+
transform: "translate(2 2)"
|
|
88
|
+
}
|
|
89
|
+
),
|
|
90
|
+
/* @__PURE__ */ jsx("path", { d: "M1 1H12", transform: "translate(9 11)" }),
|
|
91
|
+
/* @__PURE__ */ jsx("path", { d: "M1 9L5 5L1 1", transform: "translate(16 7)" })
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
function AppleIcon() {
|
|
99
|
+
return /* @__PURE__ */ jsxs(
|
|
100
|
+
"svg",
|
|
101
|
+
{
|
|
102
|
+
width: "24",
|
|
103
|
+
height: "24",
|
|
104
|
+
viewBox: "0 0 24 24",
|
|
105
|
+
fill: "none",
|
|
106
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
107
|
+
"aria-hidden": "true",
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ jsx(
|
|
110
|
+
"path",
|
|
111
|
+
{
|
|
112
|
+
d: "M16.36 1.43c0 1.14-.49 2.27-1.18 3.08-.74.9-1.99 1.57-2.98 1.57-.12 0-.23-.02-.3-.03-.01-.06-.04-.22-.04-.39 0-1.15.57-2.27 1.2-2.98.8-.94 2.15-1.64 3.25-1.68.03.13.05.28.05.43z",
|
|
113
|
+
stroke: "currentColor",
|
|
114
|
+
strokeWidth: "1.6",
|
|
115
|
+
strokeLinejoin: "round"
|
|
116
|
+
}
|
|
117
|
+
),
|
|
118
|
+
/* @__PURE__ */ jsx(
|
|
119
|
+
"path",
|
|
120
|
+
{
|
|
121
|
+
d: "M20.93 17.14c-.03.07-.46 1.58-1.52 3.12-.94 1.34-1.94 2.71-3.43 2.71-1.51 0-1.9-.88-3.63-.88-1.7 0-2.3.91-3.67.91-1.38 0-2.33-1.26-3.43-2.8-1.29-1.82-2.32-4.63-2.32-7.28 0-4.28 2.8-6.55 5.55-6.55 1.45 0 2.68.95 3.6.95.86 0 2.22-1.01 3.9-1.01.61 0 2.89.06 4.37 2.19-.13.09-2.38 1.37-2.38 4.19 0 3.26 2.85 4.42 2.96 4.45z",
|
|
122
|
+
stroke: "currentColor",
|
|
123
|
+
strokeWidth: "1.6",
|
|
124
|
+
strokeLinejoin: "round"
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// src/components/ui/BodyHeader.tsx
|
|
133
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
134
|
+
function BodyHeader({
|
|
135
|
+
icon,
|
|
136
|
+
title,
|
|
137
|
+
subtitle,
|
|
138
|
+
variant = "default",
|
|
139
|
+
aside
|
|
140
|
+
}) {
|
|
141
|
+
const iconClasses = [
|
|
142
|
+
"rs-body-header-icon",
|
|
143
|
+
variant === "success" ? "rs-body-header-icon--success" : "",
|
|
144
|
+
variant === "error" ? "rs-body-header-icon--error" : ""
|
|
145
|
+
].filter(Boolean).join(" ");
|
|
146
|
+
return /* @__PURE__ */ jsxs2("div", { className: "rs-body-header", children: [
|
|
147
|
+
/* @__PURE__ */ jsx2("div", { className: iconClasses, children: icon }),
|
|
148
|
+
/* @__PURE__ */ jsxs2("div", { className: "rs-body-header-main", children: [
|
|
149
|
+
/* @__PURE__ */ jsxs2("div", { className: "rs-body-header-text", children: [
|
|
150
|
+
/* @__PURE__ */ jsx2("h2", { className: "rs-body-header-title", children: title }),
|
|
151
|
+
subtitle && /* @__PURE__ */ jsx2("p", { className: "rs-body-header-subtitle", children: subtitle })
|
|
152
|
+
] }),
|
|
153
|
+
aside && /* @__PURE__ */ jsx2("div", { className: "rs-body-header-aside", children: aside })
|
|
154
|
+
] })
|
|
155
|
+
] });
|
|
156
|
+
}
|
|
157
|
+
BodyHeader.displayName = "BodyHeader";
|
|
158
|
+
|
|
159
|
+
// src/components/ui/Spinner.tsx
|
|
160
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
161
|
+
function Spinner({ className }) {
|
|
162
|
+
return /* @__PURE__ */ jsxs3(
|
|
163
|
+
"svg",
|
|
164
|
+
{
|
|
165
|
+
className: `rs-spinner ${className || ""}`,
|
|
166
|
+
fill: "none",
|
|
167
|
+
viewBox: "0 0 20 21",
|
|
168
|
+
children: [
|
|
169
|
+
/* @__PURE__ */ jsx3(
|
|
170
|
+
"path",
|
|
171
|
+
{
|
|
172
|
+
d: "M10 0.5C8.02 0.5 6.08 1.08 4.44 2.18C2.79 3.28 1.51 4.84 0.76 6.67C0.00 8.50 -0.19 10.51 0.19 12.45C0.57 14.39 1.53 16.17 2.92 17.57C4.32 18.96 6.10 19.92 8.04 20.30C9.98 20.69 11.99 20.49 13.82 19.73C15.65 18.98 17.21 17.70 18.31 16.05C19.41 14.41 20 12.47 20 10.5C20 7.84 18.94 5.30 17.07 3.42C15.19 1.55 12.65 0.5 10 0.5ZM10 17.77C8.56 17.77 7.15 17.34 5.95 16.54C4.76 15.74 3.83 14.61 3.28 13.28C2.73 11.95 2.58 10.49 2.86 9.08C3.14 7.67 3.84 6.37 4.85 5.35C5.87 4.34 7.17 3.64 8.58 3.36C9.99 3.08 11.45 3.23 12.78 3.78C14.11 4.33 15.24 5.26 16.04 6.45C16.84 7.65 17.27 9.06 17.27 10.5C17.27 12.42 16.50 14.27 15.14 15.64C13.77 17.00 11.92 17.77 10 17.77Z",
|
|
173
|
+
fill: "currentColor",
|
|
174
|
+
opacity: 0.3
|
|
175
|
+
}
|
|
176
|
+
),
|
|
177
|
+
/* @__PURE__ */ jsx3(
|
|
178
|
+
"path",
|
|
179
|
+
{
|
|
180
|
+
d: "M10 3.22C11.74 3.22 13.42 3.84 14.75 4.95C16.08 6.07 16.96 7.61 17.25 9.31C17.30 9.64 17.46 9.94 17.71 10.15C17.96 10.37 18.28 10.49 18.62 10.5C18.82 10.50 19.01 10.45 19.20 10.37C19.38 10.29 19.54 10.16 19.67 10.01C19.80 9.86 19.89 9.68 19.95 9.49C20.00 9.30 20.01 9.10 19.98 8.90C19.59 6.56 18.38 4.42 16.55 2.88C14.72 1.34 12.40 0.5 10 0.5C7.59 0.5 5.27 1.34 3.44 2.88C1.61 4.42 0.40 6.56 0.01 8.90C-0.01 9.10 -0.00 9.30 0.04 9.49C0.10 9.68 0.19 9.86 0.32 10.01C0.45 10.16 0.61 10.29 0.79 10.37C0.98 10.45 1.17 10.50 1.37 10.5C1.71 10.49 2.03 10.37 2.28 10.15C2.53 9.94 2.69 9.64 2.74 9.31C3.03 7.61 3.91 6.07 5.24 4.95C6.57 3.84 8.25 3.22 10 3.22Z",
|
|
181
|
+
fill: "currentColor"
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// src/core/useLatestRef.ts
|
|
190
|
+
import { useEffect, useRef } from "react";
|
|
191
|
+
function useLatestRef(value) {
|
|
192
|
+
const ref = useRef(value);
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
ref.current = value;
|
|
195
|
+
}, [value]);
|
|
196
|
+
return ref;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export {
|
|
200
|
+
WalletIcon,
|
|
201
|
+
ExternalLinkIcon,
|
|
202
|
+
CheckIcon,
|
|
203
|
+
TransferCryptoIcon,
|
|
204
|
+
ChevronRightIcon,
|
|
205
|
+
ChevronLeftIcon,
|
|
206
|
+
ChevronDownIcon,
|
|
207
|
+
CloseIcon,
|
|
208
|
+
HandCoinsIcon,
|
|
209
|
+
CoinsIcon,
|
|
210
|
+
HistoryIcon,
|
|
211
|
+
InfoIcon,
|
|
212
|
+
CopyIcon,
|
|
213
|
+
ArrowUpRightIcon,
|
|
214
|
+
AlertTriangleIcon,
|
|
215
|
+
CircleArrowOutUpLeftIcon,
|
|
216
|
+
CardIcon,
|
|
217
|
+
BankIcon,
|
|
218
|
+
UnplugIcon,
|
|
219
|
+
MigrateAssetsIcon,
|
|
220
|
+
AppleIcon,
|
|
221
|
+
BodyHeader,
|
|
222
|
+
Spinner,
|
|
223
|
+
useLatestRef
|
|
224
|
+
};
|