@cytario/design 9.4.0 → 9.5.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.css +1 -1
- package/dist/index.d.ts +18 -8
- package/dist/index.js +189 -210
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -491,7 +491,7 @@ var buttonBaseClass = `
|
|
|
491
491
|
inline-flex items-center justify-center gap-2 shrink-0 cursor-pointer
|
|
492
492
|
rounded-full
|
|
493
493
|
font-medium
|
|
494
|
-
leading-
|
|
494
|
+
leading-none
|
|
495
495
|
outline-none transition-colors no-underline
|
|
496
496
|
focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
|
|
497
497
|
disabled:opacity-50 disabled:pointer-events-none
|
|
@@ -1072,6 +1072,12 @@ var alignClasses = {
|
|
|
1072
1072
|
center: "text-center",
|
|
1073
1073
|
right: "text-right"
|
|
1074
1074
|
};
|
|
1075
|
+
var sizeStyles2 = {
|
|
1076
|
+
xs: "text-xs h-6",
|
|
1077
|
+
sm: "text-sm h-7",
|
|
1078
|
+
md: "text-base h-8",
|
|
1079
|
+
lg: "text-lg h-10"
|
|
1080
|
+
};
|
|
1075
1081
|
function Input({
|
|
1076
1082
|
as: FieldProp = TextField,
|
|
1077
1083
|
label,
|
|
@@ -1081,6 +1087,7 @@ function Input({
|
|
|
1081
1087
|
type = "text",
|
|
1082
1088
|
size = "md",
|
|
1083
1089
|
prefix,
|
|
1090
|
+
suffix,
|
|
1084
1091
|
align = "left",
|
|
1085
1092
|
isDisabled,
|
|
1086
1093
|
isRequired,
|
|
@@ -1091,6 +1098,29 @@ function Input({
|
|
|
1091
1098
|
const isInvalid = !!errorMessage;
|
|
1092
1099
|
const borderColor = isInvalid ? "border-destructive-border" : "border-border hover:border-border";
|
|
1093
1100
|
const radiusClass = "rounded-md";
|
|
1101
|
+
const inputCx = twMerge8(
|
|
1102
|
+
`
|
|
1103
|
+
w-full
|
|
1104
|
+
bg-transparent text-foreground
|
|
1105
|
+
placeholder:text-muted-foreground
|
|
1106
|
+
outline-none border-none
|
|
1107
|
+
`,
|
|
1108
|
+
sizeStyles2[size],
|
|
1109
|
+
alignClasses[align]
|
|
1110
|
+
);
|
|
1111
|
+
const containerCx = twMerge8(
|
|
1112
|
+
`
|
|
1113
|
+
flex items-center gap-1 px-2
|
|
1114
|
+
border bg-background
|
|
1115
|
+
outline-none transition-colors
|
|
1116
|
+
focus-within:ring-2
|
|
1117
|
+
focus-within:ring-ring
|
|
1118
|
+
focus-within:border-ring
|
|
1119
|
+
`,
|
|
1120
|
+
radiusClass,
|
|
1121
|
+
borderColor,
|
|
1122
|
+
isDisabled && "opacity-50 pointer-events-none"
|
|
1123
|
+
);
|
|
1094
1124
|
return /* @__PURE__ */ jsxs6(
|
|
1095
1125
|
Field,
|
|
1096
1126
|
{
|
|
@@ -1102,69 +1132,11 @@ function Input({
|
|
|
1102
1132
|
className: twMerge8("flex w-full flex-col gap-1", className),
|
|
1103
1133
|
children: [
|
|
1104
1134
|
label && /* @__PURE__ */ jsx14(Label, { isRequired, children: label }),
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
{
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
radiusClass,
|
|
1111
|
-
"border",
|
|
1112
|
-
"bg-background",
|
|
1113
|
-
"outline-none transition-colors",
|
|
1114
|
-
borderColor,
|
|
1115
|
-
"focus-within:ring-2 focus-within:ring-ring focus-within:border-ring",
|
|
1116
|
-
isDisabled && "opacity-50 pointer-events-none"
|
|
1117
|
-
),
|
|
1118
|
-
children: [
|
|
1119
|
-
/* @__PURE__ */ jsx14(
|
|
1120
|
-
"span",
|
|
1121
|
-
{
|
|
1122
|
-
className: twMerge8(
|
|
1123
|
-
"self-stretch flex items-center shrink-0 select-none",
|
|
1124
|
-
"bg-card",
|
|
1125
|
-
"border-r border-r-border",
|
|
1126
|
-
"text-muted-foreground",
|
|
1127
|
-
sizeStyles[size]
|
|
1128
|
-
),
|
|
1129
|
-
children: prefix
|
|
1130
|
-
}
|
|
1131
|
-
),
|
|
1132
|
-
/* @__PURE__ */ jsx14(
|
|
1133
|
-
AriaInput,
|
|
1134
|
-
{
|
|
1135
|
-
placeholder,
|
|
1136
|
-
className: twMerge8(
|
|
1137
|
-
"w-full bg-transparent",
|
|
1138
|
-
sizeStyles[size],
|
|
1139
|
-
alignClasses[align],
|
|
1140
|
-
"text-foreground",
|
|
1141
|
-
"placeholder:text-muted-foreground",
|
|
1142
|
-
"outline-none border-none"
|
|
1143
|
-
)
|
|
1144
|
-
}
|
|
1145
|
-
)
|
|
1146
|
-
]
|
|
1147
|
-
}
|
|
1148
|
-
) : /* @__PURE__ */ jsx14(
|
|
1149
|
-
AriaInput,
|
|
1150
|
-
{
|
|
1151
|
-
placeholder,
|
|
1152
|
-
className: twMerge8(
|
|
1153
|
-
"w-full",
|
|
1154
|
-
sizeStyles[size],
|
|
1155
|
-
alignClasses[align],
|
|
1156
|
-
radiusClass,
|
|
1157
|
-
"border",
|
|
1158
|
-
"text-foreground",
|
|
1159
|
-
"bg-background",
|
|
1160
|
-
"placeholder:text-muted-foreground",
|
|
1161
|
-
"outline-none transition-colors",
|
|
1162
|
-
borderColor,
|
|
1163
|
-
"focus:ring-2 focus:ring-ring focus:border-ring",
|
|
1164
|
-
"disabled:opacity-50 disabled:pointer-events-none"
|
|
1165
|
-
)
|
|
1166
|
-
}
|
|
1167
|
-
),
|
|
1135
|
+
/* @__PURE__ */ jsxs6("div", { className: containerCx, children: [
|
|
1136
|
+
prefix,
|
|
1137
|
+
/* @__PURE__ */ jsx14(AriaInput, { placeholder, className: inputCx }),
|
|
1138
|
+
suffix
|
|
1139
|
+
] }),
|
|
1168
1140
|
description && /* @__PURE__ */ jsx14(Text, { slot: "description", className: "text-sm text-muted-foreground", children: description }),
|
|
1169
1141
|
isInvalid && /* @__PURE__ */ jsx14(
|
|
1170
1142
|
Text,
|
|
@@ -1517,7 +1489,7 @@ import {
|
|
|
1517
1489
|
} from "react-aria-components";
|
|
1518
1490
|
import { X as X2 } from "lucide-react";
|
|
1519
1491
|
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1520
|
-
var
|
|
1492
|
+
var sizeStyles3 = {
|
|
1521
1493
|
sm: "max-w-md",
|
|
1522
1494
|
md: "max-w-lg",
|
|
1523
1495
|
lg: "max-w-2xl",
|
|
@@ -1549,7 +1521,7 @@ function Dialog({
|
|
|
1549
1521
|
{
|
|
1550
1522
|
className: [
|
|
1551
1523
|
"w-full mx-4",
|
|
1552
|
-
|
|
1524
|
+
sizeStyles3[size],
|
|
1553
1525
|
"bg-background rounded-lg shadow-xl max-h-[85vh] flex flex-col",
|
|
1554
1526
|
"entering:animate-in entering:zoom-in-95 entering:fade-in",
|
|
1555
1527
|
"exiting:animate-out exiting:zoom-out-95 exiting:fade-out",
|
|
@@ -1817,59 +1789,50 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1817
1789
|
|
|
1818
1790
|
// src/components/Form/Switch/Switch.tsx
|
|
1819
1791
|
import {
|
|
1820
|
-
|
|
1792
|
+
SwitchField,
|
|
1793
|
+
SwitchButton
|
|
1821
1794
|
} from "react-aria-components";
|
|
1795
|
+
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
1822
1796
|
import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1823
|
-
var trackColorMap = {
|
|
1824
|
-
primary: "bg-primary",
|
|
1825
|
-
success: "bg-success",
|
|
1826
|
-
destructive: "bg-destructive"
|
|
1827
|
-
};
|
|
1828
|
-
var presetColors = new Set(Object.keys(trackColorMap));
|
|
1829
|
-
function isPresetColor(color) {
|
|
1830
|
-
return presetColors.has(color);
|
|
1831
|
-
}
|
|
1832
1797
|
function Switch({
|
|
1833
1798
|
children,
|
|
1834
|
-
color = "primary",
|
|
1799
|
+
color = "var(--color-primary)",
|
|
1835
1800
|
className,
|
|
1836
1801
|
...props
|
|
1837
1802
|
}) {
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1803
|
+
return /* @__PURE__ */ jsx23(SwitchField, { ...props, children: /* @__PURE__ */ jsx23(SwitchButton, { className: "relative cursor-pointer", children: ({ isSelected, isFocusVisible }) => /* @__PURE__ */ jsxs14(Fragment4, { children: [
|
|
1804
|
+
/* @__PURE__ */ jsx23(
|
|
1805
|
+
"div",
|
|
1806
|
+
{
|
|
1807
|
+
className: twMerge12(
|
|
1808
|
+
`
|
|
1809
|
+
flex items-center
|
|
1810
|
+
border-2 border-border
|
|
1811
|
+
w-9 h-5 rounded-full transition-colors shrink-0
|
|
1812
|
+
`,
|
|
1813
|
+
isFocusVisible && "ring-2 ring-ring ring-offset-2",
|
|
1814
|
+
!isSelected && "bg-border"
|
|
1815
|
+
),
|
|
1816
|
+
style: isSelected ? { backgroundColor: color } : void 0,
|
|
1817
|
+
children: /* @__PURE__ */ jsx23(
|
|
1850
1818
|
"div",
|
|
1851
1819
|
{
|
|
1852
|
-
className:
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
className: [
|
|
1862
|
-
"w-4 h-4 rounded-full bg-background transition-transform shadow-sm",
|
|
1863
|
-
isSelected ? "translate-x-4" : "translate-x-0"
|
|
1864
|
-
].join(" ")
|
|
1865
|
-
}
|
|
1820
|
+
className: twMerge12(
|
|
1821
|
+
`
|
|
1822
|
+
absolute top-0 left-0 w-5 h-5
|
|
1823
|
+
rounded-full
|
|
1824
|
+
transition-transform
|
|
1825
|
+
border-2 border-border
|
|
1826
|
+
|
|
1827
|
+
`,
|
|
1828
|
+
isSelected ? "translate-x-4 bg-card" : "translate-x-0 bg-background"
|
|
1866
1829
|
)
|
|
1867
1830
|
}
|
|
1868
|
-
)
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
}
|
|
1872
|
-
);
|
|
1831
|
+
)
|
|
1832
|
+
}
|
|
1833
|
+
),
|
|
1834
|
+
children && /* @__PURE__ */ jsx23("span", { children })
|
|
1835
|
+
] }) }) });
|
|
1873
1836
|
}
|
|
1874
1837
|
|
|
1875
1838
|
// src/components/Form/Radio/Radio.tsx
|
|
@@ -2070,7 +2033,7 @@ function Breadcrumbs({ items, className }) {
|
|
|
2070
2033
|
import {
|
|
2071
2034
|
ToggleButton as AriaToggleButton2
|
|
2072
2035
|
} from "react-aria-components";
|
|
2073
|
-
import { twMerge as
|
|
2036
|
+
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
2074
2037
|
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2075
2038
|
var squareSizeStyles2 = {
|
|
2076
2039
|
xs: "h-6 w-6 text-xs",
|
|
@@ -2120,7 +2083,7 @@ function ToggleButton({
|
|
|
2120
2083
|
AriaToggleButton2,
|
|
2121
2084
|
{
|
|
2122
2085
|
...props,
|
|
2123
|
-
className: ({ isSelected }) =>
|
|
2086
|
+
className: ({ isSelected }) => twMerge13(
|
|
2124
2087
|
"inline-flex items-center justify-center gap-2 cursor-pointer",
|
|
2125
2088
|
isSquare ? "rounded-none" : "rounded-md",
|
|
2126
2089
|
"font-medium",
|
|
@@ -2143,7 +2106,7 @@ import {
|
|
|
2143
2106
|
MenuItem as AriaMenuItem,
|
|
2144
2107
|
Popover as Popover2
|
|
2145
2108
|
} from "react-aria-components";
|
|
2146
|
-
import { twMerge as
|
|
2109
|
+
import { twMerge as twMerge14 } from "tailwind-merge";
|
|
2147
2110
|
|
|
2148
2111
|
// src/components/Menu/menuStyles.ts
|
|
2149
2112
|
var popoverStyles = `
|
|
@@ -2170,7 +2133,7 @@ function Menu2({
|
|
|
2170
2133
|
const selectionProps = selectionMode && selectionMode !== "none" ? { selectionMode, selectedKeys, defaultSelectedKeys, onSelectionChange } : {};
|
|
2171
2134
|
return /* @__PURE__ */ jsxs18(MenuTrigger, { children: [
|
|
2172
2135
|
children,
|
|
2173
|
-
/* @__PURE__ */ jsx29(Popover2, { className:
|
|
2136
|
+
/* @__PURE__ */ jsx29(Popover2, { className: twMerge14(popoverStyles, className), children: items ? /* @__PURE__ */ jsx29(
|
|
2174
2137
|
AriaMenu,
|
|
2175
2138
|
{
|
|
2176
2139
|
items,
|
|
@@ -2229,7 +2192,7 @@ import {
|
|
|
2229
2192
|
Popover as Popover3,
|
|
2230
2193
|
Pressable
|
|
2231
2194
|
} from "react-aria-components";
|
|
2232
|
-
import { twMerge as
|
|
2195
|
+
import { twMerge as twMerge15 } from "tailwind-merge";
|
|
2233
2196
|
import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2234
2197
|
function useContextMenu({
|
|
2235
2198
|
content,
|
|
@@ -2295,7 +2258,7 @@ function useContextMenu({
|
|
|
2295
2258
|
isNonModal: true,
|
|
2296
2259
|
placement: "bottom start",
|
|
2297
2260
|
ref: popoverRef,
|
|
2298
|
-
className:
|
|
2261
|
+
className: twMerge15(popoverStyles, className),
|
|
2299
2262
|
children: /* @__PURE__ */ jsx30(
|
|
2300
2263
|
AriaMenu2,
|
|
2301
2264
|
{
|
|
@@ -2458,7 +2421,7 @@ import {
|
|
|
2458
2421
|
Popover as AriaPopover,
|
|
2459
2422
|
Button as AriaButton3
|
|
2460
2423
|
} from "react-aria-components";
|
|
2461
|
-
import { twMerge as
|
|
2424
|
+
import { twMerge as twMerge16 } from "tailwind-merge";
|
|
2462
2425
|
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2463
2426
|
function Popover4({ children, isOpen, onOpenChange }) {
|
|
2464
2427
|
return /* @__PURE__ */ jsx36(DialogTrigger, { isOpen, onOpenChange, children });
|
|
@@ -2468,7 +2431,7 @@ function PopoverTrigger({ children, className }) {
|
|
|
2468
2431
|
inline-flex items-center bg-transparent border-none p-0 outline-none cursor-pointer
|
|
2469
2432
|
focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm
|
|
2470
2433
|
`;
|
|
2471
|
-
return /* @__PURE__ */ jsx36(AriaButton3, { className:
|
|
2434
|
+
return /* @__PURE__ */ jsx36(AriaButton3, { className: twMerge16(cx, className), children });
|
|
2472
2435
|
}
|
|
2473
2436
|
function PopoverContent({
|
|
2474
2437
|
placement = "bottom",
|
|
@@ -2495,7 +2458,7 @@ function PopoverContent({
|
|
|
2495
2458
|
...rest,
|
|
2496
2459
|
placement,
|
|
2497
2460
|
offset: offsetPx,
|
|
2498
|
-
className:
|
|
2461
|
+
className: twMerge16(cx, className),
|
|
2499
2462
|
children
|
|
2500
2463
|
}
|
|
2501
2464
|
);
|
|
@@ -2503,7 +2466,7 @@ function PopoverContent({
|
|
|
2503
2466
|
|
|
2504
2467
|
// src/components/Tabs/Tabs.tsx
|
|
2505
2468
|
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
2506
|
-
import { twMerge as
|
|
2469
|
+
import { twMerge as twMerge17 } from "tailwind-merge";
|
|
2507
2470
|
import {
|
|
2508
2471
|
Tabs as AriaTabs,
|
|
2509
2472
|
TabList as AriaTabList,
|
|
@@ -2515,7 +2478,7 @@ var TabsContext = createContext2({
|
|
|
2515
2478
|
variant: "underline",
|
|
2516
2479
|
size: "md"
|
|
2517
2480
|
});
|
|
2518
|
-
var
|
|
2481
|
+
var sizeStyles4 = {
|
|
2519
2482
|
sm: "px-3 py-1.5 text-sm",
|
|
2520
2483
|
md: "px-4 py-2 text-base",
|
|
2521
2484
|
lg: "px-6 py-3 text-lg"
|
|
@@ -2533,7 +2496,7 @@ function Tabs({
|
|
|
2533
2496
|
{
|
|
2534
2497
|
...props,
|
|
2535
2498
|
orientation,
|
|
2536
|
-
className:
|
|
2499
|
+
className: twMerge17(
|
|
2537
2500
|
orientation === "vertical" ? "flex" : "",
|
|
2538
2501
|
className
|
|
2539
2502
|
),
|
|
@@ -2552,7 +2515,7 @@ function TabList({
|
|
|
2552
2515
|
AriaTabList,
|
|
2553
2516
|
{
|
|
2554
2517
|
...props,
|
|
2555
|
-
className: ({ orientation }) =>
|
|
2518
|
+
className: ({ orientation }) => twMerge17(
|
|
2556
2519
|
baseStyles,
|
|
2557
2520
|
orientation === "vertical" ? verticalStyles : "",
|
|
2558
2521
|
className
|
|
@@ -2568,14 +2531,14 @@ function Tab({ className, ...props }) {
|
|
|
2568
2531
|
...props,
|
|
2569
2532
|
className: ({ isSelected, isDisabled, isHovered, isPressed }) => {
|
|
2570
2533
|
if (variant === "unstyled") {
|
|
2571
|
-
return
|
|
2534
|
+
return twMerge17(
|
|
2572
2535
|
"cursor-pointer outline-none",
|
|
2573
2536
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
2574
2537
|
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
2575
2538
|
className
|
|
2576
2539
|
);
|
|
2577
2540
|
}
|
|
2578
|
-
return
|
|
2541
|
+
return twMerge17(
|
|
2579
2542
|
// Base
|
|
2580
2543
|
"cursor-pointer outline-none transition-colors",
|
|
2581
2544
|
"font-medium",
|
|
@@ -2584,7 +2547,7 @@ function Tab({ className, ...props }) {
|
|
|
2584
2547
|
// Disabled
|
|
2585
2548
|
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
2586
2549
|
// Size
|
|
2587
|
-
|
|
2550
|
+
sizeStyles4[size],
|
|
2588
2551
|
...getTabVariantStyles(variant, {
|
|
2589
2552
|
isSelected,
|
|
2590
2553
|
isHovered,
|
|
@@ -2623,7 +2586,7 @@ function TabPanel({ className, ...props }) {
|
|
|
2623
2586
|
AriaTabPanel,
|
|
2624
2587
|
{
|
|
2625
2588
|
...props,
|
|
2626
|
-
className:
|
|
2589
|
+
className: twMerge17(
|
|
2627
2590
|
variant === "unstyled" ? "outline-none" : "mt-4 outline-none",
|
|
2628
2591
|
className
|
|
2629
2592
|
)
|
|
@@ -2641,7 +2604,7 @@ import {
|
|
|
2641
2604
|
|
|
2642
2605
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2643
2606
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
2644
|
-
import { twMerge as
|
|
2607
|
+
import { twMerge as twMerge18 } from "tailwind-merge";
|
|
2645
2608
|
import {
|
|
2646
2609
|
ToggleButtonGroup as AriaToggleButtonGroup,
|
|
2647
2610
|
ToggleButton as AriaToggleButton3
|
|
@@ -2650,7 +2613,7 @@ import { jsx as jsx38 } from "react/jsx-runtime";
|
|
|
2650
2613
|
var SegmentedControlContext = createContext3({
|
|
2651
2614
|
size: "md"
|
|
2652
2615
|
});
|
|
2653
|
-
var
|
|
2616
|
+
var sizeStyles5 = {
|
|
2654
2617
|
sm: "px-2.5 py-1 text-xs",
|
|
2655
2618
|
md: "px-3 py-1.5 text-sm",
|
|
2656
2619
|
lg: "px-4 py-2 text-base"
|
|
@@ -2674,7 +2637,7 @@ function SegmentedControl({
|
|
|
2674
2637
|
selectedKeys: isNoneMode ? /* @__PURE__ */ new Set() : selectedKeys,
|
|
2675
2638
|
defaultSelectedKeys: isNoneMode ? void 0 : defaultSelectedKeys,
|
|
2676
2639
|
onSelectionChange: isNoneMode ? void 0 : onSelectionChange,
|
|
2677
|
-
className:
|
|
2640
|
+
className: twMerge18(
|
|
2678
2641
|
"inline-flex items-center rounded-lg border border-border bg-muted p-0.5 gap-0.5",
|
|
2679
2642
|
className
|
|
2680
2643
|
),
|
|
@@ -2691,7 +2654,7 @@ function SegmentedControlItem({
|
|
|
2691
2654
|
AriaToggleButton3,
|
|
2692
2655
|
{
|
|
2693
2656
|
...props,
|
|
2694
|
-
className: ({ isSelected, isHovered, isPressed, isDisabled }) =>
|
|
2657
|
+
className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge18(
|
|
2695
2658
|
// Base layout
|
|
2696
2659
|
"inline-flex items-center justify-center",
|
|
2697
2660
|
"rounded-md",
|
|
@@ -2702,7 +2665,7 @@ function SegmentedControlItem({
|
|
|
2702
2665
|
// Disabled
|
|
2703
2666
|
isDisabled && "opacity-50 pointer-events-none",
|
|
2704
2667
|
// Size
|
|
2705
|
-
|
|
2668
|
+
sizeStyles5[size],
|
|
2706
2669
|
// Selected state
|
|
2707
2670
|
isSelected ? "bg-background text-foreground shadow-sm font-semibold" : isPressed ? "bg-card text-foreground" : isHovered ? "bg-card text-foreground" : "bg-transparent text-muted-foreground",
|
|
2708
2671
|
className
|
|
@@ -2712,8 +2675,21 @@ function SegmentedControlItem({
|
|
|
2712
2675
|
}
|
|
2713
2676
|
|
|
2714
2677
|
// src/components/Badge/Badge.tsx
|
|
2715
|
-
import { twMerge as
|
|
2716
|
-
|
|
2678
|
+
import { twMerge as twMerge20 } from "tailwind-merge";
|
|
2679
|
+
|
|
2680
|
+
// src/components/MetricText/MetricText.tsx
|
|
2681
|
+
import { twMerge as twMerge19 } from "tailwind-merge";
|
|
2682
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
2683
|
+
function MetricText({ className, ...rest }) {
|
|
2684
|
+
const cx = twMerge19(
|
|
2685
|
+
"text-xs font-medium leading-none tracking-wider tabular-nums",
|
|
2686
|
+
className
|
|
2687
|
+
);
|
|
2688
|
+
return /* @__PURE__ */ jsx39("span", { className: cx, ...rest });
|
|
2689
|
+
}
|
|
2690
|
+
|
|
2691
|
+
// src/components/Badge/Badge.tsx
|
|
2692
|
+
import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2717
2693
|
var colorStyles = {
|
|
2718
2694
|
purple: "bg-badge-purple-bg text-badge-purple-text border-badge-purple-text/20",
|
|
2719
2695
|
teal: "bg-badge-teal-bg text-badge-teal-text border-badge-teal-text/20",
|
|
@@ -2722,7 +2698,7 @@ var colorStyles = {
|
|
|
2722
2698
|
green: "bg-badge-green-bg text-badge-green-text border-badge-green-text/20",
|
|
2723
2699
|
amber: "bg-badge-amber-bg text-badge-amber-text border-badge-amber-text/20"
|
|
2724
2700
|
};
|
|
2725
|
-
var
|
|
2701
|
+
var sizeStyles6 = {
|
|
2726
2702
|
xs: "px-1 py-0 text-[10px]",
|
|
2727
2703
|
sm: "px-1.5 py-0.5 text-xs",
|
|
2728
2704
|
md: "px-2 py-0.5 text-xs",
|
|
@@ -2737,18 +2713,17 @@ function Badge({
|
|
|
2737
2713
|
...rest
|
|
2738
2714
|
}) {
|
|
2739
2715
|
return /* @__PURE__ */ jsxs23(
|
|
2740
|
-
|
|
2716
|
+
MetricText,
|
|
2741
2717
|
{
|
|
2742
|
-
className:
|
|
2718
|
+
className: twMerge20(
|
|
2743
2719
|
"inline-flex items-center gap-1 rounded-full border",
|
|
2744
|
-
"font-medium leading-tight tracking-wider tabular-nums",
|
|
2745
2720
|
colorStyles[color],
|
|
2746
|
-
|
|
2721
|
+
sizeStyles6[size],
|
|
2747
2722
|
className
|
|
2748
2723
|
),
|
|
2749
2724
|
...rest,
|
|
2750
2725
|
children: [
|
|
2751
|
-
icon && /* @__PURE__ */
|
|
2726
|
+
icon && /* @__PURE__ */ jsx40(Icon, { icon, size: "xs" }),
|
|
2752
2727
|
children
|
|
2753
2728
|
]
|
|
2754
2729
|
}
|
|
@@ -2756,10 +2731,10 @@ function Badge({
|
|
|
2756
2731
|
}
|
|
2757
2732
|
|
|
2758
2733
|
// src/components/Card/Card.tsx
|
|
2759
|
-
import { twMerge as
|
|
2760
|
-
import { jsx as
|
|
2734
|
+
import { twMerge as twMerge21 } from "tailwind-merge";
|
|
2735
|
+
import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2761
2736
|
function Card({ children, header, footer, className }) {
|
|
2762
|
-
const cx =
|
|
2737
|
+
const cx = twMerge21(
|
|
2763
2738
|
`
|
|
2764
2739
|
bg-card p-8
|
|
2765
2740
|
border border-border
|
|
@@ -2769,16 +2744,16 @@ function Card({ children, header, footer, className }) {
|
|
|
2769
2744
|
className
|
|
2770
2745
|
);
|
|
2771
2746
|
return /* @__PURE__ */ jsxs24("div", { className: cx, children: [
|
|
2772
|
-
header && /* @__PURE__ */
|
|
2747
|
+
header && /* @__PURE__ */ jsx41("div", { className: "border-b border-border", children: header }),
|
|
2773
2748
|
children,
|
|
2774
|
-
footer && /* @__PURE__ */
|
|
2749
|
+
footer && /* @__PURE__ */ jsx41("div", { className: "border-t border-border", children: footer })
|
|
2775
2750
|
] });
|
|
2776
2751
|
}
|
|
2777
2752
|
|
|
2778
2753
|
// src/components/DeltaIndicator/DeltaIndicator.tsx
|
|
2779
2754
|
import { ArrowUp as ArrowUp2, ArrowDown as ArrowDown2, Minus as Minus2 } from "lucide-react";
|
|
2780
|
-
import { twMerge as
|
|
2781
|
-
import { jsx as
|
|
2755
|
+
import { twMerge as twMerge22 } from "tailwind-merge";
|
|
2756
|
+
import { jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2782
2757
|
function getDirection(current, previous) {
|
|
2783
2758
|
const diff = current - previous;
|
|
2784
2759
|
if (diff > 0) return "increase";
|
|
@@ -2834,13 +2809,13 @@ function DeltaIndicator({
|
|
|
2834
2809
|
return /* @__PURE__ */ jsxs25(
|
|
2835
2810
|
"span",
|
|
2836
2811
|
{
|
|
2837
|
-
className:
|
|
2812
|
+
className: twMerge22(
|
|
2838
2813
|
"inline-flex items-center gap-1 font-medium",
|
|
2839
2814
|
"text-muted-foreground",
|
|
2840
2815
|
className
|
|
2841
2816
|
),
|
|
2842
2817
|
children: [
|
|
2843
|
-
label && /* @__PURE__ */
|
|
2818
|
+
label && /* @__PURE__ */ jsx42("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
|
|
2844
2819
|
unavailableText
|
|
2845
2820
|
]
|
|
2846
2821
|
}
|
|
@@ -2873,7 +2848,7 @@ function DeltaIndicator({
|
|
|
2873
2848
|
return /* @__PURE__ */ jsxs25(
|
|
2874
2849
|
"span",
|
|
2875
2850
|
{
|
|
2876
|
-
className:
|
|
2851
|
+
className: twMerge22(
|
|
2877
2852
|
"inline-flex items-center gap-1 font-medium",
|
|
2878
2853
|
colorStyles2,
|
|
2879
2854
|
isPill && [
|
|
@@ -2884,8 +2859,8 @@ function DeltaIndicator({
|
|
|
2884
2859
|
className
|
|
2885
2860
|
),
|
|
2886
2861
|
children: [
|
|
2887
|
-
label && /* @__PURE__ */
|
|
2888
|
-
/* @__PURE__ */
|
|
2862
|
+
label && /* @__PURE__ */ jsx42("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
|
|
2863
|
+
/* @__PURE__ */ jsx42(IconComponent, { size: 14, "aria-hidden": true }),
|
|
2889
2864
|
valueText
|
|
2890
2865
|
]
|
|
2891
2866
|
}
|
|
@@ -2893,8 +2868,8 @@ function DeltaIndicator({
|
|
|
2893
2868
|
}
|
|
2894
2869
|
|
|
2895
2870
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
2896
|
-
import { twMerge as
|
|
2897
|
-
import { jsx as
|
|
2871
|
+
import { twMerge as twMerge23 } from "tailwind-merge";
|
|
2872
|
+
import { jsx as jsx43, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2898
2873
|
var fillStyles = {
|
|
2899
2874
|
brand: "bg-progress-fill",
|
|
2900
2875
|
success: "bg-progress-fill-success",
|
|
@@ -2902,7 +2877,7 @@ var fillStyles = {
|
|
|
2902
2877
|
danger: "bg-progress-fill-danger",
|
|
2903
2878
|
neutral: "bg-muted-foreground"
|
|
2904
2879
|
};
|
|
2905
|
-
var
|
|
2880
|
+
var sizeStyles7 = {
|
|
2906
2881
|
sm: "h-1.5",
|
|
2907
2882
|
md: "h-3",
|
|
2908
2883
|
lg: "h-4"
|
|
@@ -2917,12 +2892,12 @@ function ProgressBar({
|
|
|
2917
2892
|
className
|
|
2918
2893
|
}) {
|
|
2919
2894
|
const clampedValue = Math.min(100, Math.max(0, value));
|
|
2920
|
-
return /* @__PURE__ */ jsxs26("div", { className:
|
|
2895
|
+
return /* @__PURE__ */ jsxs26("div", { className: twMerge23("w-full", className), children: [
|
|
2921
2896
|
(label || description || showValue) && /* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between mb-2", children: [
|
|
2922
|
-
/* @__PURE__ */
|
|
2923
|
-
/* @__PURE__ */
|
|
2897
|
+
/* @__PURE__ */ jsx43("span", { className: "text-sm font-medium text-foreground", children: label }),
|
|
2898
|
+
/* @__PURE__ */ jsx43("span", { className: "text-sm text-muted-foreground", children: description ?? (showValue ? `${clampedValue}%` : null) })
|
|
2924
2899
|
] }),
|
|
2925
|
-
/* @__PURE__ */
|
|
2900
|
+
/* @__PURE__ */ jsx43(
|
|
2926
2901
|
"div",
|
|
2927
2902
|
{
|
|
2928
2903
|
role: "progressbar",
|
|
@@ -2930,14 +2905,14 @@ function ProgressBar({
|
|
|
2930
2905
|
"aria-valuemin": 0,
|
|
2931
2906
|
"aria-valuemax": 100,
|
|
2932
2907
|
"aria-label": label ?? "Progress",
|
|
2933
|
-
className:
|
|
2908
|
+
className: twMerge23(
|
|
2934
2909
|
"w-full rounded-full bg-progress-track",
|
|
2935
|
-
|
|
2910
|
+
sizeStyles7[size]
|
|
2936
2911
|
),
|
|
2937
|
-
children: /* @__PURE__ */
|
|
2912
|
+
children: /* @__PURE__ */ jsx43(
|
|
2938
2913
|
"div",
|
|
2939
2914
|
{
|
|
2940
|
-
className:
|
|
2915
|
+
className: twMerge23(
|
|
2941
2916
|
"h-full rounded-full transition-all duration-300",
|
|
2942
2917
|
fillStyles[variant]
|
|
2943
2918
|
),
|
|
@@ -2957,8 +2932,8 @@ import {
|
|
|
2957
2932
|
AlertCircle as AlertCircle2,
|
|
2958
2933
|
CheckCircle2 as CheckCircle22
|
|
2959
2934
|
} from "lucide-react";
|
|
2960
|
-
import { twMerge as
|
|
2961
|
-
import { jsx as
|
|
2935
|
+
import { twMerge as twMerge24 } from "tailwind-merge";
|
|
2936
|
+
import { jsx as jsx44, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2962
2937
|
var variantConfig2 = {
|
|
2963
2938
|
info: {
|
|
2964
2939
|
icon: Info3,
|
|
@@ -3006,19 +2981,19 @@ function Banner({
|
|
|
3006
2981
|
"div",
|
|
3007
2982
|
{
|
|
3008
2983
|
role: config.role,
|
|
3009
|
-
className:
|
|
2984
|
+
className: twMerge24(
|
|
3010
2985
|
"flex items-start gap-3 rounded-lg border px-4 py-3",
|
|
3011
2986
|
"text-sm",
|
|
3012
2987
|
config.containerClass,
|
|
3013
2988
|
className
|
|
3014
2989
|
),
|
|
3015
2990
|
children: [
|
|
3016
|
-
/* @__PURE__ */
|
|
2991
|
+
/* @__PURE__ */ jsx44(
|
|
3017
2992
|
Icon,
|
|
3018
2993
|
{
|
|
3019
2994
|
icon: resolvedIcon,
|
|
3020
2995
|
size: "md",
|
|
3021
|
-
className:
|
|
2996
|
+
className: twMerge24("mt-0.5", config.iconClass)
|
|
3022
2997
|
}
|
|
3023
2998
|
),
|
|
3024
2999
|
/* @__PURE__ */ jsxs27("div", { className: "flex-1", children: [
|
|
@@ -3028,14 +3003,14 @@ function Banner({
|
|
|
3028
3003
|
] }),
|
|
3029
3004
|
children
|
|
3030
3005
|
] }),
|
|
3031
|
-
dismissible && /* @__PURE__ */
|
|
3006
|
+
dismissible && /* @__PURE__ */ jsx44(
|
|
3032
3007
|
"button",
|
|
3033
3008
|
{
|
|
3034
3009
|
type: "button",
|
|
3035
3010
|
onClick: handleDismiss,
|
|
3036
3011
|
className: "shrink-0 rounded-sm p-0.5 opacity-70 hover:opacity-100 transition-opacity outline-none focus-visible:ring-2 focus-visible:ring-current",
|
|
3037
3012
|
"aria-label": "Dismiss",
|
|
3038
|
-
children: /* @__PURE__ */
|
|
3013
|
+
children: /* @__PURE__ */ jsx44(Icon, { icon: "X", size: "sm" })
|
|
3039
3014
|
}
|
|
3040
3015
|
)
|
|
3041
3016
|
]
|
|
@@ -3044,8 +3019,8 @@ function Banner({
|
|
|
3044
3019
|
}
|
|
3045
3020
|
|
|
3046
3021
|
// src/components/MetricCard/MetricCard.tsx
|
|
3047
|
-
import { twMerge as
|
|
3048
|
-
import { Fragment as Fragment8, jsx as
|
|
3022
|
+
import { twMerge as twMerge25 } from "tailwind-merge";
|
|
3023
|
+
import { Fragment as Fragment8, jsx as jsx45, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3049
3024
|
var sizeConfig = {
|
|
3050
3025
|
sm: {
|
|
3051
3026
|
padding: "p-3",
|
|
@@ -3067,50 +3042,50 @@ function MetricCard({
|
|
|
3067
3042
|
className
|
|
3068
3043
|
}) {
|
|
3069
3044
|
const config = sizeConfig[size];
|
|
3070
|
-
const containerClass =
|
|
3045
|
+
const containerClass = twMerge25(
|
|
3071
3046
|
"bg-background border border-border rounded-lg shadow-sm",
|
|
3072
3047
|
config.padding,
|
|
3073
3048
|
href && "block transition-shadow hover:shadow-md hover:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 outline-none",
|
|
3074
3049
|
className
|
|
3075
3050
|
);
|
|
3076
3051
|
const content = /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
3077
|
-
/* @__PURE__ */
|
|
3078
|
-
/* @__PURE__ */
|
|
3052
|
+
/* @__PURE__ */ jsx45("div", { className: twMerge25(config.labelClass, "text-muted-foreground"), children: label }),
|
|
3053
|
+
/* @__PURE__ */ jsx45(
|
|
3079
3054
|
"div",
|
|
3080
3055
|
{
|
|
3081
|
-
className:
|
|
3056
|
+
className: twMerge25(
|
|
3082
3057
|
config.valueClass,
|
|
3083
3058
|
"font-semibold text-foreground mt-1 tabular-nums"
|
|
3084
3059
|
),
|
|
3085
3060
|
children: value
|
|
3086
3061
|
}
|
|
3087
3062
|
),
|
|
3088
|
-
secondary && /* @__PURE__ */
|
|
3063
|
+
secondary && /* @__PURE__ */ jsx45("div", { className: "mt-1 text-sm", children: secondary })
|
|
3089
3064
|
] });
|
|
3090
3065
|
if (href) {
|
|
3091
|
-
return /* @__PURE__ */
|
|
3066
|
+
return /* @__PURE__ */ jsx45("a", { href, className: containerClass, children: content });
|
|
3092
3067
|
}
|
|
3093
|
-
return /* @__PURE__ */
|
|
3068
|
+
return /* @__PURE__ */ jsx45("div", { className: containerClass, children: content });
|
|
3094
3069
|
}
|
|
3095
3070
|
|
|
3096
3071
|
// src/components/SectionHeader/SectionHeader.tsx
|
|
3097
3072
|
import { forwardRef as forwardRef7 } from "react";
|
|
3098
|
-
import { twMerge as
|
|
3099
|
-
import { jsx as
|
|
3073
|
+
import { twMerge as twMerge26 } from "tailwind-merge";
|
|
3074
|
+
import { jsx as jsx46, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3100
3075
|
var SectionHeader = forwardRef7(
|
|
3101
3076
|
function SectionHeader2({ title, as = "h2", children, className, ...rest }, ref) {
|
|
3102
3077
|
return /* @__PURE__ */ jsxs29(
|
|
3103
3078
|
"div",
|
|
3104
3079
|
{
|
|
3105
3080
|
ref,
|
|
3106
|
-
className:
|
|
3081
|
+
className: twMerge26(
|
|
3107
3082
|
"flex flex-wrap items-center gap-3 pt-0 pb-4",
|
|
3108
3083
|
className
|
|
3109
3084
|
),
|
|
3110
3085
|
...rest,
|
|
3111
3086
|
children: [
|
|
3112
|
-
/* @__PURE__ */
|
|
3113
|
-
children && /* @__PURE__ */
|
|
3087
|
+
/* @__PURE__ */ jsx46(Heading, { as, children: title }),
|
|
3088
|
+
children && /* @__PURE__ */ jsx46("div", { className: "ml-auto flex flex-wrap items-center gap-2", children })
|
|
3114
3089
|
]
|
|
3115
3090
|
}
|
|
3116
3091
|
);
|
|
@@ -3120,7 +3095,7 @@ var SectionHeader = forwardRef7(
|
|
|
3120
3095
|
// src/components/DescriptionList/DescriptionList.tsx
|
|
3121
3096
|
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
3122
3097
|
import { Button as AriaButton4 } from "react-aria-components";
|
|
3123
|
-
import { jsx as
|
|
3098
|
+
import { jsx as jsx47, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3124
3099
|
var LayoutContext = createContext4("stacked");
|
|
3125
3100
|
var listGapStyles = {
|
|
3126
3101
|
stacked: "gap-4",
|
|
@@ -3131,7 +3106,7 @@ function DescriptionList({
|
|
|
3131
3106
|
layout = "stacked",
|
|
3132
3107
|
className
|
|
3133
3108
|
}) {
|
|
3134
|
-
return /* @__PURE__ */
|
|
3109
|
+
return /* @__PURE__ */ jsx47(LayoutContext.Provider, { value: layout, children: /* @__PURE__ */ jsx47(
|
|
3135
3110
|
"dl",
|
|
3136
3111
|
{
|
|
3137
3112
|
className: ["flex flex-col", listGapStyles[layout], className].filter(Boolean).join(" "),
|
|
@@ -3155,17 +3130,17 @@ function DescriptionListItem({
|
|
|
3155
3130
|
"text-sm m-0",
|
|
3156
3131
|
muted ? "text-muted-foreground" : "text-foreground"
|
|
3157
3132
|
].join(" ");
|
|
3158
|
-
const valueContent = /* @__PURE__ */
|
|
3133
|
+
const valueContent = /* @__PURE__ */ jsx47("dd", { className: valueClasses, children });
|
|
3159
3134
|
return /* @__PURE__ */ jsxs30("div", { className: itemLayoutStyles[layout], children: [
|
|
3160
|
-
/* @__PURE__ */
|
|
3161
|
-
fullValue ? /* @__PURE__ */
|
|
3135
|
+
/* @__PURE__ */ jsx47("dt", { className: labelClasses, children: label }),
|
|
3136
|
+
fullValue ? /* @__PURE__ */ jsx47(Tooltip, { content: fullValue, children: /* @__PURE__ */ jsx47(AriaButton4, { className: "text-left outline-none cursor-default", children: valueContent }) }) : valueContent
|
|
3162
3137
|
] });
|
|
3163
3138
|
}
|
|
3164
3139
|
DescriptionList.Item = DescriptionListItem;
|
|
3165
3140
|
|
|
3166
3141
|
// src/components/PathPill/PathPill.tsx
|
|
3167
|
-
import { twMerge as
|
|
3168
|
-
import { jsx as
|
|
3142
|
+
import { twMerge as twMerge27 } from "tailwind-merge";
|
|
3143
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
3169
3144
|
var hashColors = [
|
|
3170
3145
|
"purple",
|
|
3171
3146
|
"teal",
|
|
@@ -3191,17 +3166,17 @@ function PathPill({
|
|
|
3191
3166
|
const effectiveVisible = visibleCount ?? segments.length;
|
|
3192
3167
|
const dotCount = Math.max(0, segments.length - effectiveVisible);
|
|
3193
3168
|
const fullPath = segments.join(" / ");
|
|
3194
|
-
return /* @__PURE__ */
|
|
3169
|
+
return /* @__PURE__ */ jsx48(
|
|
3195
3170
|
"div",
|
|
3196
3171
|
{
|
|
3197
|
-
className:
|
|
3172
|
+
className: twMerge27("relative flex", className),
|
|
3198
3173
|
"aria-label": `Path: ${fullPath}`,
|
|
3199
3174
|
children: segments.map((segment, i) => {
|
|
3200
3175
|
const isCollapsed = i < dotCount;
|
|
3201
3176
|
const isLast = i === segments.length - 1;
|
|
3202
|
-
const cx =
|
|
3177
|
+
const cx = twMerge27(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
|
|
3203
3178
|
const color = colorFn ? colorFn(segment, i) : pillColorFromName(segment);
|
|
3204
|
-
return /* @__PURE__ */
|
|
3179
|
+
return /* @__PURE__ */ jsx48(
|
|
3205
3180
|
Badge,
|
|
3206
3181
|
{
|
|
3207
3182
|
className: cx,
|
|
@@ -3218,7 +3193,7 @@ function PathPill({
|
|
|
3218
3193
|
|
|
3219
3194
|
// src/components/FormWizard/FormWizard.tsx
|
|
3220
3195
|
import { createContext as createContext5, useContext as useContext5, useCallback as useCallback4, useMemo } from "react";
|
|
3221
|
-
import { jsx as
|
|
3196
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
3222
3197
|
var FormWizardContext = createContext5({
|
|
3223
3198
|
currentStep: 0,
|
|
3224
3199
|
totalSteps: 1,
|
|
@@ -3253,13 +3228,13 @@ function FormWizard({
|
|
|
3253
3228
|
}),
|
|
3254
3229
|
[currentStep, totalSteps, canGoBack, goBack, isLastStep]
|
|
3255
3230
|
);
|
|
3256
|
-
return /* @__PURE__ */
|
|
3231
|
+
return /* @__PURE__ */ jsx49(FormWizardContext.Provider, { value, children });
|
|
3257
3232
|
}
|
|
3258
3233
|
|
|
3259
3234
|
// src/components/FormWizard/FormWizardProgress.tsx
|
|
3260
|
-
import { jsx as
|
|
3235
|
+
import { jsx as jsx50, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3261
3236
|
function CheckIcon() {
|
|
3262
|
-
return /* @__PURE__ */
|
|
3237
|
+
return /* @__PURE__ */ jsx50(
|
|
3263
3238
|
"svg",
|
|
3264
3239
|
{
|
|
3265
3240
|
"aria-hidden": "true",
|
|
@@ -3270,13 +3245,13 @@ function CheckIcon() {
|
|
|
3270
3245
|
strokeWidth: "2",
|
|
3271
3246
|
strokeLinecap: "round",
|
|
3272
3247
|
strokeLinejoin: "round",
|
|
3273
|
-
children: /* @__PURE__ */
|
|
3248
|
+
children: /* @__PURE__ */ jsx50("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
|
|
3274
3249
|
}
|
|
3275
3250
|
);
|
|
3276
3251
|
}
|
|
3277
3252
|
function FormWizardProgress({ labels }) {
|
|
3278
3253
|
const { currentStep, totalSteps } = useFormWizard();
|
|
3279
|
-
return /* @__PURE__ */
|
|
3254
|
+
return /* @__PURE__ */ jsx50("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx50("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
|
|
3280
3255
|
const isCompleted = index < currentStep;
|
|
3281
3256
|
const isCurrent = index === currentStep;
|
|
3282
3257
|
const isFuture = index > currentStep;
|
|
@@ -3287,7 +3262,7 @@ function FormWizardProgress({ labels }) {
|
|
|
3287
3262
|
"aria-current": isCurrent ? "step" : void 0,
|
|
3288
3263
|
children: [
|
|
3289
3264
|
/* @__PURE__ */ jsxs31("div", { className: "flex w-full items-center", children: [
|
|
3290
|
-
index > 0 ? /* @__PURE__ */
|
|
3265
|
+
index > 0 ? /* @__PURE__ */ jsx50(
|
|
3291
3266
|
"div",
|
|
3292
3267
|
{
|
|
3293
3268
|
"aria-hidden": "true",
|
|
@@ -3296,8 +3271,8 @@ function FormWizardProgress({ labels }) {
|
|
|
3296
3271
|
index <= currentStep ? "bg-primary" : "bg-border"
|
|
3297
3272
|
].join(" ")
|
|
3298
3273
|
}
|
|
3299
|
-
) : /* @__PURE__ */
|
|
3300
|
-
/* @__PURE__ */
|
|
3274
|
+
) : /* @__PURE__ */ jsx50("div", { className: "flex-1", "aria-hidden": "true" }),
|
|
3275
|
+
/* @__PURE__ */ jsx50(
|
|
3301
3276
|
"div",
|
|
3302
3277
|
{
|
|
3303
3278
|
className: [
|
|
@@ -3309,10 +3284,10 @@ function FormWizardProgress({ labels }) {
|
|
|
3309
3284
|
isFuture ? "border-2 border-border bg-background text-muted-foreground" : ""
|
|
3310
3285
|
].join(" "),
|
|
3311
3286
|
"aria-hidden": "true",
|
|
3312
|
-
children: isCompleted ? /* @__PURE__ */
|
|
3287
|
+
children: isCompleted ? /* @__PURE__ */ jsx50(CheckIcon, {}) : index + 1
|
|
3313
3288
|
}
|
|
3314
3289
|
),
|
|
3315
|
-
index < totalSteps - 1 ? /* @__PURE__ */
|
|
3290
|
+
index < totalSteps - 1 ? /* @__PURE__ */ jsx50(
|
|
3316
3291
|
"div",
|
|
3317
3292
|
{
|
|
3318
3293
|
"aria-hidden": "true",
|
|
@@ -3321,9 +3296,9 @@ function FormWizardProgress({ labels }) {
|
|
|
3321
3296
|
index < currentStep ? "bg-primary" : "bg-border"
|
|
3322
3297
|
].join(" ")
|
|
3323
3298
|
}
|
|
3324
|
-
) : /* @__PURE__ */
|
|
3299
|
+
) : /* @__PURE__ */ jsx50("div", { className: "flex-1", "aria-hidden": "true" })
|
|
3325
3300
|
] }),
|
|
3326
|
-
/* @__PURE__ */
|
|
3301
|
+
/* @__PURE__ */ jsx50(
|
|
3327
3302
|
"span",
|
|
3328
3303
|
{
|
|
3329
3304
|
className: [
|
|
@@ -3341,7 +3316,7 @@ function FormWizardProgress({ labels }) {
|
|
|
3341
3316
|
}
|
|
3342
3317
|
|
|
3343
3318
|
// src/components/FormWizard/FormWizardNav.tsx
|
|
3344
|
-
import { jsx as
|
|
3319
|
+
import { jsx as jsx51, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3345
3320
|
function FormWizardNav({
|
|
3346
3321
|
onNext,
|
|
3347
3322
|
isSubmitting = false,
|
|
@@ -3349,7 +3324,7 @@ function FormWizardNav({
|
|
|
3349
3324
|
}) {
|
|
3350
3325
|
const { canGoBack, goBack, isLastStep } = useFormWizard();
|
|
3351
3326
|
return /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-end gap-3", children: [
|
|
3352
|
-
canGoBack && /* @__PURE__ */
|
|
3327
|
+
canGoBack && /* @__PURE__ */ jsx51(
|
|
3353
3328
|
Button,
|
|
3354
3329
|
{
|
|
3355
3330
|
variant: "secondary",
|
|
@@ -3359,7 +3334,7 @@ function FormWizardNav({
|
|
|
3359
3334
|
children: "Back"
|
|
3360
3335
|
}
|
|
3361
3336
|
),
|
|
3362
|
-
/* @__PURE__ */
|
|
3337
|
+
/* @__PURE__ */ jsx51(
|
|
3363
3338
|
Button,
|
|
3364
3339
|
{
|
|
3365
3340
|
variant: "primary",
|
|
@@ -3413,6 +3388,7 @@ export {
|
|
|
3413
3388
|
MenuSection,
|
|
3414
3389
|
MenuSeparator,
|
|
3415
3390
|
MetricCard,
|
|
3391
|
+
MetricText,
|
|
3416
3392
|
PathPill,
|
|
3417
3393
|
Popover4 as Popover,
|
|
3418
3394
|
PopoverContent,
|
|
@@ -3445,11 +3421,14 @@ export {
|
|
|
3445
3421
|
TabList2 as UnstyledTabList,
|
|
3446
3422
|
TabPanel2 as UnstyledTabPanel,
|
|
3447
3423
|
Tabs2 as UnstyledTabs,
|
|
3424
|
+
buttonBaseClass,
|
|
3448
3425
|
createToastBridge,
|
|
3449
3426
|
iconRegistry,
|
|
3450
3427
|
pillColorFromName,
|
|
3428
|
+
selectedStyles,
|
|
3451
3429
|
useContextMenu,
|
|
3452
3430
|
useFormWizard,
|
|
3453
|
-
useToast
|
|
3431
|
+
useToast,
|
|
3432
|
+
variantStyles
|
|
3454
3433
|
};
|
|
3455
3434
|
//# sourceMappingURL=index.js.map
|