kaleido-ui 0.1.25 → 0.1.27
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/web/index.cjs +77 -42
- package/dist/web/index.d.cts +14 -2
- package/dist/web/index.d.ts +14 -2
- package/dist/web/index.js +77 -42
- package/package.json +1 -1
package/dist/web/index.cjs
CHANGED
|
@@ -2425,7 +2425,8 @@ function AccountNetworkNotice({
|
|
|
2425
2425
|
}
|
|
2426
2426
|
function AccountStatusPills({
|
|
2427
2427
|
status,
|
|
2428
|
-
network
|
|
2428
|
+
network,
|
|
2429
|
+
hideNetworkChip = false
|
|
2429
2430
|
}) {
|
|
2430
2431
|
const statusUi = getAccountStatusUi(status);
|
|
2431
2432
|
const networkUi = getAccountNetworkUi(network);
|
|
@@ -2440,7 +2441,7 @@ function AccountStatusPills({
|
|
|
2440
2441
|
children: statusUi.label === "Ready" ? "Connected" : statusUi.label
|
|
2441
2442
|
}
|
|
2442
2443
|
),
|
|
2443
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2444
|
+
!hideNetworkChip && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2444
2445
|
"span",
|
|
2445
2446
|
{
|
|
2446
2447
|
className: cn(
|
|
@@ -2501,20 +2502,30 @@ function TransferRouteCard({
|
|
|
2501
2502
|
function ExpandIcon({ expanded }) {
|
|
2502
2503
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon2, { name: expanded ? "expand_less" : "expand_more", size: "md" });
|
|
2503
2504
|
}
|
|
2505
|
+
var ACCOUNT_ACCENT_BG = {
|
|
2506
|
+
RGB: "bg-gradient-to-br from-primary/[0.06] via-card to-primary/[0.10]",
|
|
2507
|
+
SPARK: "bg-gradient-to-br from-info/[0.06] via-card to-info/[0.10]",
|
|
2508
|
+
ARKADE: "bg-gradient-to-br from-network-arkade/[0.06] via-card to-network-arkade/[0.10]"
|
|
2509
|
+
};
|
|
2504
2510
|
function AccountSettingsRow({
|
|
2505
2511
|
accountId,
|
|
2506
2512
|
title,
|
|
2507
2513
|
status,
|
|
2508
2514
|
network,
|
|
2509
2515
|
description,
|
|
2510
|
-
onClick
|
|
2516
|
+
onClick,
|
|
2517
|
+
hideNetworkChip = false,
|
|
2518
|
+
accent = false
|
|
2511
2519
|
}) {
|
|
2512
2520
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2513
2521
|
"button",
|
|
2514
2522
|
{
|
|
2515
2523
|
type: "button",
|
|
2516
2524
|
onClick,
|
|
2517
|
-
className:
|
|
2525
|
+
className: cn(
|
|
2526
|
+
"w-full rounded-3xl p-4 text-left shadow-inner transition-colors hover:brightness-110",
|
|
2527
|
+
accent ? ACCOUNT_ACCENT_BG[accountId] : "bg-white/[0.03] hover:bg-white/[0.05]"
|
|
2528
|
+
),
|
|
2518
2529
|
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
2519
2530
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(AccountHeaderIcons, { accountId }),
|
|
2520
2531
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
@@ -2525,7 +2536,14 @@ function AccountSettingsRow({
|
|
|
2525
2536
|
] }),
|
|
2526
2537
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon2, { name: "chevron_right", size: "sm", className: "text-white/40" })
|
|
2527
2538
|
] }),
|
|
2528
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "mt-3", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2539
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "mt-3", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2540
|
+
AccountStatusPills,
|
|
2541
|
+
{
|
|
2542
|
+
status,
|
|
2543
|
+
network,
|
|
2544
|
+
hideNetworkChip
|
|
2545
|
+
}
|
|
2546
|
+
) })
|
|
2529
2547
|
] })
|
|
2530
2548
|
] })
|
|
2531
2549
|
}
|
|
@@ -3102,24 +3120,46 @@ function AssetSelector({
|
|
|
3102
3120
|
}
|
|
3103
3121
|
)
|
|
3104
3122
|
] }),
|
|
3105
|
-
hasCategoryFilters && /*
|
|
3106
|
-
|
|
3107
|
-
|
|
3123
|
+
hasCategoryFilters && /*
|
|
3124
|
+
* Multi-select category chips — spec calls for "Filter and
|
|
3125
|
+
* Order menus (like in Blog)" but multi-select is the more
|
|
3126
|
+
* useful behaviour for an asset picker (lets the user see
|
|
3127
|
+
* stables + RWA together while comparing) and chips are
|
|
3128
|
+
* more discoverable than a dropdown for 3 short labels.
|
|
3129
|
+
* Restyle the chips to read as borderless pills consistent
|
|
3130
|
+
* with the rest of the modal, and add a small "Clear"
|
|
3131
|
+
* affordance when at least one chip is off so the user
|
|
3132
|
+
* can return to "all" without toggling each one.
|
|
3133
|
+
*/
|
|
3134
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "mt-3 flex flex-wrap items-center gap-1.5", children: [
|
|
3135
|
+
categories.map((category) => {
|
|
3136
|
+
const isActive = activeCategories.includes(category.id);
|
|
3137
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3138
|
+
"button",
|
|
3139
|
+
{
|
|
3140
|
+
type: "button",
|
|
3141
|
+
onClick: () => setActiveCategories(
|
|
3142
|
+
(current) => current.includes(category.id) ? current.filter((value) => value !== category.id) : [...current, category.id]
|
|
3143
|
+
),
|
|
3144
|
+
className: cn(
|
|
3145
|
+
"rounded-full px-2.5 py-1 text-tiny font-bold uppercase tracking-wide shadow-inner transition-colors",
|
|
3146
|
+
isActive ? "bg-primary/[0.14] text-primary" : "bg-surface-card text-text-dimmed hover:text-white/75"
|
|
3147
|
+
),
|
|
3148
|
+
children: category.label
|
|
3149
|
+
},
|
|
3150
|
+
category.id
|
|
3151
|
+
);
|
|
3152
|
+
}),
|
|
3153
|
+
activeCategories.length !== categories.length && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3108
3154
|
"button",
|
|
3109
3155
|
{
|
|
3110
3156
|
type: "button",
|
|
3111
|
-
onClick: () => setActiveCategories(
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
),
|
|
3118
|
-
children: category.label
|
|
3119
|
-
},
|
|
3120
|
-
category.id
|
|
3121
|
-
);
|
|
3122
|
-
}) })
|
|
3157
|
+
onClick: () => setActiveCategories(categories.map((category) => category.id)),
|
|
3158
|
+
className: "ml-auto rounded-full px-2 py-1 text-tiny font-bold uppercase tracking-wide text-white/40 transition-colors hover:text-white/75",
|
|
3159
|
+
children: "All"
|
|
3160
|
+
}
|
|
3161
|
+
)
|
|
3162
|
+
] })
|
|
3123
3163
|
] }),
|
|
3124
3164
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ScrollArea, { className: "min-h-0", viewportClassName: "px-2 py-2 pb-6", children: filtered.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-white/30", children: [
|
|
3125
3165
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon2, { name: "search", size: "md", className: "opacity-40" }),
|
|
@@ -3153,34 +3193,29 @@ function AssetSelector({
|
|
|
3153
3193
|
{
|
|
3154
3194
|
ticker: option.ticker,
|
|
3155
3195
|
logoUri: option.icon,
|
|
3156
|
-
size:
|
|
3196
|
+
size: 38,
|
|
3157
3197
|
className: cn(
|
|
3158
|
-
"transition-transform duration-200",
|
|
3198
|
+
"shrink-0 transition-transform duration-200",
|
|
3159
3199
|
!isDisabled && "group-hover:scale-[1.04]"
|
|
3160
3200
|
)
|
|
3161
3201
|
}
|
|
3162
3202
|
),
|
|
3163
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
|
|
3164
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "
|
|
3165
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
] }),
|
|
3176
|
-
isSelected && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-xxs font-bold uppercase tracking-wide text-primary", children: "Current" })
|
|
3203
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex min-w-0 flex-1 items-center justify-between gap-3 text-left", children: [
|
|
3204
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "min-w-0 flex flex-col leading-tight", children: [
|
|
3205
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "truncate text-base font-bold tracking-wide text-white", children: option.name ?? option.ticker }),
|
|
3206
|
+
option.network && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3207
|
+
NetworkBadge,
|
|
3208
|
+
{
|
|
3209
|
+
network: option.network,
|
|
3210
|
+
showLabel: true,
|
|
3211
|
+
size: "sm",
|
|
3212
|
+
className: "py-[1px]"
|
|
3213
|
+
}
|
|
3214
|
+
) })
|
|
3177
3215
|
] }),
|
|
3178
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "
|
|
3179
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("
|
|
3180
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.
|
|
3181
|
-
optionCategoryLabel && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "rounded-full border border-border-default bg-surface-overlay px-2 py-0.5 text-xxs font-semibold uppercase tracking-eyebrow text-text-dimmed", children: optionCategoryLabel }),
|
|
3182
|
-
isDisabled && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-xxs font-medium uppercase tracking-wide text-white/25", children: "In use" })
|
|
3183
|
-
] })
|
|
3216
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex shrink-0 flex-col items-end gap-0.5", children: [
|
|
3217
|
+
isSelected ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "rounded-full border border-primary/25 bg-primary/[0.14] px-2 py-0.5 text-xxs font-bold uppercase tracking-wide text-primary", children: "Current" }) : optionCategoryLabel && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "rounded-full bg-surface-card px-2 py-0.5 text-tiny font-bold uppercase tracking-wide text-text-dimmed shadow-inner", children: optionCategoryLabel }),
|
|
3218
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-tiny font-medium uppercase tracking-wide text-white/35", children: isDisabled ? "In use" : option.ticker })
|
|
3184
3219
|
] })
|
|
3185
3220
|
] })
|
|
3186
3221
|
]
|
package/dist/web/index.d.cts
CHANGED
|
@@ -448,9 +448,15 @@ declare function AccountNetworkNotice({ network, children, }: {
|
|
|
448
448
|
network: AccountSettingsNetwork;
|
|
449
449
|
children: ReactNode;
|
|
450
450
|
}): react_jsx_runtime.JSX.Element;
|
|
451
|
-
declare function AccountStatusPills({ status, network, }: {
|
|
451
|
+
declare function AccountStatusPills({ status, network, hideNetworkChip, }: {
|
|
452
452
|
status: 'ready' | 'offline' | 'optional' | string;
|
|
453
453
|
network: AccountSettingsNetwork;
|
|
454
|
+
/**
|
|
455
|
+
* Drop the network (MAINNET / Regtest / …) chip. Used on the Settings
|
|
456
|
+
* main page where the network is implicit context and the chip is
|
|
457
|
+
* design noise next to the connected/offline status.
|
|
458
|
+
*/
|
|
459
|
+
hideNetworkChip?: boolean;
|
|
454
460
|
}): react_jsx_runtime.JSX.Element;
|
|
455
461
|
declare function SectionTitle({ children }: {
|
|
456
462
|
children: ReactNode;
|
|
@@ -470,13 +476,19 @@ declare function TransferRouteCard({ label, summary, eta, feeHint, }: {
|
|
|
470
476
|
declare function ExpandIcon({ expanded }: {
|
|
471
477
|
expanded: boolean;
|
|
472
478
|
}): react_jsx_runtime.JSX.Element;
|
|
473
|
-
declare function AccountSettingsRow({ accountId, title, status, network, description, onClick, }: {
|
|
479
|
+
declare function AccountSettingsRow({ accountId, title, status, network, description, onClick, hideNetworkChip, accent, }: {
|
|
474
480
|
accountId: AccountSettingsProtocol;
|
|
475
481
|
title: string;
|
|
476
482
|
status: 'ready' | 'offline' | 'optional' | string;
|
|
477
483
|
network: AccountSettingsNetwork;
|
|
478
484
|
description: string;
|
|
479
485
|
onClick: () => void;
|
|
486
|
+
/** Drop the MAINNET / Regtest pill — useful in Settings where the row
|
|
487
|
+
is one of many and the network chip is redundant noise. */
|
|
488
|
+
hideNetworkChip?: boolean;
|
|
489
|
+
/** Render the row with the per-account accent gradient (used on the
|
|
490
|
+
Settings main page so account rows mirror dashboard asset cards). */
|
|
491
|
+
accent?: boolean;
|
|
480
492
|
}): react_jsx_runtime.JSX.Element;
|
|
481
493
|
|
|
482
494
|
interface AccountCapabilitiesCardProps {
|
package/dist/web/index.d.ts
CHANGED
|
@@ -448,9 +448,15 @@ declare function AccountNetworkNotice({ network, children, }: {
|
|
|
448
448
|
network: AccountSettingsNetwork;
|
|
449
449
|
children: ReactNode;
|
|
450
450
|
}): react_jsx_runtime.JSX.Element;
|
|
451
|
-
declare function AccountStatusPills({ status, network, }: {
|
|
451
|
+
declare function AccountStatusPills({ status, network, hideNetworkChip, }: {
|
|
452
452
|
status: 'ready' | 'offline' | 'optional' | string;
|
|
453
453
|
network: AccountSettingsNetwork;
|
|
454
|
+
/**
|
|
455
|
+
* Drop the network (MAINNET / Regtest / …) chip. Used on the Settings
|
|
456
|
+
* main page where the network is implicit context and the chip is
|
|
457
|
+
* design noise next to the connected/offline status.
|
|
458
|
+
*/
|
|
459
|
+
hideNetworkChip?: boolean;
|
|
454
460
|
}): react_jsx_runtime.JSX.Element;
|
|
455
461
|
declare function SectionTitle({ children }: {
|
|
456
462
|
children: ReactNode;
|
|
@@ -470,13 +476,19 @@ declare function TransferRouteCard({ label, summary, eta, feeHint, }: {
|
|
|
470
476
|
declare function ExpandIcon({ expanded }: {
|
|
471
477
|
expanded: boolean;
|
|
472
478
|
}): react_jsx_runtime.JSX.Element;
|
|
473
|
-
declare function AccountSettingsRow({ accountId, title, status, network, description, onClick, }: {
|
|
479
|
+
declare function AccountSettingsRow({ accountId, title, status, network, description, onClick, hideNetworkChip, accent, }: {
|
|
474
480
|
accountId: AccountSettingsProtocol;
|
|
475
481
|
title: string;
|
|
476
482
|
status: 'ready' | 'offline' | 'optional' | string;
|
|
477
483
|
network: AccountSettingsNetwork;
|
|
478
484
|
description: string;
|
|
479
485
|
onClick: () => void;
|
|
486
|
+
/** Drop the MAINNET / Regtest pill — useful in Settings where the row
|
|
487
|
+
is one of many and the network chip is redundant noise. */
|
|
488
|
+
hideNetworkChip?: boolean;
|
|
489
|
+
/** Render the row with the per-account accent gradient (used on the
|
|
490
|
+
Settings main page so account rows mirror dashboard asset cards). */
|
|
491
|
+
accent?: boolean;
|
|
480
492
|
}): react_jsx_runtime.JSX.Element;
|
|
481
493
|
|
|
482
494
|
interface AccountCapabilitiesCardProps {
|
package/dist/web/index.js
CHANGED
|
@@ -2270,7 +2270,8 @@ function AccountNetworkNotice({
|
|
|
2270
2270
|
}
|
|
2271
2271
|
function AccountStatusPills({
|
|
2272
2272
|
status,
|
|
2273
|
-
network
|
|
2273
|
+
network,
|
|
2274
|
+
hideNetworkChip = false
|
|
2274
2275
|
}) {
|
|
2275
2276
|
const statusUi = getAccountStatusUi(status);
|
|
2276
2277
|
const networkUi = getAccountNetworkUi(network);
|
|
@@ -2285,7 +2286,7 @@ function AccountStatusPills({
|
|
|
2285
2286
|
children: statusUi.label === "Ready" ? "Connected" : statusUi.label
|
|
2286
2287
|
}
|
|
2287
2288
|
),
|
|
2288
|
-
/* @__PURE__ */ jsx30(
|
|
2289
|
+
!hideNetworkChip && /* @__PURE__ */ jsx30(
|
|
2289
2290
|
"span",
|
|
2290
2291
|
{
|
|
2291
2292
|
className: cn(
|
|
@@ -2346,20 +2347,30 @@ function TransferRouteCard({
|
|
|
2346
2347
|
function ExpandIcon({ expanded }) {
|
|
2347
2348
|
return /* @__PURE__ */ jsx30(Icon2, { name: expanded ? "expand_less" : "expand_more", size: "md" });
|
|
2348
2349
|
}
|
|
2350
|
+
var ACCOUNT_ACCENT_BG = {
|
|
2351
|
+
RGB: "bg-gradient-to-br from-primary/[0.06] via-card to-primary/[0.10]",
|
|
2352
|
+
SPARK: "bg-gradient-to-br from-info/[0.06] via-card to-info/[0.10]",
|
|
2353
|
+
ARKADE: "bg-gradient-to-br from-network-arkade/[0.06] via-card to-network-arkade/[0.10]"
|
|
2354
|
+
};
|
|
2349
2355
|
function AccountSettingsRow({
|
|
2350
2356
|
accountId,
|
|
2351
2357
|
title,
|
|
2352
2358
|
status,
|
|
2353
2359
|
network,
|
|
2354
2360
|
description,
|
|
2355
|
-
onClick
|
|
2361
|
+
onClick,
|
|
2362
|
+
hideNetworkChip = false,
|
|
2363
|
+
accent = false
|
|
2356
2364
|
}) {
|
|
2357
2365
|
return /* @__PURE__ */ jsx30(
|
|
2358
2366
|
"button",
|
|
2359
2367
|
{
|
|
2360
2368
|
type: "button",
|
|
2361
2369
|
onClick,
|
|
2362
|
-
className:
|
|
2370
|
+
className: cn(
|
|
2371
|
+
"w-full rounded-3xl p-4 text-left shadow-inner transition-colors hover:brightness-110",
|
|
2372
|
+
accent ? ACCOUNT_ACCENT_BG[accountId] : "bg-white/[0.03] hover:bg-white/[0.05]"
|
|
2373
|
+
),
|
|
2363
2374
|
children: /* @__PURE__ */ jsxs18("div", { className: "flex items-start gap-3", children: [
|
|
2364
2375
|
/* @__PURE__ */ jsx30(AccountHeaderIcons, { accountId }),
|
|
2365
2376
|
/* @__PURE__ */ jsxs18("div", { className: "min-w-0 flex-1", children: [
|
|
@@ -2370,7 +2381,14 @@ function AccountSettingsRow({
|
|
|
2370
2381
|
] }),
|
|
2371
2382
|
/* @__PURE__ */ jsx30(Icon2, { name: "chevron_right", size: "sm", className: "text-white/40" })
|
|
2372
2383
|
] }),
|
|
2373
|
-
/* @__PURE__ */ jsx30("div", { className: "mt-3", children: /* @__PURE__ */ jsx30(
|
|
2384
|
+
/* @__PURE__ */ jsx30("div", { className: "mt-3", children: /* @__PURE__ */ jsx30(
|
|
2385
|
+
AccountStatusPills,
|
|
2386
|
+
{
|
|
2387
|
+
status,
|
|
2388
|
+
network,
|
|
2389
|
+
hideNetworkChip
|
|
2390
|
+
}
|
|
2391
|
+
) })
|
|
2374
2392
|
] })
|
|
2375
2393
|
] })
|
|
2376
2394
|
}
|
|
@@ -2947,24 +2965,46 @@ function AssetSelector({
|
|
|
2947
2965
|
}
|
|
2948
2966
|
)
|
|
2949
2967
|
] }),
|
|
2950
|
-
hasCategoryFilters && /*
|
|
2951
|
-
|
|
2952
|
-
|
|
2968
|
+
hasCategoryFilters && /*
|
|
2969
|
+
* Multi-select category chips — spec calls for "Filter and
|
|
2970
|
+
* Order menus (like in Blog)" but multi-select is the more
|
|
2971
|
+
* useful behaviour for an asset picker (lets the user see
|
|
2972
|
+
* stables + RWA together while comparing) and chips are
|
|
2973
|
+
* more discoverable than a dropdown for 3 short labels.
|
|
2974
|
+
* Restyle the chips to read as borderless pills consistent
|
|
2975
|
+
* with the rest of the modal, and add a small "Clear"
|
|
2976
|
+
* affordance when at least one chip is off so the user
|
|
2977
|
+
* can return to "all" without toggling each one.
|
|
2978
|
+
*/
|
|
2979
|
+
/* @__PURE__ */ jsxs22("div", { className: "mt-3 flex flex-wrap items-center gap-1.5", children: [
|
|
2980
|
+
categories.map((category) => {
|
|
2981
|
+
const isActive = activeCategories.includes(category.id);
|
|
2982
|
+
return /* @__PURE__ */ jsx34(
|
|
2983
|
+
"button",
|
|
2984
|
+
{
|
|
2985
|
+
type: "button",
|
|
2986
|
+
onClick: () => setActiveCategories(
|
|
2987
|
+
(current) => current.includes(category.id) ? current.filter((value) => value !== category.id) : [...current, category.id]
|
|
2988
|
+
),
|
|
2989
|
+
className: cn(
|
|
2990
|
+
"rounded-full px-2.5 py-1 text-tiny font-bold uppercase tracking-wide shadow-inner transition-colors",
|
|
2991
|
+
isActive ? "bg-primary/[0.14] text-primary" : "bg-surface-card text-text-dimmed hover:text-white/75"
|
|
2992
|
+
),
|
|
2993
|
+
children: category.label
|
|
2994
|
+
},
|
|
2995
|
+
category.id
|
|
2996
|
+
);
|
|
2997
|
+
}),
|
|
2998
|
+
activeCategories.length !== categories.length && /* @__PURE__ */ jsx34(
|
|
2953
2999
|
"button",
|
|
2954
3000
|
{
|
|
2955
3001
|
type: "button",
|
|
2956
|
-
onClick: () => setActiveCategories(
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
),
|
|
2963
|
-
children: category.label
|
|
2964
|
-
},
|
|
2965
|
-
category.id
|
|
2966
|
-
);
|
|
2967
|
-
}) })
|
|
3002
|
+
onClick: () => setActiveCategories(categories.map((category) => category.id)),
|
|
3003
|
+
className: "ml-auto rounded-full px-2 py-1 text-tiny font-bold uppercase tracking-wide text-white/40 transition-colors hover:text-white/75",
|
|
3004
|
+
children: "All"
|
|
3005
|
+
}
|
|
3006
|
+
)
|
|
3007
|
+
] })
|
|
2968
3008
|
] }),
|
|
2969
3009
|
/* @__PURE__ */ jsx34(ScrollArea, { className: "min-h-0", viewportClassName: "px-2 py-2 pb-6", children: filtered.length === 0 ? /* @__PURE__ */ jsxs22("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-white/30", children: [
|
|
2970
3010
|
/* @__PURE__ */ jsx34(Icon2, { name: "search", size: "md", className: "opacity-40" }),
|
|
@@ -2998,34 +3038,29 @@ function AssetSelector({
|
|
|
2998
3038
|
{
|
|
2999
3039
|
ticker: option.ticker,
|
|
3000
3040
|
logoUri: option.icon,
|
|
3001
|
-
size:
|
|
3041
|
+
size: 38,
|
|
3002
3042
|
className: cn(
|
|
3003
|
-
"transition-transform duration-200",
|
|
3043
|
+
"shrink-0 transition-transform duration-200",
|
|
3004
3044
|
!isDisabled && "group-hover:scale-[1.04]"
|
|
3005
3045
|
)
|
|
3006
3046
|
}
|
|
3007
3047
|
),
|
|
3008
|
-
/* @__PURE__ */ jsxs22("div", { className: "min-w-0 flex-1 text-left", children: [
|
|
3009
|
-
/* @__PURE__ */ jsxs22("div", { className: "
|
|
3010
|
-
/* @__PURE__ */
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
] }),
|
|
3021
|
-
isSelected && /* @__PURE__ */ jsx34("span", { className: "rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-xxs font-bold uppercase tracking-wide text-primary", children: "Current" })
|
|
3048
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex min-w-0 flex-1 items-center justify-between gap-3 text-left", children: [
|
|
3049
|
+
/* @__PURE__ */ jsxs22("div", { className: "min-w-0 flex flex-col leading-tight", children: [
|
|
3050
|
+
/* @__PURE__ */ jsx34("span", { className: "truncate text-base font-bold tracking-wide text-white", children: option.name ?? option.ticker }),
|
|
3051
|
+
option.network && /* @__PURE__ */ jsx34("span", { className: "mt-1", children: /* @__PURE__ */ jsx34(
|
|
3052
|
+
NetworkBadge,
|
|
3053
|
+
{
|
|
3054
|
+
network: option.network,
|
|
3055
|
+
showLabel: true,
|
|
3056
|
+
size: "sm",
|
|
3057
|
+
className: "py-[1px]"
|
|
3058
|
+
}
|
|
3059
|
+
) })
|
|
3022
3060
|
] }),
|
|
3023
|
-
/* @__PURE__ */ jsxs22("div", { className: "
|
|
3024
|
-
/* @__PURE__ */ jsx34("
|
|
3025
|
-
/* @__PURE__ */
|
|
3026
|
-
optionCategoryLabel && /* @__PURE__ */ jsx34("span", { className: "rounded-full border border-border-default bg-surface-overlay px-2 py-0.5 text-xxs font-semibold uppercase tracking-eyebrow text-text-dimmed", children: optionCategoryLabel }),
|
|
3027
|
-
isDisabled && /* @__PURE__ */ jsx34("span", { className: "text-xxs font-medium uppercase tracking-wide text-white/25", children: "In use" })
|
|
3028
|
-
] })
|
|
3061
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex shrink-0 flex-col items-end gap-0.5", children: [
|
|
3062
|
+
isSelected ? /* @__PURE__ */ jsx34("span", { className: "rounded-full border border-primary/25 bg-primary/[0.14] px-2 py-0.5 text-xxs font-bold uppercase tracking-wide text-primary", children: "Current" }) : optionCategoryLabel && /* @__PURE__ */ jsx34("span", { className: "rounded-full bg-surface-card px-2 py-0.5 text-tiny font-bold uppercase tracking-wide text-text-dimmed shadow-inner", children: optionCategoryLabel }),
|
|
3063
|
+
/* @__PURE__ */ jsx34("span", { className: "text-tiny font-medium uppercase tracking-wide text-white/35", children: isDisabled ? "In use" : option.ticker })
|
|
3029
3064
|
] })
|
|
3030
3065
|
] })
|
|
3031
3066
|
]
|
package/package.json
CHANGED