@datatechsolutions/ui 3.13.0 → 3.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) 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-AMCFAGK3.js → chunk-2II2NLAZ.js} +42 -41
  8. package/dist/chunk-2II2NLAZ.js.map +1 -0
  9. package/dist/{chunk-WR55H7DH.mjs → chunk-2SBVFLPZ.mjs} +19 -2
  10. package/dist/chunk-2SBVFLPZ.mjs.map +1 -0
  11. package/dist/{chunk-UXHJS2SH.mjs → chunk-33ZWFDVG.mjs} +282 -331
  12. package/dist/chunk-33ZWFDVG.mjs.map +1 -0
  13. package/dist/{chunk-2ECLDHAT.js → chunk-4HZ55YKZ.js} +9 -9
  14. package/dist/{chunk-2ECLDHAT.js.map → chunk-4HZ55YKZ.js.map} +1 -1
  15. package/dist/{chunk-VI4IUTMX.js → chunk-4P72IJOM.js} +6 -6
  16. package/dist/{chunk-VI4IUTMX.js.map → chunk-4P72IJOM.js.map} +1 -1
  17. package/dist/{chunk-D5OTZGA2.js → chunk-5SCZB5UI.js} +382 -431
  18. package/dist/chunk-5SCZB5UI.js.map +1 -0
  19. package/dist/{chunk-4VHFGW7I.mjs → chunk-5YCH7FHT.mjs} +3 -3
  20. package/dist/{chunk-4VHFGW7I.mjs.map → chunk-5YCH7FHT.mjs.map} +1 -1
  21. package/dist/{chunk-P4RVGMZL.js → chunk-6NBQTIXX.js} +9 -37
  22. package/dist/chunk-6NBQTIXX.js.map +1 -0
  23. package/dist/{chunk-EZQ2D47U.js → chunk-6NEESZVO.js} +4 -4
  24. package/dist/{chunk-EZQ2D47U.js.map → chunk-6NEESZVO.js.map} +1 -1
  25. package/dist/{chunk-N4YT3QA5.js → chunk-72XZ7DSF.js} +13 -13
  26. package/dist/{chunk-N4YT3QA5.js.map → chunk-72XZ7DSF.js.map} +1 -1
  27. package/dist/{chunk-QGRTV35L.mjs → chunk-7NHJSD4A.mjs} +6 -6
  28. package/dist/{chunk-QGRTV35L.mjs.map → chunk-7NHJSD4A.mjs.map} +1 -1
  29. package/dist/{chunk-PPIUMCUZ.js → chunk-7SDB2VC2.js} +4 -4
  30. package/dist/{chunk-PPIUMCUZ.js.map → chunk-7SDB2VC2.js.map} +1 -1
  31. package/dist/{chunk-QGLGQXJE.js → chunk-A5OMGPMR.js} +10 -10
  32. package/dist/chunk-A5OMGPMR.js.map +1 -0
  33. package/dist/{chunk-K5567JM5.js → chunk-AUCS2KF4.js} +26 -26
  34. package/dist/{chunk-K5567JM5.js.map → chunk-AUCS2KF4.js.map} +1 -1
  35. package/dist/{chunk-MSKKNPRE.mjs → chunk-F4KHAKTP.mjs} +172 -116
  36. package/dist/chunk-F4KHAKTP.mjs.map +1 -0
  37. package/dist/{chunk-SDYKXLCU.js → chunk-FHGWXWVZ.js} +67 -67
  38. package/dist/{chunk-SDYKXLCU.js.map → chunk-FHGWXWVZ.js.map} +1 -1
  39. package/dist/{chunk-5ETT54QS.js → chunk-FZUV7GNB.js} +241 -184
  40. package/dist/chunk-FZUV7GNB.js.map +1 -0
  41. package/dist/{chunk-6KDTVSZT.mjs → chunk-HQNIETHV.mjs} +11 -10
  42. package/dist/chunk-HQNIETHV.mjs.map +1 -0
  43. package/dist/{chunk-PLTLRL2V.mjs → chunk-KDDXDQR2.mjs} +3 -3
  44. package/dist/{chunk-PLTLRL2V.mjs.map → chunk-KDDXDQR2.mjs.map} +1 -1
  45. package/dist/{chunk-6YTYD4P5.js → chunk-LJGPMMKB.js} +156 -193
  46. package/dist/chunk-LJGPMMKB.js.map +1 -0
  47. package/dist/{chunk-BHOT22QL.js → chunk-MXQ2EYG2.js} +19 -2
  48. package/dist/chunk-MXQ2EYG2.js.map +1 -0
  49. package/dist/{chunk-ANFSQJNI.mjs → chunk-N6SGVUTR.mjs} +17 -20
  50. package/dist/chunk-N6SGVUTR.mjs.map +1 -0
  51. package/dist/{chunk-IIRS5XZY.js → chunk-NIZSQJRW.js} +33 -33
  52. package/dist/{chunk-IIRS5XZY.js.map → chunk-NIZSQJRW.js.map} +1 -1
  53. package/dist/{chunk-AKWCT53S.mjs → chunk-NXWIT4YQ.mjs} +47 -50
  54. package/dist/chunk-NXWIT4YQ.mjs.map +1 -0
  55. package/dist/{chunk-OC4AOYU5.mjs → chunk-OTQXU4WG.mjs} +83 -120
  56. package/dist/chunk-OTQXU4WG.mjs.map +1 -0
  57. package/dist/{chunk-CSOMZ5UM.mjs → chunk-PO66V2PN.mjs} +9 -9
  58. package/dist/{chunk-CSOMZ5UM.mjs.map → chunk-PO66V2PN.mjs.map} +1 -1
  59. package/dist/{chunk-OY5HUZSD.js → chunk-PXGESUKI.js} +94 -97
  60. package/dist/chunk-PXGESUKI.js.map +1 -0
  61. package/dist/{chunk-7TYNV6SY.mjs → chunk-Q2FUNDCP.mjs} +14 -14
  62. package/dist/{chunk-7TYNV6SY.mjs.map → chunk-Q2FUNDCP.mjs.map} +1 -1
  63. package/dist/{chunk-KWH7JIRP.mjs → chunk-Q5TZTA6H.mjs} +9 -8
  64. package/dist/chunk-Q5TZTA6H.mjs.map +1 -0
  65. package/dist/{chunk-ZRCXDKBE.mjs → chunk-T7DROKWJ.mjs} +4 -4
  66. package/dist/{chunk-ZRCXDKBE.mjs.map → chunk-T7DROKWJ.mjs.map} +1 -1
  67. package/dist/{chunk-3VYD7QL2.mjs → chunk-TQADF23S.mjs} +9 -9
  68. package/dist/chunk-TQADF23S.mjs.map +1 -0
  69. package/dist/{chunk-VIB42VMZ.mjs → chunk-U7VMFQFN.mjs} +5 -5
  70. package/dist/{chunk-VIB42VMZ.mjs.map → chunk-U7VMFQFN.mjs.map} +1 -1
  71. package/dist/{chunk-AHNH2PMI.mjs → chunk-WE35EV7J.mjs} +3 -3
  72. package/dist/{chunk-AHNH2PMI.mjs.map → chunk-WE35EV7J.mjs.map} +1 -1
  73. package/dist/{chunk-UPYACFZJ.mjs → chunk-WTSMTLSP.mjs} +303 -347
  74. package/dist/chunk-WTSMTLSP.mjs.map +1 -0
  75. package/dist/{chunk-WOTKBKS6.js → chunk-YFMMZHL5.js} +47 -50
  76. package/dist/chunk-YFMMZHL5.js.map +1 -0
  77. package/dist/{chunk-DJ33CSGJ.mjs → chunk-ZBX7UCAP.mjs} +9 -37
  78. package/dist/chunk-ZBX7UCAP.mjs.map +1 -0
  79. package/dist/{chunk-NF5DDM5V.js → chunk-ZE6U4N4Q.js} +44 -43
  80. package/dist/chunk-ZE6U4N4Q.js.map +1 -0
  81. package/dist/{chunk-MQDCUBVW.js → chunk-ZIRD3X6G.js} +459 -503
  82. package/dist/chunk-ZIRD3X6G.js.map +1 -0
  83. package/dist/index.d.mts +77 -7
  84. package/dist/index.d.ts +77 -7
  85. package/dist/index.js +708 -704
  86. package/dist/index.mjs +3 -3
  87. package/dist/platform/admin/index.js +12 -12
  88. package/dist/platform/admin/index.mjs +6 -6
  89. package/dist/platform/agents-workspace.js +9 -9
  90. package/dist/platform/agents-workspace.mjs +8 -8
  91. package/dist/platform/app-shell.js +5 -5
  92. package/dist/platform/app-shell.mjs +4 -4
  93. package/dist/platform/auth/index.js +29 -29
  94. package/dist/platform/auth/index.mjs +6 -6
  95. package/dist/platform/billing/index.js +7 -7
  96. package/dist/platform/billing/index.mjs +5 -5
  97. package/dist/platform/impersonation/index.js +5 -5
  98. package/dist/platform/impersonation/index.mjs +4 -4
  99. package/dist/platform/index.js +99 -99
  100. package/dist/platform/index.js.map +1 -1
  101. package/dist/platform/index.mjs +30 -30
  102. package/dist/platform/index.mjs.map +1 -1
  103. package/dist/platform/pages/index.d.mts +115 -3
  104. package/dist/platform/pages/index.d.ts +115 -3
  105. package/dist/platform/pages/index.js +966 -519
  106. package/dist/platform/pages/index.js.map +1 -1
  107. package/dist/platform/pages/index.mjs +562 -121
  108. package/dist/platform/pages/index.mjs.map +1 -1
  109. package/dist/platform/settings/index.js +9 -9
  110. package/dist/platform/settings/index.mjs +8 -8
  111. package/dist/platform/workflow-canvas-shell.js +7 -7
  112. package/dist/platform/workflow-canvas-shell.mjs +6 -6
  113. package/package.json +1 -1
  114. package/dist/chunk-3VYD7QL2.mjs.map +0 -1
  115. package/dist/chunk-5ETT54QS.js.map +0 -1
  116. package/dist/chunk-6KDTVSZT.mjs.map +0 -1
  117. package/dist/chunk-6YTYD4P5.js.map +0 -1
  118. package/dist/chunk-AKWCT53S.mjs.map +0 -1
  119. package/dist/chunk-AMCFAGK3.js.map +0 -1
  120. package/dist/chunk-ANFSQJNI.mjs.map +0 -1
  121. package/dist/chunk-BHOT22QL.js.map +0 -1
  122. package/dist/chunk-D5OTZGA2.js.map +0 -1
  123. package/dist/chunk-DJ33CSGJ.mjs.map +0 -1
  124. package/dist/chunk-KWH7JIRP.mjs.map +0 -1
  125. package/dist/chunk-MQDCUBVW.js.map +0 -1
  126. package/dist/chunk-MSKKNPRE.mjs.map +0 -1
  127. package/dist/chunk-NF5DDM5V.js.map +0 -1
  128. package/dist/chunk-OC4AOYU5.mjs.map +0 -1
  129. package/dist/chunk-OY5HUZSD.js.map +0 -1
  130. package/dist/chunk-P4RVGMZL.js.map +0 -1
  131. package/dist/chunk-QGLGQXJE.js.map +0 -1
  132. package/dist/chunk-UPYACFZJ.mjs.map +0 -1
  133. package/dist/chunk-UXHJS2SH.mjs.map +0 -1
  134. package/dist/chunk-WOTKBKS6.js.map +0 -1
  135. package/dist/chunk-WR55H7DH.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkD5OTZGA2_js = require('./chunk-D5OTZGA2.js');
5
- var chunk5ETT54QS_js = require('./chunk-5ETT54QS.js');
4
+ var chunk5SCZB5UI_js = require('./chunk-5SCZB5UI.js');
5
+ var chunkFZUV7GNB_js = require('./chunk-FZUV7GNB.js');
6
6
  var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
7
- var chunkBHOT22QL_js = require('./chunk-BHOT22QL.js');
7
+ var chunkMXQ2EYG2_js = require('./chunk-MXQ2EYG2.js');
8
8
  var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
9
9
  var react = require('react');
10
10
  var react$1 = require('@xyflow/react');
@@ -41,11 +41,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
41
41
  const isCompact = data.displayMode === "compact";
42
42
  if (!config) {
43
43
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
44
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeRunningIndicator, { nodeId: id }),
45
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
46
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
47
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
48
- chunkD5OTZGA2_js.NodeCardHeader,
44
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeRunningIndicator, { nodeId: id }),
45
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
46
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
47
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
48
+ chunk5SCZB5UI_js.NodeCardHeader,
49
49
  {
50
50
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
51
51
  title: data.label || "Model Provider",
@@ -53,8 +53,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
53
53
  iconClassName: "flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg"
54
54
  }
55
55
  ) }),
56
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
57
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
56
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
57
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
58
58
  ] });
59
59
  }
60
60
  const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
@@ -63,18 +63,18 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
63
63
  const isConfigured = !!(config.credentialRef || config.apiKeyRef);
64
64
  const logo = PROVIDER_LOGOS[config.providerType];
65
65
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
66
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeRunningIndicator, { nodeId: id }),
67
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
68
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
66
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeRunningIndicator, { nodeId: id }),
67
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
68
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
69
69
  /* @__PURE__ */ jsxRuntime.jsx(
70
70
  "button",
71
71
  {
72
72
  type: "button",
73
73
  onClick: () => data.onEdit?.(id),
74
74
  className: "w-full text-left",
75
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkD5OTZGA2_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
75
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunk5SCZB5UI_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
76
76
  /* @__PURE__ */ jsxRuntime.jsx(
77
- chunkD5OTZGA2_js.NodeCardHeader,
77
+ chunk5SCZB5UI_js.NodeCardHeader,
78
78
  {
79
79
  icon: logo ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: providerLabel, className: "h-6 w-6 object-contain", loading: "lazy" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-6 w-6 text-white" }),
80
80
  title: displayName,
@@ -82,11 +82,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
82
82
  iconClassName: `flex h-11 w-11 items-center justify-center rounded-xl shadow-lg ${logo ? "bg-white/10 dark:bg-white/5 p-2" : "bg-gradient-to-br from-slate-600 to-slate-700 p-1.5"}`
83
83
  }
84
84
  ),
85
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
86
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
87
- regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
88
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
89
- config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: [
85
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
86
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
87
+ regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
88
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
89
+ config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: [
90
90
  config.modelFilter.length,
91
91
  " models"
92
92
  ] })
@@ -94,8 +94,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
94
94
  ] })
95
95
  }
96
96
  ),
97
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
98
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
97
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
98
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
99
99
  ] });
100
100
  });
101
101
  var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected }) {
@@ -104,10 +104,10 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
104
104
  const isCompact = data.displayMode === "compact";
105
105
  const keyPreview = config.key ? config.key.slice(0, 30) : "";
106
106
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
107
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeRunningIndicator, { nodeId: id }),
108
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
107
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeRunningIndicator, { nodeId: id }),
108
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
109
109
  /* @__PURE__ */ jsxRuntime.jsxs(
110
- chunkD5OTZGA2_js.NodeInteractiveCard,
110
+ chunk5SCZB5UI_js.NodeInteractiveCard,
111
111
  {
112
112
  nodeId: id,
113
113
  onEdit,
@@ -116,27 +116,27 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
116
116
  nodeType: "s3_write",
117
117
  children: [
118
118
  /* @__PURE__ */ jsxRuntime.jsx(
119
- chunkD5OTZGA2_js.NodeCardHeader,
119
+ chunk5SCZB5UI_js.NodeCardHeader,
120
120
  {
121
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
121
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
122
122
  title: label,
123
123
  description: t("s3WriteNodeDescription"),
124
124
  compact: isCompact,
125
125
  iconClassName: ""
126
126
  }
127
127
  ),
128
- /* @__PURE__ */ jsxRuntime.jsxs(chunkD5OTZGA2_js.NodeCardMeta, { compact: isCompact, children: [
128
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk5SCZB5UI_js.NodeCardMeta, { compact: isCompact, children: [
129
129
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
130
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
131
- config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
130
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
131
+ config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
132
132
  keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
133
133
  ] }),
134
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeCardDeleteAction, { nodeId: id, onDelete })
134
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardDeleteAction, { nodeId: id, onDelete })
135
135
  ] })
136
136
  ]
137
137
  }
138
138
  ),
139
- /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
139
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
140
140
  ] });
141
141
  });
142
142
  function AnthropicModelIcon({ className }) {
@@ -200,7 +200,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
200
200
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-dashed border-slate-300 bg-slate-50/40 p-4 text-center dark:border-slate-700 dark:bg-slate-900/30", children: [
201
201
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-slate-500 dark:text-slate-400", children: "No schema yet \u2014 agent text is exposed as a raw string. Add a schema to enforce structured output." }),
202
202
  /* @__PURE__ */ jsxRuntime.jsx(
203
- chunkBHOT22QL_js.Button,
203
+ chunkMXQ2EYG2_js.Button,
204
204
  {
205
205
  type: "button",
206
206
  outline: true,
@@ -264,7 +264,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
264
264
  },
265
265
  index
266
266
  )),
267
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: addField, children: "+ Add field" })
267
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", outline: true, onClick: addField, children: "+ Add field" })
268
268
  ] })
269
269
  ] });
270
270
  }
@@ -287,7 +287,7 @@ function FieldEditor({
287
287
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
288
288
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_140px_auto_auto] items-end gap-2", children: [
289
289
  /* @__PURE__ */ jsxRuntime.jsx(
290
- chunk5ETT54QS_js.FormInput,
290
+ chunkFZUV7GNB_js.FormInput,
291
291
  {
292
292
  label: "Name",
293
293
  value: field.name,
@@ -296,7 +296,7 @@ function FieldEditor({
296
296
  }
297
297
  ),
298
298
  /* @__PURE__ */ jsxRuntime.jsx(
299
- chunk5ETT54QS_js.FormSelect,
299
+ chunkFZUV7GNB_js.FormSelect,
300
300
  {
301
301
  label: "Type",
302
302
  value: field.type,
@@ -316,10 +316,10 @@ function FieldEditor({
316
316
  ),
317
317
  "Required"
318
318
  ] }),
319
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
319
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
320
320
  ] }),
321
321
  /* @__PURE__ */ jsxRuntime.jsx(
322
- chunk5ETT54QS_js.FormInput,
322
+ chunkFZUV7GNB_js.FormInput,
323
323
  {
324
324
  label: "Description (optional)",
325
325
  value: field.description,
@@ -501,17 +501,17 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
501
501
  }, [family, models, setSelectedModelId, setTemperature, onChanged]);
502
502
  const currentFamilyEntry = family.find((entry) => selectedModelId.startsWith(entry.prefix)) ?? family[0];
503
503
  const currentModelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId;
504
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-4 mt-4 overflow-hidden rounded-xl border border-gray-200/30 bg-white/40 dark:border-white/10 dark:bg-white/5", children: [
504
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-4 mt-4 overflow-hidden rounded-xl border border-slate-200/30 bg-white/40 dark:border-white/10 dark:bg-white/5", children: [
505
505
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 pt-3 pb-2", children: [
506
506
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
507
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("agentDrawer.capabilityRating") }),
507
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.capabilityRating") }),
508
508
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline gap-1", children: [
509
509
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-lg font-bold tabular-nums ${tierInfo.color}`, children: elo }),
510
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: "ELO" })
510
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: "ELO" })
511
511
  ] })
512
512
  ] }),
513
513
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
514
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700", children: [
514
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-slate-200 dark:bg-slate-700", children: [
515
515
  /* @__PURE__ */ jsxRuntime.jsx(
516
516
  "div",
517
517
  {
@@ -522,7 +522,7 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
522
522
  [1200, 1600, 2e3].map((boundary) => /* @__PURE__ */ jsxRuntime.jsx(
523
523
  "div",
524
524
  {
525
- className: "absolute top-0 h-full w-px bg-gray-400/40 dark:bg-gray-500/40",
525
+ className: "absolute top-0 h-full w-px bg-slate-400/40 dark:bg-slate-500/40",
526
526
  style: { left: `${(boundary - 800) / (2400 - 800) * 100}%` }
527
527
  },
528
528
  boundary
@@ -542,12 +542,12 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
542
542
  "aria-valuemax": 2400,
543
543
  "aria-valuenow": elo,
544
544
  "aria-valuetext": `${elo} ELO \u2014 ${t(`agentDrawer.tier${tierInfo.tierKey.charAt(0).toUpperCase()}${tierInfo.tierKey.slice(1)}`)}`,
545
- className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:shadow-lg dark:[&::-webkit-slider-thumb]:border-gray-900"
545
+ className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:shadow-lg dark:[&::-webkit-slider-thumb]:border-slate-900"
546
546
  }
547
547
  ),
548
548
  /* @__PURE__ */ jsxRuntime.jsx("style", { children: `input[type="range"]::-webkit-slider-thumb { background: ${elo < 1200 ? "#06b6d4" : elo < 1600 ? "#ec4899" : elo < 2e3 ? "#f59e0b" : "#10b981"}; box-shadow: 0 0 6px ${elo < 1200 ? "rgba(6,182,212,0.5)" : elo < 1600 ? "rgba(236,72,153,0.5)" : elo < 2e3 ? "rgba(245,158,11,0.5)" : "rgba(16,185,129,0.5)"}; }` })
549
549
  ] }),
550
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 flex justify-between text-[8px] text-gray-400 dark:text-gray-500", children: [
550
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 flex justify-between text-[8px] text-slate-400 dark:text-slate-500", children: [
551
551
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "800" }),
552
552
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "1200" }),
553
553
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "1600" }),
@@ -555,35 +555,35 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
555
555
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "2400" })
556
556
  ] })
557
557
  ] }),
558
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-px border-t border-gray-200/30 bg-gray-200/30 dark:border-white/10 dark:bg-white/10", children: [
559
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
560
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.model") }),
561
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-gray-900 dark:text-white", children: currentModelName })
558
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-px border-t border-slate-200/30 bg-slate-200/30 dark:border-white/10 dark:bg-white/10", children: [
559
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
560
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.model") }),
561
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-slate-900 dark:text-white", children: currentModelName })
562
562
  ] }),
563
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
564
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.maxTokens") }),
565
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: currentFamilyEntry.maxTokens.toLocaleString() })
563
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
564
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.maxTokens") }),
565
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: currentFamilyEntry.maxTokens.toLocaleString() })
566
566
  ] }),
567
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
568
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.context") }),
569
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: currentFamilyEntry.contextWindow })
567
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
568
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.context") }),
569
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: currentFamilyEntry.contextWindow })
570
570
  ] }),
571
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
572
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.temperature") }),
573
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: temperature.toFixed(2) })
571
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
572
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.temperature") }),
573
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: temperature.toFixed(2) })
574
574
  ] }),
575
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
576
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.autonomy") }),
575
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
576
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.autonomy") }),
577
577
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-xs font-semibold ${tierInfo.color}`, children: t(`agentDrawer.${tierInfo.autonomyKey}`) })
578
578
  ] }),
579
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
580
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.costPerTask") }),
581
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: tierInfo.costPerTask })
579
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
580
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.costPerTask") }),
581
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: tierInfo.costPerTask })
582
582
  ] })
583
583
  ] }),
584
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-gray-200/30 bg-white/60 px-4 py-2.5 dark:border-white/10 dark:bg-gray-900/60", children: [
584
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-slate-200/30 bg-white/60 px-4 py-2.5 dark:border-white/10 dark:bg-slate-900/60", children: [
585
585
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
586
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.autonomyLevel") }),
586
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.autonomyLevel") }),
587
587
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-semibold ${tierInfo.color}`, children: t(`agentDrawer.${tierInfo.autonomyKey}`) })
588
588
  ] }),
589
589
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: [
@@ -598,11 +598,11 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
598
598
  onClick: () => handleAutonomyClick(level),
599
599
  "aria-label": t(`agentDrawer.${labelKey}`),
600
600
  "aria-pressed": level <= tierInfo.autonomyPercent,
601
- className: `h-2 flex-1 rounded-full transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 ${level <= tierInfo.autonomyPercent ? `bg-gradient-to-r ${tierInfo.barColor} hover:opacity-80` : "bg-gray-200 hover:bg-gray-300 dark:bg-gray-700 dark:hover:bg-gray-600"}`
601
+ className: `h-2 flex-1 rounded-full transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${level <= tierInfo.autonomyPercent ? `bg-gradient-to-r ${tierInfo.barColor} hover:opacity-80` : "bg-slate-200 hover:bg-slate-300 dark:bg-slate-700 dark:hover:bg-slate-600"}`
602
602
  },
603
603
  level
604
604
  )) }),
605
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex justify-between text-[7px] text-gray-400 dark:text-gray-500", children: [
605
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex justify-between text-[7px] text-slate-400 dark:text-slate-500", children: [
606
606
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.autonomyLow") }),
607
607
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.autonomyMedium") }),
608
608
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.autonomyHigh") }),
@@ -612,13 +612,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
612
612
  ] });
613
613
  }
614
614
  function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
615
- const frameworkKeys = Object.keys(chunkD5OTZGA2_js.FRAMEWORK_META);
615
+ const frameworkKeys = Object.keys(chunk5SCZB5UI_js.FRAMEWORK_META);
616
616
  const hasProviderConstraints = connectedProviderTypes.length > 0;
617
- const compatibleModels = chunkD5OTZGA2_js.getCompatibleModels(models, selectedFramework);
617
+ const compatibleModels = chunk5SCZB5UI_js.getCompatibleModels(models, selectedFramework);
618
618
  const handleFrameworkChange = react.useCallback((newFramework) => {
619
619
  setSelectedFramework(newFramework);
620
- if (!chunkD5OTZGA2_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
621
- const compatible = chunkD5OTZGA2_js.getCompatibleModels(models, newFramework);
620
+ if (!chunk5SCZB5UI_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
621
+ const compatible = chunk5SCZB5UI_js.getCompatibleModels(models, newFramework);
622
622
  if (compatible.length > 0) {
623
623
  setSelectedModelId(compatible[0].id);
624
624
  }
@@ -627,19 +627,19 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
627
627
  }, [selectedModelId, models, setSelectedFramework, setSelectedModelId, markDirty]);
628
628
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5 p-4", children: [
629
629
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
630
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
630
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.framework") }),
631
631
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
632
- const meta = chunkD5OTZGA2_js.FRAMEWORK_META[key];
632
+ const meta = chunk5SCZB5UI_js.FRAMEWORK_META[key];
633
633
  const isSelected = key === selectedFramework;
634
- const compatCount = chunkD5OTZGA2_js.getCompatibleModels(models, key).length;
635
- const isCompatibleWithProviders = !hasProviderConstraints || chunkD5OTZGA2_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
634
+ const compatCount = chunk5SCZB5UI_js.getCompatibleModels(models, key).length;
635
+ const isCompatibleWithProviders = !hasProviderConstraints || chunk5SCZB5UI_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
636
636
  return /* @__PURE__ */ jsxRuntime.jsxs(
637
637
  "button",
638
638
  {
639
639
  type: "button",
640
640
  onClick: () => handleFrameworkChange(key),
641
641
  disabled: !isCompatibleWithProviders,
642
- className: `inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[10px] font-semibold transition-all ${!isCompatibleWithProviders ? "cursor-not-allowed bg-gray-100 text-gray-400 opacity-40 dark:bg-white/5 dark:text-gray-500" : isSelected ? `${meta.badgeColor} ring-1 ring-current/20` : "bg-gray-100 text-gray-500 hover:bg-gray-200 dark:bg-white/5 dark:text-gray-400 dark:hover:bg-white/10"}`,
642
+ className: `inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[10px] font-semibold transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${!isCompatibleWithProviders ? "cursor-not-allowed bg-slate-100 text-slate-400 opacity-40 dark:bg-white/5 dark:text-slate-500" : isSelected ? `${meta.badgeColor} ring-1 ring-current/20` : "bg-slate-100 text-slate-500 hover:bg-slate-200 dark:bg-white/5 dark:text-slate-400 dark:hover:bg-white/10"}`,
643
643
  title: !isCompatibleWithProviders ? t("agentDrawer.frameworkIncompatible") : void 0,
644
644
  children: [
645
645
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-3.5 w-3.5" }),
@@ -652,9 +652,9 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
652
652
  }) })
653
653
  ] }),
654
654
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
655
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: [
655
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: [
656
656
  t("agentDrawer.model"),
657
- compatibleModels.length < models.length && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1.5 text-[10px] font-normal text-gray-400 dark:text-gray-500", children: [
657
+ compatibleModels.length < models.length && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1.5 text-[10px] font-normal text-slate-400 dark:text-slate-500", children: [
658
658
  "(",
659
659
  compatibleModels.length,
660
660
  "/",
@@ -664,25 +664,21 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
664
664
  ] }),
665
665
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
666
666
  const isSelected = model.id === selectedModelId;
667
- const isCompatible = chunkD5OTZGA2_js.isModelCompatibleWithFramework(model.id, selectedFramework);
667
+ const isCompatible = chunk5SCZB5UI_js.isModelCompatibleWithFramework(model.id, selectedFramework);
668
668
  const { IconComponent, color, providerLabel } = getModelIcon(model.id);
669
- return /* @__PURE__ */ jsxRuntime.jsxs(
670
- "button",
669
+ return /* @__PURE__ */ jsxRuntime.jsx(
670
+ chunkFZUV7GNB_js.SelectionCard,
671
671
  {
672
- type: "button",
673
- disabled: !isCompatible,
672
+ selected: isSelected,
674
673
  onClick: () => {
675
674
  setSelectedModelId(model.id);
676
675
  markDirty();
677
676
  },
678
- className: `flex items-center gap-2.5 rounded-xl border px-3 py-2.5 text-left transition-all ${!isCompatible ? "cursor-not-allowed border-gray-200/30 opacity-35 dark:border-white/5" : isSelected ? "border-indigo-500/50 bg-indigo-50/50 ring-1 ring-indigo-500/30 dark:border-indigo-400/40 dark:bg-indigo-500/10" : "border-gray-200/50 bg-gray-50/50 hover:border-gray-300 dark:border-white/10 dark:bg-white/5 dark:hover:border-white/20"}`,
679
- children: [
680
- /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: `h-5 w-5 flex-shrink-0 ${isSelected && isCompatible ? color : "text-gray-400 dark:text-gray-500"}` }),
681
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
682
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: `truncate text-xs font-semibold ${isSelected && isCompatible ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-300"}`, children: model.name }),
683
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: providerLabel })
684
- ] })
685
- ]
677
+ layout: "card",
678
+ compatibility: isCompatible ? "compatible" : "incompatible",
679
+ icon: /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: `h-5 w-5 ${isSelected && isCompatible ? color : ""}` }),
680
+ label: model.name,
681
+ description: providerLabel
686
682
  },
687
683
  model.id
688
684
  );
@@ -716,11 +712,11 @@ function PromptTab({
716
712
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5 p-4", children: [
717
713
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
718
714
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
719
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.temperature") }),
720
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold tabular-nums text-gray-900 dark:text-white", children: temperature.toFixed(2) })
715
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.temperature") }),
716
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold tabular-nums text-slate-900 dark:text-white", children: temperature.toFixed(2) })
721
717
  ] }),
722
718
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
723
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700", children: /* @__PURE__ */ jsxRuntime.jsx(
719
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-slate-200 dark:bg-slate-700", children: /* @__PURE__ */ jsxRuntime.jsx(
724
720
  "div",
725
721
  {
726
722
  className: "h-full rounded-full transition-all duration-300 ease-out",
@@ -739,21 +735,21 @@ function PromptTab({
739
735
  "aria-label": t("agentDrawer.temperature"),
740
736
  "aria-valuenow": temperature,
741
737
  "aria-valuetext": `${temperature.toFixed(2)} \u2014 ${isPrecise ? t("agentDrawer.precise") : isBalanced ? t("agentDrawer.balanced") : t("agentDrawer.creative")}`,
742
- className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 [&::-webkit-slider-thumb]:h-5 [&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:shadow-lg dark:[&::-webkit-slider-thumb]:border-gray-900"
738
+ className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 [&::-webkit-slider-thumb]:h-5 [&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:shadow-lg dark:[&::-webkit-slider-thumb]:border-slate-900"
743
739
  }
744
740
  ),
745
741
  /* @__PURE__ */ jsxRuntime.jsx("style", { children: `input[type="range"]::-webkit-slider-thumb { background: ${isPrecise ? "#3b82f6" : isBalanced ? "#8b5cf6" : "#ec4899"}; box-shadow: 0 0 8px ${isPrecise ? "rgba(59,130,246,0.5)" : isBalanced ? "rgba(139,92,246,0.5)" : "rgba(236,72,153,0.5)"}; }` })
746
742
  ] }),
747
743
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex items-center justify-between", children: [
748
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isPrecise ? "text-blue-500" : "text-gray-400 dark:text-gray-500"}`, children: t("agentDrawer.precise") }),
749
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isBalanced ? "text-purple-500" : "text-gray-400 dark:text-gray-500"}`, children: t("agentDrawer.balanced") }),
750
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isCreative ? "text-pink-500" : "text-gray-400 dark:text-gray-500"}`, children: t("agentDrawer.creative") })
744
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isPrecise ? "text-blue-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.precise") }),
745
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isBalanced ? "text-purple-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.balanced") }),
746
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isCreative ? "text-pink-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.creative") })
751
747
  ] })
752
748
  ] }),
753
749
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
754
750
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
755
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.systemPrompt") }),
756
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
751
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.systemPrompt") }),
752
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
757
753
  promptText.length,
758
754
  " chars"
759
755
  ] })
@@ -764,14 +760,14 @@ function PromptTab({
764
760
  value: promptText,
765
761
  onChange: handlePromptChange,
766
762
  rows: 12,
767
- className: "w-full resize-y rounded-lg border border-gray-200/50 bg-gray-50/50 px-3 py-2.5 font-mono text-xs leading-relaxed text-gray-700 outline-none transition-colors placeholder:text-gray-400 focus:border-indigo-300/50 focus:ring-1 focus:ring-indigo-300/30 dark:border-white/10 dark:bg-white/5 dark:text-gray-300 dark:placeholder:text-gray-500 dark:focus:border-indigo-500/30 dark:focus:ring-indigo-500/20",
763
+ className: "liquid-surface w-full resize-y rounded-lg px-3 py-2.5 font-mono text-xs leading-relaxed text-slate-700 outline-none transition-colors placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-slate-300 dark:placeholder:text-slate-500",
768
764
  placeholder: t("agentDrawer.systemPromptPlaceholder")
769
765
  }
770
766
  )
771
767
  ] }),
772
768
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
773
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.outputSchema", { _: "Output schema (optional)" }) }),
774
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[11px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.outputSchemaHint", {
769
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.outputSchema", { _: "Output schema (optional)" }) }),
770
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[11px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.outputSchemaHint", {
775
771
  _: "Define the structured JSON the model must return. The engine parses + validates and exposes it under `output.parsed`. Invalid output fails the node."
776
772
  }) }),
777
773
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -790,8 +786,8 @@ function PromptTab({
790
786
  function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
791
787
  if (agentTools.length === 0) {
792
788
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center px-4 py-12 text-center", children: [
793
- /* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: "mb-2 h-8 w-8 text-gray-400 dark:text-gray-500" }),
794
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: t("agentDrawer.noToolsAvailable") })
789
+ /* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: "mb-2 h-8 w-8 text-slate-400 dark:text-slate-500" }),
790
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: t("agentDrawer.noToolsAvailable") })
795
791
  ] });
796
792
  }
797
793
  const sortedTools = [...agentTools].sort((a, b) => {
@@ -802,7 +798,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
802
798
  return 0;
803
799
  });
804
800
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 p-4", children: [
805
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-gray-500 dark:text-gray-400", children: t("agentDrawer.toolsDescription") }),
801
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-slate-500 dark:text-slate-400", children: t("agentDrawer.toolsDescription") }),
806
802
  sortedTools.map((tool) => {
807
803
  const isEnabled = enabledToolIds.has(tool.agentToolId);
808
804
  const isCompatible = !tool.compatibleFrameworks || tool.compatibleFrameworks.length === 0 || tool.compatibleFrameworks.includes(agentFramework);
@@ -811,26 +807,26 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
811
807
  {
812
808
  type: "button",
813
809
  onClick: () => onToggle(tool.agentToolId),
814
- className: `flex w-full items-center gap-3 rounded-xl border px-4 py-3 text-left transition-all ${!isCompatible ? "border-gray-200/30 opacity-40 dark:border-white/5" : isEnabled ? "border-amber-500/30 bg-amber-50/50 dark:border-amber-400/20 dark:bg-amber-500/5" : "border-gray-200/50 bg-gray-50/30 hover:border-gray-300 dark:border-white/10 dark:bg-white/[0.02] dark:hover:border-white/20"}`,
810
+ className: `flex w-full items-center gap-3 rounded-xl border px-4 py-3 text-left transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${!isCompatible ? "border-slate-200/30 opacity-40 dark:border-white/5" : isEnabled ? "border-amber-500/30 bg-amber-50/50 dark:border-amber-400/20 dark:bg-amber-500/5" : "border-slate-200/50 bg-white/40 backdrop-blur-sm hover:border-slate-300 dark:border-white/10 dark:bg-white/[0.04] dark:hover:border-white/20"}`,
815
811
  disabled: !isCompatible,
816
812
  children: [
817
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${isEnabled ? "bg-gradient-to-br from-amber-400 to-orange-500" : "bg-gray-200 dark:bg-gray-700"}`, children: /* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: `h-4 w-4 ${isEnabled ? "text-white" : "text-gray-500 dark:text-gray-400"}` }) }),
813
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${isEnabled ? "bg-gradient-to-br from-amber-400 to-orange-500" : "bg-slate-200 dark:bg-slate-700"}`, children: /* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: `h-4 w-4 ${isEnabled ? "text-white" : "text-slate-500 dark:text-slate-400"}` }) }),
818
814
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
819
815
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
820
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-sm font-medium ${isEnabled ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-400"}`, children: tool.name }),
821
- !isCompatible && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-gray-100 px-1.5 py-0.5 text-[8px] font-medium text-gray-500 dark:bg-white/10 dark:text-gray-400", children: "incompatible" })
816
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-sm font-medium ${isEnabled ? "text-slate-900 dark:text-white" : "text-slate-600 dark:text-slate-400"}`, children: tool.name }),
817
+ !isCompatible && /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: "incompatible" })
822
818
  ] }),
823
- tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
819
+ tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.description }),
824
820
  tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
825
- const meta = chunkD5OTZGA2_js.getFrameworkMeta(framework);
821
+ const meta = chunk5SCZB5UI_js.getFrameworkMeta(framework);
826
822
  const isCurrentFw = framework === agentFramework;
827
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[8px] font-medium ${isCurrentFw ? meta.badgeColor : "bg-gray-100 text-gray-500 dark:bg-white/5 dark:text-gray-400"}`, children: [
823
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[8px] font-medium ${isCurrentFw ? meta.badgeColor : "bg-slate-100 text-slate-500 dark:bg-white/5 dark:text-slate-400"}`, children: [
828
824
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
829
825
  meta.label
830
826
  ] }, framework);
831
827
  }) })
832
828
  ] }),
833
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-5 w-5 shrink-0 items-center justify-center rounded-full transition-all ${isEnabled ? "bg-amber-500 text-white" : "border border-gray-300 dark:border-gray-600"}`, children: isEnabled && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-3 w-3" }) }),
829
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-5 w-5 shrink-0 items-center justify-center rounded-full transition-all ${isEnabled ? "bg-amber-500 text-white" : "border border-slate-300 dark:border-slate-600"}`, children: isEnabled && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-3 w-3" }) }),
834
830
  /* @__PURE__ */ jsxRuntime.jsx(
835
831
  "div",
836
832
  {
@@ -839,7 +835,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
839
835
  event.stopPropagation();
840
836
  },
841
837
  children: /* @__PURE__ */ jsxRuntime.jsx(
842
- chunk5ETT54QS_js.ToggleSwitch,
838
+ chunkFZUV7GNB_js.ToggleSwitch,
843
839
  {
844
840
  checked: isEnabled,
845
841
  onChange: () => onToggle(tool.agentToolId),
@@ -887,8 +883,8 @@ function EngineTab({
887
883
  const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
888
884
  const configuredCompatible = compatibleProviders.filter((p) => p.configured);
889
885
  const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
890
- const frameworkMeta = chunkD5OTZGA2_js.getFrameworkMeta(selectedFramework);
891
- const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-gray-800 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-gray-200 dark:focus:ring-indigo-500/20";
886
+ const frameworkMeta = chunk5SCZB5UI_js.getFrameworkMeta(selectedFramework);
887
+ const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-slate-800 outline-none transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-slate-200";
892
888
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "overflow-hidden rounded-2xl border border-indigo-500/20 bg-gradient-to-b from-indigo-500/[0.04] via-violet-500/[0.03] to-purple-500/[0.04] dark:border-indigo-400/20 dark:from-indigo-500/[0.10] dark:via-violet-500/[0.06] dark:to-purple-500/[0.08]", children: [
893
889
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
894
890
  AgentCapabilityCard,
@@ -916,9 +912,9 @@ function EngineTab({
916
912
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2", children: [
917
913
  /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "mt-0.5 h-5 w-5 text-indigo-500 dark:text-indigo-400" }),
918
914
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
919
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: modelName }),
915
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: modelName }),
920
916
  compatibleProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-amber-600 dark:text-amber-400", children: t("agentDrawer.noProviderForFamily", { _: "Nenhum provedor configurado serve a fam\xEDlia " + family }) }) : configuredCompatible.length > 1 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex items-center gap-1.5", children: [
921
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-500 dark:text-gray-400", children: t("agentDrawer.servedVia", { _: "via" }) }),
917
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-500 dark:text-slate-400", children: t("agentDrawer.servedVia", { _: "via" }) }),
922
918
  /* @__PURE__ */ jsxRuntime.jsx(
923
919
  "select",
924
920
  {
@@ -927,22 +923,17 @@ function EngineTab({
927
923
  onSelectProvider(event.target.value);
928
924
  markDirty();
929
925
  },
930
- className: "liquid-surface rounded-md px-2 py-0.5 text-[10px] font-semibold text-gray-900 outline-none focus:ring-1 focus:ring-indigo-300/40 dark:text-white",
926
+ "aria-label": t("agentDrawer.servedVia", { _: "via" }),
927
+ className: "liquid-surface rounded-md px-2 py-0.5 text-[10px] font-semibold 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",
931
928
  children: configuredCompatible.map((p) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: p.id, children: p.name }, p.id))
932
929
  }
933
930
  ),
934
- effectiveProvider && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-1 rounded-full px-1.5 py-0.5 text-[9px] font-semibold ${effectiveProvider.configured ? "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400" : "bg-amber-500/10 text-amber-600 dark:text-amber-400"}`, children: [
935
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `h-1 w-1 rounded-full ${effectiveProvider.configured ? "bg-emerald-500" : "bg-amber-500"}` }),
936
- effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" })
937
- ] })
938
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-[10px] text-gray-500 dark:text-gray-400", children: [
931
+ effectiveProvider && /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: effectiveProvider.configured ? "emerald" : "amber", size: "xs", children: effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) })
932
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-[10px] text-slate-500 dark:text-slate-400", children: [
939
933
  t("agentDrawer.servedVia", { _: "via" }),
940
934
  " ",
941
935
  effectiveProvider?.name ?? family,
942
- effectiveProvider && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `ml-2 inline-flex items-center gap-1 rounded-full px-1.5 py-0.5 text-[9px] font-semibold ${effectiveProvider.configured ? "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400" : "bg-amber-500/10 text-amber-600 dark:text-amber-400"}`, children: [
943
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `h-1 w-1 rounded-full ${effectiveProvider.configured ? "bg-emerald-500" : "bg-amber-500"}` }),
944
- effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" })
945
- ] })
936
+ effectiveProvider && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 inline-flex", children: /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: effectiveProvider.configured ? "emerald" : "amber", size: "xs", children: effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) }) })
946
937
  ] })
947
938
  ] })
948
939
  ] }),
@@ -952,13 +943,13 @@ function EngineTab({
952
943
  ] })
953
944
  ] }) }),
954
945
  /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "group border-t border-indigo-500/15 bg-white/30 px-4 py-2.5 dark:border-indigo-400/15 dark:bg-white/[0.02]", children: [
955
- /* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "flex cursor-pointer items-center gap-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: [
946
+ /* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "flex cursor-pointer items-center gap-2 text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: [
956
947
  /* @__PURE__ */ jsxRuntime.jsx(outline.Cog6ToothIcon, { className: "h-3 w-3" }),
957
948
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.overrideDerivation", { _: "Override \xB7 ajustes avan\xE7ados" }) }),
958
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto font-normal text-gray-400 group-open:hidden", children: "\u25BE" }),
959
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto hidden font-normal text-gray-400 group-open:inline", children: "\u25B4" })
949
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto font-normal text-slate-400 group-open:hidden", children: "\u25BE" }),
950
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto hidden font-normal text-slate-400 group-open:inline", children: "\u25B4" })
960
951
  ] }),
961
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] italic text-gray-400 dark:text-gray-500", children: t("agentDrawer.overrideHint", { _: "Mude framework, modelo manual ou tokens s\xF3 se a deriva\xE7\xE3o por ELO n\xE3o atender." }) }),
952
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] italic text-slate-400 dark:text-slate-500", children: t("agentDrawer.overrideHint", { _: "Mude framework, modelo manual ou tokens s\xF3 se a deriva\xE7\xE3o por ELO n\xE3o atender." }) }),
962
953
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 space-y-4", children: [
963
954
  /* @__PURE__ */ jsxRuntime.jsx(
964
955
  ConfigTab,
@@ -974,13 +965,13 @@ function EngineTab({
974
965
  }
975
966
  ),
976
967
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
977
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("agentDrawer.generationParams", { _: "Par\xE2metros de gera\xE7\xE3o" }) }),
968
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.generationParams", { _: "Par\xE2metros de gera\xE7\xE3o" }) }),
978
969
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-2", children: [
979
970
  { key: "max", labelKey: "agentDrawer.maxOutputTokens", label: "Max output", value: maxOutputTokens, setter: setMaxOutputTokens, step: 1, min: 1, max: 32768 },
980
971
  { key: "topP", labelKey: "agentDrawer.topP", label: "Top-p", value: topP, setter: setTopP, step: 0.05, min: 0, max: 1 },
981
972
  { key: "topK", labelKey: "agentDrawer.topK", label: "Top-k", value: topK, setter: setTopK, step: 1, min: 0, max: 500 }
982
973
  ].map((field) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${inputCard} flex flex-col items-center !py-2`, children: [
983
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[8px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t(field.labelKey, { _: field.label }) }),
974
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[8px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t(field.labelKey, { _: field.label }) }),
984
975
  /* @__PURE__ */ jsxRuntime.jsx(
985
976
  "input",
986
977
  {
@@ -993,14 +984,14 @@ function EngineTab({
993
984
  field.setter(Number(event.target.value) || 0);
994
985
  markDirty();
995
986
  },
996
- className: "w-full bg-transparent text-center text-sm font-semibold tabular-nums text-gray-900 outline-none dark:text-white"
987
+ className: "w-full bg-transparent text-center text-sm font-semibold tabular-nums text-slate-900 outline-none dark:text-white"
997
988
  }
998
989
  )
999
990
  ] }, field.key)) })
1000
991
  ] }),
1001
992
  modelProviders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1002
993
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
1003
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("agentDrawer.providerCredentials", { _: "Credenciais do provedor" }) }),
994
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.providerCredentials", { _: "Credenciais do provedor" }) }),
1004
995
  /* @__PURE__ */ jsxRuntime.jsx(
1005
996
  "a",
1006
997
  {
@@ -1013,17 +1004,17 @@ function EngineTab({
1013
1004
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: modelProviders.map((provider) => /* @__PURE__ */ jsxRuntime.jsxs(
1014
1005
  "div",
1015
1006
  {
1016
- className: "flex items-center gap-2 rounded-lg border border-gray-200/50 bg-white/40 px-3 py-1.5 dark:border-white/10 dark:bg-white/[0.03]",
1007
+ className: "flex items-center gap-2 rounded-lg border border-slate-200/50 bg-white/40 px-3 py-1.5 dark:border-white/10 dark:bg-white/[0.04]",
1017
1008
  children: [
1018
- /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-3 w-3 shrink-0 text-gray-500 dark:text-gray-400" }),
1019
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] font-semibold text-gray-900 dark:text-white", children: provider.name }),
1020
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `shrink-0 rounded-full px-1.5 py-0.5 text-[8px] font-semibold uppercase ${provider.configured ? "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400" : "bg-amber-500/10 text-amber-600 dark:text-amber-400"}`, children: provider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) }),
1021
- provider.apiKeyMasked && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto truncate font-mono text-[9px] text-gray-400 dark:text-gray-500", title: provider.credentialRef, children: provider.apiKeyMasked })
1009
+ /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-3 w-3 shrink-0 text-slate-500 dark:text-slate-400" }),
1010
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] font-semibold text-slate-900 dark:text-white", children: provider.name }),
1011
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: provider.configured ? "emerald" : "amber", size: "xs", children: provider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) }),
1012
+ provider.apiKeyMasked && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto truncate font-mono text-[9px] text-slate-400 dark:text-slate-500", title: provider.credentialRef, children: provider.apiKeyMasked })
1022
1013
  ]
1023
1014
  },
1024
1015
  provider.id
1025
1016
  )) }),
1026
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-[10px] text-gray-400 dark:text-gray-500", children: selectedProviderId ? "" : t("agentDrawer.providerHint", { _: "Credenciais s\xE3o configuradas no n\xEDvel da conta. Aqui voc\xEA s\xF3 confere o que est\xE1 conectado." }) })
1017
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-[10px] text-slate-400 dark:text-slate-500", children: selectedProviderId ? "" : t("agentDrawer.providerHint", { _: "Credenciais s\xE3o configuradas no n\xEDvel da conta. Aqui voc\xEA s\xF3 confere o que est\xE1 conectado." }) })
1027
1018
  ] })
1028
1019
  ] })
1029
1020
  ] })
@@ -1031,9 +1022,9 @@ function EngineTab({
1031
1022
  }
1032
1023
  function AgentModal({ onSaved, onPersist }) {
1033
1024
  const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
1034
- const activeModal = chunkD5OTZGA2_js.useModalStore((s) => s.activeModal);
1035
- const agentData = chunkD5OTZGA2_js.useModalStore((s) => s.agentData);
1036
- const closeModal = chunkD5OTZGA2_js.useModalStore((s) => s.closeModal);
1025
+ const activeModal = chunk5SCZB5UI_js.useModalStore((s) => s.activeModal);
1026
+ const agentData = chunk5SCZB5UI_js.useModalStore((s) => s.agentData);
1027
+ const closeModal = chunk5SCZB5UI_js.useModalStore((s) => s.closeModal);
1037
1028
  const open = activeModal === "agent";
1038
1029
  const agent = agentData?.agent ?? null;
1039
1030
  const models = agentData?.models ?? [];
@@ -1177,11 +1168,11 @@ function AgentModal({ onSaved, onPersist }) {
1177
1168
  if (!agent) return null;
1178
1169
  const sections = [];
1179
1170
  const effectiveAvatarUrl = avatarUrl || agent.avatar;
1180
- const fieldCard = "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-xs text-gray-800 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-gray-200 dark:focus:ring-indigo-500/20";
1171
+ const fieldCard = "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-xs text-slate-800 outline-none transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-slate-200";
1181
1172
  const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
1182
1173
  const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
1183
1174
  const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
1184
- chunk5ETT54QS_js.Avatar,
1175
+ chunkFZUV7GNB_js.Avatar,
1185
1176
  {
1186
1177
  src: effectiveAvatarUrl || void 0,
1187
1178
  alt: displayName || agent.name,
@@ -1193,7 +1184,7 @@ function AgentModal({ onSaved, onPersist }) {
1193
1184
  const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
1194
1185
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[9px] font-semibold ${status === "active" ? "text-emerald-600 dark:text-emerald-400" : "text-slate-500"}`, children: status === "active" ? t("agentDrawer.statusActive", { _: "Active" }) : t("agentDrawer.statusInactive", { _: "Inactive" }) }),
1195
1186
  /* @__PURE__ */ jsxRuntime.jsx(
1196
- chunk5ETT54QS_js.ToggleSwitch,
1187
+ chunkFZUV7GNB_js.ToggleSwitch,
1197
1188
  {
1198
1189
  size: "sm",
1199
1190
  color: "green",
@@ -1207,7 +1198,7 @@ function AgentModal({ onSaved, onPersist }) {
1207
1198
  )
1208
1199
  ] });
1209
1200
  const identityCard = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface rounded-2xl p-3 ring-1 ring-slate-200/50 dark:ring-white/10", children: /* @__PURE__ */ jsxRuntime.jsx(
1210
- chunk5ETT54QS_js.HeroBlock,
1201
+ chunkFZUV7GNB_js.HeroBlock,
1211
1202
  {
1212
1203
  icon: avatarNode,
1213
1204
  iconBackground: "none",
@@ -1270,7 +1261,7 @@ function AgentModal({ onSaved, onPersist }) {
1270
1261
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
1271
1262
  ] });
1272
1263
  return /* @__PURE__ */ jsxRuntime.jsx(
1273
- chunk5ETT54QS_js.GlassModal,
1264
+ chunkFZUV7GNB_js.GlassModal,
1274
1265
  {
1275
1266
  open,
1276
1267
  onClose: handleClose,
@@ -1287,7 +1278,7 @@ function AgentModal({ onSaved, onPersist }) {
1287
1278
  },
1288
1279
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
1289
1280
  /* @__PURE__ */ jsxRuntime.jsx(
1290
- chunk5ETT54QS_js.SectionCard,
1281
+ chunkFZUV7GNB_js.SectionCard,
1291
1282
  {
1292
1283
  variant: "glass",
1293
1284
  padded: false,
@@ -1327,7 +1318,7 @@ function AgentModal({ onSaved, onPersist }) {
1327
1318
  }
1328
1319
  ),
1329
1320
  /* @__PURE__ */ jsxRuntime.jsx(
1330
- chunk5ETT54QS_js.SectionCard,
1321
+ chunkFZUV7GNB_js.SectionCard,
1331
1322
  {
1332
1323
  variant: "glass",
1333
1324
  padded: false,
@@ -1355,7 +1346,7 @@ function AgentModal({ onSaved, onPersist }) {
1355
1346
  }
1356
1347
  ),
1357
1348
  /* @__PURE__ */ jsxRuntime.jsx(
1358
- chunk5ETT54QS_js.SectionCard,
1349
+ chunkFZUV7GNB_js.SectionCard,
1359
1350
  {
1360
1351
  variant: "glass",
1361
1352
  padded: false,
@@ -1451,9 +1442,9 @@ function ConfigSection({ title, icon: Icon, defaultOpen = true, children }) {
1451
1442
  "aria-expanded": open,
1452
1443
  className: "flex w-full items-center gap-2 px-4 py-2.5 text-left hover:bg-white/5",
1453
1444
  children: [
1454
- open ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3 w-3 text-gray-400" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { className: "h-3 w-3 text-gray-400" }),
1455
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-3 w-3 text-gray-400" }),
1456
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: title })
1445
+ open ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3 w-3 text-slate-400" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { className: "h-3 w-3 text-slate-400" }),
1446
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-3 w-3 text-slate-400" }),
1447
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: title })
1457
1448
  ]
1458
1449
  }
1459
1450
  ),
@@ -1478,7 +1469,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1478
1469
  const markDirty = useSubworkflowStore((s) => s.markDirty);
1479
1470
  const markSaved = useSubworkflowStore((s) => s.markSaved);
1480
1471
  const closeModal = useSubworkflowStore((s) => s.closeModal);
1481
- const agentBehind = chunkD5OTZGA2_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
1472
+ const agentBehind = chunk5SCZB5UI_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
1482
1473
  const isCreateMode = !tool?.toolId;
1483
1474
  const initialGraph = react.useMemo(() => {
1484
1475
  const config = tool?.config;
@@ -1507,9 +1498,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1507
1498
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
1508
1499
  if (!tool) return null;
1509
1500
  const categoryKey = category ?? "external";
1510
- const gradient = tool.color ?? chunkD5OTZGA2_js.CATEGORY_COLORS[categoryKey] ?? chunkD5OTZGA2_js.CATEGORY_COLORS.external;
1511
- const categoryPill = chunkD5OTZGA2_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkD5OTZGA2_js.CATEGORY_PILL_COLORS.external;
1512
- const IconComponent = chunkD5OTZGA2_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
1501
+ const gradient = tool.color ?? chunk5SCZB5UI_js.CATEGORY_COLORS[categoryKey] ?? chunk5SCZB5UI_js.CATEGORY_COLORS.external;
1502
+ const categoryPill = chunk5SCZB5UI_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunk5SCZB5UI_js.CATEGORY_PILL_COLORS.external;
1503
+ const IconComponent = chunk5SCZB5UI_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
1513
1504
  const graph = latestGraphRef.current;
1514
1505
  const startNode = graph.nodes.find((n) => n.type === "start");
1515
1506
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -1520,29 +1511,22 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1520
1511
  const footer = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1521
1512
  /* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", "aria-live": "polite", className: "text-xs", children: dirty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-amber-500 dark:text-amber-400", children: t("subworkflowDrawer.unsavedChanges") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-emerald-500 dark:text-emerald-400", children: t("subworkflowDrawer.saved") }) }),
1522
1513
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1514
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", outline: true, size: "sm", onClick: closeModal, children: t("subworkflowDrawer.cancel") }),
1523
1515
  /* @__PURE__ */ jsxRuntime.jsx(
1524
- "button",
1525
- {
1526
- type: "button",
1527
- onClick: closeModal,
1528
- className: "rounded-lg border border-gray-200/50 px-4 py-2 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100/50 dark:border-white/10 dark:text-gray-300 dark:hover:bg-white/5",
1529
- children: t("subworkflowDrawer.cancel")
1530
- }
1531
- ),
1532
- /* @__PURE__ */ jsxRuntime.jsx(
1533
- "button",
1516
+ chunkMXQ2EYG2_js.Button,
1534
1517
  {
1535
1518
  type: "button",
1519
+ color: "ios-teal",
1520
+ size: "sm",
1536
1521
  onClick: handleSave,
1537
- disabled: isCreateMode && !name.trim(),
1538
- className: `rounded-lg px-4 py-2 text-xs font-semibold text-white shadow-sm transition-all ${dirty ? "bg-gradient-to-r from-teal-500 to-cyan-500 hover:from-teal-600 hover:to-cyan-600" : "cursor-not-allowed bg-gray-300 dark:bg-gray-700"}`,
1522
+ disabled: isCreateMode && !name.trim() || !dirty,
1539
1523
  children: isCreateMode ? t("subworkflowDrawer.create") : t("subworkflowDrawer.save")
1540
1524
  }
1541
1525
  )
1542
1526
  ] })
1543
1527
  ] });
1544
1528
  return /* @__PURE__ */ jsxRuntime.jsx(
1545
- chunk5ETT54QS_js.GlassModal,
1529
+ chunkFZUV7GNB_js.GlassModal,
1546
1530
  {
1547
1531
  open,
1548
1532
  onClose: closeModal,
@@ -1557,7 +1541,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1557
1541
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[80vh] min-h-[600px]", children: [
1558
1542
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-72 flex-shrink-0 flex-col overflow-y-auto border-r border-white/10", children: [
1559
1543
  isCreateMode ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-white/10 bg-gradient-to-br from-teal-500/15 via-cyan-500/8 to-transparent px-4 py-4 dark:from-teal-500/8 dark:via-cyan-500/4", children: [
1560
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("subworkflowDrawer.name") }),
1544
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("subworkflowDrawer.name") }),
1561
1545
  /* @__PURE__ */ jsxRuntime.jsx(
1562
1546
  "input",
1563
1547
  {
@@ -1566,7 +1550,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1566
1550
  onChange: (event) => setName(event.target.value),
1567
1551
  placeholder: t("subworkflowDrawer.namePlaceholder"),
1568
1552
  autoFocus: true,
1569
- className: "w-full rounded-lg border border-gray-200/50 bg-white/60 px-3 py-2 text-sm font-medium text-gray-900 outline-none placeholder:text-gray-400 focus:border-teal-300/50 focus:ring-1 focus:ring-teal-300/30 dark:border-white/10 dark:bg-white/5 dark:text-white dark:placeholder:text-gray-500"
1553
+ className: "w-full rounded-lg bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm border border-slate-200/50 dark:border-white/10 px-3 py-2 text-sm font-medium text-slate-900 outline-none placeholder:text-slate-400 focus:border-teal-300/50 focus:ring-1 focus:ring-teal-300/30 dark:text-white dark:placeholder:text-slate-500"
1570
1554
  }
1571
1555
  ),
1572
1556
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex flex-wrap gap-1", children: ["external", "market", "data", "communication", "analytics"].map((cat) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -1574,7 +1558,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1574
1558
  {
1575
1559
  type: "button",
1576
1560
  onClick: () => setCategory(cat),
1577
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkD5OTZGA2_js.CATEGORY_PILL_COLORS[cat] ?? chunkD5OTZGA2_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-gray-500 hover:bg-white/50 dark:bg-white/5 dark:text-gray-400"}`,
1561
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunk5SCZB5UI_js.CATEGORY_PILL_COLORS[cat] ?? chunk5SCZB5UI_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-slate-500 hover:bg-white/50 dark:bg-white/5 dark:text-slate-400"}`,
1578
1562
  children: cat
1579
1563
  },
1580
1564
  cat
@@ -1582,20 +1566,21 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1582
1566
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-white/10 bg-gradient-to-br from-teal-500/15 via-cyan-500/8 to-transparent px-4 py-4 dark:from-teal-500/8 dark:via-cyan-500/4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
1583
1567
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-5 w-5 text-white" }) }),
1584
1568
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
1585
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-bold text-gray-900 dark:text-white", children: name }),
1569
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-bold text-slate-900 dark:text-white", children: name }),
1586
1570
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex flex-wrap gap-1", children: [
1587
1571
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center rounded-full bg-teal-100 px-1.5 py-0.5 text-[8px] font-semibold text-teal-700 dark:bg-teal-400/15 dark:text-teal-400", children: t("subworkflowDrawer.subworkflow") }),
1588
1572
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `inline-flex items-center rounded-full px-1.5 py-0.5 text-[8px] font-medium ${categoryPill}`, children: category })
1589
1573
  ] })
1590
1574
  ] }),
1591
1575
  onMaximize && tool.toolId && /* @__PURE__ */ jsxRuntime.jsx(
1592
- "button",
1576
+ chunkMXQ2EYG2_js.IconButton,
1593
1577
  {
1594
- type: "button",
1578
+ label: t("subworkflowDrawer.openFullEditor"),
1579
+ variant: "ghost",
1580
+ size: "sm",
1581
+ color: "ios-teal",
1595
1582
  onClick: () => onMaximize(tool.toolId),
1596
- title: t("subworkflowDrawer.openFullEditor"),
1597
- className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-gray-400 transition-colors hover:bg-white/10 hover:text-teal-500 dark:hover:text-teal-400",
1598
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowsPointingOutIcon, { className: "h-4 w-4" })
1583
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowsPointingOutIcon, { className: "h-4 w-4" })
1599
1584
  }
1600
1585
  )
1601
1586
  ] }) }),
@@ -1606,19 +1591,19 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1606
1591
  onChange: (event) => setDescription(event.target.value),
1607
1592
  rows: 2,
1608
1593
  placeholder: t("subworkflowDrawer.descriptionPlaceholder"),
1609
- className: "w-full resize-none rounded-lg border border-gray-200/50 bg-gray-50/50 px-2.5 py-2 text-[11px] leading-relaxed text-gray-700 outline-none placeholder:text-gray-400 focus:border-teal-300/50 dark:border-white/10 dark:bg-white/5 dark:text-gray-300 dark:placeholder:text-gray-500"
1594
+ className: "w-full resize-none rounded-lg bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm border border-slate-200/50 dark:border-white/10 px-2.5 py-2 text-[11px] leading-relaxed text-slate-700 outline-none placeholder:text-slate-400 focus:border-teal-300/50 dark:text-slate-300 dark:placeholder:text-slate-500"
1610
1595
  }
1611
1596
  ) }),
1612
- /* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.inputVariables"), icon: outline.ArrowsPointingInIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: inputVariables.length > 0 ? inputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(VariableChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1613
- /* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.outputVariables"), icon: outline.ArrowsPointingOutIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: outputVariables.length > 0 ? outputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(OutputChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1597
+ /* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.inputVariables"), icon: outline.ArrowsPointingInIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: inputVariables.length > 0 ? inputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(VariableChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1598
+ /* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.outputVariables"), icon: outline.ArrowsPointingOutIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: outputVariables.length > 0 ? outputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(OutputChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1614
1599
  /* @__PURE__ */ jsxRuntime.jsxs(ConfigSection, { title: t("subworkflowDrawer.executionSettings"), icon: outline.BoltIcon, defaultOpen: false, children: [
1615
1600
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
1616
1601
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
1617
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-[10px] text-gray-600 dark:text-gray-400", children: [
1602
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-[10px] text-slate-600 dark:text-slate-400", children: [
1618
1603
  /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-3 w-3" }),
1619
1604
  t("subworkflowDrawer.timeout")
1620
1605
  ] }),
1621
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] font-bold tabular-nums text-gray-900 dark:text-white", children: [
1606
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] font-bold tabular-nums text-slate-900 dark:text-white", children: [
1622
1607
  (timeoutMs / 1e3).toFixed(0),
1623
1608
  "s"
1624
1609
  ] })
@@ -1637,21 +1622,21 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1637
1622
  "aria-valuemax": 30,
1638
1623
  "aria-valuenow": timeoutMs / 1e3,
1639
1624
  "aria-valuetext": `${(timeoutMs / 1e3).toFixed(0)} seconds`,
1640
- className: "h-3 w-full cursor-pointer appearance-none rounded-full bg-gray-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-teal-500 dark:bg-gray-700 [&::-webkit-slider-thumb]:h-3 [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-teal-500"
1625
+ className: "h-3 w-full cursor-pointer appearance-none rounded-full bg-slate-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-teal-500 dark:bg-slate-700 [&::-webkit-slider-thumb]:h-3 [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-teal-500"
1641
1626
  }
1642
1627
  )
1643
1628
  ] }),
1644
1629
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1645
1630
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
1646
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[10px] text-gray-600 dark:text-gray-400", children: t("subworkflowDrawer.retries") }),
1647
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-bold tabular-nums text-gray-900 dark:text-white", children: retryCount })
1631
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[10px] text-slate-600 dark:text-slate-400", children: t("subworkflowDrawer.retries") }),
1632
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-bold tabular-nums text-slate-900 dark:text-white", children: retryCount })
1648
1633
  ] }),
1649
1634
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: [0, 1, 2, 3].map((count) => /* @__PURE__ */ jsxRuntime.jsx(
1650
1635
  "button",
1651
1636
  {
1652
1637
  type: "button",
1653
1638
  onClick: () => setRetryCount(count),
1654
- className: `flex-1 rounded py-1 text-[10px] font-medium transition-all ${count === retryCount ? "bg-teal-500 text-white" : "bg-gray-100 text-gray-500 dark:bg-white/5 dark:text-gray-400"}`,
1639
+ className: `flex-1 rounded py-1 text-[10px] font-medium transition-all ${count === retryCount ? "bg-teal-500 text-white" : "bg-white/40 text-slate-500 dark:bg-white/5 dark:text-slate-400"}`,
1655
1640
  children: count
1656
1641
  },
1657
1642
  count
@@ -1661,7 +1646,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1661
1646
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
1662
1647
  ] }),
1663
1648
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1664
- chunkD5OTZGA2_js.WorkflowCanvas,
1649
+ chunk5SCZB5UI_js.WorkflowCanvas,
1665
1650
  {
1666
1651
  initialGraph,
1667
1652
  agents: [],
@@ -1677,9 +1662,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1677
1662
  }
1678
1663
  function PipelineSettingsModal({ onSave }) {
1679
1664
  const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
1680
- const activeModal = chunkD5OTZGA2_js.useModalStore((s) => s.activeModal);
1681
- const data = chunkD5OTZGA2_js.useModalStore((s) => s.pipelineSettingsData);
1682
- const closeModal = chunkD5OTZGA2_js.useModalStore((s) => s.closeModal);
1665
+ const activeModal = chunk5SCZB5UI_js.useModalStore((s) => s.activeModal);
1666
+ const data = chunk5SCZB5UI_js.useModalStore((s) => s.pipelineSettingsData);
1667
+ const closeModal = chunk5SCZB5UI_js.useModalStore((s) => s.closeModal);
1683
1668
  const open = activeModal === "pipeline-settings";
1684
1669
  const [nameValue, setNameValue] = react.useState("");
1685
1670
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1730,17 +1715,9 @@ function PipelineSettingsModal({ onSave }) {
1730
1715
  }
1731
1716
  };
1732
1717
  const footer = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-2", children: [
1733
- /* @__PURE__ */ jsxRuntime.jsx(
1734
- "button",
1735
- {
1736
- type: "button",
1737
- onClick: closeModal,
1738
- className: "rounded-lg border border-gray-200/50 px-4 py-2 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100/50 dark:border-white/10 dark:text-gray-300 dark:hover:bg-white/5",
1739
- children: t("cancel")
1740
- }
1741
- ),
1718
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", outline: true, size: "sm", onClick: closeModal, children: t("cancel") }),
1742
1719
  /* @__PURE__ */ jsxRuntime.jsxs(
1743
- chunkBHOT22QL_js.Button,
1720
+ chunkMXQ2EYG2_js.Button,
1744
1721
  {
1745
1722
  type: "button",
1746
1723
  onClick: () => {
@@ -1757,7 +1734,7 @@ function PipelineSettingsModal({ onSave }) {
1757
1734
  )
1758
1735
  ] });
1759
1736
  return /* @__PURE__ */ jsxRuntime.jsx(
1760
- chunk5ETT54QS_js.GlassModal,
1737
+ chunkFZUV7GNB_js.GlassModal,
1761
1738
  {
1762
1739
  open,
1763
1740
  onClose: closeModal,
@@ -1780,7 +1757,7 @@ function PipelineSettingsModal({ onSave }) {
1780
1757
  },
1781
1758
  children: [
1782
1759
  /* @__PURE__ */ jsxRuntime.jsx(
1783
- chunk5ETT54QS_js.FormInput,
1760
+ chunkFZUV7GNB_js.FormInput,
1784
1761
  {
1785
1762
  label: t("pipelineName"),
1786
1763
  value: nameValue,
@@ -1790,7 +1767,7 @@ function PipelineSettingsModal({ onSave }) {
1790
1767
  }
1791
1768
  ),
1792
1769
  /* @__PURE__ */ jsxRuntime.jsx(
1793
- chunk5ETT54QS_js.FormTextarea,
1770
+ chunkFZUV7GNB_js.FormTextarea,
1794
1771
  {
1795
1772
  label: t("pipelineDescription"),
1796
1773
  value: descriptionValue,
@@ -1801,7 +1778,7 @@ function PipelineSettingsModal({ onSave }) {
1801
1778
  ),
1802
1779
  lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1803
1780
  /* @__PURE__ */ jsxRuntime.jsx(
1804
- chunk5ETT54QS_js.FormInput,
1781
+ chunkFZUV7GNB_js.FormInput,
1805
1782
  {
1806
1783
  label: t("pipelineSlug", { _: "Slug" }),
1807
1784
  value: slugValue,
@@ -1812,12 +1789,12 @@ function PipelineSettingsModal({ onSave }) {
1812
1789
  })
1813
1790
  }
1814
1791
  ),
1815
- /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "space-y-2 rounded-xl border border-gray-200/60 bg-gray-50/60 p-3 dark:border-white/10 dark:bg-white/5", children: [
1816
- /* @__PURE__ */ jsxRuntime.jsx("legend", { className: "px-1 text-xs font-medium text-gray-600 dark:text-gray-300", children: t("pipelineLifecycle", { _: "Lifecycle" }) }),
1817
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-gray-700 dark:text-gray-200", children: [
1792
+ /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "space-y-2 rounded-xl liquid-surface p-3", children: [
1793
+ /* @__PURE__ */ jsxRuntime.jsx("legend", { className: "px-1 text-xs font-medium text-slate-600 dark:text-slate-300", children: t("pipelineLifecycle", { _: "Lifecycle" }) }),
1794
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-slate-700 dark:text-slate-200", children: [
1818
1795
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
1819
1796
  t("pipelineIsDraft", { _: "Draft mode" }),
1820
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-gray-400", children: isDraft ? t("pipelineIsDraftOn", { _: "Editable \u2014 changes do not affect runs." }) : t("pipelineIsDraftOff", { _: "Published \u2014 edits require a new version." }) })
1797
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-slate-400", children: isDraft ? t("pipelineIsDraftOn", { _: "Editable \u2014 changes do not affect runs." }) : t("pipelineIsDraftOff", { _: "Published \u2014 edits require a new version." }) })
1821
1798
  ] }),
1822
1799
  /* @__PURE__ */ jsxRuntime.jsx(
1823
1800
  "input",
@@ -1825,14 +1802,14 @@ function PipelineSettingsModal({ onSave }) {
1825
1802
  type: "checkbox",
1826
1803
  checked: isDraft,
1827
1804
  onChange: (event) => setIsDraft(event.target.checked),
1828
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
1805
+ className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1"
1829
1806
  }
1830
1807
  )
1831
1808
  ] }),
1832
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-gray-700 dark:text-gray-200", children: [
1809
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-slate-700 dark:text-slate-200", children: [
1833
1810
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
1834
1811
  t("pipelineIsActive", { _: "Active" }),
1835
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-gray-400", children: isActive ? t("pipelineIsActiveOn", { _: "Visible in listings and runnable." }) : t("pipelineIsActiveOff", { _: "Archived \u2014 hidden from the default listing." }) })
1812
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-slate-400", children: isActive ? t("pipelineIsActiveOn", { _: "Visible in listings and runnable." }) : t("pipelineIsActiveOff", { _: "Archived \u2014 hidden from the default listing." }) })
1836
1813
  ] }),
1837
1814
  /* @__PURE__ */ jsxRuntime.jsx(
1838
1815
  "input",
@@ -1840,7 +1817,7 @@ function PipelineSettingsModal({ onSave }) {
1840
1817
  type: "checkbox",
1841
1818
  checked: isActive,
1842
1819
  onChange: (event) => setIsActive(event.target.checked),
1843
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
1820
+ className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1"
1844
1821
  }
1845
1822
  )
1846
1823
  ] })
@@ -1913,24 +1890,16 @@ function RunReplayModal({
1913
1890
  }
1914
1891
  };
1915
1892
  const footer = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
1916
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[11px] text-gray-400", children: [
1893
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[11px] text-slate-400", children: [
1917
1894
  "run ",
1918
1895
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: runId.slice(0, 8) }),
1919
1896
  " \xB7 wf ",
1920
1897
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: workflowId.slice(0, 8) })
1921
1898
  ] }),
1922
1899
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1923
- /* @__PURE__ */ jsxRuntime.jsx(
1924
- "button",
1925
- {
1926
- type: "button",
1927
- onClick: onClose,
1928
- className: "rounded-lg border border-gray-200/50 px-4 py-2 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100/50 dark:border-white/10 dark:text-gray-300 dark:hover:bg-white/5",
1929
- children: t("cancel")
1930
- }
1931
- ),
1900
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", outline: true, size: "sm", onClick: onClose, children: t("cancel") }),
1932
1901
  /* @__PURE__ */ jsxRuntime.jsxs(
1933
- chunkBHOT22QL_js.Button,
1902
+ chunkMXQ2EYG2_js.Button,
1934
1903
  {
1935
1904
  type: "submit",
1936
1905
  form: "run-replay-form",
@@ -1945,7 +1914,7 @@ function RunReplayModal({
1945
1914
  ] })
1946
1915
  ] });
1947
1916
  return /* @__PURE__ */ jsxRuntime.jsx(
1948
- chunk5ETT54QS_js.GlassModal,
1917
+ chunkFZUV7GNB_js.GlassModal,
1949
1918
  {
1950
1919
  open,
1951
1920
  onClose,
@@ -1969,7 +1938,7 @@ function RunReplayModal({
1969
1938
  },
1970
1939
  className: "space-y-3",
1971
1940
  children: [
1972
- rows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("replayNoInputs", { _: "This run had no input variables \u2014 replaying will execute the workflow as-is." }) }) : rows.map((row, index) => /* @__PURE__ */ jsxRuntime.jsx(
1941
+ rows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("replayNoInputs", { _: "This run had no input variables \u2014 replaying will execute the workflow as-is." }) }) : rows.map((row, index) => /* @__PURE__ */ jsxRuntime.jsx(
1973
1942
  RowEditor,
1974
1943
  {
1975
1944
  row,
@@ -1991,20 +1960,12 @@ function RowEditor({
1991
1960
  onReset
1992
1961
  }) {
1993
1962
  const isJson = row.kind === "json";
1994
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-gray-200/60 bg-gray-50/60 p-3 dark:border-white/10 dark:bg-white/5", children: [
1963
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-slate-200/60 bg-slate-50/60 p-3 dark:border-white/10 dark:bg-white/5", children: [
1995
1964
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
1996
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs text-gray-700 dark:text-gray-200", children: row.key }),
1965
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs text-slate-700 dark:text-slate-200", children: row.key }),
1997
1966
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1998
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: "uppercase tracking-wider", children: row.kind }),
1999
- row.touched && /* @__PURE__ */ jsxRuntime.jsx(
2000
- "button",
2001
- {
2002
- type: "button",
2003
- onClick: onReset,
2004
- className: "text-[11px] text-indigo-600 hover:text-indigo-500 dark:text-indigo-400",
2005
- children: "reset"
2006
- }
2007
- )
1967
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", className: "uppercase tracking-wider", children: row.kind }),
1968
+ row.touched && /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, size: "xs", onClick: onReset, children: "reset" })
2008
1969
  ] })
2009
1970
  ] }),
2010
1971
  row.kind === "boolean" ? /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2012,14 +1973,14 @@ function RowEditor({
2012
1973
  {
2013
1974
  value: row.value,
2014
1975
  onChange: (event) => onChange({ value: event.target.value }),
2015
- className: "w-full rounded-lg border border-gray-200/50 bg-white/70 px-3 py-2 text-sm text-gray-900 dark:border-white/10 dark:bg-gray-800/70 dark:text-gray-100",
1976
+ className: "w-full rounded-lg border border-slate-200/50 bg-white/70 px-3 py-2 text-sm text-slate-900 dark:border-white/10 dark:bg-slate-800/70 dark:text-slate-100",
2016
1977
  children: [
2017
1978
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "true", children: "true" }),
2018
1979
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "false", children: "false" })
2019
1980
  ]
2020
1981
  }
2021
1982
  ) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
2022
- chunk5ETT54QS_js.FormTextarea,
1983
+ chunkFZUV7GNB_js.FormTextarea,
2023
1984
  {
2024
1985
  value: row.value,
2025
1986
  onValueChange: (v) => onChange({ value: v }),
@@ -2027,7 +1988,7 @@ function RowEditor({
2027
1988
  className: "font-mono"
2028
1989
  }
2029
1990
  ) : /* @__PURE__ */ jsxRuntime.jsx(
2030
- chunk5ETT54QS_js.FormInput,
1991
+ chunkFZUV7GNB_js.FormInput,
2031
1992
  {
2032
1993
  type: row.kind === "number" ? "number" : "text",
2033
1994
  value: row.value,
@@ -2131,7 +2092,7 @@ function ExecutionTimelinePanel({
2131
2092
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-medium text-slate-900 dark:text-white", children: entry.nodeId }),
2132
2093
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
2133
2094
  ] }),
2134
- /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: meta.color, children: [
2095
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMXQ2EYG2_js.Badge, { color: meta.color, children: [
2135
2096
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mr-1 h-3 w-3" }),
2136
2097
  labels[entry.status]
2137
2098
  ] })
@@ -2161,7 +2122,7 @@ function NodeInspector({
2161
2122
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-slate-900 dark:text-white", children: entry.nodeId }),
2162
2123
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
2163
2124
  ] }),
2164
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: meta.color, children: labels[entry.status] })
2125
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: meta.color, children: labels[entry.status] })
2165
2126
  ] }),
2166
2127
  /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "grid grid-cols-2 gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
2167
2128
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -2331,7 +2292,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
2331
2292
  };
2332
2293
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
2333
2294
  /* @__PURE__ */ jsxRuntime.jsx(
2334
- chunk5ETT54QS_js.FormSelect,
2295
+ chunkFZUV7GNB_js.FormSelect,
2335
2296
  {
2336
2297
  label: "Operator",
2337
2298
  value: value.operator,
@@ -2354,7 +2315,7 @@ function SimpleEditor({
2354
2315
  const isTruthy = value.operator === "truthy";
2355
2316
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2356
2317
  /* @__PURE__ */ jsxRuntime.jsx(
2357
- chunk5ETT54QS_js.FormInput,
2318
+ chunkFZUV7GNB_js.FormInput,
2358
2319
  {
2359
2320
  label: "Field",
2360
2321
  hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
@@ -2364,7 +2325,7 @@ function SimpleEditor({
2364
2325
  }
2365
2326
  ),
2366
2327
  !isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
2367
- chunk5ETT54QS_js.FormInput,
2328
+ chunkFZUV7GNB_js.FormInput,
2368
2329
  {
2369
2330
  label: "Value",
2370
2331
  hint: "Literal. Numeric operators coerce via `as f64`.",
@@ -2380,7 +2341,7 @@ function ThresholdEditor({
2380
2341
  }) {
2381
2342
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
2382
2343
  /* @__PURE__ */ jsxRuntime.jsx(
2383
- chunk5ETT54QS_js.FormInput,
2344
+ chunkFZUV7GNB_js.FormInput,
2384
2345
  {
2385
2346
  label: "Field",
2386
2347
  value: value.field ?? "",
@@ -2389,7 +2350,7 @@ function ThresholdEditor({
2389
2350
  }
2390
2351
  ),
2391
2352
  /* @__PURE__ */ jsxRuntime.jsx(
2392
- chunk5ETT54QS_js.FormSelect,
2353
+ chunkFZUV7GNB_js.FormSelect,
2393
2354
  {
2394
2355
  label: "Direction",
2395
2356
  value: value.comparison ?? "gte",
@@ -2403,7 +2364,7 @@ function ThresholdEditor({
2403
2364
  }
2404
2365
  ),
2405
2366
  /* @__PURE__ */ jsxRuntime.jsx(
2406
- chunk5ETT54QS_js.FormInput,
2367
+ chunkFZUV7GNB_js.FormInput,
2407
2368
  {
2408
2369
  label: "Threshold",
2409
2370
  type: "number",
@@ -2420,7 +2381,7 @@ function RegexEditor({
2420
2381
  }) {
2421
2382
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2422
2383
  /* @__PURE__ */ jsxRuntime.jsx(
2423
- chunk5ETT54QS_js.FormInput,
2384
+ chunkFZUV7GNB_js.FormInput,
2424
2385
  {
2425
2386
  label: "Field",
2426
2387
  value: value.field ?? "",
@@ -2429,7 +2390,7 @@ function RegexEditor({
2429
2390
  }
2430
2391
  ),
2431
2392
  /* @__PURE__ */ jsxRuntime.jsx(
2432
- chunk5ETT54QS_js.FormInput,
2393
+ chunkFZUV7GNB_js.FormInput,
2433
2394
  {
2434
2395
  label: "Pattern",
2435
2396
  hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
@@ -2457,7 +2418,7 @@ function TimeWindowEditor({
2457
2418
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2458
2419
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2459
2420
  /* @__PURE__ */ jsxRuntime.jsx(
2460
- chunk5ETT54QS_js.FormSelect,
2421
+ chunkFZUV7GNB_js.FormSelect,
2461
2422
  {
2462
2423
  label: "Timezone",
2463
2424
  value: value.timezone ?? "UTC",
@@ -2466,7 +2427,7 @@ function TimeWindowEditor({
2466
2427
  }
2467
2428
  ),
2468
2429
  /* @__PURE__ */ jsxRuntime.jsx(
2469
- chunk5ETT54QS_js.FormInput,
2430
+ chunkFZUV7GNB_js.FormInput,
2470
2431
  {
2471
2432
  label: "Timestamp field (optional)",
2472
2433
  hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
@@ -2479,7 +2440,7 @@ function TimeWindowEditor({
2479
2440
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2480
2441
  windows.map((win, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2 rounded-lg border border-slate-200 p-2 dark:border-slate-700", children: [
2481
2442
  /* @__PURE__ */ jsxRuntime.jsx(
2482
- chunk5ETT54QS_js.FormInput,
2443
+ chunkFZUV7GNB_js.FormInput,
2483
2444
  {
2484
2445
  label: `Start (hour)`,
2485
2446
  type: "number",
@@ -2490,7 +2451,7 @@ function TimeWindowEditor({
2490
2451
  }
2491
2452
  ),
2492
2453
  /* @__PURE__ */ jsxRuntime.jsx(
2493
- chunk5ETT54QS_js.FormInput,
2454
+ chunkFZUV7GNB_js.FormInput,
2494
2455
  {
2495
2456
  label: `End (hour)`,
2496
2457
  type: "number",
@@ -2500,9 +2461,9 @@ function TimeWindowEditor({
2500
2461
  onValueChange: (raw) => update(index, { endHour: clampHour(raw, 24) })
2501
2462
  }
2502
2463
  ),
2503
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
2464
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
2504
2465
  ] }, index)),
2505
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add window" })
2466
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add window" })
2506
2467
  ] })
2507
2468
  ] });
2508
2469
  }
@@ -2525,7 +2486,7 @@ function BooleanGroupEditor({
2525
2486
  });
2526
2487
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2527
2488
  /* @__PURE__ */ jsxRuntime.jsx(
2528
- chunk5ETT54QS_js.FormSelect,
2489
+ chunkFZUV7GNB_js.FormSelect,
2529
2490
  {
2530
2491
  label: "Combinator",
2531
2492
  value: value.combinator ?? "and",
@@ -2543,9 +2504,9 @@ function BooleanGroupEditor({
2543
2504
  depth
2544
2505
  }
2545
2506
  ),
2546
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
2507
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
2547
2508
  ] }, index)),
2548
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add operand" })
2509
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add operand" })
2549
2510
  ] })
2550
2511
  ] });
2551
2512
  }
@@ -2581,7 +2542,7 @@ function RuleActionBuilder({ value, onChange }) {
2581
2542
  };
2582
2543
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
2583
2544
  /* @__PURE__ */ jsxRuntime.jsx(
2584
- chunk5ETT54QS_js.FormSelect,
2545
+ chunkFZUV7GNB_js.FormSelect,
2585
2546
  {
2586
2547
  label: "Action type",
2587
2548
  value: type,
@@ -2591,7 +2552,7 @@ function RuleActionBuilder({ value, onChange }) {
2591
2552
  ),
2592
2553
  type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2593
2554
  /* @__PURE__ */ jsxRuntime.jsx(
2594
- chunk5ETT54QS_js.FormInput,
2555
+ chunkFZUV7GNB_js.FormInput,
2595
2556
  {
2596
2557
  label: "Multiplier",
2597
2558
  type: "number",
@@ -2601,7 +2562,7 @@ function RuleActionBuilder({ value, onChange }) {
2601
2562
  }
2602
2563
  ),
2603
2564
  /* @__PURE__ */ jsxRuntime.jsx(
2604
- chunk5ETT54QS_js.FormInput,
2565
+ chunkFZUV7GNB_js.FormInput,
2605
2566
  {
2606
2567
  label: "Reason code",
2607
2568
  value: stringParam(params.reason),
@@ -2611,7 +2572,7 @@ function RuleActionBuilder({ value, onChange }) {
2611
2572
  )
2612
2573
  ] }),
2613
2574
  type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
2614
- chunk5ETT54QS_js.FormInput,
2575
+ chunkFZUV7GNB_js.FormInput,
2615
2576
  {
2616
2577
  label: "Floor (fraction, e.g. 0.08)",
2617
2578
  type: "number",
@@ -2621,7 +2582,7 @@ function RuleActionBuilder({ value, onChange }) {
2621
2582
  }
2622
2583
  ),
2623
2584
  type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
2624
- chunk5ETT54QS_js.FormInput,
2585
+ chunkFZUV7GNB_js.FormInput,
2625
2586
  {
2626
2587
  label: "Tolerance (fraction)",
2627
2588
  type: "number",
@@ -2631,7 +2592,7 @@ function RuleActionBuilder({ value, onChange }) {
2631
2592
  }
2632
2593
  ),
2633
2594
  type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
2634
- chunk5ETT54QS_js.FormInput,
2595
+ chunkFZUV7GNB_js.FormInput,
2635
2596
  {
2636
2597
  label: "Approval limit (fraction)",
2637
2598
  type: "number",
@@ -2641,7 +2602,7 @@ function RuleActionBuilder({ value, onChange }) {
2641
2602
  }
2642
2603
  ),
2643
2604
  type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
2644
- chunk5ETT54QS_js.FormInput,
2605
+ chunkFZUV7GNB_js.FormInput,
2645
2606
  {
2646
2607
  label: "Step (e.g. 0.009)",
2647
2608
  type: "number",
@@ -2652,7 +2613,7 @@ function RuleActionBuilder({ value, onChange }) {
2652
2613
  ),
2653
2614
  type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2654
2615
  /* @__PURE__ */ jsxRuntime.jsx(
2655
- chunk5ETT54QS_js.FormInput,
2616
+ chunkFZUV7GNB_js.FormInput,
2656
2617
  {
2657
2618
  label: "Channel",
2658
2619
  value: stringParam(params.channel),
@@ -2661,7 +2622,7 @@ function RuleActionBuilder({ value, onChange }) {
2661
2622
  }
2662
2623
  ),
2663
2624
  /* @__PURE__ */ jsxRuntime.jsx(
2664
- chunk5ETT54QS_js.FormInput,
2625
+ chunkFZUV7GNB_js.FormInput,
2665
2626
  {
2666
2627
  label: "Severity",
2667
2628
  value: stringParam(params.severity),
@@ -2699,7 +2660,7 @@ function CustomParamsEditor({
2699
2660
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2700
2661
  entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
2701
2662
  /* @__PURE__ */ jsxRuntime.jsx(
2702
- chunk5ETT54QS_js.FormInput,
2663
+ chunkFZUV7GNB_js.FormInput,
2703
2664
  {
2704
2665
  label: "Key",
2705
2666
  value: key,
@@ -2707,16 +2668,16 @@ function CustomParamsEditor({
2707
2668
  }
2708
2669
  ),
2709
2670
  /* @__PURE__ */ jsxRuntime.jsx(
2710
- chunk5ETT54QS_js.FormInput,
2671
+ chunkFZUV7GNB_js.FormInput,
2711
2672
  {
2712
2673
  label: "Value",
2713
2674
  value: String(value ?? ""),
2714
2675
  onValueChange: (raw) => update(index, key, raw)
2715
2676
  }
2716
2677
  ),
2717
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
2678
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
2718
2679
  ] }, index)),
2719
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add param" })
2680
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add param" })
2720
2681
  ] });
2721
2682
  }
2722
2683
  function numberParam(value, fallback) {
@@ -2746,9 +2707,9 @@ function RuleForm({ value, onChange }) {
2746
2707
  );
2747
2708
  const update = (key, v) => onChange({ ...value, [key]: v });
2748
2709
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
2749
- /* @__PURE__ */ jsxRuntime.jsxs(chunk5ETT54QS_js.FormGrid, { children: [
2710
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkFZUV7GNB_js.FormGrid, { children: [
2750
2711
  /* @__PURE__ */ jsxRuntime.jsx(
2751
- chunk5ETT54QS_js.FormInput,
2712
+ chunkFZUV7GNB_js.FormInput,
2752
2713
  {
2753
2714
  label: "Name",
2754
2715
  required: true,
@@ -2757,7 +2718,7 @@ function RuleForm({ value, onChange }) {
2757
2718
  }
2758
2719
  ),
2759
2720
  /* @__PURE__ */ jsxRuntime.jsx(
2760
- chunk5ETT54QS_js.FormInput,
2721
+ chunkFZUV7GNB_js.FormInput,
2761
2722
  {
2762
2723
  label: "Priority",
2763
2724
  type: "number",
@@ -2767,7 +2728,7 @@ function RuleForm({ value, onChange }) {
2767
2728
  }
2768
2729
  ),
2769
2730
  /* @__PURE__ */ jsxRuntime.jsx(
2770
- chunk5ETT54QS_js.FormSelect,
2731
+ chunkFZUV7GNB_js.FormSelect,
2771
2732
  {
2772
2733
  label: "Enabled",
2773
2734
  value: value.enabled ? "true" : "false",
@@ -2779,7 +2740,7 @@ function RuleForm({ value, onChange }) {
2779
2740
  }
2780
2741
  ),
2781
2742
  /* @__PURE__ */ jsxRuntime.jsx(
2782
- chunk5ETT54QS_js.FormTextarea,
2743
+ chunkFZUV7GNB_js.FormTextarea,
2783
2744
  {
2784
2745
  label: "Description",
2785
2746
  rows: 2,
@@ -2791,7 +2752,7 @@ function RuleForm({ value, onChange }) {
2791
2752
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
2792
2753
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
2793
2754
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Condition" }),
2794
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "indigo", children: value.condition.operator })
2755
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "indigo", children: value.condition.operator })
2795
2756
  ] }),
2796
2757
  /* @__PURE__ */ jsxRuntime.jsx(
2797
2758
  RuleConditionBuilder,
@@ -2804,7 +2765,7 @@ function RuleForm({ value, onChange }) {
2804
2765
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
2805
2766
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
2806
2767
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Action on match" }),
2807
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "fuchsia", children: value.action.type })
2768
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "fuchsia", children: value.action.type })
2808
2769
  ] }),
2809
2770
  /* @__PURE__ */ jsxRuntime.jsx(
2810
2771
  RuleActionBuilder,
@@ -2826,7 +2787,7 @@ function RuleForm({ value, onChange }) {
2826
2787
  ),
2827
2788
  showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2828
2789
  /* @__PURE__ */ jsxRuntime.jsx(
2829
- chunk5ETT54QS_js.FormInput,
2790
+ chunkFZUV7GNB_js.FormInput,
2830
2791
  {
2831
2792
  label: "Valid from (ISO 8601)",
2832
2793
  type: "datetime-local",
@@ -2835,7 +2796,7 @@ function RuleForm({ value, onChange }) {
2835
2796
  }
2836
2797
  ),
2837
2798
  /* @__PURE__ */ jsxRuntime.jsx(
2838
- chunk5ETT54QS_js.FormInput,
2799
+ chunkFZUV7GNB_js.FormInput,
2839
2800
  {
2840
2801
  label: "Valid until (ISO 8601)",
2841
2802
  type: "datetime-local",
@@ -2844,7 +2805,7 @@ function RuleForm({ value, onChange }) {
2844
2805
  }
2845
2806
  ),
2846
2807
  /* @__PURE__ */ jsxRuntime.jsx(
2847
- chunk5ETT54QS_js.FormSelect,
2808
+ chunkFZUV7GNB_js.FormSelect,
2848
2809
  {
2849
2810
  label: "Status",
2850
2811
  value: value.status ?? "active",
@@ -2853,7 +2814,7 @@ function RuleForm({ value, onChange }) {
2853
2814
  }
2854
2815
  ),
2855
2816
  /* @__PURE__ */ jsxRuntime.jsx(
2856
- chunk5ETT54QS_js.FormInput,
2817
+ chunkFZUV7GNB_js.FormInput,
2857
2818
  {
2858
2819
  label: "Tags (comma-separated)",
2859
2820
  value: (value.tags ?? []).join(", "),
@@ -3001,7 +2962,7 @@ function SectionHeader({ icon, title, colorClass, count, onAdd, addLabel, isOpen
3001
2962
  /* @__PURE__ */ jsxRuntime.jsx(
3002
2963
  outline.ChevronDownIcon,
3003
2964
  {
3004
- className: `h-3 w-3 text-gray-400 transition-transform duration-200 ${isOpen ? "" : "-rotate-90"}`
2965
+ className: `h-3 w-3 text-slate-400 transition-transform duration-200 ${isOpen ? "" : "-rotate-90"}`
3005
2966
  }
3006
2967
  )
3007
2968
  ]
@@ -3022,7 +2983,7 @@ function SectionHeader({ icon, title, colorClass, count, onAdd, addLabel, isOpen
3022
2983
  function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count, onAdd, addLabel, children }) {
3023
2984
  const [isOpen, setIsOpen] = react.useState(defaultOpen);
3024
2985
  const safeChildren = react.Children.toArray(children);
3025
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-gray-200/40 dark:border-white/5", children: [
2986
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-slate-200/40 dark:border-white/5", children: [
3026
2987
  /* @__PURE__ */ jsxRuntime.jsx(
3027
2988
  SectionHeader,
3028
2989
  {
@@ -3040,8 +3001,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
3040
3001
  ] });
3041
3002
  }
3042
3003
  function LogicNodeItemCard({ item, translationFunction }) {
3043
- const IconComponent = chunkD5OTZGA2_js.LOGIC_ICON_MAP[item.nodeType];
3044
- const gradient = chunkD5OTZGA2_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
3004
+ const IconComponent = chunk5SCZB5UI_js.LOGIC_ICON_MAP[item.nodeType];
3005
+ const gradient = chunk5SCZB5UI_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-slate-400 to-slate-500";
3045
3006
  const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
3046
3007
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
3047
3008
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3053,8 +3014,8 @@ function LogicNodeItemCard({ item, translationFunction }) {
3053
3014
  children: [
3054
3015
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${gradient} shadow-sm`, children: IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-3.5 w-3.5 text-white" }) }),
3055
3016
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3056
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: translationFunction(item.nameKey) }),
3057
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: translationFunction(item.descriptionKey) })
3017
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: translationFunction(item.nameKey) }),
3018
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: translationFunction(item.descriptionKey) })
3058
3019
  ] })
3059
3020
  ]
3060
3021
  }
@@ -3112,7 +3073,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3112
3073
  [entityTypes, normalizedQuery]
3113
3074
  );
3114
3075
  const filteredLogicItems = react.useMemo(() => {
3115
- const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkD5OTZGA2_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
3076
+ const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunk5SCZB5UI_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
3116
3077
  if (!normalizedQuery) return visibleByDefault;
3117
3078
  return visibleByDefault.filter(
3118
3079
  (item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
@@ -3134,13 +3095,13 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3134
3095
  function renderLogicSubcategory(subcategory, items, isFirst) {
3135
3096
  if (items.length === 0) return null;
3136
3097
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
3137
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: `${isFirst ? "mt-1" : "mt-2"} text-[9px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500`, children: t(SUBCATEGORY_LABELS[subcategory]) }),
3098
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: `${isFirst ? "mt-1" : "mt-2"} text-[9px] font-semibold uppercase tracking-wider text-slate-400 dark:text-slate-500`, children: t(SUBCATEGORY_LABELS[subcategory]) }),
3138
3099
  items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(LogicNodeItemCard, { item, translationFunction: t }, item.nodeType))
3139
3100
  ] }, subcategory);
3140
3101
  }
3141
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface w-[260px] flex-shrink-0 overflow-y-auto rounded-none border-0 border-r border-gray-200/30 dark:border-white/5", children: [
3102
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface w-[260px] flex-shrink-0 overflow-y-auto rounded-none border-0 border-r border-slate-200/30 dark:border-white/5", children: [
3142
3103
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 pb-2", children: [
3143
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("palette") }),
3104
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("palette") }),
3144
3105
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
3145
3106
  "input",
3146
3107
  {
@@ -3148,7 +3109,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3148
3109
  value: searchQuery,
3149
3110
  onChange: (event) => setSearchQuery(event.target.value),
3150
3111
  placeholder: t("searchPalette"),
3151
- className: "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-[11px] text-gray-900 placeholder-gray-400 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-white dark:placeholder-gray-500 dark:focus:ring-indigo-500/20"
3112
+ className: "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-[11px] text-slate-900 placeholder-slate-400 outline-none transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder-slate-500"
3152
3113
  }
3153
3114
  ) })
3154
3115
  ] }),
@@ -3161,7 +3122,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3161
3122
  onAdd: onCreateAgent,
3162
3123
  addLabel: t("newAgent"),
3163
3124
  count: filteredAgents.length,
3164
- children: filteredAgents.length === 0 && filteredAgentTools.length === 0 && filteredProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noAgents") }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3125
+ children: filteredAgents.length === 0 && filteredAgentTools.length === 0 && filteredProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noAgents") }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3165
3126
  filteredAgents.map((agent) => /* @__PURE__ */ jsxRuntime.jsxs(
3166
3127
  "div",
3167
3128
  {
@@ -3170,24 +3131,24 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3170
3131
  className: "liquid-surface group flex items-center gap-2 rounded-lg px-3 py-2 transition-all cursor-grab hover:shadow-md active:cursor-grabbing",
3171
3132
  children: [
3172
3133
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-shrink-0", children: [
3173
- agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: agent.avatar, alt: agent.name, className: "h-7 w-7 rounded-full bg-white shadow-sm ring-1 ring-gray-200/50 dark:bg-gray-800 dark:ring-white/10" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-gradient-to-br from-indigo-400 to-purple-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3174
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-indigo-500 ring-1.5 ring-white dark:ring-gray-900", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-2 w-2 text-white" }) })
3134
+ agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: agent.avatar, alt: agent.name, className: "h-7 w-7 rounded-full bg-white shadow-sm ring-1 ring-slate-200/50 dark:bg-slate-800 dark:ring-white/10" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-gradient-to-br from-indigo-400 to-purple-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3135
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-indigo-500 ring-1.5 ring-white dark:ring-slate-900", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-2 w-2 text-white" }) })
3175
3136
  ] }),
3176
3137
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3177
3138
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
3178
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: agent.name }),
3139
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: agent.name }),
3179
3140
  (() => {
3180
3141
  const tier = chunk72SWXOD5_js.getAgentTier(Number(agent.elo ?? 0));
3181
3142
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: `shrink-0 rounded-full px-1.5 py-px text-[8px] font-bold ${tier.pillColor}`, children: t(`agentDrawer.tier${tier.key.charAt(0).toUpperCase()}${tier.key.slice(1)}`) });
3182
3143
  })()
3183
3144
  ] }),
3184
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: agent.role ?? agent.agentId })
3145
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: agent.role ?? agent.agentId })
3185
3146
  ] })
3186
3147
  ]
3187
3148
  },
3188
3149
  agent.agentId
3189
3150
  )),
3190
- filteredProviders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 border-t border-gray-200/40 pt-2 dark:border-white/5", children: [
3151
+ filteredProviders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 border-t border-slate-200/40 pt-2 dark:border-white/5", children: [
3191
3152
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1.5 px-1 text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("connectionsSection") }),
3192
3153
  filteredProviders.map((provider) => {
3193
3154
  const providerLogo = PROVIDER_LOGOS3[provider.provider];
@@ -3211,13 +3172,13 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3211
3172
  children: [
3212
3173
  providerLogo ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/10 p-1", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: providerLogo, alt: "", className: "h-4 w-4 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br from-rose-400 to-pink-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3213
3174
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3214
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: provider.name }),
3215
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: [
3175
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: provider.name }),
3176
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
3216
3177
  provider.modelCount,
3217
3178
  " models"
3218
3179
  ] })
3219
3180
  ] }),
3220
- provider.configured ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-emerald-500/15 px-1.5 py-0.5 text-[9px] font-medium text-emerald-700 dark:bg-emerald-500/20 dark:text-emerald-300", children: t("configured") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-amber-500/15 px-1.5 py-0.5 text-[9px] font-medium text-amber-700 dark:bg-amber-500/20 dark:text-amber-300", children: t("setup") })
3181
+ provider.configured ? /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "emerald", size: "xs", children: t("configured") }) : /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "amber", size: "xs", children: t("setup") })
3221
3182
  ]
3222
3183
  },
3223
3184
  provider.id
@@ -3235,7 +3196,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3235
3196
  colorClass: "text-teal-600 dark:text-teal-400",
3236
3197
  onAdd: onCreateTool,
3237
3198
  addLabel: t("newSubworkflow"),
3238
- children: filteredTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noSubworkflows") }) : filteredTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
3199
+ children: filteredTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noSubworkflows") }) : filteredTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
3239
3200
  "div",
3240
3201
  {
3241
3202
  draggable: true,
@@ -3244,11 +3205,11 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3244
3205
  children: [
3245
3206
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br from-teal-400 to-emerald-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathRoundedSquareIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3246
3207
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3247
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: tool.name }),
3248
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
3208
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: tool.name }),
3209
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.category })
3249
3210
  ] }),
3250
3211
  /* @__PURE__ */ jsxRuntime.jsx(
3251
- chunk5ETT54QS_js.ToggleSwitch,
3212
+ chunkFZUV7GNB_js.ToggleSwitch,
3252
3213
  {
3253
3214
  checked: Boolean(tool.enabled),
3254
3215
  onChange: () => {
@@ -3273,7 +3234,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3273
3234
  colorClass: "text-violet-600 dark:text-violet-400",
3274
3235
  onAdd: onCreateRule,
3275
3236
  addLabel: t("newRule"),
3276
- children: filteredRules.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noRules") }) : filteredRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsxs(
3237
+ children: filteredRules.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noRules") }) : filteredRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsxs(
3277
3238
  "div",
3278
3239
  {
3279
3240
  draggable: true,
@@ -3282,14 +3243,14 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3282
3243
  children: [
3283
3244
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br from-violet-400 to-purple-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3284
3245
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3285
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: rule.name }),
3286
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: [
3246
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: rule.name }),
3247
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
3287
3248
  "P",
3288
3249
  String(rule.priority ?? "")
3289
3250
  ] })
3290
3251
  ] }),
3291
3252
  /* @__PURE__ */ jsxRuntime.jsx(
3292
- chunk5ETT54QS_js.ToggleSwitch,
3253
+ chunkFZUV7GNB_js.ToggleSwitch,
3293
3254
  {
3294
3255
  checked: Boolean(rule.enabled),
3295
3256
  onChange: () => {
@@ -3315,7 +3276,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3315
3276
  count: filteredEntityTypes.length,
3316
3277
  onAdd: onCreateDatasource,
3317
3278
  addLabel: t("newDataSource"),
3318
- children: filteredEntityTypes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noDataSources") }) : filteredEntityTypes.map((entity) => {
3279
+ children: filteredEntityTypes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noDataSources") }) : filteredEntityTypes.map((entity) => {
3319
3280
  const defaultConfig = JSON.stringify({
3320
3281
  type: "entity",
3321
3282
  entityMasterId: entity.id,
@@ -3325,8 +3286,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3325
3286
  limit: entity.defaultLimit
3326
3287
  });
3327
3288
  const dsLogo = getDatasourceLogo(entity.id);
3328
- const EntityIcon = chunkD5OTZGA2_js.getEntityIcon(entity.id);
3329
- const entityGradient = chunkD5OTZGA2_js.getEntityGradient(entity.id);
3289
+ const EntityIcon = chunk5SCZB5UI_js.getEntityIcon(entity.id);
3290
+ const entityGradient = chunk5SCZB5UI_js.getEntityGradient(entity.id);
3330
3291
  return /* @__PURE__ */ jsxRuntime.jsxs(
3331
3292
  "div",
3332
3293
  {
@@ -3336,17 +3297,17 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3336
3297
  children: [
3337
3298
  dsLogo ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/10 p-1", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: dsLogo, alt: "", className: "h-4 w-4 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${entityGradient} shadow-sm`, children: /* @__PURE__ */ jsxRuntime.jsx(EntityIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3338
3299
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3339
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: entity.label }),
3340
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: [
3300
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: entity.label }),
3301
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
3341
3302
  entity.fieldCount,
3342
3303
  " ",
3343
3304
  t("entityFieldsLabel")
3344
3305
  ] })
3345
3306
  ] }),
3346
3307
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3347
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-slate-500/15 px-1.5 py-0.5 text-[9px] font-medium text-slate-700 dark:bg-slate-500/20 dark:text-slate-300", children: "Read only" }),
3308
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: "Read only" }),
3348
3309
  /* @__PURE__ */ jsxRuntime.jsx(
3349
- chunk5ETT54QS_js.ToggleSwitch,
3310
+ chunkFZUV7GNB_js.ToggleSwitch,
3350
3311
  {
3351
3312
  checked: true,
3352
3313
  onChange: () => {
@@ -3370,7 +3331,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3370
3331
  {
3371
3332
  title: t("logicSection"),
3372
3333
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.BoltIcon, { className: "h-3 w-3" }),
3373
- colorClass: "text-gray-600 dark:text-gray-400",
3334
+ colorClass: "text-slate-600 dark:text-slate-400",
3374
3335
  count: filteredLogicItems.length,
3375
3336
  children: [
3376
3337
  renderLogicSubcategory("control_flow", groupedLogicItems.control_flow, true),
@@ -3442,33 +3403,28 @@ function WorkflowListBar({
3442
3403
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-[10px] text-gray-400 dark:text-gray-500", children: workflow.updatedAt ? formatRelativeTime(typeof workflow.updatedAt === "string" ? workflow.updatedAt : workflow.updatedAt.toISOString()) : "" })
3443
3404
  ] }),
3444
3405
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100", children: [
3445
- onConvertToSubworkflow && /* @__PURE__ */ jsxRuntime.jsx(
3446
- "button",
3406
+ onConvertToSubworkflow && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
3407
+ chunkMXQ2EYG2_js.IconButton,
3447
3408
  {
3448
- type: "button",
3449
- onClick: (event) => {
3450
- event.stopPropagation();
3451
- onConvertToSubworkflow(workflow);
3452
- },
3453
- className: "rounded-md p-1 text-gray-400 transition-colors hover:bg-teal-50 hover:text-teal-600 dark:hover:bg-teal-950/30 dark:hover:text-teal-400",
3454
- "aria-label": `${tWorkflow("convertToSubworkflow")} ${workflow.name}`,
3455
- title: tWorkflow("convertToSubworkflow"),
3456
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathRoundedSquareIcon, { className: "h-3.5 w-3.5" })
3409
+ label: `${tWorkflow("convertToSubworkflow")} ${workflow.name}`,
3410
+ variant: "ghost",
3411
+ size: "sm",
3412
+ color: "ios-teal",
3413
+ onClick: () => onConvertToSubworkflow(workflow),
3414
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathRoundedSquareIcon, { className: "h-3.5 w-3.5" })
3457
3415
  }
3458
- ),
3459
- workflows.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
3460
- "button",
3416
+ ) }),
3417
+ workflows.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
3418
+ chunkMXQ2EYG2_js.IconButton,
3461
3419
  {
3462
- type: "button",
3463
- onClick: (event) => {
3464
- event.stopPropagation();
3465
- onDelete(workflow.id, workflow.name);
3466
- },
3467
- className: "rounded-md p-1 text-gray-400 transition-colors hover:bg-red-50 hover:text-red-500 dark:hover:bg-red-950/30 dark:hover:text-red-400",
3468
- "aria-label": `${tWorkflow("deleteWorkflow")} ${workflow.name}`,
3469
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-3.5 w-3.5" })
3420
+ label: `${tWorkflow("deleteWorkflow")} ${workflow.name}`,
3421
+ variant: "ghost",
3422
+ size: "sm",
3423
+ destructive: true,
3424
+ onClick: () => onDelete(workflow.id, workflow.name),
3425
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-3.5 w-3.5" })
3470
3426
  }
3471
- )
3427
+ ) })
3472
3428
  ] })
3473
3429
  ]
3474
3430
  },
@@ -3539,22 +3495,23 @@ function VersionHistoryPanel({
3539
3495
  return /* @__PURE__ */ jsxRuntime.jsxs(
3540
3496
  "div",
3541
3497
  {
3542
- className: "absolute right-0 top-0 z-40 flex h-full w-80 flex-col border-l border-gray-200 bg-white shadow-xl dark:border-gray-700 dark:bg-gray-900",
3498
+ className: "liquid-surface absolute right-0 top-0 z-40 flex h-full w-80 flex-col border-l border-slate-200/60 shadow-xl dark:border-white/10",
3543
3499
  "data-testid": "version-history-panel",
3544
3500
  children: [
3545
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-700", children: [
3501
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between px-4 py-3", children: [
3546
3502
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3547
- /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5 text-gray-500 dark:text-gray-400" }),
3548
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: translations("title") })
3503
+ /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5 text-slate-500 dark:text-slate-400" }),
3504
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") })
3549
3505
  ] }),
3550
3506
  /* @__PURE__ */ jsxRuntime.jsx(
3551
- "button",
3507
+ chunkMXQ2EYG2_js.IconButton,
3552
3508
  {
3553
- type: "button",
3509
+ label: translations("close"),
3510
+ variant: "ghost",
3511
+ size: "sm",
3554
3512
  onClick: onClose,
3555
- className: "rounded-lg p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",
3556
- "data-testid": "version-history-close",
3557
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
3513
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" }),
3514
+ "data-testid": "version-history-close"
3558
3515
  }
3559
3516
  )
3560
3517
  ] }),
@@ -3562,36 +3519,28 @@ function VersionHistoryPanel({
3562
3519
  isLoading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-12", "data-testid": "version-history-loading", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-6 w-6 animate-spin motion-reduce:animate-none rounded-full border-2 border-blue-500 border-t-transparent" }) }),
3563
3520
  loadError && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-8 text-center", "data-testid": "version-history-error", children: [
3564
3521
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-red-500 dark:text-red-400", children: loadError }),
3565
- /* @__PURE__ */ jsxRuntime.jsx(
3566
- "button",
3567
- {
3568
- type: "button",
3569
- onClick: loadVersions,
3570
- className: "mt-2 text-xs text-blue-600 hover:underline dark:text-blue-400",
3571
- children: translations("retry")
3572
- }
3573
- )
3522
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, size: "xs", onClick: loadVersions, children: translations("retry") })
3574
3523
  ] }),
3575
3524
  !isLoading && !loadError && versions.length === 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-12 text-center", "data-testid": "version-history-empty", children: [
3576
- /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto h-8 w-8 text-gray-300 dark:text-gray-600" }),
3577
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noVersions") })
3525
+ /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto h-8 w-8 text-slate-300 dark:text-slate-600" }),
3526
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noVersions") })
3578
3527
  ] }),
3579
- !isLoading && !loadError && versions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: versions.map((version) => {
3528
+ !isLoading && !loadError && versions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-slate-200/60 dark:divide-white/10", children: versions.map((version) => {
3580
3529
  const isCurrentVersion = version.version === currentVersion;
3581
3530
  return /* @__PURE__ */ jsxRuntime.jsxs(
3582
3531
  "div",
3583
3532
  {
3584
- className: `px-4 py-3 transition-colors ${isCurrentVersion ? "bg-blue-50 dark:bg-blue-500/10" : "hover:bg-gray-50 dark:hover:bg-gray-800/50"}`,
3533
+ className: `px-4 py-3 transition-colors ${isCurrentVersion ? "bg-blue-50 dark:bg-blue-500/10" : "hover:bg-white/40 dark:hover:bg-white/[0.04]"}`,
3585
3534
  "data-testid": `version-entry-${version.version}`,
3586
3535
  children: [
3587
3536
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3588
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: [
3537
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: [
3589
3538
  "v",
3590
3539
  version.version
3591
3540
  ] }),
3592
- isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "blue", size: "xs", children: translations("current") })
3541
+ isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "blue", size: "xs", children: translations("current") })
3593
3542
  ] }) }),
3594
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: [
3543
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: [
3595
3544
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: formatTimestamp3(version.publishedAt) }),
3596
3545
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5", children: [
3597
3546
  translations("publishedBy"),
@@ -3610,11 +3559,12 @@ function VersionHistoryPanel({
3610
3559
  ] }),
3611
3560
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex gap-2", children: [
3612
3561
  /* @__PURE__ */ jsxRuntime.jsxs(
3613
- "button",
3562
+ chunkMXQ2EYG2_js.Button,
3614
3563
  {
3615
3564
  type: "button",
3565
+ outline: true,
3566
+ size: "xs",
3616
3567
  onClick: () => onPreview(version),
3617
- className: "inline-flex items-center gap-1 rounded-md border border-gray-300 px-2 py-1 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100 dark:border-gray-600 dark:text-gray-400 dark:hover:bg-gray-700",
3618
3568
  "data-testid": `version-preview-${version.version}`,
3619
3569
  children: [
3620
3570
  /* @__PURE__ */ jsxRuntime.jsx(outline.EyeIcon, { className: "h-3 w-3" }),
@@ -3623,11 +3573,12 @@ function VersionHistoryPanel({
3623
3573
  }
3624
3574
  ),
3625
3575
  !isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsxs(
3626
- "button",
3576
+ chunkMXQ2EYG2_js.Button,
3627
3577
  {
3628
3578
  type: "button",
3579
+ outline: true,
3580
+ size: "xs",
3629
3581
  onClick: () => onRestore(version),
3630
- className: "inline-flex items-center gap-1 rounded-md border border-blue-300 px-2 py-1 text-xs font-medium text-blue-600 transition-colors hover:bg-blue-50 dark:border-blue-600 dark:text-blue-400 dark:hover:bg-blue-500/10",
3631
3582
  "data-testid": `version-restore-${version.version}`,
3632
3583
  children: [
3633
3584
  /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "h-3 w-3" }),
@@ -3649,8 +3600,8 @@ function VersionHistoryPanel({
3649
3600
  var STATUS_CONFIG = {
3650
3601
  pending: {
3651
3602
  icon: outline.ClockIcon,
3652
- color: "text-gray-400 dark:text-gray-500",
3653
- background: "bg-gray-100 dark:bg-gray-800",
3603
+ color: "text-slate-400 dark:text-slate-500",
3604
+ background: "bg-slate-100 dark:bg-slate-800",
3654
3605
  label: "pending"
3655
3606
  },
3656
3607
  running: {
@@ -3681,9 +3632,9 @@ function formatDuration2(durationMs) {
3681
3632
  }
3682
3633
  function RunPanel({ open, onClose, onRun, onStop }) {
3683
3634
  const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.runPanel");
3684
- const nodes = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes);
3685
- const isRunning = chunkD5OTZGA2_js.useWorkflowStore((state) => state.isRunning);
3686
- const nodeResults = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodeResults);
3635
+ const nodes = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes);
3636
+ const isRunning = chunk5SCZB5UI_js.useWorkflowStore((state) => state.isRunning);
3637
+ const nodeResults = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodeResults);
3687
3638
  const startNode = nodes.find((node) => node.type === "start");
3688
3639
  const hasEndNode = nodes.some((node) => node.type === "end");
3689
3640
  const hasValidStartConfig = Boolean(
@@ -3695,13 +3646,13 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3695
3646
  return /* @__PURE__ */ jsxRuntime.jsxs(
3696
3647
  "div",
3697
3648
  {
3698
- className: "absolute bottom-0 left-0 right-0 z-40 border-t border-gray-200 bg-white shadow-xl dark:border-gray-700 dark:bg-gray-900",
3649
+ className: "liquid-surface absolute bottom-0 left-0 right-0 z-40 border-t border-slate-200/60 shadow-xl dark:border-white/10",
3699
3650
  "data-testid": "run-panel",
3700
3651
  children: [
3701
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-gray-100 px-4 py-2 dark:border-gray-800", children: [
3652
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between px-4 py-2", children: [
3702
3653
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3703
- /* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-4 w-4 text-gray-500 dark:text-gray-400" }),
3704
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: translations("title") }),
3654
+ /* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-4 w-4 text-slate-500 dark:text-slate-400" }),
3655
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") }),
3705
3656
  isRunning && /* @__PURE__ */ jsxRuntime.jsxs(
3706
3657
  "span",
3707
3658
  {
@@ -3723,11 +3674,12 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3723
3674
  ] }),
3724
3675
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3725
3676
  isRunning ? /* @__PURE__ */ jsxRuntime.jsxs(
3726
- "button",
3677
+ chunkMXQ2EYG2_js.Button,
3727
3678
  {
3728
3679
  type: "button",
3680
+ destructive: true,
3681
+ size: "sm",
3729
3682
  onClick: onStop,
3730
- className: "inline-flex items-center gap-1.5 rounded-lg bg-red-500 px-3 py-1.5 text-xs font-medium text-white transition-colors hover:bg-red-600",
3731
3683
  "data-testid": "run-panel-stop",
3732
3684
  children: [
3733
3685
  /* @__PURE__ */ jsxRuntime.jsx(outline.StopIcon, { className: "h-3.5 w-3.5" }),
@@ -3735,12 +3687,13 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3735
3687
  ]
3736
3688
  }
3737
3689
  ) : /* @__PURE__ */ jsxRuntime.jsxs(
3738
- "button",
3690
+ chunkMXQ2EYG2_js.Button,
3739
3691
  {
3740
3692
  type: "button",
3693
+ color: "ios-green",
3694
+ size: "sm",
3741
3695
  onClick: onRun,
3742
3696
  disabled: !canRun,
3743
- className: "inline-flex items-center gap-1.5 rounded-lg bg-green-500 px-3 py-1.5 text-xs font-medium text-white transition-colors hover:bg-green-600 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-green-500",
3744
3697
  "data-testid": "run-panel-run",
3745
3698
  children: [
3746
3699
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5" }),
@@ -3749,18 +3702,19 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3749
3702
  }
3750
3703
  ),
3751
3704
  /* @__PURE__ */ jsxRuntime.jsx(
3752
- "button",
3705
+ chunkMXQ2EYG2_js.IconButton,
3753
3706
  {
3754
- type: "button",
3707
+ label: translations("close"),
3708
+ variant: "ghost",
3709
+ size: "sm",
3755
3710
  onClick: onClose,
3756
- className: "rounded-lg p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",
3757
- "data-testid": "run-panel-close",
3758
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
3711
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" }),
3712
+ "data-testid": "run-panel-close"
3759
3713
  }
3760
3714
  )
3761
3715
  ] })
3762
3716
  ] }),
3763
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-48 overflow-y-auto px-4 py-2", children: executionNodes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-4 text-center text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: executionNodes.map((node) => {
3717
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-48 overflow-y-auto px-4 py-2", children: executionNodes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-4 text-center text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: executionNodes.map((node) => {
3764
3718
  const result = nodeResults[node.id];
3765
3719
  const status = result?.status ?? "pending";
3766
3720
  const statusConfig = STATUS_CONFIG[status];
@@ -3775,12 +3729,12 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3775
3729
  /* @__PURE__ */ jsxRuntime.jsx(StatusIconComponent, { className: `h-4 w-4 flex-shrink-0 ${statusConfig.color}` }),
3776
3730
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3777
3731
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3778
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-gray-900 dark:text-white", children: nodeLabel }),
3779
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-gray-200 px-1.5 py-0.5 text-[10px] text-gray-500 dark:bg-gray-700 dark:text-gray-400", children: node.type })
3732
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-slate-900 dark:text-white", children: nodeLabel }),
3733
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-slate-200 px-1.5 py-0.5 text-[10px] text-slate-500 dark:bg-slate-700 dark:text-slate-400", children: node.type })
3780
3734
  ] }),
3781
3735
  result?.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 truncate text-xs text-red-500 dark:text-red-400", children: result.error })
3782
3736
  ] }),
3783
- result?.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0 text-xs text-gray-500 dark:text-gray-400", children: formatDuration2(result.durationMs) })
3737
+ result?.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0 text-xs text-slate-500 dark:text-slate-400", children: formatDuration2(result.durationMs) })
3784
3738
  ]
3785
3739
  },
3786
3740
  node.id
@@ -4014,8 +3968,8 @@ function inferVariables(config, nodeType) {
4014
3968
  }
4015
3969
  function VariableInspector({ open, onClose }) {
4016
3970
  const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableInspector");
4017
- const nodes = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes);
4018
- const edges = chunkD5OTZGA2_js.useWorkflowStore((state) => state.edges);
3971
+ const nodes = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes);
3972
+ const edges = chunk5SCZB5UI_js.useWorkflowStore((state) => state.edges);
4019
3973
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
4020
3974
  const toggleNodeExpansion = react.useCallback((nodeId) => {
4021
3975
  setExpandedNodes((current) => {
@@ -4053,32 +4007,33 @@ function VariableInspector({ open, onClose }) {
4053
4007
  return /* @__PURE__ */ jsxRuntime.jsxs(
4054
4008
  "div",
4055
4009
  {
4056
- className: "absolute right-0 top-0 z-40 flex h-full w-80 flex-col border-l border-gray-200 bg-white shadow-xl dark:border-gray-700 dark:bg-gray-900",
4010
+ className: "liquid-surface absolute right-0 top-0 z-40 flex h-full w-80 flex-col shadow-xl",
4057
4011
  "data-testid": "variable-inspector",
4058
4012
  children: [
4059
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-700", children: [
4013
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between border-b px-4 py-3", children: [
4060
4014
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4061
- /* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-5 w-5 text-gray-500 dark:text-gray-400" }),
4062
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: translations("title") })
4015
+ /* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-5 w-5 text-slate-500 dark:text-slate-400" }),
4016
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") })
4063
4017
  ] }),
4064
4018
  /* @__PURE__ */ jsxRuntime.jsx(
4065
- "button",
4019
+ chunkMXQ2EYG2_js.IconButton,
4066
4020
  {
4067
- type: "button",
4021
+ label: translations("close"),
4022
+ variant: "ghost",
4023
+ size: "sm",
4068
4024
  onClick: onClose,
4069
- className: "rounded-lg p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",
4070
- "data-testid": "variable-inspector-close",
4071
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
4025
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" }),
4026
+ "data-testid": "variable-inspector-close"
4072
4027
  }
4073
4028
  )
4074
4029
  ] }),
4075
4030
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-y-auto", children: nodeVariableEntries.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-12 text-center", "data-testid": "variable-inspector-empty", children: [
4076
- /* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "mx-auto h-8 w-8 text-gray-300 dark:text-gray-600" }),
4077
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
4078
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
4031
+ /* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "mx-auto h-8 w-8 text-slate-300 dark:text-slate-600" }),
4032
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") })
4033
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-slate-100 dark:divide-slate-800", children: nodeVariableEntries.map((entry) => {
4079
4034
  const isExpanded = expandedNodes.has(entry.nodeId);
4080
- const IconComponent = chunkD5OTZGA2_js.LOGIC_ICON_MAP[entry.nodeType];
4081
- const gradient = chunkD5OTZGA2_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
4035
+ const IconComponent = chunk5SCZB5UI_js.LOGIC_ICON_MAP[entry.nodeType];
4036
+ const gradient = chunk5SCZB5UI_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-slate-400 to-slate-500";
4082
4037
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
4083
4038
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
4084
4039
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -4087,12 +4042,12 @@ function VariableInspector({ open, onClose }) {
4087
4042
  {
4088
4043
  type: "button",
4089
4044
  onClick: () => toggleNodeExpansion(entry.nodeId),
4090
- className: "flex w-full items-center gap-2 px-4 py-2.5 text-left transition-colors hover:bg-gray-50 dark:hover:bg-gray-800/50",
4045
+ className: "flex w-full items-center gap-2 px-4 py-2.5 text-left transition-colors hover:bg-white/40 dark:hover:bg-white/[0.04]",
4091
4046
  children: [
4092
- isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-gray-400" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-gray-400" }),
4047
+ isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-slate-400" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-slate-400" }),
4093
4048
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-5 w-5 flex-shrink-0 items-center justify-center rounded bg-gradient-to-br ${gradient}`, children: IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-3 w-3 text-white" }) }),
4094
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-gray-900 dark:text-white", children: entry.nodeLabel }),
4095
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex-shrink-0 text-[10px] text-gray-400 dark:text-gray-500", children: [
4049
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-slate-900 dark:text-white", children: entry.nodeLabel }),
4050
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex-shrink-0 text-[10px] text-slate-400 dark:text-slate-500", children: [
4096
4051
  entry.variables.length,
4097
4052
  " ",
4098
4053
  translations("variables")
@@ -4100,32 +4055,32 @@ function VariableInspector({ open, onClose }) {
4100
4055
  ]
4101
4056
  }
4102
4057
  ),
4103
- isExpanded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-gray-50/50 px-4 pb-2 dark:bg-gray-800/30", children: entry.variables.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-2 pl-9 text-xs italic text-gray-400 dark:text-gray-500", children: translations("noVariables") }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4058
+ isExpanded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm px-4 pb-2", children: entry.variables.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-2 pl-9 text-xs italic text-slate-400 dark:text-slate-500", children: translations("noVariables") }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4104
4059
  inputVariables.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pl-9 pt-1", children: [
4105
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-gray-400 dark:text-gray-500", children: translations("inputs") }),
4060
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("inputs") }),
4106
4061
  inputVariables.map((variable, index) => /* @__PURE__ */ jsxRuntime.jsxs(
4107
4062
  "div",
4108
4063
  {
4109
4064
  className: "flex items-center gap-2 py-0.5",
4110
4065
  children: [
4111
4066
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-blue-400" }),
4112
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-700 dark:text-gray-300", children: variable.name }),
4113
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-gray-200 px-1 py-0.5 text-[9px] text-gray-500 dark:bg-gray-700 dark:text-gray-400", children: variable.variableType })
4067
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-slate-700 dark:text-slate-300", children: variable.name }),
4068
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-slate-200 px-1 py-0.5 text-[9px] text-slate-500 dark:bg-slate-700 dark:text-slate-400", children: variable.variableType })
4114
4069
  ]
4115
4070
  },
4116
4071
  `${variable.name}-${index}`
4117
4072
  ))
4118
4073
  ] }),
4119
4074
  outputVariables.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pl-9 pt-1", children: [
4120
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-gray-400 dark:text-gray-500", children: translations("outputs") }),
4075
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("outputs") }),
4121
4076
  outputVariables.map((variable, index) => /* @__PURE__ */ jsxRuntime.jsxs(
4122
4077
  "div",
4123
4078
  {
4124
4079
  className: "flex items-center gap-2 py-0.5",
4125
4080
  children: [
4126
4081
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-green-400" }),
4127
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-700 dark:text-gray-300", children: variable.name }),
4128
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-gray-200 px-1 py-0.5 text-[9px] text-gray-500 dark:bg-gray-700 dark:text-gray-400", children: variable.variableType })
4082
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-slate-700 dark:text-slate-300", children: variable.name }),
4083
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-slate-200 px-1 py-0.5 text-[9px] text-slate-500 dark:bg-slate-700 dark:text-slate-400", children: variable.variableType })
4129
4084
  ]
4130
4085
  },
4131
4086
  `${variable.name}-${index}`
@@ -4144,7 +4099,7 @@ function RunInputDialog({
4144
4099
  onRun
4145
4100
  }) {
4146
4101
  const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.runInputDialog");
4147
- const nodes = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes);
4102
+ const nodes = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes);
4148
4103
  const [values, setValues] = react.useState({});
4149
4104
  const inputVariableNames = react.useMemo(() => {
4150
4105
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -4171,7 +4126,7 @@ function RunInputDialog({
4171
4126
  }, [onClose]);
4172
4127
  if (!open) return null;
4173
4128
  return /* @__PURE__ */ jsxRuntime.jsxs(
4174
- chunk5ETT54QS_js.GlassModal,
4129
+ chunkFZUV7GNB_js.GlassModal,
4175
4130
  {
4176
4131
  open,
4177
4132
  onClose: handleClose,
@@ -4182,7 +4137,7 @@ function RunInputDialog({
4182
4137
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: inputVariableNames.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-center text-sm text-gray-500 dark:text-gray-400", children: t("noInputs") }) : inputVariableNames.map((variableName) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4183
4138
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
4184
4139
  /* @__PURE__ */ jsxRuntime.jsx(
4185
- chunk5ETT54QS_js.Input,
4140
+ chunkFZUV7GNB_js.Input,
4186
4141
  {
4187
4142
  value: values[variableName] ?? "",
4188
4143
  onChange: (event) => handleValueChange(variableName, event.target.value),
@@ -4191,8 +4146,8 @@ function RunInputDialog({
4191
4146
  )
4192
4147
  ] }, variableName)) }),
4193
4148
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
4194
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
4195
- /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
4149
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
4150
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMXQ2EYG2_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
4196
4151
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
4197
4152
  t("run")
4198
4153
  ] })
@@ -4205,10 +4160,10 @@ var STATUS_STYLES = {
4205
4160
  completed: { icon: outline.CheckCircleIcon, colorClass: "text-green-500" },
4206
4161
  failed: { icon: outline.ExclamationCircleIcon, colorClass: "text-red-500" },
4207
4162
  running: { icon: outline.ArrowPathIcon, colorClass: "text-blue-500 animate-spin motion-reduce:animate-none" },
4208
- pending: { icon: outline.ClockIcon, colorClass: "text-gray-400" },
4163
+ pending: { icon: outline.ClockIcon, colorClass: "text-slate-400" },
4209
4164
  success: { icon: outline.CheckCircleIcon, colorClass: "text-green-500" },
4210
4165
  error: { icon: outline.ExclamationCircleIcon, colorClass: "text-red-500" },
4211
- skipped: { icon: outline.ClockIcon, colorClass: "text-gray-400" }
4166
+ skipped: { icon: outline.ClockIcon, colorClass: "text-slate-400" }
4212
4167
  };
4213
4168
  function formatDuration3(durationMs) {
4214
4169
  if (durationMs === null) return "\u2014";
@@ -4225,8 +4180,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4225
4180
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
4226
4181
  const [selectedRun, setSelectedRun] = react.useState(null);
4227
4182
  const [selectedNode, setSelectedNode] = react.useState(null);
4228
- const isRunning = chunkD5OTZGA2_js.useWorkflowStore((state) => state.isRunning);
4229
- const nodeResults = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodeResults);
4183
+ const isRunning = chunk5SCZB5UI_js.useWorkflowStore((state) => state.isRunning);
4184
+ const nodeResults = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodeResults);
4230
4185
  const refreshRuns = react.useCallback(async () => {
4231
4186
  setIsLoadingRuns(true);
4232
4187
  try {
@@ -4245,21 +4200,22 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4245
4200
  if (!open) return null;
4246
4201
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4247
4202
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-x-0 top-[120px] bottom-0 z-40 bg-black/10 backdrop-blur-[1px]", onClick: onClose }),
4248
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed right-0 top-[120px] bottom-0 z-50 w-96 overflow-hidden border-l border-white/20 bg-white/95 shadow-2xl backdrop-blur-xl dark:border-gray-700/50 dark:bg-gray-800/95", children: [
4249
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-gray-200/50 px-4 py-3 dark:border-gray-700/50", children: [
4250
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: t("title") }),
4203
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed right-0 top-[120px] bottom-0 z-50 w-96 overflow-hidden border-l border-white/20 bg-white/95 shadow-2xl backdrop-blur-xl dark:border-slate-700/50 dark:bg-slate-800/95", children: [
4204
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between border-b px-4 py-3", children: [
4205
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: t("title") }),
4251
4206
  /* @__PURE__ */ jsxRuntime.jsx(
4252
- "button",
4207
+ chunkMXQ2EYG2_js.IconButton,
4253
4208
  {
4254
- type: "button",
4209
+ label: t("close"),
4210
+ variant: "ghost",
4211
+ size: "sm",
4255
4212
  onClick: onClose,
4256
- className: "rounded-lg p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300",
4257
- children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
4213
+ icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
4258
4214
  }
4259
4215
  )
4260
4216
  ] }),
4261
4217
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [
4262
- isRunning && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-gray-200/50 px-4 py-3 dark:border-gray-700/50", children: [
4218
+ isRunning && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider border-b px-4 py-3", children: [
4263
4219
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center gap-2", children: [
4264
4220
  /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "h-4 w-4 animate-spin motion-reduce:animate-none text-blue-500" }),
4265
4221
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold text-blue-600 dark:text-blue-400", children: t("activeRun") })
@@ -4267,46 +4223,46 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4267
4223
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-60 space-y-1 overflow-y-auto", children: Object.entries(nodeResults).map(([nodeId, result]) => {
4268
4224
  const statusStyle = STATUS_STYLES[result.status] ?? STATUS_STYLES.pending;
4269
4225
  const StatusIcon = statusStyle.icon;
4270
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between rounded-lg px-2 py-1.5 text-xs hover:bg-gray-50 dark:hover:bg-gray-700/50", children: [
4226
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between rounded-lg px-2 py-1.5 text-xs hover:bg-white/40 dark:hover:bg-white/[0.04]", children: [
4271
4227
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4272
4228
  /* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
4273
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-gray-700 dark:text-gray-300", children: nodeId.slice(0, 8) })
4229
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-slate-700 dark:text-slate-300", children: nodeId.slice(0, 8) })
4274
4230
  ] }),
4275
- result.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: formatDuration3(result.durationMs) })
4231
+ result.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: formatDuration3(result.durationMs) })
4276
4232
  ] }, nodeId);
4277
4233
  }) })
4278
4234
  ] }),
4279
- selectedNode && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-gray-200/50 px-4 py-3 dark:border-gray-700/50", children: [
4235
+ selectedNode && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider border-b px-4 py-3", children: [
4280
4236
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4281
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: t("nodeDetail") }),
4282
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => setSelectedNode(null), className: "text-[10px] text-gray-400 hover:text-gray-600 dark:hover:text-gray-300", children: t("close") })
4237
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: t("nodeDetail") }),
4238
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, size: "xs", onClick: () => setSelectedNode(null), children: t("close") })
4283
4239
  ] }),
4284
4240
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 text-xs", children: [
4285
4241
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
4286
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500", children: t("status") }),
4287
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: STATUS_STYLES[selectedNode.status]?.colorClass ?? "text-gray-400", children: t(selectedNode.status) })
4242
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500", children: t("status") }),
4243
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: STATUS_STYLES[selectedNode.status]?.colorClass ?? "text-slate-400", children: t(selectedNode.status) })
4288
4244
  ] }),
4289
4245
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
4290
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500", children: t("duration") }),
4291
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-700 dark:text-gray-300", children: formatDuration3(selectedNode.durationMs) })
4246
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500", children: t("duration") }),
4247
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-700 dark:text-slate-300", children: formatDuration3(selectedNode.durationMs) })
4292
4248
  ] }),
4293
4249
  selectedNode.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4294
4250
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500", children: t("error") }),
4295
4251
  /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 max-h-20 overflow-auto whitespace-pre-wrap rounded bg-red-50 p-2 text-[10px] text-red-700 dark:bg-red-900/20 dark:text-red-300", children: selectedNode.error })
4296
4252
  ] }),
4297
4253
  Object.keys(selectedNode.outputs).length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4298
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500", children: t("outputs") }),
4299
- /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 max-h-32 overflow-auto whitespace-pre-wrap rounded bg-gray-50 p-2 text-[10px] text-gray-700 dark:bg-gray-700/50 dark:text-gray-300", children: JSON.stringify(selectedNode.outputs, null, 2) })
4254
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500", children: t("outputs") }),
4255
+ /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 max-h-32 overflow-auto whitespace-pre-wrap rounded bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm p-2 text-[10px] text-slate-700 dark:text-slate-300", children: JSON.stringify(selectedNode.outputs, null, 2) })
4300
4256
  ] })
4301
4257
  ] })
4302
4258
  ] }),
4303
4259
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 overflow-y-auto px-4 py-3", children: [
4304
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "mb-2 text-xs font-semibold text-gray-500 dark:text-gray-400", children: t("runHistory") }),
4260
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "mb-2 text-xs font-semibold text-slate-500 dark:text-slate-400", children: t("runHistory") }),
4305
4261
  isLoadingRuns && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: [1, 2, 3].map((index) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-14 rounded-lg" }, index)) }),
4306
4262
  !isLoadingRuns && runs.length === 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-8 text-center", children: [
4307
- /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto mb-2 h-8 w-8 text-gray-300 dark:text-gray-600" }),
4308
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("noRuns") }),
4309
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-gray-400 dark:text-gray-500", children: t("noRunsDescription") })
4263
+ /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto mb-2 h-8 w-8 text-slate-300 dark:text-slate-600" }),
4264
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("noRuns") }),
4265
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-slate-400 dark:text-slate-500", children: t("noRunsDescription") })
4310
4266
  ] }),
4311
4267
  !isLoadingRuns && runs.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: runs.map((run) => {
4312
4268
  const statusStyle = STATUS_STYLES[run.status] ?? STATUS_STYLES.pending;
@@ -4320,14 +4276,14 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4320
4276
  setSelectedRun(isSelected ? null : run);
4321
4277
  setSelectedNode(null);
4322
4278
  },
4323
- className: `w-full rounded-lg border px-3 py-2.5 text-left transition-colors ${isSelected ? "border-blue-200 bg-blue-50/50 dark:border-blue-800 dark:bg-blue-900/20" : "border-gray-100 hover:border-gray-200 hover:bg-gray-50 dark:border-gray-700/50 dark:hover:border-gray-600 dark:hover:bg-gray-700/30"}`,
4279
+ className: `w-full rounded-lg border px-3 py-2.5 text-left transition-colors ${isSelected ? "border-blue-200 bg-blue-50/50 dark:border-blue-800 dark:bg-blue-900/20" : "border-slate-100 hover:border-slate-200 hover:bg-white/40 dark:border-slate-700/50 dark:hover:border-slate-600 dark:hover:bg-white/[0.04]"}`,
4324
4280
  children: [
4325
4281
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
4326
4282
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4327
4283
  /* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
4328
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-white", children: formatTimestamp2(run.createdAt) })
4284
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-slate-900 dark:text-white", children: formatTimestamp2(run.createdAt) })
4329
4285
  ] }),
4330
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400", children: formatDuration3(run.totalDurationMs) })
4286
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400", children: formatDuration3(run.totalDurationMs) })
4331
4287
  ] }),
4332
4288
  run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 truncate text-[10px] text-red-500", children: run.error })
4333
4289
  ]
@@ -4336,7 +4292,7 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4336
4292
  );
4337
4293
  }) }),
4338
4294
  selectedRun && selectedRun.nodeResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 space-y-1", children: [
4339
- /* @__PURE__ */ jsxRuntime.jsx("h5", { className: "mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-gray-400", children: "Nodes" }),
4295
+ /* @__PURE__ */ jsxRuntime.jsx("h5", { className: "mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-slate-400", children: "Nodes" }),
4340
4296
  selectedRun.nodeResults.map((nodeResult) => {
4341
4297
  const nodeStatusStyle = STATUS_STYLES[nodeResult.status] ?? STATUS_STYLES.pending;
4342
4298
  const NodeStatusIcon = nodeStatusStyle.icon;
@@ -4345,13 +4301,13 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4345
4301
  {
4346
4302
  type: "button",
4347
4303
  onClick: () => setSelectedNode(nodeResult),
4348
- className: "flex w-full items-center justify-between rounded px-2 py-1.5 text-xs hover:bg-gray-50 dark:hover:bg-gray-700/50",
4304
+ className: "flex w-full items-center justify-between rounded px-2 py-1.5 text-xs hover:bg-white/40 dark:hover:bg-white/[0.04]",
4349
4305
  children: [
4350
4306
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4351
4307
  /* @__PURE__ */ jsxRuntime.jsx(NodeStatusIcon, { className: `h-3 w-3 ${nodeStatusStyle.colorClass}` }),
4352
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-700 dark:text-gray-300", children: nodeResult.nodeType })
4308
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-700 dark:text-slate-300", children: nodeResult.nodeType })
4353
4309
  ] }),
4354
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400", children: formatDuration3(nodeResult.durationMs) })
4310
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400", children: formatDuration3(nodeResult.durationMs) })
4355
4311
  ]
4356
4312
  },
4357
4313
  nodeResult.nodeId
@@ -4404,7 +4360,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
4404
4360
  onAutoSaveGraph(graph);
4405
4361
  }, [onAutoSaveGraph, onGraphSnapshot]);
4406
4362
  return /* @__PURE__ */ jsxRuntime.jsx(
4407
- chunkD5OTZGA2_js.Workspace,
4363
+ chunk5SCZB5UI_js.Workspace,
4408
4364
  {
4409
4365
  ...workspaceProps,
4410
4366
  onGraphChange: handleGraphChange
@@ -4412,7 +4368,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
4412
4368
  );
4413
4369
  });
4414
4370
  function DynamicIslandConfirm2(props) {
4415
- return /* @__PURE__ */ jsxRuntime.jsx(chunk5ETT54QS_js.DynamicIslandConfirm, { ...props });
4371
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkFZUV7GNB_js.DynamicIslandConfirm, { ...props });
4416
4372
  }
4417
4373
  var JSON_PREVIEW_LINE_LIMIT = 50;
4418
4374
  function DslExportModal({ open, onClose, workflow, graph }) {
@@ -4466,7 +4422,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
4466
4422
  }, [jsonString, workflow.name, workflow.version]);
4467
4423
  if (!open) return null;
4468
4424
  return /* @__PURE__ */ jsxRuntime.jsx(
4469
- chunk5ETT54QS_js.GlassModal,
4425
+ chunkFZUV7GNB_js.GlassModal,
4470
4426
  {
4471
4427
  open,
4472
4428
  onClose,
@@ -4474,41 +4430,41 @@ function DslExportModal({ open, onClose, workflow, graph }) {
4474
4430
  subtitle: translations("description"),
4475
4431
  maxWidth: "2xl",
4476
4432
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "dsl-export-modal", children: [
4477
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-gray-200 px-1 py-4 dark:border-gray-700", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [
4433
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-divider px-1 py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [
4478
4434
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4479
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("workflowName") }),
4480
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-gray-900 dark:text-white", children: workflow.name })
4435
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("workflowName") }),
4436
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: workflow.name })
4481
4437
  ] }),
4482
4438
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4483
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("version") }),
4484
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-medium text-gray-900 dark:text-white", children: [
4439
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("version") }),
4440
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-medium text-slate-900 dark:text-white", children: [
4485
4441
  "v",
4486
4442
  workflow.version
4487
4443
  ] })
4488
4444
  ] }),
4489
4445
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4490
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("nodes") }),
4491
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-gray-900 dark:text-white", children: graph.nodes.length })
4446
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("nodes") }),
4447
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: graph.nodes.length })
4492
4448
  ] }),
4493
4449
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4494
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("edges") }),
4495
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-gray-900 dark:text-white", children: graph.edges.length })
4450
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("edges") }),
4451
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: graph.edges.length })
4496
4452
  ] })
4497
4453
  ] }) }),
4498
4454
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-1 py-4", children: [
4499
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-xs font-medium uppercase tracking-wider text-gray-400 dark:text-gray-500", children: translations("preview") }),
4455
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-xs font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("preview") }),
4500
4456
  /* @__PURE__ */ jsxRuntime.jsx(
4501
4457
  "pre",
4502
4458
  {
4503
- className: "max-h-64 overflow-auto rounded-lg border border-gray-200 bg-gray-50 p-3 text-xs text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-300",
4459
+ className: "liquid-surface max-h-64 overflow-auto rounded-lg p-3 text-xs text-slate-700 dark:text-slate-300",
4504
4460
  "data-testid": "export-json-preview",
4505
4461
  children: previewLines
4506
4462
  }
4507
4463
  )
4508
4464
  ] }),
4509
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
4465
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-slate-200 px-1 py-4 dark:border-slate-700", children: [
4510
4466
  /* @__PURE__ */ jsxRuntime.jsx(
4511
- chunkBHOT22QL_js.Button,
4467
+ chunkMXQ2EYG2_js.Button,
4512
4468
  {
4513
4469
  type: "button",
4514
4470
  onClick: handleCopyToClipboard,
@@ -4525,7 +4481,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
4525
4481
  }
4526
4482
  ),
4527
4483
  /* @__PURE__ */ jsxRuntime.jsxs(
4528
- chunkBHOT22QL_js.Button,
4484
+ chunkMXQ2EYG2_js.Button,
4529
4485
  {
4530
4486
  type: "button",
4531
4487
  onClick: handleDownloadJson,
@@ -4684,7 +4640,7 @@ function DslImportModal({ open, onClose, onImport }) {
4684
4640
  }, []);
4685
4641
  if (!open) return null;
4686
4642
  return /* @__PURE__ */ jsxRuntime.jsx(
4687
- chunk5ETT54QS_js.GlassModal,
4643
+ chunkFZUV7GNB_js.GlassModal,
4688
4644
  {
4689
4645
  open,
4690
4646
  onClose,
@@ -4699,15 +4655,15 @@ function DslImportModal({ open, onClose, onImport }) {
4699
4655
  onDragLeave: handleDragLeave,
4700
4656
  onDrop: handleDrop,
4701
4657
  onClick: handleClickUpload,
4702
- className: `cursor-pointer rounded-xl border-2 border-dashed p-8 text-center transition-colors duration-200 ${isDragActive ? "border-blue-400 bg-blue-50 dark:border-blue-500 dark:bg-blue-500/10" : "border-gray-300 hover:border-gray-400 dark:border-gray-600 dark:hover:border-gray-500"}`,
4658
+ className: `cursor-pointer rounded-xl border-2 border-dashed p-8 text-center transition-colors duration-200 ${isDragActive ? "border-blue-400 bg-blue-50 dark:border-blue-500 dark:bg-blue-500/10" : "border-slate-300 hover:border-slate-400 dark:border-slate-600 dark:hover:border-slate-500"}`,
4703
4659
  "data-testid": "import-dropzone",
4704
4660
  role: "button",
4705
4661
  tabIndex: 0,
4706
4662
  "aria-label": translations("dropzone"),
4707
4663
  children: [
4708
- /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowUpTrayIcon, { className: "mx-auto h-10 w-10 text-gray-400 dark:text-gray-500" }),
4709
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-3 text-sm font-medium text-gray-700 dark:text-gray-300", children: translations("dropzone") }),
4710
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: translations("dropzoneHint") }),
4664
+ /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowUpTrayIcon, { className: "mx-auto h-10 w-10 text-slate-400 dark:text-slate-500" }),
4665
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-3 text-sm font-medium text-slate-700 dark:text-slate-300", children: translations("dropzone") }),
4666
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: translations("dropzoneHint") }),
4711
4667
  /* @__PURE__ */ jsxRuntime.jsx(
4712
4668
  "input",
4713
4669
  {
@@ -4723,8 +4679,8 @@ function DslImportModal({ open, onClose, onImport }) {
4723
4679
  }
4724
4680
  ) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
4725
4681
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
4726
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
4727
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
4682
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: fileName }),
4683
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
4728
4684
  ] }),
4729
4685
  validationResult.isValid ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-green-200 bg-green-50 p-4 dark:border-green-800 dark:bg-green-900/20", children: [
4730
4686
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -4751,10 +4707,10 @@ function DslImportModal({ open, onClose, onImport }) {
4751
4707
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-2 space-y-1", children: validationResult.errors.map((validationError, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "text-xs text-red-600 dark:text-red-400", children: validationError }, index)) })
4752
4708
  ] })
4753
4709
  ] }) }),
4754
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
4755
- /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
4710
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-slate-200 px-1 py-4 dark:border-slate-700", children: [
4711
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
4756
4712
  /* @__PURE__ */ jsxRuntime.jsxs(
4757
- chunkBHOT22QL_js.Button,
4713
+ chunkMXQ2EYG2_js.Button,
4758
4714
  {
4759
4715
  type: "button",
4760
4716
  onClick: handleImport,
@@ -4775,14 +4731,14 @@ function DslImportModal({ open, onClose, onImport }) {
4775
4731
  }
4776
4732
 
4777
4733
  // src/astrlabe/store/selectors.ts
4778
- var useCanUndo = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.past.length > 0);
4779
- var useCanRedo = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.future.length > 0);
4780
- var useHasCopied = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.clipboard !== null);
4781
- var useContextMenu = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.contextMenu);
4782
- var useEditingNodeId = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.editingNodeId);
4783
- var useSelectedNodeCount = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
4784
- var useIsRunning = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.isRunning);
4785
- var useNodeResults = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodeResults);
4734
+ var useCanUndo = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.past.length > 0);
4735
+ var useCanRedo = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.future.length > 0);
4736
+ var useHasCopied = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.clipboard !== null);
4737
+ var useContextMenu = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.contextMenu);
4738
+ var useEditingNodeId = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.editingNodeId);
4739
+ var useSelectedNodeCount = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
4740
+ var useIsRunning = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.isRunning);
4741
+ var useNodeResults = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodeResults);
4786
4742
  var DEFAULT_MAX_HISTORY = 50;
4787
4743
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
4788
4744
  const pastRef = react.useRef([]);
@@ -5106,5 +5062,5 @@ exports.useNodeResults = useNodeResults;
5106
5062
  exports.useSelectedNodeCount = useSelectedNodeCount;
5107
5063
  exports.useSubworkflowStore = useSubworkflowStore;
5108
5064
  exports.useUndoRedo = useUndoRedo;
5109
- //# sourceMappingURL=chunk-MQDCUBVW.js.map
5110
- //# sourceMappingURL=chunk-MQDCUBVW.js.map
5065
+ //# sourceMappingURL=chunk-ZIRD3X6G.js.map
5066
+ //# sourceMappingURL=chunk-ZIRD3X6G.js.map