@datatechsolutions/ui 3.13.0 → 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 (131) 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 +113 -113
  4. package/dist/astrlabe/index.mjs +5 -5
  5. package/dist/astrlabe/workflow-canvas.js +5 -5
  6. package/dist/astrlabe/workflow-canvas.mjs +4 -4
  7. package/dist/{chunk-CSOMZ5UM.mjs → chunk-3VCSMSJB.mjs} +5 -5
  8. package/dist/{chunk-CSOMZ5UM.mjs.map → chunk-3VCSMSJB.mjs.map} +1 -1
  9. package/dist/{chunk-KWH7JIRP.mjs → chunk-4MNKVDTJ.mjs} +9 -8
  10. package/dist/chunk-4MNKVDTJ.mjs.map +1 -0
  11. package/dist/{chunk-ZRCXDKBE.mjs → chunk-4QCO4CBC.mjs} +4 -4
  12. package/dist/{chunk-ZRCXDKBE.mjs.map → chunk-4QCO4CBC.mjs.map} +1 -1
  13. package/dist/{chunk-VIB42VMZ.mjs → chunk-4VEQJAXJ.mjs} +5 -5
  14. package/dist/{chunk-VIB42VMZ.mjs.map → chunk-4VEQJAXJ.mjs.map} +1 -1
  15. package/dist/{chunk-D5OTZGA2.js → chunk-4Z5NZINA.js} +373 -422
  16. package/dist/chunk-4Z5NZINA.js.map +1 -0
  17. package/dist/{chunk-K5567JM5.js → chunk-54T5F65C.js} +26 -26
  18. package/dist/{chunk-K5567JM5.js.map → chunk-54T5F65C.js.map} +1 -1
  19. package/dist/{chunk-IIRS5XZY.js → chunk-7IAWXG43.js} +33 -33
  20. package/dist/{chunk-IIRS5XZY.js.map → chunk-7IAWXG43.js.map} +1 -1
  21. package/dist/{chunk-N4YT3QA5.js → chunk-AC54BNSK.js} +13 -13
  22. package/dist/{chunk-N4YT3QA5.js.map → chunk-AC54BNSK.js.map} +1 -1
  23. package/dist/{chunk-OY5HUZSD.js → chunk-B3TA74C4.js} +91 -91
  24. package/dist/chunk-B3TA74C4.js.map +1 -0
  25. package/dist/{chunk-PPIUMCUZ.js → chunk-CKY2QIRR.js} +4 -4
  26. package/dist/{chunk-PPIUMCUZ.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-OC4AOYU5.mjs → chunk-DJHNSBIR.mjs} +62 -99
  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-AHNH2PMI.mjs → chunk-M4KRQXOT.mjs} +3 -3
  38. package/dist/{chunk-AHNH2PMI.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-6YTYD4P5.js → chunk-PM7A5I3X.js} +135 -172
  42. package/dist/chunk-PM7A5I3X.js.map +1 -0
  43. package/dist/{chunk-SDYKXLCU.js → chunk-Q7QPHZOV.js} +63 -63
  44. package/dist/{chunk-SDYKXLCU.js.map → chunk-Q7QPHZOV.js.map} +1 -1
  45. package/dist/{chunk-MSKKNPRE.mjs → chunk-QEACOJXX.mjs} +73 -73
  46. package/dist/chunk-QEACOJXX.mjs.map +1 -0
  47. package/dist/{chunk-6KDTVSZT.mjs → chunk-RMPXGEFL.mjs} +10 -9
  48. package/dist/chunk-RMPXGEFL.mjs.map +1 -0
  49. package/dist/{chunk-WOTKBKS6.js → chunk-RPNMDGRA.js} +44 -44
  50. package/dist/chunk-RPNMDGRA.js.map +1 -0
  51. package/dist/{chunk-UPYACFZJ.mjs → chunk-RSCRIDMW.mjs} +274 -312
  52. package/dist/chunk-RSCRIDMW.mjs.map +1 -0
  53. package/dist/{chunk-NF5DDM5V.js → chunk-RUZPOHJW.js} +43 -42
  54. package/dist/chunk-RUZPOHJW.js.map +1 -0
  55. package/dist/{chunk-5ETT54QS.js → chunk-RWZ2PLMQ.js} +142 -142
  56. package/dist/chunk-RWZ2PLMQ.js.map +1 -0
  57. package/dist/{chunk-ANFSQJNI.mjs → chunk-SCGICCQM.mjs} +14 -14
  58. package/dist/chunk-SCGICCQM.mjs.map +1 -0
  59. package/dist/{chunk-UXHJS2SH.mjs → chunk-TRNDFSM6.mjs} +273 -322
  60. package/dist/chunk-TRNDFSM6.mjs.map +1 -0
  61. package/dist/{chunk-VI4IUTMX.js → chunk-ULSG4JLR.js} +6 -6
  62. package/dist/{chunk-VI4IUTMX.js.map → chunk-ULSG4JLR.js.map} +1 -1
  63. package/dist/{chunk-MQDCUBVW.js → chunk-UPWJRCAD.js} +430 -468
  64. package/dist/chunk-UPWJRCAD.js.map +1 -0
  65. package/dist/{chunk-AKWCT53S.mjs → chunk-UUTTS3VV.mjs} +44 -44
  66. package/dist/chunk-UUTTS3VV.mjs.map +1 -0
  67. package/dist/{chunk-AMCFAGK3.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-2ECLDHAT.js → chunk-VWZ53TE2.js} +9 -9
  72. package/dist/{chunk-2ECLDHAT.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-4VHFGW7I.mjs → chunk-Y65X2NHF.mjs} +3 -3
  78. package/dist/{chunk-4VHFGW7I.mjs.map → chunk-Y65X2NHF.mjs.map} +1 -1
  79. package/dist/{chunk-7TYNV6SY.mjs → chunk-YHD6SJIN.mjs} +14 -14
  80. package/dist/{chunk-7TYNV6SY.mjs.map → chunk-YHD6SJIN.mjs.map} +1 -1
  81. package/dist/{chunk-QGRTV35L.mjs → chunk-ZPV7X4ZE.mjs} +6 -6
  82. package/dist/{chunk-QGRTV35L.mjs.map → chunk-ZPV7X4ZE.mjs.map} +1 -1
  83. package/dist/index.js +703 -703
  84. package/dist/index.mjs +2 -2
  85. package/dist/platform/admin/index.js +11 -11
  86. package/dist/platform/admin/index.mjs +5 -5
  87. package/dist/platform/agents-workspace.js +8 -8
  88. package/dist/platform/agents-workspace.mjs +7 -7
  89. package/dist/platform/app-shell.js +4 -4
  90. package/dist/platform/app-shell.mjs +3 -3
  91. package/dist/platform/auth/index.js +28 -28
  92. package/dist/platform/auth/index.mjs +5 -5
  93. package/dist/platform/billing/index.js +6 -6
  94. package/dist/platform/billing/index.mjs +4 -4
  95. package/dist/platform/impersonation/index.js +4 -4
  96. package/dist/platform/impersonation/index.mjs +3 -3
  97. package/dist/platform/index.js +101 -101
  98. package/dist/platform/index.js.map +1 -1
  99. package/dist/platform/index.mjs +29 -29
  100. package/dist/platform/index.mjs.map +1 -1
  101. package/dist/platform/pages/index.d.mts +12 -2
  102. package/dist/platform/pages/index.d.ts +12 -2
  103. package/dist/platform/pages/index.js +450 -449
  104. package/dist/platform/pages/index.js.map +1 -1
  105. package/dist/platform/pages/index.mjs +50 -49
  106. package/dist/platform/pages/index.mjs.map +1 -1
  107. package/dist/platform/settings/index.js +8 -8
  108. package/dist/platform/settings/index.mjs +7 -7
  109. package/dist/platform/workflow-canvas-shell.js +6 -6
  110. package/dist/platform/workflow-canvas-shell.mjs +5 -5
  111. package/package.json +1 -1
  112. package/dist/chunk-3VYD7QL2.mjs.map +0 -1
  113. package/dist/chunk-5ETT54QS.js.map +0 -1
  114. package/dist/chunk-6KDTVSZT.mjs.map +0 -1
  115. package/dist/chunk-6YTYD4P5.js.map +0 -1
  116. package/dist/chunk-AKWCT53S.mjs.map +0 -1
  117. package/dist/chunk-AMCFAGK3.js.map +0 -1
  118. package/dist/chunk-ANFSQJNI.mjs.map +0 -1
  119. package/dist/chunk-D5OTZGA2.js.map +0 -1
  120. package/dist/chunk-DJ33CSGJ.mjs.map +0 -1
  121. package/dist/chunk-KWH7JIRP.mjs.map +0 -1
  122. package/dist/chunk-MQDCUBVW.js.map +0 -1
  123. package/dist/chunk-MSKKNPRE.mjs.map +0 -1
  124. package/dist/chunk-NF5DDM5V.js.map +0 -1
  125. package/dist/chunk-OC4AOYU5.mjs.map +0 -1
  126. package/dist/chunk-OY5HUZSD.js.map +0 -1
  127. package/dist/chunk-P4RVGMZL.js.map +0 -1
  128. package/dist/chunk-QGLGQXJE.js.map +0 -1
  129. package/dist/chunk-UPYACFZJ.mjs.map +0 -1
  130. package/dist/chunk-UXHJS2SH.mjs.map +0 -1
  131. package/dist/chunk-WOTKBKS6.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { ToggleSwitch, StatusBadge, GlassModal, ContextMenu, FormInput, FormTextarea, FormSelect } from './chunk-MSKKNPRE.mjs';
2
+ import { ToggleSwitch, StatusBadge, GlassModal, ContextMenu, FormInput, FormTextarea, FormSelect } from './chunk-QEACOJXX.mjs';
3
3
  import { useTranslations, I18nProvider, createI18nFromMessages } from './chunk-ZEFNBGYI.mjs';
4
- import { GraphNodeHeader, GraphNodeMeta, GraphNodeIconBubble, GraphNodeBadge } from './chunk-PLTLRL2V.mjs';
5
- import { Badge, Button, IconButton } from './chunk-WR55H7DH.mjs';
4
+ import { GraphNodeHeader, GraphNodeMeta, GraphNodeIconBubble, GraphNodeBadge } from './chunk-VPRAESA7.mjs';
5
+ import { Badge, Button, IconButton } from './chunk-O4RZCDP2.mjs';
6
6
  import { getAgentTier, createDefaultLogicNodeConfig, applyDagreLayout } from './chunk-G7JQ4OCE.mjs';
7
7
  import { memo, useState, useRef, useCallback, useEffect, lazy, createContext, useMemo, useContext } from 'react';
8
8
  import { Position, NodeResizer, MarkerType, useReactFlow, getBezierPath, BaseEdge, EdgeLabelRenderer, Handle, ReactFlowProvider, useNodesState, useEdgesState, addEdge, BackgroundVariant } from '@xyflow/react';
@@ -894,10 +894,10 @@ var DraggableCommandBar = memo(function DraggableCommandBar2({
894
894
  document.addEventListener("keydown", handleKeyDown);
895
895
  return () => document.removeEventListener("keydown", handleKeyDown);
896
896
  }, [showShortcuts, onCloseShortcuts]);
897
- 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";
897
+ 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";
898
898
  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";
899
- 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";
900
- const dividerClassName = "mx-0.5 h-4 w-px bg-gray-400/30 dark:bg-white/10";
899
+ 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";
900
+ const dividerClassName = "mx-0.5 h-4 w-px bg-slate-400/30 dark:bg-white/10";
901
901
  return /* @__PURE__ */ jsx(
902
902
  "div",
903
903
  {
@@ -917,7 +917,7 @@ var DraggableCommandBar = memo(function DraggableCommandBar2({
917
917
  {
918
918
  className: `${GLASS_CLASS} flex items-center gap-0.5 rounded-2xl px-2 py-1.5`,
919
919
  children: [
920
- /* @__PURE__ */ jsx("div", { className: "mr-0.5 flex cursor-grab items-center px-0.5 active:cursor-grabbing", children: /* @__PURE__ */ jsx(Bars2Icon, { className: "h-3.5 w-3.5 text-gray-400/70 dark:text-gray-500/70" }) }),
920
+ /* @__PURE__ */ jsx("div", { className: "mr-0.5 flex cursor-grab items-center px-0.5 active:cursor-grabbing", children: /* @__PURE__ */ jsx(Bars2Icon, { className: "h-3.5 w-3.5 text-slate-400/70 dark:text-slate-500/70" }) }),
921
921
  /* @__PURE__ */ jsx(
922
922
  "button",
923
923
  {
@@ -1044,7 +1044,7 @@ var DraggableCommandBar = memo(function DraggableCommandBar2({
1044
1044
  onClick: (event) => event.stopPropagation(),
1045
1045
  onPointerDown: (event) => event.stopPropagation(),
1046
1046
  children: [
1047
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: tWorkflow("shortcuts") }),
1047
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: tWorkflow("shortcuts") }),
1048
1048
  /* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: [
1049
1049
  { keys: "V", label: tWorkflow("pointerMode") },
1050
1050
  { keys: "H", label: tWorkflow("handMode") },
@@ -1066,11 +1066,11 @@ var DraggableCommandBar = memo(function DraggableCommandBar2({
1066
1066
  { keys: "G", label: tWorkflow("toggleDots") },
1067
1067
  { keys: "M", label: tWorkflow("toggleMinimap") }
1068
1068
  ].map((shortcut) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1069
- /* @__PURE__ */ jsx("span", { className: "text-[11px] text-gray-600 dark:text-gray-300", children: shortcut.label }),
1069
+ /* @__PURE__ */ jsx("span", { className: "text-[11px] text-slate-600 dark:text-slate-300", children: shortcut.label }),
1070
1070
  /* @__PURE__ */ jsx("span", { className: "flex items-center gap-0.5", children: shortcut.keys.split(" ").map((key) => /* @__PURE__ */ jsx(
1071
1071
  "kbd",
1072
1072
  {
1073
- 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",
1073
+ 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",
1074
1074
  children: key
1075
1075
  },
1076
1076
  key
@@ -1198,24 +1198,24 @@ function getDatasourceLogo(datasourceId, dialect) {
1198
1198
  }
1199
1199
  return null;
1200
1200
  }
1201
- var TYPE_COLORS = {
1202
- string: "bg-gray-500/10 text-gray-500 dark:text-gray-400",
1203
- varchar: "bg-gray-500/10 text-gray-500 dark:text-gray-400",
1204
- text: "bg-gray-500/10 text-gray-500 dark:text-gray-400",
1205
- integer: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1206
- int: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1207
- bigint: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1208
- number: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
1209
- decimal: "bg-indigo-500/10 text-indigo-600 dark:text-indigo-400",
1210
- float: "bg-indigo-500/10 text-indigo-600 dark:text-indigo-400",
1211
- boolean: "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400",
1212
- date: "bg-amber-500/10 text-amber-600 dark:text-amber-400",
1213
- timestamp: "bg-amber-500/10 text-amber-600 dark:text-amber-400",
1214
- datetime: "bg-amber-500/10 text-amber-600 dark:text-amber-400",
1215
- json: "bg-violet-500/10 text-violet-600 dark:text-violet-400",
1216
- jsonb: "bg-violet-500/10 text-violet-600 dark:text-violet-400",
1217
- uuid: "bg-teal-500/10 text-teal-600 dark:text-teal-400",
1218
- array: "bg-pink-500/10 text-pink-600 dark:text-pink-400"
1201
+ var TYPE_BADGE_COLORS = {
1202
+ string: "zinc",
1203
+ varchar: "zinc",
1204
+ text: "zinc",
1205
+ integer: "blue",
1206
+ int: "blue",
1207
+ bigint: "blue",
1208
+ number: "blue",
1209
+ decimal: "indigo",
1210
+ float: "indigo",
1211
+ boolean: "emerald",
1212
+ date: "amber",
1213
+ timestamp: "amber",
1214
+ datetime: "amber",
1215
+ json: "violet",
1216
+ jsonb: "violet",
1217
+ uuid: "teal",
1218
+ array: "pink"
1219
1219
  };
1220
1220
  var SIDEBAR_SECTIONS = [
1221
1221
  { id: "connection", label: "Connection", icon: CircleStackIcon },
@@ -1371,7 +1371,7 @@ function DatasourceNodeConfigForm({
1371
1371
  switch (activeSectionId) {
1372
1372
  case "connection":
1373
1373
  return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
1374
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("datasourceHelp") }),
1374
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("datasourceHelp") }),
1375
1375
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2", children: datasources.map((datasource) => {
1376
1376
  const isSelected = datasource.id === selectedDatasourceId;
1377
1377
  const logo2 = getDatasourceLogo(datasource.id, datasource.dialect);
@@ -1386,12 +1386,12 @@ function DatasourceNodeConfigForm({
1386
1386
  }
1387
1387
  },
1388
1388
  disabled: readOnly && datasource.id !== selectedDatasourceId,
1389
- 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"}`,
1389
+ 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"}`,
1390
1390
  children: [
1391
- /* @__PURE__ */ jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center", children: logo2 ? /* @__PURE__ */ jsx("img", { src: logo2, alt: datasource.dialect, className: "h-7 w-7" }) : /* @__PURE__ */ jsx(ServerStackIcon, { className: "h-6 w-6 text-gray-400" }) }),
1391
+ /* @__PURE__ */ jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center", children: logo2 ? /* @__PURE__ */ jsx("img", { src: logo2, alt: datasource.dialect, className: "h-7 w-7" }) : /* @__PURE__ */ jsx(ServerStackIcon, { className: "h-6 w-6 text-slate-400" }) }),
1392
1392
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
1393
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-semibold text-gray-900 dark:text-white", children: datasource.name }),
1394
- /* @__PURE__ */ jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: datasource.dialect })
1393
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-semibold text-slate-900 dark:text-white", children: datasource.name }),
1394
+ /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: datasource.dialect })
1395
1395
  ] }),
1396
1396
  isSelected && /* @__PURE__ */ jsx(CheckIcon, { className: "h-4 w-4 shrink-0 text-cyan-500 dark:text-cyan-400" })
1397
1397
  ]
@@ -1402,10 +1402,10 @@ function DatasourceNodeConfigForm({
1402
1402
  ] });
1403
1403
  case "table":
1404
1404
  return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
1405
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("tableHelp") }),
1406
- !selectedDatasourceId ? /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-xs text-gray-400", children: t("selectDatasource") }) : /* @__PURE__ */ jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1407
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-gray-200/50 px-3 py-2 dark:border-white/5", children: [
1408
- /* @__PURE__ */ jsx(MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-gray-400" }),
1405
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("tableHelp") }),
1406
+ !selectedDatasourceId ? /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-xs text-slate-400", children: t("selectDatasource") }) : /* @__PURE__ */ jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1407
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-slate-200/50 px-3 py-2 dark:border-white/5", children: [
1408
+ /* @__PURE__ */ jsx(MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-slate-400" }),
1409
1409
  /* @__PURE__ */ jsx(
1410
1410
  "input",
1411
1411
  {
@@ -1413,13 +1413,13 @@ function DatasourceNodeConfigForm({
1413
1413
  value: tableSearch,
1414
1414
  onChange: (event) => setTableSearch(event.target.value),
1415
1415
  placeholder: t("selectTable"),
1416
- className: "flex-1 bg-transparent text-xs text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1416
+ 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"
1417
1417
  }
1418
1418
  ),
1419
- availableTables.length > 0 && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400", children: availableTables.length })
1419
+ availableTables.length > 0 && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400", children: availableTables.length })
1420
1420
  ] }),
1421
1421
  /* @__PURE__ */ jsxs("div", { className: "max-h-64 overflow-y-auto p-1", children: [
1422
- filteredTables.length === 0 && /* @__PURE__ */ jsx("p", { className: "px-3 py-6 text-center text-[10px] text-gray-400", children: t("noColumnsAvailable") }),
1422
+ filteredTables.length === 0 && /* @__PURE__ */ jsx("p", { className: "px-3 py-6 text-center text-[10px] text-slate-400", children: t("noColumnsAvailable") }),
1423
1423
  filteredTables.map((table) => {
1424
1424
  const isSelected = table === selectedTable;
1425
1425
  return /* @__PURE__ */ jsxs(
@@ -1432,9 +1432,9 @@ function DatasourceNodeConfigForm({
1432
1432
  setActiveSectionId("columns");
1433
1433
  }
1434
1434
  },
1435
- 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"}`,
1435
+ 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"}`,
1436
1436
  children: [
1437
- /* @__PURE__ */ jsx(TableCellsIcon, { className: "h-3.5 w-3.5 shrink-0 text-gray-400" }),
1437
+ /* @__PURE__ */ jsx(TableCellsIcon, { className: "h-3.5 w-3.5 shrink-0 text-slate-400" }),
1438
1438
  /* @__PURE__ */ jsx("span", { className: "truncate", children: table }),
1439
1439
  isSelected && /* @__PURE__ */ jsx(CheckIcon, { className: "ml-auto h-3.5 w-3.5 shrink-0 text-cyan-500" })
1440
1440
  ]
@@ -1448,7 +1448,7 @@ function DatasourceNodeConfigForm({
1448
1448
  case "columns":
1449
1449
  return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
1450
1450
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1451
- /* @__PURE__ */ jsxs("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: [
1451
+ /* @__PURE__ */ jsxs("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
1452
1452
  selectedColumns.length,
1453
1453
  "/",
1454
1454
  availableColumns.length,
@@ -1460,14 +1460,14 @@ function DatasourceNodeConfigForm({
1460
1460
  type: "button",
1461
1461
  onClick: () => setSelectedColumns(allSelected ? [] : [...allColumnNames]),
1462
1462
  disabled: availableColumns.length === 0,
1463
- className: "text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 disabled:opacity-40 dark:text-cyan-400",
1463
+ 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",
1464
1464
  children: allSelected ? t("deselectAll") : t("selectAll")
1465
1465
  }
1466
1466
  )
1467
1467
  ] }),
1468
- !selectedTable ? /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-xs text-gray-400", children: t("selectTable") }) : /* @__PURE__ */ jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1469
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-gray-200/50 px-3 py-2 dark:border-white/5", children: [
1470
- /* @__PURE__ */ jsx(MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-gray-400" }),
1468
+ !selectedTable ? /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-xs text-slate-400", children: t("selectTable") }) : /* @__PURE__ */ jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
1469
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-slate-200/50 px-3 py-2 dark:border-white/5", children: [
1470
+ /* @__PURE__ */ jsx(MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-slate-400" }),
1471
1471
  /* @__PURE__ */ jsx(
1472
1472
  "input",
1473
1473
  {
@@ -1475,15 +1475,15 @@ function DatasourceNodeConfigForm({
1475
1475
  value: columnSearch,
1476
1476
  onChange: (event) => setColumnSearch(event.target.value),
1477
1477
  placeholder: "Search columns...",
1478
- className: "flex-1 bg-transparent text-xs text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1478
+ 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"
1479
1479
  }
1480
1480
  )
1481
1481
  ] }),
1482
1482
  /* @__PURE__ */ jsxs("div", { className: "max-h-64 overflow-y-auto p-1", children: [
1483
- filteredColumns.length === 0 && /* @__PURE__ */ jsx("p", { className: "px-3 py-6 text-center text-[10px] text-gray-400", children: t("noColumnsAvailable") }),
1483
+ filteredColumns.length === 0 && /* @__PURE__ */ jsx("p", { className: "px-3 py-6 text-center text-[10px] text-slate-400", children: t("noColumnsAvailable") }),
1484
1484
  filteredColumns.map((column) => {
1485
1485
  const isSelected = selectedColumns.includes(column.name);
1486
- const typeColor = TYPE_COLORS[column.type.toLowerCase()] ?? TYPE_COLORS.string;
1486
+ const typeBadgeColor = TYPE_BADGE_COLORS[column.type.toLowerCase()] ?? TYPE_BADGE_COLORS.string;
1487
1487
  return /* @__PURE__ */ jsxs(
1488
1488
  "button",
1489
1489
  {
@@ -1491,14 +1491,14 @@ function DatasourceNodeConfigForm({
1491
1491
  onClick: () => {
1492
1492
  if (!readOnly) handleToggleColumn(column.name);
1493
1493
  },
1494
- 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"}`,
1494
+ 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"}`,
1495
1495
  children: [
1496
- /* @__PURE__ */ 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__ */ jsx(CheckIcon, { className: "h-2.5 w-2.5 text-white" }) }),
1497
- /* @__PURE__ */ jsxs("span", { className: "flex-1 truncate text-xs text-gray-900 dark:text-white", children: [
1496
+ /* @__PURE__ */ 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__ */ jsx(CheckIcon, { className: "h-2.5 w-2.5 text-white" }) }),
1497
+ /* @__PURE__ */ jsxs("span", { className: "flex-1 truncate text-xs text-slate-900 dark:text-white", children: [
1498
1498
  column.name,
1499
- column.nullable && /* @__PURE__ */ jsx("span", { className: "ml-1 text-[9px] text-gray-400", children: "?" })
1499
+ column.nullable && /* @__PURE__ */ jsx("span", { className: "ml-1 text-[9px] text-slate-400", children: "?" })
1500
1500
  ] }),
1501
- /* @__PURE__ */ jsx("span", { className: `shrink-0 rounded-full px-1.5 py-0.5 text-[9px] font-medium ${typeColor}`, children: column.type })
1501
+ /* @__PURE__ */ jsx(Badge, { color: typeBadgeColor, size: "xs", children: column.type })
1502
1502
  ]
1503
1503
  },
1504
1504
  column.name
@@ -1510,13 +1510,13 @@ function DatasourceNodeConfigForm({
1510
1510
  case "filters":
1511
1511
  return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
1512
1512
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1513
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("filtersHelp") }),
1513
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("filtersHelp") }),
1514
1514
  !readOnly && /* @__PURE__ */ jsxs(
1515
1515
  "button",
1516
1516
  {
1517
1517
  type: "button",
1518
1518
  onClick: handleAddFilter,
1519
- className: "flex items-center gap-1 text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 dark:text-cyan-400",
1519
+ 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",
1520
1520
  children: [
1521
1521
  /* @__PURE__ */ jsx(PlusIcon$1, { className: "h-3 w-3" }),
1522
1522
  t("addFilter")
@@ -1525,14 +1525,14 @@ function DatasourceNodeConfigForm({
1525
1525
  )
1526
1526
  ] }),
1527
1527
  filterEntries.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2 py-8", children: [
1528
- /* @__PURE__ */ jsx(FunnelIcon, { className: "h-8 w-8 text-gray-300 dark:text-gray-600" }),
1529
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400", children: "No filters configured" }),
1528
+ /* @__PURE__ */ jsx(FunnelIcon, { className: "h-8 w-8 text-slate-300 dark:text-slate-600" }),
1529
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-400", children: "No filters configured" }),
1530
1530
  /* @__PURE__ */ jsxs(
1531
1531
  "button",
1532
1532
  {
1533
1533
  type: "button",
1534
1534
  onClick: handleAddFilter,
1535
- 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",
1535
+ 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",
1536
1536
  children: [
1537
1537
  /* @__PURE__ */ jsx(PlusIcon$1, { className: "h-3 w-3" }),
1538
1538
  t("addFilter")
@@ -1542,14 +1542,15 @@ function DatasourceNodeConfigForm({
1542
1542
  ] }) : /* @__PURE__ */ jsx("div", { className: "space-y-2", children: filterEntries.map((row, index) => {
1543
1543
  const currentOp = row.op ?? "eq";
1544
1544
  const valueDisplay = Array.isArray(row.value) ? row.value.map(String).join(", ") : row.value == null ? "" : String(row.value);
1545
- return /* @__PURE__ */ 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: [
1545
+ return /* @__PURE__ */ jsxs("div", { className: "liquid-surface flex items-center gap-2 rounded-xl px-3 py-2", children: [
1546
1546
  /* @__PURE__ */ jsxs(
1547
1547
  "select",
1548
1548
  {
1549
1549
  value: row.column,
1550
1550
  onChange: (event) => handleUpdateFilterColumn(index, event.target.value),
1551
1551
  disabled: readOnly,
1552
- className: "w-[28%] rounded bg-transparent text-xs text-gray-900 outline-none disabled:opacity-60 dark:text-white",
1552
+ "aria-label": t("columnName"),
1553
+ 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",
1553
1554
  children: [
1554
1555
  /* @__PURE__ */ jsx("option", { value: "", children: t("columnName") }),
1555
1556
  availableColumns.map((column) => /* @__PURE__ */ jsx("option", { value: column.name, children: column.name }, column.name))
@@ -1562,7 +1563,8 @@ function DatasourceNodeConfigForm({
1562
1563
  value: currentOp,
1563
1564
  onChange: (event) => handleUpdateFilterOp(index, event.target.value),
1564
1565
  disabled: readOnly,
1565
- 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",
1566
+ "aria-label": t("filterOperator", { _: "Filter operator" }),
1567
+ 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",
1566
1568
  title: t("filterOperator", { _: "Filter operator" }),
1567
1569
  children: [
1568
1570
  /* @__PURE__ */ jsx("option", { value: "eq", children: "= (eq)" }),
@@ -1584,7 +1586,7 @@ function DatasourceNodeConfigForm({
1584
1586
  onChange: (event) => handleUpdateFilterValue(index, event.target.value),
1585
1587
  placeholder: currentOp === "in" ? "comma-separated, e.g. SP, RJ, MG" : t("variableReference"),
1586
1588
  readOnly,
1587
- className: "flex-1 bg-transparent text-xs text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1589
+ 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"
1588
1590
  }
1589
1591
  ),
1590
1592
  !readOnly && /* @__PURE__ */ jsx(
@@ -1592,7 +1594,7 @@ function DatasourceNodeConfigForm({
1592
1594
  {
1593
1595
  type: "button",
1594
1596
  onClick: () => handleRemoveFilter(index),
1595
- 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",
1597
+ 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",
1596
1598
  children: /* @__PURE__ */ jsx(XMarkIcon$1, { className: "h-3 w-3" })
1597
1599
  }
1598
1600
  )
@@ -1602,10 +1604,10 @@ function DatasourceNodeConfigForm({
1602
1604
  case "output":
1603
1605
  return /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
1604
1606
  /* @__PURE__ */ jsxs("div", { children: [
1605
- /* @__PURE__ */ jsx("label", { className: "mb-1.5 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("outputVariableLabel") }),
1606
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-[10px] text-gray-500 dark:text-gray-400", children: t("outputVariableHelp") }),
1607
- /* @__PURE__ */ 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: [
1608
- /* @__PURE__ */ jsx(VariableIcon, { className: "h-4 w-4 text-gray-400" }),
1607
+ /* @__PURE__ */ jsx("label", { className: "mb-1.5 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
1608
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-[10px] text-slate-500 dark:text-slate-400", children: t("outputVariableHelp") }),
1609
+ /* @__PURE__ */ jsxs("div", { className: "liquid-surface flex items-center gap-2 rounded-xl px-3 py-2.5", children: [
1610
+ /* @__PURE__ */ jsx(VariableIcon, { className: "h-4 w-4 text-slate-400" }),
1609
1611
  /* @__PURE__ */ jsx(
1610
1612
  "input",
1611
1613
  {
@@ -1614,14 +1616,14 @@ function DatasourceNodeConfigForm({
1614
1616
  onChange: (event) => setOutputVariable(event.target.value),
1615
1617
  placeholder: "datasourceResult",
1616
1618
  readOnly,
1617
- className: "flex-1 bg-transparent text-sm text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1619
+ 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"
1618
1620
  }
1619
1621
  )
1620
1622
  ] })
1621
1623
  ] }),
1622
1624
  /* @__PURE__ */ jsxs("div", { children: [
1623
- /* @__PURE__ */ jsx("label", { className: "mb-1.5 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("limitLabel") }),
1624
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-[10px] text-gray-500 dark:text-gray-400", children: t("limitHelp") }),
1625
+ /* @__PURE__ */ jsx("label", { className: "mb-1.5 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("limitLabel") }),
1626
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-[10px] text-slate-500 dark:text-slate-400", children: t("limitHelp") }),
1625
1627
  /* @__PURE__ */ jsx(
1626
1628
  "input",
1627
1629
  {
@@ -1631,15 +1633,15 @@ function DatasourceNodeConfigForm({
1631
1633
  min: 1,
1632
1634
  max: 1e4,
1633
1635
  readOnly,
1634
- 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"
1636
+ 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"
1635
1637
  }
1636
1638
  )
1637
1639
  ] }),
1638
1640
  selectedDatasource && selectedTable && /* @__PURE__ */ 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: [
1639
1641
  /* @__PURE__ */ jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-cyan-600 dark:text-cyan-400 mb-2", children: "Summary" }),
1640
- /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-xs text-gray-600 dark:text-gray-300", children: [
1642
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-xs text-slate-600 dark:text-slate-300", children: [
1641
1643
  /* @__PURE__ */ jsxs("p", { children: [
1642
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "Source:" }),
1644
+ /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "Source:" }),
1643
1645
  " ",
1644
1646
  selectedDatasource.name,
1645
1647
  " (",
@@ -1647,29 +1649,29 @@ function DatasourceNodeConfigForm({
1647
1649
  ")"
1648
1650
  ] }),
1649
1651
  /* @__PURE__ */ jsxs("p", { children: [
1650
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "Table:" }),
1652
+ /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "Table:" }),
1651
1653
  " ",
1652
1654
  selectedTable
1653
1655
  ] }),
1654
1656
  /* @__PURE__ */ jsxs("p", { children: [
1655
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "Columns:" }),
1657
+ /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "Columns:" }),
1656
1658
  " ",
1657
1659
  selectedColumns.length,
1658
1660
  " of ",
1659
1661
  availableColumns.length
1660
1662
  ] }),
1661
1663
  /* @__PURE__ */ jsxs("p", { children: [
1662
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "Filters:" }),
1664
+ /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "Filters:" }),
1663
1665
  " ",
1664
1666
  filterEntries.length
1665
1667
  ] }),
1666
1668
  /* @__PURE__ */ jsxs("p", { children: [
1667
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "Limit:" }),
1669
+ /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "Limit:" }),
1668
1670
  " ",
1669
1671
  limit
1670
1672
  ] }),
1671
1673
  /* @__PURE__ */ jsxs("p", { children: [
1672
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "Output:" }),
1674
+ /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "Output:" }),
1673
1675
  " ",
1674
1676
  outputVariable || "\u2014"
1675
1677
  ] })
@@ -2064,8 +2066,8 @@ var AgentFlowNode = memo(function AgentFlowNode2({ id, data, selected }) {
2064
2066
  const agentLabel = data.label;
2065
2067
  return /* @__PURE__ */ jsxs(Fragment, { children: [
2066
2068
  /* @__PURE__ */ jsx(NodeRunningIndicator, { nodeId: id }),
2067
- /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2068
- /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2069
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2070
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2069
2071
  /* @__PURE__ */ jsx(NodeCard, { variant: "error", nodeType: "agent", width: "w-[320px]", children: /* @__PURE__ */ jsx(
2070
2072
  NodeCardHeader,
2071
2073
  {
@@ -2083,17 +2085,17 @@ var AgentFlowNode = memo(function AgentFlowNode2({ id, data, selected }) {
2083
2085
  const frameworkMeta = getFrameworkMeta(data.agent.framework);
2084
2086
  return /* @__PURE__ */ jsxs(Fragment, { children: [
2085
2087
  /* @__PURE__ */ jsx(NodeRunningIndicator, { nodeId: id }),
2086
- /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2087
- /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2088
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2089
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2088
2090
  /* @__PURE__ */ jsx("button", { type: "button", onClick: () => data.onSelect(agentId), className: "w-full text-left", children: /* @__PURE__ */ jsxs(NodeCard, { compact: isCompact, selected, nodeType: "agent", width: "w-[320px]", children: [
2089
2091
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2090
2092
  /* @__PURE__ */ jsxs("div", { className: "relative flex-shrink-0", children: [
2091
- data.agent.avatar ? /* @__PURE__ */ 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__ */ 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__ */ jsx(CpuChipIcon, { className: "h-6 w-6 text-indigo-500 dark:text-indigo-300" }) }),
2092
- /* @__PURE__ */ 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__ */ jsx(CpuChipIcon, { className: "h-2.5 w-2.5 text-white" }) })
2093
+ data.agent.avatar ? /* @__PURE__ */ 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__ */ 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__ */ jsx(CpuChipIcon, { className: "h-6 w-6 text-indigo-500 dark:text-indigo-300" }) }),
2094
+ /* @__PURE__ */ 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__ */ jsx(CpuChipIcon, { className: "h-2.5 w-2.5 text-white" }) })
2093
2095
  ] }),
2094
2096
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2095
- /* @__PURE__ */ jsx("h3", { className: "truncate text-sm font-semibold text-gray-900 dark:text-white", children: data.agent.name }),
2096
- !isCompact && /* @__PURE__ */ jsx("p", { className: "truncate text-xs text-gray-500 dark:text-gray-400", children: data.agent.role })
2097
+ /* @__PURE__ */ jsx("h3", { className: "truncate text-sm font-semibold text-slate-900 dark:text-white", children: data.agent.name }),
2098
+ !isCompact && /* @__PURE__ */ jsx("p", { className: "truncate text-xs text-slate-500 dark:text-slate-400", children: data.agent.role })
2097
2099
  ] })
2098
2100
  ] }),
2099
2101
  /* @__PURE__ */ jsx(NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
@@ -2114,7 +2116,7 @@ var AgentFlowNode = memo(function AgentFlowNode2({ id, data, selected }) {
2114
2116
  ] }),
2115
2117
  data.agentTools && data.agentTools.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
2116
2118
  /* @__PURE__ */ jsx("div", { className: "w-full" }),
2117
- /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-1 border-t border-gray-200/20 pt-1 dark:border-white/5", children: [
2119
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-1 border-t border-slate-200/20 pt-1 dark:border-white/5", children: [
2118
2120
  /* @__PURE__ */ jsx(CommandLineIcon, { className: "h-3 w-3 shrink-0 text-amber-500 dark:text-amber-400" }),
2119
2121
  data.agentTools.slice(0, 3).map((tool) => /* @__PURE__ */ jsx(
2120
2122
  Badge,
@@ -2126,7 +2128,7 @@ var AgentFlowNode = memo(function AgentFlowNode2({ id, data, selected }) {
2126
2128
  },
2127
2129
  tool.id
2128
2130
  )),
2129
- data.agentTools.length > 3 && /* @__PURE__ */ jsxs("span", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: [
2131
+ data.agentTools.length > 3 && /* @__PURE__ */ jsxs("span", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: [
2130
2132
  "+",
2131
2133
  data.agentTools.length - 3
2132
2134
  ] })
@@ -2297,7 +2299,7 @@ var ToolFlowNode = memo(function ToolFlowNode2({ id, data, selected }) {
2297
2299
  const categoryPill = CATEGORY_PILL_COLORS[categoryKey] ?? CATEGORY_PILL_COLORS.external;
2298
2300
  return /* @__PURE__ */ jsxs(Fragment, { children: [
2299
2301
  /* @__PURE__ */ jsx(NodeRunningIndicator, { nodeId: id }),
2300
- /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2302
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
2301
2303
  /* @__PURE__ */ jsx(
2302
2304
  "button",
2303
2305
  {
@@ -2309,8 +2311,8 @@ var ToolFlowNode = memo(function ToolFlowNode2({ id, data, selected }) {
2309
2311
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2310
2312
  /* @__PURE__ */ jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsx(IconComponent, { className: "h-5 w-5 text-white" }) }),
2311
2313
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2312
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: tool.name }),
2313
- !isCompact && /* @__PURE__ */ jsx("p", { className: "mt-0.5 line-clamp-1 text-xs text-gray-500 dark:text-gray-400", children: String(tool.description ?? "") })
2314
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: tool.name }),
2315
+ !isCompact && /* @__PURE__ */ jsx("p", { className: "mt-0.5 line-clamp-1 text-xs text-slate-500 dark:text-slate-400", children: String(tool.description ?? "") })
2314
2316
  ] })
2315
2317
  ] }),
2316
2318
  onToggle && /* @__PURE__ */ jsx(
@@ -2338,7 +2340,7 @@ var ToolFlowNode = memo(function ToolFlowNode2({ id, data, selected }) {
2338
2340
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2339
2341
  /* @__PURE__ */ jsx(Badge, { color: "teal", size: "xs", children: t("nodeType") }),
2340
2342
  /* @__PURE__ */ jsx(Badge, { color: "zinc", size: "xs", className: categoryPill, children: tool.category }),
2341
- /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2343
+ /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2342
2344
  String(tool.timeoutMs ?? ""),
2343
2345
  "ms"
2344
2346
  ] })
@@ -2388,18 +2390,18 @@ var RuleFlowNode = memo(function RuleFlowNode2({ id, data, selected }) {
2388
2390
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2389
2391
  /* @__PURE__ */ 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__ */ jsx(ScaleIcon, { className: "h-5 w-5 text-white" }) }),
2390
2392
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2391
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: ruleLabel || t("ruleEngine") }),
2392
- /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: t("ruleEngineDescription") })
2393
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: ruleLabel || t("ruleEngine") }),
2394
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-slate-500 dark:text-slate-400", children: t("ruleEngineDescription") })
2393
2395
  ] })
2394
2396
  ] }),
2395
2397
  !isCompact && /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center justify-between", children: [
2396
2398
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2397
2399
  /* @__PURE__ */ jsx(Badge, { color: "violet", size: "xs", children: t("ruleEngine") }),
2398
- contextVariableCount > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2400
+ contextVariableCount > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2399
2401
  contextVariableCount,
2400
2402
  " vars"
2401
2403
  ] }),
2402
- ruleConfig.outputVariable && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2404
+ ruleConfig.outputVariable && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2403
2405
  "\u2192 ",
2404
2406
  ruleConfig.outputVariable
2405
2407
  ] })
@@ -2432,7 +2434,7 @@ var RuleFlowNode = memo(function RuleFlowNode2({ id, data, selected }) {
2432
2434
  /* @__PURE__ */ jsx(NodeCard, { variant: "error", nodeType: "rule", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2433
2435
  /* @__PURE__ */ 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__ */ jsx(ExclamationTriangleIcon, { className: "h-5 w-5 text-white" }) }),
2434
2436
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2435
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: ruleLabel || t("nodeType") }),
2437
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: ruleLabel || t("nodeType") }),
2436
2438
  /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-amber-600 dark:text-amber-400", children: t("ruleNotFound") })
2437
2439
  ] })
2438
2440
  ] }) }),
@@ -2461,8 +2463,8 @@ var RuleFlowNode = memo(function RuleFlowNode2({ id, data, selected }) {
2461
2463
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2462
2464
  /* @__PURE__ */ jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsx(AdjustmentsHorizontalIcon, { className: "h-5 w-5 text-white" }) }),
2463
2465
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2464
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: rule.name }),
2465
- /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs font-medium text-gray-600 dark:text-gray-300", children: adjustmentDisplay })
2466
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: rule.name }),
2467
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs font-medium text-slate-600 dark:text-slate-300", children: adjustmentDisplay })
2466
2468
  ] })
2467
2469
  ] }),
2468
2470
  onToggle && /* @__PURE__ */ jsx(
@@ -2490,11 +2492,11 @@ var RuleFlowNode = memo(function RuleFlowNode2({ id, data, selected }) {
2490
2492
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2491
2493
  /* @__PURE__ */ jsx(Badge, { color: "violet", size: "xs", children: t("nodeType") }),
2492
2494
  /* @__PURE__ */ jsx(Badge, { color: "zinc", size: "xs", className: typePill, children: adjustmentType }),
2493
- /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2495
+ /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2494
2496
  "P",
2495
2497
  String(rule.priority ?? "")
2496
2498
  ] }),
2497
- Array.isArray(rule.condition?.categories) && rule.condition.categories.length > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2499
+ Array.isArray(rule.condition?.categories) && rule.condition.categories.length > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2498
2500
  rule.condition.categories.length,
2499
2501
  " categories"
2500
2502
  ] })
@@ -2561,8 +2563,8 @@ var EntityFlowNode = memo(function EntityFlowNode2({ id, data, selected }) {
2561
2563
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2562
2564
  /* @__PURE__ */ jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsx(EntityIcon, { className: "h-5 w-5 text-white" }) }),
2563
2565
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2564
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: label }),
2565
- !isCompact && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: data.entity?.label ?? config.entityMasterId })
2566
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: label }),
2567
+ !isCompact && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-slate-500 dark:text-slate-400", children: data.entity?.label ?? config.entityMasterId })
2566
2568
  ] })
2567
2569
  ] }),
2568
2570
  /* @__PURE__ */ jsxs(NodeCardMeta, { compact: isCompact, children: [
@@ -2573,8 +2575,8 @@ var EntityFlowNode = memo(function EntityFlowNode2({ id, data, selected }) {
2573
2575
  " ",
2574
2576
  t("entityFields")
2575
2577
  ] }),
2576
- config.limit > 0 && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("entityLimit", { count: config.limit }) }),
2577
- filterCount > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
2578
+ config.limit > 0 && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("entityLimit", { count: config.limit }) }),
2579
+ filterCount > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
2578
2580
  filterCount,
2579
2581
  " ",
2580
2582
  t("entityFilters")
@@ -3781,7 +3783,7 @@ var SpeechTranscriberFlowNode = memo(function SpeechTranscriberFlowNode2({ id, d
3781
3783
  /* @__PURE__ */ jsx(NodeCardBadge, { tone: "speech_transcriber", children: "Whisper" }),
3782
3784
  /* @__PURE__ */ jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: model }),
3783
3785
  /* @__PURE__ */ jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: language }),
3784
- audioRefPreview && /* @__PURE__ */ jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: audioRefPreview })
3786
+ audioRefPreview && /* @__PURE__ */ jsx("span", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: audioRefPreview })
3785
3787
  ] }),
3786
3788
  /* @__PURE__ */ jsx(NodeCardDeleteAction, { nodeId: id, onDelete })
3787
3789
  ] })
@@ -3838,7 +3840,7 @@ function ConfigFormActions({
3838
3840
  onSave,
3839
3841
  saveDisabled = false
3840
3842
  }) {
3841
- return /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 border-t border-gray-200 pt-4 dark:border-gray-700", children: [
3843
+ return /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 border-t border-slate-200 pt-4 dark:border-slate-700", children: [
3842
3844
  /* @__PURE__ */ jsx(Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3843
3845
  /* @__PURE__ */ jsx(Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3844
3846
  ] });
@@ -3917,7 +3919,7 @@ function VariableListEditor({
3917
3919
  }
3918
3920
  }, [handleAdd]);
3919
3921
  return /* @__PURE__ */ jsxs("div", { children: [
3920
- label && /* @__PURE__ */ jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: label }),
3922
+ label && /* @__PURE__ */ jsx("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: label }),
3921
3923
  variables.length > 0 && /* @__PURE__ */ jsx("div", { className: "mb-2 space-y-1", children: variables.map((variable, index) => /* @__PURE__ */ jsxs(
3922
3924
  "div",
3923
3925
  {
@@ -3930,17 +3932,19 @@ function VariableListEditor({
3930
3932
  type: "text",
3931
3933
  value: variable,
3932
3934
  onChange: (event) => handleEdit(index, event.target.value),
3933
- 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`
3935
+ 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`
3934
3936
  }
3935
- ) : /* @__PURE__ */ jsx("span", { className: "flex-1 text-sm font-medium text-gray-900 dark:text-white", children: variable }),
3937
+ ) : /* @__PURE__ */ jsx("span", { className: "flex-1 text-sm font-medium text-slate-900 dark:text-white", children: variable }),
3936
3938
  /* @__PURE__ */ jsx(
3937
- "button",
3939
+ IconButton,
3938
3940
  {
3939
- type: "button",
3941
+ label: `Remove ${variable}`,
3942
+ variant: "ghost",
3943
+ size: "sm",
3944
+ destructive: true,
3940
3945
  onClick: () => handleRemove(index),
3941
- 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",
3942
- "aria-label": `Remove ${variable}`,
3943
- children: /* @__PURE__ */ jsx(XMarkIcon$1, { className: "h-3.5 w-3.5" })
3946
+ icon: /* @__PURE__ */ jsx(XMarkIcon$1, { className: "h-3.5 w-3.5" }),
3947
+ className: "shrink-0 opacity-0 transition-opacity group-hover:opacity-100"
3944
3948
  }
3945
3949
  )
3946
3950
  ]
@@ -3957,7 +3961,7 @@ function VariableListEditor({
3957
3961
  onChange: (event) => setNewVariable(event.target.value),
3958
3962
  onKeyDown: handleKeyDown,
3959
3963
  placeholder,
3960
- 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"
3964
+ 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"
3961
3965
  }
3962
3966
  ),
3963
3967
  /* @__PURE__ */ jsxs(
@@ -3974,7 +3978,7 @@ function VariableListEditor({
3974
3978
  }
3975
3979
  )
3976
3980
  ] }),
3977
- variables.length === 0 && !canAdd && /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400 dark:text-gray-500", children: "No variables defined" })
3981
+ variables.length === 0 && !canAdd && /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-400 dark:text-slate-500", children: "No variables defined" })
3978
3982
  ] });
3979
3983
  }
3980
3984
  function StartNodeConfigForm({ config, onSave, onCancel }) {
@@ -3985,7 +3989,7 @@ function StartNodeConfigForm({ config, onSave, onCancel }) {
3985
3989
  };
3986
3990
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
3987
3991
  /* @__PURE__ */ jsxs("div", { children: [
3988
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("inputVariablesHelp") }),
3992
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("inputVariablesHelp") }),
3989
3993
  /* @__PURE__ */ jsx(
3990
3994
  VariableListEditor,
3991
3995
  {
@@ -4017,7 +4021,7 @@ function EndNodeConfigForm({ config, onSave, onCancel }) {
4017
4021
  };
4018
4022
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4019
4023
  /* @__PURE__ */ jsxs("div", { children: [
4020
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("outputVariablesHelp") }),
4024
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("outputVariablesHelp") }),
4021
4025
  /* @__PURE__ */ jsx(
4022
4026
  VariableListEditor,
4023
4027
  {
@@ -4085,7 +4089,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4085
4089
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4086
4090
  /* @__PURE__ */ jsxs("div", { children: [
4087
4091
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
4088
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("conditionsLabel") }),
4092
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("conditionsLabel") }),
4089
4093
  /* @__PURE__ */ jsx(
4090
4094
  Button,
4091
4095
  {
@@ -4095,7 +4099,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4095
4099
  }
4096
4100
  )
4097
4101
  ] }),
4098
- /* @__PURE__ */ jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ 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: [
4102
+ /* @__PURE__ */ jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
4099
4103
  /* @__PURE__ */ jsxs("div", { className: "grid flex-1 grid-cols-3 gap-2", children: [
4100
4104
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
4101
4105
  FormInput,
@@ -4144,7 +4148,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4144
4148
  ] }, index)) })
4145
4149
  ] }),
4146
4150
  /* @__PURE__ */ jsxs("div", { children: [
4147
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("logicalOperatorLabel") }),
4151
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("logicalOperatorLabel") }),
4148
4152
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
4149
4153
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
4150
4154
  /* @__PURE__ */ jsx(
@@ -4158,7 +4162,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4158
4162
  className: "text-indigo-600 focus:ring-indigo-400"
4159
4163
  }
4160
4164
  ),
4161
- /* @__PURE__ */ jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: "AND" })
4165
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: "AND" })
4162
4166
  ] }),
4163
4167
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
4164
4168
  /* @__PURE__ */ jsx(
@@ -4172,7 +4176,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4172
4176
  className: "text-indigo-600 focus:ring-indigo-400"
4173
4177
  }
4174
4178
  ),
4175
- /* @__PURE__ */ jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: "OR" })
4179
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: "OR" })
4176
4180
  ] })
4177
4181
  ] })
4178
4182
  ] }),
@@ -4262,17 +4266,17 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4262
4266
  }
4263
4267
  onSave(next);
4264
4268
  };
4265
- const labelClass = "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300";
4266
- 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";
4269
+ const labelClass = "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300";
4270
+ 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";
4267
4271
  const textareaClass = `${inputClass} font-mono text-xs`;
4268
4272
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4269
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2 rounded-lg bg-gray-100 p-1 text-sm dark:bg-gray-800", children: [
4273
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2 rounded-lg bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm p-1 text-sm", children: [
4270
4274
  /* @__PURE__ */ jsx(
4271
4275
  "button",
4272
4276
  {
4273
4277
  type: "button",
4274
4278
  onClick: () => setMode("operation"),
4275
- 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"}`,
4279
+ 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"}`,
4276
4280
  children: t("modeOperation", { _: "Operation" })
4277
4281
  }
4278
4282
  ),
@@ -4281,7 +4285,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4281
4285
  {
4282
4286
  type: "button",
4283
4287
  onClick: () => setMode("scripted"),
4284
- 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"}`,
4288
+ 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"}`,
4285
4289
  children: t("modeScripted", { _: "Scripted" })
4286
4290
  }
4287
4291
  )
@@ -4325,7 +4329,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4325
4329
  children: OPERATION_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: o.label }, o.value))
4326
4330
  }
4327
4331
  ),
4328
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: selectedOpHelp })
4332
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: selectedOpHelp })
4329
4333
  ] }),
4330
4334
  operation !== "return" && /* @__PURE__ */ jsxs("div", { children: [
4331
4335
  /* @__PURE__ */ jsx("label", { className: labelClass, children: "from" }),
@@ -4339,7 +4343,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4339
4343
  className: inputClass
4340
4344
  }
4341
4345
  ),
4342
- /* @__PURE__ */ 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." })
4346
+ /* @__PURE__ */ 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." })
4343
4347
  ] }),
4344
4348
  (operation === "return" || operation === "merge") && /* @__PURE__ */ jsxs("div", { children: [
4345
4349
  /* @__PURE__ */ jsxs("label", { className: labelClass, children: [
@@ -4369,7 +4373,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4369
4373
  className: inputClass
4370
4374
  }
4371
4375
  ),
4372
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: "Comma-separated keys to project." })
4376
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "Comma-separated keys to project." })
4373
4377
  ] }),
4374
4378
  operation === "regex_extract" && /* @__PURE__ */ jsxs(Fragment, { children: [
4375
4379
  /* @__PURE__ */ jsxs("div", { children: [
@@ -4398,7 +4402,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4398
4402
  className: inputClass
4399
4403
  }
4400
4404
  ),
4401
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: "i, m, s, x, U, R (g is implicit)." })
4405
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "i, m, s, x, U, R (g is implicit)." })
4402
4406
  ] }),
4403
4407
  /* @__PURE__ */ jsxs("div", { children: [
4404
4408
  /* @__PURE__ */ jsx("label", { className: labelClass, children: "group" }),
@@ -4412,18 +4416,18 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4412
4416
  className: inputClass
4413
4417
  }
4414
4418
  ),
4415
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: "0 = whole match, 1 = first capture group (default)." })
4419
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "0 = whole match, 1 = first capture group (default)." })
4416
4420
  ] })
4417
4421
  ] })
4418
4422
  ] }),
4419
- operation === "xml_titles" && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300", children: [
4423
+ operation === "xml_titles" && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm text-slate-700 dark:text-slate-300", children: [
4420
4424
  /* @__PURE__ */ jsx(
4421
4425
  "input",
4422
4426
  {
4423
4427
  type: "checkbox",
4424
4428
  checked: keepChannel,
4425
4429
  onChange: (event) => setKeepChannel(event.target.checked),
4426
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 dark:border-gray-600"
4430
+ 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"
4427
4431
  }
4428
4432
  ),
4429
4433
  "Keep channel/feed title (default: drop the first `<title>`)."
@@ -4440,7 +4444,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4440
4444
  className: inputClass
4441
4445
  }
4442
4446
  ),
4443
- /* @__PURE__ */ jsxs("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: [
4447
+ /* @__PURE__ */ jsxs("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: [
4444
4448
  "Defaults to `",
4445
4449
  operation === "regex_extract" ? "matches" : "titles",
4446
4450
  "` if left blank."
@@ -4523,7 +4527,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4523
4527
  ),
4524
4528
  /* @__PURE__ */ jsxs("div", { children: [
4525
4529
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4526
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("headersLabel") }),
4530
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("headersLabel") }),
4527
4531
  /* @__PURE__ */ jsx(
4528
4532
  Button,
4529
4533
  {
@@ -4926,7 +4930,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4926
4930
  };
4927
4931
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4928
4932
  /* @__PURE__ */ jsxs("div", { children: [
4929
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("modelIdLabel") }),
4933
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("modelIdLabel") }),
4930
4934
  /* @__PURE__ */ jsx(
4931
4935
  "input",
4932
4936
  {
@@ -4934,12 +4938,12 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4934
4938
  value: modelId,
4935
4939
  onChange: (event) => setModelId(event.target.value),
4936
4940
  placeholder: t("modelIdPlaceholder"),
4937
- 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"
4941
+ 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"
4938
4942
  }
4939
4943
  )
4940
4944
  ] }),
4941
4945
  /* @__PURE__ */ jsxs("div", { children: [
4942
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("instructionsLabel") }),
4946
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("instructionsLabel") }),
4943
4947
  /* @__PURE__ */ jsx(
4944
4948
  "textarea",
4945
4949
  {
@@ -4947,34 +4951,27 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4947
4951
  onChange: (event) => setInstructions(event.target.value),
4948
4952
  placeholder: t("instructionsPlaceholder"),
4949
4953
  rows: 4,
4950
- 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"
4954
+ 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"
4951
4955
  }
4952
4956
  )
4953
4957
  ] }),
4954
4958
  /* @__PURE__ */ jsxs("div", { children: [
4955
4959
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
4956
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("categoriesLabel") }),
4957
- /* @__PURE__ */ jsx(
4958
- "button",
4959
- {
4960
- type: "button",
4961
- onClick: handleAddCategory,
4962
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
4963
- children: t("addCategory")
4964
- }
4965
- )
4960
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("categoriesLabel") }),
4961
+ /* @__PURE__ */ jsx(Button, { type: "button", plain: true, size: "sm", onClick: handleAddCategory, children: t("addCategory") })
4966
4962
  ] }),
4967
- /* @__PURE__ */ jsx("div", { className: "space-y-3", children: categories.map((category, index) => /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
4963
+ /* @__PURE__ */ jsx("div", { className: "space-y-3", children: categories.map((category, index) => /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
4968
4964
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4969
- /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: t("categoryIndex", { index: index + 1 }) }),
4965
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("categoryIndex", { index: index + 1 }) }),
4970
4966
  categories.length > 2 && /* @__PURE__ */ jsx(
4971
- "button",
4967
+ IconButton,
4972
4968
  {
4973
- type: "button",
4969
+ label: t("removeCategory"),
4970
+ variant: "ghost",
4971
+ size: "sm",
4972
+ destructive: true,
4974
4973
  onClick: () => handleRemoveCategory(index),
4975
- className: "text-sm text-red-500 hover:text-red-600",
4976
- "aria-label": t("removeCategory"),
4977
- children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
4974
+ icon: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
4978
4975
  }
4979
4976
  )
4980
4977
  ] }),
@@ -4986,7 +4983,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4986
4983
  value: category.name,
4987
4984
  onChange: (event) => handleCategoryChange(index, "name", event.target.value),
4988
4985
  placeholder: t("categoryNamePlaceholder"),
4989
- 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"
4986
+ 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"
4990
4987
  }
4991
4988
  ),
4992
4989
  /* @__PURE__ */ jsx(
@@ -4996,32 +4993,21 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4996
4993
  value: category.description,
4997
4994
  onChange: (event) => handleCategoryChange(index, "description", event.target.value),
4998
4995
  placeholder: t("categoryDescriptionPlaceholder"),
4999
- 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"
4996
+ 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"
5000
4997
  }
5001
4998
  )
5002
4999
  ] })
5003
5000
  ] }, category.id)) })
5004
5001
  ] }),
5005
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5006
- /* @__PURE__ */ jsx(
5007
- "button",
5008
- {
5009
- type: "button",
5010
- onClick: onCancel,
5011
- 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",
5012
- children: t("cancel")
5013
- }
5014
- ),
5015
- /* @__PURE__ */ jsx(
5016
- "button",
5017
- {
5018
- type: "button",
5019
- onClick: handleSave,
5020
- 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",
5021
- children: t("save")
5022
- }
5023
- )
5024
- ] })
5002
+ /* @__PURE__ */ jsx(
5003
+ ConfigFormActions,
5004
+ {
5005
+ cancelLabel: t("cancel"),
5006
+ saveLabel: t("save"),
5007
+ onCancel,
5008
+ onSave: handleSave
5009
+ }
5010
+ )
5025
5011
  ] });
5026
5012
  }
5027
5013
  var PARAMETER_TYPES = ["string", "number", "boolean", "array"];
@@ -5056,7 +5042,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5056
5042
  };
5057
5043
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5058
5044
  /* @__PURE__ */ jsxs("div", { children: [
5059
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("modelIdLabel") }),
5045
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("modelIdLabel") }),
5060
5046
  /* @__PURE__ */ jsx(
5061
5047
  "input",
5062
5048
  {
@@ -5064,37 +5050,30 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5064
5050
  value: modelId,
5065
5051
  onChange: (event) => setModelId(event.target.value),
5066
5052
  placeholder: t("modelIdPlaceholder"),
5067
- 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"
5053
+ 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"
5068
5054
  }
5069
5055
  )
5070
5056
  ] }),
5071
5057
  /* @__PURE__ */ jsxs("div", { children: [
5072
5058
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
5073
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("parametersLabel") }),
5074
- /* @__PURE__ */ jsx(
5075
- "button",
5076
- {
5077
- type: "button",
5078
- onClick: handleAddParameter,
5079
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
5080
- children: t("addParameter")
5081
- }
5082
- )
5059
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("parametersLabel") }),
5060
+ /* @__PURE__ */ jsx(Button, { type: "button", plain: true, size: "sm", onClick: handleAddParameter, children: t("addParameter") })
5083
5061
  ] }),
5084
- /* @__PURE__ */ jsx("div", { className: "space-y-3", children: parameters.map((parameter, index) => /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
5062
+ /* @__PURE__ */ jsx("div", { className: "space-y-3", children: parameters.map((parameter, index) => /* @__PURE__ */ jsxs("div", { className: "rounded-lg liquid-surface p-3", children: [
5085
5063
  /* @__PURE__ */ jsx("div", { className: "mb-2 flex items-center justify-end", children: /* @__PURE__ */ jsx(
5086
- "button",
5064
+ IconButton,
5087
5065
  {
5088
- type: "button",
5066
+ label: t("removeParameter"),
5067
+ variant: "ghost",
5068
+ size: "sm",
5069
+ destructive: true,
5089
5070
  onClick: () => handleRemoveParameter(index),
5090
- className: "text-sm text-red-500 hover:text-red-600",
5091
- "aria-label": t("removeParameter"),
5092
- children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5071
+ icon: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5093
5072
  }
5094
5073
  ) }),
5095
5074
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
5096
5075
  /* @__PURE__ */ jsxs("div", { children: [
5097
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("parameterNameLabel") }),
5076
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterNameLabel") }),
5098
5077
  /* @__PURE__ */ jsx(
5099
5078
  "input",
5100
5079
  {
@@ -5102,25 +5081,25 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5102
5081
  value: parameter.name,
5103
5082
  onChange: (event) => handleParameterChange(index, "name", event.target.value),
5104
5083
  placeholder: t("parameterNamePlaceholder"),
5105
- 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"
5084
+ 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"
5106
5085
  }
5107
5086
  )
5108
5087
  ] }),
5109
5088
  /* @__PURE__ */ jsxs("div", { children: [
5110
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("parameterTypeLabel") }),
5089
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterTypeLabel") }),
5111
5090
  /* @__PURE__ */ jsx(
5112
5091
  "select",
5113
5092
  {
5114
5093
  value: parameter.type,
5115
5094
  onChange: (event) => handleParameterChange(index, "type", event.target.value),
5116
- 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",
5095
+ 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",
5117
5096
  children: PARAMETER_TYPES.map((parameterType) => /* @__PURE__ */ jsx("option", { value: parameterType, children: parameterType }, parameterType))
5118
5097
  }
5119
5098
  )
5120
5099
  ] })
5121
5100
  ] }),
5122
5101
  /* @__PURE__ */ jsxs("div", { className: "mt-2", children: [
5123
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("parameterDescriptionLabel") }),
5102
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterDescriptionLabel") }),
5124
5103
  /* @__PURE__ */ jsx(
5125
5104
  "input",
5126
5105
  {
@@ -5128,7 +5107,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5128
5107
  value: parameter.description,
5129
5108
  onChange: (event) => handleParameterChange(index, "description", event.target.value),
5130
5109
  placeholder: t("parameterDescriptionPlaceholder"),
5131
- 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"
5110
+ 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"
5132
5111
  }
5133
5112
  )
5134
5113
  ] }),
@@ -5139,33 +5118,22 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5139
5118
  type: "checkbox",
5140
5119
  checked: parameter.required,
5141
5120
  onChange: (event) => handleParameterChange(index, "required", event.target.checked),
5142
- className: "rounded border-gray-300 text-indigo-600 focus:ring-indigo-400 dark:border-gray-600"
5121
+ className: "rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
5143
5122
  }
5144
5123
  ),
5145
- /* @__PURE__ */ jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: t("parameterRequiredLabel") })
5124
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: t("parameterRequiredLabel") })
5146
5125
  ] }) })
5147
5126
  ] }, index)) })
5148
5127
  ] }),
5149
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5150
- /* @__PURE__ */ jsx(
5151
- "button",
5152
- {
5153
- type: "button",
5154
- onClick: onCancel,
5155
- 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",
5156
- children: t("cancel")
5157
- }
5158
- ),
5159
- /* @__PURE__ */ jsx(
5160
- "button",
5161
- {
5162
- type: "button",
5163
- onClick: handleSave,
5164
- 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",
5165
- children: t("save")
5166
- }
5167
- )
5168
- ] })
5128
+ /* @__PURE__ */ jsx(
5129
+ ConfigFormActions,
5130
+ {
5131
+ cancelLabel: t("cancel"),
5132
+ saveLabel: t("save"),
5133
+ onCancel,
5134
+ onSave: handleSave
5135
+ }
5136
+ )
5169
5137
  ] });
5170
5138
  }
5171
5139
  function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
@@ -5196,21 +5164,13 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5196
5164
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5197
5165
  /* @__PURE__ */ jsxs("div", { children: [
5198
5166
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
5199
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("assignmentsLabel") }),
5200
- /* @__PURE__ */ jsx(
5201
- "button",
5202
- {
5203
- type: "button",
5204
- onClick: handleAddAssignment,
5205
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
5206
- children: t("addAssignment")
5207
- }
5208
- )
5167
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("assignmentsLabel") }),
5168
+ /* @__PURE__ */ jsx(Button, { type: "button", plain: true, size: "sm", onClick: handleAddAssignment, children: t("addAssignment") })
5209
5169
  ] }),
5210
- /* @__PURE__ */ jsx("div", { className: "space-y-3", children: assignments.map((assignment, index) => /* @__PURE__ */ 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: [
5170
+ /* @__PURE__ */ jsx("div", { className: "space-y-3", children: assignments.map((assignment, index) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
5211
5171
  /* @__PURE__ */ jsxs("div", { className: "grid flex-1 grid-cols-2 gap-2", children: [
5212
5172
  /* @__PURE__ */ jsxs("div", { children: [
5213
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("targetLabel") }),
5173
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("targetLabel") }),
5214
5174
  /* @__PURE__ */ jsx(
5215
5175
  "input",
5216
5176
  {
@@ -5218,12 +5178,12 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5218
5178
  value: assignment.target,
5219
5179
  onChange: (event) => handleAssignmentChange(index, "target", event.target.value),
5220
5180
  placeholder: t("targetPlaceholder"),
5221
- 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"
5181
+ 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"
5222
5182
  }
5223
5183
  )
5224
5184
  ] }),
5225
5185
  /* @__PURE__ */ jsxs("div", { children: [
5226
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-gray-500 dark:text-gray-400", children: t("sourceLabel") }),
5186
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("sourceLabel") }),
5227
5187
  /* @__PURE__ */ jsx(
5228
5188
  "input",
5229
5189
  {
@@ -5231,43 +5191,34 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5231
5191
  value: assignment.source,
5232
5192
  onChange: (event) => handleAssignmentChange(index, "source", event.target.value),
5233
5193
  placeholder: t("sourcePlaceholder"),
5234
- 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"
5194
+ 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"
5235
5195
  }
5236
5196
  )
5237
5197
  ] })
5238
5198
  ] }),
5239
5199
  /* @__PURE__ */ jsx(
5240
- "button",
5200
+ IconButton,
5241
5201
  {
5242
- type: "button",
5202
+ label: t("removeAssignment"),
5203
+ variant: "ghost",
5204
+ size: "sm",
5205
+ destructive: true,
5206
+ className: "mt-5",
5243
5207
  onClick: () => handleRemoveAssignment(index),
5244
- className: "mt-5 text-sm text-red-500 hover:text-red-600",
5245
- "aria-label": t("removeAssignment"),
5246
- children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5208
+ icon: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5247
5209
  }
5248
5210
  )
5249
5211
  ] }, index)) })
5250
5212
  ] }),
5251
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5252
- /* @__PURE__ */ jsx(
5253
- "button",
5254
- {
5255
- type: "button",
5256
- onClick: onCancel,
5257
- 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",
5258
- children: t("cancel")
5259
- }
5260
- ),
5261
- /* @__PURE__ */ jsx(
5262
- "button",
5263
- {
5264
- type: "button",
5265
- onClick: handleSave,
5266
- 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",
5267
- children: t("save")
5268
- }
5269
- )
5270
- ] })
5213
+ /* @__PURE__ */ jsx(
5214
+ ConfigFormActions,
5215
+ {
5216
+ cancelLabel: t("cancel"),
5217
+ saveLabel: t("save"),
5218
+ onCancel,
5219
+ onSave: handleSave
5220
+ }
5221
+ )
5271
5222
  ] });
5272
5223
  }
5273
5224
  var AGGREGATION_MODES = ["array", "object", "concatenate"];
@@ -5401,19 +5352,19 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5401
5352
  };
5402
5353
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5403
5354
  /* @__PURE__ */ jsxs("div", { children: [
5404
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("operationLabel") }),
5355
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("operationLabel") }),
5405
5356
  /* @__PURE__ */ jsx(
5406
5357
  "select",
5407
5358
  {
5408
5359
  value: operation,
5409
5360
  onChange: (event) => setOperation(event.target.value),
5410
- 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",
5361
+ 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",
5411
5362
  children: OPERATION_OPTIONS2.map((operationOption) => /* @__PURE__ */ jsx("option", { value: operationOption, children: t(`operation_${operationOption}`) }, operationOption))
5412
5363
  }
5413
5364
  )
5414
5365
  ] }),
5415
5366
  /* @__PURE__ */ jsxs("div", { children: [
5416
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("inputVariableLabel") }),
5367
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("inputVariableLabel") }),
5417
5368
  /* @__PURE__ */ jsx(
5418
5369
  "input",
5419
5370
  {
@@ -5421,12 +5372,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5421
5372
  value: inputVariable,
5422
5373
  onChange: (event) => setInputVariable(event.target.value),
5423
5374
  placeholder: t("inputVariablePlaceholder"),
5424
- 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"
5375
+ 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"
5425
5376
  }
5426
5377
  )
5427
5378
  ] }),
5428
5379
  /* @__PURE__ */ jsxs("div", { children: [
5429
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("outputVariableLabel") }),
5380
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
5430
5381
  /* @__PURE__ */ jsx(
5431
5382
  "input",
5432
5383
  {
@@ -5434,12 +5385,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5434
5385
  value: outputVariable,
5435
5386
  onChange: (event) => setOutputVariable(event.target.value),
5436
5387
  placeholder: t("outputVariablePlaceholder"),
5437
- 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"
5388
+ 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"
5438
5389
  }
5439
5390
  )
5440
5391
  ] }),
5441
5392
  showConditionField && /* @__PURE__ */ jsxs("div", { children: [
5442
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("conditionLabel") }),
5393
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("conditionLabel") }),
5443
5394
  /* @__PURE__ */ jsx(
5444
5395
  "input",
5445
5396
  {
@@ -5447,13 +5398,13 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5447
5398
  value: condition,
5448
5399
  onChange: (event) => setCondition(event.target.value),
5449
5400
  placeholder: t("conditionPlaceholder"),
5450
- 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"
5401
+ 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"
5451
5402
  }
5452
5403
  )
5453
5404
  ] }),
5454
5405
  showSortFields && /* @__PURE__ */ jsxs(Fragment, { children: [
5455
5406
  /* @__PURE__ */ jsxs("div", { children: [
5456
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("sortKeyLabel") }),
5407
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("sortKeyLabel") }),
5457
5408
  /* @__PURE__ */ jsx(
5458
5409
  "input",
5459
5410
  {
@@ -5461,25 +5412,25 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5461
5412
  value: sortKey,
5462
5413
  onChange: (event) => setSortKey(event.target.value),
5463
5414
  placeholder: t("sortKeyPlaceholder"),
5464
- 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"
5415
+ 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"
5465
5416
  }
5466
5417
  )
5467
5418
  ] }),
5468
5419
  /* @__PURE__ */ jsxs("div", { children: [
5469
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("sortOrderLabel") }),
5420
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("sortOrderLabel") }),
5470
5421
  /* @__PURE__ */ jsx(
5471
5422
  "select",
5472
5423
  {
5473
5424
  value: sortOrder,
5474
5425
  onChange: (event) => setSortOrder(event.target.value),
5475
- 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",
5426
+ 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",
5476
5427
  children: SORT_ORDER_OPTIONS.map((order) => /* @__PURE__ */ jsx("option", { value: order, children: t(`sortOrder_${order}`) }, order))
5477
5428
  }
5478
5429
  )
5479
5430
  ] })
5480
5431
  ] }),
5481
5432
  showLimitField && /* @__PURE__ */ jsxs("div", { children: [
5482
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("limitCountLabel") }),
5433
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("limitCountLabel") }),
5483
5434
  /* @__PURE__ */ jsx(
5484
5435
  "input",
5485
5436
  {
@@ -5487,17 +5438,17 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5487
5438
  value: limitCount,
5488
5439
  onChange: (event) => setLimitCount(Number(event.target.value)),
5489
5440
  min: 1,
5490
- 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"
5441
+ 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"
5491
5442
  }
5492
5443
  )
5493
5444
  ] }),
5494
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5445
+ /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 liquid-divider border-t", children: [
5495
5446
  /* @__PURE__ */ jsx(
5496
5447
  "button",
5497
5448
  {
5498
5449
  type: "button",
5499
5450
  onClick: onCancel,
5500
- 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",
5451
+ 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]",
5501
5452
  children: t("cancel")
5502
5453
  }
5503
5454
  ),
@@ -5638,7 +5589,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5638
5589
  const filterEntries = Object.entries(filterVariables);
5639
5590
  return /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
5640
5591
  /* @__PURE__ */ jsxs("div", { children: [
5641
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("entityTypeLabel") }),
5592
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("entityTypeLabel") }),
5642
5593
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
5643
5594
  /* @__PURE__ */ jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${gradient}`, children: /* @__PURE__ */ jsx("span", { className: "text-[10px] text-white font-bold", children: (entityDefinition?.label ?? config.entityMasterId ?? "?").charAt(0).toUpperCase() }) }),
5644
5595
  /* @__PURE__ */ 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") })
@@ -5646,8 +5597,8 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5646
5597
  !entityDefinition && /* @__PURE__ */ jsx("p", { className: "mt-2 text-xs text-amber-600 dark:text-amber-400", children: t("entityNotConfigured") })
5647
5598
  ] }),
5648
5599
  /* @__PURE__ */ jsxs("div", { children: [
5649
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("outputVariableLabel") }),
5650
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("outputVariableHelp") }),
5600
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
5601
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("outputVariableHelp") }),
5651
5602
  /* @__PURE__ */ jsx(
5652
5603
  "input",
5653
5604
  {
@@ -5655,13 +5606,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5655
5606
  value: outputVariable,
5656
5607
  onChange: (event) => setOutputVariable(event.target.value),
5657
5608
  placeholder: `${(entityDefinition?.label ?? "entity").replace(/\s+/g, "")}Data`,
5658
- 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"
5609
+ 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"
5659
5610
  }
5660
5611
  )
5661
5612
  ] }),
5662
5613
  /* @__PURE__ */ jsxs("div", { children: [
5663
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("limitLabel") }),
5664
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("limitHelp") }),
5614
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("limitLabel") }),
5615
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("limitHelp") }),
5665
5616
  /* @__PURE__ */ jsx(
5666
5617
  "input",
5667
5618
  {
@@ -5670,13 +5621,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5670
5621
  onChange: (event) => setLimit(Math.max(1, Number.parseInt(event.target.value, 10) || 1)),
5671
5622
  min: 1,
5672
5623
  max: 1e3,
5673
- 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"
5624
+ 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"
5674
5625
  }
5675
5626
  )
5676
5627
  ] }),
5677
5628
  /* @__PURE__ */ jsxs("div", { children: [
5678
5629
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
5679
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("fieldsLabel") }),
5630
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("fieldsLabel") }),
5680
5631
  /* @__PURE__ */ jsx(
5681
5632
  "button",
5682
5633
  {
@@ -5688,15 +5639,15 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5688
5639
  )
5689
5640
  ] }),
5690
5641
  selectedFields.length === 0 && /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-amber-600 dark:text-amber-400", children: t("noFieldsSelected") }),
5691
- /* @__PURE__ */ 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: [
5692
- availableFields.length === 0 && /* @__PURE__ */ jsx("p", { className: "px-2 py-2 text-xs text-gray-500 dark:text-gray-400", children: t("noFieldsSelected") }),
5642
+ /* @__PURE__ */ 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: [
5643
+ availableFields.length === 0 && /* @__PURE__ */ jsx("p", { className: "px-2 py-2 text-xs text-slate-500 dark:text-slate-400", children: t("noFieldsSelected") }),
5693
5644
  availableFields.map((field) => {
5694
5645
  const isSelected = selectedFields.includes(field.name);
5695
5646
  const typeBadgeColor = FIELD_TYPE_BADGE_COLORS[field.type] ?? FIELD_TYPE_BADGE_COLORS.string;
5696
5647
  return /* @__PURE__ */ jsxs(
5697
5648
  "label",
5698
5649
  {
5699
- 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"}`,
5650
+ 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]"}`,
5700
5651
  children: [
5701
5652
  /* @__PURE__ */ jsx(
5702
5653
  "input",
@@ -5704,10 +5655,10 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5704
5655
  type: "checkbox",
5705
5656
  checked: isSelected,
5706
5657
  onChange: () => handleToggleField(field.name),
5707
- className: "h-3.5 w-3.5 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 dark:border-gray-600"
5658
+ 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"
5708
5659
  }
5709
5660
  ),
5710
- /* @__PURE__ */ jsx("span", { className: "flex-1 text-xs font-medium text-gray-900 dark:text-white", children: field.name }),
5661
+ /* @__PURE__ */ jsx("span", { className: "flex-1 text-xs font-medium text-slate-900 dark:text-white", children: field.name }),
5711
5662
  /* @__PURE__ */ jsx("span", { className: `rounded-full px-1.5 py-0.5 text-[9px] font-medium ${typeBadgeColor}`, children: field.type })
5712
5663
  ]
5713
5664
  },
@@ -5718,7 +5669,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5718
5669
  ] }),
5719
5670
  /* @__PURE__ */ jsxs("div", { children: [
5720
5671
  /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
5721
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("filtersLabel") }),
5672
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("filtersLabel") }),
5722
5673
  /* @__PURE__ */ jsxs(
5723
5674
  "button",
5724
5675
  {
@@ -5732,7 +5683,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5732
5683
  }
5733
5684
  )
5734
5685
  ] }),
5735
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-gray-500 dark:text-gray-400", children: t("filtersHelp") }),
5686
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("filtersHelp") }),
5736
5687
  filterEntries.length > 0 && /* @__PURE__ */ jsx("div", { className: "space-y-2", children: filterEntries.map(([variableName, fieldName], index) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
5737
5688
  /* @__PURE__ */ jsx(
5738
5689
  "input",
@@ -5741,16 +5692,16 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5741
5692
  value: variableName,
5742
5693
  onChange: (event) => handleUpdateFilterVariable(variableName, event.target.value),
5743
5694
  placeholder: t("variableName"),
5744
- 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"
5695
+ 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"
5745
5696
  }
5746
5697
  ),
5747
- /* @__PURE__ */ jsx("span", { className: "text-xs text-gray-400", children: "\u2192" }),
5698
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-slate-400", children: "\u2192" }),
5748
5699
  /* @__PURE__ */ jsxs(
5749
5700
  "select",
5750
5701
  {
5751
5702
  value: fieldName,
5752
5703
  onChange: (event) => handleUpdateFilterField(variableName, event.target.value),
5753
- 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",
5704
+ 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",
5754
5705
  children: [
5755
5706
  /* @__PURE__ */ jsx("option", { value: "", children: t("fieldName") }),
5756
5707
  availableFields.map((field) => /* @__PURE__ */ jsx("option", { value: field.name, children: field.name }, field.name))
@@ -5768,13 +5719,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5768
5719
  )
5769
5720
  ] }, index)) })
5770
5721
  ] }),
5771
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 border-t border-gray-200 pt-4 dark:border-gray-700", children: [
5722
+ /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 liquid-divider border-t pt-4", children: [
5772
5723
  /* @__PURE__ */ jsx(
5773
5724
  "button",
5774
5725
  {
5775
5726
  type: "button",
5776
5727
  onClick: onCancel,
5777
- 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",
5728
+ 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]",
5778
5729
  children: t("cancel")
5779
5730
  }
5780
5731
  ),
@@ -5835,7 +5786,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5835
5786
  }
5836
5787
  ),
5837
5788
  /* @__PURE__ */ jsxs("div", { children: [
5838
- /* @__PURE__ */ jsx("label", { className: "mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300", children: translations("colorField") }),
5789
+ /* @__PURE__ */ jsx("label", { className: "mb-2 block text-sm font-medium text-slate-700 dark:text-slate-300", children: translations("colorField") }),
5839
5790
  /* @__PURE__ */ jsx("div", { className: "flex items-center gap-3", children: GROUP_COLOR_OPTIONS.map((option) => /* @__PURE__ */ jsx(
5840
5791
  "button",
5841
5792
  {
@@ -5870,13 +5821,13 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5870
5821
  };
5871
5822
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5872
5823
  /* @__PURE__ */ jsxs("div", { children: [
5873
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("ruleIdLabel", { _: "Rule" }) }),
5824
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("ruleIdLabel", { _: "Rule" }) }),
5874
5825
  availableRules && availableRules.length > 0 ? /* @__PURE__ */ jsxs(
5875
5826
  "select",
5876
5827
  {
5877
5828
  value: ruleId,
5878
5829
  onChange: (event) => setRuleId(event.target.value),
5879
- 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",
5830
+ 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",
5880
5831
  children: [
5881
5832
  /* @__PURE__ */ jsx("option", { value: "", children: t("rulePickPrompt", { _: "Choose a rule\u2026" }) }),
5882
5833
  availableRules.map((rule) => /* @__PURE__ */ jsx("option", { value: rule.ruleId, children: rule.name ? `${rule.name} (${rule.ruleId})` : rule.ruleId }, rule.ruleId))
@@ -5891,7 +5842,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5891
5842
  placeholder: "e.g. peak_hours"
5892
5843
  }
5893
5844
  ),
5894
- /* @__PURE__ */ jsxs("p", { className: "mt-1 text-[11px] text-gray-500 dark:text-gray-400", children: [
5845
+ /* @__PURE__ */ jsxs("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: [
5895
5846
  "References an ",
5896
5847
  /* @__PURE__ */ jsx("code", { children: "astrlabe.agent_rules.rule_id" }),
5897
5848
  " row in this organization."
@@ -5908,14 +5859,14 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5908
5859
  min: 0
5909
5860
  }
5910
5861
  ),
5911
- /* @__PURE__ */ jsxs("label", { className: "flex items-end gap-2 pb-2 text-sm text-gray-700 dark:text-gray-300", children: [
5862
+ /* @__PURE__ */ jsxs("label", { className: "flex items-end gap-2 pb-2 text-sm text-slate-700 dark:text-slate-300", children: [
5912
5863
  /* @__PURE__ */ jsx(
5913
5864
  "input",
5914
5865
  {
5915
5866
  type: "checkbox",
5916
5867
  checked: enabled,
5917
5868
  onChange: (event) => setEnabled(event.target.checked),
5918
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 dark:border-gray-600"
5869
+ 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"
5919
5870
  }
5920
5871
  ),
5921
5872
  t("enabledLabel", { _: "Enabled" })
@@ -6251,14 +6202,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6251
6202
  }
6252
6203
  };
6253
6204
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
6254
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("description") }),
6205
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("description") }),
6255
6206
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
6256
6207
  /* @__PURE__ */ jsx(
6257
6208
  "button",
6258
6209
  {
6259
6210
  type: "button",
6260
6211
  onClick: () => setMode("reference"),
6261
- 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"}`,
6212
+ 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"}`,
6262
6213
  children: t("modeReference")
6263
6214
  }
6264
6215
  ),
@@ -6267,13 +6218,13 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6267
6218
  {
6268
6219
  type: "button",
6269
6220
  onClick: () => setMode("inline"),
6270
- 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"}`,
6221
+ 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"}`,
6271
6222
  children: t("modeInline")
6272
6223
  }
6273
6224
  )
6274
6225
  ] }),
6275
6226
  mode === "reference" ? /* @__PURE__ */ jsxs("div", { children: [
6276
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("referenceLabel") }),
6227
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("referenceLabel") }),
6277
6228
  /* @__PURE__ */ jsx(
6278
6229
  "input",
6279
6230
  {
@@ -6281,12 +6232,12 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6281
6232
  value: dashboardFrom,
6282
6233
  onChange: (event) => setDashboardFrom(event.target.value),
6283
6234
  placeholder: t("referencePlaceholder"),
6284
- 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"
6235
+ 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"
6285
6236
  }
6286
6237
  ),
6287
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-[10px] text-gray-500 dark:text-gray-400", children: t("referenceHelp") })
6238
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-[10px] text-slate-500 dark:text-slate-400", children: t("referenceHelp") })
6288
6239
  ] }) : /* @__PURE__ */ jsxs("div", { children: [
6289
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("inlineLabel") }),
6240
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("inlineLabel") }),
6290
6241
  /* @__PURE__ */ jsx(
6291
6242
  "textarea",
6292
6243
  {
@@ -6294,14 +6245,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6294
6245
  onChange: (event) => setInlineJson(event.target.value),
6295
6246
  placeholder: '{\\n "kpis": [],\\n "charts": [],\\n "tables": []\\n}',
6296
6247
  rows: 12,
6297
- 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"
6248
+ 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"
6298
6249
  }
6299
6250
  ),
6300
6251
  parseError ? /* @__PURE__ */ jsxs("p", { className: "mt-1 text-[10px] font-medium text-red-600 dark:text-red-400", children: [
6301
6252
  t("parseError"),
6302
6253
  ": ",
6303
6254
  parseError
6304
- ] }) : /* @__PURE__ */ jsx("p", { className: "mt-1 text-[10px] text-gray-500 dark:text-gray-400", children: t("inlineHelp") })
6255
+ ] }) : /* @__PURE__ */ jsx("p", { className: "mt-1 text-[10px] text-slate-500 dark:text-slate-400", children: t("inlineHelp") })
6305
6256
  ] }),
6306
6257
  /* @__PURE__ */ jsx(
6307
6258
  ConfigFormActions,
@@ -8582,5 +8533,5 @@ function Workspace({
8582
8533
  }
8583
8534
 
8584
8535
  export { AgentFlowNode, AgentToolFlowNode, AnswerFlowNode, AnthropicIcon, CATEGORY_COLORS, CATEGORY_PILL_COLORS, CodeFlowNode, CrewAIIcon, DocumentExtractorFlowNode, EXPERIMENTAL_NODE_TYPES, EndFlowNode, EntityFlowNode, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, HttpRequestFlowNode, ICON_MAP, IfElseFlowNode, IterationFlowNode, IterationStartFlowNode, KnowledgeBaseFlowNode, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, ListOperatorFlowNode, LogicNodeModal, MINIMAP_NODE_COLORS, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeCardBadge, NodeCardDeleteAction, NodeCardHeader, NodeCardMeta, NodeContextMenu, NodeIconBubble, NodeInteractiveCard, NodeRunningIndicator, NoteFlowNode, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, QuestionClassifierFlowNode, RuleFlowNode, SelectionContextMenu, StartFlowNode, StrandsIcon, TemplateTransformFlowNode, ToolFlowNode, VariableAggregatorFlowNode, VariableAssignerFlowNode, WorkflowBuilderProvider, WorkflowCanvas, WorkflowHandle, Workspace, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getNodeExecutionAccent, getNodeExecutionAccentRgb, isFrameworkCompatibleWithProviders, isModelCompatibleWithFramework, useModalStore, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };
8585
- //# sourceMappingURL=chunk-UXHJS2SH.mjs.map
8586
- //# sourceMappingURL=chunk-UXHJS2SH.mjs.map
8536
+ //# sourceMappingURL=chunk-TRNDFSM6.mjs.map
8537
+ //# sourceMappingURL=chunk-TRNDFSM6.mjs.map