@datatechsolutions/ui 3.12.1 → 3.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/astrlabe/graph-node.js +6 -6
  2. package/dist/astrlabe/graph-node.mjs +2 -2
  3. package/dist/astrlabe/index.js +114 -114
  4. package/dist/astrlabe/index.mjs +6 -6
  5. package/dist/astrlabe/workflow-canvas.js +6 -6
  6. package/dist/astrlabe/workflow-canvas.mjs +5 -5
  7. package/dist/{chunk-BPMYNE7S.mjs → chunk-3VCSMSJB.mjs} +6 -6
  8. package/dist/{chunk-BPMYNE7S.mjs.map → chunk-3VCSMSJB.mjs.map} +1 -1
  9. package/dist/{chunk-OM5NNUD2.mjs → chunk-4MNKVDTJ.mjs} +9 -8
  10. package/dist/chunk-4MNKVDTJ.mjs.map +1 -0
  11. package/dist/{chunk-PIIY2Z2O.mjs → chunk-4QCO4CBC.mjs} +4 -4
  12. package/dist/{chunk-PIIY2Z2O.mjs.map → chunk-4QCO4CBC.mjs.map} +1 -1
  13. package/dist/{chunk-4D23CQZM.mjs → chunk-4VEQJAXJ.mjs} +6 -6
  14. package/dist/{chunk-4D23CQZM.mjs.map → chunk-4VEQJAXJ.mjs.map} +1 -1
  15. package/dist/{chunk-FKRIQYRG.js → chunk-4Z5NZINA.js} +431 -481
  16. package/dist/chunk-4Z5NZINA.js.map +1 -0
  17. package/dist/{chunk-Z75CEP4V.js → chunk-54T5F65C.js} +29 -29
  18. package/dist/{chunk-Z75CEP4V.js.map → chunk-54T5F65C.js.map} +1 -1
  19. package/dist/{chunk-V3UZCOZI.js → chunk-7IAWXG43.js} +35 -35
  20. package/dist/{chunk-V3UZCOZI.js.map → chunk-7IAWXG43.js.map} +1 -1
  21. package/dist/{chunk-PLEWG2L7.js → chunk-AC54BNSK.js} +15 -15
  22. package/dist/{chunk-PLEWG2L7.js.map → chunk-AC54BNSK.js.map} +1 -1
  23. package/dist/{chunk-ID55ABBB.js → chunk-B3TA74C4.js} +100 -100
  24. package/dist/chunk-B3TA74C4.js.map +1 -0
  25. package/dist/{chunk-5OZTI7TR.js → chunk-CKY2QIRR.js} +6 -6
  26. package/dist/{chunk-5OZTI7TR.js.map → chunk-CKY2QIRR.js.map} +1 -1
  27. package/dist/{chunk-EZQ2D47U.js → chunk-CVEI4RQP.js} +4 -4
  28. package/dist/{chunk-EZQ2D47U.js.map → chunk-CVEI4RQP.js.map} +1 -1
  29. package/dist/{chunk-NK4H3JWN.mjs → chunk-DJHNSBIR.mjs} +63 -100
  30. package/dist/chunk-DJHNSBIR.mjs.map +1 -0
  31. package/dist/{chunk-P4RVGMZL.js → chunk-DTFU3ZTD.js} +5 -33
  32. package/dist/chunk-DTFU3ZTD.js.map +1 -0
  33. package/dist/{chunk-BHOT22QL.js → chunk-EBARYRSA.js} +2 -2
  34. package/dist/{chunk-BHOT22QL.js.map → chunk-EBARYRSA.js.map} +1 -1
  35. package/dist/{chunk-QGLGQXJE.js → chunk-FV42SSLP.js} +10 -10
  36. package/dist/chunk-FV42SSLP.js.map +1 -0
  37. package/dist/{chunk-RT264BD4.mjs → chunk-M4KRQXOT.mjs} +4 -4
  38. package/dist/{chunk-RT264BD4.mjs.map → chunk-M4KRQXOT.mjs.map} +1 -1
  39. package/dist/{chunk-WR55H7DH.mjs → chunk-O4RZCDP2.mjs} +2 -2
  40. package/dist/{chunk-WR55H7DH.mjs.map → chunk-O4RZCDP2.mjs.map} +1 -1
  41. package/dist/{chunk-VYU2FYDE.js → chunk-PM7A5I3X.js} +146 -183
  42. package/dist/chunk-PM7A5I3X.js.map +1 -0
  43. package/dist/{chunk-TDNBO3V7.js → chunk-Q7QPHZOV.js} +74 -74
  44. package/dist/{chunk-TDNBO3V7.js.map → chunk-Q7QPHZOV.js.map} +1 -1
  45. package/dist/{chunk-OW5LSEHU.mjs → chunk-QEACOJXX.mjs} +74 -74
  46. package/dist/chunk-QEACOJXX.mjs.map +1 -0
  47. package/dist/{chunk-N5GQIT7A.mjs → chunk-RMPXGEFL.mjs} +11 -10
  48. package/dist/chunk-RMPXGEFL.mjs.map +1 -0
  49. package/dist/{chunk-QSCWV47U.js → chunk-RPNMDGRA.js} +50 -50
  50. package/dist/chunk-RPNMDGRA.js.map +1 -0
  51. package/dist/{chunk-5TLKFOEL.mjs → chunk-RSCRIDMW.mjs} +275 -313
  52. package/dist/chunk-RSCRIDMW.mjs.map +1 -0
  53. package/dist/{chunk-XGAPZT4J.js → chunk-RUZPOHJW.js} +48 -47
  54. package/dist/chunk-RUZPOHJW.js.map +1 -0
  55. package/dist/{chunk-ULKZGM2T.js → chunk-RWZ2PLMQ.js} +177 -177
  56. package/dist/chunk-RWZ2PLMQ.js.map +1 -0
  57. package/dist/{chunk-UVFWKDRO.mjs → chunk-SCGICCQM.mjs} +15 -15
  58. package/dist/chunk-SCGICCQM.mjs.map +1 -0
  59. package/dist/{chunk-EDI46QA7.mjs → chunk-TRNDFSM6.mjs} +274 -324
  60. package/dist/chunk-TRNDFSM6.mjs.map +1 -0
  61. package/dist/{chunk-LRNVB7MO.js → chunk-ULSG4JLR.js} +6 -6
  62. package/dist/{chunk-LRNVB7MO.js.map → chunk-ULSG4JLR.js.map} +1 -1
  63. package/dist/{chunk-MFF37C24.js → chunk-UPWJRCAD.js} +445 -483
  64. package/dist/chunk-UPWJRCAD.js.map +1 -0
  65. package/dist/{chunk-RBH723MG.mjs → chunk-UUTTS3VV.mjs} +45 -45
  66. package/dist/chunk-UUTTS3VV.mjs.map +1 -0
  67. package/dist/{chunk-MYHBXIO2.js → chunk-VCL5LDS5.js} +42 -41
  68. package/dist/chunk-VCL5LDS5.js.map +1 -0
  69. package/dist/{chunk-PLTLRL2V.mjs → chunk-VPRAESA7.mjs} +3 -3
  70. package/dist/{chunk-PLTLRL2V.mjs.map → chunk-VPRAESA7.mjs.map} +1 -1
  71. package/dist/{chunk-HTODLUKG.js → chunk-VWZ53TE2.js} +12 -12
  72. package/dist/{chunk-HTODLUKG.js.map → chunk-VWZ53TE2.js.map} +1 -1
  73. package/dist/{chunk-3VYD7QL2.mjs → chunk-WX44DAQD.mjs} +9 -9
  74. package/dist/chunk-WX44DAQD.mjs.map +1 -0
  75. package/dist/{chunk-DJ33CSGJ.mjs → chunk-XYMHIZ3K.mjs} +5 -33
  76. package/dist/chunk-XYMHIZ3K.mjs.map +1 -0
  77. package/dist/{chunk-YXN2K77G.js → chunk-Y5VN4SPH.js} +26 -3
  78. package/dist/chunk-Y5VN4SPH.js.map +1 -0
  79. package/dist/{chunk-NQGLSM46.mjs → chunk-Y65X2NHF.mjs} +4 -4
  80. package/dist/{chunk-NQGLSM46.mjs.map → chunk-Y65X2NHF.mjs.map} +1 -1
  81. package/dist/{chunk-YYNGXKUE.mjs → chunk-YHD6SJIN.mjs} +15 -15
  82. package/dist/{chunk-YYNGXKUE.mjs.map → chunk-YHD6SJIN.mjs.map} +1 -1
  83. package/dist/{chunk-7VJ7CMMT.mjs → chunk-ZEFNBGYI.mjs} +26 -3
  84. package/dist/chunk-ZEFNBGYI.mjs.map +1 -0
  85. package/dist/{chunk-WLNY3GVM.mjs → chunk-ZPV7X4ZE.mjs} +7 -7
  86. package/dist/{chunk-WLNY3GVM.mjs.map → chunk-ZPV7X4ZE.mjs.map} +1 -1
  87. package/dist/index.js +709 -709
  88. package/dist/index.mjs +3 -3
  89. package/dist/lib/i18n-context.d.mts +12 -4
  90. package/dist/lib/i18n-context.d.ts +12 -4
  91. package/dist/lib/i18n-context.js +6 -6
  92. package/dist/lib/i18n-context.mjs +1 -1
  93. package/dist/platform/admin/index.js +12 -12
  94. package/dist/platform/admin/index.mjs +6 -6
  95. package/dist/platform/agents-workspace.js +9 -9
  96. package/dist/platform/agents-workspace.mjs +8 -8
  97. package/dist/platform/app-shell.js +5 -5
  98. package/dist/platform/app-shell.mjs +4 -4
  99. package/dist/platform/auth/index.js +29 -29
  100. package/dist/platform/auth/index.mjs +6 -6
  101. package/dist/platform/billing/index.js +7 -7
  102. package/dist/platform/billing/index.mjs +5 -5
  103. package/dist/platform/impersonation/index.js +5 -5
  104. package/dist/platform/impersonation/index.mjs +4 -4
  105. package/dist/platform/index.d.mts +1 -1
  106. package/dist/platform/index.d.ts +1 -1
  107. package/dist/platform/index.js +112 -112
  108. package/dist/platform/index.js.map +1 -1
  109. package/dist/platform/index.mjs +30 -30
  110. package/dist/platform/index.mjs.map +1 -1
  111. package/dist/platform/pages/index.d.mts +12 -2
  112. package/dist/platform/pages/index.d.ts +12 -2
  113. package/dist/platform/pages/index.js +451 -450
  114. package/dist/platform/pages/index.js.map +1 -1
  115. package/dist/platform/pages/index.mjs +51 -50
  116. package/dist/platform/pages/index.mjs.map +1 -1
  117. package/dist/platform/settings/index.js +9 -9
  118. package/dist/platform/settings/index.mjs +8 -8
  119. package/dist/platform/workflow-canvas-shell.js +7 -7
  120. package/dist/platform/workflow-canvas-shell.mjs +6 -6
  121. package/package.json +2 -1
  122. package/dist/chunk-3VYD7QL2.mjs.map +0 -1
  123. package/dist/chunk-5TLKFOEL.mjs.map +0 -1
  124. package/dist/chunk-7VJ7CMMT.mjs.map +0 -1
  125. package/dist/chunk-DJ33CSGJ.mjs.map +0 -1
  126. package/dist/chunk-EDI46QA7.mjs.map +0 -1
  127. package/dist/chunk-FKRIQYRG.js.map +0 -1
  128. package/dist/chunk-ID55ABBB.js.map +0 -1
  129. package/dist/chunk-MFF37C24.js.map +0 -1
  130. package/dist/chunk-MYHBXIO2.js.map +0 -1
  131. package/dist/chunk-N5GQIT7A.mjs.map +0 -1
  132. package/dist/chunk-NK4H3JWN.mjs.map +0 -1
  133. package/dist/chunk-OM5NNUD2.mjs.map +0 -1
  134. package/dist/chunk-OW5LSEHU.mjs.map +0 -1
  135. package/dist/chunk-P4RVGMZL.js.map +0 -1
  136. package/dist/chunk-QGLGQXJE.js.map +0 -1
  137. package/dist/chunk-QSCWV47U.js.map +0 -1
  138. package/dist/chunk-RBH723MG.mjs.map +0 -1
  139. package/dist/chunk-ULKZGM2T.js.map +0 -1
  140. package/dist/chunk-UVFWKDRO.mjs.map +0 -1
  141. package/dist/chunk-VYU2FYDE.js.map +0 -1
  142. package/dist/chunk-XGAPZT4J.js.map +0 -1
  143. package/dist/chunk-YXN2K77G.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { ToggleSwitch, StatusBadge, GlassModal, ContextMenu, FormInput, FormTextarea, FormSelect } from './chunk-OW5LSEHU.mjs';
3
- import { useTranslations, I18nProvider, createI18nFromMessages } from './chunk-7VJ7CMMT.mjs';
4
- import { GraphNodeHeader, GraphNodeMeta, GraphNodeIconBubble, GraphNodeBadge } from './chunk-PLTLRL2V.mjs';
5
- import { Badge, Button, IconButton } from './chunk-WR55H7DH.mjs';
2
+ import { ToggleSwitch, StatusBadge, GlassModal, ContextMenu, FormInput, FormTextarea, FormSelect } from './chunk-QEACOJXX.mjs';
3
+ import { useTranslations, I18nProvider, createI18nFromMessages } from './chunk-ZEFNBGYI.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")
@@ -3665,7 +3667,6 @@ var GroupFlowNode = memo(function GroupFlowNode2({ id, data, selected }) {
3665
3667
  "div",
3666
3668
  {
3667
3669
  className: `group relative h-full w-full overflow-hidden rounded-xl border liquid-surface ${getNodeStateClass(selected, void 0, colorScheme.border)} transition-all`,
3668
- style: { minWidth: config.width, minHeight: config.height },
3669
3670
  children: [
3670
3671
  /* @__PURE__ */ jsxs(
3671
3672
  "div",
@@ -3782,7 +3783,7 @@ var SpeechTranscriberFlowNode = memo(function SpeechTranscriberFlowNode2({ id, d
3782
3783
  /* @__PURE__ */ jsx(NodeCardBadge, { tone: "speech_transcriber", children: "Whisper" }),
3783
3784
  /* @__PURE__ */ jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: model }),
3784
3785
  /* @__PURE__ */ jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: language }),
3785
- 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 })
3786
3787
  ] }),
3787
3788
  /* @__PURE__ */ jsx(NodeCardDeleteAction, { nodeId: id, onDelete })
3788
3789
  ] })
@@ -3839,7 +3840,7 @@ function ConfigFormActions({
3839
3840
  onSave,
3840
3841
  saveDisabled = false
3841
3842
  }) {
3842
- 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: [
3843
3844
  /* @__PURE__ */ jsx(Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3844
3845
  /* @__PURE__ */ jsx(Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3845
3846
  ] });
@@ -3918,7 +3919,7 @@ function VariableListEditor({
3918
3919
  }
3919
3920
  }, [handleAdd]);
3920
3921
  return /* @__PURE__ */ jsxs("div", { children: [
3921
- 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 }),
3922
3923
  variables.length > 0 && /* @__PURE__ */ jsx("div", { className: "mb-2 space-y-1", children: variables.map((variable, index) => /* @__PURE__ */ jsxs(
3923
3924
  "div",
3924
3925
  {
@@ -3931,17 +3932,19 @@ function VariableListEditor({
3931
3932
  type: "text",
3932
3933
  value: variable,
3933
3934
  onChange: (event) => handleEdit(index, event.target.value),
3934
- 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`
3935
3936
  }
3936
- ) : /* @__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 }),
3937
3938
  /* @__PURE__ */ jsx(
3938
- "button",
3939
+ IconButton,
3939
3940
  {
3940
- type: "button",
3941
+ label: `Remove ${variable}`,
3942
+ variant: "ghost",
3943
+ size: "sm",
3944
+ destructive: true,
3941
3945
  onClick: () => handleRemove(index),
3942
- 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",
3943
- "aria-label": `Remove ${variable}`,
3944
- 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"
3945
3948
  }
3946
3949
  )
3947
3950
  ]
@@ -3958,7 +3961,7 @@ function VariableListEditor({
3958
3961
  onChange: (event) => setNewVariable(event.target.value),
3959
3962
  onKeyDown: handleKeyDown,
3960
3963
  placeholder,
3961
- 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"
3962
3965
  }
3963
3966
  ),
3964
3967
  /* @__PURE__ */ jsxs(
@@ -3975,7 +3978,7 @@ function VariableListEditor({
3975
3978
  }
3976
3979
  )
3977
3980
  ] }),
3978
- 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" })
3979
3982
  ] });
3980
3983
  }
3981
3984
  function StartNodeConfigForm({ config, onSave, onCancel }) {
@@ -3986,7 +3989,7 @@ function StartNodeConfigForm({ config, onSave, onCancel }) {
3986
3989
  };
3987
3990
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
3988
3991
  /* @__PURE__ */ jsxs("div", { children: [
3989
- /* @__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") }),
3990
3993
  /* @__PURE__ */ jsx(
3991
3994
  VariableListEditor,
3992
3995
  {
@@ -4018,7 +4021,7 @@ function EndNodeConfigForm({ config, onSave, onCancel }) {
4018
4021
  };
4019
4022
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4020
4023
  /* @__PURE__ */ jsxs("div", { children: [
4021
- /* @__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") }),
4022
4025
  /* @__PURE__ */ jsx(
4023
4026
  VariableListEditor,
4024
4027
  {
@@ -4086,7 +4089,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4086
4089
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4087
4090
  /* @__PURE__ */ jsxs("div", { children: [
4088
4091
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
4089
- /* @__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") }),
4090
4093
  /* @__PURE__ */ jsx(
4091
4094
  Button,
4092
4095
  {
@@ -4096,7 +4099,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4096
4099
  }
4097
4100
  )
4098
4101
  ] }),
4099
- /* @__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: [
4100
4103
  /* @__PURE__ */ jsxs("div", { className: "grid flex-1 grid-cols-3 gap-2", children: [
4101
4104
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
4102
4105
  FormInput,
@@ -4145,7 +4148,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4145
4148
  ] }, index)) })
4146
4149
  ] }),
4147
4150
  /* @__PURE__ */ jsxs("div", { children: [
4148
- /* @__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") }),
4149
4152
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
4150
4153
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
4151
4154
  /* @__PURE__ */ jsx(
@@ -4159,7 +4162,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4159
4162
  className: "text-indigo-600 focus:ring-indigo-400"
4160
4163
  }
4161
4164
  ),
4162
- /* @__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" })
4163
4166
  ] }),
4164
4167
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
4165
4168
  /* @__PURE__ */ jsx(
@@ -4173,7 +4176,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4173
4176
  className: "text-indigo-600 focus:ring-indigo-400"
4174
4177
  }
4175
4178
  ),
4176
- /* @__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" })
4177
4180
  ] })
4178
4181
  ] })
4179
4182
  ] }),
@@ -4263,17 +4266,17 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4263
4266
  }
4264
4267
  onSave(next);
4265
4268
  };
4266
- const labelClass = "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300";
4267
- 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";
4268
4271
  const textareaClass = `${inputClass} font-mono text-xs`;
4269
4272
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4270
- /* @__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: [
4271
4274
  /* @__PURE__ */ jsx(
4272
4275
  "button",
4273
4276
  {
4274
4277
  type: "button",
4275
4278
  onClick: () => setMode("operation"),
4276
- 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"}`,
4277
4280
  children: t("modeOperation", { _: "Operation" })
4278
4281
  }
4279
4282
  ),
@@ -4282,7 +4285,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4282
4285
  {
4283
4286
  type: "button",
4284
4287
  onClick: () => setMode("scripted"),
4285
- 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"}`,
4286
4289
  children: t("modeScripted", { _: "Scripted" })
4287
4290
  }
4288
4291
  )
@@ -4326,7 +4329,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4326
4329
  children: OPERATION_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: o.label }, o.value))
4327
4330
  }
4328
4331
  ),
4329
- /* @__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 })
4330
4333
  ] }),
4331
4334
  operation !== "return" && /* @__PURE__ */ jsxs("div", { children: [
4332
4335
  /* @__PURE__ */ jsx("label", { className: labelClass, children: "from" }),
@@ -4340,7 +4343,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4340
4343
  className: inputClass
4341
4344
  }
4342
4345
  ),
4343
- /* @__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." })
4344
4347
  ] }),
4345
4348
  (operation === "return" || operation === "merge") && /* @__PURE__ */ jsxs("div", { children: [
4346
4349
  /* @__PURE__ */ jsxs("label", { className: labelClass, children: [
@@ -4370,7 +4373,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4370
4373
  className: inputClass
4371
4374
  }
4372
4375
  ),
4373
- /* @__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." })
4374
4377
  ] }),
4375
4378
  operation === "regex_extract" && /* @__PURE__ */ jsxs(Fragment, { children: [
4376
4379
  /* @__PURE__ */ jsxs("div", { children: [
@@ -4399,7 +4402,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4399
4402
  className: inputClass
4400
4403
  }
4401
4404
  ),
4402
- /* @__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)." })
4403
4406
  ] }),
4404
4407
  /* @__PURE__ */ jsxs("div", { children: [
4405
4408
  /* @__PURE__ */ jsx("label", { className: labelClass, children: "group" }),
@@ -4413,18 +4416,18 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4413
4416
  className: inputClass
4414
4417
  }
4415
4418
  ),
4416
- /* @__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)." })
4417
4420
  ] })
4418
4421
  ] })
4419
4422
  ] }),
4420
- 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: [
4421
4424
  /* @__PURE__ */ jsx(
4422
4425
  "input",
4423
4426
  {
4424
4427
  type: "checkbox",
4425
4428
  checked: keepChannel,
4426
4429
  onChange: (event) => setKeepChannel(event.target.checked),
4427
- 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"
4428
4431
  }
4429
4432
  ),
4430
4433
  "Keep channel/feed title (default: drop the first `<title>`)."
@@ -4441,7 +4444,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
4441
4444
  className: inputClass
4442
4445
  }
4443
4446
  ),
4444
- /* @__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: [
4445
4448
  "Defaults to `",
4446
4449
  operation === "regex_extract" ? "matches" : "titles",
4447
4450
  "` if left blank."
@@ -4524,7 +4527,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4524
4527
  ),
4525
4528
  /* @__PURE__ */ jsxs("div", { children: [
4526
4529
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4527
- /* @__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") }),
4528
4531
  /* @__PURE__ */ jsx(
4529
4532
  Button,
4530
4533
  {
@@ -4927,7 +4930,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4927
4930
  };
4928
4931
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
4929
4932
  /* @__PURE__ */ jsxs("div", { children: [
4930
- /* @__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") }),
4931
4934
  /* @__PURE__ */ jsx(
4932
4935
  "input",
4933
4936
  {
@@ -4935,12 +4938,12 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4935
4938
  value: modelId,
4936
4939
  onChange: (event) => setModelId(event.target.value),
4937
4940
  placeholder: t("modelIdPlaceholder"),
4938
- 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"
4939
4942
  }
4940
4943
  )
4941
4944
  ] }),
4942
4945
  /* @__PURE__ */ jsxs("div", { children: [
4943
- /* @__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") }),
4944
4947
  /* @__PURE__ */ jsx(
4945
4948
  "textarea",
4946
4949
  {
@@ -4948,34 +4951,27 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4948
4951
  onChange: (event) => setInstructions(event.target.value),
4949
4952
  placeholder: t("instructionsPlaceholder"),
4950
4953
  rows: 4,
4951
- 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"
4952
4955
  }
4953
4956
  )
4954
4957
  ] }),
4955
4958
  /* @__PURE__ */ jsxs("div", { children: [
4956
4959
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
4957
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("categoriesLabel") }),
4958
- /* @__PURE__ */ jsx(
4959
- "button",
4960
- {
4961
- type: "button",
4962
- onClick: handleAddCategory,
4963
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
4964
- children: t("addCategory")
4965
- }
4966
- )
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") })
4967
4962
  ] }),
4968
- /* @__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: [
4969
4964
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4970
- /* @__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 }) }),
4971
4966
  categories.length > 2 && /* @__PURE__ */ jsx(
4972
- "button",
4967
+ IconButton,
4973
4968
  {
4974
- type: "button",
4969
+ label: t("removeCategory"),
4970
+ variant: "ghost",
4971
+ size: "sm",
4972
+ destructive: true,
4975
4973
  onClick: () => handleRemoveCategory(index),
4976
- className: "text-sm text-red-500 hover:text-red-600",
4977
- "aria-label": t("removeCategory"),
4978
- children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
4974
+ icon: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
4979
4975
  }
4980
4976
  )
4981
4977
  ] }),
@@ -4987,7 +4983,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4987
4983
  value: category.name,
4988
4984
  onChange: (event) => handleCategoryChange(index, "name", event.target.value),
4989
4985
  placeholder: t("categoryNamePlaceholder"),
4990
- 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"
4991
4987
  }
4992
4988
  ),
4993
4989
  /* @__PURE__ */ jsx(
@@ -4997,32 +4993,21 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
4997
4993
  value: category.description,
4998
4994
  onChange: (event) => handleCategoryChange(index, "description", event.target.value),
4999
4995
  placeholder: t("categoryDescriptionPlaceholder"),
5000
- 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"
5001
4997
  }
5002
4998
  )
5003
4999
  ] })
5004
5000
  ] }, category.id)) })
5005
5001
  ] }),
5006
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5007
- /* @__PURE__ */ jsx(
5008
- "button",
5009
- {
5010
- type: "button",
5011
- onClick: onCancel,
5012
- 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",
5013
- children: t("cancel")
5014
- }
5015
- ),
5016
- /* @__PURE__ */ jsx(
5017
- "button",
5018
- {
5019
- type: "button",
5020
- onClick: handleSave,
5021
- 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",
5022
- children: t("save")
5023
- }
5024
- )
5025
- ] })
5002
+ /* @__PURE__ */ jsx(
5003
+ ConfigFormActions,
5004
+ {
5005
+ cancelLabel: t("cancel"),
5006
+ saveLabel: t("save"),
5007
+ onCancel,
5008
+ onSave: handleSave
5009
+ }
5010
+ )
5026
5011
  ] });
5027
5012
  }
5028
5013
  var PARAMETER_TYPES = ["string", "number", "boolean", "array"];
@@ -5057,7 +5042,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5057
5042
  };
5058
5043
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5059
5044
  /* @__PURE__ */ jsxs("div", { children: [
5060
- /* @__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") }),
5061
5046
  /* @__PURE__ */ jsx(
5062
5047
  "input",
5063
5048
  {
@@ -5065,37 +5050,30 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5065
5050
  value: modelId,
5066
5051
  onChange: (event) => setModelId(event.target.value),
5067
5052
  placeholder: t("modelIdPlaceholder"),
5068
- 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"
5069
5054
  }
5070
5055
  )
5071
5056
  ] }),
5072
5057
  /* @__PURE__ */ jsxs("div", { children: [
5073
5058
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
5074
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("parametersLabel") }),
5075
- /* @__PURE__ */ jsx(
5076
- "button",
5077
- {
5078
- type: "button",
5079
- onClick: handleAddParameter,
5080
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
5081
- children: t("addParameter")
5082
- }
5083
- )
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") })
5084
5061
  ] }),
5085
- /* @__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: [
5086
5063
  /* @__PURE__ */ jsx("div", { className: "mb-2 flex items-center justify-end", children: /* @__PURE__ */ jsx(
5087
- "button",
5064
+ IconButton,
5088
5065
  {
5089
- type: "button",
5066
+ label: t("removeParameter"),
5067
+ variant: "ghost",
5068
+ size: "sm",
5069
+ destructive: true,
5090
5070
  onClick: () => handleRemoveParameter(index),
5091
- className: "text-sm text-red-500 hover:text-red-600",
5092
- "aria-label": t("removeParameter"),
5093
- children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5071
+ icon: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5094
5072
  }
5095
5073
  ) }),
5096
5074
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
5097
5075
  /* @__PURE__ */ jsxs("div", { children: [
5098
- /* @__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") }),
5099
5077
  /* @__PURE__ */ jsx(
5100
5078
  "input",
5101
5079
  {
@@ -5103,25 +5081,25 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5103
5081
  value: parameter.name,
5104
5082
  onChange: (event) => handleParameterChange(index, "name", event.target.value),
5105
5083
  placeholder: t("parameterNamePlaceholder"),
5106
- 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"
5107
5085
  }
5108
5086
  )
5109
5087
  ] }),
5110
5088
  /* @__PURE__ */ jsxs("div", { children: [
5111
- /* @__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") }),
5112
5090
  /* @__PURE__ */ jsx(
5113
5091
  "select",
5114
5092
  {
5115
5093
  value: parameter.type,
5116
5094
  onChange: (event) => handleParameterChange(index, "type", event.target.value),
5117
- 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",
5118
5096
  children: PARAMETER_TYPES.map((parameterType) => /* @__PURE__ */ jsx("option", { value: parameterType, children: parameterType }, parameterType))
5119
5097
  }
5120
5098
  )
5121
5099
  ] })
5122
5100
  ] }),
5123
5101
  /* @__PURE__ */ jsxs("div", { className: "mt-2", children: [
5124
- /* @__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") }),
5125
5103
  /* @__PURE__ */ jsx(
5126
5104
  "input",
5127
5105
  {
@@ -5129,7 +5107,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5129
5107
  value: parameter.description,
5130
5108
  onChange: (event) => handleParameterChange(index, "description", event.target.value),
5131
5109
  placeholder: t("parameterDescriptionPlaceholder"),
5132
- 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"
5133
5111
  }
5134
5112
  )
5135
5113
  ] }),
@@ -5140,33 +5118,22 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
5140
5118
  type: "checkbox",
5141
5119
  checked: parameter.required,
5142
5120
  onChange: (event) => handleParameterChange(index, "required", event.target.checked),
5143
- 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"
5144
5122
  }
5145
5123
  ),
5146
- /* @__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") })
5147
5125
  ] }) })
5148
5126
  ] }, index)) })
5149
5127
  ] }),
5150
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5151
- /* @__PURE__ */ jsx(
5152
- "button",
5153
- {
5154
- type: "button",
5155
- onClick: onCancel,
5156
- 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",
5157
- children: t("cancel")
5158
- }
5159
- ),
5160
- /* @__PURE__ */ jsx(
5161
- "button",
5162
- {
5163
- type: "button",
5164
- onClick: handleSave,
5165
- 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",
5166
- children: t("save")
5167
- }
5168
- )
5169
- ] })
5128
+ /* @__PURE__ */ jsx(
5129
+ ConfigFormActions,
5130
+ {
5131
+ cancelLabel: t("cancel"),
5132
+ saveLabel: t("save"),
5133
+ onCancel,
5134
+ onSave: handleSave
5135
+ }
5136
+ )
5170
5137
  ] });
5171
5138
  }
5172
5139
  function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
@@ -5197,21 +5164,13 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5197
5164
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5198
5165
  /* @__PURE__ */ jsxs("div", { children: [
5199
5166
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
5200
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("assignmentsLabel") }),
5201
- /* @__PURE__ */ jsx(
5202
- "button",
5203
- {
5204
- type: "button",
5205
- onClick: handleAddAssignment,
5206
- className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
5207
- children: t("addAssignment")
5208
- }
5209
- )
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") })
5210
5169
  ] }),
5211
- /* @__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: [
5212
5171
  /* @__PURE__ */ jsxs("div", { className: "grid flex-1 grid-cols-2 gap-2", children: [
5213
5172
  /* @__PURE__ */ jsxs("div", { children: [
5214
- /* @__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") }),
5215
5174
  /* @__PURE__ */ jsx(
5216
5175
  "input",
5217
5176
  {
@@ -5219,12 +5178,12 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5219
5178
  value: assignment.target,
5220
5179
  onChange: (event) => handleAssignmentChange(index, "target", event.target.value),
5221
5180
  placeholder: t("targetPlaceholder"),
5222
- 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"
5223
5182
  }
5224
5183
  )
5225
5184
  ] }),
5226
5185
  /* @__PURE__ */ jsxs("div", { children: [
5227
- /* @__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") }),
5228
5187
  /* @__PURE__ */ jsx(
5229
5188
  "input",
5230
5189
  {
@@ -5232,43 +5191,34 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
5232
5191
  value: assignment.source,
5233
5192
  onChange: (event) => handleAssignmentChange(index, "source", event.target.value),
5234
5193
  placeholder: t("sourcePlaceholder"),
5235
- 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"
5236
5195
  }
5237
5196
  )
5238
5197
  ] })
5239
5198
  ] }),
5240
5199
  /* @__PURE__ */ jsx(
5241
- "button",
5200
+ IconButton,
5242
5201
  {
5243
- type: "button",
5202
+ label: t("removeAssignment"),
5203
+ variant: "ghost",
5204
+ size: "sm",
5205
+ destructive: true,
5206
+ className: "mt-5",
5244
5207
  onClick: () => handleRemoveAssignment(index),
5245
- className: "mt-5 text-sm text-red-500 hover:text-red-600",
5246
- "aria-label": t("removeAssignment"),
5247
- children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5208
+ icon: /* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4" })
5248
5209
  }
5249
5210
  )
5250
5211
  ] }, index)) })
5251
5212
  ] }),
5252
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-4 border-t border-gray-200 dark:border-gray-700", children: [
5253
- /* @__PURE__ */ jsx(
5254
- "button",
5255
- {
5256
- type: "button",
5257
- onClick: onCancel,
5258
- 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",
5259
- children: t("cancel")
5260
- }
5261
- ),
5262
- /* @__PURE__ */ jsx(
5263
- "button",
5264
- {
5265
- type: "button",
5266
- onClick: handleSave,
5267
- 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",
5268
- children: t("save")
5269
- }
5270
- )
5271
- ] })
5213
+ /* @__PURE__ */ jsx(
5214
+ ConfigFormActions,
5215
+ {
5216
+ cancelLabel: t("cancel"),
5217
+ saveLabel: t("save"),
5218
+ onCancel,
5219
+ onSave: handleSave
5220
+ }
5221
+ )
5272
5222
  ] });
5273
5223
  }
5274
5224
  var AGGREGATION_MODES = ["array", "object", "concatenate"];
@@ -5402,19 +5352,19 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5402
5352
  };
5403
5353
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5404
5354
  /* @__PURE__ */ jsxs("div", { children: [
5405
- /* @__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") }),
5406
5356
  /* @__PURE__ */ jsx(
5407
5357
  "select",
5408
5358
  {
5409
5359
  value: operation,
5410
5360
  onChange: (event) => setOperation(event.target.value),
5411
- 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",
5412
5362
  children: OPERATION_OPTIONS2.map((operationOption) => /* @__PURE__ */ jsx("option", { value: operationOption, children: t(`operation_${operationOption}`) }, operationOption))
5413
5363
  }
5414
5364
  )
5415
5365
  ] }),
5416
5366
  /* @__PURE__ */ jsxs("div", { children: [
5417
- /* @__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") }),
5418
5368
  /* @__PURE__ */ jsx(
5419
5369
  "input",
5420
5370
  {
@@ -5422,12 +5372,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5422
5372
  value: inputVariable,
5423
5373
  onChange: (event) => setInputVariable(event.target.value),
5424
5374
  placeholder: t("inputVariablePlaceholder"),
5425
- 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"
5426
5376
  }
5427
5377
  )
5428
5378
  ] }),
5429
5379
  /* @__PURE__ */ jsxs("div", { children: [
5430
- /* @__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") }),
5431
5381
  /* @__PURE__ */ jsx(
5432
5382
  "input",
5433
5383
  {
@@ -5435,12 +5385,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5435
5385
  value: outputVariable,
5436
5386
  onChange: (event) => setOutputVariable(event.target.value),
5437
5387
  placeholder: t("outputVariablePlaceholder"),
5438
- 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"
5439
5389
  }
5440
5390
  )
5441
5391
  ] }),
5442
5392
  showConditionField && /* @__PURE__ */ jsxs("div", { children: [
5443
- /* @__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") }),
5444
5394
  /* @__PURE__ */ jsx(
5445
5395
  "input",
5446
5396
  {
@@ -5448,13 +5398,13 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5448
5398
  value: condition,
5449
5399
  onChange: (event) => setCondition(event.target.value),
5450
5400
  placeholder: t("conditionPlaceholder"),
5451
- 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"
5452
5402
  }
5453
5403
  )
5454
5404
  ] }),
5455
5405
  showSortFields && /* @__PURE__ */ jsxs(Fragment, { children: [
5456
5406
  /* @__PURE__ */ jsxs("div", { children: [
5457
- /* @__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") }),
5458
5408
  /* @__PURE__ */ jsx(
5459
5409
  "input",
5460
5410
  {
@@ -5462,25 +5412,25 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5462
5412
  value: sortKey,
5463
5413
  onChange: (event) => setSortKey(event.target.value),
5464
5414
  placeholder: t("sortKeyPlaceholder"),
5465
- 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"
5466
5416
  }
5467
5417
  )
5468
5418
  ] }),
5469
5419
  /* @__PURE__ */ jsxs("div", { children: [
5470
- /* @__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") }),
5471
5421
  /* @__PURE__ */ jsx(
5472
5422
  "select",
5473
5423
  {
5474
5424
  value: sortOrder,
5475
5425
  onChange: (event) => setSortOrder(event.target.value),
5476
- 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",
5477
5427
  children: SORT_ORDER_OPTIONS.map((order) => /* @__PURE__ */ jsx("option", { value: order, children: t(`sortOrder_${order}`) }, order))
5478
5428
  }
5479
5429
  )
5480
5430
  ] })
5481
5431
  ] }),
5482
5432
  showLimitField && /* @__PURE__ */ jsxs("div", { children: [
5483
- /* @__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") }),
5484
5434
  /* @__PURE__ */ jsx(
5485
5435
  "input",
5486
5436
  {
@@ -5488,17 +5438,17 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
5488
5438
  value: limitCount,
5489
5439
  onChange: (event) => setLimitCount(Number(event.target.value)),
5490
5440
  min: 1,
5491
- 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"
5492
5442
  }
5493
5443
  )
5494
5444
  ] }),
5495
- /* @__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: [
5496
5446
  /* @__PURE__ */ jsx(
5497
5447
  "button",
5498
5448
  {
5499
5449
  type: "button",
5500
5450
  onClick: onCancel,
5501
- 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]",
5502
5452
  children: t("cancel")
5503
5453
  }
5504
5454
  ),
@@ -5639,7 +5589,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5639
5589
  const filterEntries = Object.entries(filterVariables);
5640
5590
  return /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
5641
5591
  /* @__PURE__ */ jsxs("div", { children: [
5642
- /* @__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") }),
5643
5593
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
5644
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() }) }),
5645
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") })
@@ -5647,8 +5597,8 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5647
5597
  !entityDefinition && /* @__PURE__ */ jsx("p", { className: "mt-2 text-xs text-amber-600 dark:text-amber-400", children: t("entityNotConfigured") })
5648
5598
  ] }),
5649
5599
  /* @__PURE__ */ jsxs("div", { children: [
5650
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("outputVariableLabel") }),
5651
- /* @__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") }),
5652
5602
  /* @__PURE__ */ jsx(
5653
5603
  "input",
5654
5604
  {
@@ -5656,13 +5606,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5656
5606
  value: outputVariable,
5657
5607
  onChange: (event) => setOutputVariable(event.target.value),
5658
5608
  placeholder: `${(entityDefinition?.label ?? "entity").replace(/\s+/g, "")}Data`,
5659
- 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"
5660
5610
  }
5661
5611
  )
5662
5612
  ] }),
5663
5613
  /* @__PURE__ */ jsxs("div", { children: [
5664
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("limitLabel") }),
5665
- /* @__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") }),
5666
5616
  /* @__PURE__ */ jsx(
5667
5617
  "input",
5668
5618
  {
@@ -5671,13 +5621,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5671
5621
  onChange: (event) => setLimit(Math.max(1, Number.parseInt(event.target.value, 10) || 1)),
5672
5622
  min: 1,
5673
5623
  max: 1e3,
5674
- 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"
5675
5625
  }
5676
5626
  )
5677
5627
  ] }),
5678
5628
  /* @__PURE__ */ jsxs("div", { children: [
5679
5629
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
5680
- /* @__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") }),
5681
5631
  /* @__PURE__ */ jsx(
5682
5632
  "button",
5683
5633
  {
@@ -5689,15 +5639,15 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5689
5639
  )
5690
5640
  ] }),
5691
5641
  selectedFields.length === 0 && /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs text-amber-600 dark:text-amber-400", children: t("noFieldsSelected") }),
5692
- /* @__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: [
5693
- 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") }),
5694
5644
  availableFields.map((field) => {
5695
5645
  const isSelected = selectedFields.includes(field.name);
5696
5646
  const typeBadgeColor = FIELD_TYPE_BADGE_COLORS[field.type] ?? FIELD_TYPE_BADGE_COLORS.string;
5697
5647
  return /* @__PURE__ */ jsxs(
5698
5648
  "label",
5699
5649
  {
5700
- 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]"}`,
5701
5651
  children: [
5702
5652
  /* @__PURE__ */ jsx(
5703
5653
  "input",
@@ -5705,10 +5655,10 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5705
5655
  type: "checkbox",
5706
5656
  checked: isSelected,
5707
5657
  onChange: () => handleToggleField(field.name),
5708
- 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"
5709
5659
  }
5710
5660
  ),
5711
- /* @__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 }),
5712
5662
  /* @__PURE__ */ jsx("span", { className: `rounded-full px-1.5 py-0.5 text-[9px] font-medium ${typeBadgeColor}`, children: field.type })
5713
5663
  ]
5714
5664
  },
@@ -5719,7 +5669,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5719
5669
  ] }),
5720
5670
  /* @__PURE__ */ jsxs("div", { children: [
5721
5671
  /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
5722
- /* @__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") }),
5723
5673
  /* @__PURE__ */ jsxs(
5724
5674
  "button",
5725
5675
  {
@@ -5733,7 +5683,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5733
5683
  }
5734
5684
  )
5735
5685
  ] }),
5736
- /* @__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") }),
5737
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: [
5738
5688
  /* @__PURE__ */ jsx(
5739
5689
  "input",
@@ -5742,16 +5692,16 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5742
5692
  value: variableName,
5743
5693
  onChange: (event) => handleUpdateFilterVariable(variableName, event.target.value),
5744
5694
  placeholder: t("variableName"),
5745
- 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"
5746
5696
  }
5747
5697
  ),
5748
- /* @__PURE__ */ jsx("span", { className: "text-xs text-gray-400", children: "\u2192" }),
5698
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-slate-400", children: "\u2192" }),
5749
5699
  /* @__PURE__ */ jsxs(
5750
5700
  "select",
5751
5701
  {
5752
5702
  value: fieldName,
5753
5703
  onChange: (event) => handleUpdateFilterField(variableName, event.target.value),
5754
- 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",
5755
5705
  children: [
5756
5706
  /* @__PURE__ */ jsx("option", { value: "", children: t("fieldName") }),
5757
5707
  availableFields.map((field) => /* @__PURE__ */ jsx("option", { value: field.name, children: field.name }, field.name))
@@ -5769,13 +5719,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
5769
5719
  )
5770
5720
  ] }, index)) })
5771
5721
  ] }),
5772
- /* @__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: [
5773
5723
  /* @__PURE__ */ jsx(
5774
5724
  "button",
5775
5725
  {
5776
5726
  type: "button",
5777
5727
  onClick: onCancel,
5778
- 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]",
5779
5729
  children: t("cancel")
5780
5730
  }
5781
5731
  ),
@@ -5836,7 +5786,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5836
5786
  }
5837
5787
  ),
5838
5788
  /* @__PURE__ */ jsxs("div", { children: [
5839
- /* @__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") }),
5840
5790
  /* @__PURE__ */ jsx("div", { className: "flex items-center gap-3", children: GROUP_COLOR_OPTIONS.map((option) => /* @__PURE__ */ jsx(
5841
5791
  "button",
5842
5792
  {
@@ -5871,13 +5821,13 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5871
5821
  };
5872
5822
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5873
5823
  /* @__PURE__ */ jsxs("div", { children: [
5874
- /* @__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" }) }),
5875
5825
  availableRules && availableRules.length > 0 ? /* @__PURE__ */ jsxs(
5876
5826
  "select",
5877
5827
  {
5878
5828
  value: ruleId,
5879
5829
  onChange: (event) => setRuleId(event.target.value),
5880
- 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",
5881
5831
  children: [
5882
5832
  /* @__PURE__ */ jsx("option", { value: "", children: t("rulePickPrompt", { _: "Choose a rule\u2026" }) }),
5883
5833
  availableRules.map((rule) => /* @__PURE__ */ jsx("option", { value: rule.ruleId, children: rule.name ? `${rule.name} (${rule.ruleId})` : rule.ruleId }, rule.ruleId))
@@ -5892,7 +5842,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5892
5842
  placeholder: "e.g. peak_hours"
5893
5843
  }
5894
5844
  ),
5895
- /* @__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: [
5896
5846
  "References an ",
5897
5847
  /* @__PURE__ */ jsx("code", { children: "astrlabe.agent_rules.rule_id" }),
5898
5848
  " row in this organization."
@@ -5909,14 +5859,14 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
5909
5859
  min: 0
5910
5860
  }
5911
5861
  ),
5912
- /* @__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: [
5913
5863
  /* @__PURE__ */ jsx(
5914
5864
  "input",
5915
5865
  {
5916
5866
  type: "checkbox",
5917
5867
  checked: enabled,
5918
5868
  onChange: (event) => setEnabled(event.target.checked),
5919
- 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"
5920
5870
  }
5921
5871
  ),
5922
5872
  t("enabledLabel", { _: "Enabled" })
@@ -6252,14 +6202,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6252
6202
  }
6253
6203
  };
6254
6204
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
6255
- /* @__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") }),
6256
6206
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
6257
6207
  /* @__PURE__ */ jsx(
6258
6208
  "button",
6259
6209
  {
6260
6210
  type: "button",
6261
6211
  onClick: () => setMode("reference"),
6262
- 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"}`,
6263
6213
  children: t("modeReference")
6264
6214
  }
6265
6215
  ),
@@ -6268,13 +6218,13 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6268
6218
  {
6269
6219
  type: "button",
6270
6220
  onClick: () => setMode("inline"),
6271
- 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"}`,
6272
6222
  children: t("modeInline")
6273
6223
  }
6274
6224
  )
6275
6225
  ] }),
6276
6226
  mode === "reference" ? /* @__PURE__ */ jsxs("div", { children: [
6277
- /* @__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") }),
6278
6228
  /* @__PURE__ */ jsx(
6279
6229
  "input",
6280
6230
  {
@@ -6282,12 +6232,12 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6282
6232
  value: dashboardFrom,
6283
6233
  onChange: (event) => setDashboardFrom(event.target.value),
6284
6234
  placeholder: t("referencePlaceholder"),
6285
- 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"
6286
6236
  }
6287
6237
  ),
6288
- /* @__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") })
6289
6239
  ] }) : /* @__PURE__ */ jsxs("div", { children: [
6290
- /* @__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") }),
6291
6241
  /* @__PURE__ */ jsx(
6292
6242
  "textarea",
6293
6243
  {
@@ -6295,14 +6245,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
6295
6245
  onChange: (event) => setInlineJson(event.target.value),
6296
6246
  placeholder: '{\\n "kpis": [],\\n "charts": [],\\n "tables": []\\n}',
6297
6247
  rows: 12,
6298
- 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"
6299
6249
  }
6300
6250
  ),
6301
6251
  parseError ? /* @__PURE__ */ jsxs("p", { className: "mt-1 text-[10px] font-medium text-red-600 dark:text-red-400", children: [
6302
6252
  t("parseError"),
6303
6253
  ": ",
6304
6254
  parseError
6305
- ] }) : /* @__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") })
6306
6256
  ] }),
6307
6257
  /* @__PURE__ */ jsx(
6308
6258
  ConfigFormActions,
@@ -8583,5 +8533,5 @@ function Workspace({
8583
8533
  }
8584
8534
 
8585
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 };
8586
- //# sourceMappingURL=chunk-EDI46QA7.mjs.map
8587
- //# sourceMappingURL=chunk-EDI46QA7.mjs.map
8536
+ //# sourceMappingURL=chunk-TRNDFSM6.mjs.map
8537
+ //# sourceMappingURL=chunk-TRNDFSM6.mjs.map