@cytario/design 3.1.1 → 3.1.2
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.js +74 -73
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -332,6 +332,7 @@ import {
|
|
|
332
332
|
Input as AriaInput,
|
|
333
333
|
Text
|
|
334
334
|
} from "react-aria-components";
|
|
335
|
+
import { twMerge as twMerge2 } from "tailwind-merge";
|
|
335
336
|
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
336
337
|
var alignClasses = {
|
|
337
338
|
left: "text-left",
|
|
@@ -377,21 +378,21 @@ function Input({
|
|
|
377
378
|
isDisabled,
|
|
378
379
|
isRequired,
|
|
379
380
|
isInvalid,
|
|
380
|
-
className:
|
|
381
|
+
className: twMerge2(
|
|
381
382
|
"flex w-full flex-col gap-1",
|
|
382
383
|
inGroup ? "min-w-0 flex-1" : "",
|
|
383
384
|
marginClass,
|
|
384
385
|
className
|
|
385
|
-
|
|
386
|
+
),
|
|
386
387
|
children: [
|
|
387
388
|
label && /* @__PURE__ */ jsxs4(
|
|
388
389
|
Label,
|
|
389
390
|
{
|
|
390
|
-
className:
|
|
391
|
+
className: twMerge2(
|
|
391
392
|
"text-sm",
|
|
392
393
|
"font-medium",
|
|
393
394
|
"text-(--color-text-primary)"
|
|
394
|
-
|
|
395
|
+
),
|
|
395
396
|
children: [
|
|
396
397
|
label,
|
|
397
398
|
isRequired && /* @__PURE__ */ jsx6(
|
|
@@ -408,7 +409,7 @@ function Input({
|
|
|
408
409
|
prefix ? /* @__PURE__ */ jsxs4(
|
|
409
410
|
"div",
|
|
410
411
|
{
|
|
411
|
-
className:
|
|
412
|
+
className: twMerge2(
|
|
412
413
|
"flex items-center overflow-hidden",
|
|
413
414
|
radiusClass,
|
|
414
415
|
"border",
|
|
@@ -416,20 +417,20 @@ function Input({
|
|
|
416
417
|
"outline-none transition-colors",
|
|
417
418
|
borderColor,
|
|
418
419
|
"focus-within:ring-2 focus-within:ring-(--color-border-focus) focus-within:border-(--color-border-focus)",
|
|
419
|
-
inGroup
|
|
420
|
-
isDisabled
|
|
421
|
-
|
|
420
|
+
inGroup && "focus-within:z-10",
|
|
421
|
+
isDisabled && "opacity-50 pointer-events-none"
|
|
422
|
+
),
|
|
422
423
|
children: [
|
|
423
424
|
/* @__PURE__ */ jsx6(
|
|
424
425
|
"span",
|
|
425
426
|
{
|
|
426
|
-
className:
|
|
427
|
+
className: twMerge2(
|
|
427
428
|
"self-stretch flex items-center shrink-0 select-none",
|
|
428
429
|
"bg-(--color-surface-subtle)",
|
|
429
430
|
"border-r border-r-(--color-border-default)",
|
|
430
431
|
"text-(--color-text-secondary)",
|
|
431
432
|
sizeStyles[size]
|
|
432
|
-
|
|
433
|
+
),
|
|
433
434
|
children: prefix
|
|
434
435
|
}
|
|
435
436
|
),
|
|
@@ -437,14 +438,14 @@ function Input({
|
|
|
437
438
|
AriaInput,
|
|
438
439
|
{
|
|
439
440
|
placeholder,
|
|
440
|
-
className:
|
|
441
|
+
className: twMerge2(
|
|
441
442
|
"w-full bg-transparent",
|
|
442
443
|
sizeStyles[size],
|
|
443
444
|
alignClasses[align],
|
|
444
445
|
"text-(--color-text-primary)",
|
|
445
446
|
"placeholder:text-(--color-text-tertiary)",
|
|
446
447
|
"outline-none border-none"
|
|
447
|
-
|
|
448
|
+
)
|
|
448
449
|
}
|
|
449
450
|
)
|
|
450
451
|
]
|
|
@@ -453,7 +454,7 @@ function Input({
|
|
|
453
454
|
AriaInput,
|
|
454
455
|
{
|
|
455
456
|
placeholder,
|
|
456
|
-
className:
|
|
457
|
+
className: twMerge2(
|
|
457
458
|
"w-full",
|
|
458
459
|
sizeStyles[size],
|
|
459
460
|
alignClasses[align],
|
|
@@ -465,9 +466,9 @@ function Input({
|
|
|
465
466
|
"outline-none transition-colors",
|
|
466
467
|
borderColor,
|
|
467
468
|
"focus:ring-2 focus:ring-(--color-border-focus) focus:border-(--color-border-focus)",
|
|
468
|
-
inGroup
|
|
469
|
+
inGroup && "focus:z-10",
|
|
469
470
|
"disabled:opacity-50 disabled:pointer-events-none"
|
|
470
|
-
|
|
471
|
+
)
|
|
471
472
|
}
|
|
472
473
|
),
|
|
473
474
|
description && !isInvalid && /* @__PURE__ */ jsx6(
|
|
@@ -502,7 +503,7 @@ import {
|
|
|
502
503
|
Select as AriaSelect,
|
|
503
504
|
SelectValue
|
|
504
505
|
} from "react-aria-components";
|
|
505
|
-
import { twMerge as
|
|
506
|
+
import { twMerge as twMerge3 } from "tailwind-merge";
|
|
506
507
|
import { Fragment, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
507
508
|
function Select({
|
|
508
509
|
label,
|
|
@@ -524,7 +525,7 @@ function Select({
|
|
|
524
525
|
isDisabled,
|
|
525
526
|
isRequired,
|
|
526
527
|
isInvalid: hasError,
|
|
527
|
-
className:
|
|
528
|
+
className: twMerge3("flex flex-col gap-1", className),
|
|
528
529
|
children: [
|
|
529
530
|
label && /* @__PURE__ */ jsxs5(Label2, { className: "text-sm font-medium text-(--color-text-primary)", children: [
|
|
530
531
|
label,
|
|
@@ -540,7 +541,7 @@ function Select({
|
|
|
540
541
|
/* @__PURE__ */ jsxs5(
|
|
541
542
|
Button2,
|
|
542
543
|
{
|
|
543
|
-
className:
|
|
544
|
+
className: twMerge3(
|
|
544
545
|
`
|
|
545
546
|
inline-flex items-center justify-between
|
|
546
547
|
w-full rounded-md
|
|
@@ -557,7 +558,7 @@ function Select({
|
|
|
557
558
|
/* @__PURE__ */ jsx7(
|
|
558
559
|
SelectValue,
|
|
559
560
|
{
|
|
560
|
-
className:
|
|
561
|
+
className: twMerge3(
|
|
561
562
|
renderItem ? "min-w-0" : "truncate",
|
|
562
563
|
"data-placeholder:text-(--color-text-tertiary)"
|
|
563
564
|
),
|
|
@@ -572,7 +573,7 @@ function Select({
|
|
|
572
573
|
ChevronDown,
|
|
573
574
|
{
|
|
574
575
|
"aria-hidden": true,
|
|
575
|
-
className:
|
|
576
|
+
className: twMerge3(
|
|
576
577
|
"shrink-0 text-(--color-text-secondary)",
|
|
577
578
|
size === "sm" ? "h-3.5 w-3.5" : "h-4 w-4"
|
|
578
579
|
)
|
|
@@ -585,7 +586,7 @@ function Select({
|
|
|
585
586
|
/* @__PURE__ */ jsx7(
|
|
586
587
|
Popover,
|
|
587
588
|
{
|
|
588
|
-
className:
|
|
589
|
+
className: twMerge3(
|
|
589
590
|
"w-(--trigger-width)",
|
|
590
591
|
"rounded-md",
|
|
591
592
|
"border border-(--color-border-default)",
|
|
@@ -600,7 +601,7 @@ function Select({
|
|
|
600
601
|
{
|
|
601
602
|
id: item.id,
|
|
602
603
|
textValue: item.name,
|
|
603
|
-
className:
|
|
604
|
+
className: twMerge3(
|
|
604
605
|
`
|
|
605
606
|
flex items-center justify-between gap-2
|
|
606
607
|
rounded-sm
|
|
@@ -1299,7 +1300,7 @@ function InputAddon({ children, className }) {
|
|
|
1299
1300
|
}
|
|
1300
1301
|
|
|
1301
1302
|
// src/components/Heading/Heading.tsx
|
|
1302
|
-
import { twMerge as
|
|
1303
|
+
import { twMerge as twMerge4 } from "tailwind-merge";
|
|
1303
1304
|
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1304
1305
|
var defaultSizeMap = {
|
|
1305
1306
|
h1: "2xl",
|
|
@@ -1333,7 +1334,7 @@ function Heading2({
|
|
|
1333
1334
|
return /* @__PURE__ */ jsx21(
|
|
1334
1335
|
Tag,
|
|
1335
1336
|
{
|
|
1336
|
-
className:
|
|
1337
|
+
className: twMerge4(
|
|
1337
1338
|
weightStyles[weight],
|
|
1338
1339
|
"text-(--color-text-primary)",
|
|
1339
1340
|
sizeStyles3[resolvedSize],
|
|
@@ -1455,7 +1456,7 @@ function Breadcrumbs({ items, className }) {
|
|
|
1455
1456
|
import {
|
|
1456
1457
|
Link as AriaLink2
|
|
1457
1458
|
} from "react-aria-components";
|
|
1458
|
-
import { twMerge as
|
|
1459
|
+
import { twMerge as twMerge5 } from "tailwind-merge";
|
|
1459
1460
|
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1460
1461
|
var iconSizeMap3 = {
|
|
1461
1462
|
sm: "sm",
|
|
@@ -1475,7 +1476,7 @@ function ButtonLink({
|
|
|
1475
1476
|
AriaLink2,
|
|
1476
1477
|
{
|
|
1477
1478
|
...props,
|
|
1478
|
-
className:
|
|
1479
|
+
className: twMerge5(
|
|
1479
1480
|
"inline-flex items-center justify-center gap-2",
|
|
1480
1481
|
"rounded-md",
|
|
1481
1482
|
"font-medium",
|
|
@@ -1514,7 +1515,7 @@ function IconButtonLink({
|
|
|
1514
1515
|
{
|
|
1515
1516
|
...props,
|
|
1516
1517
|
"aria-label": ariaLabel,
|
|
1517
|
-
className:
|
|
1518
|
+
className: twMerge5(
|
|
1518
1519
|
"inline-flex items-center justify-center",
|
|
1519
1520
|
"rounded-md",
|
|
1520
1521
|
"outline-none transition-colors no-underline",
|
|
@@ -1536,7 +1537,7 @@ function IconButtonLink({
|
|
|
1536
1537
|
import {
|
|
1537
1538
|
ToggleButton as AriaToggleButton
|
|
1538
1539
|
} from "react-aria-components";
|
|
1539
|
-
import { twMerge as
|
|
1540
|
+
import { twMerge as twMerge6 } from "tailwind-merge";
|
|
1540
1541
|
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1541
1542
|
var sizeStyles4 = {
|
|
1542
1543
|
sm: "px-3 py-1.5 text-sm",
|
|
@@ -1590,7 +1591,7 @@ function ToggleButton({
|
|
|
1590
1591
|
AriaToggleButton,
|
|
1591
1592
|
{
|
|
1592
1593
|
...props,
|
|
1593
|
-
className: ({ isSelected }) =>
|
|
1594
|
+
className: ({ isSelected }) => twMerge6(
|
|
1594
1595
|
"inline-flex items-center justify-center gap-2",
|
|
1595
1596
|
isSquare ? "rounded-none" : "rounded-md",
|
|
1596
1597
|
"font-medium",
|
|
@@ -1608,7 +1609,7 @@ function ToggleButton({
|
|
|
1608
1609
|
|
|
1609
1610
|
// src/components/ToggleButtonGroup/ToggleButtonGroup.tsx
|
|
1610
1611
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
1611
|
-
import { twMerge as
|
|
1612
|
+
import { twMerge as twMerge7 } from "tailwind-merge";
|
|
1612
1613
|
import {
|
|
1613
1614
|
RadioGroup as AriaRadioGroup2,
|
|
1614
1615
|
Radio as AriaRadio2
|
|
@@ -1638,7 +1639,7 @@ function ToggleButtonGroup({
|
|
|
1638
1639
|
{
|
|
1639
1640
|
...props,
|
|
1640
1641
|
orientation: "horizontal",
|
|
1641
|
-
className:
|
|
1642
|
+
className: twMerge7(
|
|
1642
1643
|
"inline-flex items-center rounded-lg border border-(--color-border-default) bg-(--color-surface-muted) p-0.5 gap-0.5",
|
|
1643
1644
|
className
|
|
1644
1645
|
),
|
|
@@ -1657,7 +1658,7 @@ function ToggleButtonGroupItem({
|
|
|
1657
1658
|
AriaRadio2,
|
|
1658
1659
|
{
|
|
1659
1660
|
...props,
|
|
1660
|
-
className: ({ isSelected, isHovered, isPressed, isDisabled }) =>
|
|
1661
|
+
className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge7(
|
|
1661
1662
|
// Base layout
|
|
1662
1663
|
"inline-flex items-center justify-center",
|
|
1663
1664
|
"rounded-md",
|
|
@@ -1943,7 +1944,7 @@ function PopoverContent({
|
|
|
1943
1944
|
|
|
1944
1945
|
// src/components/Tabs/Tabs.tsx
|
|
1945
1946
|
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
1946
|
-
import { twMerge as
|
|
1947
|
+
import { twMerge as twMerge8 } from "tailwind-merge";
|
|
1947
1948
|
import {
|
|
1948
1949
|
Tabs as AriaTabs,
|
|
1949
1950
|
TabList as AriaTabList,
|
|
@@ -1973,7 +1974,7 @@ function Tabs({
|
|
|
1973
1974
|
{
|
|
1974
1975
|
...props,
|
|
1975
1976
|
orientation,
|
|
1976
|
-
className:
|
|
1977
|
+
className: twMerge8(
|
|
1977
1978
|
orientation === "vertical" ? "flex" : "",
|
|
1978
1979
|
className
|
|
1979
1980
|
),
|
|
@@ -1992,7 +1993,7 @@ function TabList({
|
|
|
1992
1993
|
AriaTabList,
|
|
1993
1994
|
{
|
|
1994
1995
|
...props,
|
|
1995
|
-
className: ({ orientation }) =>
|
|
1996
|
+
className: ({ orientation }) => twMerge8(
|
|
1996
1997
|
baseStyles,
|
|
1997
1998
|
orientation === "vertical" ? verticalStyles : "",
|
|
1998
1999
|
className
|
|
@@ -2008,14 +2009,14 @@ function Tab({ className, ...props }) {
|
|
|
2008
2009
|
...props,
|
|
2009
2010
|
className: ({ isSelected, isDisabled, isHovered, isPressed }) => {
|
|
2010
2011
|
if (variant === "unstyled") {
|
|
2011
|
-
return
|
|
2012
|
+
return twMerge8(
|
|
2012
2013
|
"cursor-pointer outline-none",
|
|
2013
2014
|
"focus-visible:ring-2 focus-visible:ring-(--color-border-focus) focus-visible:ring-offset-2",
|
|
2014
2015
|
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
2015
2016
|
className
|
|
2016
2017
|
);
|
|
2017
2018
|
}
|
|
2018
|
-
return
|
|
2019
|
+
return twMerge8(
|
|
2019
2020
|
// Base
|
|
2020
2021
|
"cursor-pointer outline-none transition-colors",
|
|
2021
2022
|
"font-medium",
|
|
@@ -2063,7 +2064,7 @@ function TabPanel({ className, ...props }) {
|
|
|
2063
2064
|
AriaTabPanel,
|
|
2064
2065
|
{
|
|
2065
2066
|
...props,
|
|
2066
|
-
className:
|
|
2067
|
+
className: twMerge8(
|
|
2067
2068
|
variant === "unstyled" ? "outline-none" : "mt-4 outline-none",
|
|
2068
2069
|
className
|
|
2069
2070
|
)
|
|
@@ -2315,7 +2316,7 @@ function Tree({
|
|
|
2315
2316
|
|
|
2316
2317
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2317
2318
|
import { createContext as createContext5, useContext as useContext5 } from "react";
|
|
2318
|
-
import { twMerge as
|
|
2319
|
+
import { twMerge as twMerge9 } from "tailwind-merge";
|
|
2319
2320
|
import {
|
|
2320
2321
|
ToggleButtonGroup as AriaToggleButtonGroup,
|
|
2321
2322
|
ToggleButton as AriaToggleButton2
|
|
@@ -2348,7 +2349,7 @@ function SegmentedControl({
|
|
|
2348
2349
|
selectedKeys: isNoneMode ? /* @__PURE__ */ new Set() : selectedKeys,
|
|
2349
2350
|
defaultSelectedKeys: isNoneMode ? void 0 : defaultSelectedKeys,
|
|
2350
2351
|
onSelectionChange: isNoneMode ? void 0 : onSelectionChange,
|
|
2351
|
-
className:
|
|
2352
|
+
className: twMerge9(
|
|
2352
2353
|
"inline-flex items-center rounded-lg border border-(--color-border-default) bg-(--color-surface-muted) p-0.5 gap-0.5",
|
|
2353
2354
|
className
|
|
2354
2355
|
),
|
|
@@ -2365,7 +2366,7 @@ function SegmentedControlItem({
|
|
|
2365
2366
|
AriaToggleButton2,
|
|
2366
2367
|
{
|
|
2367
2368
|
...props,
|
|
2368
|
-
className: ({ isSelected, isHovered, isPressed, isDisabled }) =>
|
|
2369
|
+
className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge9(
|
|
2369
2370
|
// Base layout
|
|
2370
2371
|
"inline-flex items-center justify-center",
|
|
2371
2372
|
"rounded-md",
|
|
@@ -2507,7 +2508,7 @@ function FileCard({
|
|
|
2507
2508
|
// src/components/StorageConnectionCard/StorageConnectionCard.tsx
|
|
2508
2509
|
import { useCallback as useCallback4 } from "react";
|
|
2509
2510
|
import { AlertCircle, Database } from "lucide-react";
|
|
2510
|
-
import { twMerge as
|
|
2511
|
+
import { twMerge as twMerge10 } from "tailwind-merge";
|
|
2511
2512
|
import { Fragment as Fragment10, jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2512
2513
|
var statusDotStyles = {
|
|
2513
2514
|
connected: "bg-(--color-status-success)",
|
|
@@ -2575,7 +2576,7 @@ function StorageConnectionCard({
|
|
|
2575
2576
|
status && /* @__PURE__ */ jsx38(
|
|
2576
2577
|
"span",
|
|
2577
2578
|
{
|
|
2578
|
-
className:
|
|
2579
|
+
className: twMerge10(
|
|
2579
2580
|
"mt-1.5 h-2 w-2 shrink-0 rounded-full",
|
|
2580
2581
|
statusDotStyles[status]
|
|
2581
2582
|
),
|
|
@@ -2603,10 +2604,10 @@ function StorageConnectionCard({
|
|
|
2603
2604
|
}
|
|
2604
2605
|
)
|
|
2605
2606
|
] }),
|
|
2606
|
-
meta && /* @__PURE__ */ jsx38("div", { className:
|
|
2607
|
+
meta && /* @__PURE__ */ jsx38("div", { className: twMerge10("flex items-center gap-2", status && "pl-4"), children: meta })
|
|
2607
2608
|
] })
|
|
2608
2609
|
] });
|
|
2609
|
-
const baseStyles =
|
|
2610
|
+
const baseStyles = twMerge10(
|
|
2610
2611
|
"flex flex-col overflow-hidden rounded-lg",
|
|
2611
2612
|
"border border-(--color-border-default)",
|
|
2612
2613
|
"shadow-sm transition-all",
|
|
@@ -2615,7 +2616,7 @@ function StorageConnectionCard({
|
|
|
2615
2616
|
className
|
|
2616
2617
|
);
|
|
2617
2618
|
if (href) {
|
|
2618
|
-
return /* @__PURE__ */ jsx38("a", { href, className:
|
|
2619
|
+
return /* @__PURE__ */ jsx38("a", { href, className: twMerge10(baseStyles, "no-underline"), children: cardContent });
|
|
2619
2620
|
}
|
|
2620
2621
|
if (onPress) {
|
|
2621
2622
|
return /* @__PURE__ */ jsx38(
|
|
@@ -2634,7 +2635,7 @@ function StorageConnectionCard({
|
|
|
2634
2635
|
}
|
|
2635
2636
|
|
|
2636
2637
|
// src/components/Badge/Badge.tsx
|
|
2637
|
-
import { twMerge as
|
|
2638
|
+
import { twMerge as twMerge11 } from "tailwind-merge";
|
|
2638
2639
|
import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2639
2640
|
var variantStyles4 = {
|
|
2640
2641
|
neutral: "bg-(--color-badge-neutral-bg) text-(--color-badge-neutral-text)",
|
|
@@ -2663,7 +2664,7 @@ function Badge({
|
|
|
2663
2664
|
return /* @__PURE__ */ jsxs25(
|
|
2664
2665
|
"span",
|
|
2665
2666
|
{
|
|
2666
|
-
className:
|
|
2667
|
+
className: twMerge11(
|
|
2667
2668
|
"inline-flex items-center gap-1 rounded-full",
|
|
2668
2669
|
"text-xs font-medium leading-tight",
|
|
2669
2670
|
variantStyles4[variant],
|
|
@@ -2680,7 +2681,7 @@ function Badge({
|
|
|
2680
2681
|
|
|
2681
2682
|
// src/components/Card/Card.tsx
|
|
2682
2683
|
import { useCallback as useCallback5 } from "react";
|
|
2683
|
-
import { twMerge as
|
|
2684
|
+
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
2684
2685
|
import { Fragment as Fragment11, jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2685
2686
|
var paddingStyles = {
|
|
2686
2687
|
none: "p-0",
|
|
@@ -2699,7 +2700,7 @@ function Card({
|
|
|
2699
2700
|
className
|
|
2700
2701
|
}) {
|
|
2701
2702
|
const isInteractive = interactive || !!href || !!onPress;
|
|
2702
|
-
const containerClass =
|
|
2703
|
+
const containerClass = twMerge12(
|
|
2703
2704
|
"bg-(--color-surface-default) border border-(--color-border-default) rounded-lg overflow-hidden shadow-sm",
|
|
2704
2705
|
isInteractive && "transition-all hover:shadow-md hover:border-(--color-border-focus) cursor-pointer",
|
|
2705
2706
|
(href || onPress) && "block focus-visible:ring-2 focus-visible:ring-(--color-border-focus) focus-visible:ring-offset-2 outline-none",
|
|
@@ -2718,7 +2719,7 @@ function Card({
|
|
|
2718
2719
|
header && /* @__PURE__ */ jsx40(
|
|
2719
2720
|
"div",
|
|
2720
2721
|
{
|
|
2721
|
-
className:
|
|
2722
|
+
className: twMerge12(
|
|
2722
2723
|
"border-b border-(--color-border-default)",
|
|
2723
2724
|
paddingStyles[padding]
|
|
2724
2725
|
),
|
|
@@ -2729,7 +2730,7 @@ function Card({
|
|
|
2729
2730
|
footer && /* @__PURE__ */ jsx40(
|
|
2730
2731
|
"div",
|
|
2731
2732
|
{
|
|
2732
|
-
className:
|
|
2733
|
+
className: twMerge12(
|
|
2733
2734
|
"border-t border-(--color-border-default)",
|
|
2734
2735
|
paddingStyles[padding]
|
|
2735
2736
|
),
|
|
@@ -2758,7 +2759,7 @@ function Card({
|
|
|
2758
2759
|
|
|
2759
2760
|
// src/components/DeltaIndicator/DeltaIndicator.tsx
|
|
2760
2761
|
import { ArrowUp, ArrowDown, Minus } from "lucide-react";
|
|
2761
|
-
import { twMerge as
|
|
2762
|
+
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
2762
2763
|
import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2763
2764
|
function getDirection(current, previous) {
|
|
2764
2765
|
const diff = current - previous;
|
|
@@ -2815,7 +2816,7 @@ function DeltaIndicator({
|
|
|
2815
2816
|
return /* @__PURE__ */ jsxs27(
|
|
2816
2817
|
"span",
|
|
2817
2818
|
{
|
|
2818
|
-
className:
|
|
2819
|
+
className: twMerge13(
|
|
2819
2820
|
"inline-flex items-center gap-1 font-medium",
|
|
2820
2821
|
"text-(--color-text-tertiary)",
|
|
2821
2822
|
className
|
|
@@ -2854,7 +2855,7 @@ function DeltaIndicator({
|
|
|
2854
2855
|
return /* @__PURE__ */ jsxs27(
|
|
2855
2856
|
"span",
|
|
2856
2857
|
{
|
|
2857
|
-
className:
|
|
2858
|
+
className: twMerge13(
|
|
2858
2859
|
"inline-flex items-center gap-1 font-medium",
|
|
2859
2860
|
colorStyles2,
|
|
2860
2861
|
isPill && [
|
|
@@ -2874,7 +2875,7 @@ function DeltaIndicator({
|
|
|
2874
2875
|
}
|
|
2875
2876
|
|
|
2876
2877
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
2877
|
-
import { twMerge as
|
|
2878
|
+
import { twMerge as twMerge14 } from "tailwind-merge";
|
|
2878
2879
|
import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2879
2880
|
var fillStyles = {
|
|
2880
2881
|
brand: "bg-(--color-progress-fill)",
|
|
@@ -2898,7 +2899,7 @@ function ProgressBar({
|
|
|
2898
2899
|
className
|
|
2899
2900
|
}) {
|
|
2900
2901
|
const clampedValue = Math.min(100, Math.max(0, value));
|
|
2901
|
-
return /* @__PURE__ */ jsxs28("div", { className:
|
|
2902
|
+
return /* @__PURE__ */ jsxs28("div", { className: twMerge14("w-full", className), children: [
|
|
2902
2903
|
(label || description || showValue) && /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between mb-2", children: [
|
|
2903
2904
|
/* @__PURE__ */ jsx42("span", { className: "text-sm font-medium text-(--color-text-primary)", children: label }),
|
|
2904
2905
|
/* @__PURE__ */ jsx42("span", { className: "text-sm text-(--color-text-secondary)", children: description ?? (showValue ? `${clampedValue}%` : null) })
|
|
@@ -2911,14 +2912,14 @@ function ProgressBar({
|
|
|
2911
2912
|
"aria-valuemin": 0,
|
|
2912
2913
|
"aria-valuemax": 100,
|
|
2913
2914
|
"aria-label": label ?? "Progress",
|
|
2914
|
-
className:
|
|
2915
|
+
className: twMerge14(
|
|
2915
2916
|
"w-full rounded-full bg-(--color-progress-track)",
|
|
2916
2917
|
sizeStyles9[size]
|
|
2917
2918
|
),
|
|
2918
2919
|
children: /* @__PURE__ */ jsx42(
|
|
2919
2920
|
"div",
|
|
2920
2921
|
{
|
|
2921
|
-
className:
|
|
2922
|
+
className: twMerge14(
|
|
2922
2923
|
"h-full rounded-full transition-all duration-300",
|
|
2923
2924
|
fillStyles[variant]
|
|
2924
2925
|
),
|
|
@@ -2939,7 +2940,7 @@ import {
|
|
|
2939
2940
|
CheckCircle2,
|
|
2940
2941
|
X as X3
|
|
2941
2942
|
} from "lucide-react";
|
|
2942
|
-
import { twMerge as
|
|
2943
|
+
import { twMerge as twMerge15 } from "tailwind-merge";
|
|
2943
2944
|
import { jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2944
2945
|
var variantConfig2 = {
|
|
2945
2946
|
info: {
|
|
@@ -2988,7 +2989,7 @@ function Banner({
|
|
|
2988
2989
|
"div",
|
|
2989
2990
|
{
|
|
2990
2991
|
role: config.role,
|
|
2991
|
-
className:
|
|
2992
|
+
className: twMerge15(
|
|
2992
2993
|
"flex items-start gap-3 rounded-lg border px-4 py-3",
|
|
2993
2994
|
"text-sm",
|
|
2994
2995
|
config.containerClass,
|
|
@@ -2999,7 +3000,7 @@ function Banner({
|
|
|
2999
3000
|
IconComponent,
|
|
3000
3001
|
{
|
|
3001
3002
|
size: 20,
|
|
3002
|
-
className:
|
|
3003
|
+
className: twMerge15("shrink-0 mt-0.5", config.iconClass),
|
|
3003
3004
|
"aria-hidden": "true"
|
|
3004
3005
|
}
|
|
3005
3006
|
),
|
|
@@ -3026,7 +3027,7 @@ function Banner({
|
|
|
3026
3027
|
}
|
|
3027
3028
|
|
|
3028
3029
|
// src/components/MetricCard/MetricCard.tsx
|
|
3029
|
-
import { twMerge as
|
|
3030
|
+
import { twMerge as twMerge16 } from "tailwind-merge";
|
|
3030
3031
|
import { Fragment as Fragment12, jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3031
3032
|
var sizeConfig = {
|
|
3032
3033
|
sm: {
|
|
@@ -3049,18 +3050,18 @@ function MetricCard({
|
|
|
3049
3050
|
className
|
|
3050
3051
|
}) {
|
|
3051
3052
|
const config = sizeConfig[size];
|
|
3052
|
-
const containerClass =
|
|
3053
|
+
const containerClass = twMerge16(
|
|
3053
3054
|
"bg-(--color-surface-default) border border-(--color-border-default) rounded-lg shadow-sm",
|
|
3054
3055
|
config.padding,
|
|
3055
3056
|
href && "block transition-shadow hover:shadow-md hover:border-(--color-border-focus) focus-visible:ring-2 focus-visible:ring-(--color-border-focus) focus-visible:ring-offset-2 outline-none",
|
|
3056
3057
|
className
|
|
3057
3058
|
);
|
|
3058
3059
|
const content = /* @__PURE__ */ jsxs30(Fragment12, { children: [
|
|
3059
|
-
/* @__PURE__ */ jsx44("div", { className:
|
|
3060
|
+
/* @__PURE__ */ jsx44("div", { className: twMerge16(config.labelClass, "text-(--color-text-secondary)"), children: label }),
|
|
3060
3061
|
/* @__PURE__ */ jsx44(
|
|
3061
3062
|
"div",
|
|
3062
3063
|
{
|
|
3063
|
-
className:
|
|
3064
|
+
className: twMerge16(
|
|
3064
3065
|
config.valueClass,
|
|
3065
3066
|
"font-semibold text-(--color-text-primary) mt-1 tabular-nums"
|
|
3066
3067
|
),
|
|
@@ -3076,7 +3077,7 @@ function MetricCard({
|
|
|
3076
3077
|
}
|
|
3077
3078
|
|
|
3078
3079
|
// src/components/SectionHeader/SectionHeader.tsx
|
|
3079
|
-
import { twMerge as
|
|
3080
|
+
import { twMerge as twMerge17 } from "tailwind-merge";
|
|
3080
3081
|
import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3081
3082
|
function SectionHeader({
|
|
3082
3083
|
title,
|
|
@@ -3086,7 +3087,7 @@ function SectionHeader({
|
|
|
3086
3087
|
return /* @__PURE__ */ jsxs31(
|
|
3087
3088
|
"div",
|
|
3088
3089
|
{
|
|
3089
|
-
className:
|
|
3090
|
+
className: twMerge17(
|
|
3090
3091
|
"flex flex-wrap items-center gap-3 py-4",
|
|
3091
3092
|
className
|
|
3092
3093
|
),
|
|
@@ -3099,7 +3100,7 @@ function SectionHeader({
|
|
|
3099
3100
|
}
|
|
3100
3101
|
|
|
3101
3102
|
// src/components/Pill/Pill.tsx
|
|
3102
|
-
import { twMerge as
|
|
3103
|
+
import { twMerge as twMerge18 } from "tailwind-merge";
|
|
3103
3104
|
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
3104
3105
|
var hashColors = {
|
|
3105
3106
|
purple: "bg-(--color-badge-purple-bg) text-(--color-badge-purple-text) border-(--color-badge-purple-text)/20",
|
|
@@ -3126,7 +3127,7 @@ function Pill({
|
|
|
3126
3127
|
className,
|
|
3127
3128
|
...rest
|
|
3128
3129
|
}) {
|
|
3129
|
-
const cx =
|
|
3130
|
+
const cx = twMerge18(
|
|
3130
3131
|
`
|
|
3131
3132
|
inline-flex items-center
|
|
3132
3133
|
rounded-full
|
|
@@ -3142,7 +3143,7 @@ function Pill({
|
|
|
3142
3143
|
}
|
|
3143
3144
|
|
|
3144
3145
|
// src/components/Pill/PathPill.tsx
|
|
3145
|
-
import { twMerge as
|
|
3146
|
+
import { twMerge as twMerge19 } from "tailwind-merge";
|
|
3146
3147
|
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
3147
3148
|
function PathPill({
|
|
3148
3149
|
children,
|
|
@@ -3156,12 +3157,12 @@ function PathPill({
|
|
|
3156
3157
|
return /* @__PURE__ */ jsx47(
|
|
3157
3158
|
"div",
|
|
3158
3159
|
{
|
|
3159
|
-
className:
|
|
3160
|
+
className: twMerge19("relative flex", className),
|
|
3160
3161
|
"aria-label": `Path: ${fullPath}`,
|
|
3161
3162
|
children: segments.map((segment, i) => {
|
|
3162
3163
|
const isCollapsed = i < dotCount;
|
|
3163
3164
|
const isLast = i === segments.length - 1;
|
|
3164
|
-
const cx =
|
|
3165
|
+
const cx = twMerge19(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
|
|
3165
3166
|
const color = pillColorFromName(segment);
|
|
3166
3167
|
return /* @__PURE__ */ jsx47(
|
|
3167
3168
|
Pill,
|