@cytario/design 1.12.0 → 1.13.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/dist/index.d.ts +161 -1
- package/dist/index.js +514 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/styles/tailwind.css +11 -0
- package/src/tokens/variables-dark.css +10 -0
- package/src/tokens/variables.css +49 -4
package/dist/index.js
CHANGED
|
@@ -2269,6 +2269,424 @@ function StorageConnectionCard({
|
|
|
2269
2269
|
return /* @__PURE__ */ jsx30("div", { className: baseStyles, children: cardContent });
|
|
2270
2270
|
}
|
|
2271
2271
|
|
|
2272
|
+
// src/components/Badge/Badge.tsx
|
|
2273
|
+
import { twMerge as twMerge8 } from "tailwind-merge";
|
|
2274
|
+
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2275
|
+
var variantStyles4 = {
|
|
2276
|
+
neutral: "bg-[var(--color-badge-neutral-bg)] text-[var(--color-badge-neutral-text)]",
|
|
2277
|
+
purple: "bg-[var(--color-badge-purple-bg)] text-[var(--color-badge-purple-text)]",
|
|
2278
|
+
teal: "bg-[var(--color-badge-teal-bg)] text-[var(--color-badge-teal-text)]",
|
|
2279
|
+
rose: "bg-[var(--color-badge-rose-bg)] text-[var(--color-badge-rose-text)]",
|
|
2280
|
+
slate: "bg-[var(--color-badge-slate-bg)] text-[var(--color-badge-slate-text)]",
|
|
2281
|
+
green: "bg-[var(--color-badge-green-bg)] text-[var(--color-badge-green-text)]",
|
|
2282
|
+
amber: "bg-[var(--color-badge-amber-bg)] text-[var(--color-badge-amber-text)]"
|
|
2283
|
+
};
|
|
2284
|
+
var sizeStyles7 = {
|
|
2285
|
+
sm: "px-1.5 py-0.5",
|
|
2286
|
+
md: "px-2 py-0.5"
|
|
2287
|
+
};
|
|
2288
|
+
var iconSizeMap4 = {
|
|
2289
|
+
sm: 12,
|
|
2290
|
+
md: 14
|
|
2291
|
+
};
|
|
2292
|
+
function Badge({
|
|
2293
|
+
children,
|
|
2294
|
+
variant = "neutral",
|
|
2295
|
+
size = "sm",
|
|
2296
|
+
icon: IconComponent,
|
|
2297
|
+
className
|
|
2298
|
+
}) {
|
|
2299
|
+
return /* @__PURE__ */ jsxs21(
|
|
2300
|
+
"span",
|
|
2301
|
+
{
|
|
2302
|
+
className: twMerge8(
|
|
2303
|
+
"inline-flex items-center gap-1 rounded-[var(--border-radius-full)]",
|
|
2304
|
+
"text-[length:var(--font-size-xs)] font-[number:var(--font-weight-medium)] leading-[var(--line-height-tight)]",
|
|
2305
|
+
variantStyles4[variant],
|
|
2306
|
+
sizeStyles7[size],
|
|
2307
|
+
className
|
|
2308
|
+
),
|
|
2309
|
+
children: [
|
|
2310
|
+
IconComponent && /* @__PURE__ */ jsx31(IconComponent, { size: iconSizeMap4[size], "aria-hidden": "true" }),
|
|
2311
|
+
children
|
|
2312
|
+
]
|
|
2313
|
+
}
|
|
2314
|
+
);
|
|
2315
|
+
}
|
|
2316
|
+
|
|
2317
|
+
// src/components/Card/Card.tsx
|
|
2318
|
+
import { twMerge as twMerge9 } from "tailwind-merge";
|
|
2319
|
+
import { Fragment as Fragment9, jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2320
|
+
var paddingStyles = {
|
|
2321
|
+
none: "p-0",
|
|
2322
|
+
sm: "p-3",
|
|
2323
|
+
md: "p-4",
|
|
2324
|
+
lg: "p-6"
|
|
2325
|
+
};
|
|
2326
|
+
function Card({
|
|
2327
|
+
children,
|
|
2328
|
+
header,
|
|
2329
|
+
footer,
|
|
2330
|
+
padding = "md",
|
|
2331
|
+
href,
|
|
2332
|
+
interactive = false,
|
|
2333
|
+
className
|
|
2334
|
+
}) {
|
|
2335
|
+
const isInteractive = interactive || !!href;
|
|
2336
|
+
const containerClass = twMerge9(
|
|
2337
|
+
"bg-[var(--color-surface-default)] border border-[var(--color-border-default)] rounded-[var(--border-radius-lg)] overflow-hidden shadow-sm",
|
|
2338
|
+
isInteractive && "transition-shadow hover:shadow-md hover:border-[var(--color-border-focus)] cursor-pointer",
|
|
2339
|
+
href && "block focus-visible:ring-2 focus-visible:ring-[var(--color-border-focus)] focus-visible:ring-offset-2 outline-none",
|
|
2340
|
+
className
|
|
2341
|
+
);
|
|
2342
|
+
const content = /* @__PURE__ */ jsxs22(Fragment9, { children: [
|
|
2343
|
+
header && /* @__PURE__ */ jsx32(
|
|
2344
|
+
"div",
|
|
2345
|
+
{
|
|
2346
|
+
className: twMerge9(
|
|
2347
|
+
"border-b border-[var(--color-border-default)]",
|
|
2348
|
+
paddingStyles[padding]
|
|
2349
|
+
),
|
|
2350
|
+
children: header
|
|
2351
|
+
}
|
|
2352
|
+
),
|
|
2353
|
+
/* @__PURE__ */ jsx32("div", { className: paddingStyles[padding], children }),
|
|
2354
|
+
footer && /* @__PURE__ */ jsx32(
|
|
2355
|
+
"div",
|
|
2356
|
+
{
|
|
2357
|
+
className: twMerge9(
|
|
2358
|
+
"border-t border-[var(--color-border-default)]",
|
|
2359
|
+
paddingStyles[padding]
|
|
2360
|
+
),
|
|
2361
|
+
children: footer
|
|
2362
|
+
}
|
|
2363
|
+
)
|
|
2364
|
+
] });
|
|
2365
|
+
if (href) {
|
|
2366
|
+
return /* @__PURE__ */ jsx32("a", { href, className: containerClass, children: content });
|
|
2367
|
+
}
|
|
2368
|
+
return /* @__PURE__ */ jsx32("div", { className: containerClass, children: content });
|
|
2369
|
+
}
|
|
2370
|
+
|
|
2371
|
+
// src/components/DeltaIndicator/DeltaIndicator.tsx
|
|
2372
|
+
import { ArrowUp, ArrowDown, Minus } from "lucide-react";
|
|
2373
|
+
import { twMerge as twMerge10 } from "tailwind-merge";
|
|
2374
|
+
import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2375
|
+
function getDirection(current, previous) {
|
|
2376
|
+
const diff = current - previous;
|
|
2377
|
+
if (diff > 0) return "increase";
|
|
2378
|
+
if (diff < 0) return "decrease";
|
|
2379
|
+
return "flat";
|
|
2380
|
+
}
|
|
2381
|
+
function formatCurrency(value) {
|
|
2382
|
+
const abs = Math.abs(value);
|
|
2383
|
+
const sign = value >= 0 ? "+" : "-";
|
|
2384
|
+
if (abs < 1e3) {
|
|
2385
|
+
return `${sign}$${abs.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
|
|
2386
|
+
}
|
|
2387
|
+
return `${sign}$${abs.toLocaleString("en-US", { minimumFractionDigits: 0, maximumFractionDigits: 0 })}`;
|
|
2388
|
+
}
|
|
2389
|
+
function formatPercentage(current, previous) {
|
|
2390
|
+
if (previous === 0) return null;
|
|
2391
|
+
const pct = (current - previous) / Math.abs(previous) * 100;
|
|
2392
|
+
const sign = pct >= 0 ? "+" : "";
|
|
2393
|
+
return `${sign}${pct.toFixed(1)}%`;
|
|
2394
|
+
}
|
|
2395
|
+
var directionColors = {
|
|
2396
|
+
increase: "text-[var(--color-delta-increase-text)]",
|
|
2397
|
+
decrease: "text-[var(--color-delta-decrease-text)]",
|
|
2398
|
+
flat: "text-[var(--color-delta-flat-text)]"
|
|
2399
|
+
};
|
|
2400
|
+
var reverseDirectionColors = {
|
|
2401
|
+
increase: "text-[var(--color-delta-decrease-text)]",
|
|
2402
|
+
decrease: "text-[var(--color-delta-increase-text)]",
|
|
2403
|
+
flat: "text-[var(--color-delta-flat-text)]"
|
|
2404
|
+
};
|
|
2405
|
+
var directionIcons = {
|
|
2406
|
+
increase: ArrowUp,
|
|
2407
|
+
decrease: ArrowDown,
|
|
2408
|
+
flat: Minus
|
|
2409
|
+
};
|
|
2410
|
+
var directionBgColors = {
|
|
2411
|
+
increase: "bg-[var(--color-delta-increase-bg)]",
|
|
2412
|
+
decrease: "bg-[var(--color-delta-decrease-bg)]",
|
|
2413
|
+
flat: "bg-[var(--color-delta-flat-bg)]"
|
|
2414
|
+
};
|
|
2415
|
+
function DeltaIndicator({
|
|
2416
|
+
current,
|
|
2417
|
+
previous,
|
|
2418
|
+
format = "combined",
|
|
2419
|
+
mode = "inline",
|
|
2420
|
+
label,
|
|
2421
|
+
reverseColor = false,
|
|
2422
|
+
unavailable = false,
|
|
2423
|
+
unavailableText = "N/A",
|
|
2424
|
+
className
|
|
2425
|
+
}) {
|
|
2426
|
+
if (unavailable) {
|
|
2427
|
+
return /* @__PURE__ */ jsxs23(
|
|
2428
|
+
"span",
|
|
2429
|
+
{
|
|
2430
|
+
className: twMerge10(
|
|
2431
|
+
"inline-flex items-center gap-1 font-[number:var(--font-weight-medium)]",
|
|
2432
|
+
"text-[var(--color-text-tertiary)]",
|
|
2433
|
+
className
|
|
2434
|
+
),
|
|
2435
|
+
children: [
|
|
2436
|
+
label && /* @__PURE__ */ jsx33("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)] mr-1", children: label }),
|
|
2437
|
+
unavailableText
|
|
2438
|
+
]
|
|
2439
|
+
}
|
|
2440
|
+
);
|
|
2441
|
+
}
|
|
2442
|
+
const diff = current - previous;
|
|
2443
|
+
const direction = getDirection(current, previous);
|
|
2444
|
+
const colorStyles = reverseColor ? reverseDirectionColors[direction] : directionColors[direction];
|
|
2445
|
+
const IconComponent = directionIcons[direction];
|
|
2446
|
+
const isNew = previous === 0 && current > 0;
|
|
2447
|
+
let valueText;
|
|
2448
|
+
if (format === "currency") {
|
|
2449
|
+
valueText = formatCurrency(diff);
|
|
2450
|
+
if (isNew) valueText = `${formatCurrency(diff)} (new)`;
|
|
2451
|
+
} else if (format === "percentage") {
|
|
2452
|
+
const pct = formatPercentage(current, previous);
|
|
2453
|
+
valueText = pct ?? formatCurrency(diff);
|
|
2454
|
+
if (isNew) valueText = "New";
|
|
2455
|
+
} else {
|
|
2456
|
+
const pct = formatPercentage(current, previous);
|
|
2457
|
+
if (isNew) {
|
|
2458
|
+
valueText = `${formatCurrency(diff)} (new)`;
|
|
2459
|
+
} else if (pct) {
|
|
2460
|
+
valueText = `${formatCurrency(diff)} (${pct})`;
|
|
2461
|
+
} else {
|
|
2462
|
+
valueText = formatCurrency(diff);
|
|
2463
|
+
}
|
|
2464
|
+
}
|
|
2465
|
+
const isPill = mode === "pill";
|
|
2466
|
+
return /* @__PURE__ */ jsxs23(
|
|
2467
|
+
"span",
|
|
2468
|
+
{
|
|
2469
|
+
className: twMerge10(
|
|
2470
|
+
"inline-flex items-center gap-1 font-[number:var(--font-weight-medium)]",
|
|
2471
|
+
colorStyles,
|
|
2472
|
+
isPill && [
|
|
2473
|
+
"rounded-[var(--border-radius-full)] px-2 py-0.5",
|
|
2474
|
+
"text-[length:var(--font-size-xs)]",
|
|
2475
|
+
directionBgColors[direction]
|
|
2476
|
+
],
|
|
2477
|
+
className
|
|
2478
|
+
),
|
|
2479
|
+
children: [
|
|
2480
|
+
label && /* @__PURE__ */ jsx33("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)] mr-1", children: label }),
|
|
2481
|
+
/* @__PURE__ */ jsx33(IconComponent, { size: 14, "aria-hidden": true }),
|
|
2482
|
+
valueText
|
|
2483
|
+
]
|
|
2484
|
+
}
|
|
2485
|
+
);
|
|
2486
|
+
}
|
|
2487
|
+
|
|
2488
|
+
// src/components/ProgressBar/ProgressBar.tsx
|
|
2489
|
+
import { twMerge as twMerge11 } from "tailwind-merge";
|
|
2490
|
+
import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2491
|
+
var fillStyles = {
|
|
2492
|
+
brand: "bg-[var(--color-progress-fill)]",
|
|
2493
|
+
success: "bg-[var(--color-progress-fill-success)]",
|
|
2494
|
+
warning: "bg-[var(--color-progress-fill-warning)]",
|
|
2495
|
+
danger: "bg-[var(--color-progress-fill-danger)]",
|
|
2496
|
+
neutral: "bg-[var(--color-text-secondary)]"
|
|
2497
|
+
};
|
|
2498
|
+
var sizeStyles8 = {
|
|
2499
|
+
sm: "h-1.5",
|
|
2500
|
+
md: "h-3",
|
|
2501
|
+
lg: "h-4"
|
|
2502
|
+
};
|
|
2503
|
+
function ProgressBar({
|
|
2504
|
+
value,
|
|
2505
|
+
label,
|
|
2506
|
+
description,
|
|
2507
|
+
variant = "brand",
|
|
2508
|
+
size = "md",
|
|
2509
|
+
showValue = true,
|
|
2510
|
+
className
|
|
2511
|
+
}) {
|
|
2512
|
+
const clampedValue = Math.min(100, Math.max(0, value));
|
|
2513
|
+
return /* @__PURE__ */ jsxs24("div", { className: twMerge11("w-full", className), children: [
|
|
2514
|
+
(label || description || showValue) && /* @__PURE__ */ jsxs24("div", { className: "flex items-center justify-between mb-2", children: [
|
|
2515
|
+
/* @__PURE__ */ jsx34("span", { className: "text-[length:var(--font-size-sm)] font-[number:var(--font-weight-medium)] text-[var(--color-text-primary)]", children: label }),
|
|
2516
|
+
/* @__PURE__ */ jsx34("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)]", children: description ?? (showValue ? `${clampedValue}%` : null) })
|
|
2517
|
+
] }),
|
|
2518
|
+
/* @__PURE__ */ jsx34(
|
|
2519
|
+
"div",
|
|
2520
|
+
{
|
|
2521
|
+
role: "progressbar",
|
|
2522
|
+
"aria-valuenow": clampedValue,
|
|
2523
|
+
"aria-valuemin": 0,
|
|
2524
|
+
"aria-valuemax": 100,
|
|
2525
|
+
"aria-label": label ?? "Progress",
|
|
2526
|
+
className: twMerge11(
|
|
2527
|
+
"w-full rounded-[var(--border-radius-full)] bg-[var(--color-progress-track)]",
|
|
2528
|
+
sizeStyles8[size]
|
|
2529
|
+
),
|
|
2530
|
+
children: /* @__PURE__ */ jsx34(
|
|
2531
|
+
"div",
|
|
2532
|
+
{
|
|
2533
|
+
className: twMerge11(
|
|
2534
|
+
"h-full rounded-[var(--border-radius-full)] transition-all duration-300",
|
|
2535
|
+
fillStyles[variant]
|
|
2536
|
+
),
|
|
2537
|
+
style: { width: `${clampedValue}%` }
|
|
2538
|
+
}
|
|
2539
|
+
)
|
|
2540
|
+
}
|
|
2541
|
+
)
|
|
2542
|
+
] });
|
|
2543
|
+
}
|
|
2544
|
+
|
|
2545
|
+
// src/components/Banner/Banner.tsx
|
|
2546
|
+
import { useState as useState3 } from "react";
|
|
2547
|
+
import {
|
|
2548
|
+
Info as Info3,
|
|
2549
|
+
AlertTriangle,
|
|
2550
|
+
AlertCircle as AlertCircle2,
|
|
2551
|
+
CheckCircle2,
|
|
2552
|
+
X as X3
|
|
2553
|
+
} from "lucide-react";
|
|
2554
|
+
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
2555
|
+
import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2556
|
+
var variantConfig2 = {
|
|
2557
|
+
info: {
|
|
2558
|
+
icon: Info3,
|
|
2559
|
+
containerClass: "bg-[var(--color-banner-info-bg)] border-[var(--color-banner-info-border)] text-[var(--color-banner-info-text)]",
|
|
2560
|
+
iconClass: "text-[var(--color-banner-info-icon)]",
|
|
2561
|
+
role: "status"
|
|
2562
|
+
},
|
|
2563
|
+
warning: {
|
|
2564
|
+
icon: AlertTriangle,
|
|
2565
|
+
containerClass: "bg-[var(--color-banner-warning-bg)] border-[var(--color-banner-warning-border)] text-[var(--color-banner-warning-text)]",
|
|
2566
|
+
iconClass: "text-[var(--color-banner-warning-icon)]",
|
|
2567
|
+
role: "alert"
|
|
2568
|
+
},
|
|
2569
|
+
danger: {
|
|
2570
|
+
icon: AlertCircle2,
|
|
2571
|
+
containerClass: "bg-[var(--color-banner-danger-bg)] border-[var(--color-banner-danger-border)] text-[var(--color-banner-danger-text)]",
|
|
2572
|
+
iconClass: "text-[var(--color-banner-danger-icon)]",
|
|
2573
|
+
role: "alert"
|
|
2574
|
+
},
|
|
2575
|
+
success: {
|
|
2576
|
+
icon: CheckCircle2,
|
|
2577
|
+
containerClass: "bg-[var(--color-banner-success-bg)] border-[var(--color-banner-success-border)] text-[var(--color-banner-success-text)]",
|
|
2578
|
+
iconClass: "text-[var(--color-banner-success-icon)]",
|
|
2579
|
+
role: "status"
|
|
2580
|
+
}
|
|
2581
|
+
};
|
|
2582
|
+
function Banner({
|
|
2583
|
+
children,
|
|
2584
|
+
variant = "info",
|
|
2585
|
+
title,
|
|
2586
|
+
icon,
|
|
2587
|
+
dismissible = false,
|
|
2588
|
+
onDismiss,
|
|
2589
|
+
className
|
|
2590
|
+
}) {
|
|
2591
|
+
const [dismissed, setDismissed] = useState3(false);
|
|
2592
|
+
if (dismissed) return null;
|
|
2593
|
+
const config = variantConfig2[variant];
|
|
2594
|
+
const IconComponent = icon ?? config.icon;
|
|
2595
|
+
const handleDismiss = () => {
|
|
2596
|
+
setDismissed(true);
|
|
2597
|
+
onDismiss?.();
|
|
2598
|
+
};
|
|
2599
|
+
return /* @__PURE__ */ jsxs25(
|
|
2600
|
+
"div",
|
|
2601
|
+
{
|
|
2602
|
+
role: config.role,
|
|
2603
|
+
className: twMerge12(
|
|
2604
|
+
"flex items-start gap-[var(--spacing-3)] rounded-[var(--border-radius-lg)] border px-[var(--spacing-4)] py-[var(--spacing-3)]",
|
|
2605
|
+
"text-[length:var(--font-size-sm)]",
|
|
2606
|
+
config.containerClass,
|
|
2607
|
+
className
|
|
2608
|
+
),
|
|
2609
|
+
children: [
|
|
2610
|
+
/* @__PURE__ */ jsx35(
|
|
2611
|
+
IconComponent,
|
|
2612
|
+
{
|
|
2613
|
+
size: 20,
|
|
2614
|
+
className: twMerge12("shrink-0 mt-0.5", config.iconClass),
|
|
2615
|
+
"aria-hidden": "true"
|
|
2616
|
+
}
|
|
2617
|
+
),
|
|
2618
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex-1", children: [
|
|
2619
|
+
title && /* @__PURE__ */ jsxs25("span", { className: "font-[number:var(--font-weight-medium)]", children: [
|
|
2620
|
+
title,
|
|
2621
|
+
" \u2014 "
|
|
2622
|
+
] }),
|
|
2623
|
+
children
|
|
2624
|
+
] }),
|
|
2625
|
+
dismissible && /* @__PURE__ */ jsx35(
|
|
2626
|
+
"button",
|
|
2627
|
+
{
|
|
2628
|
+
type: "button",
|
|
2629
|
+
onClick: handleDismiss,
|
|
2630
|
+
className: "shrink-0 rounded-[var(--border-radius-sm)] p-0.5 opacity-70 hover:opacity-100 transition-opacity outline-none focus-visible:ring-2 focus-visible:ring-current",
|
|
2631
|
+
"aria-label": "Dismiss",
|
|
2632
|
+
children: /* @__PURE__ */ jsx35(X3, { size: 16, "aria-hidden": "true" })
|
|
2633
|
+
}
|
|
2634
|
+
)
|
|
2635
|
+
]
|
|
2636
|
+
}
|
|
2637
|
+
);
|
|
2638
|
+
}
|
|
2639
|
+
|
|
2640
|
+
// src/components/MetricCard/MetricCard.tsx
|
|
2641
|
+
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
2642
|
+
import { Fragment as Fragment10, jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2643
|
+
var sizeConfig = {
|
|
2644
|
+
sm: {
|
|
2645
|
+
padding: "p-3",
|
|
2646
|
+
labelClass: "text-[length:var(--font-size-xs)]",
|
|
2647
|
+
valueClass: "text-[length:var(--font-size-xl)]"
|
|
2648
|
+
},
|
|
2649
|
+
md: {
|
|
2650
|
+
padding: "p-4",
|
|
2651
|
+
labelClass: "text-[length:var(--font-size-sm)]",
|
|
2652
|
+
valueClass: "text-[length:var(--font-size-2xl)]"
|
|
2653
|
+
}
|
|
2654
|
+
};
|
|
2655
|
+
function MetricCard({
|
|
2656
|
+
label,
|
|
2657
|
+
value,
|
|
2658
|
+
secondary,
|
|
2659
|
+
href,
|
|
2660
|
+
size = "md",
|
|
2661
|
+
className
|
|
2662
|
+
}) {
|
|
2663
|
+
const config = sizeConfig[size];
|
|
2664
|
+
const containerClass = twMerge13(
|
|
2665
|
+
"bg-[var(--color-surface-default)] border border-[var(--color-border-default)] rounded-[var(--border-radius-lg)] shadow-sm",
|
|
2666
|
+
config.padding,
|
|
2667
|
+
href && "block transition-shadow hover:shadow-md hover:border-[var(--color-border-focus)] focus-visible:ring-2 focus-visible:ring-[var(--color-border-focus)] focus-visible:ring-offset-2 outline-none",
|
|
2668
|
+
className
|
|
2669
|
+
);
|
|
2670
|
+
const content = /* @__PURE__ */ jsxs26(Fragment10, { children: [
|
|
2671
|
+
/* @__PURE__ */ jsx36("div", { className: twMerge13(config.labelClass, "text-[var(--color-text-secondary)]"), children: label }),
|
|
2672
|
+
/* @__PURE__ */ jsx36(
|
|
2673
|
+
"div",
|
|
2674
|
+
{
|
|
2675
|
+
className: twMerge13(
|
|
2676
|
+
config.valueClass,
|
|
2677
|
+
"font-[number:var(--font-weight-semibold)] text-[var(--color-text-primary)] mt-1 tabular-nums"
|
|
2678
|
+
),
|
|
2679
|
+
children: value
|
|
2680
|
+
}
|
|
2681
|
+
),
|
|
2682
|
+
secondary && /* @__PURE__ */ jsx36("div", { className: "mt-1 text-sm", children: secondary })
|
|
2683
|
+
] });
|
|
2684
|
+
if (href) {
|
|
2685
|
+
return /* @__PURE__ */ jsx36("a", { href, className: containerClass, children: content });
|
|
2686
|
+
}
|
|
2687
|
+
return /* @__PURE__ */ jsx36("div", { className: containerClass, children: content });
|
|
2688
|
+
}
|
|
2689
|
+
|
|
2272
2690
|
// src/tokens/tokens.ts
|
|
2273
2691
|
var ColorPurple50 = "#f5f0fa";
|
|
2274
2692
|
var ColorPurple100 = "#ead9f5";
|
|
@@ -2320,6 +2738,16 @@ var ColorSlate600 = "#475569";
|
|
|
2320
2738
|
var ColorSlate700 = "#334155";
|
|
2321
2739
|
var ColorSlate800 = "#1e293b";
|
|
2322
2740
|
var ColorSlate900 = "#0f172a";
|
|
2741
|
+
var ColorAmber50 = "#fffbeb";
|
|
2742
|
+
var ColorAmber100 = "#fef3c7";
|
|
2743
|
+
var ColorAmber200 = "#fde68a";
|
|
2744
|
+
var ColorAmber300 = "#fcd34d";
|
|
2745
|
+
var ColorAmber400 = "#fbbf24";
|
|
2746
|
+
var ColorAmber500 = "#f59e0b";
|
|
2747
|
+
var ColorAmber600 = "#d97706";
|
|
2748
|
+
var ColorAmber700 = "#b45309";
|
|
2749
|
+
var ColorAmber800 = "#92400e";
|
|
2750
|
+
var ColorAmber900 = "#78350f";
|
|
2323
2751
|
var ColorNeutral0 = "#ffffff";
|
|
2324
2752
|
var ColorNeutral50 = "#f9fafb";
|
|
2325
2753
|
var ColorNeutral100 = "#f3f4f6";
|
|
@@ -2385,6 +2813,37 @@ var ColorOverlayBackdrop = "#00000066";
|
|
|
2385
2813
|
var ColorStatusSuccess = "#22c55e";
|
|
2386
2814
|
var ColorStatusDanger = "#f43f5e";
|
|
2387
2815
|
var ColorStatusWarning = "#d97706";
|
|
2816
|
+
var ColorStatusInfo = "#64748b";
|
|
2817
|
+
var ColorDeltaIncreaseBg = "#fff1f2";
|
|
2818
|
+
var ColorDeltaIncreaseText = "#be123c";
|
|
2819
|
+
var ColorDeltaIncreaseIcon = "#f43f5e";
|
|
2820
|
+
var ColorDeltaDecreaseBg = "#f0fdf4";
|
|
2821
|
+
var ColorDeltaDecreaseText = "#15803d";
|
|
2822
|
+
var ColorDeltaDecreaseIcon = "#22c55e";
|
|
2823
|
+
var ColorDeltaFlatBg = "#f3f4f6";
|
|
2824
|
+
var ColorDeltaFlatText = "#6b7280";
|
|
2825
|
+
var ColorDeltaFlatIcon = "#9ca3af";
|
|
2826
|
+
var ColorProgressTrack = "#e5e7eb";
|
|
2827
|
+
var ColorProgressFill = "#6b2695";
|
|
2828
|
+
var ColorProgressFillSuccess = "#22c55e";
|
|
2829
|
+
var ColorProgressFillWarning = "#f59e0b";
|
|
2830
|
+
var ColorProgressFillDanger = "#f43f5e";
|
|
2831
|
+
var ColorBannerInfoBg = "#f8fafc";
|
|
2832
|
+
var ColorBannerInfoText = "#334155";
|
|
2833
|
+
var ColorBannerInfoBorder = "#e2e8f0";
|
|
2834
|
+
var ColorBannerInfoIcon = "#64748b";
|
|
2835
|
+
var ColorBannerWarningBg = "#fffbeb";
|
|
2836
|
+
var ColorBannerWarningText = "#92400e";
|
|
2837
|
+
var ColorBannerWarningBorder = "#fde68a";
|
|
2838
|
+
var ColorBannerWarningIcon = "#f59e0b";
|
|
2839
|
+
var ColorBannerDangerBg = "#fff1f2";
|
|
2840
|
+
var ColorBannerDangerText = "#be123c";
|
|
2841
|
+
var ColorBannerDangerBorder = "#fecdd3";
|
|
2842
|
+
var ColorBannerDangerIcon = "#f43f5e";
|
|
2843
|
+
var ColorBannerSuccessBg = "#f0fdf4";
|
|
2844
|
+
var ColorBannerSuccessText = "#15803d";
|
|
2845
|
+
var ColorBannerSuccessBorder = "#bbf7d0";
|
|
2846
|
+
var ColorBannerSuccessIcon = "#22c55e";
|
|
2388
2847
|
var ColorBadgePurpleBg = "#ead9f5";
|
|
2389
2848
|
var ColorBadgePurpleText = "#5c2483";
|
|
2390
2849
|
var ColorBadgeTealBg = "#d0f0f0";
|
|
@@ -2395,6 +2854,10 @@ var ColorBadgeRoseBg = "#ffe4e6";
|
|
|
2395
2854
|
var ColorBadgeRoseText = "#be123c";
|
|
2396
2855
|
var ColorBadgeNeutralBg = "#f3f4f6";
|
|
2397
2856
|
var ColorBadgeNeutralText = "#374151";
|
|
2857
|
+
var ColorBadgeGreenBg = "#dcfce7";
|
|
2858
|
+
var ColorBadgeGreenText = "#15803d";
|
|
2859
|
+
var ColorBadgeAmberBg = "#fef3c7";
|
|
2860
|
+
var ColorBadgeAmberText = "#b45309";
|
|
2398
2861
|
var Spacing1 = "4px";
|
|
2399
2862
|
var Spacing2 = "8px";
|
|
2400
2863
|
var Spacing3 = "12px";
|
|
@@ -2428,6 +2891,8 @@ var LineHeightTight = 1.25;
|
|
|
2428
2891
|
var LineHeightNormal = 1.5;
|
|
2429
2892
|
var LineHeightRelaxed = 1.625;
|
|
2430
2893
|
export {
|
|
2894
|
+
Badge,
|
|
2895
|
+
Banner,
|
|
2431
2896
|
BorderRadiusFull,
|
|
2432
2897
|
BorderRadiusLg,
|
|
2433
2898
|
BorderRadiusMd,
|
|
@@ -2437,6 +2902,7 @@ export {
|
|
|
2437
2902
|
Breadcrumbs,
|
|
2438
2903
|
Button,
|
|
2439
2904
|
ButtonLink,
|
|
2905
|
+
Card,
|
|
2440
2906
|
Cell,
|
|
2441
2907
|
Checkbox,
|
|
2442
2908
|
ColorActionDanger,
|
|
@@ -2452,6 +2918,20 @@ export {
|
|
|
2452
2918
|
ColorActionSecondaryHover,
|
|
2453
2919
|
ColorActionSuccess,
|
|
2454
2920
|
ColorActionSuccessHover,
|
|
2921
|
+
ColorAmber100,
|
|
2922
|
+
ColorAmber200,
|
|
2923
|
+
ColorAmber300,
|
|
2924
|
+
ColorAmber400,
|
|
2925
|
+
ColorAmber50,
|
|
2926
|
+
ColorAmber500,
|
|
2927
|
+
ColorAmber600,
|
|
2928
|
+
ColorAmber700,
|
|
2929
|
+
ColorAmber800,
|
|
2930
|
+
ColorAmber900,
|
|
2931
|
+
ColorBadgeAmberBg,
|
|
2932
|
+
ColorBadgeAmberText,
|
|
2933
|
+
ColorBadgeGreenBg,
|
|
2934
|
+
ColorBadgeGreenText,
|
|
2455
2935
|
ColorBadgeNeutralBg,
|
|
2456
2936
|
ColorBadgeNeutralText,
|
|
2457
2937
|
ColorBadgePurpleBg,
|
|
@@ -2462,6 +2942,22 @@ export {
|
|
|
2462
2942
|
ColorBadgeSlateText,
|
|
2463
2943
|
ColorBadgeTealBg,
|
|
2464
2944
|
ColorBadgeTealText,
|
|
2945
|
+
ColorBannerDangerBg,
|
|
2946
|
+
ColorBannerDangerBorder,
|
|
2947
|
+
ColorBannerDangerIcon,
|
|
2948
|
+
ColorBannerDangerText,
|
|
2949
|
+
ColorBannerInfoBg,
|
|
2950
|
+
ColorBannerInfoBorder,
|
|
2951
|
+
ColorBannerInfoIcon,
|
|
2952
|
+
ColorBannerInfoText,
|
|
2953
|
+
ColorBannerSuccessBg,
|
|
2954
|
+
ColorBannerSuccessBorder,
|
|
2955
|
+
ColorBannerSuccessIcon,
|
|
2956
|
+
ColorBannerSuccessText,
|
|
2957
|
+
ColorBannerWarningBg,
|
|
2958
|
+
ColorBannerWarningBorder,
|
|
2959
|
+
ColorBannerWarningIcon,
|
|
2960
|
+
ColorBannerWarningText,
|
|
2465
2961
|
ColorBorderAccent,
|
|
2466
2962
|
ColorBorderBrand,
|
|
2467
2963
|
ColorBorderDanger,
|
|
@@ -2473,6 +2969,15 @@ export {
|
|
|
2473
2969
|
ColorBorderWarning,
|
|
2474
2970
|
ColorBrandAccent,
|
|
2475
2971
|
ColorBrandPrimary,
|
|
2972
|
+
ColorDeltaDecreaseBg,
|
|
2973
|
+
ColorDeltaDecreaseIcon,
|
|
2974
|
+
ColorDeltaDecreaseText,
|
|
2975
|
+
ColorDeltaFlatBg,
|
|
2976
|
+
ColorDeltaFlatIcon,
|
|
2977
|
+
ColorDeltaFlatText,
|
|
2978
|
+
ColorDeltaIncreaseBg,
|
|
2979
|
+
ColorDeltaIncreaseIcon,
|
|
2980
|
+
ColorDeltaIncreaseText,
|
|
2476
2981
|
ColorGreen100,
|
|
2477
2982
|
ColorGreen200,
|
|
2478
2983
|
ColorGreen300,
|
|
@@ -2497,6 +3002,11 @@ export {
|
|
|
2497
3002
|
ColorNeutral900,
|
|
2498
3003
|
ColorNeutral950,
|
|
2499
3004
|
ColorOverlayBackdrop,
|
|
3005
|
+
ColorProgressFill,
|
|
3006
|
+
ColorProgressFillDanger,
|
|
3007
|
+
ColorProgressFillSuccess,
|
|
3008
|
+
ColorProgressFillWarning,
|
|
3009
|
+
ColorProgressTrack,
|
|
2500
3010
|
ColorPurple100,
|
|
2501
3011
|
ColorPurple200,
|
|
2502
3012
|
ColorPurple300,
|
|
@@ -2528,6 +3038,7 @@ export {
|
|
|
2528
3038
|
ColorSlate800,
|
|
2529
3039
|
ColorSlate900,
|
|
2530
3040
|
ColorStatusDanger,
|
|
3041
|
+
ColorStatusInfo,
|
|
2531
3042
|
ColorStatusSuccess,
|
|
2532
3043
|
ColorStatusWarning,
|
|
2533
3044
|
ColorSurfaceAccent,
|
|
@@ -2565,6 +3076,7 @@ export {
|
|
|
2565
3076
|
ColorTextTertiary,
|
|
2566
3077
|
ColorTextWarning,
|
|
2567
3078
|
Column,
|
|
3079
|
+
DeltaIndicator,
|
|
2568
3080
|
Dialog,
|
|
2569
3081
|
EmptyState,
|
|
2570
3082
|
Field,
|
|
@@ -2601,9 +3113,11 @@ export {
|
|
|
2601
3113
|
LineHeightTight,
|
|
2602
3114
|
Link,
|
|
2603
3115
|
Menu,
|
|
3116
|
+
MetricCard,
|
|
2604
3117
|
Popover3 as Popover,
|
|
2605
3118
|
PopoverContent,
|
|
2606
3119
|
PopoverTrigger,
|
|
3120
|
+
ProgressBar,
|
|
2607
3121
|
Radio,
|
|
2608
3122
|
RadioButton,
|
|
2609
3123
|
RadioGroup,
|