kaleido-ui 0.1.59 → 0.1.61
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/native/fonts/GeistMono.ttf +0 -0
- package/dist/native/fonts.cjs +6 -1
- package/dist/native/fonts.d.cts +7 -1
- package/dist/native/fonts.d.ts +7 -1
- package/dist/native/fonts.js +5 -1
- package/dist/web/index.cjs +85 -47
- package/dist/web/index.d.cts +3 -1
- package/dist/web/index.d.ts +3 -1
- package/dist/web/index.js +85 -47
- package/package.json +1 -1
|
Binary file
|
package/dist/native/fonts.cjs
CHANGED
|
@@ -29,6 +29,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var fonts_exports = {};
|
|
30
30
|
__export(fonts_exports, {
|
|
31
31
|
kaleidoFonts: () => kaleidoFonts,
|
|
32
|
+
monoFontFamily: () => monoFontFamily,
|
|
32
33
|
satoshiFamilyForWeight: () => satoshiFamilyForWeight,
|
|
33
34
|
satoshiFontFamily: () => satoshiFontFamily
|
|
34
35
|
});
|
|
@@ -37,12 +38,15 @@ var import_Satoshi_Regular = __toESM(require("./fonts/Satoshi-Regular.ttf"), 1);
|
|
|
37
38
|
var import_Satoshi_Medium = __toESM(require("./fonts/Satoshi-Medium.ttf"), 1);
|
|
38
39
|
var import_Satoshi_Bold = __toESM(require("./fonts/Satoshi-Bold.ttf"), 1);
|
|
39
40
|
var import_Satoshi_Black = __toESM(require("./fonts/Satoshi-Black.ttf"), 1);
|
|
41
|
+
var import_GeistMono = __toESM(require("./fonts/GeistMono.ttf"), 1);
|
|
40
42
|
const kaleidoFonts = {
|
|
41
43
|
"Satoshi-Regular": import_Satoshi_Regular.default,
|
|
42
44
|
"Satoshi-Medium": import_Satoshi_Medium.default,
|
|
43
45
|
"Satoshi-Bold": import_Satoshi_Bold.default,
|
|
44
|
-
"Satoshi-Black": import_Satoshi_Black.default
|
|
46
|
+
"Satoshi-Black": import_Satoshi_Black.default,
|
|
47
|
+
GeistMono: import_GeistMono.default
|
|
45
48
|
};
|
|
49
|
+
const monoFontFamily = "GeistMono";
|
|
46
50
|
const satoshiFontFamily = {
|
|
47
51
|
regular: "Satoshi-Regular",
|
|
48
52
|
medium: "Satoshi-Medium",
|
|
@@ -64,6 +68,7 @@ function satoshiFamilyForWeight(weight) {
|
|
|
64
68
|
// Annotate the CommonJS export names for ESM import in node:
|
|
65
69
|
0 && (module.exports = {
|
|
66
70
|
kaleidoFonts,
|
|
71
|
+
monoFontFamily,
|
|
67
72
|
satoshiFamilyForWeight,
|
|
68
73
|
satoshiFontFamily
|
|
69
74
|
});
|
package/dist/native/fonts.d.cts
CHANGED
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
* you use as `fontFamily` in styles (identical on iOS and Android).
|
|
5
5
|
*/
|
|
6
6
|
declare const kaleidoFonts: Record<string, number>;
|
|
7
|
+
/**
|
|
8
|
+
* Monospaced family for numerals / equivalent balances — Geist Mono (the same
|
|
9
|
+
* face the web/extension references). Use for tabular amounts; pair with the
|
|
10
|
+
* `mono` text role rather than the Satoshi body face.
|
|
11
|
+
*/
|
|
12
|
+
declare const monoFontFamily = "GeistMono";
|
|
7
13
|
/** Registered Satoshi family names, by semantic weight. */
|
|
8
14
|
declare const satoshiFontFamily: {
|
|
9
15
|
readonly regular: "Satoshi-Regular";
|
|
@@ -22,4 +28,4 @@ type SatoshiWeightName = keyof typeof satoshiFontFamily;
|
|
|
22
28
|
*/
|
|
23
29
|
declare function satoshiFamilyForWeight(weight?: string | number): string;
|
|
24
30
|
|
|
25
|
-
export { type SatoshiWeightName, kaleidoFonts, satoshiFamilyForWeight, satoshiFontFamily };
|
|
31
|
+
export { type SatoshiWeightName, kaleidoFonts, monoFontFamily, satoshiFamilyForWeight, satoshiFontFamily };
|
package/dist/native/fonts.d.ts
CHANGED
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
* you use as `fontFamily` in styles (identical on iOS and Android).
|
|
5
5
|
*/
|
|
6
6
|
declare const kaleidoFonts: Record<string, number>;
|
|
7
|
+
/**
|
|
8
|
+
* Monospaced family for numerals / equivalent balances — Geist Mono (the same
|
|
9
|
+
* face the web/extension references). Use for tabular amounts; pair with the
|
|
10
|
+
* `mono` text role rather than the Satoshi body face.
|
|
11
|
+
*/
|
|
12
|
+
declare const monoFontFamily = "GeistMono";
|
|
7
13
|
/** Registered Satoshi family names, by semantic weight. */
|
|
8
14
|
declare const satoshiFontFamily: {
|
|
9
15
|
readonly regular: "Satoshi-Regular";
|
|
@@ -22,4 +28,4 @@ type SatoshiWeightName = keyof typeof satoshiFontFamily;
|
|
|
22
28
|
*/
|
|
23
29
|
declare function satoshiFamilyForWeight(weight?: string | number): string;
|
|
24
30
|
|
|
25
|
-
export { type SatoshiWeightName, kaleidoFonts, satoshiFamilyForWeight, satoshiFontFamily };
|
|
31
|
+
export { type SatoshiWeightName, kaleidoFonts, monoFontFamily, satoshiFamilyForWeight, satoshiFontFamily };
|
package/dist/native/fonts.js
CHANGED
|
@@ -2,12 +2,15 @@ import SatoshiRegular from "./fonts/Satoshi-Regular.ttf";
|
|
|
2
2
|
import SatoshiMedium from "./fonts/Satoshi-Medium.ttf";
|
|
3
3
|
import SatoshiBold from "./fonts/Satoshi-Bold.ttf";
|
|
4
4
|
import SatoshiBlack from "./fonts/Satoshi-Black.ttf";
|
|
5
|
+
import GeistMono from "./fonts/GeistMono.ttf";
|
|
5
6
|
const kaleidoFonts = {
|
|
6
7
|
"Satoshi-Regular": SatoshiRegular,
|
|
7
8
|
"Satoshi-Medium": SatoshiMedium,
|
|
8
9
|
"Satoshi-Bold": SatoshiBold,
|
|
9
|
-
"Satoshi-Black": SatoshiBlack
|
|
10
|
+
"Satoshi-Black": SatoshiBlack,
|
|
11
|
+
GeistMono
|
|
10
12
|
};
|
|
13
|
+
const monoFontFamily = "GeistMono";
|
|
11
14
|
const satoshiFontFamily = {
|
|
12
15
|
regular: "Satoshi-Regular",
|
|
13
16
|
medium: "Satoshi-Medium",
|
|
@@ -28,6 +31,7 @@ function satoshiFamilyForWeight(weight) {
|
|
|
28
31
|
}
|
|
29
32
|
export {
|
|
30
33
|
kaleidoFonts,
|
|
34
|
+
monoFontFamily,
|
|
31
35
|
satoshiFamilyForWeight,
|
|
32
36
|
satoshiFontFamily
|
|
33
37
|
};
|
package/dist/web/index.cjs
CHANGED
|
@@ -1822,12 +1822,14 @@ function AssetCard({
|
|
|
1822
1822
|
balanceVisible = true,
|
|
1823
1823
|
accentColor,
|
|
1824
1824
|
status,
|
|
1825
|
+
isYielding,
|
|
1825
1826
|
onClick,
|
|
1826
1827
|
className
|
|
1827
1828
|
}) {
|
|
1828
1829
|
const shown = balanceVisible ? displayBalance : "\u2022\u2022\u2022\u2022\u2022\u2022";
|
|
1829
1830
|
const displayShown = balanceVisible ? formatDisplayAmountText(displayBalance) : shown;
|
|
1830
1831
|
const [hovered, setHovered] = (0, import_react4.useState)(false);
|
|
1832
|
+
const showYield = isYielding ?? ["USDB"].includes(ticker.toUpperCase());
|
|
1831
1833
|
const gradientStyle = accentColor ? { background: `linear-gradient(135deg, var(--card) 30%, ${accentColor}${hovered ? "77" : "55"} 75%, ${accentColor}${hovered ? "dd" : "b3"} 100%)`, transition: "background 0.3s ease" } : void 0;
|
|
1832
1834
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1833
1835
|
"div",
|
|
@@ -1879,7 +1881,26 @@ function AssetCard({
|
|
|
1879
1881
|
children: displayShown
|
|
1880
1882
|
}
|
|
1881
1883
|
),
|
|
1882
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.
|
|
1884
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center justify-end gap-1 mt-0.5", children: [
|
|
1885
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "truncate text-tiny font-medium uppercase tracking-wide text-muted-foreground", children: ticker }),
|
|
1886
|
+
showYield && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { title: "Yield Generating Asset", className: "text-success/90 flex items-center justify-center bg-success/10 rounded-full p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1887
|
+
"svg",
|
|
1888
|
+
{
|
|
1889
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1890
|
+
viewBox: "0 0 24 24",
|
|
1891
|
+
fill: "none",
|
|
1892
|
+
stroke: "currentColor",
|
|
1893
|
+
strokeWidth: "2",
|
|
1894
|
+
strokeLinecap: "round",
|
|
1895
|
+
strokeLinejoin: "round",
|
|
1896
|
+
className: "w-3 h-3",
|
|
1897
|
+
children: [
|
|
1898
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z" }),
|
|
1899
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { d: "M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12" })
|
|
1900
|
+
]
|
|
1901
|
+
}
|
|
1902
|
+
) })
|
|
1903
|
+
] }),
|
|
1883
1904
|
status && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusBadge, { status, className: "mt-2" })
|
|
1884
1905
|
] })
|
|
1885
1906
|
] })
|
|
@@ -2551,11 +2572,14 @@ function AccountStatusTabs({
|
|
|
2551
2572
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "mt-5 text-sm leading-relaxed text-muted-foreground", children: selectedAccount.detail }),
|
|
2552
2573
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "mt-5", children: [
|
|
2553
2574
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "text-icon-xxs font-black uppercase tracking-[0.18em] text-white/45", children: "Capabilities" }),
|
|
2554
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "mt-3 flex flex-wrap gap-2", children: selectedAccount.capabilityBullets.map((capability) => /* @__PURE__ */ (0, import_jsx_runtime28.
|
|
2575
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "mt-3 flex flex-wrap gap-2", children: selectedAccount.capabilityBullets.map((capability) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
2555
2576
|
"span",
|
|
2556
2577
|
{
|
|
2557
|
-
className: "rounded-full border bg-white/[0.05] px-2.5 py-1 text-xxs font-medium text-white/
|
|
2558
|
-
children:
|
|
2578
|
+
className: "inline-flex items-center gap-1.5 rounded-full border bg-white/[0.05] px-2.5 py-1 text-xxs font-medium text-white/70",
|
|
2579
|
+
children: [
|
|
2580
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "size-1.5 rounded-full bg-primary/70" }),
|
|
2581
|
+
capability
|
|
2582
|
+
]
|
|
2559
2583
|
},
|
|
2560
2584
|
capability
|
|
2561
2585
|
)) })
|
|
@@ -8217,6 +8241,11 @@ function DepositPreGeneration({
|
|
|
8217
8241
|
// src/web/components/deposit-asset-selection.tsx
|
|
8218
8242
|
var import_react16 = require("react");
|
|
8219
8243
|
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
8244
|
+
var ADD_ASSET_SUBTITLE = {
|
|
8245
|
+
RGB: "RGB asset on Bitcoin",
|
|
8246
|
+
SPARK: "Spark-native asset",
|
|
8247
|
+
ARKADE: "Arkade-native asset"
|
|
8248
|
+
};
|
|
8220
8249
|
var PROTOCOL_BADGE = {
|
|
8221
8250
|
RGB: { label: "RGB", className: "bg-network-rgb-chip text-network-rgb-text" },
|
|
8222
8251
|
SPARK: { label: "Spark", className: "bg-network-spark-chip text-network-spark-text" },
|
|
@@ -8254,6 +8283,7 @@ function DepositAssetSelection({
|
|
|
8254
8283
|
const noResults = filteredAssets.length === 0 && !!searchQuery;
|
|
8255
8284
|
const isSearching = !!searchQuery;
|
|
8256
8285
|
const [assetsExpanded, setAssetsExpanded] = (0, import_react16.useState)(false);
|
|
8286
|
+
const [showAddAssetModal, setShowAddAssetModal] = (0, import_react16.useState)(false);
|
|
8257
8287
|
(0, import_react16.useEffect)(() => {
|
|
8258
8288
|
if (isSearching) setAssetsExpanded(true);
|
|
8259
8289
|
}, [isSearching]);
|
|
@@ -8433,52 +8463,60 @@ function DepositAssetSelection({
|
|
|
8433
8463
|
]
|
|
8434
8464
|
}
|
|
8435
8465
|
) }),
|
|
8436
|
-
!searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.
|
|
8437
|
-
|
|
8438
|
-
|
|
8439
|
-
"
|
|
8466
|
+
!searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
8467
|
+
"button",
|
|
8468
|
+
{
|
|
8469
|
+
type: "button",
|
|
8470
|
+
"data-testid": "deposit-add-asset",
|
|
8471
|
+
onClick: () => setShowAddAssetModal(true),
|
|
8472
|
+
className: "group flex w-full items-center gap-3 rounded-2xl border border-white/8 bg-white/3 p-3 transition-all hover:border-border hover:bg-accent",
|
|
8473
|
+
children: [
|
|
8474
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "add", size: "md", className: "text-primary" }) }),
|
|
8475
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-1 text-left", children: [
|
|
8476
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
|
|
8477
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
|
|
8478
|
+
"Receive a new ",
|
|
8479
|
+
newAssetOptions.map((o) => o.ticker).join(", "),
|
|
8480
|
+
" asset"
|
|
8481
|
+
] })
|
|
8482
|
+
] }),
|
|
8483
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
|
|
8484
|
+
]
|
|
8485
|
+
}
|
|
8486
|
+
) })
|
|
8487
|
+
] }),
|
|
8488
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
8489
|
+
BottomSheet,
|
|
8490
|
+
{
|
|
8491
|
+
open: showAddAssetModal,
|
|
8492
|
+
title: "Add an asset",
|
|
8493
|
+
onClose: () => setShowAddAssetModal(false),
|
|
8494
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
8495
|
+
"button",
|
|
8440
8496
|
{
|
|
8497
|
+
type: "button",
|
|
8498
|
+
"data-testid": `deposit-new-asset-${option.account.toLowerCase()}`,
|
|
8441
8499
|
className: cn(
|
|
8442
|
-
"
|
|
8443
|
-
|
|
8500
|
+
"group flex w-full items-center gap-3 rounded-2xl px-4 py-3 text-left transition-all",
|
|
8501
|
+
option.idleClass
|
|
8444
8502
|
),
|
|
8445
|
-
|
|
8446
|
-
|
|
8447
|
-
|
|
8448
|
-
|
|
8449
|
-
|
|
8450
|
-
|
|
8451
|
-
|
|
8452
|
-
|
|
8453
|
-
|
|
8454
|
-
|
|
8455
|
-
|
|
8456
|
-
|
|
8457
|
-
|
|
8458
|
-
|
|
8459
|
-
|
|
8460
|
-
|
|
8461
|
-
|
|
8462
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-2 min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
8463
|
-
"div",
|
|
8464
|
-
{
|
|
8465
|
-
className: cn(
|
|
8466
|
-
"text-sm font-bold tracking-wide",
|
|
8467
|
-
active ? "text-white" : "text-white group-hover:opacity-90",
|
|
8468
|
-
!active && option.titleHoverClass
|
|
8469
|
-
),
|
|
8470
|
-
children: option.title
|
|
8471
|
-
}
|
|
8472
|
-
) })
|
|
8473
|
-
]
|
|
8474
|
-
},
|
|
8475
|
-
option.account
|
|
8476
|
-
);
|
|
8477
|
-
})
|
|
8478
|
-
}
|
|
8479
|
-
)
|
|
8480
|
-
] })
|
|
8481
|
-
] }),
|
|
8503
|
+
onClick: () => {
|
|
8504
|
+
setShowAddAssetModal(false);
|
|
8505
|
+
handleAddNewAsset(option.account);
|
|
8506
|
+
},
|
|
8507
|
+
children: [
|
|
8508
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
|
|
8509
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
8510
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
|
|
8511
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
|
|
8512
|
+
] }),
|
|
8513
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
|
|
8514
|
+
]
|
|
8515
|
+
},
|
|
8516
|
+
option.account
|
|
8517
|
+
)) })
|
|
8518
|
+
}
|
|
8519
|
+
),
|
|
8482
8520
|
isNewAsset && newAssetAccount === "RGB" && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_jsx_runtime79.Fragment, { children: [
|
|
8483
8521
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 animate-in fade-in slide-in-from-bottom-2 duration-300", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-2 rounded-2xl border border-network-arkade/20 bg-network-arkade/5 p-3", children: [
|
|
8484
8522
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-tiny leading-relaxed text-network-arkade/80", children: "Leave empty to receive any RGB asset, or enter a specific asset ID." }),
|
package/dist/web/index.d.cts
CHANGED
|
@@ -230,10 +230,12 @@ interface AssetCardProps {
|
|
|
230
230
|
accentColor?: string;
|
|
231
231
|
/** Optional state badge for assets that are present but not currently spendable. */
|
|
232
232
|
status?: StatusType;
|
|
233
|
+
/** Whether the asset is yield generating */
|
|
234
|
+
isYielding?: boolean;
|
|
233
235
|
onClick?: () => void;
|
|
234
236
|
className?: string;
|
|
235
237
|
}
|
|
236
|
-
declare function AssetCard({ ticker, name, displayBalance, networks, logoUri, balanceVisible, accentColor, status, onClick, className, }: AssetCardProps): react_jsx_runtime.JSX.Element;
|
|
238
|
+
declare function AssetCard({ ticker, name, displayBalance, networks, logoUri, balanceVisible, accentColor, status, isYielding, onClick, className, }: AssetCardProps): react_jsx_runtime.JSX.Element;
|
|
237
239
|
|
|
238
240
|
interface TransactionCardProps {
|
|
239
241
|
/** Direction of the transaction */
|
package/dist/web/index.d.ts
CHANGED
|
@@ -230,10 +230,12 @@ interface AssetCardProps {
|
|
|
230
230
|
accentColor?: string;
|
|
231
231
|
/** Optional state badge for assets that are present but not currently spendable. */
|
|
232
232
|
status?: StatusType;
|
|
233
|
+
/** Whether the asset is yield generating */
|
|
234
|
+
isYielding?: boolean;
|
|
233
235
|
onClick?: () => void;
|
|
234
236
|
className?: string;
|
|
235
237
|
}
|
|
236
|
-
declare function AssetCard({ ticker, name, displayBalance, networks, logoUri, balanceVisible, accentColor, status, onClick, className, }: AssetCardProps): react_jsx_runtime.JSX.Element;
|
|
238
|
+
declare function AssetCard({ ticker, name, displayBalance, networks, logoUri, balanceVisible, accentColor, status, isYielding, onClick, className, }: AssetCardProps): react_jsx_runtime.JSX.Element;
|
|
237
239
|
|
|
238
240
|
interface TransactionCardProps {
|
|
239
241
|
/** Direction of the transaction */
|
package/dist/web/index.js
CHANGED
|
@@ -1639,12 +1639,14 @@ function AssetCard({
|
|
|
1639
1639
|
balanceVisible = true,
|
|
1640
1640
|
accentColor,
|
|
1641
1641
|
status,
|
|
1642
|
+
isYielding,
|
|
1642
1643
|
onClick,
|
|
1643
1644
|
className
|
|
1644
1645
|
}) {
|
|
1645
1646
|
const shown = balanceVisible ? displayBalance : "\u2022\u2022\u2022\u2022\u2022\u2022";
|
|
1646
1647
|
const displayShown = balanceVisible ? formatDisplayAmountText(displayBalance) : shown;
|
|
1647
1648
|
const [hovered, setHovered] = useState5(false);
|
|
1649
|
+
const showYield = isYielding ?? ["USDB"].includes(ticker.toUpperCase());
|
|
1648
1650
|
const gradientStyle = accentColor ? { background: `linear-gradient(135deg, var(--card) 30%, ${accentColor}${hovered ? "77" : "55"} 75%, ${accentColor}${hovered ? "dd" : "b3"} 100%)`, transition: "background 0.3s ease" } : void 0;
|
|
1649
1651
|
return /* @__PURE__ */ jsxs8(
|
|
1650
1652
|
"div",
|
|
@@ -1696,7 +1698,26 @@ function AssetCard({
|
|
|
1696
1698
|
children: displayShown
|
|
1697
1699
|
}
|
|
1698
1700
|
),
|
|
1699
|
-
/* @__PURE__ */
|
|
1701
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-end gap-1 mt-0.5", children: [
|
|
1702
|
+
/* @__PURE__ */ jsx19("p", { className: "truncate text-tiny font-medium uppercase tracking-wide text-muted-foreground", children: ticker }),
|
|
1703
|
+
showYield && /* @__PURE__ */ jsx19("div", { title: "Yield Generating Asset", className: "text-success/90 flex items-center justify-center bg-success/10 rounded-full p-0.5", children: /* @__PURE__ */ jsxs8(
|
|
1704
|
+
"svg",
|
|
1705
|
+
{
|
|
1706
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1707
|
+
viewBox: "0 0 24 24",
|
|
1708
|
+
fill: "none",
|
|
1709
|
+
stroke: "currentColor",
|
|
1710
|
+
strokeWidth: "2",
|
|
1711
|
+
strokeLinecap: "round",
|
|
1712
|
+
strokeLinejoin: "round",
|
|
1713
|
+
className: "w-3 h-3",
|
|
1714
|
+
children: [
|
|
1715
|
+
/* @__PURE__ */ jsx19("path", { d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z" }),
|
|
1716
|
+
/* @__PURE__ */ jsx19("path", { d: "M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12" })
|
|
1717
|
+
]
|
|
1718
|
+
}
|
|
1719
|
+
) })
|
|
1720
|
+
] }),
|
|
1700
1721
|
status && /* @__PURE__ */ jsx19(StatusBadge, { status, className: "mt-2" })
|
|
1701
1722
|
] })
|
|
1702
1723
|
] })
|
|
@@ -2374,11 +2395,14 @@ function AccountStatusTabs({
|
|
|
2374
2395
|
/* @__PURE__ */ jsx28("p", { className: "mt-5 text-sm leading-relaxed text-muted-foreground", children: selectedAccount.detail }),
|
|
2375
2396
|
/* @__PURE__ */ jsxs15("div", { className: "mt-5", children: [
|
|
2376
2397
|
/* @__PURE__ */ jsx28("div", { className: "text-icon-xxs font-black uppercase tracking-[0.18em] text-white/45", children: "Capabilities" }),
|
|
2377
|
-
/* @__PURE__ */ jsx28("div", { className: "mt-3 flex flex-wrap gap-2", children: selectedAccount.capabilityBullets.map((capability) => /* @__PURE__ */
|
|
2398
|
+
/* @__PURE__ */ jsx28("div", { className: "mt-3 flex flex-wrap gap-2", children: selectedAccount.capabilityBullets.map((capability) => /* @__PURE__ */ jsxs15(
|
|
2378
2399
|
"span",
|
|
2379
2400
|
{
|
|
2380
|
-
className: "rounded-full border bg-white/[0.05] px-2.5 py-1 text-xxs font-medium text-white/
|
|
2381
|
-
children:
|
|
2401
|
+
className: "inline-flex items-center gap-1.5 rounded-full border bg-white/[0.05] px-2.5 py-1 text-xxs font-medium text-white/70",
|
|
2402
|
+
children: [
|
|
2403
|
+
/* @__PURE__ */ jsx28("span", { className: "size-1.5 rounded-full bg-primary/70" }),
|
|
2404
|
+
capability
|
|
2405
|
+
]
|
|
2382
2406
|
},
|
|
2383
2407
|
capability
|
|
2384
2408
|
)) })
|
|
@@ -8040,6 +8064,11 @@ function DepositPreGeneration({
|
|
|
8040
8064
|
// src/web/components/deposit-asset-selection.tsx
|
|
8041
8065
|
import { useEffect as useEffect10, useState as useState15 } from "react";
|
|
8042
8066
|
import { Fragment as Fragment16, jsx as jsx79, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
8067
|
+
var ADD_ASSET_SUBTITLE = {
|
|
8068
|
+
RGB: "RGB asset on Bitcoin",
|
|
8069
|
+
SPARK: "Spark-native asset",
|
|
8070
|
+
ARKADE: "Arkade-native asset"
|
|
8071
|
+
};
|
|
8043
8072
|
var PROTOCOL_BADGE = {
|
|
8044
8073
|
RGB: { label: "RGB", className: "bg-network-rgb-chip text-network-rgb-text" },
|
|
8045
8074
|
SPARK: { label: "Spark", className: "bg-network-spark-chip text-network-spark-text" },
|
|
@@ -8077,6 +8106,7 @@ function DepositAssetSelection({
|
|
|
8077
8106
|
const noResults = filteredAssets.length === 0 && !!searchQuery;
|
|
8078
8107
|
const isSearching = !!searchQuery;
|
|
8079
8108
|
const [assetsExpanded, setAssetsExpanded] = useState15(false);
|
|
8109
|
+
const [showAddAssetModal, setShowAddAssetModal] = useState15(false);
|
|
8080
8110
|
useEffect10(() => {
|
|
8081
8111
|
if (isSearching) setAssetsExpanded(true);
|
|
8082
8112
|
}, [isSearching]);
|
|
@@ -8256,52 +8286,60 @@ function DepositAssetSelection({
|
|
|
8256
8286
|
]
|
|
8257
8287
|
}
|
|
8258
8288
|
) }),
|
|
8259
|
-
!searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */
|
|
8260
|
-
|
|
8261
|
-
|
|
8262
|
-
"
|
|
8289
|
+
!searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ jsx79("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ jsxs65(
|
|
8290
|
+
"button",
|
|
8291
|
+
{
|
|
8292
|
+
type: "button",
|
|
8293
|
+
"data-testid": "deposit-add-asset",
|
|
8294
|
+
onClick: () => setShowAddAssetModal(true),
|
|
8295
|
+
className: "group flex w-full items-center gap-3 rounded-2xl border border-white/8 bg-white/3 p-3 transition-all hover:border-border hover:bg-accent",
|
|
8296
|
+
children: [
|
|
8297
|
+
/* @__PURE__ */ jsx79("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ jsx79(Icon, { name: "add", size: "md", className: "text-primary" }) }),
|
|
8298
|
+
/* @__PURE__ */ jsxs65("div", { className: "flex-1 text-left", children: [
|
|
8299
|
+
/* @__PURE__ */ jsx79("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
|
|
8300
|
+
/* @__PURE__ */ jsxs65("p", { className: "text-xxs leading-tight text-white/40", children: [
|
|
8301
|
+
"Receive a new ",
|
|
8302
|
+
newAssetOptions.map((o) => o.ticker).join(", "),
|
|
8303
|
+
" asset"
|
|
8304
|
+
] })
|
|
8305
|
+
] }),
|
|
8306
|
+
/* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
|
|
8307
|
+
]
|
|
8308
|
+
}
|
|
8309
|
+
) })
|
|
8310
|
+
] }),
|
|
8311
|
+
/* @__PURE__ */ jsx79(
|
|
8312
|
+
BottomSheet,
|
|
8313
|
+
{
|
|
8314
|
+
open: showAddAssetModal,
|
|
8315
|
+
title: "Add an asset",
|
|
8316
|
+
onClose: () => setShowAddAssetModal(false),
|
|
8317
|
+
children: /* @__PURE__ */ jsx79("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ jsxs65(
|
|
8318
|
+
"button",
|
|
8263
8319
|
{
|
|
8320
|
+
type: "button",
|
|
8321
|
+
"data-testid": `deposit-new-asset-${option.account.toLowerCase()}`,
|
|
8264
8322
|
className: cn(
|
|
8265
|
-
"
|
|
8266
|
-
|
|
8323
|
+
"group flex w-full items-center gap-3 rounded-2xl px-4 py-3 text-left transition-all",
|
|
8324
|
+
option.idleClass
|
|
8267
8325
|
),
|
|
8268
|
-
|
|
8269
|
-
|
|
8270
|
-
|
|
8271
|
-
|
|
8272
|
-
|
|
8273
|
-
|
|
8274
|
-
|
|
8275
|
-
|
|
8276
|
-
|
|
8277
|
-
|
|
8278
|
-
|
|
8279
|
-
|
|
8280
|
-
|
|
8281
|
-
|
|
8282
|
-
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
/* @__PURE__ */ jsx79("div", { className: "mt-2 min-w-0", children: /* @__PURE__ */ jsx79(
|
|
8286
|
-
"div",
|
|
8287
|
-
{
|
|
8288
|
-
className: cn(
|
|
8289
|
-
"text-sm font-bold tracking-wide",
|
|
8290
|
-
active ? "text-white" : "text-white group-hover:opacity-90",
|
|
8291
|
-
!active && option.titleHoverClass
|
|
8292
|
-
),
|
|
8293
|
-
children: option.title
|
|
8294
|
-
}
|
|
8295
|
-
) })
|
|
8296
|
-
]
|
|
8297
|
-
},
|
|
8298
|
-
option.account
|
|
8299
|
-
);
|
|
8300
|
-
})
|
|
8301
|
-
}
|
|
8302
|
-
)
|
|
8303
|
-
] })
|
|
8304
|
-
] }),
|
|
8326
|
+
onClick: () => {
|
|
8327
|
+
setShowAddAssetModal(false);
|
|
8328
|
+
handleAddNewAsset(option.account);
|
|
8329
|
+
},
|
|
8330
|
+
children: [
|
|
8331
|
+
/* @__PURE__ */ jsx79(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
|
|
8332
|
+
/* @__PURE__ */ jsxs65("div", { className: "min-w-0 flex-1", children: [
|
|
8333
|
+
/* @__PURE__ */ jsx79("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
|
|
8334
|
+
/* @__PURE__ */ jsx79("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
|
|
8335
|
+
] }),
|
|
8336
|
+
/* @__PURE__ */ jsx79(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
|
|
8337
|
+
]
|
|
8338
|
+
},
|
|
8339
|
+
option.account
|
|
8340
|
+
)) })
|
|
8341
|
+
}
|
|
8342
|
+
),
|
|
8305
8343
|
isNewAsset && newAssetAccount === "RGB" && /* @__PURE__ */ jsxs65(Fragment16, { children: [
|
|
8306
8344
|
/* @__PURE__ */ jsx79("div", { className: "flex-shrink-0 px-5 pb-3 animate-in fade-in slide-in-from-bottom-2 duration-300", children: /* @__PURE__ */ jsxs65("div", { className: "space-y-2 rounded-2xl border border-network-arkade/20 bg-network-arkade/5 p-3", children: [
|
|
8307
8345
|
/* @__PURE__ */ jsx79("p", { className: "text-tiny leading-relaxed text-network-arkade/80", children: "Leave empty to receive any RGB asset, or enter a specific asset ID." }),
|
package/package.json
CHANGED