@datatechsolutions/ui 3.12.1 → 3.13.1

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.
Files changed (143) hide show
  1. package/dist/astrlabe/graph-node.js +6 -6
  2. package/dist/astrlabe/graph-node.mjs +2 -2
  3. package/dist/astrlabe/index.js +114 -114
  4. package/dist/astrlabe/index.mjs +6 -6
  5. package/dist/astrlabe/workflow-canvas.js +6 -6
  6. package/dist/astrlabe/workflow-canvas.mjs +5 -5
  7. package/dist/{chunk-BPMYNE7S.mjs → chunk-3VCSMSJB.mjs} +6 -6
  8. package/dist/{chunk-BPMYNE7S.mjs.map → chunk-3VCSMSJB.mjs.map} +1 -1
  9. package/dist/{chunk-OM5NNUD2.mjs → chunk-4MNKVDTJ.mjs} +9 -8
  10. package/dist/chunk-4MNKVDTJ.mjs.map +1 -0
  11. package/dist/{chunk-PIIY2Z2O.mjs → chunk-4QCO4CBC.mjs} +4 -4
  12. package/dist/{chunk-PIIY2Z2O.mjs.map → chunk-4QCO4CBC.mjs.map} +1 -1
  13. package/dist/{chunk-4D23CQZM.mjs → chunk-4VEQJAXJ.mjs} +6 -6
  14. package/dist/{chunk-4D23CQZM.mjs.map → chunk-4VEQJAXJ.mjs.map} +1 -1
  15. package/dist/{chunk-FKRIQYRG.js → chunk-4Z5NZINA.js} +431 -481
  16. package/dist/chunk-4Z5NZINA.js.map +1 -0
  17. package/dist/{chunk-Z75CEP4V.js → chunk-54T5F65C.js} +29 -29
  18. package/dist/{chunk-Z75CEP4V.js.map → chunk-54T5F65C.js.map} +1 -1
  19. package/dist/{chunk-V3UZCOZI.js → chunk-7IAWXG43.js} +35 -35
  20. package/dist/{chunk-V3UZCOZI.js.map → chunk-7IAWXG43.js.map} +1 -1
  21. package/dist/{chunk-PLEWG2L7.js → chunk-AC54BNSK.js} +15 -15
  22. package/dist/{chunk-PLEWG2L7.js.map → chunk-AC54BNSK.js.map} +1 -1
  23. package/dist/{chunk-ID55ABBB.js → chunk-B3TA74C4.js} +100 -100
  24. package/dist/chunk-B3TA74C4.js.map +1 -0
  25. package/dist/{chunk-5OZTI7TR.js → chunk-CKY2QIRR.js} +6 -6
  26. package/dist/{chunk-5OZTI7TR.js.map → chunk-CKY2QIRR.js.map} +1 -1
  27. package/dist/{chunk-EZQ2D47U.js → chunk-CVEI4RQP.js} +4 -4
  28. package/dist/{chunk-EZQ2D47U.js.map → chunk-CVEI4RQP.js.map} +1 -1
  29. package/dist/{chunk-NK4H3JWN.mjs → chunk-DJHNSBIR.mjs} +63 -100
  30. package/dist/chunk-DJHNSBIR.mjs.map +1 -0
  31. package/dist/{chunk-P4RVGMZL.js → chunk-DTFU3ZTD.js} +5 -33
  32. package/dist/chunk-DTFU3ZTD.js.map +1 -0
  33. package/dist/{chunk-BHOT22QL.js → chunk-EBARYRSA.js} +2 -2
  34. package/dist/{chunk-BHOT22QL.js.map → chunk-EBARYRSA.js.map} +1 -1
  35. package/dist/{chunk-QGLGQXJE.js → chunk-FV42SSLP.js} +10 -10
  36. package/dist/chunk-FV42SSLP.js.map +1 -0
  37. package/dist/{chunk-RT264BD4.mjs → chunk-M4KRQXOT.mjs} +4 -4
  38. package/dist/{chunk-RT264BD4.mjs.map → chunk-M4KRQXOT.mjs.map} +1 -1
  39. package/dist/{chunk-WR55H7DH.mjs → chunk-O4RZCDP2.mjs} +2 -2
  40. package/dist/{chunk-WR55H7DH.mjs.map → chunk-O4RZCDP2.mjs.map} +1 -1
  41. package/dist/{chunk-VYU2FYDE.js → chunk-PM7A5I3X.js} +146 -183
  42. package/dist/chunk-PM7A5I3X.js.map +1 -0
  43. package/dist/{chunk-TDNBO3V7.js → chunk-Q7QPHZOV.js} +74 -74
  44. package/dist/{chunk-TDNBO3V7.js.map → chunk-Q7QPHZOV.js.map} +1 -1
  45. package/dist/{chunk-OW5LSEHU.mjs → chunk-QEACOJXX.mjs} +74 -74
  46. package/dist/chunk-QEACOJXX.mjs.map +1 -0
  47. package/dist/{chunk-N5GQIT7A.mjs → chunk-RMPXGEFL.mjs} +11 -10
  48. package/dist/chunk-RMPXGEFL.mjs.map +1 -0
  49. package/dist/{chunk-QSCWV47U.js → chunk-RPNMDGRA.js} +50 -50
  50. package/dist/chunk-RPNMDGRA.js.map +1 -0
  51. package/dist/{chunk-5TLKFOEL.mjs → chunk-RSCRIDMW.mjs} +275 -313
  52. package/dist/chunk-RSCRIDMW.mjs.map +1 -0
  53. package/dist/{chunk-XGAPZT4J.js → chunk-RUZPOHJW.js} +48 -47
  54. package/dist/chunk-RUZPOHJW.js.map +1 -0
  55. package/dist/{chunk-ULKZGM2T.js → chunk-RWZ2PLMQ.js} +177 -177
  56. package/dist/chunk-RWZ2PLMQ.js.map +1 -0
  57. package/dist/{chunk-UVFWKDRO.mjs → chunk-SCGICCQM.mjs} +15 -15
  58. package/dist/chunk-SCGICCQM.mjs.map +1 -0
  59. package/dist/{chunk-EDI46QA7.mjs → chunk-TRNDFSM6.mjs} +274 -324
  60. package/dist/chunk-TRNDFSM6.mjs.map +1 -0
  61. package/dist/{chunk-LRNVB7MO.js → chunk-ULSG4JLR.js} +6 -6
  62. package/dist/{chunk-LRNVB7MO.js.map → chunk-ULSG4JLR.js.map} +1 -1
  63. package/dist/{chunk-MFF37C24.js → chunk-UPWJRCAD.js} +445 -483
  64. package/dist/chunk-UPWJRCAD.js.map +1 -0
  65. package/dist/{chunk-RBH723MG.mjs → chunk-UUTTS3VV.mjs} +45 -45
  66. package/dist/chunk-UUTTS3VV.mjs.map +1 -0
  67. package/dist/{chunk-MYHBXIO2.js → chunk-VCL5LDS5.js} +42 -41
  68. package/dist/chunk-VCL5LDS5.js.map +1 -0
  69. package/dist/{chunk-PLTLRL2V.mjs → chunk-VPRAESA7.mjs} +3 -3
  70. package/dist/{chunk-PLTLRL2V.mjs.map → chunk-VPRAESA7.mjs.map} +1 -1
  71. package/dist/{chunk-HTODLUKG.js → chunk-VWZ53TE2.js} +12 -12
  72. package/dist/{chunk-HTODLUKG.js.map → chunk-VWZ53TE2.js.map} +1 -1
  73. package/dist/{chunk-3VYD7QL2.mjs → chunk-WX44DAQD.mjs} +9 -9
  74. package/dist/chunk-WX44DAQD.mjs.map +1 -0
  75. package/dist/{chunk-DJ33CSGJ.mjs → chunk-XYMHIZ3K.mjs} +5 -33
  76. package/dist/chunk-XYMHIZ3K.mjs.map +1 -0
  77. package/dist/{chunk-YXN2K77G.js → chunk-Y5VN4SPH.js} +26 -3
  78. package/dist/chunk-Y5VN4SPH.js.map +1 -0
  79. package/dist/{chunk-NQGLSM46.mjs → chunk-Y65X2NHF.mjs} +4 -4
  80. package/dist/{chunk-NQGLSM46.mjs.map → chunk-Y65X2NHF.mjs.map} +1 -1
  81. package/dist/{chunk-YYNGXKUE.mjs → chunk-YHD6SJIN.mjs} +15 -15
  82. package/dist/{chunk-YYNGXKUE.mjs.map → chunk-YHD6SJIN.mjs.map} +1 -1
  83. package/dist/{chunk-7VJ7CMMT.mjs → chunk-ZEFNBGYI.mjs} +26 -3
  84. package/dist/chunk-ZEFNBGYI.mjs.map +1 -0
  85. package/dist/{chunk-WLNY3GVM.mjs → chunk-ZPV7X4ZE.mjs} +7 -7
  86. package/dist/{chunk-WLNY3GVM.mjs.map → chunk-ZPV7X4ZE.mjs.map} +1 -1
  87. package/dist/index.js +709 -709
  88. package/dist/index.mjs +3 -3
  89. package/dist/lib/i18n-context.d.mts +12 -4
  90. package/dist/lib/i18n-context.d.ts +12 -4
  91. package/dist/lib/i18n-context.js +6 -6
  92. package/dist/lib/i18n-context.mjs +1 -1
  93. package/dist/platform/admin/index.js +12 -12
  94. package/dist/platform/admin/index.mjs +6 -6
  95. package/dist/platform/agents-workspace.js +9 -9
  96. package/dist/platform/agents-workspace.mjs +8 -8
  97. package/dist/platform/app-shell.js +5 -5
  98. package/dist/platform/app-shell.mjs +4 -4
  99. package/dist/platform/auth/index.js +29 -29
  100. package/dist/platform/auth/index.mjs +6 -6
  101. package/dist/platform/billing/index.js +7 -7
  102. package/dist/platform/billing/index.mjs +5 -5
  103. package/dist/platform/impersonation/index.js +5 -5
  104. package/dist/platform/impersonation/index.mjs +4 -4
  105. package/dist/platform/index.d.mts +1 -1
  106. package/dist/platform/index.d.ts +1 -1
  107. package/dist/platform/index.js +112 -112
  108. package/dist/platform/index.js.map +1 -1
  109. package/dist/platform/index.mjs +30 -30
  110. package/dist/platform/index.mjs.map +1 -1
  111. package/dist/platform/pages/index.d.mts +12 -2
  112. package/dist/platform/pages/index.d.ts +12 -2
  113. package/dist/platform/pages/index.js +451 -450
  114. package/dist/platform/pages/index.js.map +1 -1
  115. package/dist/platform/pages/index.mjs +51 -50
  116. package/dist/platform/pages/index.mjs.map +1 -1
  117. package/dist/platform/settings/index.js +9 -9
  118. package/dist/platform/settings/index.mjs +8 -8
  119. package/dist/platform/workflow-canvas-shell.js +7 -7
  120. package/dist/platform/workflow-canvas-shell.mjs +6 -6
  121. package/package.json +2 -1
  122. package/dist/chunk-3VYD7QL2.mjs.map +0 -1
  123. package/dist/chunk-5TLKFOEL.mjs.map +0 -1
  124. package/dist/chunk-7VJ7CMMT.mjs.map +0 -1
  125. package/dist/chunk-DJ33CSGJ.mjs.map +0 -1
  126. package/dist/chunk-EDI46QA7.mjs.map +0 -1
  127. package/dist/chunk-FKRIQYRG.js.map +0 -1
  128. package/dist/chunk-ID55ABBB.js.map +0 -1
  129. package/dist/chunk-MFF37C24.js.map +0 -1
  130. package/dist/chunk-MYHBXIO2.js.map +0 -1
  131. package/dist/chunk-N5GQIT7A.mjs.map +0 -1
  132. package/dist/chunk-NK4H3JWN.mjs.map +0 -1
  133. package/dist/chunk-OM5NNUD2.mjs.map +0 -1
  134. package/dist/chunk-OW5LSEHU.mjs.map +0 -1
  135. package/dist/chunk-P4RVGMZL.js.map +0 -1
  136. package/dist/chunk-QGLGQXJE.js.map +0 -1
  137. package/dist/chunk-QSCWV47U.js.map +0 -1
  138. package/dist/chunk-RBH723MG.mjs.map +0 -1
  139. package/dist/chunk-ULKZGM2T.js.map +0 -1
  140. package/dist/chunk-UVFWKDRO.mjs.map +0 -1
  141. package/dist/chunk-VYU2FYDE.js.map +0 -1
  142. package/dist/chunk-XGAPZT4J.js.map +0 -1
  143. package/dist/chunk-YXN2K77G.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkULKZGM2T_js = require('./chunk-ULKZGM2T.js');
5
- var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
6
- var chunkEZQ2D47U_js = require('./chunk-EZQ2D47U.js');
7
- var chunkBHOT22QL_js = require('./chunk-BHOT22QL.js');
4
+ var chunkRWZ2PLMQ_js = require('./chunk-RWZ2PLMQ.js');
5
+ var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
6
+ var chunkCVEI4RQP_js = require('./chunk-CVEI4RQP.js');
7
+ var chunkEBARYRSA_js = require('./chunk-EBARYRSA.js');
8
8
  var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
9
9
  var react = require('react');
10
10
  var react$1 = require('@xyflow/react');
@@ -589,7 +589,7 @@ var INSERTABLE_NODES = [
589
589
  { nodeType: "speech_transcriber", nameKey: "speechTranscriberNode", subcategory: "AI" }
590
590
  ];
591
591
  function EdgeInsertPopupComponent({ position, onSelect, onClose }) {
592
- const tWorkflow = chunkYXN2K77G_js.useTranslations("agents.workflow");
592
+ const tWorkflow = chunkY5VN4SPH_js.useTranslations("agents.workflow");
593
593
  const [searchQuery, setSearchQuery] = react.useState("");
594
594
  const popupRef = react.useRef(null);
595
595
  const inputRef = react.useRef(null);
@@ -752,7 +752,7 @@ function ConditionalEdgeComponent({
752
752
  transform: `translate(-50%, -50%) translate(${labelX}px,${labelY}px)`
753
753
  },
754
754
  "data-testid": `edge-label-${id}`,
755
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: labelColor, size: "xs", children: label })
755
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: labelColor, size: "xs", children: label })
756
756
  }
757
757
  ),
758
758
  showControls && !showInsertPopup && /* @__PURE__ */ jsxRuntime.jsx(
@@ -896,10 +896,10 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
896
896
  document.addEventListener("keydown", handleKeyDown);
897
897
  return () => document.removeEventListener("keydown", handleKeyDown);
898
898
  }, [showShortcuts, onCloseShortcuts]);
899
- const buttonClassName = "rounded-lg p-1.5 text-gray-600 transition-colors hover:bg-white/40 active:bg-white/60 dark:text-gray-400 dark:hover:bg-white/10 dark:active:bg-white/15";
899
+ const buttonClassName = "rounded-lg p-1.5 text-slate-600 transition-colors hover:bg-white/40 active:bg-white/60 dark:text-slate-400 dark:hover:bg-white/10 dark:active:bg-white/15";
900
900
  const activeButtonClassName = "rounded-lg p-1.5 transition-colors hover:bg-white/40 dark:hover:bg-white/10 text-indigo-600 dark:text-indigo-400";
901
- const inactiveButtonClassName = "rounded-lg p-1.5 transition-colors hover:bg-white/40 dark:hover:bg-white/10 text-gray-400 dark:text-gray-500";
902
- const dividerClassName = "mx-0.5 h-4 w-px bg-gray-400/30 dark:bg-white/10";
901
+ const inactiveButtonClassName = "rounded-lg p-1.5 transition-colors hover:bg-white/40 dark:hover:bg-white/10 text-slate-400 dark:text-slate-500";
902
+ const dividerClassName = "mx-0.5 h-4 w-px bg-slate-400/30 dark:bg-white/10";
903
903
  return /* @__PURE__ */ jsxRuntime.jsx(
904
904
  "div",
905
905
  {
@@ -919,7 +919,7 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
919
919
  {
920
920
  className: `${GLASS_CLASS} flex items-center gap-0.5 rounded-2xl px-2 py-1.5`,
921
921
  children: [
922
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mr-0.5 flex cursor-grab items-center px-0.5 active:cursor-grabbing", children: /* @__PURE__ */ jsxRuntime.jsx(outline.Bars2Icon, { className: "h-3.5 w-3.5 text-gray-400/70 dark:text-gray-500/70" }) }),
922
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mr-0.5 flex cursor-grab items-center px-0.5 active:cursor-grabbing", children: /* @__PURE__ */ jsxRuntime.jsx(outline.Bars2Icon, { className: "h-3.5 w-3.5 text-slate-400/70 dark:text-slate-500/70" }) }),
923
923
  /* @__PURE__ */ jsxRuntime.jsx(
924
924
  "button",
925
925
  {
@@ -1046,7 +1046,7 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
1046
1046
  onClick: (event) => event.stopPropagation(),
1047
1047
  onPointerDown: (event) => event.stopPropagation(),
1048
1048
  children: [
1049
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: tWorkflow("shortcuts") }),
1049
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: tWorkflow("shortcuts") }),
1050
1050
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: [
1051
1051
  { keys: "V", label: tWorkflow("pointerMode") },
1052
1052
  { keys: "H", label: tWorkflow("handMode") },
@@ -1068,11 +1068,11 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
1068
1068
  { keys: "G", label: tWorkflow("toggleDots") },
1069
1069
  { keys: "M", label: tWorkflow("toggleMinimap") }
1070
1070
  ].map((shortcut) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1071
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-gray-600 dark:text-gray-300", children: shortcut.label }),
1071
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-slate-600 dark:text-slate-300", children: shortcut.label }),
1072
1072
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center gap-0.5", children: shortcut.keys.split(" ").map((key) => /* @__PURE__ */ jsxRuntime.jsx(
1073
1073
  "kbd",
1074
1074
  {
1075
- className: "inline-flex min-w-[20px] items-center justify-center rounded-md bg-white/60 px-1.5 py-0.5 text-[10px] font-medium text-gray-500 shadow-sm ring-1 ring-inset ring-gray-300/40 dark:bg-white/10 dark:text-gray-400 dark:ring-white/10",
1075
+ className: "inline-flex min-w-[20px] items-center justify-center rounded-md bg-white/60 px-1.5 py-0.5 text-[10px] font-medium text-slate-500 shadow-sm ring-1 ring-inset ring-slate-300/40 dark:bg-white/10 dark:text-slate-400 dark:ring-white/10",
1076
1076
  children: key
1077
1077
  },
1078
1078
  key
@@ -1200,24 +1200,24 @@ function getDatasourceLogo(datasourceId, dialect) {
1200
1200
  }
1201
1201
  return null;
1202
1202
  }
1203
- var TYPE_COLORS = {
1204
- string: "bg-gray-500/10 text-gray-500 dark:text-gray-400",
1205
- varchar: "bg-gray-500/10 text-gray-500 dark:text-gray-400",
1206
- text: "bg-gray-500/10 text-gray-500 dark:text-gray-400",
1207
- integer: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1208
- int: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1209
- bigint: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1210
- number: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1211
- decimal: "bg-indigo-500/10 text-indigo-600 dark:text-indigo-400",
1212
- float: "bg-indigo-500/10 text-indigo-600 dark:text-indigo-400",
1213
- boolean: "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400",
1214
- date: "bg-amber-500/10 text-amber-600 dark:text-amber-400",
1215
- timestamp: "bg-amber-500/10 text-amber-600 dark:text-amber-400",
1216
- datetime: "bg-amber-500/10 text-amber-600 dark:text-amber-400",
1217
- json: "bg-violet-500/10 text-violet-600 dark:text-violet-400",
1218
- jsonb: "bg-violet-500/10 text-violet-600 dark:text-violet-400",
1219
- uuid: "bg-teal-500/10 text-teal-600 dark:text-teal-400",
1220
- array: "bg-pink-500/10 text-pink-600 dark:text-pink-400"
1203
+ var TYPE_BADGE_COLORS = {
1204
+ string: "zinc",
1205
+ varchar: "zinc",
1206
+ text: "zinc",
1207
+ integer: "blue",
1208
+ int: "blue",
1209
+ bigint: "blue",
1210
+ number: "blue",
1211
+ decimal: "indigo",
1212
+ float: "indigo",
1213
+ boolean: "emerald",
1214
+ date: "amber",
1215
+ timestamp: "amber",
1216
+ datetime: "amber",
1217
+ json: "violet",
1218
+ jsonb: "violet",
1219
+ uuid: "teal",
1220
+ array: "pink"
1221
1221
  };
1222
1222
  var SIDEBAR_SECTIONS = [
1223
1223
  { id: "connection", label: "Connection", icon: outline.CircleStackIcon },
@@ -1237,7 +1237,7 @@ function DatasourceNodeConfigForm({
1237
1237
  onLoadSchema,
1238
1238
  readOnly = false
1239
1239
  }) {
1240
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.datasourceNodeConfig");
1240
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.datasourceNodeConfig");
1241
1241
  const [activeSectionId, setActiveSectionId] = react.useState("connection");
1242
1242
  const [selectedDatasourceId, setSelectedDatasourceId] = react.useState(config.datasourceId ?? "");
1243
1243
  const [selectedTable, setSelectedTable] = react.useState(config.table ?? "");
@@ -1373,7 +1373,7 @@ function DatasourceNodeConfigForm({
1373
1373
  switch (activeSectionId) {
1374
1374
  case "connection":
1375
1375
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1376
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("datasourceHelp") }),
1376
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("datasourceHelp") }),
1377
1377
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: datasources.map((datasource) => {
1378
1378
  const isSelected = datasource.id === selectedDatasourceId;
1379
1379
  const logo2 = getDatasourceLogo(datasource.id, datasource.dialect);
@@ -1388,12 +1388,12 @@ function DatasourceNodeConfigForm({
1388
1388
  }
1389
1389
  },
1390
1390
  disabled: readOnly && datasource.id !== selectedDatasourceId,
1391
- className: `flex items-center gap-3 rounded-xl border px-3 py-2.5 text-left transition-all ${isSelected ? "border-cyan-500/50 bg-cyan-500/5 ring-1 ring-cyan-500/20 dark:border-cyan-400/40 dark:bg-cyan-400/5" : "border-gray-200 bg-white hover:border-gray-300 hover:shadow-sm dark:border-white/10 dark:bg-white/[0.03] dark:hover:border-white/20"}`,
1391
+ className: `flex items-center gap-3 rounded-xl px-3 py-2.5 text-left transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${isSelected ? "border border-cyan-500/50 bg-cyan-500/5 ring-1 ring-cyan-500/20 dark:border-cyan-400/40 dark:bg-cyan-400/5" : "liquid-surface hover:shadow-sm"}`,
1392
1392
  children: [
1393
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center", children: logo2 ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo2, alt: datasource.dialect, className: "h-7 w-7" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ServerStackIcon, { className: "h-6 w-6 text-gray-400" }) }),
1393
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center", children: logo2 ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo2, alt: datasource.dialect, className: "h-7 w-7" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ServerStackIcon, { className: "h-6 w-6 text-slate-400" }) }),
1394
1394
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
1395
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-gray-900 dark:text-white", children: datasource.name }),
1396
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: datasource.dialect })
1395
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-slate-900 dark:text-white", children: datasource.name }),
1396
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: datasource.dialect })
1397
1397
  ] }),
1398
1398
  isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-4 w-4 shrink-0 text-cyan-500 dark:text-cyan-400" })
1399
1399
  ]
@@ -1404,10 +1404,10 @@ function DatasourceNodeConfigForm({
1404
1404
  ] });
1405
1405
  case "table":
1406
1406
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1407
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("tableHelp") }),
1408
- !selectedDatasourceId ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-gray-400", children: t("selectDatasource") }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1409
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-gray-200/50 px-3 py-2 dark:border-white/5", children: [
1410
- /* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-gray-400" }),
1407
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("tableHelp") }),
1408
+ !selectedDatasourceId ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-slate-400", children: t("selectDatasource") }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1409
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-slate-200/50 px-3 py-2 dark:border-white/5", children: [
1410
+ /* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-slate-400" }),
1411
1411
  /* @__PURE__ */ jsxRuntime.jsx(
1412
1412
  "input",
1413
1413
  {
@@ -1415,13 +1415,13 @@ function DatasourceNodeConfigForm({
1415
1415
  value: tableSearch,
1416
1416
  onChange: (event) => setTableSearch(event.target.value),
1417
1417
  placeholder: t("selectTable"),
1418
- className: "flex-1 bg-transparent text-xs text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1418
+ className: "flex-1 bg-transparent text-xs text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
1419
1419
  }
1420
1420
  ),
1421
- availableTables.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400", children: availableTables.length })
1421
+ availableTables.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400", children: availableTables.length })
1422
1422
  ] }),
1423
1423
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-64 overflow-y-auto p-1", children: [
1424
- filteredTables.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-gray-400", children: t("noColumnsAvailable") }),
1424
+ filteredTables.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-slate-400", children: t("noColumnsAvailable") }),
1425
1425
  filteredTables.map((table) => {
1426
1426
  const isSelected = table === selectedTable;
1427
1427
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1434,9 +1434,9 @@ function DatasourceNodeConfigForm({
1434
1434
  setActiveSectionId("columns");
1435
1435
  }
1436
1436
  },
1437
- className: `flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${isSelected ? "bg-cyan-500/10 font-semibold text-cyan-700 dark:text-cyan-300" : "text-gray-700 hover:bg-gray-100/60 dark:text-gray-300 dark:hover:bg-white/5"}`,
1437
+ className: `flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${isSelected ? "bg-cyan-500/10 font-semibold text-cyan-700 dark:text-cyan-300" : "text-slate-700 hover:bg-slate-100/60 dark:text-slate-300 dark:hover:bg-white/5"}`,
1438
1438
  children: [
1439
- /* @__PURE__ */ jsxRuntime.jsx(outline.TableCellsIcon, { className: "h-3.5 w-3.5 shrink-0 text-gray-400" }),
1439
+ /* @__PURE__ */ jsxRuntime.jsx(outline.TableCellsIcon, { className: "h-3.5 w-3.5 shrink-0 text-slate-400" }),
1440
1440
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: table }),
1441
1441
  isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "ml-auto h-3.5 w-3.5 shrink-0 text-cyan-500" })
1442
1442
  ]
@@ -1450,7 +1450,7 @@ function DatasourceNodeConfigForm({
1450
1450
  case "columns":
1451
1451
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1452
1452
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1453
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: [
1453
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
1454
1454
  selectedColumns.length,
1455
1455
  "/",
1456
1456
  availableColumns.length,
@@ -1462,14 +1462,14 @@ function DatasourceNodeConfigForm({
1462
1462
  type: "button",
1463
1463
  onClick: () => setSelectedColumns(allSelected ? [] : [...allColumnNames]),
1464
1464
  disabled: availableColumns.length === 0,
1465
- className: "text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 disabled:opacity-40 dark:text-cyan-400",
1465
+ className: "text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 disabled:opacity-40 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-cyan-400",
1466
1466
  children: allSelected ? t("deselectAll") : t("selectAll")
1467
1467
  }
1468
1468
  )
1469
1469
  ] }),
1470
- !selectedTable ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-gray-400", children: t("selectTable") }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1471
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-gray-200/50 px-3 py-2 dark:border-white/5", children: [
1472
- /* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-gray-400" }),
1470
+ !selectedTable ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-slate-400", children: t("selectTable") }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1471
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-slate-200/50 px-3 py-2 dark:border-white/5", children: [
1472
+ /* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-slate-400" }),
1473
1473
  /* @__PURE__ */ jsxRuntime.jsx(
1474
1474
  "input",
1475
1475
  {
@@ -1477,15 +1477,15 @@ function DatasourceNodeConfigForm({
1477
1477
  value: columnSearch,
1478
1478
  onChange: (event) => setColumnSearch(event.target.value),
1479
1479
  placeholder: "Search columns...",
1480
- className: "flex-1 bg-transparent text-xs text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1480
+ className: "flex-1 bg-transparent text-xs text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
1481
1481
  }
1482
1482
  )
1483
1483
  ] }),
1484
1484
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-64 overflow-y-auto p-1", children: [
1485
- filteredColumns.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-gray-400", children: t("noColumnsAvailable") }),
1485
+ filteredColumns.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-slate-400", children: t("noColumnsAvailable") }),
1486
1486
  filteredColumns.map((column) => {
1487
1487
  const isSelected = selectedColumns.includes(column.name);
1488
- const typeColor = TYPE_COLORS[column.type.toLowerCase()] ?? TYPE_COLORS.string;
1488
+ const typeBadgeColor = TYPE_BADGE_COLORS[column.type.toLowerCase()] ?? TYPE_BADGE_COLORS.string;
1489
1489
  return /* @__PURE__ */ jsxRuntime.jsxs(
1490
1490
  "button",
1491
1491
  {
@@ -1493,14 +1493,14 @@ function DatasourceNodeConfigForm({
1493
1493
  onClick: () => {
1494
1494
  if (!readOnly) handleToggleColumn(column.name);
1495
1495
  },
1496
- className: `flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left transition-colors ${isSelected ? "bg-cyan-500/8 dark:bg-cyan-400/5" : "hover:bg-gray-100/60 dark:hover:bg-white/5"}`,
1496
+ className: `flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${isSelected ? "bg-cyan-500/8 dark:bg-cyan-400/5" : "hover:bg-slate-100/60 dark:hover:bg-white/5"}`,
1497
1497
  children: [
1498
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors ${isSelected ? "border-cyan-500 bg-cyan-500 dark:border-cyan-400 dark:bg-cyan-400" : "border-gray-300 dark:border-gray-600"}`, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-2.5 w-2.5 text-white" }) }),
1499
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex-1 truncate text-xs text-gray-900 dark:text-white", children: [
1498
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors ${isSelected ? "border-cyan-500 bg-cyan-500 dark:border-cyan-400 dark:bg-cyan-400" : "border-slate-300 dark:border-slate-600"}`, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-2.5 w-2.5 text-white" }) }),
1499
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex-1 truncate text-xs text-slate-900 dark:text-white", children: [
1500
1500
  column.name,
1501
- column.nullable && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-[9px] text-gray-400", children: "?" })
1501
+ column.nullable && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-[9px] text-slate-400", children: "?" })
1502
1502
  ] }),
1503
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `shrink-0 rounded-full px-1.5 py-0.5 text-[9px] font-medium ${typeColor}`, children: column.type })
1503
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: typeBadgeColor, size: "xs", children: column.type })
1504
1504
  ]
1505
1505
  },
1506
1506
  column.name
@@ -1512,13 +1512,13 @@ function DatasourceNodeConfigForm({
1512
1512
  case "filters":
1513
1513
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1514
1514
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1515
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("filtersHelp") }),
1515
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("filtersHelp") }),
1516
1516
  !readOnly && /* @__PURE__ */ jsxRuntime.jsxs(
1517
1517
  "button",
1518
1518
  {
1519
1519
  type: "button",
1520
1520
  onClick: handleAddFilter,
1521
- className: "flex items-center gap-1 text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 dark:text-cyan-400",
1521
+ className: "flex items-center gap-1 text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-cyan-400",
1522
1522
  children: [
1523
1523
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-3 w-3" }),
1524
1524
  t("addFilter")
@@ -1527,14 +1527,14 @@ function DatasourceNodeConfigForm({
1527
1527
  )
1528
1528
  ] }),
1529
1529
  filterEntries.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2 py-8", children: [
1530
- /* @__PURE__ */ jsxRuntime.jsx(outline.FunnelIcon, { className: "h-8 w-8 text-gray-300 dark:text-gray-600" }),
1531
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-400", children: "No filters configured" }),
1530
+ /* @__PURE__ */ jsxRuntime.jsx(outline.FunnelIcon, { className: "h-8 w-8 text-slate-300 dark:text-slate-600" }),
1531
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-400", children: "No filters configured" }),
1532
1532
  /* @__PURE__ */ jsxRuntime.jsxs(
1533
1533
  "button",
1534
1534
  {
1535
1535
  type: "button",
1536
1536
  onClick: handleAddFilter,
1537
- className: "flex items-center gap-1 rounded-lg bg-cyan-500/10 px-3 py-1.5 text-[10px] font-semibold text-cyan-600 hover:bg-cyan-500/15 dark:text-cyan-400",
1537
+ className: "flex items-center gap-1 rounded-lg bg-cyan-500/10 px-3 py-1.5 text-[10px] font-semibold text-cyan-600 hover:bg-cyan-500/15 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-cyan-400",
1538
1538
  children: [
1539
1539
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-3 w-3" }),
1540
1540
  t("addFilter")
@@ -1544,14 +1544,15 @@ function DatasourceNodeConfigForm({
1544
1544
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: filterEntries.map((row, index) => {
1545
1545
  const currentOp = row.op ?? "eq";
1546
1546
  const valueDisplay = Array.isArray(row.value) ? row.value.map(String).join(", ") : row.value == null ? "" : String(row.value);
1547
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 rounded-xl border border-gray-200 bg-white px-3 py-2 dark:border-white/10 dark:bg-white/[0.03]", children: [
1547
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface flex items-center gap-2 rounded-xl px-3 py-2", children: [
1548
1548
  /* @__PURE__ */ jsxRuntime.jsxs(
1549
1549
  "select",
1550
1550
  {
1551
1551
  value: row.column,
1552
1552
  onChange: (event) => handleUpdateFilterColumn(index, event.target.value),
1553
1553
  disabled: readOnly,
1554
- className: "w-[28%] rounded bg-transparent text-xs text-gray-900 outline-none disabled:opacity-60 dark:text-white",
1554
+ "aria-label": t("columnName"),
1555
+ className: "w-[28%] rounded bg-transparent text-xs text-slate-900 outline-none focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 disabled:opacity-60 dark:text-white",
1555
1556
  children: [
1556
1557
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("columnName") }),
1557
1558
  availableColumns.map((column) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: column.name, children: column.name }, column.name))
@@ -1564,7 +1565,8 @@ function DatasourceNodeConfigForm({
1564
1565
  value: currentOp,
1565
1566
  onChange: (event) => handleUpdateFilterOp(index, event.target.value),
1566
1567
  disabled: readOnly,
1567
- className: "w-[18%] rounded bg-gray-50 px-1 text-center text-[10px] font-semibold uppercase text-gray-700 outline-none disabled:opacity-60 dark:bg-white/[0.05] dark:text-gray-200",
1568
+ "aria-label": t("filterOperator", { _: "Filter operator" }),
1569
+ className: "w-[18%] rounded bg-white/40 px-1 text-center text-[10px] font-semibold uppercase text-slate-700 outline-none backdrop-blur-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 disabled:opacity-60 dark:bg-white/[0.04] dark:text-slate-200",
1568
1570
  title: t("filterOperator", { _: "Filter operator" }),
1569
1571
  children: [
1570
1572
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "eq", children: "= (eq)" }),
@@ -1586,7 +1588,7 @@ function DatasourceNodeConfigForm({
1586
1588
  onChange: (event) => handleUpdateFilterValue(index, event.target.value),
1587
1589
  placeholder: currentOp === "in" ? "comma-separated, e.g. SP, RJ, MG" : t("variableReference"),
1588
1590
  readOnly,
1589
- className: "flex-1 bg-transparent text-xs text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1591
+ className: "flex-1 bg-transparent text-xs text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
1590
1592
  }
1591
1593
  ),
1592
1594
  !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
@@ -1594,7 +1596,7 @@ function DatasourceNodeConfigForm({
1594
1596
  {
1595
1597
  type: "button",
1596
1598
  onClick: () => handleRemoveFilter(index),
1597
- className: "shrink-0 rounded-md p-1 text-gray-400 transition-colors hover:bg-red-50 hover:text-red-500 dark:hover:bg-red-900/20",
1599
+ className: "shrink-0 rounded-md p-1 text-slate-400 transition-colors hover:bg-red-50 hover:text-red-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:hover:bg-red-900/20",
1598
1600
  children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-3 w-3" })
1599
1601
  }
1600
1602
  )
@@ -1604,10 +1606,10 @@ function DatasourceNodeConfigForm({
1604
1606
  case "output":
1605
1607
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
1606
1608
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1607
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("outputVariableLabel") }),
1608
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-gray-500 dark:text-gray-400", children: t("outputVariableHelp") }),
1609
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 rounded-xl border border-gray-200 bg-white px-3 py-2.5 dark:border-white/10 dark:bg-white/[0.03]", children: [
1610
- /* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-4 w-4 text-gray-400" }),
1609
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
1610
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-slate-500 dark:text-slate-400", children: t("outputVariableHelp") }),
1611
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface flex items-center gap-2 rounded-xl px-3 py-2.5", children: [
1612
+ /* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-4 w-4 text-slate-400" }),
1611
1613
  /* @__PURE__ */ jsxRuntime.jsx(
1612
1614
  "input",
1613
1615
  {
@@ -1616,14 +1618,14 @@ function DatasourceNodeConfigForm({
1616
1618
  onChange: (event) => setOutputVariable(event.target.value),
1617
1619
  placeholder: "datasourceResult",
1618
1620
  readOnly,
1619
- className: "flex-1 bg-transparent text-sm text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1621
+ className: "flex-1 bg-transparent text-sm text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
1620
1622
  }
1621
1623
  )
1622
1624
  ] })
1623
1625
  ] }),
1624
1626
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1625
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("limitLabel") }),
1626
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-gray-500 dark:text-gray-400", children: t("limitHelp") }),
1627
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("limitLabel") }),
1628
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-slate-500 dark:text-slate-400", children: t("limitHelp") }),
1627
1629
  /* @__PURE__ */ jsxRuntime.jsx(
1628
1630
  "input",
1629
1631
  {
@@ -1633,15 +1635,15 @@ function DatasourceNodeConfigForm({
1633
1635
  min: 1,
1634
1636
  max: 1e4,
1635
1637
  readOnly,
1636
- className: "w-32 rounded-xl border border-gray-200 bg-white px-3 py-2.5 text-sm text-gray-900 outline-none focus:border-cyan-400 dark:border-white/10 dark:bg-white/[0.03] dark:text-white"
1638
+ className: "liquid-surface w-32 rounded-xl px-3 py-2.5 text-sm text-slate-900 outline-none focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white"
1637
1639
  }
1638
1640
  )
1639
1641
  ] }),
1640
1642
  selectedDatasource && selectedTable && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-cyan-500/20 bg-cyan-500/5 p-3 dark:border-cyan-400/15 dark:bg-cyan-400/5", children: [
1641
1643
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-cyan-600 dark:text-cyan-400 mb-2", children: "Summary" }),
1642
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-xs text-gray-600 dark:text-gray-300", children: [
1644
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-xs text-slate-600 dark:text-slate-300", children: [
1643
1645
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1644
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: "Source:" }),
1646
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Source:" }),
1645
1647
  " ",
1646
1648
  selectedDatasource.name,
1647
1649
  " (",
@@ -1649,29 +1651,29 @@ function DatasourceNodeConfigForm({
1649
1651
  ")"
1650
1652
  ] }),
1651
1653
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1652
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: "Table:" }),
1654
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Table:" }),
1653
1655
  " ",
1654
1656
  selectedTable
1655
1657
  ] }),
1656
1658
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1657
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: "Columns:" }),
1659
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Columns:" }),
1658
1660
  " ",
1659
1661
  selectedColumns.length,
1660
1662
  " of ",
1661
1663
  availableColumns.length
1662
1664
  ] }),
1663
1665
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1664
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: "Filters:" }),
1666
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Filters:" }),
1665
1667
  " ",
1666
1668
  filterEntries.length
1667
1669
  ] }),
1668
1670
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1669
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: "Limit:" }),
1671
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Limit:" }),
1670
1672
  " ",
1671
1673
  limit
1672
1674
  ] }),
1673
1675
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1674
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: "Output:" }),
1676
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Output:" }),
1675
1677
  " ",
1676
1678
  outputVariable || "\u2014"
1677
1679
  ] })
@@ -1684,7 +1686,7 @@ function DatasourceNodeConfigForm({
1684
1686
  }
1685
1687
  const logo = getDatasourceLogo(selectedDatasourceId, selectedDatasource?.dialect);
1686
1688
  return /* @__PURE__ */ jsxRuntime.jsx(
1687
- chunkULKZGM2T_js.GlassModal,
1689
+ chunkRWZ2PLMQ_js.GlassModal,
1688
1690
  {
1689
1691
  open,
1690
1692
  onClose: onCancel,
@@ -1699,8 +1701,8 @@ function DatasourceNodeConfigForm({
1699
1701
  onSectionChange: setActiveSectionId
1700
1702
  },
1701
1703
  footer: readOnly ? void 0 : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 px-6 py-3", children: [
1702
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { outline: true, onClick: onCancel, children: t("cancel") }),
1703
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { color: "cyan", onClick: handleSave, disabled: !canSave, children: t("save") })
1704
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { outline: true, onClick: onCancel, children: t("cancel") }),
1705
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { color: "cyan", onClick: handleSave, disabled: !canSave, children: t("save") })
1704
1706
  ] }),
1705
1707
  children: renderSection()
1706
1708
  }
@@ -1911,23 +1913,23 @@ function NodeInteractiveCard({
1911
1913
  );
1912
1914
  }
1913
1915
  function NodeIconBubble({ tone, children }) {
1914
- return /* @__PURE__ */ jsxRuntime.jsx(chunkEZQ2D47U_js.GraphNodeIconBubble, { className: `bg-gradient-to-br ${LOGIC_NODE_GRADIENTS[tone]}`, children });
1916
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeIconBubble, { className: `bg-gradient-to-br ${LOGIC_NODE_GRADIENTS[tone]}`, children });
1915
1917
  }
1916
1918
  function NodeCardHeader({ icon, title, description, compact = false, iconClassName }) {
1917
- return /* @__PURE__ */ jsxRuntime.jsx(chunkEZQ2D47U_js.GraphNodeHeader, { icon, title, description, compact, iconClassName });
1919
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeHeader, { icon, title, description, compact, iconClassName });
1918
1920
  }
1919
1921
  function NodeCardMeta({ compact = false, children }) {
1920
- return /* @__PURE__ */ jsxRuntime.jsx(chunkEZQ2D47U_js.GraphNodeMeta, { compact, children });
1922
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeMeta, { compact, children });
1921
1923
  }
1922
1924
  function NodeCardBadge({ children, className, tone, soft = false }) {
1923
1925
  if (tone) {
1924
1926
  const toneClass = soft ? LOGIC_NODE_BADGE_SOFT_COLORS[tone] : LOGIC_NODE_BADGE_COLORS[tone];
1925
- return /* @__PURE__ */ jsxRuntime.jsx(chunkEZQ2D47U_js.GraphNodeBadge, { className: `inline-flex items-center rounded-full px-2 py-0.5 text-[10px] ${soft ? "font-medium" : "font-semibold"} ${toneClass}`, children });
1927
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeBadge, { className: `inline-flex items-center rounded-full px-2 py-0.5 text-[10px] ${soft ? "font-medium" : "font-semibold"} ${toneClass}`, children });
1926
1928
  }
1927
1929
  if (className) {
1928
- return /* @__PURE__ */ jsxRuntime.jsx(chunkEZQ2D47U_js.GraphNodeBadge, { className, children });
1930
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeBadge, { className, children });
1929
1931
  }
1930
- return /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children });
1932
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children });
1931
1933
  }
1932
1934
  function NodeCardDeleteAction({ nodeId, onDelete }) {
1933
1935
  if (!onDelete) return null;
@@ -2060,14 +2062,14 @@ function NodeRunningIndicatorComponent({ nodeId }) {
2060
2062
  }
2061
2063
  var NodeRunningIndicator = react.memo(NodeRunningIndicatorComponent);
2062
2064
  var AgentFlowNode = react.memo(function AgentFlowNode2({ id, data, selected }) {
2063
- const t = chunkYXN2K77G_js.useTranslations("agents");
2065
+ const t = chunkY5VN4SPH_js.useTranslations("agents");
2064
2066
  const isCompact = data.displayMode === "compact";
2065
2067
  if (!data.agent?.name) {
2066
2068
  const agentLabel = data.label;
2067
2069
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2068
2070
  /* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
2069
- /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2070
- /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2071
+ /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2072
+ /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2071
2073
  /* @__PURE__ */ jsxRuntime.jsx(NodeCard, { variant: "error", nodeType: "agent", width: "w-[320px]", children: /* @__PURE__ */ jsxRuntime.jsx(
2072
2074
  NodeCardHeader,
2073
2075
  {
@@ -2085,41 +2087,41 @@ var AgentFlowNode = react.memo(function AgentFlowNode2({ id, data, selected }) {
2085
2087
  const frameworkMeta = getFrameworkMeta(data.agent.framework);
2086
2088
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2087
2089
  /* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
2088
- /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2089
- /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2090
+ /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2091
+ /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2090
2092
  /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => data.onSelect(agentId), className: "w-full text-left", children: /* @__PURE__ */ jsxRuntime.jsxs(NodeCard, { compact: isCompact, selected, nodeType: "agent", width: "w-[320px]", children: [
2091
2093
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
2092
2094
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-shrink-0", children: [
2093
- data.agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: data.agent.avatar, alt: data.agent.name, className: "h-11 w-11 rounded-full bg-white shadow-sm ring-1 ring-gray-200/50 dark:bg-gray-800 dark:ring-white/10" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-full bg-gradient-to-br from-indigo-500/25 to-purple-500/25 ring-1 ring-indigo-500/30", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-6 w-6 text-indigo-500 dark:text-indigo-300" }) }),
2094
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-4 w-4 items-center justify-center rounded-full bg-indigo-500 ring-2 ring-white dark:ring-gray-900", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-2.5 w-2.5 text-white" }) })
2095
+ data.agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: data.agent.avatar, alt: data.agent.name, className: "h-11 w-11 rounded-full bg-white shadow-sm ring-1 ring-slate-200/50 dark:bg-slate-800 dark:ring-white/10" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-full bg-gradient-to-br from-indigo-500/25 to-purple-500/25 ring-1 ring-indigo-500/30", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-6 w-6 text-indigo-500 dark:text-indigo-300" }) }),
2096
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-4 w-4 items-center justify-center rounded-full bg-indigo-500 ring-2 ring-white dark:ring-slate-900", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-2.5 w-2.5 text-white" }) })
2095
2097
  ] }),
2096
2098
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2097
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-semibold text-gray-900 dark:text-white", children: data.agent.name }),
2098
- !isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-gray-500 dark:text-gray-400", children: data.agent.role })
2099
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-semibold text-slate-900 dark:text-white", children: data.agent.name }),
2100
+ !isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-slate-500 dark:text-slate-400", children: data.agent.role })
2099
2101
  ] })
2100
2102
  ] }),
2101
2103
  /* @__PURE__ */ jsxRuntime.jsx(NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
2102
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "indigo", size: "xs", children: "Agent" }),
2104
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "indigo", size: "xs", children: "Agent" }),
2103
2105
  (() => {
2104
2106
  const tier = chunk72SWXOD5_js.getAgentTier(Number(data.agent.elo ?? 0));
2105
- return /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: tier.pillColor, children: tier.key });
2107
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: tier.pillColor, children: tier.key });
2106
2108
  })(),
2107
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: frameworkMeta.badgeColor, icon: /* @__PURE__ */ jsxRuntime.jsx(frameworkMeta.IconComponent, { className: "h-3 w-3" }), children: frameworkMeta.label }),
2108
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "blue", size: "xs", children: data.agent.modelId }),
2109
- /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: [
2109
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: frameworkMeta.badgeColor, icon: /* @__PURE__ */ jsxRuntime.jsx(frameworkMeta.IconComponent, { className: "h-3 w-3" }), children: frameworkMeta.label }),
2110
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "blue", size: "xs", children: data.agent.modelId }),
2111
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: [
2110
2112
  "T: ",
2111
2113
  data.agent.temperature
2112
2114
  ] }),
2113
- /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: [
2115
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: [
2114
2116
  "v",
2115
2117
  data.agent.activePromptVersion
2116
2118
  ] }),
2117
2119
  data.agentTools && data.agentTools.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2118
2120
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full" }),
2119
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center gap-1 border-t border-gray-200/20 pt-1 dark:border-white/5", children: [
2121
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center gap-1 border-t border-slate-200/20 pt-1 dark:border-white/5", children: [
2120
2122
  /* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: "h-3 w-3 shrink-0 text-amber-500 dark:text-amber-400" }),
2121
2123
  data.agentTools.slice(0, 3).map((tool) => /* @__PURE__ */ jsxRuntime.jsx(
2122
- chunkBHOT22QL_js.Badge,
2124
+ chunkEBARYRSA_js.Badge,
2123
2125
  {
2124
2126
  color: tool.enabled ? "amber" : "zinc",
2125
2127
  size: "xs",
@@ -2128,7 +2130,7 @@ var AgentFlowNode = react.memo(function AgentFlowNode2({ id, data, selected }) {
2128
2130
  },
2129
2131
  tool.id
2130
2132
  )),
2131
- data.agentTools.length > 3 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: [
2133
+ data.agentTools.length > 3 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: [
2132
2134
  "+",
2133
2135
  data.agentTools.length - 3
2134
2136
  ] })
@@ -2173,7 +2175,7 @@ var CATEGORY_PILL = {
2173
2175
  custom: "bg-amber-500/15 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300"
2174
2176
  };
2175
2177
  var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selected }) {
2176
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2178
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2177
2179
  const { agentTool, onRemoveFromCanvas } = data;
2178
2180
  const isCompact = data.displayMode === "compact";
2179
2181
  if (!agentTool?.name) {
@@ -2216,7 +2218,7 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
2216
2218
  event.stopPropagation();
2217
2219
  },
2218
2220
  children: /* @__PURE__ */ jsxRuntime.jsx(
2219
- chunkULKZGM2T_js.ToggleSwitch,
2221
+ chunkRWZ2PLMQ_js.ToggleSwitch,
2220
2222
  {
2221
2223
  checked: Boolean(agentTool.enabled),
2222
2224
  onChange: () => data.onToggle?.(agentTool),
@@ -2229,9 +2231,9 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
2229
2231
  )
2230
2232
  ] }),
2231
2233
  /* @__PURE__ */ jsxRuntime.jsx(NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
2232
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "amber", size: "xs", children: t("agentToolNode") }),
2233
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: pill, children: category }),
2234
- agentTool.parameters && agentTool.parameters.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: [
2234
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "amber", size: "xs", children: t("agentToolNode") }),
2235
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: pill, children: category }),
2236
+ agentTool.parameters && agentTool.parameters.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: [
2235
2237
  agentTool.parameters.length,
2236
2238
  " params"
2237
2239
  ] }),
@@ -2256,7 +2258,7 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
2256
2258
  ] });
2257
2259
  });
2258
2260
  var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
2259
- const t = chunkYXN2K77G_js.useTranslations("admin.tools");
2261
+ const t = chunkY5VN4SPH_js.useTranslations("admin.tools");
2260
2262
  const { tool, onRemoveFromCanvas } = data;
2261
2263
  const isCompact = data.displayMode === "compact";
2262
2264
  if (!tool?.name) {
@@ -2299,7 +2301,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
2299
2301
  const categoryPill = CATEGORY_PILL_COLORS[categoryKey] ?? CATEGORY_PILL_COLORS.external;
2300
2302
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2301
2303
  /* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
2302
- /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2304
+ /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2303
2305
  /* @__PURE__ */ jsxRuntime.jsx(
2304
2306
  "button",
2305
2307
  {
@@ -2311,8 +2313,8 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
2311
2313
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
2312
2314
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-5 w-5 text-white" }) }),
2313
2315
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2314
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: tool.name }),
2315
- !isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 line-clamp-1 text-xs text-gray-500 dark:text-gray-400", children: String(tool.description ?? "") })
2316
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: tool.name }),
2317
+ !isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 line-clamp-1 text-xs text-slate-500 dark:text-slate-400", children: String(tool.description ?? "") })
2316
2318
  ] })
2317
2319
  ] }),
2318
2320
  onToggle && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2324,7 +2326,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
2324
2326
  event.preventDefault();
2325
2327
  },
2326
2328
  children: /* @__PURE__ */ jsxRuntime.jsx(
2327
- chunkULKZGM2T_js.ToggleSwitch,
2329
+ chunkRWZ2PLMQ_js.ToggleSwitch,
2328
2330
  {
2329
2331
  checked: Boolean(tool.enabled),
2330
2332
  onChange: () => onToggle(tool),
@@ -2338,9 +2340,9 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
2338
2340
  ] }),
2339
2341
  /* @__PURE__ */ jsxRuntime.jsxs(NodeCardMeta, { compact: isCompact, children: [
2340
2342
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2341
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "teal", size: "xs", children: t("nodeType") }),
2342
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: categoryPill, children: tool.category }),
2343
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2343
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "teal", size: "xs", children: t("nodeType") }),
2344
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: categoryPill, children: tool.category }),
2345
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2344
2346
  String(tool.timeoutMs ?? ""),
2345
2347
  "ms"
2346
2348
  ] })
@@ -2368,7 +2370,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
2368
2370
  ] });
2369
2371
  });
2370
2372
  var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2371
- const t = chunkYXN2K77G_js.useTranslations("admin.rules");
2373
+ const t = chunkY5VN4SPH_js.useTranslations("admin.rules");
2372
2374
  const { rule, onRemoveFromCanvas } = data;
2373
2375
  const isCompact = data.displayMode === "compact";
2374
2376
  if (!rule?.action) {
@@ -2390,18 +2392,18 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2390
2392
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
2391
2393
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-violet-400 to-purple-500 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ScaleIcon, { className: "h-5 w-5 text-white" }) }),
2392
2394
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2393
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: ruleLabel || t("ruleEngine") }),
2394
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: t("ruleEngineDescription") })
2395
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: ruleLabel || t("ruleEngine") }),
2396
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-slate-500 dark:text-slate-400", children: t("ruleEngineDescription") })
2395
2397
  ] })
2396
2398
  ] }),
2397
2399
  !isCompact && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between", children: [
2398
2400
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2399
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "violet", size: "xs", children: t("ruleEngine") }),
2400
- contextVariableCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2401
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "violet", size: "xs", children: t("ruleEngine") }),
2402
+ contextVariableCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2401
2403
  contextVariableCount,
2402
2404
  " vars"
2403
2405
  ] }),
2404
- ruleConfig.outputVariable && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2406
+ ruleConfig.outputVariable && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2405
2407
  "\u2192 ",
2406
2408
  ruleConfig.outputVariable
2407
2409
  ] })
@@ -2434,7 +2436,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2434
2436
  /* @__PURE__ */ jsxRuntime.jsx(NodeCard, { variant: "error", nodeType: "rule", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
2435
2437
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-5 w-5 text-white" }) }),
2436
2438
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2437
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: ruleLabel || t("nodeType") }),
2439
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: ruleLabel || t("nodeType") }),
2438
2440
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-amber-600 dark:text-amber-400", children: t("ruleNotFound") })
2439
2441
  ] })
2440
2442
  ] }) }),
@@ -2463,8 +2465,8 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2463
2465
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
2464
2466
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-5 w-5 text-white" }) }),
2465
2467
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2466
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: rule.name }),
2467
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs font-medium text-gray-600 dark:text-gray-300", children: adjustmentDisplay })
2468
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: rule.name }),
2469
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs font-medium text-slate-600 dark:text-slate-300", children: adjustmentDisplay })
2468
2470
  ] })
2469
2471
  ] }),
2470
2472
  onToggle && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2476,7 +2478,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2476
2478
  event.preventDefault();
2477
2479
  },
2478
2480
  children: /* @__PURE__ */ jsxRuntime.jsx(
2479
- chunkULKZGM2T_js.ToggleSwitch,
2481
+ chunkRWZ2PLMQ_js.ToggleSwitch,
2480
2482
  {
2481
2483
  checked: Boolean(rule.enabled),
2482
2484
  onChange: () => onToggle(rule),
@@ -2490,13 +2492,13 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2490
2492
  ] }),
2491
2493
  !isCompact && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between", children: [
2492
2494
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2493
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "violet", size: "xs", children: t("nodeType") }),
2494
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: typePill, children: adjustmentType }),
2495
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2495
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "violet", size: "xs", children: t("nodeType") }),
2496
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: typePill, children: adjustmentType }),
2497
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2496
2498
  "P",
2497
2499
  String(rule.priority ?? "")
2498
2500
  ] }),
2499
- Array.isArray(rule.condition?.categories) && rule.condition.categories.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2501
+ Array.isArray(rule.condition?.categories) && rule.condition.categories.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2500
2502
  rule.condition.categories.length,
2501
2503
  " categories"
2502
2504
  ] })
@@ -2524,7 +2526,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2524
2526
  ] });
2525
2527
  });
2526
2528
  var EntityFlowNode = react.memo(function EntityFlowNode2({ id, data, selected }) {
2527
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2529
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2528
2530
  const { config, label, onEdit, onRemoveFromCanvas } = data;
2529
2531
  const isCompact = data.displayMode === "compact";
2530
2532
  if (!config || config.type !== "entity") {
@@ -2563,20 +2565,20 @@ var EntityFlowNode = react.memo(function EntityFlowNode2({ id, data, selected })
2563
2565
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
2564
2566
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(EntityIcon, { className: "h-5 w-5 text-white" }) }),
2565
2567
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2566
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: label }),
2567
- !isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: data.entity?.label ?? config.entityMasterId })
2568
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: label }),
2569
+ !isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-slate-500 dark:text-slate-400", children: data.entity?.label ?? config.entityMasterId })
2568
2570
  ] })
2569
2571
  ] }),
2570
2572
  /* @__PURE__ */ jsxRuntime.jsxs(NodeCardMeta, { compact: isCompact, children: [
2571
2573
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2572
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: badgeColor, children: t("entityNodeType") }),
2573
- /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: badgeColor, children: [
2574
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: badgeColor, children: t("entityNodeType") }),
2575
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: badgeColor, children: [
2574
2576
  fieldCount,
2575
2577
  " ",
2576
2578
  t("entityFields")
2577
2579
  ] }),
2578
- config.limit > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("entityLimit", { count: config.limit }) }),
2579
- filterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2580
+ config.limit > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("entityLimit", { count: config.limit }) }),
2581
+ filterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2580
2582
  filterCount,
2581
2583
  " ",
2582
2584
  t("entityFilters")
@@ -2605,7 +2607,7 @@ var EntityFlowNode = react.memo(function EntityFlowNode2({ id, data, selected })
2605
2607
  ] });
2606
2608
  });
2607
2609
  var StartFlowNode = react.memo(function StartFlowNode2({ id, data, selected }) {
2608
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2610
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2609
2611
  const { config, label, onDelete, onEdit } = data;
2610
2612
  const isCompact = data.displayMode === "compact";
2611
2613
  const variableCount = config?.inputVariables?.length ?? 0;
@@ -2649,7 +2651,7 @@ var StartFlowNode = react.memo(function StartFlowNode2({ id, data, selected }) {
2649
2651
  ] });
2650
2652
  });
2651
2653
  var EndFlowNode = react.memo(function EndFlowNode2({ id, data, selected }) {
2652
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2654
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2653
2655
  const { config, label, onDelete, onEdit } = data;
2654
2656
  const isCompact = data.displayMode === "compact";
2655
2657
  const variableCount = config?.outputVariables?.length ?? 0;
@@ -2693,7 +2695,7 @@ var EndFlowNode = react.memo(function EndFlowNode2({ id, data, selected }) {
2693
2695
  ] });
2694
2696
  });
2695
2697
  var IfElseFlowNode = react.memo(function IfElseFlowNode2({ id, data, selected }) {
2696
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2698
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2697
2699
  const { config, label, onDelete, onEdit } = data;
2698
2700
  const isCompact = data.displayMode === "compact";
2699
2701
  const conditionCount = config?.conditions?.length ?? 0;
@@ -2731,8 +2733,8 @@ var IfElseFlowNode = react.memo(function IfElseFlowNode2({ id, data, selected })
2731
2733
  ] }),
2732
2734
  /* @__PURE__ */ jsxRuntime.jsx(NodeCardDeleteAction, { nodeId: id, onDelete })
2733
2735
  ] }),
2734
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute -right-12 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(chunkULKZGM2T_js.StatusBadge, { status: "success", label: t("ifBranchLabel"), size: "sm" }) }),
2735
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute bottom-[-1.9rem] left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(chunkULKZGM2T_js.StatusBadge, { status: "error", label: t("elseBranchLabel"), size: "sm" }) })
2736
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute -right-12 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(chunkRWZ2PLMQ_js.StatusBadge, { status: "success", label: t("ifBranchLabel"), size: "sm" }) }),
2737
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute bottom-[-1.9rem] left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(chunkRWZ2PLMQ_js.StatusBadge, { status: "error", label: t("elseBranchLabel"), size: "sm" }) })
2736
2738
  ]
2737
2739
  }
2738
2740
  ),
@@ -2741,7 +2743,7 @@ var IfElseFlowNode = react.memo(function IfElseFlowNode2({ id, data, selected })
2741
2743
  ] });
2742
2744
  });
2743
2745
  var CodeFlowNode = react.memo(function CodeFlowNode2({ id, data, selected }) {
2744
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2746
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2745
2747
  const { config, label, onDelete, onEdit } = data;
2746
2748
  const isCompact = data.displayMode === "compact";
2747
2749
  const isScripted = "language" in config;
@@ -2787,7 +2789,7 @@ var CodeFlowNode = react.memo(function CodeFlowNode2({ id, data, selected }) {
2787
2789
  ] });
2788
2790
  });
2789
2791
  var HttpRequestFlowNode = react.memo(function HttpRequestFlowNode2({ id, data, selected }) {
2790
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2792
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2791
2793
  const { config, label, onDelete, onEdit } = data;
2792
2794
  const isCompact = data.displayMode === "compact";
2793
2795
  const urlPreview = config.url ? config.url.slice(0, 30) : "";
@@ -2828,7 +2830,7 @@ var HttpRequestFlowNode = react.memo(function HttpRequestFlowNode2({ id, data, s
2828
2830
  ] });
2829
2831
  });
2830
2832
  var TemplateTransformFlowNode = react.memo(function TemplateTransformFlowNode2({ id, data, selected }) {
2831
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2833
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2832
2834
  const { config, label, onDelete, onEdit } = data;
2833
2835
  const isCompact = data.displayMode === "compact";
2834
2836
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -2867,7 +2869,7 @@ var TemplateTransformFlowNode = react.memo(function TemplateTransformFlowNode2({
2867
2869
  ] });
2868
2870
  });
2869
2871
  var IterationFlowNode = react.memo(function IterationFlowNode2({ id, data, selected }) {
2870
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2872
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2871
2873
  const { config, label, onDelete, onEdit } = data;
2872
2874
  const isCompact = data.displayMode === "compact";
2873
2875
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -2912,7 +2914,7 @@ var IterationFlowNode = react.memo(function IterationFlowNode2({ id, data, selec
2912
2914
  ] });
2913
2915
  });
2914
2916
  var KnowledgeBaseFlowNode = react.memo(function KnowledgeBaseFlowNode2({ id, data, selected }) {
2915
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2917
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2916
2918
  const { config, label, onDelete, onEdit } = data;
2917
2919
  const isCompact = data.displayMode === "compact";
2918
2920
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -2960,7 +2962,7 @@ var KnowledgeBaseFlowNode = react.memo(function KnowledgeBaseFlowNode2({ id, dat
2960
2962
  ] });
2961
2963
  });
2962
2964
  var AnswerFlowNode = react.memo(function AnswerFlowNode2({ id, data, selected }) {
2963
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
2965
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
2964
2966
  const { config, label, onDelete, onEdit } = data;
2965
2967
  const isCompact = data.displayMode === "compact";
2966
2968
  const variableCount = config?.outputVariables?.length ?? 0;
@@ -3004,7 +3006,7 @@ var AnswerFlowNode = react.memo(function AnswerFlowNode2({ id, data, selected })
3004
3006
  ] });
3005
3007
  });
3006
3008
  var QuestionClassifierFlowNode = react.memo(function QuestionClassifierFlowNode2({ id, data, selected }) {
3007
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3009
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3008
3010
  const { config, label, onDelete, onEdit } = data;
3009
3011
  const isCompact = data.displayMode === "compact";
3010
3012
  const categoryCount = config?.categories?.length ?? 0;
@@ -3059,7 +3061,7 @@ var QuestionClassifierFlowNode = react.memo(function QuestionClassifierFlowNode2
3059
3061
  ] });
3060
3062
  });
3061
3063
  var ParameterExtractorFlowNode = react.memo(function ParameterExtractorFlowNode2({ id, data, selected }) {
3062
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3064
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3063
3065
  const { config, label, onDelete, onEdit } = data;
3064
3066
  const isCompact = data.displayMode === "compact";
3065
3067
  const parameterCount = config?.parameters?.length ?? 0;
@@ -3104,7 +3106,7 @@ var ParameterExtractorFlowNode = react.memo(function ParameterExtractorFlowNode2
3104
3106
  ] });
3105
3107
  });
3106
3108
  var VariableAssignerFlowNode = react.memo(function VariableAssignerFlowNode2({ id, data, selected }) {
3107
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3109
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3108
3110
  const { config, label, onDelete, onEdit } = data;
3109
3111
  const isCompact = data.displayMode === "compact";
3110
3112
  const assignmentCount = config?.assignments?.length ?? 0;
@@ -3149,7 +3151,7 @@ var VariableAssignerFlowNode = react.memo(function VariableAssignerFlowNode2({ i
3149
3151
  ] });
3150
3152
  });
3151
3153
  var VariableAggregatorFlowNode = react.memo(function VariableAggregatorFlowNode2({ id, data, selected }) {
3152
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3154
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3153
3155
  const { config, label, onDelete, onEdit } = data;
3154
3156
  const isCompact = data.displayMode === "compact";
3155
3157
  const inputCount = config?.inputVariables?.length ?? 1;
@@ -3194,7 +3196,7 @@ var VariableAggregatorFlowNode = react.memo(function VariableAggregatorFlowNode2
3194
3196
  ] });
3195
3197
  });
3196
3198
  var DocumentExtractorFlowNode = react.memo(function DocumentExtractorFlowNode2({ id, data, selected }) {
3197
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3199
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3198
3200
  const { config, label, onDelete, onEdit } = data;
3199
3201
  const isCompact = data.displayMode === "compact";
3200
3202
  const extractionMode = config.extractionMode;
@@ -3235,7 +3237,7 @@ var DocumentExtractorFlowNode = react.memo(function DocumentExtractorFlowNode2({
3235
3237
  ] });
3236
3238
  });
3237
3239
  var ListOperatorFlowNode = react.memo(function ListOperatorFlowNode2({ id, data, selected }) {
3238
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3240
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3239
3241
  const { config, label, onDelete, onEdit } = data;
3240
3242
  const isCompact = data.displayMode === "compact";
3241
3243
  const operationName = config.operation;
@@ -3276,7 +3278,7 @@ var ListOperatorFlowNode = react.memo(function ListOperatorFlowNode2({ id, data,
3276
3278
  ] });
3277
3279
  });
3278
3280
  var IterationStartFlowNode = react.memo(function IterationStartFlowNode2({ id, data, selected }) {
3279
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3281
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3280
3282
  const { config, label, onDelete, onEdit } = data;
3281
3283
  const isCompact = data.displayMode === "compact";
3282
3284
  const iteratorVariable = config.iteratorVariable;
@@ -3338,7 +3340,7 @@ var NOTE_ICON_COLORS = {
3338
3340
  purple: "text-purple-600 dark:text-purple-400"
3339
3341
  };
3340
3342
  var NoteFlowNode = react.memo(function NoteFlowNode2({ data, selected }) {
3341
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3343
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3342
3344
  const { config } = data;
3343
3345
  const [isEditing, setIsEditing] = react.useState(false);
3344
3346
  const [noteText, setNoteText] = react.useState(config.text);
@@ -3432,7 +3434,7 @@ function getDatasourceLogo2(datasourceId, dialect) {
3432
3434
  return null;
3433
3435
  }
3434
3436
  var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, selected }) {
3435
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3437
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3436
3438
  const { config, label, datasource, readOnly = false, onEdit, onRemoveFromCanvas } = data;
3437
3439
  const isCompact = data.displayMode === "compact";
3438
3440
  if (!config || config.type !== "datasource") {
@@ -3476,7 +3478,7 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
3476
3478
  event.preventDefault();
3477
3479
  },
3478
3480
  children: /* @__PURE__ */ jsxRuntime.jsx(
3479
- chunkULKZGM2T_js.ToggleSwitch,
3481
+ chunkRWZ2PLMQ_js.ToggleSwitch,
3480
3482
  {
3481
3483
  checked: true,
3482
3484
  onChange: () => {
@@ -3492,8 +3494,8 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
3492
3494
  ] }),
3493
3495
  /* @__PURE__ */ jsxRuntime.jsxs(NodeCardMeta, { compact: isCompact, children: [
3494
3496
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
3495
- config.dialect && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "cyan", size: "xs", children: config.dialect }),
3496
- readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: "sample" }),
3497
+ config.dialect && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "cyan", size: "xs", children: config.dialect }),
3498
+ readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: "sample" }),
3497
3499
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
3498
3500
  columnCount > 0 ? `${columnCount} cols` : null,
3499
3501
  filterCount > 0 ? `${filterCount} filters` : null,
@@ -3585,7 +3587,7 @@ var GROUP_COLORS = {
3585
3587
  }
3586
3588
  };
3587
3589
  var GroupFlowNode = react.memo(function GroupFlowNode2({ id, data, selected }) {
3588
- const translations = chunkYXN2K77G_js.useTranslations("agents.workflow");
3590
+ const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3589
3591
  const { config, label, onEdit, onToggleExpand, onRemoveFromCanvas } = data;
3590
3592
  const colorScheme = GROUP_COLORS[config.color] ?? GROUP_COLORS.slate;
3591
3593
  const handleToggleExpand = react.useCallback(
@@ -3622,7 +3624,7 @@ var GroupFlowNode = react.memo(function GroupFlowNode2({ id, data, selected }) {
3622
3624
  ] })
3623
3625
  ] }),
3624
3626
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between", children: [
3625
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: colorScheme.text, children: translations("groupNode") }),
3627
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: colorScheme.text, children: translations("groupNode") }),
3626
3628
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
3627
3629
  /* @__PURE__ */ jsxRuntime.jsx(
3628
3630
  "button",
@@ -3667,7 +3669,6 @@ var GroupFlowNode = react.memo(function GroupFlowNode2({ id, data, selected }) {
3667
3669
  "div",
3668
3670
  {
3669
3671
  className: `group relative h-full w-full overflow-hidden rounded-xl border liquid-surface ${getNodeStateClass(selected, void 0, colorScheme.border)} transition-all`,
3670
- style: { minWidth: config.width, minHeight: config.height },
3671
3672
  children: [
3672
3673
  /* @__PURE__ */ jsxRuntime.jsxs(
3673
3674
  "div",
@@ -3784,7 +3785,7 @@ var SpeechTranscriberFlowNode = react.memo(function SpeechTranscriberFlowNode2({
3784
3785
  /* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "speech_transcriber", children: "Whisper" }),
3785
3786
  /* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: model }),
3786
3787
  /* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: language }),
3787
- audioRefPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: audioRefPreview })
3788
+ audioRefPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: audioRefPreview })
3788
3789
  ] }),
3789
3790
  /* @__PURE__ */ jsxRuntime.jsx(NodeCardDeleteAction, { nodeId: id, onDelete })
3790
3791
  ] })
@@ -3795,7 +3796,7 @@ var SpeechTranscriberFlowNode = react.memo(function SpeechTranscriberFlowNode2({
3795
3796
  ] });
3796
3797
  });
3797
3798
  var DashboardOutputFlowNode = react.memo(function DashboardOutputFlowNode2({ id, data, selected }) {
3798
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
3799
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
3799
3800
  const { config, label, onDelete, onEdit } = data;
3800
3801
  const isCompact = data.displayMode === "compact";
3801
3802
  const source = config?.dashboardFrom ? `\u2190 ${config.dashboardFrom}` : config?.dashboard ? "inline" : "unset";
@@ -3841,9 +3842,9 @@ function ConfigFormActions({
3841
3842
  onSave,
3842
3843
  saveDisabled = false
3843
3844
  }) {
3844
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-gray-200 pt-4 dark:border-gray-700", children: [
3845
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3846
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3845
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-slate-200 pt-4 dark:border-slate-700", children: [
3846
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3847
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3847
3848
  ] });
3848
3849
  }
3849
3850
  var COLOR_CLASSES = {
@@ -3920,7 +3921,7 @@ function VariableListEditor({
3920
3921
  }
3921
3922
  }, [handleAdd]);
3922
3923
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3923
- label && /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: label }),
3924
+ label && /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: label }),
3924
3925
  variables.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 space-y-1", children: variables.map((variable, index) => /* @__PURE__ */ jsxRuntime.jsxs(
3925
3926
  "div",
3926
3927
  {
@@ -3933,17 +3934,19 @@ function VariableListEditor({
3933
3934
  type: "text",
3934
3935
  value: variable,
3935
3936
  onChange: (event) => handleEdit(index, event.target.value),
3936
- className: `flex-1 rounded-md border-0 bg-transparent px-1 py-0.5 text-sm font-medium text-gray-900 outline-none ${colors.input} focus:ring-1 dark:text-white`
3937
+ className: `flex-1 rounded-md border-0 bg-transparent px-1 py-0.5 text-sm font-medium text-slate-900 outline-none ${colors.input} focus:ring-1 dark:text-white`
3937
3938
  }
3938
- ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-sm font-medium text-gray-900 dark:text-white", children: variable }),
3939
+ ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-sm font-medium text-slate-900 dark:text-white", children: variable }),
3939
3940
  /* @__PURE__ */ jsxRuntime.jsx(
3940
- "button",
3941
+ chunkEBARYRSA_js.IconButton,
3941
3942
  {
3942
- type: "button",
3943
+ label: `Remove ${variable}`,
3944
+ variant: "ghost",
3945
+ size: "sm",
3946
+ destructive: true,
3943
3947
  onClick: () => handleRemove(index),
3944
- className: "shrink-0 rounded p-0.5 text-gray-400 opacity-0 transition-all hover:bg-red-100 hover:text-red-500 group-hover:opacity-100 dark:hover:bg-red-500/10 dark:hover:text-red-400",
3945
- "aria-label": `Remove ${variable}`,
3946
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-3.5 w-3.5" })
3948
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-3.5 w-3.5" }),
3949
+ className: "shrink-0 opacity-0 transition-opacity group-hover:opacity-100"
3947
3950
  }
3948
3951
  )
3949
3952
  ]
@@ -3960,7 +3963,7 @@ function VariableListEditor({
3960
3963
  onChange: (event) => setNewVariable(event.target.value),
3961
3964
  onKeyDown: handleKeyDown,
3962
3965
  placeholder,
3963
- className: "flex-1 rounded-lg border border-gray-200/50 bg-gray-50/50 px-3 py-1.5 text-sm text-gray-700 outline-none transition-colors placeholder:text-gray-400 focus:border-gray-300 focus:ring-1 focus:ring-gray-300/30 dark:border-white/10 dark:bg-white/5 dark:text-gray-300 dark:placeholder:text-gray-600"
3966
+ className: "flex-1 rounded-lg border border-slate-200/50 bg-white/40 backdrop-blur-sm px-3 py-1.5 text-sm text-slate-700 outline-none transition-colors placeholder:text-slate-400 focus:border-slate-300 focus:ring-1 focus:ring-slate-300/30 dark:border-white/10 dark:bg-white/[0.04] dark:text-slate-300 dark:placeholder:text-slate-600"
3964
3967
  }
3965
3968
  ),
3966
3969
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3977,18 +3980,18 @@ function VariableListEditor({
3977
3980
  }
3978
3981
  )
3979
3982
  ] }),
3980
- variables.length === 0 && !canAdd && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-400 dark:text-gray-500", children: "No variables defined" })
3983
+ variables.length === 0 && !canAdd && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-400 dark:text-slate-500", children: "No variables defined" })
3981
3984
  ] });
3982
3985
  }
3983
3986
  function StartNodeConfigForm({ config, onSave, onCancel }) {
3984
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.startNodeConfig");
3987
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.startNodeConfig");
3985
3988
  const [inputVariables, setInputVariables] = react.useState([...config.inputVariables]);
3986
3989
  const handleSave = () => {
3987
3990
  onSave({ ...config, inputVariables });
3988
3991
  };
3989
3992
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
3990
3993
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3991
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("inputVariablesHelp") }),
3994
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("inputVariablesHelp") }),
3992
3995
  /* @__PURE__ */ jsxRuntime.jsx(
3993
3996
  VariableListEditor,
3994
3997
  {
@@ -4013,14 +4016,14 @@ function StartNodeConfigForm({ config, onSave, onCancel }) {
4013
4016
  ] });
4014
4017
  }
4015
4018
  function EndNodeConfigForm({ config, onSave, onCancel }) {
4016
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.endNodeConfig");
4019
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.endNodeConfig");
4017
4020
  const [outputVariables, setOutputVariables] = react.useState([...config.outputVariables]);
4018
4021
  const handleSave = () => {
4019
4022
  onSave({ ...config, outputVariables });
4020
4023
  };
4021
4024
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4022
4025
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4023
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("outputVariablesHelp") }),
4026
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("outputVariablesHelp") }),
4024
4027
  /* @__PURE__ */ jsxRuntime.jsx(
4025
4028
  VariableListEditor,
4026
4029
  {
@@ -4054,7 +4057,7 @@ var OPERATOR_OPTIONS = [
4054
4057
  { value: "is_not_empty", labelKey: "operatorIsNotEmpty" }
4055
4058
  ];
4056
4059
  function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4057
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.ifElseNodeConfig");
4060
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.ifElseNodeConfig");
4058
4061
  const [conditions, setConditions] = react.useState(
4059
4062
  config.conditions.map((condition) => ({
4060
4063
  variable: condition.variable,
@@ -4088,9 +4091,9 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4088
4091
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4089
4092
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4090
4093
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
4091
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("conditionsLabel") }),
4094
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("conditionsLabel") }),
4092
4095
  /* @__PURE__ */ jsxRuntime.jsx(
4093
- chunkBHOT22QL_js.Button,
4096
+ chunkEBARYRSA_js.Button,
4094
4097
  {
4095
4098
  type: "button",
4096
4099
  onClick: handleAddCondition,
@@ -4098,10 +4101,10 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4098
4101
  }
4099
4102
  )
4100
4103
  ] }),
4101
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
4104
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
4102
4105
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid flex-1 grid-cols-3 gap-2", children: [
4103
4106
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
4104
- chunkULKZGM2T_js.FormInput,
4107
+ chunkRWZ2PLMQ_js.FormInput,
4105
4108
  {
4106
4109
  type: "text",
4107
4110
  label: t("variableLabel"),
@@ -4112,7 +4115,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4112
4115
  }
4113
4116
  ) }),
4114
4117
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
4115
- chunkULKZGM2T_js.FormSelect,
4118
+ chunkRWZ2PLMQ_js.FormSelect,
4116
4119
  {
4117
4120
  label: t("operatorLabel"),
4118
4121
  value: condition.operator,
@@ -4122,7 +4125,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4122
4125
  }
4123
4126
  ) }),
4124
4127
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
4125
- chunkULKZGM2T_js.FormInput,
4128
+ chunkRWZ2PLMQ_js.FormInput,
4126
4129
  {
4127
4130
  type: "text",
4128
4131
  label: t("valueLabel"),
@@ -4134,7 +4137,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4134
4137
  ) })
4135
4138
  ] }),
4136
4139
  conditions.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
4137
- chunkBHOT22QL_js.IconButton,
4140
+ chunkEBARYRSA_js.IconButton,
4138
4141
  {
4139
4142
  onClick: () => handleRemoveCondition(index),
4140
4143
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
@@ -4147,7 +4150,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4147
4150
  ] }, index)) })
4148
4151
  ] }),
4149
4152
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4150
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("logicalOperatorLabel") }),
4153
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("logicalOperatorLabel") }),
4151
4154
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
4152
4155
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
4153
4156
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4161,7 +4164,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4161
4164
  className: "text-indigo-600 focus:ring-indigo-400"
4162
4165
  }
4163
4166
  ),
4164
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: "AND" })
4167
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: "AND" })
4165
4168
  ] }),
4166
4169
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
4167
4170
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4175,7 +4178,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4175
4178
  className: "text-indigo-600 focus:ring-indigo-400"
4176
4179
  }
4177
4180
  ),
4178
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: "OR" })
4181
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: "OR" })
4179
4182
  ] })
4180
4183
  ] })
4181
4184
  ] }),
@@ -4207,7 +4210,7 @@ function hasOperation(config) {
4207
4210
  return "operation" in config && typeof config.operation === "string";
4208
4211
  }
4209
4212
  function CodeNodeConfigForm({ config, onSave, onCancel }) {
4210
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.codeNodeConfig");
4213
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.codeNodeConfig");
4211
4214
  const initialMode = hasOperation(config) ? "operation" : "scripted";
4212
4215
  const [mode, setMode] = react.useState(initialMode);
4213
4216
  const [language, setLanguage] = react.useState(
@@ -4265,17 +4268,17 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4265
4268
  }
4266
4269
  onSave(next);
4267
4270
  };
4268
- const labelClass = "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300";
4269
- const inputClass = "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500";
4271
+ const labelClass = "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300";
4272
+ const inputClass = "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500";
4270
4273
  const textareaClass = `${inputClass} font-mono text-xs`;
4271
4274
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4272
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 rounded-lg bg-gray-100 p-1 text-sm dark:bg-gray-800", children: [
4275
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 rounded-lg bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm p-1 text-sm", children: [
4273
4276
  /* @__PURE__ */ jsxRuntime.jsx(
4274
4277
  "button",
4275
4278
  {
4276
4279
  type: "button",
4277
4280
  onClick: () => setMode("operation"),
4278
- className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "operation" ? "bg-white text-indigo-600 shadow-sm dark:bg-gray-900 dark:text-indigo-400" : "text-gray-600 dark:text-gray-400"}`,
4281
+ className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "operation" ? "bg-white text-indigo-600 shadow-sm dark:bg-slate-900 dark:text-indigo-400" : "text-slate-600 dark:text-slate-400"}`,
4279
4282
  children: t("modeOperation", { _: "Operation" })
4280
4283
  }
4281
4284
  ),
@@ -4284,7 +4287,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4284
4287
  {
4285
4288
  type: "button",
4286
4289
  onClick: () => setMode("scripted"),
4287
- className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "scripted" ? "bg-white text-indigo-600 shadow-sm dark:bg-gray-900 dark:text-indigo-400" : "text-gray-600 dark:text-gray-400"}`,
4290
+ className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "scripted" ? "bg-white text-indigo-600 shadow-sm dark:bg-slate-900 dark:text-indigo-400" : "text-slate-600 dark:text-slate-400"}`,
4288
4291
  children: t("modeScripted", { _: "Scripted" })
4289
4292
  }
4290
4293
  )
@@ -4328,7 +4331,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4328
4331
  children: OPERATION_OPTIONS.map((o) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: o.value, children: o.label }, o.value))
4329
4332
  }
4330
4333
  ),
4331
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: selectedOpHelp })
4334
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: selectedOpHelp })
4332
4335
  ] }),
4333
4336
  operation !== "return" && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4334
4337
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: labelClass, children: "from" }),
@@ -4342,7 +4345,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4342
4345
  className: inputClass
4343
4346
  }
4344
4347
  ),
4345
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: "Dotted reference into the variable pool. Leave blank to read the sole incoming edge." })
4348
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "Dotted reference into the variable pool. Leave blank to read the sole incoming edge." })
4346
4349
  ] }),
4347
4350
  (operation === "return" || operation === "merge") && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4348
4351
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: labelClass, children: [
@@ -4372,7 +4375,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4372
4375
  className: inputClass
4373
4376
  }
4374
4377
  ),
4375
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: "Comma-separated keys to project." })
4378
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "Comma-separated keys to project." })
4376
4379
  ] }),
4377
4380
  operation === "regex_extract" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4378
4381
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -4401,7 +4404,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4401
4404
  className: inputClass
4402
4405
  }
4403
4406
  ),
4404
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: "i, m, s, x, U, R (g is implicit)." })
4407
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "i, m, s, x, U, R (g is implicit)." })
4405
4408
  ] }),
4406
4409
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4407
4410
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: labelClass, children: "group" }),
@@ -4415,18 +4418,18 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4415
4418
  className: inputClass
4416
4419
  }
4417
4420
  ),
4418
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: "0 = whole match, 1 = first capture group (default)." })
4421
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "0 = whole match, 1 = first capture group (default)." })
4419
4422
  ] })
4420
4423
  ] })
4421
4424
  ] }),
4422
- operation === "xml_titles" && /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300", children: [
4425
+ operation === "xml_titles" && /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm text-slate-700 dark:text-slate-300", children: [
4423
4426
  /* @__PURE__ */ jsxRuntime.jsx(
4424
4427
  "input",
4425
4428
  {
4426
4429
  type: "checkbox",
4427
4430
  checked: keepChannel,
4428
4431
  onChange: (event) => setKeepChannel(event.target.checked),
4429
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 dark:border-gray-600"
4432
+ className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
4430
4433
  }
4431
4434
  ),
4432
4435
  "Keep channel/feed title (default: drop the first `<title>`)."
@@ -4443,7 +4446,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4443
4446
  className: inputClass
4444
4447
  }
4445
4448
  ),
4446
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: [
4449
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: [
4447
4450
  "Defaults to `",
4448
4451
  operation === "regex_extract" ? "matches" : "titles",
4449
4452
  "` if left blank."
@@ -4475,7 +4478,7 @@ function entriesToHeaders(entries) {
4475
4478
  return headers;
4476
4479
  }
4477
4480
  function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4478
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.httpRequestNodeConfig");
4481
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.httpRequestNodeConfig");
4479
4482
  const [method, setMethod] = react.useState(config.method);
4480
4483
  const [url, setUrl] = react.useState(config.url);
4481
4484
  const [headerEntries, setHeaderEntries] = react.useState(headersToEntries(config.headers));
@@ -4506,7 +4509,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4506
4509
  };
4507
4510
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4508
4511
  /* @__PURE__ */ jsxRuntime.jsx(
4509
- chunkULKZGM2T_js.FormSelect,
4512
+ chunkRWZ2PLMQ_js.FormSelect,
4510
4513
  {
4511
4514
  label: t("methodLabel"),
4512
4515
  value: method,
@@ -4515,7 +4518,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4515
4518
  }
4516
4519
  ),
4517
4520
  /* @__PURE__ */ jsxRuntime.jsx(
4518
- chunkULKZGM2T_js.FormInput,
4521
+ chunkRWZ2PLMQ_js.FormInput,
4519
4522
  {
4520
4523
  type: "text",
4521
4524
  label: t("urlLabel"),
@@ -4526,9 +4529,9 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4526
4529
  ),
4527
4530
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4528
4531
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4529
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("headersLabel") }),
4532
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("headersLabel") }),
4530
4533
  /* @__PURE__ */ jsxRuntime.jsx(
4531
- chunkBHOT22QL_js.Button,
4534
+ chunkEBARYRSA_js.Button,
4532
4535
  {
4533
4536
  type: "button",
4534
4537
  onClick: handleAddHeader,
@@ -4538,7 +4541,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4538
4541
  ] }),
4539
4542
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: headerEntries.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4540
4543
  /* @__PURE__ */ jsxRuntime.jsx(
4541
- chunkULKZGM2T_js.FormInput,
4544
+ chunkRWZ2PLMQ_js.FormInput,
4542
4545
  {
4543
4546
  type: "text",
4544
4547
  value: entry.key,
@@ -4548,7 +4551,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4548
4551
  }
4549
4552
  ),
4550
4553
  /* @__PURE__ */ jsxRuntime.jsx(
4551
- chunkULKZGM2T_js.FormInput,
4554
+ chunkRWZ2PLMQ_js.FormInput,
4552
4555
  {
4553
4556
  type: "text",
4554
4557
  value: entry.value,
@@ -4558,7 +4561,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4558
4561
  }
4559
4562
  ),
4560
4563
  /* @__PURE__ */ jsxRuntime.jsx(
4561
- chunkBHOT22QL_js.IconButton,
4564
+ chunkEBARYRSA_js.IconButton,
4562
4565
  {
4563
4566
  onClick: () => handleRemoveHeader(index),
4564
4567
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
@@ -4570,7 +4573,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4570
4573
  ] }, index)) })
4571
4574
  ] }),
4572
4575
  method !== "GET" && /* @__PURE__ */ jsxRuntime.jsx(
4573
- chunkULKZGM2T_js.FormTextarea,
4576
+ chunkRWZ2PLMQ_js.FormTextarea,
4574
4577
  {
4575
4578
  label: t("bodyLabel"),
4576
4579
  value: body,
@@ -4581,7 +4584,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4581
4584
  }
4582
4585
  ),
4583
4586
  /* @__PURE__ */ jsxRuntime.jsx(
4584
- chunkULKZGM2T_js.FormInput,
4587
+ chunkRWZ2PLMQ_js.FormInput,
4585
4588
  {
4586
4589
  type: "number",
4587
4590
  label: t("timeoutLabel"),
@@ -4593,7 +4596,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4593
4596
  }
4594
4597
  ),
4595
4598
  /* @__PURE__ */ jsxRuntime.jsx(
4596
- chunkULKZGM2T_js.FormSelect,
4599
+ chunkRWZ2PLMQ_js.FormSelect,
4597
4600
  {
4598
4601
  label: t("parseResponseLabel"),
4599
4602
  value: parseResponse,
@@ -4616,7 +4619,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4616
4619
  ] });
4617
4620
  }
4618
4621
  function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4619
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.s3WriteNodeConfig");
4622
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.s3WriteNodeConfig");
4620
4623
  const [bucket, setBucket] = react.useState(config.bucket ?? "");
4621
4624
  const [key, setKey] = react.useState(config.key ?? "");
4622
4625
  const [sourceUrl, setSourceUrl] = react.useState(config.sourceUrl ?? "");
@@ -4638,7 +4641,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4638
4641
  };
4639
4642
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4640
4643
  /* @__PURE__ */ jsxRuntime.jsx(
4641
- chunkULKZGM2T_js.FormInput,
4644
+ chunkRWZ2PLMQ_js.FormInput,
4642
4645
  {
4643
4646
  type: "text",
4644
4647
  label: t("bucketLabel"),
@@ -4648,7 +4651,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4648
4651
  }
4649
4652
  ),
4650
4653
  /* @__PURE__ */ jsxRuntime.jsx(
4651
- chunkULKZGM2T_js.FormInput,
4654
+ chunkRWZ2PLMQ_js.FormInput,
4652
4655
  {
4653
4656
  type: "text",
4654
4657
  label: t("keyLabel"),
@@ -4659,7 +4662,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4659
4662
  ),
4660
4663
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-cyan-200/40 bg-cyan-50/40 px-3 py-2 text-[11px] text-cyan-900 dark:border-cyan-500/30 dark:bg-cyan-500/10 dark:text-cyan-100", children: t("sourceOrBodyHint") }),
4661
4664
  /* @__PURE__ */ jsxRuntime.jsx(
4662
- chunkULKZGM2T_js.FormInput,
4665
+ chunkRWZ2PLMQ_js.FormInput,
4663
4666
  {
4664
4667
  type: "text",
4665
4668
  label: t("sourceUrlLabel"),
@@ -4669,7 +4672,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4669
4672
  }
4670
4673
  ),
4671
4674
  /* @__PURE__ */ jsxRuntime.jsx(
4672
- chunkULKZGM2T_js.FormTextarea,
4675
+ chunkRWZ2PLMQ_js.FormTextarea,
4673
4676
  {
4674
4677
  label: t("bodyLabel"),
4675
4678
  value: body,
@@ -4680,7 +4683,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4680
4683
  }
4681
4684
  ),
4682
4685
  /* @__PURE__ */ jsxRuntime.jsx(
4683
- chunkULKZGM2T_js.FormInput,
4686
+ chunkRWZ2PLMQ_js.FormInput,
4684
4687
  {
4685
4688
  type: "text",
4686
4689
  label: t("contentTypeLabel"),
@@ -4690,7 +4693,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4690
4693
  }
4691
4694
  ),
4692
4695
  /* @__PURE__ */ jsxRuntime.jsx(
4693
- chunkULKZGM2T_js.FormInput,
4696
+ chunkRWZ2PLMQ_js.FormInput,
4694
4697
  {
4695
4698
  type: "number",
4696
4699
  label: t("timeoutLabel"),
@@ -4701,7 +4704,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4701
4704
  }
4702
4705
  ),
4703
4706
  /* @__PURE__ */ jsxRuntime.jsx(
4704
- chunkULKZGM2T_js.FormInput,
4707
+ chunkRWZ2PLMQ_js.FormInput,
4705
4708
  {
4706
4709
  type: "text",
4707
4710
  label: t("connectionIdLabel"),
@@ -4722,7 +4725,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
4722
4725
  ] });
4723
4726
  }
4724
4727
  function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
4725
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.templateTransformNodeConfig");
4728
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.templateTransformNodeConfig");
4726
4729
  const [template, setTemplate] = react.useState(config.template);
4727
4730
  const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
4728
4731
  const handleSave = () => {
@@ -4730,7 +4733,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
4730
4733
  };
4731
4734
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4732
4735
  /* @__PURE__ */ jsxRuntime.jsx(
4733
- chunkULKZGM2T_js.FormTextarea,
4736
+ chunkRWZ2PLMQ_js.FormTextarea,
4734
4737
  {
4735
4738
  label: t("templateLabel"),
4736
4739
  value: template,
@@ -4741,7 +4744,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
4741
4744
  }
4742
4745
  ),
4743
4746
  /* @__PURE__ */ jsxRuntime.jsx(
4744
- chunkULKZGM2T_js.FormInput,
4747
+ chunkRWZ2PLMQ_js.FormInput,
4745
4748
  {
4746
4749
  type: "text",
4747
4750
  label: t("outputVariableLabel"),
@@ -4762,7 +4765,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
4762
4765
  ] });
4763
4766
  }
4764
4767
  function IterationNodeConfigForm({ config, onSave, onCancel }) {
4765
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.iterationNodeConfig");
4768
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.iterationNodeConfig");
4766
4769
  const [iteratorVariable, setIteratorVariable] = react.useState(config.iteratorVariable);
4767
4770
  const [maxIterations, setMaxIterations] = react.useState(config.maxIterations);
4768
4771
  const handleSave = () => {
@@ -4770,7 +4773,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
4770
4773
  };
4771
4774
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4772
4775
  /* @__PURE__ */ jsxRuntime.jsx(
4773
- chunkULKZGM2T_js.FormInput,
4776
+ chunkRWZ2PLMQ_js.FormInput,
4774
4777
  {
4775
4778
  type: "text",
4776
4779
  label: t("iteratorVariableLabel"),
@@ -4780,7 +4783,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
4780
4783
  }
4781
4784
  ),
4782
4785
  /* @__PURE__ */ jsxRuntime.jsx(
4783
- chunkULKZGM2T_js.FormInput,
4786
+ chunkRWZ2PLMQ_js.FormInput,
4784
4787
  {
4785
4788
  type: "number",
4786
4789
  label: t("maxIterationsLabel"),
@@ -4802,7 +4805,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
4802
4805
  ] });
4803
4806
  }
4804
4807
  function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4805
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.knowledgeBaseNodeConfig");
4808
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.knowledgeBaseNodeConfig");
4806
4809
  const [sourceId, setSourceId] = react.useState(config.sourceId);
4807
4810
  const [topK, setTopK] = react.useState(config.topK);
4808
4811
  const [similarityThreshold, setSimilarityThreshold] = react.useState(config.similarityThreshold);
@@ -4811,7 +4814,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4811
4814
  };
4812
4815
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4813
4816
  /* @__PURE__ */ jsxRuntime.jsx(
4814
- chunkULKZGM2T_js.FormInput,
4817
+ chunkRWZ2PLMQ_js.FormInput,
4815
4818
  {
4816
4819
  type: "text",
4817
4820
  label: t("sourceIdLabel"),
@@ -4821,7 +4824,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4821
4824
  }
4822
4825
  ),
4823
4826
  /* @__PURE__ */ jsxRuntime.jsx(
4824
- chunkULKZGM2T_js.FormInput,
4827
+ chunkRWZ2PLMQ_js.FormInput,
4825
4828
  {
4826
4829
  type: "number",
4827
4830
  label: t("topKLabel"),
@@ -4832,7 +4835,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4832
4835
  }
4833
4836
  ),
4834
4837
  /* @__PURE__ */ jsxRuntime.jsx(
4835
- chunkULKZGM2T_js.FormInput,
4838
+ chunkRWZ2PLMQ_js.FormInput,
4836
4839
  {
4837
4840
  type: "number",
4838
4841
  label: t("similarityThresholdLabel"),
@@ -4855,7 +4858,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4855
4858
  ] });
4856
4859
  }
4857
4860
  function AnswerNodeConfigForm({ config, onSave, onCancel }) {
4858
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.answerNodeConfig");
4861
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.answerNodeConfig");
4859
4862
  const [outputTemplate, setOutputTemplate] = react.useState(config.outputTemplate);
4860
4863
  const [outputVariables, setOutputVariables] = react.useState([...config.outputVariables]);
4861
4864
  const handleSave = () => {
@@ -4863,7 +4866,7 @@ function AnswerNodeConfigForm({ config, onSave, onCancel }) {
4863
4866
  };
4864
4867
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4865
4868
  /* @__PURE__ */ jsxRuntime.jsx(
4866
- chunkULKZGM2T_js.FormTextarea,
4869
+ chunkRWZ2PLMQ_js.FormTextarea,
4867
4870
  {
4868
4871
  label: t("outputTemplateLabel"),
4869
4872
  hint: t("outputTemplateHelp"),
@@ -4897,7 +4900,7 @@ function AnswerNodeConfigForm({ config, onSave, onCancel }) {
4897
4900
  ] });
4898
4901
  }
4899
4902
  function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4900
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.questionClassifierNodeConfig");
4903
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.questionClassifierNodeConfig");
4901
4904
  const [modelId, setModelId] = react.useState(config.modelId);
4902
4905
  const [instructions, setInstructions] = react.useState(config.instructions);
4903
4906
  const [categories, setCategories] = react.useState(
@@ -4929,7 +4932,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4929
4932
  };
4930
4933
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4931
4934
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4932
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("modelIdLabel") }),
4935
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("modelIdLabel") }),
4933
4936
  /* @__PURE__ */ jsxRuntime.jsx(
4934
4937
  "input",
4935
4938
  {
@@ -4937,12 +4940,12 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4937
4940
  value: modelId,
4938
4941
  onChange: (event) => setModelId(event.target.value),
4939
4942
  placeholder: t("modelIdPlaceholder"),
4940
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
4943
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
4941
4944
  }
4942
4945
  )
4943
4946
  ] }),
4944
4947
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4945
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("instructionsLabel") }),
4948
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("instructionsLabel") }),
4946
4949
  /* @__PURE__ */ jsxRuntime.jsx(
4947
4950
  "textarea",
4948
4951
  {
@@ -4950,34 +4953,27 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4950
4953
  onChange: (event) => setInstructions(event.target.value),
4951
4954
  placeholder: t("instructionsPlaceholder"),
4952
4955
  rows: 4,
4953
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
4956
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
4954
4957
  }
4955
4958
  )
4956
4959
  ] }),
4957
4960
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4958
4961
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
4959
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("categoriesLabel") }),
4960
- /* @__PURE__ */ jsxRuntime.jsx(
4961
- "button",
4962
- {
4963
- type: "button",
4964
- onClick: handleAddCategory,
4965
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
4966
- children: t("addCategory")
4967
- }
4968
- )
4962
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("categoriesLabel") }),
4963
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "sm", onClick: handleAddCategory, children: t("addCategory") })
4969
4964
  ] }),
4970
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: categories.map((category, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
4965
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: categories.map((category, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
4971
4966
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4972
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: t("categoryIndex", { index: index + 1 }) }),
4967
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("categoryIndex", { index: index + 1 }) }),
4973
4968
  categories.length > 2 && /* @__PURE__ */ jsxRuntime.jsx(
4974
- "button",
4969
+ chunkEBARYRSA_js.IconButton,
4975
4970
  {
4976
- type: "button",
4971
+ label: t("removeCategory"),
4972
+ variant: "ghost",
4973
+ size: "sm",
4974
+ destructive: true,
4977
4975
  onClick: () => handleRemoveCategory(index),
4978
- className: "text-sm text-red-500 hover:text-red-600",
4979
- "aria-label": t("removeCategory"),
4980
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
4976
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
4981
4977
  }
4982
4978
  )
4983
4979
  ] }),
@@ -4989,7 +4985,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4989
4985
  value: category.name,
4990
4986
  onChange: (event) => handleCategoryChange(index, "name", event.target.value),
4991
4987
  placeholder: t("categoryNamePlaceholder"),
4992
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
4988
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
4993
4989
  }
4994
4990
  ),
4995
4991
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4999,37 +4995,26 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4999
4995
  value: category.description,
5000
4996
  onChange: (event) => handleCategoryChange(index, "description", event.target.value),
5001
4997
  placeholder: t("categoryDescriptionPlaceholder"),
5002
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
4998
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5003
4999
  }
5004
5000
  )
5005
5001
  ] })
5006
5002
  ] }, category.id)) })
5007
5003
  ] }),
5008
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5009
- /* @__PURE__ */ jsxRuntime.jsx(
5010
- "button",
5011
- {
5012
- type: "button",
5013
- onClick: onCancel,
5014
- className: "rounded-lg border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",
5015
- children: t("cancel")
5016
- }
5017
- ),
5018
- /* @__PURE__ */ jsxRuntime.jsx(
5019
- "button",
5020
- {
5021
- type: "button",
5022
- onClick: handleSave,
5023
- className: "rounded-lg bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600",
5024
- children: t("save")
5025
- }
5026
- )
5027
- ] })
5004
+ /* @__PURE__ */ jsxRuntime.jsx(
5005
+ ConfigFormActions,
5006
+ {
5007
+ cancelLabel: t("cancel"),
5008
+ saveLabel: t("save"),
5009
+ onCancel,
5010
+ onSave: handleSave
5011
+ }
5012
+ )
5028
5013
  ] });
5029
5014
  }
5030
5015
  var PARAMETER_TYPES = ["string", "number", "boolean", "array"];
5031
5016
  function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5032
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.parameterExtractorNodeConfig");
5017
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.parameterExtractorNodeConfig");
5033
5018
  const [modelId, setModelId] = react.useState(config.modelId);
5034
5019
  const [parameters, setParameters] = react.useState(
5035
5020
  config.parameters.map((parameter) => ({ ...parameter }))
@@ -5059,7 +5044,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5059
5044
  };
5060
5045
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5061
5046
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5062
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("modelIdLabel") }),
5047
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("modelIdLabel") }),
5063
5048
  /* @__PURE__ */ jsxRuntime.jsx(
5064
5049
  "input",
5065
5050
  {
@@ -5067,37 +5052,30 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5067
5052
  value: modelId,
5068
5053
  onChange: (event) => setModelId(event.target.value),
5069
5054
  placeholder: t("modelIdPlaceholder"),
5070
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5055
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5071
5056
  }
5072
5057
  )
5073
5058
  ] }),
5074
5059
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5075
5060
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
5076
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("parametersLabel") }),
5077
- /* @__PURE__ */ jsxRuntime.jsx(
5078
- "button",
5079
- {
5080
- type: "button",
5081
- onClick: handleAddParameter,
5082
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
5083
- children: t("addParameter")
5084
- }
5085
- )
5061
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("parametersLabel") }),
5062
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "sm", onClick: handleAddParameter, children: t("addParameter") })
5086
5063
  ] }),
5087
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: parameters.map((parameter, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
5064
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: parameters.map((parameter, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg liquid-surface p-3", children: [
5088
5065
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 flex items-center justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
5089
- "button",
5066
+ chunkEBARYRSA_js.IconButton,
5090
5067
  {
5091
- type: "button",
5068
+ label: t("removeParameter"),
5069
+ variant: "ghost",
5070
+ size: "sm",
5071
+ destructive: true,
5092
5072
  onClick: () => handleRemoveParameter(index),
5093
- className: "text-sm text-red-500 hover:text-red-600",
5094
- "aria-label": t("removeParameter"),
5095
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
5073
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
5096
5074
  }
5097
5075
  ) }),
5098
5076
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
5099
5077
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5100
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("parameterNameLabel") }),
5078
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterNameLabel") }),
5101
5079
  /* @__PURE__ */ jsxRuntime.jsx(
5102
5080
  "input",
5103
5081
  {
@@ -5105,25 +5083,25 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5105
5083
  value: parameter.name,
5106
5084
  onChange: (event) => handleParameterChange(index, "name", event.target.value),
5107
5085
  placeholder: t("parameterNamePlaceholder"),
5108
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5086
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5109
5087
  }
5110
5088
  )
5111
5089
  ] }),
5112
5090
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5113
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("parameterTypeLabel") }),
5091
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterTypeLabel") }),
5114
5092
  /* @__PURE__ */ jsxRuntime.jsx(
5115
5093
  "select",
5116
5094
  {
5117
5095
  value: parameter.type,
5118
5096
  onChange: (event) => handleParameterChange(index, "type", event.target.value),
5119
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500",
5097
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500",
5120
5098
  children: PARAMETER_TYPES.map((parameterType) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: parameterType, children: parameterType }, parameterType))
5121
5099
  }
5122
5100
  )
5123
5101
  ] })
5124
5102
  ] }),
5125
5103
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2", children: [
5126
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("parameterDescriptionLabel") }),
5104
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterDescriptionLabel") }),
5127
5105
  /* @__PURE__ */ jsxRuntime.jsx(
5128
5106
  "input",
5129
5107
  {
@@ -5131,7 +5109,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5131
5109
  value: parameter.description,
5132
5110
  onChange: (event) => handleParameterChange(index, "description", event.target.value),
5133
5111
  placeholder: t("parameterDescriptionPlaceholder"),
5134
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5112
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5135
5113
  }
5136
5114
  )
5137
5115
  ] }),
@@ -5142,37 +5120,26 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5142
5120
  type: "checkbox",
5143
5121
  checked: parameter.required,
5144
5122
  onChange: (event) => handleParameterChange(index, "required", event.target.checked),
5145
- className: "rounded border-gray-300 text-indigo-600 focus:ring-indigo-400 dark:border-gray-600"
5123
+ className: "rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
5146
5124
  }
5147
5125
  ),
5148
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: t("parameterRequiredLabel") })
5126
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: t("parameterRequiredLabel") })
5149
5127
  ] }) })
5150
5128
  ] }, index)) })
5151
5129
  ] }),
5152
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5153
- /* @__PURE__ */ jsxRuntime.jsx(
5154
- "button",
5155
- {
5156
- type: "button",
5157
- onClick: onCancel,
5158
- className: "rounded-lg border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",
5159
- children: t("cancel")
5160
- }
5161
- ),
5162
- /* @__PURE__ */ jsxRuntime.jsx(
5163
- "button",
5164
- {
5165
- type: "button",
5166
- onClick: handleSave,
5167
- className: "rounded-lg bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600",
5168
- children: t("save")
5169
- }
5170
- )
5171
- ] })
5130
+ /* @__PURE__ */ jsxRuntime.jsx(
5131
+ ConfigFormActions,
5132
+ {
5133
+ cancelLabel: t("cancel"),
5134
+ saveLabel: t("save"),
5135
+ onCancel,
5136
+ onSave: handleSave
5137
+ }
5138
+ )
5172
5139
  ] });
5173
5140
  }
5174
5141
  function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5175
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.variableAssignerNodeConfig");
5142
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableAssignerNodeConfig");
5176
5143
  const [assignments, setAssignments] = react.useState(
5177
5144
  config.assignments.map((assignment) => ({ ...assignment }))
5178
5145
  );
@@ -5199,21 +5166,13 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5199
5166
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5200
5167
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5201
5168
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
5202
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("assignmentsLabel") }),
5203
- /* @__PURE__ */ jsxRuntime.jsx(
5204
- "button",
5205
- {
5206
- type: "button",
5207
- onClick: handleAddAssignment,
5208
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
5209
- children: t("addAssignment")
5210
- }
5211
- )
5169
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("assignmentsLabel") }),
5170
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "sm", onClick: handleAddAssignment, children: t("addAssignment") })
5212
5171
  ] }),
5213
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: assignments.map((assignment, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
5172
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: assignments.map((assignment, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
5214
5173
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid flex-1 grid-cols-2 gap-2", children: [
5215
5174
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5216
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("targetLabel") }),
5175
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("targetLabel") }),
5217
5176
  /* @__PURE__ */ jsxRuntime.jsx(
5218
5177
  "input",
5219
5178
  {
@@ -5221,12 +5180,12 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5221
5180
  value: assignment.target,
5222
5181
  onChange: (event) => handleAssignmentChange(index, "target", event.target.value),
5223
5182
  placeholder: t("targetPlaceholder"),
5224
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5183
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5225
5184
  }
5226
5185
  )
5227
5186
  ] }),
5228
5187
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5229
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("sourceLabel") }),
5188
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("sourceLabel") }),
5230
5189
  /* @__PURE__ */ jsxRuntime.jsx(
5231
5190
  "input",
5232
5191
  {
@@ -5234,48 +5193,39 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5234
5193
  value: assignment.source,
5235
5194
  onChange: (event) => handleAssignmentChange(index, "source", event.target.value),
5236
5195
  placeholder: t("sourcePlaceholder"),
5237
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5196
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5238
5197
  }
5239
5198
  )
5240
5199
  ] })
5241
5200
  ] }),
5242
5201
  /* @__PURE__ */ jsxRuntime.jsx(
5243
- "button",
5202
+ chunkEBARYRSA_js.IconButton,
5244
5203
  {
5245
- type: "button",
5204
+ label: t("removeAssignment"),
5205
+ variant: "ghost",
5206
+ size: "sm",
5207
+ destructive: true,
5208
+ className: "mt-5",
5246
5209
  onClick: () => handleRemoveAssignment(index),
5247
- className: "mt-5 text-sm text-red-500 hover:text-red-600",
5248
- "aria-label": t("removeAssignment"),
5249
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
5210
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
5250
5211
  }
5251
5212
  )
5252
5213
  ] }, index)) })
5253
5214
  ] }),
5254
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5255
- /* @__PURE__ */ jsxRuntime.jsx(
5256
- "button",
5257
- {
5258
- type: "button",
5259
- onClick: onCancel,
5260
- className: "rounded-lg border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",
5261
- children: t("cancel")
5262
- }
5263
- ),
5264
- /* @__PURE__ */ jsxRuntime.jsx(
5265
- "button",
5266
- {
5267
- type: "button",
5268
- onClick: handleSave,
5269
- className: "rounded-lg bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600",
5270
- children: t("save")
5271
- }
5272
- )
5273
- ] })
5215
+ /* @__PURE__ */ jsxRuntime.jsx(
5216
+ ConfigFormActions,
5217
+ {
5218
+ cancelLabel: t("cancel"),
5219
+ saveLabel: t("save"),
5220
+ onCancel,
5221
+ onSave: handleSave
5222
+ }
5223
+ )
5274
5224
  ] });
5275
5225
  }
5276
5226
  var AGGREGATION_MODES = ["array", "object", "concatenate"];
5277
5227
  function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
5278
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.variableAggregatorNodeConfig");
5228
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableAggregatorNodeConfig");
5279
5229
  const [inputVariables, setInputVariables] = react.useState([...config.inputVariables]);
5280
5230
  const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
5281
5231
  const [aggregationMode, setAggregationMode] = react.useState(config.aggregationMode);
@@ -5297,7 +5247,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
5297
5247
  }
5298
5248
  ),
5299
5249
  /* @__PURE__ */ jsxRuntime.jsx(
5300
- chunkULKZGM2T_js.FormInput,
5250
+ chunkRWZ2PLMQ_js.FormInput,
5301
5251
  {
5302
5252
  type: "text",
5303
5253
  label: t("outputVariableLabel"),
@@ -5307,7 +5257,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
5307
5257
  }
5308
5258
  ),
5309
5259
  /* @__PURE__ */ jsxRuntime.jsx(
5310
- chunkULKZGM2T_js.FormSelect,
5260
+ chunkRWZ2PLMQ_js.FormSelect,
5311
5261
  {
5312
5262
  label: t("aggregationModeLabel"),
5313
5263
  value: aggregationMode,
@@ -5332,7 +5282,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
5332
5282
  }
5333
5283
  var EXTRACTION_MODES = ["text", "table", "structured"];
5334
5284
  function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
5335
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.documentExtractorNodeConfig");
5285
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.documentExtractorNodeConfig");
5336
5286
  const [extractionMode, setExtractionMode] = react.useState(config.extractionMode);
5337
5287
  const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
5338
5288
  const handleSave = () => {
@@ -5340,7 +5290,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
5340
5290
  };
5341
5291
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5342
5292
  /* @__PURE__ */ jsxRuntime.jsx(
5343
- chunkULKZGM2T_js.FormSelect,
5293
+ chunkRWZ2PLMQ_js.FormSelect,
5344
5294
  {
5345
5295
  label: t("extractionModeLabel"),
5346
5296
  value: extractionMode,
@@ -5349,7 +5299,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
5349
5299
  }
5350
5300
  ),
5351
5301
  /* @__PURE__ */ jsxRuntime.jsx(
5352
- chunkULKZGM2T_js.FormInput,
5302
+ chunkRWZ2PLMQ_js.FormInput,
5353
5303
  {
5354
5304
  type: "text",
5355
5305
  label: t("outputVariableLabel"),
@@ -5372,7 +5322,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
5372
5322
  var OPERATION_OPTIONS2 = ["filter", "map", "sort", "limit", "deduplicate", "flatten"];
5373
5323
  var SORT_ORDER_OPTIONS = ["asc", "desc"];
5374
5324
  function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5375
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.listOperatorNodeConfig");
5325
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.listOperatorNodeConfig");
5376
5326
  const [operation, setOperation] = react.useState(config.operation);
5377
5327
  const [inputVariable, setInputVariable] = react.useState(config.inputVariable);
5378
5328
  const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
@@ -5404,19 +5354,19 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5404
5354
  };
5405
5355
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5406
5356
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5407
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("operationLabel") }),
5357
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("operationLabel") }),
5408
5358
  /* @__PURE__ */ jsxRuntime.jsx(
5409
5359
  "select",
5410
5360
  {
5411
5361
  value: operation,
5412
5362
  onChange: (event) => setOperation(event.target.value),
5413
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500",
5363
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500",
5414
5364
  children: OPERATION_OPTIONS2.map((operationOption) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: operationOption, children: t(`operation_${operationOption}`) }, operationOption))
5415
5365
  }
5416
5366
  )
5417
5367
  ] }),
5418
5368
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5419
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("inputVariableLabel") }),
5369
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("inputVariableLabel") }),
5420
5370
  /* @__PURE__ */ jsxRuntime.jsx(
5421
5371
  "input",
5422
5372
  {
@@ -5424,12 +5374,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5424
5374
  value: inputVariable,
5425
5375
  onChange: (event) => setInputVariable(event.target.value),
5426
5376
  placeholder: t("inputVariablePlaceholder"),
5427
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5377
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5428
5378
  }
5429
5379
  )
5430
5380
  ] }),
5431
5381
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5432
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("outputVariableLabel") }),
5382
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
5433
5383
  /* @__PURE__ */ jsxRuntime.jsx(
5434
5384
  "input",
5435
5385
  {
@@ -5437,12 +5387,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5437
5387
  value: outputVariable,
5438
5388
  onChange: (event) => setOutputVariable(event.target.value),
5439
5389
  placeholder: t("outputVariablePlaceholder"),
5440
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5390
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5441
5391
  }
5442
5392
  )
5443
5393
  ] }),
5444
5394
  showConditionField && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5445
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("conditionLabel") }),
5395
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("conditionLabel") }),
5446
5396
  /* @__PURE__ */ jsxRuntime.jsx(
5447
5397
  "input",
5448
5398
  {
@@ -5450,13 +5400,13 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5450
5400
  value: condition,
5451
5401
  onChange: (event) => setCondition(event.target.value),
5452
5402
  placeholder: t("conditionPlaceholder"),
5453
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5403
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5454
5404
  }
5455
5405
  )
5456
5406
  ] }),
5457
5407
  showSortFields && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5458
5408
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5459
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("sortKeyLabel") }),
5409
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("sortKeyLabel") }),
5460
5410
  /* @__PURE__ */ jsxRuntime.jsx(
5461
5411
  "input",
5462
5412
  {
@@ -5464,25 +5414,25 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5464
5414
  value: sortKey,
5465
5415
  onChange: (event) => setSortKey(event.target.value),
5466
5416
  placeholder: t("sortKeyPlaceholder"),
5467
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5417
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5468
5418
  }
5469
5419
  )
5470
5420
  ] }),
5471
5421
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5472
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("sortOrderLabel") }),
5422
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("sortOrderLabel") }),
5473
5423
  /* @__PURE__ */ jsxRuntime.jsx(
5474
5424
  "select",
5475
5425
  {
5476
5426
  value: sortOrder,
5477
5427
  onChange: (event) => setSortOrder(event.target.value),
5478
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500",
5428
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500",
5479
5429
  children: SORT_ORDER_OPTIONS.map((order) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: order, children: t(`sortOrder_${order}`) }, order))
5480
5430
  }
5481
5431
  )
5482
5432
  ] })
5483
5433
  ] }),
5484
5434
  showLimitField && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5485
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("limitCountLabel") }),
5435
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("limitCountLabel") }),
5486
5436
  /* @__PURE__ */ jsxRuntime.jsx(
5487
5437
  "input",
5488
5438
  {
@@ -5490,17 +5440,17 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5490
5440
  value: limitCount,
5491
5441
  onChange: (event) => setLimitCount(Number(event.target.value)),
5492
5442
  min: 1,
5493
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5443
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5494
5444
  }
5495
5445
  )
5496
5446
  ] }),
5497
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5447
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 pt-4 liquid-divider border-t", children: [
5498
5448
  /* @__PURE__ */ jsxRuntime.jsx(
5499
5449
  "button",
5500
5450
  {
5501
5451
  type: "button",
5502
5452
  onClick: onCancel,
5503
- className: "rounded-lg border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",
5453
+ className: "rounded-lg border border-slate-300 px-4 py-2 text-sm font-medium text-slate-700 hover:bg-white/40 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/[0.04]",
5504
5454
  children: t("cancel")
5505
5455
  }
5506
5456
  ),
@@ -5517,7 +5467,7 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5517
5467
  ] });
5518
5468
  }
5519
5469
  function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
5520
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.iterationStartNodeConfig");
5470
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.iterationStartNodeConfig");
5521
5471
  const [iteratorVariable, setIteratorVariable] = react.useState(config.iteratorVariable);
5522
5472
  const [itemVariable, setItemVariable] = react.useState(config.itemVariable);
5523
5473
  const [indexVariable, setIndexVariable] = react.useState(config.indexVariable);
@@ -5526,7 +5476,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
5526
5476
  };
5527
5477
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5528
5478
  /* @__PURE__ */ jsxRuntime.jsx(
5529
- chunkULKZGM2T_js.FormInput,
5479
+ chunkRWZ2PLMQ_js.FormInput,
5530
5480
  {
5531
5481
  type: "text",
5532
5482
  label: t("iteratorVariableLabel"),
@@ -5536,7 +5486,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
5536
5486
  }
5537
5487
  ),
5538
5488
  /* @__PURE__ */ jsxRuntime.jsx(
5539
- chunkULKZGM2T_js.FormInput,
5489
+ chunkRWZ2PLMQ_js.FormInput,
5540
5490
  {
5541
5491
  type: "text",
5542
5492
  label: t("itemVariableLabel"),
@@ -5546,7 +5496,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
5546
5496
  }
5547
5497
  ),
5548
5498
  /* @__PURE__ */ jsxRuntime.jsx(
5549
- chunkULKZGM2T_js.FormInput,
5499
+ chunkRWZ2PLMQ_js.FormInput,
5550
5500
  {
5551
5501
  type: "text",
5552
5502
  label: t("indexVariableLabel"),
@@ -5575,7 +5525,7 @@ var FIELD_TYPE_BADGE_COLORS = {
5575
5525
  array: "bg-teal-500/15 text-teal-700 dark:bg-teal-500/20 dark:text-teal-300"
5576
5526
  };
5577
5527
  function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5578
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.entityNodeConfig");
5528
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.entityNodeConfig");
5579
5529
  const [selectedFields, setSelectedFields] = react.useState([...config.selectedFields]);
5580
5530
  const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
5581
5531
  const [limit, setLimit] = react.useState(config.limit);
@@ -5641,7 +5591,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5641
5591
  const filterEntries = Object.entries(filterVariables);
5642
5592
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
5643
5593
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5644
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("entityTypeLabel") }),
5594
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("entityTypeLabel") }),
5645
5595
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
5646
5596
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${gradient}`, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white font-bold", children: (entityDefinition?.label ?? config.entityMasterId ?? "?").charAt(0).toUpperCase() }) }),
5647
5597
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${badgeColor}`, children: entityDefinition?.label ?? config.entityMasterId ?? t("entityTypeLabel") })
@@ -5649,8 +5599,8 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5649
5599
  !entityDefinition && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-xs text-amber-600 dark:text-amber-400", children: t("entityNotConfigured") })
5650
5600
  ] }),
5651
5601
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5652
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("outputVariableLabel") }),
5653
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("outputVariableHelp") }),
5602
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
5603
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("outputVariableHelp") }),
5654
5604
  /* @__PURE__ */ jsxRuntime.jsx(
5655
5605
  "input",
5656
5606
  {
@@ -5658,13 +5608,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5658
5608
  value: outputVariable,
5659
5609
  onChange: (event) => setOutputVariable(event.target.value),
5660
5610
  placeholder: `${(entityDefinition?.label ?? "entity").replace(/\s+/g, "")}Data`,
5661
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5611
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5662
5612
  }
5663
5613
  )
5664
5614
  ] }),
5665
5615
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5666
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("limitLabel") }),
5667
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("limitHelp") }),
5616
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("limitLabel") }),
5617
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("limitHelp") }),
5668
5618
  /* @__PURE__ */ jsxRuntime.jsx(
5669
5619
  "input",
5670
5620
  {
@@ -5673,13 +5623,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5673
5623
  onChange: (event) => setLimit(Math.max(1, Number.parseInt(event.target.value, 10) || 1)),
5674
5624
  min: 1,
5675
5625
  max: 1e3,
5676
- className: "w-32 rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white"
5626
+ className: "w-32 rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white"
5677
5627
  }
5678
5628
  )
5679
5629
  ] }),
5680
5630
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5681
5631
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
5682
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("fieldsLabel") }),
5632
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("fieldsLabel") }),
5683
5633
  /* @__PURE__ */ jsxRuntime.jsx(
5684
5634
  "button",
5685
5635
  {
@@ -5691,15 +5641,15 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5691
5641
  )
5692
5642
  ] }),
5693
5643
  selectedFields.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-amber-600 dark:text-amber-400", children: t("noFieldsSelected") }),
5694
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-48 space-y-1 overflow-y-auto rounded-lg border border-gray-200 p-2 dark:border-gray-700", children: [
5695
- availableFields.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-2 py-2 text-xs text-gray-500 dark:text-gray-400", children: t("noFieldsSelected") }),
5644
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-48 space-y-1 overflow-y-auto rounded-lg border border-slate-200 p-2 dark:border-slate-700", children: [
5645
+ availableFields.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-2 py-2 text-xs text-slate-500 dark:text-slate-400", children: t("noFieldsSelected") }),
5696
5646
  availableFields.map((field) => {
5697
5647
  const isSelected = selectedFields.includes(field.name);
5698
5648
  const typeBadgeColor = FIELD_TYPE_BADGE_COLORS[field.type] ?? FIELD_TYPE_BADGE_COLORS.string;
5699
5649
  return /* @__PURE__ */ jsxRuntime.jsxs(
5700
5650
  "label",
5701
5651
  {
5702
- className: `flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 transition-colors ${isSelected ? "bg-indigo-50 dark:bg-indigo-500/10" : "hover:bg-gray-50 dark:hover:bg-gray-800"}`,
5652
+ className: `flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 transition-colors ${isSelected ? "bg-indigo-50 dark:bg-indigo-500/10" : "hover:bg-white/40 dark:hover:bg-white/[0.04]"}`,
5703
5653
  children: [
5704
5654
  /* @__PURE__ */ jsxRuntime.jsx(
5705
5655
  "input",
@@ -5707,10 +5657,10 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5707
5657
  type: "checkbox",
5708
5658
  checked: isSelected,
5709
5659
  onChange: () => handleToggleField(field.name),
5710
- className: "h-3.5 w-3.5 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 dark:border-gray-600"
5660
+ className: "h-3.5 w-3.5 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
5711
5661
  }
5712
5662
  ),
5713
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-xs font-medium text-gray-900 dark:text-white", children: field.name }),
5663
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-xs font-medium text-slate-900 dark:text-white", children: field.name }),
5714
5664
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `rounded-full px-1.5 py-0.5 text-[9px] font-medium ${typeBadgeColor}`, children: field.type })
5715
5665
  ]
5716
5666
  },
@@ -5721,7 +5671,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5721
5671
  ] }),
5722
5672
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5723
5673
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
5724
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("filtersLabel") }),
5674
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("filtersLabel") }),
5725
5675
  /* @__PURE__ */ jsxRuntime.jsxs(
5726
5676
  "button",
5727
5677
  {
@@ -5735,7 +5685,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5735
5685
  }
5736
5686
  )
5737
5687
  ] }),
5738
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("filtersHelp") }),
5688
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("filtersHelp") }),
5739
5689
  filterEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: filterEntries.map(([variableName, fieldName], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
5740
5690
  /* @__PURE__ */ jsxRuntime.jsx(
5741
5691
  "input",
@@ -5744,16 +5694,16 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5744
5694
  value: variableName,
5745
5695
  onChange: (event) => handleUpdateFilterVariable(variableName, event.target.value),
5746
5696
  placeholder: t("variableName"),
5747
- className: "flex-1 rounded-lg border border-gray-300 bg-white px-2 py-1.5 text-xs text-gray-900 placeholder-gray-400 outline-none focus:border-indigo-400 focus:ring-1 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-500"
5697
+ className: "flex-1 rounded-lg border border-slate-300 bg-white px-2 py-1.5 text-xs text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
5748
5698
  }
5749
5699
  ),
5750
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-400", children: "\u2192" }),
5700
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-slate-400", children: "\u2192" }),
5751
5701
  /* @__PURE__ */ jsxRuntime.jsxs(
5752
5702
  "select",
5753
5703
  {
5754
5704
  value: fieldName,
5755
5705
  onChange: (event) => handleUpdateFilterField(variableName, event.target.value),
5756
- className: "flex-1 rounded-lg border border-gray-300 bg-white px-2 py-1.5 text-xs text-gray-900 outline-none focus:border-indigo-400 focus:ring-1 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white",
5706
+ className: "flex-1 rounded-lg border border-slate-300 bg-white px-2 py-1.5 text-xs text-slate-900 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white",
5757
5707
  children: [
5758
5708
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("fieldName") }),
5759
5709
  availableFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: field.name, children: field.name }, field.name))
@@ -5771,13 +5721,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5771
5721
  )
5772
5722
  ] }, index)) })
5773
5723
  ] }),
5774
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-gray-200 pt-4 dark:border-gray-700", children: [
5724
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 liquid-divider border-t pt-4", children: [
5775
5725
  /* @__PURE__ */ jsxRuntime.jsx(
5776
5726
  "button",
5777
5727
  {
5778
5728
  type: "button",
5779
5729
  onClick: onCancel,
5780
- className: "rounded-lg border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",
5730
+ className: "rounded-lg border border-slate-300 px-4 py-2 text-sm font-medium text-slate-700 hover:bg-white/40 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/[0.04]",
5781
5731
  children: t("cancel")
5782
5732
  }
5783
5733
  ),
@@ -5802,7 +5752,7 @@ var GROUP_COLOR_OPTIONS = [
5802
5752
  { value: "slate", ring: "ring-slate-500", fill: "bg-slate-500" }
5803
5753
  ];
5804
5754
  function GroupNodeConfigForm({ config, onSave, onCancel }) {
5805
- const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.groupNodeConfig");
5755
+ const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.groupNodeConfig");
5806
5756
  const [formLabel, setFormLabel] = react.useState(config.label);
5807
5757
  const [description, setDescription] = react.useState(config.description ?? "");
5808
5758
  const [color, setColor] = react.useState(config.color);
@@ -5818,7 +5768,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5818
5768
  };
5819
5769
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5820
5770
  /* @__PURE__ */ jsxRuntime.jsx(
5821
- chunkULKZGM2T_js.FormInput,
5771
+ chunkRWZ2PLMQ_js.FormInput,
5822
5772
  {
5823
5773
  type: "text",
5824
5774
  label: translations("labelField"),
@@ -5828,7 +5778,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5828
5778
  }
5829
5779
  ),
5830
5780
  /* @__PURE__ */ jsxRuntime.jsx(
5831
- chunkULKZGM2T_js.FormTextarea,
5781
+ chunkRWZ2PLMQ_js.FormTextarea,
5832
5782
  {
5833
5783
  label: translations("descriptionField"),
5834
5784
  value: description,
@@ -5838,7 +5788,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5838
5788
  }
5839
5789
  ),
5840
5790
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5841
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300", children: translations("colorField") }),
5791
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-sm font-medium text-slate-700 dark:text-slate-300", children: translations("colorField") }),
5842
5792
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-3", children: GROUP_COLOR_OPTIONS.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
5843
5793
  "button",
5844
5794
  {
@@ -5863,7 +5813,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5863
5813
  ] });
5864
5814
  }
5865
5815
  function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5866
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.ruleNodeConfig");
5816
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.ruleNodeConfig");
5867
5817
  const [ruleId, setRuleId] = react.useState(config.ruleId ?? "");
5868
5818
  const [priority, setPriority] = react.useState(config.priority ?? 1);
5869
5819
  const [enabled, setEnabled] = react.useState(config.enabled ?? true);
@@ -5873,20 +5823,20 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5873
5823
  };
5874
5824
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5875
5825
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5876
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("ruleIdLabel", { _: "Rule" }) }),
5826
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("ruleIdLabel", { _: "Rule" }) }),
5877
5827
  availableRules && availableRules.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
5878
5828
  "select",
5879
5829
  {
5880
5830
  value: ruleId,
5881
5831
  onChange: (event) => setRuleId(event.target.value),
5882
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-400/20 dark:border-gray-600 dark:bg-gray-800 dark:text-white",
5832
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white",
5883
5833
  children: [
5884
5834
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("rulePickPrompt", { _: "Choose a rule\u2026" }) }),
5885
5835
  availableRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: rule.ruleId, children: rule.name ? `${rule.name} (${rule.ruleId})` : rule.ruleId }, rule.ruleId))
5886
5836
  ]
5887
5837
  }
5888
5838
  ) : /* @__PURE__ */ jsxRuntime.jsx(
5889
- chunkULKZGM2T_js.FormInput,
5839
+ chunkRWZ2PLMQ_js.FormInput,
5890
5840
  {
5891
5841
  type: "text",
5892
5842
  value: ruleId,
@@ -5894,7 +5844,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5894
5844
  placeholder: "e.g. peak_hours"
5895
5845
  }
5896
5846
  ),
5897
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: [
5847
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: [
5898
5848
  "References an ",
5899
5849
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "astrlabe.agent_rules.rule_id" }),
5900
5850
  " row in this organization."
@@ -5902,7 +5852,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5902
5852
  ] }),
5903
5853
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
5904
5854
  /* @__PURE__ */ jsxRuntime.jsx(
5905
- chunkULKZGM2T_js.FormInput,
5855
+ chunkRWZ2PLMQ_js.FormInput,
5906
5856
  {
5907
5857
  type: "number",
5908
5858
  label: t("priorityLabel", { _: "Priority" }),
@@ -5911,14 +5861,14 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5911
5861
  min: 0
5912
5862
  }
5913
5863
  ),
5914
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-end gap-2 pb-2 text-sm text-gray-700 dark:text-gray-300", children: [
5864
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-end gap-2 pb-2 text-sm text-slate-700 dark:text-slate-300", children: [
5915
5865
  /* @__PURE__ */ jsxRuntime.jsx(
5916
5866
  "input",
5917
5867
  {
5918
5868
  type: "checkbox",
5919
5869
  checked: enabled,
5920
5870
  onChange: (event) => setEnabled(event.target.checked),
5921
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 dark:border-gray-600"
5871
+ className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
5922
5872
  }
5923
5873
  ),
5924
5874
  t("enabledLabel", { _: "Enabled" })
@@ -5942,7 +5892,7 @@ function AgentNodeConfigForm({
5942
5892
  availableAgents,
5943
5893
  availableConnections
5944
5894
  }) {
5945
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.agentNodeConfig");
5895
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.agentNodeConfig");
5946
5896
  const [agentId, setAgentId] = react.useState(config.agentId ?? "");
5947
5897
  const [connectionId, setConnectionId] = react.useState(config.connectionId ?? "");
5948
5898
  const [modelId, setModelId] = react.useState(config.modelId ?? "");
@@ -5974,7 +5924,7 @@ function AgentNodeConfigForm({
5974
5924
  }));
5975
5925
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5976
5926
  agentOptions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
5977
- chunkULKZGM2T_js.FormSelect,
5927
+ chunkRWZ2PLMQ_js.FormSelect,
5978
5928
  {
5979
5929
  label: t("agentLabel", { _: "Agent" }),
5980
5930
  value: agentId,
@@ -5982,7 +5932,7 @@ function AgentNodeConfigForm({
5982
5932
  options: [{ value: "", label: t("agentPickPrompt", { _: "Choose an agent\u2026" }) }, ...agentOptions]
5983
5933
  }
5984
5934
  ) : /* @__PURE__ */ jsxRuntime.jsx(
5985
- chunkULKZGM2T_js.FormInput,
5935
+ chunkRWZ2PLMQ_js.FormInput,
5986
5936
  {
5987
5937
  type: "text",
5988
5938
  label: t("agentIdLabel", { _: "Agent ID" }),
@@ -5992,7 +5942,7 @@ function AgentNodeConfigForm({
5992
5942
  }
5993
5943
  ),
5994
5944
  connOptions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
5995
- chunkULKZGM2T_js.FormSelect,
5945
+ chunkRWZ2PLMQ_js.FormSelect,
5996
5946
  {
5997
5947
  label: t("connectionLabel", { _: "Model provider connection" }),
5998
5948
  value: connectionId,
@@ -6000,7 +5950,7 @@ function AgentNodeConfigForm({
6000
5950
  options: [{ value: "", label: t("connectionPickPrompt", { _: "Inline model (no connection)" }) }, ...connOptions]
6001
5951
  }
6002
5952
  ) : /* @__PURE__ */ jsxRuntime.jsx(
6003
- chunkULKZGM2T_js.FormInput,
5953
+ chunkRWZ2PLMQ_js.FormInput,
6004
5954
  {
6005
5955
  type: "text",
6006
5956
  label: t("connectionIdLabel", { _: "Connection ID" }),
@@ -6010,7 +5960,7 @@ function AgentNodeConfigForm({
6010
5960
  }
6011
5961
  ),
6012
5962
  /* @__PURE__ */ jsxRuntime.jsx(
6013
- chunkULKZGM2T_js.FormInput,
5963
+ chunkRWZ2PLMQ_js.FormInput,
6014
5964
  {
6015
5965
  type: "text",
6016
5966
  label: t("modelIdLabel", { _: "Model override (optional)" }),
@@ -6020,7 +5970,7 @@ function AgentNodeConfigForm({
6020
5970
  }
6021
5971
  ),
6022
5972
  /* @__PURE__ */ jsxRuntime.jsx(
6023
- chunkULKZGM2T_js.FormTextarea,
5973
+ chunkRWZ2PLMQ_js.FormTextarea,
6024
5974
  {
6025
5975
  label: t("systemPromptLabel", { _: "System prompt" }),
6026
5976
  value: systemPrompt,
@@ -6030,7 +5980,7 @@ function AgentNodeConfigForm({
6030
5980
  }
6031
5981
  ),
6032
5982
  /* @__PURE__ */ jsxRuntime.jsx(
6033
- chunkULKZGM2T_js.FormTextarea,
5983
+ chunkRWZ2PLMQ_js.FormTextarea,
6034
5984
  {
6035
5985
  label: t("userPromptLabel", { _: "User prompt" }),
6036
5986
  value: userPrompt,
@@ -6041,7 +5991,7 @@ function AgentNodeConfigForm({
6041
5991
  ),
6042
5992
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
6043
5993
  /* @__PURE__ */ jsxRuntime.jsx(
6044
- chunkULKZGM2T_js.FormInput,
5994
+ chunkRWZ2PLMQ_js.FormInput,
6045
5995
  {
6046
5996
  type: "number",
6047
5997
  label: t("maxTokensLabel", { _: "Max output tokens" }),
@@ -6053,7 +6003,7 @@ function AgentNodeConfigForm({
6053
6003
  }
6054
6004
  ),
6055
6005
  /* @__PURE__ */ jsxRuntime.jsx(
6056
- chunkULKZGM2T_js.FormInput,
6006
+ chunkRWZ2PLMQ_js.FormInput,
6057
6007
  {
6058
6008
  type: "number",
6059
6009
  label: t("temperatureLabel", { _: "Temperature" }),
@@ -6078,7 +6028,7 @@ function AgentNodeConfigForm({
6078
6028
  }
6079
6029
  var AUDIO_FORMATS = ["auto", "mp3", "wav", "m4a", "webm", "ogg", "flac", "mp4", "mpga"];
6080
6030
  function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
6081
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.audioInputNodeConfig");
6031
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.audioInputNodeConfig");
6082
6032
  const [url, setUrl] = react.useState(config.url ?? "");
6083
6033
  const [format, setFormat] = react.useState(config.format && config.format.length > 0 ? config.format : "auto");
6084
6034
  const handleSave = () => {
@@ -6090,7 +6040,7 @@ function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
6090
6040
  };
6091
6041
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
6092
6042
  /* @__PURE__ */ jsxRuntime.jsx(
6093
- chunkULKZGM2T_js.FormInput,
6043
+ chunkRWZ2PLMQ_js.FormInput,
6094
6044
  {
6095
6045
  type: "text",
6096
6046
  label: t("urlLabel"),
@@ -6100,7 +6050,7 @@ function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
6100
6050
  }
6101
6051
  ),
6102
6052
  /* @__PURE__ */ jsxRuntime.jsx(
6103
- chunkULKZGM2T_js.FormSelect,
6053
+ chunkRWZ2PLMQ_js.FormSelect,
6104
6054
  {
6105
6055
  label: t("formatLabel"),
6106
6056
  value: format,
@@ -6125,7 +6075,7 @@ var RESPONSE_FORMATS = [
6125
6075
  "text"
6126
6076
  ];
6127
6077
  function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6128
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.speechTranscriberNodeConfig");
6078
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.speechTranscriberNodeConfig");
6129
6079
  const [audioUrl, setAudioUrl] = react.useState(config.audioUrl ?? "");
6130
6080
  const [model, setModel] = react.useState(config.model ?? "whisper-1");
6131
6081
  const [language, setLanguage] = react.useState(config.language ?? "");
@@ -6149,7 +6099,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6149
6099
  };
6150
6100
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
6151
6101
  /* @__PURE__ */ jsxRuntime.jsx(
6152
- chunkULKZGM2T_js.FormInput,
6102
+ chunkRWZ2PLMQ_js.FormInput,
6153
6103
  {
6154
6104
  type: "text",
6155
6105
  label: t("audioUrlLabel"),
@@ -6159,7 +6109,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6159
6109
  }
6160
6110
  ),
6161
6111
  /* @__PURE__ */ jsxRuntime.jsx(
6162
- chunkULKZGM2T_js.FormInput,
6112
+ chunkRWZ2PLMQ_js.FormInput,
6163
6113
  {
6164
6114
  type: "text",
6165
6115
  label: t("modelLabel"),
@@ -6169,7 +6119,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6169
6119
  }
6170
6120
  ),
6171
6121
  /* @__PURE__ */ jsxRuntime.jsx(
6172
- chunkULKZGM2T_js.FormInput,
6122
+ chunkRWZ2PLMQ_js.FormInput,
6173
6123
  {
6174
6124
  type: "text",
6175
6125
  label: t("languageLabel"),
@@ -6179,7 +6129,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6179
6129
  }
6180
6130
  ),
6181
6131
  /* @__PURE__ */ jsxRuntime.jsx(
6182
- chunkULKZGM2T_js.FormTextarea,
6132
+ chunkRWZ2PLMQ_js.FormTextarea,
6183
6133
  {
6184
6134
  label: t("promptLabel"),
6185
6135
  value: prompt,
@@ -6189,7 +6139,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6189
6139
  }
6190
6140
  ),
6191
6141
  /* @__PURE__ */ jsxRuntime.jsx(
6192
- chunkULKZGM2T_js.FormSelect,
6142
+ chunkRWZ2PLMQ_js.FormSelect,
6193
6143
  {
6194
6144
  label: t("responseFormatLabel"),
6195
6145
  value: responseFormat,
@@ -6198,7 +6148,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6198
6148
  }
6199
6149
  ),
6200
6150
  /* @__PURE__ */ jsxRuntime.jsx(
6201
- chunkULKZGM2T_js.FormInput,
6151
+ chunkRWZ2PLMQ_js.FormInput,
6202
6152
  {
6203
6153
  type: "text",
6204
6154
  label: t("endpointLabel"),
@@ -6208,7 +6158,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6208
6158
  }
6209
6159
  ),
6210
6160
  /* @__PURE__ */ jsxRuntime.jsx(
6211
- chunkULKZGM2T_js.FormInput,
6161
+ chunkRWZ2PLMQ_js.FormInput,
6212
6162
  {
6213
6163
  type: "number",
6214
6164
  label: t("timeoutLabel"),
@@ -6231,7 +6181,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
6231
6181
  ] });
6232
6182
  }
6233
6183
  function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6234
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow.dashboardOutputNodeConfig");
6184
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.dashboardOutputNodeConfig");
6235
6185
  const initialMode = config.dashboard ? "inline" : "reference";
6236
6186
  const [mode, setMode] = react.useState(initialMode);
6237
6187
  const [dashboardFrom, setDashboardFrom] = react.useState(config.dashboardFrom ?? "");
@@ -6254,14 +6204,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6254
6204
  }
6255
6205
  };
6256
6206
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
6257
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("description") }),
6207
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("description") }),
6258
6208
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
6259
6209
  /* @__PURE__ */ jsxRuntime.jsx(
6260
6210
  "button",
6261
6211
  {
6262
6212
  type: "button",
6263
6213
  onClick: () => setMode("reference"),
6264
- className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "reference" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-gray-200 bg-white text-gray-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-gray-300"}`,
6214
+ className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "reference" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-slate-200 bg-white text-slate-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-slate-300"}`,
6265
6215
  children: t("modeReference")
6266
6216
  }
6267
6217
  ),
@@ -6270,13 +6220,13 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6270
6220
  {
6271
6221
  type: "button",
6272
6222
  onClick: () => setMode("inline"),
6273
- className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "inline" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-gray-200 bg-white text-gray-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-gray-300"}`,
6223
+ className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "inline" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-slate-200 bg-white text-slate-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-slate-300"}`,
6274
6224
  children: t("modeInline")
6275
6225
  }
6276
6226
  )
6277
6227
  ] }),
6278
6228
  mode === "reference" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
6279
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("referenceLabel") }),
6229
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("referenceLabel") }),
6280
6230
  /* @__PURE__ */ jsxRuntime.jsx(
6281
6231
  "input",
6282
6232
  {
@@ -6284,12 +6234,12 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6284
6234
  value: dashboardFrom,
6285
6235
  onChange: (event) => setDashboardFrom(event.target.value),
6286
6236
  placeholder: t("referencePlaceholder"),
6287
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm font-mono text-gray-900 placeholder:text-gray-400 focus:border-fuchsia-500 focus:outline-none focus:ring-1 focus:ring-fuchsia-500 dark:border-white/10 dark:bg-white/5 dark:text-white"
6237
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm font-mono text-slate-900 placeholder:text-slate-400 focus:border-fuchsia-500 focus:outline-none focus:ring-1 focus:ring-fuchsia-500 dark:border-white/10 dark:bg-white/5 dark:text-white"
6288
6238
  }
6289
6239
  ),
6290
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-gray-500 dark:text-gray-400", children: t("referenceHelp") })
6240
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-slate-500 dark:text-slate-400", children: t("referenceHelp") })
6291
6241
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
6292
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("inlineLabel") }),
6242
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("inlineLabel") }),
6293
6243
  /* @__PURE__ */ jsxRuntime.jsx(
6294
6244
  "textarea",
6295
6245
  {
@@ -6297,14 +6247,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6297
6247
  onChange: (event) => setInlineJson(event.target.value),
6298
6248
  placeholder: '{\\n "kpis": [],\\n "charts": [],\\n "tables": []\\n}',
6299
6249
  rows: 12,
6300
- className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-xs font-mono text-gray-900 placeholder:text-gray-400 focus:border-fuchsia-500 focus:outline-none focus:ring-1 focus:ring-fuchsia-500 dark:border-white/10 dark:bg-white/5 dark:text-white"
6250
+ className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-xs font-mono text-slate-900 placeholder:text-slate-400 focus:border-fuchsia-500 focus:outline-none focus:ring-1 focus:ring-fuchsia-500 dark:border-white/10 dark:bg-white/5 dark:text-white"
6301
6251
  }
6302
6252
  ),
6303
6253
  parseError ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[10px] font-medium text-red-600 dark:text-red-400", children: [
6304
6254
  t("parseError"),
6305
6255
  ": ",
6306
6256
  parseError
6307
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-gray-500 dark:text-gray-400", children: t("inlineHelp") })
6257
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-slate-500 dark:text-slate-400", children: t("inlineHelp") })
6308
6258
  ] }),
6309
6259
  /* @__PURE__ */ jsxRuntime.jsx(
6310
6260
  ConfigFormActions,
@@ -6345,7 +6295,7 @@ var NODE_TITLE_KEYS = {
6345
6295
  dashboard_output: "dashboardOutputNodeConfig"
6346
6296
  };
6347
6297
  function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables, onLoadSchema }) {
6348
- const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
6298
+ const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
6349
6299
  const activeModal = useModalStore((s) => s.activeModal);
6350
6300
  const logicNodeData = useModalStore((s) => s.logicNodeData);
6351
6301
  const closeModal = useModalStore((s) => s.closeModal);
@@ -6423,7 +6373,7 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
6423
6373
  };
6424
6374
  const isExperimental = isExperimentalNodeType(config.type);
6425
6375
  return /* @__PURE__ */ jsxRuntime.jsxs(
6426
- chunkULKZGM2T_js.GlassModal,
6376
+ chunkRWZ2PLMQ_js.GlassModal,
6427
6377
  {
6428
6378
  open,
6429
6379
  onClose: closeModal,
@@ -6449,7 +6399,7 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
6449
6399
  );
6450
6400
  }
6451
6401
  function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onCopy, onDelete }) {
6452
- const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.contextMenu");
6402
+ const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.contextMenu");
6453
6403
  const entries = [
6454
6404
  {
6455
6405
  key: "edit",
@@ -6494,7 +6444,7 @@ function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onC
6494
6444
  }
6495
6445
  ];
6496
6446
  return /* @__PURE__ */ jsxRuntime.jsx(
6497
- chunkULKZGM2T_js.ContextMenu,
6447
+ chunkRWZ2PLMQ_js.ContextMenu,
6498
6448
  {
6499
6449
  position,
6500
6450
  onClose,
@@ -6505,7 +6455,7 @@ function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onC
6505
6455
  );
6506
6456
  }
6507
6457
  function PanelContextMenu({ position, onClose, onPaste, onSelectAll, onFitView, onAddNote, flowPosition, hasClipboardContent }) {
6508
- const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.contextMenu");
6458
+ const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.contextMenu");
6509
6459
  const entries = [
6510
6460
  {
6511
6461
  key: "paste",
@@ -6551,7 +6501,7 @@ function PanelContextMenu({ position, onClose, onPaste, onSelectAll, onFitView,
6551
6501
  }
6552
6502
  ];
6553
6503
  return /* @__PURE__ */ jsxRuntime.jsx(
6554
- chunkULKZGM2T_js.ContextMenu,
6504
+ chunkRWZ2PLMQ_js.ContextMenu,
6555
6505
  {
6556
6506
  position,
6557
6507
  onClose,
@@ -6571,7 +6521,7 @@ function SelectionContextMenu({
6571
6521
  onAlign,
6572
6522
  onDistribute
6573
6523
  }) {
6574
- const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.contextMenu");
6524
+ const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.contextMenu");
6575
6525
  const entries = [
6576
6526
  {
6577
6527
  key: "copy",
@@ -6698,7 +6648,7 @@ function SelectionContextMenu({
6698
6648
  }
6699
6649
  ];
6700
6650
  return /* @__PURE__ */ jsxRuntime.jsx(
6701
- chunkULKZGM2T_js.ContextMenu,
6651
+ chunkRWZ2PLMQ_js.ContextMenu,
6702
6652
  {
6703
6653
  position,
6704
6654
  onClose,
@@ -6880,7 +6830,7 @@ function WorkflowCanvasInner({
6880
6830
  renderLogicNodeModal: _renderLogicNodeModal
6881
6831
  }) {
6882
6832
  const { screenToFlowPosition, getNode, toObject, fitView, zoomIn, zoomOut, zoomTo } = react$1.useReactFlow();
6883
- const tWorkflow = chunkYXN2K77G_js.useTranslations("agents.workflow");
6833
+ const tWorkflow = chunkY5VN4SPH_js.useTranslations("agents.workflow");
6884
6834
  const sortedAgents = react.useMemo(() => [...agents].sort((agentA, agentB) => (agentA.order ?? 0) - (agentB.order ?? 0)), [agents]);
6885
6835
  const [selectedAgentId, setSelectedAgentId] = react.useState(null);
6886
6836
  const openAgentModalAction = useModalStore((s) => s.openAgentModal);
@@ -8571,7 +8521,7 @@ function Workspace({
8571
8521
  const resolvedModels = canvasProps.models ?? bootstrapModels;
8572
8522
  const resolvedTools = canvasProps.tools ?? bootstrapTools;
8573
8523
  const resolvedRules = canvasProps.rules ?? bootstrapRules;
8574
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: className ?? "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx(chunkYXN2K77G_js.I18nProvider, { value: chunkYXN2K77G_js.createI18nFromMessages(locale, messages), children: /* @__PURE__ */ jsxRuntime.jsx(
8524
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: className ?? "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx(chunkY5VN4SPH_js.I18nProvider, { value: chunkY5VN4SPH_js.createI18nFromMessages(locale, messages), children: /* @__PURE__ */ jsxRuntime.jsx(
8575
8525
  WorkflowCanvas,
8576
8526
  {
8577
8527
  ...canvasProps,
@@ -8656,5 +8606,5 @@ exports.useModalStore = useModalStore;
8656
8606
  exports.useWorkflowBuilderClient = useWorkflowBuilderClient;
8657
8607
  exports.useWorkflowBuilderClientOptional = useWorkflowBuilderClientOptional;
8658
8608
  exports.useWorkflowStore = useWorkflowStore;
8659
- //# sourceMappingURL=chunk-FKRIQYRG.js.map
8660
- //# sourceMappingURL=chunk-FKRIQYRG.js.map
8609
+ //# sourceMappingURL=chunk-4Z5NZINA.js.map
8610
+ //# sourceMappingURL=chunk-4Z5NZINA.js.map