@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 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 jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
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__ */ jsx10(IconComponent, { size: 20, className: ["shrink-0 mt-0.5", config.iconClass].join(" "), "aria-hidden": "true" }),
894
- /* @__PURE__ */ jsx10("p", { className: "flex-1 text-[length:var(--font-size-sm)] font-[number:var(--font-weight-medium)]", children: toast.message }),
895
- /* @__PURE__ */ jsx10(
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__ */ jsx10(X2, { size: 16, "aria-hidden": "true" })
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__ */ jsx10(PlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsx10("div", { className: containerPositionStyles[placement], children: toasts.map((toast) => /* @__PURE__ */ jsx10(ToastItem, { toast, onRemove: removeToast }, toast.id)) }) }),
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__ */ jsx10(ToastContainer, { toasts, removeToast, placement })
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 jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
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__ */ jsx11(Icon, { icon, size: "xl", className: "text-[var(--color-text-tertiary)]" }),
988
- /* @__PURE__ */ jsx11("h3", { className: "text-[length:var(--font-size-lg)] font-[number:var(--font-weight-semibold)] text-[var(--color-text-primary)] mt-4", children: title }),
989
- description && /* @__PURE__ */ jsx11("p", { className: "text-sm text-[var(--color-text-secondary)] mt-2 max-w-sm", children: description }),
990
- action && /* @__PURE__ */ jsx11("div", { className: "mt-6", children: action })
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 jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
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__ */ jsx12(
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__ */ jsx12(Check, { className: "w-4 h-4 text-[var(--color-text-inverse)]", strokeWidth: 3 }),
1024
- isIndeterminate && /* @__PURE__ */ jsx12("div", { className: "w-3 h-0.5 bg-[var(--color-text-inverse)] rounded-full" })
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__ */ jsx12("span", { children })
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 jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
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__ */ jsx13(
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__ */ jsx13(
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__ */ jsx13(
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__ */ jsx13("span", { children })
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 jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
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__ */ jsx14(
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__ */ jsx14(
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__ */ jsx14(
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__ */ jsx14("div", { className: "w-2.5 h-2.5 rounded-full bg-[var(--color-action-primary)]" })
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__ */ jsx14("span", { children })
1137
+ children && /* @__PURE__ */ jsx15("span", { children })
1135
1138
  ] })
1136
1139
  }
1137
1140
  );
1138
1141
  }
1139
1142
  function RadioButton({ children, className, ...props }) {
1140
- return /* @__PURE__ */ jsx14(
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__ */ jsx14(
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 jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
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__ */ jsx15(
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 jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
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__ */ jsx16(Label3, { isRequired, children: label }),
1220
+ label && /* @__PURE__ */ jsx17(Label3, { isRequired, children: label }),
1218
1221
  children,
1219
- description && !errorMessage && /* @__PURE__ */ jsx16("p", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)]", children: description }),
1220
- errorMessage && /* @__PURE__ */ jsx16("p", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-danger)]", children: errorMessage })
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 jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
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__ */ jsx17(
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 jsx18 } from "react/jsx-runtime";
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__ */ jsx18(
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__ */ jsx18(
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 jsx19 } from "react/jsx-runtime";
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__ */ jsx19(
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 jsx20 } from "react/jsx-runtime";
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__ */ jsx20(
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__ */ jsx20(
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__ */ jsx20(Heading2, { ...props, as: "h2", size: props.size ?? "xl" });
1378
+ return /* @__PURE__ */ jsx21(Heading2, { ...props, as: "h2", size: props.size ?? "xl" });
1376
1379
  }
1377
1380
  function H3(props) {
1378
- return /* @__PURE__ */ jsx20(Heading2, { ...props, as: "h3", size: props.size ?? "lg" });
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 jsx21 } from "react/jsx-runtime";
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__ */ jsx21(
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 jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
1425
+ import { Fragment as Fragment6, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
1423
1426
  function Breadcrumbs({ items, className }) {
1424
- return /* @__PURE__ */ jsx22(
1427
+ return /* @__PURE__ */ jsx23(
1425
1428
  "nav",
1426
1429
  {
1427
1430
  "aria-label": "Breadcrumb",
1428
1431
  className,
1429
- children: /* @__PURE__ */ jsx22(
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__ */ jsx22(
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__ */ jsx22("span", { className: "font-[number:var(--font-weight-medium)] text-[var(--color-text-primary)] truncate", children: item.label }) : /* @__PURE__ */ jsxs16(Fragment6, { children: [
1444
- /* @__PURE__ */ jsx22(
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__ */ jsx22(
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 jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
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__ */ jsx23(Icon, { icon: iconLeft, size: iconSizeMap3[size] }),
1510
+ iconLeft && /* @__PURE__ */ jsx24(Icon, { icon: iconLeft, size: iconSizeMap3[size] }),
1508
1511
  children,
1509
- iconRight && /* @__PURE__ */ jsx23(Icon, { icon: iconRight, size: iconSizeMap3[size] })
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__ */ jsx23(
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__ */ jsx23(Icon, { icon, size: iconSizeMap3[size] })
1546
+ children: /* @__PURE__ */ jsx24(Icon, { icon, size: iconSizeMap3[size] })
1544
1547
  }
1545
1548
  );
1546
1549
  if (showTooltip) {
1547
- return /* @__PURE__ */ jsx23(Tooltip, { content: ariaLabel, placement: tooltipPlacement, children: link });
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 jsx24 } from "react/jsx-runtime";
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__ */ jsx24(
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 jsx25 } from "react/jsx-runtime";
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__ */ jsx25(ToggleButtonGroupContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx25(
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__ */ jsx25(
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 jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
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__ */ jsx26(
1730
+ /* @__PURE__ */ jsx27(
1728
1731
  Popover2,
1729
1732
  {
1730
1733
  className: [popoverStyles, className].filter(Boolean).join(" "),
1731
- children: items ? /* @__PURE__ */ jsx26(
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__ */ jsx26(Icon, { icon: item.icon, size: "sm" }),
1759
- /* @__PURE__ */ jsx26("span", { className: "flex-1", children: item.label }),
1760
- item.endContent && /* @__PURE__ */ jsx26("span", { className: "ml-auto flex items-center", children: item.endContent })
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__ */ jsx26(
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 jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
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__ */ jsx27(Icon, { icon, size: "sm" }),
1815
- /* @__PURE__ */ jsx27("span", { className: "flex-1", children }),
1816
- endContent && /* @__PURE__ */ jsx27("span", { className: "ml-auto flex items-center", children: endContent })
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 jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
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__ */ jsx28(
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__ */ jsx28("span", { className: "flex items-center justify-center w-4 h-4 shrink-0", children: isSelected && /* @__PURE__ */ jsx28(Check2, { size: 14, className: "text-[var(--color-action-primary)]", "aria-hidden": "true" }) }),
1851
- /* @__PURE__ */ jsx28("span", { className: "flex-1", children })
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 jsx29, jsxs as jsxs21 } from "react/jsx-runtime";
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__ */ jsx29(
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 jsx30 } from "react/jsx-runtime";
1892
+ import { jsx as jsx31 } from "react/jsx-runtime";
1890
1893
  function MenuHeader({ children, className }) {
1891
- return /* @__PURE__ */ jsx30(Header2, { className, children });
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 jsx31 } from "react/jsx-runtime";
1899
+ import { jsx as jsx32 } from "react/jsx-runtime";
1897
1900
  function MenuSeparator({ className }) {
1898
- return /* @__PURE__ */ jsx31(
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 jsx32 } from "react/jsx-runtime";
1919
+ import { Fragment as Fragment8, jsx as jsx33 } from "react/jsx-runtime";
1917
1920
  function Popover3({ children, isOpen, onOpenChange }) {
1918
- return /* @__PURE__ */ jsx32(DialogTrigger, { isOpen, onOpenChange, children });
1921
+ return /* @__PURE__ */ jsx33(DialogTrigger, { isOpen, onOpenChange, children });
1919
1922
  }
1920
1923
  function PopoverTrigger({ children, className }) {
1921
- return /* @__PURE__ */ jsx32(
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__ */ jsx32(
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__ */ jsx32(AriaDialog2, { className: "outline-none", children: ({ close }) => /* @__PURE__ */ jsx32(Fragment8, { children: typeof children === "function" ? children({ close }) : children }) })
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 jsx33 } from "react/jsx-runtime";
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__ */ jsx33(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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 jsx34, jsxs as jsxs22 } from "react/jsx-runtime";
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__ */ jsx34(
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__ */ jsx34(
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__ */ jsx34(
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__ */ jsx34(
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__ */ jsx34(
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__ */ jsx34("span", { className: "truncate", children: data.name })
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__ */ jsx34(
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__ */ jsx34(
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__ */ jsx34(
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 jsx35 } from "react/jsx-runtime";
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__ */ jsx35(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx35(
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__ */ jsx35(
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 jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
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__ */ jsx36(
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__ */ jsx36(
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__ */ jsx36("div", { className: "h-full w-full overflow-hidden", children }) : /* @__PURE__ */ jsx36("div", { className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ jsx36(IconComponent, { size: iconSize, className: iconColor }) })
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__ */ jsx36(
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__ */ jsx36("span", { className: "text-xs font-medium text-[var(--color-text-primary)] truncate", children: name }) : /* @__PURE__ */ jsxs23(Fragment9, { children: [
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__ */ jsx36(FileIcon, { type, extension, size: 16 }),
2501
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 flex-1 text-sm font-medium text-[var(--color-text-primary)] truncate", children: name }),
2502
- onInfo && /* @__PURE__ */ jsx36(
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__ */ jsx36(
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__ */ jsx36("span", { className: "text-xs text-[var(--color-text-secondary)] tabular-nums pl-[22px]", children: size })
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__ */ jsx36(
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__ */ jsx36(
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__ */ jsx36("div", { className: baseStyles, children: cardContent });
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 jsx37 } from "react/jsx-runtime";
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__ */ jsx37(
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 jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
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__ */ jsx38(
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__ */ jsx38(Pill, { name: segment, children: segment }, `pill-${index}-${segment}`))
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 jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
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__ */ jsx39(Pill, { color, children: label });
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__ */ jsx39("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx39(Spinner, { size: "lg", "aria-label": "Loading connection" }) });
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__ */ jsx39(
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__ */ jsx39("p", { className: "text-center text-xs text-[var(--color-text-danger)]", children: errorMessage })
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__ */ jsx39("div", { className: "h-full w-full overflow-hidden", children });
2729
+ return /* @__PURE__ */ jsx40("div", { className: "h-full w-full overflow-hidden", children });
2727
2730
  }
2728
- return /* @__PURE__ */ jsx39("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx39(
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__ */ jsx39("div", { className: "aspect-[4/3] bg-[var(--color-neutral-900)] overflow-hidden rounded-t-[var(--border-radius-lg)]", children: /* @__PURE__ */ jsx39(PreviewArea, { status, errorMessage, children }) }),
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__ */ jsx39(
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__ */ jsx39("span", { className: "min-w-0 flex-1 line-clamp-2 text-sm font-medium text-[var(--color-text-primary)]", children: name }),
2785
- onInfo && /* @__PURE__ */ jsx39(
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__ */ jsx39(
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__ */ jsx39(ProviderBadge, { provider }),
2811
- provider && region && /* @__PURE__ */ jsx39("span", { className: "shrink-0 text-xs text-[var(--color-text-secondary)]", children: region }),
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__ */ jsx39("a", { href, className: twMerge10(baseStyles, "no-underline"), children: cardContent });
2832
+ return /* @__PURE__ */ jsx40("a", { href, className: twMerge10(baseStyles, "no-underline"), children: cardContent });
2830
2833
  }
2831
2834
  if (onPress) {
2832
- return /* @__PURE__ */ jsx39(
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__ */ jsx39("div", { className: baseStyles, children: cardContent });
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 jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
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__ */ jsx40(IconComponent, { size: iconSizeMap4[size], "aria-hidden": "true" }),
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 jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
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__ */ jsx41(
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__ */ jsx41("div", { className: paddingStyles[padding], children }),
2940
- footer && /* @__PURE__ */ jsx41(
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__ */ jsx41("a", { href, className: containerClass, children: content });
2955
+ return /* @__PURE__ */ jsx42("a", { href, className: containerClass, children: content });
2953
2956
  }
2954
2957
  if (onPress) {
2955
- return /* @__PURE__ */ jsx41(
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__ */ jsx41("div", { className: containerClass, children: content });
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 jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
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__ */ jsx42("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)] mr-1", children: label }),
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__ */ jsx42("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)] mr-1", children: label }),
3080
- /* @__PURE__ */ jsx42(IconComponent, { size: 14, "aria-hidden": true }),
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 jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
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__ */ jsx43("span", { className: "text-[length:var(--font-size-sm)] font-[number:var(--font-weight-medium)] text-[var(--color-text-primary)]", children: label }),
3115
- /* @__PURE__ */ jsx43("span", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)]", children: description ?? (showValue ? `${clampedValue}%` : null) })
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__ */ jsx43(
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__ */ jsx43(
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 jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
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__ */ jsx44(
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__ */ jsx44(
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__ */ jsx44(X3, { size: 16, "aria-hidden": "true" })
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 jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
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__ */ jsx45("div", { className: twMerge16(config.labelClass, "text-[var(--color-text-secondary)]"), children: label }),
3271
- /* @__PURE__ */ jsx45(
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__ */ jsx45("div", { className: "mt-1 text-sm", children: secondary })
3284
+ secondary && /* @__PURE__ */ jsx46("div", { className: "mt-1 text-sm", children: secondary })
3282
3285
  ] });
3283
3286
  if (href) {
3284
- return /* @__PURE__ */ jsx45("a", { href, className: containerClass, children: content });
3287
+ return /* @__PURE__ */ jsx46("a", { href, className: containerClass, children: content });
3285
3288
  }
3286
- return /* @__PURE__ */ jsx45("div", { className: containerClass, children: content });
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 jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
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__ */ jsx46(H2, { children: title }),
3306
- children && /* @__PURE__ */ jsx46("div", { className: "ml-auto flex flex-wrap items-center gap-[var(--spacing-2)]", children })
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 jsx47 } from "react/jsx-runtime";
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__ */ jsx47(FormWizardContext.Provider, { value, children });
3352
+ return /* @__PURE__ */ jsx48(FormWizardContext.Provider, { value, children });
3350
3353
  }
3351
3354
 
3352
3355
  // src/components/FormWizard/FormWizardProgress.tsx
3353
- import { jsx as jsx48, jsxs as jsxs33 } from "react/jsx-runtime";
3356
+ import { jsx as jsx49, jsxs as jsxs33 } from "react/jsx-runtime";
3354
3357
  function CheckIcon2() {
3355
- return /* @__PURE__ */ jsx48(
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__ */ jsx48("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
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__ */ jsx48("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx48("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
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__ */ jsx48(
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__ */ jsx48("div", { className: "flex-1", "aria-hidden": "true" }),
3393
- /* @__PURE__ */ jsx48(
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__ */ jsx48(CheckIcon2, {}) : index + 1
3408
+ children: isCompleted ? /* @__PURE__ */ jsx49(CheckIcon2, {}) : index + 1
3406
3409
  }
3407
3410
  ),
3408
- index < totalSteps - 1 ? /* @__PURE__ */ jsx48(
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__ */ jsx48("div", { className: "flex-1", "aria-hidden": "true" })
3420
+ ) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" })
3418
3421
  ] }),
3419
- /* @__PURE__ */ jsx48(
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 jsx49, jsxs as jsxs34 } from "react/jsx-runtime";
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__ */ jsx49(
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__ */ jsx49(
3458
+ /* @__PURE__ */ jsx50(
3456
3459
  Button,
3457
3460
  {
3458
3461
  variant: "primary",