@cytario/design 2.1.1 → 2.2.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.js +198 -195
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -808,6 +808,9 @@ function Dialog({
|
|
|
808
808
|
);
|
|
809
809
|
}
|
|
810
810
|
|
|
811
|
+
// src/components/Dialog/DialogFooter.tsx
|
|
812
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
813
|
+
|
|
811
814
|
// src/components/Toast/Toast.tsx
|
|
812
815
|
import {
|
|
813
816
|
createContext as createContext2,
|
|
@@ -819,7 +822,7 @@ import {
|
|
|
819
822
|
} from "react";
|
|
820
823
|
import { createPortal } from "react-dom";
|
|
821
824
|
import { CheckCircle, XCircle, Info, X as X2 } from "lucide-react";
|
|
822
|
-
import { jsx as
|
|
825
|
+
import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
823
826
|
var ToastContext = createContext2(null);
|
|
824
827
|
var toastCounter = 0;
|
|
825
828
|
var defaultDuration = {
|
|
@@ -890,16 +893,16 @@ function ToastItem({
|
|
|
890
893
|
config.containerClass
|
|
891
894
|
].join(" "),
|
|
892
895
|
children: [
|
|
893
|
-
/* @__PURE__ */
|
|
894
|
-
/* @__PURE__ */
|
|
895
|
-
/* @__PURE__ */
|
|
896
|
+
/* @__PURE__ */ jsx11(IconComponent, { size: 20, className: ["shrink-0 mt-0.5", config.iconClass].join(" "), "aria-hidden": "true" }),
|
|
897
|
+
/* @__PURE__ */ jsx11("p", { className: "flex-1 text-[length:var(--font-size-sm)] font-[number:var(--font-weight-medium)]", children: toast.message }),
|
|
898
|
+
/* @__PURE__ */ jsx11(
|
|
896
899
|
"button",
|
|
897
900
|
{
|
|
898
901
|
type: "button",
|
|
899
902
|
onClick: dismiss,
|
|
900
903
|
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",
|
|
901
904
|
"aria-label": "Dismiss",
|
|
902
|
-
children: /* @__PURE__ */
|
|
905
|
+
children: /* @__PURE__ */ jsx11(X2, { size: 16, "aria-hidden": "true" })
|
|
903
906
|
}
|
|
904
907
|
)
|
|
905
908
|
]
|
|
@@ -919,7 +922,7 @@ function ToastContainer({
|
|
|
919
922
|
}) {
|
|
920
923
|
if (toasts.length === 0) return null;
|
|
921
924
|
return createPortal(
|
|
922
|
-
/* @__PURE__ */
|
|
925
|
+
/* @__PURE__ */ jsx11(PlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsx11("div", { className: containerPositionStyles[placement], children: toasts.map((toast) => /* @__PURE__ */ jsx11(ToastItem, { toast, onRemove: removeToast }, toast.id)) }) }),
|
|
923
926
|
document.body
|
|
924
927
|
);
|
|
925
928
|
}
|
|
@@ -952,7 +955,7 @@ function ToastProvider({ children, bridge, placement = "bottom-right" }) {
|
|
|
952
955
|
}, [bridge, addToast]);
|
|
953
956
|
return /* @__PURE__ */ jsxs8(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
|
|
954
957
|
children,
|
|
955
|
-
/* @__PURE__ */
|
|
958
|
+
/* @__PURE__ */ jsx11(ToastContainer, { toasts, removeToast, placement })
|
|
956
959
|
] });
|
|
957
960
|
}
|
|
958
961
|
function useToast() {
|
|
@@ -968,7 +971,7 @@ function useToast() {
|
|
|
968
971
|
}
|
|
969
972
|
|
|
970
973
|
// src/components/EmptyState/EmptyState.tsx
|
|
971
|
-
import { jsx as
|
|
974
|
+
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
972
975
|
function EmptyState({
|
|
973
976
|
icon,
|
|
974
977
|
title,
|
|
@@ -984,10 +987,10 @@ function EmptyState({
|
|
|
984
987
|
className
|
|
985
988
|
].filter(Boolean).join(" "),
|
|
986
989
|
children: [
|
|
987
|
-
icon && /* @__PURE__ */
|
|
988
|
-
/* @__PURE__ */
|
|
989
|
-
description && /* @__PURE__ */
|
|
990
|
-
action && /* @__PURE__ */
|
|
990
|
+
icon && /* @__PURE__ */ jsx12(Icon, { icon, size: "xl", className: "text-[var(--color-text-tertiary)]" }),
|
|
991
|
+
/* @__PURE__ */ jsx12("h3", { className: "text-[length:var(--font-size-lg)] font-[number:var(--font-weight-semibold)] text-[var(--color-text-primary)] mt-4", children: title }),
|
|
992
|
+
description && /* @__PURE__ */ jsx12("p", { className: "text-sm text-[var(--color-text-secondary)] mt-2 max-w-sm", children: description }),
|
|
993
|
+
action && /* @__PURE__ */ jsx12("div", { className: "mt-6", children: action })
|
|
991
994
|
]
|
|
992
995
|
}
|
|
993
996
|
);
|
|
@@ -998,9 +1001,9 @@ import {
|
|
|
998
1001
|
Checkbox as AriaCheckbox
|
|
999
1002
|
} from "react-aria-components";
|
|
1000
1003
|
import { Check } from "lucide-react";
|
|
1001
|
-
import { Fragment as Fragment3, jsx as
|
|
1004
|
+
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1002
1005
|
function Checkbox({ children, className, ...props }) {
|
|
1003
|
-
return /* @__PURE__ */
|
|
1006
|
+
return /* @__PURE__ */ jsx13(
|
|
1004
1007
|
AriaCheckbox,
|
|
1005
1008
|
{
|
|
1006
1009
|
...props,
|
|
@@ -1020,12 +1023,12 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1020
1023
|
isSelected || isIndeterminate ? "bg-[var(--color-action-primary)] border-[var(--color-action-primary)]" : "bg-[var(--color-surface-default)] border-[var(--color-border-default)] group-hover:border-[var(--color-border-strong)]"
|
|
1021
1024
|
].join(" "),
|
|
1022
1025
|
children: [
|
|
1023
|
-
isSelected && /* @__PURE__ */
|
|
1024
|
-
isIndeterminate && /* @__PURE__ */
|
|
1026
|
+
isSelected && /* @__PURE__ */ jsx13(Check, { className: "w-4 h-4 text-[var(--color-text-inverse)]", strokeWidth: 3 }),
|
|
1027
|
+
isIndeterminate && /* @__PURE__ */ jsx13("div", { className: "w-3 h-0.5 bg-[var(--color-text-inverse)] rounded-full" })
|
|
1025
1028
|
]
|
|
1026
1029
|
}
|
|
1027
1030
|
),
|
|
1028
|
-
children && /* @__PURE__ */
|
|
1031
|
+
children && /* @__PURE__ */ jsx13("span", { children })
|
|
1029
1032
|
] })
|
|
1030
1033
|
}
|
|
1031
1034
|
);
|
|
@@ -1035,7 +1038,7 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1035
1038
|
import {
|
|
1036
1039
|
Switch as AriaSwitch
|
|
1037
1040
|
} from "react-aria-components";
|
|
1038
|
-
import { Fragment as Fragment4, jsx as
|
|
1041
|
+
import { Fragment as Fragment4, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1039
1042
|
var trackColorMap = {
|
|
1040
1043
|
primary: "bg-[var(--color-action-primary)]",
|
|
1041
1044
|
success: "bg-[var(--color-action-success)]",
|
|
@@ -1052,7 +1055,7 @@ function Switch({
|
|
|
1052
1055
|
...props
|
|
1053
1056
|
}) {
|
|
1054
1057
|
const isPreset = isPresetColor(color);
|
|
1055
|
-
return /* @__PURE__ */
|
|
1058
|
+
return /* @__PURE__ */ jsx14(
|
|
1056
1059
|
AriaSwitch,
|
|
1057
1060
|
{
|
|
1058
1061
|
...props,
|
|
@@ -1062,7 +1065,7 @@ function Switch({
|
|
|
1062
1065
|
className
|
|
1063
1066
|
].filter(Boolean).join(" "),
|
|
1064
1067
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs11(Fragment4, { children: [
|
|
1065
|
-
/* @__PURE__ */
|
|
1068
|
+
/* @__PURE__ */ jsx14(
|
|
1066
1069
|
"div",
|
|
1067
1070
|
{
|
|
1068
1071
|
className: [
|
|
@@ -1071,7 +1074,7 @@ function Switch({
|
|
|
1071
1074
|
isSelected && isPreset ? trackColorMap[color] : !isSelected ? "bg-[var(--color-border-strong)]" : ""
|
|
1072
1075
|
].join(" "),
|
|
1073
1076
|
style: isSelected && !isPreset ? { backgroundColor: color } : void 0,
|
|
1074
|
-
children: /* @__PURE__ */
|
|
1077
|
+
children: /* @__PURE__ */ jsx14(
|
|
1075
1078
|
"div",
|
|
1076
1079
|
{
|
|
1077
1080
|
className: [
|
|
@@ -1082,7 +1085,7 @@ function Switch({
|
|
|
1082
1085
|
)
|
|
1083
1086
|
}
|
|
1084
1087
|
),
|
|
1085
|
-
children && /* @__PURE__ */
|
|
1088
|
+
children && /* @__PURE__ */ jsx14("span", { children })
|
|
1086
1089
|
] })
|
|
1087
1090
|
}
|
|
1088
1091
|
);
|
|
@@ -1093,9 +1096,9 @@ import {
|
|
|
1093
1096
|
RadioGroup as AriaRadioGroup,
|
|
1094
1097
|
Radio as AriaRadio
|
|
1095
1098
|
} from "react-aria-components";
|
|
1096
|
-
import { Fragment as Fragment5, jsx as
|
|
1099
|
+
import { Fragment as Fragment5, jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1097
1100
|
function RadioGroup({ children, className, ...props }) {
|
|
1098
|
-
return /* @__PURE__ */
|
|
1101
|
+
return /* @__PURE__ */ jsx15(
|
|
1099
1102
|
AriaRadioGroup,
|
|
1100
1103
|
{
|
|
1101
1104
|
...props,
|
|
@@ -1109,7 +1112,7 @@ function RadioGroup({ children, className, ...props }) {
|
|
|
1109
1112
|
);
|
|
1110
1113
|
}
|
|
1111
1114
|
function Radio({ children, className, ...props }) {
|
|
1112
|
-
return /* @__PURE__ */
|
|
1115
|
+
return /* @__PURE__ */ jsx15(
|
|
1113
1116
|
AriaRadio,
|
|
1114
1117
|
{
|
|
1115
1118
|
...props,
|
|
@@ -1119,7 +1122,7 @@ function Radio({ children, className, ...props }) {
|
|
|
1119
1122
|
className
|
|
1120
1123
|
].filter(Boolean).join(" "),
|
|
1121
1124
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs12(Fragment5, { children: [
|
|
1122
|
-
/* @__PURE__ */
|
|
1125
|
+
/* @__PURE__ */ jsx15(
|
|
1123
1126
|
"div",
|
|
1124
1127
|
{
|
|
1125
1128
|
className: [
|
|
@@ -1128,16 +1131,16 @@ function Radio({ children, className, ...props }) {
|
|
|
1128
1131
|
"group-focus-visible:ring-2 group-focus-visible:ring-[var(--color-border-focus)] group-focus-visible:ring-offset-2",
|
|
1129
1132
|
isSelected ? "border-[var(--color-action-primary)]" : "border-[var(--color-border-default)] group-hover:border-[var(--color-border-strong)]"
|
|
1130
1133
|
].join(" "),
|
|
1131
|
-
children: isSelected && /* @__PURE__ */
|
|
1134
|
+
children: isSelected && /* @__PURE__ */ jsx15("div", { className: "w-2.5 h-2.5 rounded-full bg-[var(--color-action-primary)]" })
|
|
1132
1135
|
}
|
|
1133
1136
|
),
|
|
1134
|
-
children && /* @__PURE__ */
|
|
1137
|
+
children && /* @__PURE__ */ jsx15("span", { children })
|
|
1135
1138
|
] })
|
|
1136
1139
|
}
|
|
1137
1140
|
);
|
|
1138
1141
|
}
|
|
1139
1142
|
function RadioButton({ children, className, ...props }) {
|
|
1140
|
-
return /* @__PURE__ */
|
|
1143
|
+
return /* @__PURE__ */ jsx15(
|
|
1141
1144
|
AriaRadio,
|
|
1142
1145
|
{
|
|
1143
1146
|
...props,
|
|
@@ -1146,7 +1149,7 @@ function RadioButton({ children, className, ...props }) {
|
|
|
1146
1149
|
"disabled:opacity-50 disabled:cursor-default",
|
|
1147
1150
|
className
|
|
1148
1151
|
].filter(Boolean).join(" "),
|
|
1149
|
-
children: ({ isSelected }) => /* @__PURE__ */
|
|
1152
|
+
children: ({ isSelected }) => /* @__PURE__ */ jsx15(
|
|
1150
1153
|
"div",
|
|
1151
1154
|
{
|
|
1152
1155
|
className: [
|
|
@@ -1166,7 +1169,7 @@ function RadioButton({ children, className, ...props }) {
|
|
|
1166
1169
|
import {
|
|
1167
1170
|
Label as AriaLabel
|
|
1168
1171
|
} from "react-aria-components";
|
|
1169
|
-
import { jsx as
|
|
1172
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1170
1173
|
function Label3({ isRequired, children, className, ...props }) {
|
|
1171
1174
|
return /* @__PURE__ */ jsxs13(
|
|
1172
1175
|
AriaLabel,
|
|
@@ -1180,7 +1183,7 @@ function Label3({ isRequired, children, className, ...props }) {
|
|
|
1180
1183
|
].filter(Boolean).join(" "),
|
|
1181
1184
|
children: [
|
|
1182
1185
|
children,
|
|
1183
|
-
isRequired && /* @__PURE__ */
|
|
1186
|
+
isRequired && /* @__PURE__ */ jsx16(
|
|
1184
1187
|
"span",
|
|
1185
1188
|
{
|
|
1186
1189
|
"aria-hidden": "true",
|
|
@@ -1194,7 +1197,7 @@ function Label3({ isRequired, children, className, ...props }) {
|
|
|
1194
1197
|
}
|
|
1195
1198
|
|
|
1196
1199
|
// src/components/Field/Field.tsx
|
|
1197
|
-
import { jsx as
|
|
1200
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1198
1201
|
function getErrorMessage(error) {
|
|
1199
1202
|
if (!error) return void 0;
|
|
1200
1203
|
if (typeof error === "string") return error;
|
|
@@ -1214,17 +1217,17 @@ function Field({
|
|
|
1214
1217
|
{
|
|
1215
1218
|
className: ["flex flex-col gap-[var(--spacing-1)]", className].filter(Boolean).join(" "),
|
|
1216
1219
|
children: [
|
|
1217
|
-
label && /* @__PURE__ */
|
|
1220
|
+
label && /* @__PURE__ */ jsx17(Label3, { isRequired, children: label }),
|
|
1218
1221
|
children,
|
|
1219
|
-
description && !errorMessage && /* @__PURE__ */
|
|
1220
|
-
errorMessage && /* @__PURE__ */
|
|
1222
|
+
description && !errorMessage && /* @__PURE__ */ jsx17("p", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)]", children: description }),
|
|
1223
|
+
errorMessage && /* @__PURE__ */ jsx17("p", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-danger)]", children: errorMessage })
|
|
1221
1224
|
]
|
|
1222
1225
|
}
|
|
1223
1226
|
);
|
|
1224
1227
|
}
|
|
1225
1228
|
|
|
1226
1229
|
// src/components/Fieldset/Fieldset.tsx
|
|
1227
|
-
import { jsx as
|
|
1230
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1228
1231
|
function Fieldset({ legend, children, className }) {
|
|
1229
1232
|
return /* @__PURE__ */ jsxs15(
|
|
1230
1233
|
"fieldset",
|
|
@@ -1235,7 +1238,7 @@ function Fieldset({ legend, children, className }) {
|
|
|
1235
1238
|
className
|
|
1236
1239
|
].filter(Boolean).join(" "),
|
|
1237
1240
|
children: [
|
|
1238
|
-
legend && /* @__PURE__ */
|
|
1241
|
+
legend && /* @__PURE__ */ jsx18(
|
|
1239
1242
|
"legend",
|
|
1240
1243
|
{
|
|
1241
1244
|
className: [
|
|
@@ -1255,18 +1258,18 @@ function Fieldset({ legend, children, className }) {
|
|
|
1255
1258
|
|
|
1256
1259
|
// src/components/InputGroup/InputGroup.tsx
|
|
1257
1260
|
import React from "react";
|
|
1258
|
-
import { jsx as
|
|
1261
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1259
1262
|
function InputGroup({ children, className }) {
|
|
1260
1263
|
const childArray = React.Children.toArray(children).filter(
|
|
1261
1264
|
React.isValidElement
|
|
1262
1265
|
);
|
|
1263
|
-
return /* @__PURE__ */
|
|
1266
|
+
return /* @__PURE__ */ jsx19(
|
|
1264
1267
|
"div",
|
|
1265
1268
|
{
|
|
1266
1269
|
className: ["flex items-stretch", className].filter(Boolean).join(" "),
|
|
1267
1270
|
children: childArray.map((child, index) => {
|
|
1268
1271
|
const position = childArray.length === 1 ? "standalone" : index === 0 ? "start" : index === childArray.length - 1 ? "end" : "middle";
|
|
1269
|
-
return /* @__PURE__ */
|
|
1272
|
+
return /* @__PURE__ */ jsx19(
|
|
1270
1273
|
InputGroupContext.Provider,
|
|
1271
1274
|
{
|
|
1272
1275
|
value: { inGroup: true, position },
|
|
@@ -1280,7 +1283,7 @@ function InputGroup({ children, className }) {
|
|
|
1280
1283
|
}
|
|
1281
1284
|
|
|
1282
1285
|
// src/components/InputAddon/InputAddon.tsx
|
|
1283
|
-
import { jsx as
|
|
1286
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1284
1287
|
function groupRadiusClass3(position) {
|
|
1285
1288
|
switch (position) {
|
|
1286
1289
|
case "start":
|
|
@@ -1297,7 +1300,7 @@ function InputAddon({ children, className }) {
|
|
|
1297
1300
|
const { inGroup, position } = useInputGroup();
|
|
1298
1301
|
const radiusClass = inGroup ? groupRadiusClass3(position) : "rounded-[var(--border-radius-md)]";
|
|
1299
1302
|
const marginClass = inGroup && position !== "start" && position !== "standalone" ? "-ml-px" : "";
|
|
1300
|
-
return /* @__PURE__ */
|
|
1303
|
+
return /* @__PURE__ */ jsx20(
|
|
1301
1304
|
"div",
|
|
1302
1305
|
{
|
|
1303
1306
|
className: [
|
|
@@ -1317,7 +1320,7 @@ function InputAddon({ children, className }) {
|
|
|
1317
1320
|
|
|
1318
1321
|
// src/components/Heading/Heading.tsx
|
|
1319
1322
|
import { twMerge as twMerge2 } from "tailwind-merge";
|
|
1320
|
-
import { jsx as
|
|
1323
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1321
1324
|
var defaultSizeMap = {
|
|
1322
1325
|
h1: "2xl",
|
|
1323
1326
|
h2: "xl",
|
|
@@ -1347,7 +1350,7 @@ function Heading2({
|
|
|
1347
1350
|
children
|
|
1348
1351
|
}) {
|
|
1349
1352
|
const resolvedSize = size ?? defaultSizeMap[Tag];
|
|
1350
|
-
return /* @__PURE__ */
|
|
1353
|
+
return /* @__PURE__ */ jsx21(
|
|
1351
1354
|
Tag,
|
|
1352
1355
|
{
|
|
1353
1356
|
className: twMerge2(
|
|
@@ -1361,7 +1364,7 @@ function Heading2({
|
|
|
1361
1364
|
);
|
|
1362
1365
|
}
|
|
1363
1366
|
function H1(props) {
|
|
1364
|
-
return /* @__PURE__ */
|
|
1367
|
+
return /* @__PURE__ */ jsx21(
|
|
1365
1368
|
Heading2,
|
|
1366
1369
|
{
|
|
1367
1370
|
...props,
|
|
@@ -1372,17 +1375,17 @@ function H1(props) {
|
|
|
1372
1375
|
);
|
|
1373
1376
|
}
|
|
1374
1377
|
function H2(props) {
|
|
1375
|
-
return /* @__PURE__ */
|
|
1378
|
+
return /* @__PURE__ */ jsx21(Heading2, { ...props, as: "h2", size: props.size ?? "xl" });
|
|
1376
1379
|
}
|
|
1377
1380
|
function H3(props) {
|
|
1378
|
-
return /* @__PURE__ */
|
|
1381
|
+
return /* @__PURE__ */ jsx21(Heading2, { ...props, as: "h3", size: props.size ?? "lg" });
|
|
1379
1382
|
}
|
|
1380
1383
|
|
|
1381
1384
|
// src/components/Link/Link.tsx
|
|
1382
1385
|
import {
|
|
1383
1386
|
Link as AriaLink
|
|
1384
1387
|
} from "react-aria-components";
|
|
1385
|
-
import { jsx as
|
|
1388
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1386
1389
|
var variantStyles2 = {
|
|
1387
1390
|
default: [
|
|
1388
1391
|
"text-[var(--color-teal-700)] underline",
|
|
@@ -1398,7 +1401,7 @@ function Link({
|
|
|
1398
1401
|
className,
|
|
1399
1402
|
...props
|
|
1400
1403
|
}) {
|
|
1401
|
-
return /* @__PURE__ */
|
|
1404
|
+
return /* @__PURE__ */ jsx22(
|
|
1402
1405
|
AriaLink,
|
|
1403
1406
|
{
|
|
1404
1407
|
...props,
|
|
@@ -1419,20 +1422,20 @@ import {
|
|
|
1419
1422
|
Link as Link2
|
|
1420
1423
|
} from "react-aria-components";
|
|
1421
1424
|
import { ChevronRight } from "lucide-react";
|
|
1422
|
-
import { Fragment as Fragment6, jsx as
|
|
1425
|
+
import { Fragment as Fragment6, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1423
1426
|
function Breadcrumbs({ items, className }) {
|
|
1424
|
-
return /* @__PURE__ */
|
|
1427
|
+
return /* @__PURE__ */ jsx23(
|
|
1425
1428
|
"nav",
|
|
1426
1429
|
{
|
|
1427
1430
|
"aria-label": "Breadcrumb",
|
|
1428
1431
|
className,
|
|
1429
|
-
children: /* @__PURE__ */
|
|
1432
|
+
children: /* @__PURE__ */ jsx23(
|
|
1430
1433
|
AriaBreadcrumbs,
|
|
1431
1434
|
{
|
|
1432
1435
|
className: "flex items-center gap-1 text-sm min-w-0",
|
|
1433
1436
|
children: items.map((item, index) => {
|
|
1434
1437
|
const isLast = index === items.length - 1;
|
|
1435
|
-
return /* @__PURE__ */
|
|
1438
|
+
return /* @__PURE__ */ jsx23(
|
|
1436
1439
|
AriaBreadcrumb,
|
|
1437
1440
|
{
|
|
1438
1441
|
id: item.id,
|
|
@@ -1440,8 +1443,8 @@ function Breadcrumbs({ items, className }) {
|
|
|
1440
1443
|
"flex items-center gap-1",
|
|
1441
1444
|
isLast ? "min-w-0" : "shrink-0"
|
|
1442
1445
|
].join(" "),
|
|
1443
|
-
children: isLast ? /* @__PURE__ */
|
|
1444
|
-
/* @__PURE__ */
|
|
1446
|
+
children: isLast ? /* @__PURE__ */ jsx23("span", { className: "font-[number:var(--font-weight-medium)] text-[var(--color-text-primary)] truncate", children: item.label }) : /* @__PURE__ */ jsxs16(Fragment6, { children: [
|
|
1447
|
+
/* @__PURE__ */ jsx23(
|
|
1445
1448
|
Link2,
|
|
1446
1449
|
{
|
|
1447
1450
|
href: item.href,
|
|
@@ -1449,7 +1452,7 @@ function Breadcrumbs({ items, className }) {
|
|
|
1449
1452
|
children: item.label
|
|
1450
1453
|
}
|
|
1451
1454
|
),
|
|
1452
|
-
/* @__PURE__ */
|
|
1455
|
+
/* @__PURE__ */ jsx23(
|
|
1453
1456
|
ChevronRight,
|
|
1454
1457
|
{
|
|
1455
1458
|
className: "shrink-0 text-[var(--color-neutral-400)]",
|
|
@@ -1473,7 +1476,7 @@ import {
|
|
|
1473
1476
|
Link as AriaLink2
|
|
1474
1477
|
} from "react-aria-components";
|
|
1475
1478
|
import { twMerge as twMerge3 } from "tailwind-merge";
|
|
1476
|
-
import { jsx as
|
|
1479
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1477
1480
|
var iconSizeMap3 = {
|
|
1478
1481
|
sm: "sm",
|
|
1479
1482
|
md: "sm",
|
|
@@ -1504,9 +1507,9 @@ function ButtonLink({
|
|
|
1504
1507
|
className
|
|
1505
1508
|
),
|
|
1506
1509
|
children: [
|
|
1507
|
-
iconLeft && /* @__PURE__ */
|
|
1510
|
+
iconLeft && /* @__PURE__ */ jsx24(Icon, { icon: iconLeft, size: iconSizeMap3[size] }),
|
|
1508
1511
|
children,
|
|
1509
|
-
iconRight && /* @__PURE__ */
|
|
1512
|
+
iconRight && /* @__PURE__ */ jsx24(Icon, { icon: iconRight, size: iconSizeMap3[size] })
|
|
1510
1513
|
]
|
|
1511
1514
|
}
|
|
1512
1515
|
);
|
|
@@ -1526,7 +1529,7 @@ function IconButtonLink({
|
|
|
1526
1529
|
className,
|
|
1527
1530
|
...props
|
|
1528
1531
|
}) {
|
|
1529
|
-
const link = /* @__PURE__ */
|
|
1532
|
+
const link = /* @__PURE__ */ jsx24(
|
|
1530
1533
|
AriaLink2,
|
|
1531
1534
|
{
|
|
1532
1535
|
...props,
|
|
@@ -1540,11 +1543,11 @@ function IconButtonLink({
|
|
|
1540
1543
|
squareSizeStyles2[size],
|
|
1541
1544
|
className
|
|
1542
1545
|
),
|
|
1543
|
-
children: /* @__PURE__ */
|
|
1546
|
+
children: /* @__PURE__ */ jsx24(Icon, { icon, size: iconSizeMap3[size] })
|
|
1544
1547
|
}
|
|
1545
1548
|
);
|
|
1546
1549
|
if (showTooltip) {
|
|
1547
|
-
return /* @__PURE__ */
|
|
1550
|
+
return /* @__PURE__ */ jsx24(Tooltip, { content: ariaLabel, placement: tooltipPlacement, children: link });
|
|
1548
1551
|
}
|
|
1549
1552
|
return link;
|
|
1550
1553
|
}
|
|
@@ -1554,7 +1557,7 @@ import {
|
|
|
1554
1557
|
ToggleButton as AriaToggleButton
|
|
1555
1558
|
} from "react-aria-components";
|
|
1556
1559
|
import { twMerge as twMerge4 } from "tailwind-merge";
|
|
1557
|
-
import { jsx as
|
|
1560
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1558
1561
|
var sizeStyles4 = {
|
|
1559
1562
|
sm: "px-3 py-1.5 text-sm",
|
|
1560
1563
|
md: "px-4 py-2 text-base",
|
|
@@ -1603,7 +1606,7 @@ function ToggleButton({
|
|
|
1603
1606
|
...props
|
|
1604
1607
|
}) {
|
|
1605
1608
|
const styles = variantStyles3[variant];
|
|
1606
|
-
return /* @__PURE__ */
|
|
1609
|
+
return /* @__PURE__ */ jsx25(
|
|
1607
1610
|
AriaToggleButton,
|
|
1608
1611
|
{
|
|
1609
1612
|
...props,
|
|
@@ -1630,7 +1633,7 @@ import {
|
|
|
1630
1633
|
RadioGroup as AriaRadioGroup2,
|
|
1631
1634
|
Radio as AriaRadio2
|
|
1632
1635
|
} from "react-aria-components";
|
|
1633
|
-
import { jsx as
|
|
1636
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1634
1637
|
var ToggleButtonGroupContext = createContext3({
|
|
1635
1638
|
size: "md"
|
|
1636
1639
|
});
|
|
@@ -1650,7 +1653,7 @@ function ToggleButtonGroup({
|
|
|
1650
1653
|
children,
|
|
1651
1654
|
...props
|
|
1652
1655
|
}) {
|
|
1653
|
-
return /* @__PURE__ */
|
|
1656
|
+
return /* @__PURE__ */ jsx26(ToggleButtonGroupContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx26(
|
|
1654
1657
|
AriaRadioGroup2,
|
|
1655
1658
|
{
|
|
1656
1659
|
...props,
|
|
@@ -1670,7 +1673,7 @@ function ToggleButtonGroupItem({
|
|
|
1670
1673
|
...props
|
|
1671
1674
|
}) {
|
|
1672
1675
|
const { size } = useContext3(ToggleButtonGroupContext);
|
|
1673
|
-
return /* @__PURE__ */
|
|
1676
|
+
return /* @__PURE__ */ jsx26(
|
|
1674
1677
|
AriaRadio2,
|
|
1675
1678
|
{
|
|
1676
1679
|
...props,
|
|
@@ -1702,7 +1705,7 @@ import {
|
|
|
1702
1705
|
MenuItem as AriaMenuItem,
|
|
1703
1706
|
Popover as Popover2
|
|
1704
1707
|
} from "react-aria-components";
|
|
1705
|
-
import { jsx as
|
|
1708
|
+
import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1706
1709
|
var popoverStyles = [
|
|
1707
1710
|
"bg-[var(--color-surface-default)] rounded-[var(--border-radius-md)]",
|
|
1708
1711
|
"shadow-lg border border-[var(--color-border-default)]",
|
|
@@ -1724,11 +1727,11 @@ function Menu({
|
|
|
1724
1727
|
const selectionProps = selectionMode && selectionMode !== "none" ? { selectionMode, selectedKeys, defaultSelectedKeys, onSelectionChange } : {};
|
|
1725
1728
|
return /* @__PURE__ */ jsxs18(MenuTrigger, { children: [
|
|
1726
1729
|
children,
|
|
1727
|
-
/* @__PURE__ */
|
|
1730
|
+
/* @__PURE__ */ jsx27(
|
|
1728
1731
|
Popover2,
|
|
1729
1732
|
{
|
|
1730
1733
|
className: [popoverStyles, className].filter(Boolean).join(" "),
|
|
1731
|
-
children: items ? /* @__PURE__ */
|
|
1734
|
+
children: items ? /* @__PURE__ */ jsx27(
|
|
1732
1735
|
AriaMenu,
|
|
1733
1736
|
{
|
|
1734
1737
|
items,
|
|
@@ -1755,14 +1758,14 @@ function Menu({
|
|
|
1755
1758
|
item.isDanger ? "text-[var(--color-text-danger)]" : "text-[var(--color-text-primary)]"
|
|
1756
1759
|
].filter(Boolean).join(" "),
|
|
1757
1760
|
children: [
|
|
1758
|
-
item.icon && /* @__PURE__ */
|
|
1759
|
-
/* @__PURE__ */
|
|
1760
|
-
item.endContent && /* @__PURE__ */
|
|
1761
|
+
item.icon && /* @__PURE__ */ jsx27(Icon, { icon: item.icon, size: "sm" }),
|
|
1762
|
+
/* @__PURE__ */ jsx27("span", { className: "flex-1", children: item.label }),
|
|
1763
|
+
item.endContent && /* @__PURE__ */ jsx27("span", { className: "ml-auto flex items-center", children: item.endContent })
|
|
1761
1764
|
]
|
|
1762
1765
|
}
|
|
1763
1766
|
)
|
|
1764
1767
|
}
|
|
1765
|
-
) : /* @__PURE__ */
|
|
1768
|
+
) : /* @__PURE__ */ jsx27(
|
|
1766
1769
|
AriaMenu,
|
|
1767
1770
|
{
|
|
1768
1771
|
onAction: (key) => onAction?.(key),
|
|
@@ -1778,7 +1781,7 @@ function Menu({
|
|
|
1778
1781
|
|
|
1779
1782
|
// src/components/Menu/MenuItem.tsx
|
|
1780
1783
|
import { MenuItem as AriaMenuItem2 } from "react-aria-components";
|
|
1781
|
-
import { jsx as
|
|
1784
|
+
import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1782
1785
|
function MenuItem({
|
|
1783
1786
|
id,
|
|
1784
1787
|
children,
|
|
@@ -1811,9 +1814,9 @@ function MenuItem({
|
|
|
1811
1814
|
className
|
|
1812
1815
|
].filter(Boolean).join(" "),
|
|
1813
1816
|
children: [
|
|
1814
|
-
icon && /* @__PURE__ */
|
|
1815
|
-
/* @__PURE__ */
|
|
1816
|
-
endContent && /* @__PURE__ */
|
|
1817
|
+
icon && /* @__PURE__ */ jsx28(Icon, { icon, size: "sm" }),
|
|
1818
|
+
/* @__PURE__ */ jsx28("span", { className: "flex-1", children }),
|
|
1819
|
+
endContent && /* @__PURE__ */ jsx28("span", { className: "ml-auto flex items-center", children: endContent })
|
|
1817
1820
|
]
|
|
1818
1821
|
}
|
|
1819
1822
|
);
|
|
@@ -1822,7 +1825,7 @@ function MenuItem({
|
|
|
1822
1825
|
// src/components/Menu/MenuCheckboxItem.tsx
|
|
1823
1826
|
import { MenuItem as AriaMenuItem3 } from "react-aria-components";
|
|
1824
1827
|
import { Check as Check2 } from "lucide-react";
|
|
1825
|
-
import { Fragment as Fragment7, jsx as
|
|
1828
|
+
import { Fragment as Fragment7, jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1826
1829
|
function MenuCheckboxItem({
|
|
1827
1830
|
id,
|
|
1828
1831
|
children,
|
|
@@ -1830,7 +1833,7 @@ function MenuCheckboxItem({
|
|
|
1830
1833
|
isDisabled,
|
|
1831
1834
|
className
|
|
1832
1835
|
}) {
|
|
1833
|
-
return /* @__PURE__ */
|
|
1836
|
+
return /* @__PURE__ */ jsx29(
|
|
1834
1837
|
AriaMenuItem3,
|
|
1835
1838
|
{
|
|
1836
1839
|
id,
|
|
@@ -1847,8 +1850,8 @@ function MenuCheckboxItem({
|
|
|
1847
1850
|
className
|
|
1848
1851
|
].filter(Boolean).join(" "),
|
|
1849
1852
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs20(Fragment7, { children: [
|
|
1850
|
-
/* @__PURE__ */
|
|
1851
|
-
/* @__PURE__ */
|
|
1853
|
+
/* @__PURE__ */ jsx29("span", { className: "flex items-center justify-center w-4 h-4 shrink-0", children: isSelected && /* @__PURE__ */ jsx29(Check2, { size: 14, className: "text-[var(--color-action-primary)]", "aria-hidden": "true" }) }),
|
|
1854
|
+
/* @__PURE__ */ jsx29("span", { className: "flex-1", children })
|
|
1852
1855
|
] })
|
|
1853
1856
|
}
|
|
1854
1857
|
);
|
|
@@ -1859,7 +1862,7 @@ import {
|
|
|
1859
1862
|
MenuSection as AriaMenuSection,
|
|
1860
1863
|
Header
|
|
1861
1864
|
} from "react-aria-components";
|
|
1862
|
-
import { jsx as
|
|
1865
|
+
import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1863
1866
|
function MenuSection({
|
|
1864
1867
|
header,
|
|
1865
1868
|
children,
|
|
@@ -1867,7 +1870,7 @@ function MenuSection({
|
|
|
1867
1870
|
className
|
|
1868
1871
|
}) {
|
|
1869
1872
|
return /* @__PURE__ */ jsxs21(AriaMenuSection, { className, "aria-label": ariaLabel, children: [
|
|
1870
|
-
header && /* @__PURE__ */
|
|
1873
|
+
header && /* @__PURE__ */ jsx30(
|
|
1871
1874
|
Header,
|
|
1872
1875
|
{
|
|
1873
1876
|
className: [
|
|
@@ -1886,16 +1889,16 @@ function MenuSection({
|
|
|
1886
1889
|
|
|
1887
1890
|
// src/components/Menu/MenuHeader.tsx
|
|
1888
1891
|
import { Header as Header2 } from "react-aria-components";
|
|
1889
|
-
import { jsx as
|
|
1892
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1890
1893
|
function MenuHeader({ children, className }) {
|
|
1891
|
-
return /* @__PURE__ */
|
|
1894
|
+
return /* @__PURE__ */ jsx31(Header2, { className, children });
|
|
1892
1895
|
}
|
|
1893
1896
|
|
|
1894
1897
|
// src/components/Menu/MenuSeparator.tsx
|
|
1895
1898
|
import { Separator } from "react-aria-components";
|
|
1896
|
-
import { jsx as
|
|
1899
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1897
1900
|
function MenuSeparator({ className }) {
|
|
1898
|
-
return /* @__PURE__ */
|
|
1901
|
+
return /* @__PURE__ */ jsx32(
|
|
1899
1902
|
Separator,
|
|
1900
1903
|
{
|
|
1901
1904
|
className: [
|
|
@@ -1913,12 +1916,12 @@ import {
|
|
|
1913
1916
|
Dialog as AriaDialog2,
|
|
1914
1917
|
Button as AriaButton3
|
|
1915
1918
|
} from "react-aria-components";
|
|
1916
|
-
import { Fragment as Fragment8, jsx as
|
|
1919
|
+
import { Fragment as Fragment8, jsx as jsx33 } from "react/jsx-runtime";
|
|
1917
1920
|
function Popover3({ children, isOpen, onOpenChange }) {
|
|
1918
|
-
return /* @__PURE__ */
|
|
1921
|
+
return /* @__PURE__ */ jsx33(DialogTrigger, { isOpen, onOpenChange, children });
|
|
1919
1922
|
}
|
|
1920
1923
|
function PopoverTrigger({ children, className }) {
|
|
1921
|
-
return /* @__PURE__ */
|
|
1924
|
+
return /* @__PURE__ */ jsx33(
|
|
1922
1925
|
AriaButton3,
|
|
1923
1926
|
{
|
|
1924
1927
|
className: [
|
|
@@ -1936,7 +1939,7 @@ function PopoverContent({
|
|
|
1936
1939
|
className,
|
|
1937
1940
|
children
|
|
1938
1941
|
}) {
|
|
1939
|
-
return /* @__PURE__ */
|
|
1942
|
+
return /* @__PURE__ */ jsx33(
|
|
1940
1943
|
AriaPopover,
|
|
1941
1944
|
{
|
|
1942
1945
|
placement,
|
|
@@ -1953,7 +1956,7 @@ function PopoverContent({
|
|
|
1953
1956
|
"entering:placement-right:slide-in-from-left-1",
|
|
1954
1957
|
className
|
|
1955
1958
|
].filter(Boolean).join(" "),
|
|
1956
|
-
children: /* @__PURE__ */
|
|
1959
|
+
children: /* @__PURE__ */ jsx33(AriaDialog2, { className: "outline-none", children: ({ close }) => /* @__PURE__ */ jsx33(Fragment8, { children: typeof children === "function" ? children({ close }) : children }) })
|
|
1957
1960
|
}
|
|
1958
1961
|
);
|
|
1959
1962
|
}
|
|
@@ -1967,7 +1970,7 @@ import {
|
|
|
1967
1970
|
Tab as AriaTab,
|
|
1968
1971
|
TabPanel as AriaTabPanel
|
|
1969
1972
|
} from "react-aria-components";
|
|
1970
|
-
import { jsx as
|
|
1973
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1971
1974
|
var TabsContext = createContext4({
|
|
1972
1975
|
variant: "underline",
|
|
1973
1976
|
size: "md"
|
|
@@ -1985,7 +1988,7 @@ function Tabs({
|
|
|
1985
1988
|
children,
|
|
1986
1989
|
...props
|
|
1987
1990
|
}) {
|
|
1988
|
-
return /* @__PURE__ */
|
|
1991
|
+
return /* @__PURE__ */ jsx34(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx34(
|
|
1989
1992
|
AriaTabs,
|
|
1990
1993
|
{
|
|
1991
1994
|
...props,
|
|
@@ -2005,7 +2008,7 @@ function TabList({
|
|
|
2005
2008
|
const { variant } = useContext4(TabsContext);
|
|
2006
2009
|
const baseStyles = variant === "unstyled" ? "flex items-center" : variant === "underline" ? "flex items-center border-b border-[var(--color-border-default)]" : "inline-flex items-center bg-[var(--color-surface-muted)] rounded-[var(--border-radius-lg)] p-1 gap-1";
|
|
2007
2010
|
const verticalStyles = variant === "unstyled" ? "flex-col" : variant === "underline" ? "flex-col border-b-0 border-r border-[var(--color-border-default)]" : "flex-col";
|
|
2008
|
-
return /* @__PURE__ */
|
|
2011
|
+
return /* @__PURE__ */ jsx34(
|
|
2009
2012
|
AriaTabList,
|
|
2010
2013
|
{
|
|
2011
2014
|
...props,
|
|
@@ -2019,7 +2022,7 @@ function TabList({
|
|
|
2019
2022
|
}
|
|
2020
2023
|
function Tab({ className, ...props }) {
|
|
2021
2024
|
const { variant, size } = useContext4(TabsContext);
|
|
2022
|
-
return /* @__PURE__ */
|
|
2025
|
+
return /* @__PURE__ */ jsx34(
|
|
2023
2026
|
AriaTab,
|
|
2024
2027
|
{
|
|
2025
2028
|
...props,
|
|
@@ -2076,7 +2079,7 @@ function getTabVariantStyles(variant, state) {
|
|
|
2076
2079
|
}
|
|
2077
2080
|
function TabPanel({ className, ...props }) {
|
|
2078
2081
|
const { variant } = useContext4(TabsContext);
|
|
2079
|
-
return /* @__PURE__ */
|
|
2082
|
+
return /* @__PURE__ */ jsx34(
|
|
2080
2083
|
AriaTabPanel,
|
|
2081
2084
|
{
|
|
2082
2085
|
...props,
|
|
@@ -2101,7 +2104,7 @@ import { useCallback as useCallback2, useImperativeHandle, useRef as useRef2, us
|
|
|
2101
2104
|
import { Tree as ArboristTree } from "react-arborist";
|
|
2102
2105
|
import { ChevronRight as ChevronRight2, Folder, File } from "lucide-react";
|
|
2103
2106
|
import { Check as Check3 } from "lucide-react";
|
|
2104
|
-
import { jsx as
|
|
2107
|
+
import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2105
2108
|
var rowHeightMap = {
|
|
2106
2109
|
compact: 32,
|
|
2107
2110
|
comfortable: 40
|
|
@@ -2159,7 +2162,7 @@ function NodeRenderer({
|
|
|
2159
2162
|
}
|
|
2160
2163
|
},
|
|
2161
2164
|
children: [
|
|
2162
|
-
/* @__PURE__ */
|
|
2165
|
+
/* @__PURE__ */ jsx35(
|
|
2163
2166
|
"button",
|
|
2164
2167
|
{
|
|
2165
2168
|
type: "button",
|
|
@@ -2177,7 +2180,7 @@ function NodeRenderer({
|
|
|
2177
2180
|
},
|
|
2178
2181
|
tabIndex: -1,
|
|
2179
2182
|
"aria-label": node.isOpen ? "Collapse" : "Expand",
|
|
2180
|
-
children: /* @__PURE__ */
|
|
2183
|
+
children: /* @__PURE__ */ jsx35(
|
|
2181
2184
|
ChevronRight2,
|
|
2182
2185
|
{
|
|
2183
2186
|
size: 14,
|
|
@@ -2189,7 +2192,7 @@ function NodeRenderer({
|
|
|
2189
2192
|
)
|
|
2190
2193
|
}
|
|
2191
2194
|
),
|
|
2192
|
-
isCheckbox && /* @__PURE__ */
|
|
2195
|
+
isCheckbox && /* @__PURE__ */ jsx35(
|
|
2193
2196
|
"div",
|
|
2194
2197
|
{
|
|
2195
2198
|
className: [
|
|
@@ -2200,7 +2203,7 @@ function NodeRenderer({
|
|
|
2200
2203
|
role: "checkbox",
|
|
2201
2204
|
"aria-checked": isChecked,
|
|
2202
2205
|
"aria-label": `Select ${data.name}`,
|
|
2203
|
-
children: isChecked && /* @__PURE__ */
|
|
2206
|
+
children: isChecked && /* @__PURE__ */ jsx35(
|
|
2204
2207
|
Check3,
|
|
2205
2208
|
{
|
|
2206
2209
|
className: "w-3 h-3 text-[var(--color-text-inverse)]",
|
|
@@ -2209,7 +2212,7 @@ function NodeRenderer({
|
|
|
2209
2212
|
)
|
|
2210
2213
|
}
|
|
2211
2214
|
),
|
|
2212
|
-
/* @__PURE__ */
|
|
2215
|
+
/* @__PURE__ */ jsx35(
|
|
2213
2216
|
IconComponent,
|
|
2214
2217
|
{
|
|
2215
2218
|
size: 16,
|
|
@@ -2217,7 +2220,7 @@ function NodeRenderer({
|
|
|
2217
2220
|
"aria-hidden": "true"
|
|
2218
2221
|
}
|
|
2219
2222
|
),
|
|
2220
|
-
/* @__PURE__ */
|
|
2223
|
+
/* @__PURE__ */ jsx35("span", { className: "truncate", children: data.name })
|
|
2221
2224
|
]
|
|
2222
2225
|
}
|
|
2223
2226
|
);
|
|
@@ -2283,13 +2286,13 @@ function Tree({
|
|
|
2283
2286
|
);
|
|
2284
2287
|
const arboristSearchMatch = searchMatch ? (node, term) => searchMatch(node.data, term) : void 0;
|
|
2285
2288
|
const selectionProp = selectionMode === "single" && selectedIds && selectedIds.size > 0 ? [...selectedIds][0] : void 0;
|
|
2286
|
-
return /* @__PURE__ */
|
|
2289
|
+
return /* @__PURE__ */ jsx35(
|
|
2287
2290
|
"div",
|
|
2288
2291
|
{
|
|
2289
2292
|
role: "tree",
|
|
2290
2293
|
"aria-label": ariaLabel,
|
|
2291
2294
|
className: ["outline-none overflow-hidden", className].filter(Boolean).join(" "),
|
|
2292
|
-
children: /* @__PURE__ */
|
|
2295
|
+
children: /* @__PURE__ */ jsx35(
|
|
2293
2296
|
ArboristTree,
|
|
2294
2297
|
{
|
|
2295
2298
|
ref: internalRef,
|
|
@@ -2308,7 +2311,7 @@ function Tree({
|
|
|
2308
2311
|
onSelect: handleSelect,
|
|
2309
2312
|
onActivate: handleActivate,
|
|
2310
2313
|
disableEdit: true,
|
|
2311
|
-
children: (props) => /* @__PURE__ */
|
|
2314
|
+
children: (props) => /* @__PURE__ */ jsx35(
|
|
2312
2315
|
NodeRenderer,
|
|
2313
2316
|
{
|
|
2314
2317
|
...props,
|
|
@@ -2333,7 +2336,7 @@ import {
|
|
|
2333
2336
|
ToggleButtonGroup as AriaToggleButtonGroup,
|
|
2334
2337
|
ToggleButton as AriaToggleButton2
|
|
2335
2338
|
} from "react-aria-components";
|
|
2336
|
-
import { jsx as
|
|
2339
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2337
2340
|
var SegmentedControlContext = createContext5({
|
|
2338
2341
|
size: "md"
|
|
2339
2342
|
});
|
|
@@ -2353,7 +2356,7 @@ function SegmentedControl({
|
|
|
2353
2356
|
...props
|
|
2354
2357
|
}) {
|
|
2355
2358
|
const isNoneMode = selectionMode === "none";
|
|
2356
|
-
return /* @__PURE__ */
|
|
2359
|
+
return /* @__PURE__ */ jsx36(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx36(
|
|
2357
2360
|
AriaToggleButtonGroup,
|
|
2358
2361
|
{
|
|
2359
2362
|
...props,
|
|
@@ -2374,7 +2377,7 @@ function SegmentedControlItem({
|
|
|
2374
2377
|
...props
|
|
2375
2378
|
}) {
|
|
2376
2379
|
const { size } = useContext5(SegmentedControlContext);
|
|
2377
|
-
return /* @__PURE__ */
|
|
2380
|
+
return /* @__PURE__ */ jsx36(
|
|
2378
2381
|
AriaToggleButton2,
|
|
2379
2382
|
{
|
|
2380
2383
|
...props,
|
|
@@ -2408,7 +2411,7 @@ import {
|
|
|
2408
2411
|
Info as Info2,
|
|
2409
2412
|
Microscope
|
|
2410
2413
|
} from "lucide-react";
|
|
2411
|
-
import { Fragment as Fragment9, jsx as
|
|
2414
|
+
import { Fragment as Fragment9, jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2412
2415
|
function getFileIcon(type, extension) {
|
|
2413
2416
|
if (type === "directory") return Folder2;
|
|
2414
2417
|
const ext = (extension ?? "").toLowerCase();
|
|
@@ -2434,7 +2437,7 @@ function FileIcon({
|
|
|
2434
2437
|
size = 16
|
|
2435
2438
|
}) {
|
|
2436
2439
|
const IconComponent = getFileIcon(type, extension);
|
|
2437
|
-
return /* @__PURE__ */
|
|
2440
|
+
return /* @__PURE__ */ jsx37(
|
|
2438
2441
|
IconComponent,
|
|
2439
2442
|
{
|
|
2440
2443
|
size,
|
|
@@ -2480,14 +2483,14 @@ function FileCard({
|
|
|
2480
2483
|
[onPress]
|
|
2481
2484
|
);
|
|
2482
2485
|
const cardContent = /* @__PURE__ */ jsxs23(Fragment9, { children: [
|
|
2483
|
-
/* @__PURE__ */
|
|
2486
|
+
/* @__PURE__ */ jsx37(
|
|
2484
2487
|
"div",
|
|
2485
2488
|
{
|
|
2486
2489
|
className: `shrink-0 overflow-hidden bg-[var(--color-neutral-900)] ${thumbnailClass}`,
|
|
2487
|
-
children: children ? /* @__PURE__ */
|
|
2490
|
+
children: children ? /* @__PURE__ */ jsx37("div", { className: "h-full w-full overflow-hidden", children }) : /* @__PURE__ */ jsx37("div", { className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ jsx37(IconComponent, { size: iconSize, className: iconColor }) })
|
|
2488
2491
|
}
|
|
2489
2492
|
),
|
|
2490
|
-
/* @__PURE__ */
|
|
2493
|
+
/* @__PURE__ */ jsx37(
|
|
2491
2494
|
"div",
|
|
2492
2495
|
{
|
|
2493
2496
|
className: [
|
|
@@ -2495,11 +2498,11 @@ function FileCard({
|
|
|
2495
2498
|
"bg-[var(--color-surface-default)]",
|
|
2496
2499
|
compact ? "px-2 py-1.5 rounded-b-[var(--border-radius-md)]" : "gap-0.5 px-3 py-2 rounded-b-[var(--border-radius-lg)]"
|
|
2497
2500
|
].join(" "),
|
|
2498
|
-
children: compact ? /* @__PURE__ */
|
|
2501
|
+
children: compact ? /* @__PURE__ */ jsx37("span", { className: "text-xs font-medium text-[var(--color-text-primary)] truncate", children: name }) : /* @__PURE__ */ jsxs23(Fragment9, { children: [
|
|
2499
2502
|
/* @__PURE__ */ jsxs23("span", { className: "flex items-center gap-1.5", children: [
|
|
2500
|
-
/* @__PURE__ */
|
|
2501
|
-
/* @__PURE__ */
|
|
2502
|
-
onInfo && /* @__PURE__ */
|
|
2503
|
+
/* @__PURE__ */ jsx37(FileIcon, { type, extension, size: 16 }),
|
|
2504
|
+
/* @__PURE__ */ jsx37("span", { className: "min-w-0 flex-1 text-sm font-medium text-[var(--color-text-primary)] truncate", children: name }),
|
|
2505
|
+
onInfo && /* @__PURE__ */ jsx37(
|
|
2503
2506
|
"span",
|
|
2504
2507
|
{
|
|
2505
2508
|
onClick: handleInfoClick,
|
|
@@ -2509,7 +2512,7 @@ function FileCard({
|
|
|
2509
2512
|
}
|
|
2510
2513
|
},
|
|
2511
2514
|
role: "presentation",
|
|
2512
|
-
children: /* @__PURE__ */
|
|
2515
|
+
children: /* @__PURE__ */ jsx37(
|
|
2513
2516
|
IconButton,
|
|
2514
2517
|
{
|
|
2515
2518
|
icon: Info2,
|
|
@@ -2523,7 +2526,7 @@ function FileCard({
|
|
|
2523
2526
|
}
|
|
2524
2527
|
)
|
|
2525
2528
|
] }),
|
|
2526
|
-
size && /* @__PURE__ */
|
|
2529
|
+
size && /* @__PURE__ */ jsx37("span", { className: "text-xs text-[var(--color-text-secondary)] tabular-nums pl-[22px]", children: size })
|
|
2527
2530
|
] })
|
|
2528
2531
|
}
|
|
2529
2532
|
)
|
|
@@ -2539,7 +2542,7 @@ function FileCard({
|
|
|
2539
2542
|
className
|
|
2540
2543
|
].filter(Boolean).join(" ");
|
|
2541
2544
|
if (href) {
|
|
2542
|
-
return /* @__PURE__ */
|
|
2545
|
+
return /* @__PURE__ */ jsx37(
|
|
2543
2546
|
"a",
|
|
2544
2547
|
{
|
|
2545
2548
|
href,
|
|
@@ -2550,7 +2553,7 @@ function FileCard({
|
|
|
2550
2553
|
);
|
|
2551
2554
|
}
|
|
2552
2555
|
if (onPress) {
|
|
2553
|
-
return /* @__PURE__ */
|
|
2556
|
+
return /* @__PURE__ */ jsx37(
|
|
2554
2557
|
"div",
|
|
2555
2558
|
{
|
|
2556
2559
|
role: "button",
|
|
@@ -2563,7 +2566,7 @@ function FileCard({
|
|
|
2563
2566
|
}
|
|
2564
2567
|
);
|
|
2565
2568
|
}
|
|
2566
|
-
return /* @__PURE__ */
|
|
2569
|
+
return /* @__PURE__ */ jsx37("div", { className: baseStyles, children: cardContent });
|
|
2567
2570
|
}
|
|
2568
2571
|
|
|
2569
2572
|
// src/components/StorageConnectionCard/StorageConnectionCard.tsx
|
|
@@ -2573,7 +2576,7 @@ import { twMerge as twMerge10 } from "tailwind-merge";
|
|
|
2573
2576
|
|
|
2574
2577
|
// src/components/Pill/Pill.tsx
|
|
2575
2578
|
import { twMerge as twMerge8 } from "tailwind-merge";
|
|
2576
|
-
import { jsx as
|
|
2579
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
2577
2580
|
var HASH_PALETTE = [
|
|
2578
2581
|
"teal",
|
|
2579
2582
|
// sky
|
|
@@ -2624,7 +2627,7 @@ function resolveColor(color, name) {
|
|
|
2624
2627
|
}
|
|
2625
2628
|
function Pill({ children, color, name, className }) {
|
|
2626
2629
|
const resolved = resolveColor(color, name);
|
|
2627
|
-
return /* @__PURE__ */
|
|
2630
|
+
return /* @__PURE__ */ jsx38(
|
|
2628
2631
|
"span",
|
|
2629
2632
|
{
|
|
2630
2633
|
className: twMerge8(
|
|
@@ -2641,7 +2644,7 @@ function Pill({ children, color, name, className }) {
|
|
|
2641
2644
|
|
|
2642
2645
|
// src/components/Pill/GroupPill.tsx
|
|
2643
2646
|
import { twMerge as twMerge9 } from "tailwind-merge";
|
|
2644
|
-
import { jsx as
|
|
2647
|
+
import { jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2645
2648
|
function GroupPill({
|
|
2646
2649
|
path,
|
|
2647
2650
|
visibleCount = 3,
|
|
@@ -2663,7 +2666,7 @@ function GroupPill({
|
|
|
2663
2666
|
children: [
|
|
2664
2667
|
hiddenSegments.map((segment, index) => {
|
|
2665
2668
|
const color = pillColorFromName(segment);
|
|
2666
|
-
return /* @__PURE__ */
|
|
2669
|
+
return /* @__PURE__ */ jsx39(
|
|
2667
2670
|
"span",
|
|
2668
2671
|
{
|
|
2669
2672
|
className: twMerge9(
|
|
@@ -2676,14 +2679,14 @@ function GroupPill({
|
|
|
2676
2679
|
`dot-${index}-${segment}`
|
|
2677
2680
|
);
|
|
2678
2681
|
}),
|
|
2679
|
-
visibleSegments.map((segment, index) => /* @__PURE__ */
|
|
2682
|
+
visibleSegments.map((segment, index) => /* @__PURE__ */ jsx39(Pill, { name: segment, children: segment }, `pill-${index}-${segment}`))
|
|
2680
2683
|
]
|
|
2681
2684
|
}
|
|
2682
2685
|
);
|
|
2683
2686
|
}
|
|
2684
2687
|
|
|
2685
2688
|
// src/components/StorageConnectionCard/StorageConnectionCard.tsx
|
|
2686
|
-
import { Fragment as Fragment10, jsx as
|
|
2689
|
+
import { Fragment as Fragment10, jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2687
2690
|
var statusDotStyles = {
|
|
2688
2691
|
connected: "bg-[var(--color-status-success)]",
|
|
2689
2692
|
error: "border-2 border-[var(--color-status-danger)] bg-transparent",
|
|
@@ -2699,7 +2702,7 @@ function ProviderBadge({ provider }) {
|
|
|
2699
2702
|
const config = providerConfig[provider.toLowerCase()];
|
|
2700
2703
|
const label = config?.label ?? provider;
|
|
2701
2704
|
const color = config?.color ?? "neutral";
|
|
2702
|
-
return /* @__PURE__ */
|
|
2705
|
+
return /* @__PURE__ */ jsx40(Pill, { color, children: label });
|
|
2703
2706
|
}
|
|
2704
2707
|
function PreviewArea({
|
|
2705
2708
|
status = "connected",
|
|
@@ -2707,11 +2710,11 @@ function PreviewArea({
|
|
|
2707
2710
|
children
|
|
2708
2711
|
}) {
|
|
2709
2712
|
if (status === "loading") {
|
|
2710
|
-
return /* @__PURE__ */
|
|
2713
|
+
return /* @__PURE__ */ jsx40("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx40(Spinner, { size: "lg", "aria-label": "Loading connection" }) });
|
|
2711
2714
|
}
|
|
2712
2715
|
if (status === "error") {
|
|
2713
2716
|
return /* @__PURE__ */ jsxs25("div", { className: "flex h-full flex-col items-center justify-center gap-2 bg-[var(--color-surface-danger)] px-4", children: [
|
|
2714
|
-
/* @__PURE__ */
|
|
2717
|
+
/* @__PURE__ */ jsx40(
|
|
2715
2718
|
Icon,
|
|
2716
2719
|
{
|
|
2717
2720
|
icon: AlertCircle,
|
|
@@ -2719,13 +2722,13 @@ function PreviewArea({
|
|
|
2719
2722
|
className: "text-[var(--color-text-danger)]"
|
|
2720
2723
|
}
|
|
2721
2724
|
),
|
|
2722
|
-
errorMessage && /* @__PURE__ */
|
|
2725
|
+
errorMessage && /* @__PURE__ */ jsx40("p", { className: "text-center text-xs text-[var(--color-text-danger)]", children: errorMessage })
|
|
2723
2726
|
] });
|
|
2724
2727
|
}
|
|
2725
2728
|
if (children) {
|
|
2726
|
-
return /* @__PURE__ */
|
|
2729
|
+
return /* @__PURE__ */ jsx40("div", { className: "h-full w-full overflow-hidden", children });
|
|
2727
2730
|
}
|
|
2728
|
-
return /* @__PURE__ */
|
|
2731
|
+
return /* @__PURE__ */ jsx40("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx40(
|
|
2729
2732
|
Icon,
|
|
2730
2733
|
{
|
|
2731
2734
|
icon: Database,
|
|
@@ -2768,10 +2771,10 @@ function StorageConnectionCard({
|
|
|
2768
2771
|
[onPress]
|
|
2769
2772
|
);
|
|
2770
2773
|
const cardContent = /* @__PURE__ */ jsxs25(Fragment10, { children: [
|
|
2771
|
-
/* @__PURE__ */
|
|
2774
|
+
/* @__PURE__ */ jsx40("div", { className: "aspect-[4/3] bg-[var(--color-neutral-900)] overflow-hidden rounded-t-[var(--border-radius-lg)]", children: /* @__PURE__ */ jsx40(PreviewArea, { status, errorMessage, children }) }),
|
|
2772
2775
|
/* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-1.5 border-t border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-2.5 rounded-b-[var(--border-radius-lg)]", children: [
|
|
2773
2776
|
/* @__PURE__ */ jsxs25("div", { className: "flex items-start gap-2", children: [
|
|
2774
|
-
status && /* @__PURE__ */
|
|
2777
|
+
status && /* @__PURE__ */ jsx40(
|
|
2775
2778
|
"span",
|
|
2776
2779
|
{
|
|
2777
2780
|
className: twMerge10(
|
|
@@ -2781,8 +2784,8 @@ function StorageConnectionCard({
|
|
|
2781
2784
|
"aria-label": `Status: ${status}`
|
|
2782
2785
|
}
|
|
2783
2786
|
),
|
|
2784
|
-
/* @__PURE__ */
|
|
2785
|
-
onInfo && /* @__PURE__ */
|
|
2787
|
+
/* @__PURE__ */ jsx40("span", { className: "min-w-0 flex-1 line-clamp-2 text-sm font-medium text-[var(--color-text-primary)]", children: name }),
|
|
2788
|
+
onInfo && /* @__PURE__ */ jsx40(
|
|
2786
2789
|
"span",
|
|
2787
2790
|
{
|
|
2788
2791
|
onClick: handleInfoPress,
|
|
@@ -2792,7 +2795,7 @@ function StorageConnectionCard({
|
|
|
2792
2795
|
}
|
|
2793
2796
|
},
|
|
2794
2797
|
role: "presentation",
|
|
2795
|
-
children: /* @__PURE__ */
|
|
2798
|
+
children: /* @__PURE__ */ jsx40(
|
|
2796
2799
|
IconButton,
|
|
2797
2800
|
{
|
|
2798
2801
|
icon: Info3,
|
|
@@ -2807,8 +2810,8 @@ function StorageConnectionCard({
|
|
|
2807
2810
|
)
|
|
2808
2811
|
] }),
|
|
2809
2812
|
(provider || imageCount != null && (!status || status === "connected")) && /* @__PURE__ */ jsxs25("div", { className: twMerge10("flex items-center gap-2", status && "pl-4"), children: [
|
|
2810
|
-
provider && /* @__PURE__ */
|
|
2811
|
-
provider && region && /* @__PURE__ */
|
|
2813
|
+
provider && /* @__PURE__ */ jsx40(ProviderBadge, { provider }),
|
|
2814
|
+
provider && region && /* @__PURE__ */ jsx40("span", { className: "shrink-0 text-xs text-[var(--color-text-secondary)]", children: region }),
|
|
2812
2815
|
imageCount != null && (!status || status === "connected") && /* @__PURE__ */ jsxs25("span", { className: "ml-auto shrink-0 text-xs tabular-nums text-[var(--color-text-secondary)]", children: [
|
|
2813
2816
|
imageCount,
|
|
2814
2817
|
" ",
|
|
@@ -2826,10 +2829,10 @@ function StorageConnectionCard({
|
|
|
2826
2829
|
className
|
|
2827
2830
|
);
|
|
2828
2831
|
if (href) {
|
|
2829
|
-
return /* @__PURE__ */
|
|
2832
|
+
return /* @__PURE__ */ jsx40("a", { href, className: twMerge10(baseStyles, "no-underline"), children: cardContent });
|
|
2830
2833
|
}
|
|
2831
2834
|
if (onPress) {
|
|
2832
|
-
return /* @__PURE__ */
|
|
2835
|
+
return /* @__PURE__ */ jsx40(
|
|
2833
2836
|
"div",
|
|
2834
2837
|
{
|
|
2835
2838
|
role: "button",
|
|
@@ -2841,12 +2844,12 @@ function StorageConnectionCard({
|
|
|
2841
2844
|
}
|
|
2842
2845
|
);
|
|
2843
2846
|
}
|
|
2844
|
-
return /* @__PURE__ */
|
|
2847
|
+
return /* @__PURE__ */ jsx40("div", { className: baseStyles, children: cardContent });
|
|
2845
2848
|
}
|
|
2846
2849
|
|
|
2847
2850
|
// src/components/Badge/Badge.tsx
|
|
2848
2851
|
import { twMerge as twMerge11 } from "tailwind-merge";
|
|
2849
|
-
import { jsx as
|
|
2852
|
+
import { jsx as jsx41, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2850
2853
|
var variantStyles4 = {
|
|
2851
2854
|
neutral: "bg-[var(--color-badge-neutral-bg)] text-[var(--color-badge-neutral-text)]",
|
|
2852
2855
|
purple: "bg-[var(--color-badge-purple-bg)] text-[var(--color-badge-purple-text)]",
|
|
@@ -2882,7 +2885,7 @@ function Badge({
|
|
|
2882
2885
|
className
|
|
2883
2886
|
),
|
|
2884
2887
|
children: [
|
|
2885
|
-
IconComponent && /* @__PURE__ */
|
|
2888
|
+
IconComponent && /* @__PURE__ */ jsx41(IconComponent, { size: iconSizeMap4[size], "aria-hidden": "true" }),
|
|
2886
2889
|
children
|
|
2887
2890
|
]
|
|
2888
2891
|
}
|
|
@@ -2892,7 +2895,7 @@ function Badge({
|
|
|
2892
2895
|
// src/components/Card/Card.tsx
|
|
2893
2896
|
import { useCallback as useCallback5 } from "react";
|
|
2894
2897
|
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
2895
|
-
import { Fragment as Fragment11, jsx as
|
|
2898
|
+
import { Fragment as Fragment11, jsx as jsx42, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2896
2899
|
var paddingStyles = {
|
|
2897
2900
|
none: "p-0",
|
|
2898
2901
|
sm: "p-3",
|
|
@@ -2926,7 +2929,7 @@ function Card({
|
|
|
2926
2929
|
[onPress]
|
|
2927
2930
|
);
|
|
2928
2931
|
const content = /* @__PURE__ */ jsxs27(Fragment11, { children: [
|
|
2929
|
-
header && /* @__PURE__ */
|
|
2932
|
+
header && /* @__PURE__ */ jsx42(
|
|
2930
2933
|
"div",
|
|
2931
2934
|
{
|
|
2932
2935
|
className: twMerge12(
|
|
@@ -2936,8 +2939,8 @@ function Card({
|
|
|
2936
2939
|
children: header
|
|
2937
2940
|
}
|
|
2938
2941
|
),
|
|
2939
|
-
/* @__PURE__ */
|
|
2940
|
-
footer && /* @__PURE__ */
|
|
2942
|
+
/* @__PURE__ */ jsx42("div", { className: paddingStyles[padding], children }),
|
|
2943
|
+
footer && /* @__PURE__ */ jsx42(
|
|
2941
2944
|
"div",
|
|
2942
2945
|
{
|
|
2943
2946
|
className: twMerge12(
|
|
@@ -2949,10 +2952,10 @@ function Card({
|
|
|
2949
2952
|
)
|
|
2950
2953
|
] });
|
|
2951
2954
|
if (href) {
|
|
2952
|
-
return /* @__PURE__ */
|
|
2955
|
+
return /* @__PURE__ */ jsx42("a", { href, className: containerClass, children: content });
|
|
2953
2956
|
}
|
|
2954
2957
|
if (onPress) {
|
|
2955
|
-
return /* @__PURE__ */
|
|
2958
|
+
return /* @__PURE__ */ jsx42(
|
|
2956
2959
|
"div",
|
|
2957
2960
|
{
|
|
2958
2961
|
role: "button",
|
|
@@ -2964,13 +2967,13 @@ function Card({
|
|
|
2964
2967
|
}
|
|
2965
2968
|
);
|
|
2966
2969
|
}
|
|
2967
|
-
return /* @__PURE__ */
|
|
2970
|
+
return /* @__PURE__ */ jsx42("div", { className: containerClass, children: content });
|
|
2968
2971
|
}
|
|
2969
2972
|
|
|
2970
2973
|
// src/components/DeltaIndicator/DeltaIndicator.tsx
|
|
2971
2974
|
import { ArrowUp, ArrowDown, Minus } from "lucide-react";
|
|
2972
2975
|
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
2973
|
-
import { jsx as
|
|
2976
|
+
import { jsx as jsx43, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2974
2977
|
function getDirection(current, previous) {
|
|
2975
2978
|
const diff = current - previous;
|
|
2976
2979
|
if (diff > 0) return "increase";
|
|
@@ -3032,7 +3035,7 @@ function DeltaIndicator({
|
|
|
3032
3035
|
className
|
|
3033
3036
|
),
|
|
3034
3037
|
children: [
|
|
3035
|
-
label && /* @__PURE__ */
|
|
3038
|
+
label && /* @__PURE__ */ jsx43("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)] mr-1", children: label }),
|
|
3036
3039
|
unavailableText
|
|
3037
3040
|
]
|
|
3038
3041
|
}
|
|
@@ -3076,8 +3079,8 @@ function DeltaIndicator({
|
|
|
3076
3079
|
className
|
|
3077
3080
|
),
|
|
3078
3081
|
children: [
|
|
3079
|
-
label && /* @__PURE__ */
|
|
3080
|
-
/* @__PURE__ */
|
|
3082
|
+
label && /* @__PURE__ */ jsx43("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)] mr-1", children: label }),
|
|
3083
|
+
/* @__PURE__ */ jsx43(IconComponent, { size: 14, "aria-hidden": true }),
|
|
3081
3084
|
valueText
|
|
3082
3085
|
]
|
|
3083
3086
|
}
|
|
@@ -3086,7 +3089,7 @@ function DeltaIndicator({
|
|
|
3086
3089
|
|
|
3087
3090
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
3088
3091
|
import { twMerge as twMerge14 } from "tailwind-merge";
|
|
3089
|
-
import { jsx as
|
|
3092
|
+
import { jsx as jsx44, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3090
3093
|
var fillStyles = {
|
|
3091
3094
|
brand: "bg-[var(--color-progress-fill)]",
|
|
3092
3095
|
success: "bg-[var(--color-progress-fill-success)]",
|
|
@@ -3111,10 +3114,10 @@ function ProgressBar({
|
|
|
3111
3114
|
const clampedValue = Math.min(100, Math.max(0, value));
|
|
3112
3115
|
return /* @__PURE__ */ jsxs29("div", { className: twMerge14("w-full", className), children: [
|
|
3113
3116
|
(label || description || showValue) && /* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between mb-2", children: [
|
|
3114
|
-
/* @__PURE__ */
|
|
3115
|
-
/* @__PURE__ */
|
|
3117
|
+
/* @__PURE__ */ jsx44("span", { className: "text-[length:var(--font-size-sm)] font-[number:var(--font-weight-medium)] text-[var(--color-text-primary)]", children: label }),
|
|
3118
|
+
/* @__PURE__ */ jsx44("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)]", children: description ?? (showValue ? `${clampedValue}%` : null) })
|
|
3116
3119
|
] }),
|
|
3117
|
-
/* @__PURE__ */
|
|
3120
|
+
/* @__PURE__ */ jsx44(
|
|
3118
3121
|
"div",
|
|
3119
3122
|
{
|
|
3120
3123
|
role: "progressbar",
|
|
@@ -3126,7 +3129,7 @@ function ProgressBar({
|
|
|
3126
3129
|
"w-full rounded-[var(--border-radius-full)] bg-[var(--color-progress-track)]",
|
|
3127
3130
|
sizeStyles9[size]
|
|
3128
3131
|
),
|
|
3129
|
-
children: /* @__PURE__ */
|
|
3132
|
+
children: /* @__PURE__ */ jsx44(
|
|
3130
3133
|
"div",
|
|
3131
3134
|
{
|
|
3132
3135
|
className: twMerge14(
|
|
@@ -3151,7 +3154,7 @@ import {
|
|
|
3151
3154
|
X as X3
|
|
3152
3155
|
} from "lucide-react";
|
|
3153
3156
|
import { twMerge as twMerge15 } from "tailwind-merge";
|
|
3154
|
-
import { jsx as
|
|
3157
|
+
import { jsx as jsx45, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3155
3158
|
var variantConfig2 = {
|
|
3156
3159
|
info: {
|
|
3157
3160
|
icon: Info4,
|
|
@@ -3206,7 +3209,7 @@ function Banner({
|
|
|
3206
3209
|
className
|
|
3207
3210
|
),
|
|
3208
3211
|
children: [
|
|
3209
|
-
/* @__PURE__ */
|
|
3212
|
+
/* @__PURE__ */ jsx45(
|
|
3210
3213
|
IconComponent,
|
|
3211
3214
|
{
|
|
3212
3215
|
size: 20,
|
|
@@ -3221,14 +3224,14 @@ function Banner({
|
|
|
3221
3224
|
] }),
|
|
3222
3225
|
children
|
|
3223
3226
|
] }),
|
|
3224
|
-
dismissible && /* @__PURE__ */
|
|
3227
|
+
dismissible && /* @__PURE__ */ jsx45(
|
|
3225
3228
|
"button",
|
|
3226
3229
|
{
|
|
3227
3230
|
type: "button",
|
|
3228
3231
|
onClick: handleDismiss,
|
|
3229
3232
|
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",
|
|
3230
3233
|
"aria-label": "Dismiss",
|
|
3231
|
-
children: /* @__PURE__ */
|
|
3234
|
+
children: /* @__PURE__ */ jsx45(X3, { size: 16, "aria-hidden": "true" })
|
|
3232
3235
|
}
|
|
3233
3236
|
)
|
|
3234
3237
|
]
|
|
@@ -3238,7 +3241,7 @@ function Banner({
|
|
|
3238
3241
|
|
|
3239
3242
|
// src/components/MetricCard/MetricCard.tsx
|
|
3240
3243
|
import { twMerge as twMerge16 } from "tailwind-merge";
|
|
3241
|
-
import { Fragment as Fragment12, jsx as
|
|
3244
|
+
import { Fragment as Fragment12, jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3242
3245
|
var sizeConfig = {
|
|
3243
3246
|
sm: {
|
|
3244
3247
|
padding: "p-3",
|
|
@@ -3267,8 +3270,8 @@ function MetricCard({
|
|
|
3267
3270
|
className
|
|
3268
3271
|
);
|
|
3269
3272
|
const content = /* @__PURE__ */ jsxs31(Fragment12, { children: [
|
|
3270
|
-
/* @__PURE__ */
|
|
3271
|
-
/* @__PURE__ */
|
|
3273
|
+
/* @__PURE__ */ jsx46("div", { className: twMerge16(config.labelClass, "text-[var(--color-text-secondary)]"), children: label }),
|
|
3274
|
+
/* @__PURE__ */ jsx46(
|
|
3272
3275
|
"div",
|
|
3273
3276
|
{
|
|
3274
3277
|
className: twMerge16(
|
|
@@ -3278,17 +3281,17 @@ function MetricCard({
|
|
|
3278
3281
|
children: value
|
|
3279
3282
|
}
|
|
3280
3283
|
),
|
|
3281
|
-
secondary && /* @__PURE__ */
|
|
3284
|
+
secondary && /* @__PURE__ */ jsx46("div", { className: "mt-1 text-sm", children: secondary })
|
|
3282
3285
|
] });
|
|
3283
3286
|
if (href) {
|
|
3284
|
-
return /* @__PURE__ */
|
|
3287
|
+
return /* @__PURE__ */ jsx46("a", { href, className: containerClass, children: content });
|
|
3285
3288
|
}
|
|
3286
|
-
return /* @__PURE__ */
|
|
3289
|
+
return /* @__PURE__ */ jsx46("div", { className: containerClass, children: content });
|
|
3287
3290
|
}
|
|
3288
3291
|
|
|
3289
3292
|
// src/components/SectionHeader/SectionHeader.tsx
|
|
3290
3293
|
import { twMerge as twMerge17 } from "tailwind-merge";
|
|
3291
|
-
import { jsx as
|
|
3294
|
+
import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3292
3295
|
function SectionHeader({
|
|
3293
3296
|
title,
|
|
3294
3297
|
children,
|
|
@@ -3302,8 +3305,8 @@ function SectionHeader({
|
|
|
3302
3305
|
className
|
|
3303
3306
|
),
|
|
3304
3307
|
children: [
|
|
3305
|
-
/* @__PURE__ */
|
|
3306
|
-
children && /* @__PURE__ */
|
|
3308
|
+
/* @__PURE__ */ jsx47(H2, { children: title }),
|
|
3309
|
+
children && /* @__PURE__ */ jsx47("div", { className: "ml-auto flex flex-wrap items-center gap-[var(--spacing-2)]", children })
|
|
3307
3310
|
]
|
|
3308
3311
|
}
|
|
3309
3312
|
);
|
|
@@ -3311,7 +3314,7 @@ function SectionHeader({
|
|
|
3311
3314
|
|
|
3312
3315
|
// src/components/FormWizard/FormWizard.tsx
|
|
3313
3316
|
import { createContext as createContext6, useContext as useContext6, useCallback as useCallback6, useMemo } from "react";
|
|
3314
|
-
import { jsx as
|
|
3317
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
3315
3318
|
var FormWizardContext = createContext6({
|
|
3316
3319
|
currentStep: 0,
|
|
3317
3320
|
totalSteps: 1,
|
|
@@ -3346,13 +3349,13 @@ function FormWizard({
|
|
|
3346
3349
|
}),
|
|
3347
3350
|
[currentStep, totalSteps, canGoBack, goBack, isLastStep]
|
|
3348
3351
|
);
|
|
3349
|
-
return /* @__PURE__ */
|
|
3352
|
+
return /* @__PURE__ */ jsx48(FormWizardContext.Provider, { value, children });
|
|
3350
3353
|
}
|
|
3351
3354
|
|
|
3352
3355
|
// src/components/FormWizard/FormWizardProgress.tsx
|
|
3353
|
-
import { jsx as
|
|
3356
|
+
import { jsx as jsx49, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3354
3357
|
function CheckIcon2() {
|
|
3355
|
-
return /* @__PURE__ */
|
|
3358
|
+
return /* @__PURE__ */ jsx49(
|
|
3356
3359
|
"svg",
|
|
3357
3360
|
{
|
|
3358
3361
|
"aria-hidden": "true",
|
|
@@ -3363,13 +3366,13 @@ function CheckIcon2() {
|
|
|
3363
3366
|
strokeWidth: "2",
|
|
3364
3367
|
strokeLinecap: "round",
|
|
3365
3368
|
strokeLinejoin: "round",
|
|
3366
|
-
children: /* @__PURE__ */
|
|
3369
|
+
children: /* @__PURE__ */ jsx49("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
|
|
3367
3370
|
}
|
|
3368
3371
|
);
|
|
3369
3372
|
}
|
|
3370
3373
|
function FormWizardProgress({ labels }) {
|
|
3371
3374
|
const { currentStep, totalSteps } = useFormWizard();
|
|
3372
|
-
return /* @__PURE__ */
|
|
3375
|
+
return /* @__PURE__ */ jsx49("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx49("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
|
|
3373
3376
|
const isCompleted = index < currentStep;
|
|
3374
3377
|
const isCurrent = index === currentStep;
|
|
3375
3378
|
const isFuture = index > currentStep;
|
|
@@ -3380,7 +3383,7 @@ function FormWizardProgress({ labels }) {
|
|
|
3380
3383
|
"aria-current": isCurrent ? "step" : void 0,
|
|
3381
3384
|
children: [
|
|
3382
3385
|
/* @__PURE__ */ jsxs33("div", { className: "flex w-full items-center", children: [
|
|
3383
|
-
index > 0 ? /* @__PURE__ */
|
|
3386
|
+
index > 0 ? /* @__PURE__ */ jsx49(
|
|
3384
3387
|
"div",
|
|
3385
3388
|
{
|
|
3386
3389
|
"aria-hidden": "true",
|
|
@@ -3389,8 +3392,8 @@ function FormWizardProgress({ labels }) {
|
|
|
3389
3392
|
index <= currentStep ? "bg-[var(--color-brand-primary)]" : "bg-[var(--color-border-default)]"
|
|
3390
3393
|
].join(" ")
|
|
3391
3394
|
}
|
|
3392
|
-
) : /* @__PURE__ */
|
|
3393
|
-
/* @__PURE__ */
|
|
3395
|
+
) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" }),
|
|
3396
|
+
/* @__PURE__ */ jsx49(
|
|
3394
3397
|
"div",
|
|
3395
3398
|
{
|
|
3396
3399
|
className: [
|
|
@@ -3402,10 +3405,10 @@ function FormWizardProgress({ labels }) {
|
|
|
3402
3405
|
isFuture ? "border-2 border-[var(--color-border-default)] bg-[var(--color-surface-default)] text-[var(--color-text-tertiary)]" : ""
|
|
3403
3406
|
].join(" "),
|
|
3404
3407
|
"aria-hidden": "true",
|
|
3405
|
-
children: isCompleted ? /* @__PURE__ */
|
|
3408
|
+
children: isCompleted ? /* @__PURE__ */ jsx49(CheckIcon2, {}) : index + 1
|
|
3406
3409
|
}
|
|
3407
3410
|
),
|
|
3408
|
-
index < totalSteps - 1 ? /* @__PURE__ */
|
|
3411
|
+
index < totalSteps - 1 ? /* @__PURE__ */ jsx49(
|
|
3409
3412
|
"div",
|
|
3410
3413
|
{
|
|
3411
3414
|
"aria-hidden": "true",
|
|
@@ -3414,9 +3417,9 @@ function FormWizardProgress({ labels }) {
|
|
|
3414
3417
|
index < currentStep ? "bg-[var(--color-brand-primary)]" : "bg-[var(--color-border-default)]"
|
|
3415
3418
|
].join(" ")
|
|
3416
3419
|
}
|
|
3417
|
-
) : /* @__PURE__ */
|
|
3420
|
+
) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" })
|
|
3418
3421
|
] }),
|
|
3419
|
-
/* @__PURE__ */
|
|
3422
|
+
/* @__PURE__ */ jsx49(
|
|
3420
3423
|
"span",
|
|
3421
3424
|
{
|
|
3422
3425
|
className: [
|
|
@@ -3434,7 +3437,7 @@ function FormWizardProgress({ labels }) {
|
|
|
3434
3437
|
}
|
|
3435
3438
|
|
|
3436
3439
|
// src/components/FormWizard/FormWizardNav.tsx
|
|
3437
|
-
import { jsx as
|
|
3440
|
+
import { jsx as jsx50, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3438
3441
|
function FormWizardNav({
|
|
3439
3442
|
onNext,
|
|
3440
3443
|
isSubmitting = false,
|
|
@@ -3442,7 +3445,7 @@ function FormWizardNav({
|
|
|
3442
3445
|
}) {
|
|
3443
3446
|
const { canGoBack, goBack, isLastStep } = useFormWizard();
|
|
3444
3447
|
return /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-end gap-[var(--spacing-3)]", children: [
|
|
3445
|
-
canGoBack && /* @__PURE__ */
|
|
3448
|
+
canGoBack && /* @__PURE__ */ jsx50(
|
|
3446
3449
|
Button,
|
|
3447
3450
|
{
|
|
3448
3451
|
variant: "secondary",
|
|
@@ -3452,7 +3455,7 @@ function FormWizardNav({
|
|
|
3452
3455
|
children: "Back"
|
|
3453
3456
|
}
|
|
3454
3457
|
),
|
|
3455
|
-
/* @__PURE__ */
|
|
3458
|
+
/* @__PURE__ */ jsx50(
|
|
3456
3459
|
Button,
|
|
3457
3460
|
{
|
|
3458
3461
|
variant: "primary",
|