@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 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
- ].filter(Boolean).join(" "),
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
- ].join(" "),
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 ? "focus-within:z-10" : "",
420
- isDisabled ? "opacity-50 pointer-events-none" : ""
421
- ].filter(Boolean).join(" "),
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
- ].join(" "),
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
- ].join(" ")
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 ? "focus:z-10" : "",
469
+ inGroup && "focus:z-10",
469
470
  "disabled:opacity-50 disabled:pointer-events-none"
470
- ].join(" ")
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 twMerge2 } from "tailwind-merge";
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: twMerge2("flex flex-col gap-1", 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: twMerge2(
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: twMerge2(
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: twMerge2(
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: twMerge2(
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: twMerge2(
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 twMerge3 } from "tailwind-merge";
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: twMerge3(
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 twMerge4 } from "tailwind-merge";
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: twMerge4(
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: twMerge4(
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 twMerge5 } from "tailwind-merge";
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 }) => twMerge5(
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 twMerge6 } from "tailwind-merge";
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: twMerge6(
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 }) => twMerge6(
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 twMerge7 } from "tailwind-merge";
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: twMerge7(
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 }) => twMerge7(
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 twMerge7(
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 twMerge7(
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: twMerge7(
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 twMerge8 } from "tailwind-merge";
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: twMerge8(
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 }) => twMerge8(
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 twMerge9 } from "tailwind-merge";
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: twMerge9(
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: twMerge9("flex items-center gap-2", status && "pl-4"), children: meta })
2607
+ meta && /* @__PURE__ */ jsx38("div", { className: twMerge10("flex items-center gap-2", status && "pl-4"), children: meta })
2607
2608
  ] })
2608
2609
  ] });
2609
- const baseStyles = twMerge9(
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: twMerge9(baseStyles, "no-underline"), children: cardContent });
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 twMerge10 } from "tailwind-merge";
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: twMerge10(
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 twMerge11 } from "tailwind-merge";
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 = twMerge11(
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: twMerge11(
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: twMerge11(
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 twMerge12 } from "tailwind-merge";
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: twMerge12(
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: twMerge12(
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 twMerge13 } from "tailwind-merge";
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: twMerge13("w-full", className), children: [
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: twMerge13(
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: twMerge13(
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 twMerge14 } from "tailwind-merge";
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: twMerge14(
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: twMerge14("shrink-0 mt-0.5", config.iconClass),
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 twMerge15 } from "tailwind-merge";
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 = twMerge15(
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: twMerge15(config.labelClass, "text-(--color-text-secondary)"), children: label }),
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: twMerge15(
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 twMerge16 } from "tailwind-merge";
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: twMerge16(
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 twMerge17 } from "tailwind-merge";
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 = twMerge17(
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 twMerge18 } from "tailwind-merge";
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: twMerge18("relative flex", 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 = twMerge18(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
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,