@datatechsolutions/ui 3.12.1 → 3.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/astrlabe/graph-node.js +6 -6
  2. package/dist/astrlabe/graph-node.mjs +2 -2
  3. package/dist/astrlabe/index.js +114 -114
  4. package/dist/astrlabe/index.mjs +6 -6
  5. package/dist/astrlabe/workflow-canvas.js +6 -6
  6. package/dist/astrlabe/workflow-canvas.mjs +5 -5
  7. package/dist/{chunk-BPMYNE7S.mjs → chunk-3VCSMSJB.mjs} +6 -6
  8. package/dist/{chunk-BPMYNE7S.mjs.map → chunk-3VCSMSJB.mjs.map} +1 -1
  9. package/dist/{chunk-OM5NNUD2.mjs → chunk-4MNKVDTJ.mjs} +9 -8
  10. package/dist/chunk-4MNKVDTJ.mjs.map +1 -0
  11. package/dist/{chunk-PIIY2Z2O.mjs → chunk-4QCO4CBC.mjs} +4 -4
  12. package/dist/{chunk-PIIY2Z2O.mjs.map → chunk-4QCO4CBC.mjs.map} +1 -1
  13. package/dist/{chunk-4D23CQZM.mjs → chunk-4VEQJAXJ.mjs} +6 -6
  14. package/dist/{chunk-4D23CQZM.mjs.map → chunk-4VEQJAXJ.mjs.map} +1 -1
  15. package/dist/{chunk-FKRIQYRG.js → chunk-4Z5NZINA.js} +431 -481
  16. package/dist/chunk-4Z5NZINA.js.map +1 -0
  17. package/dist/{chunk-Z75CEP4V.js → chunk-54T5F65C.js} +29 -29
  18. package/dist/{chunk-Z75CEP4V.js.map → chunk-54T5F65C.js.map} +1 -1
  19. package/dist/{chunk-V3UZCOZI.js → chunk-7IAWXG43.js} +35 -35
  20. package/dist/{chunk-V3UZCOZI.js.map → chunk-7IAWXG43.js.map} +1 -1
  21. package/dist/{chunk-PLEWG2L7.js → chunk-AC54BNSK.js} +15 -15
  22. package/dist/{chunk-PLEWG2L7.js.map → chunk-AC54BNSK.js.map} +1 -1
  23. package/dist/{chunk-ID55ABBB.js → chunk-B3TA74C4.js} +100 -100
  24. package/dist/chunk-B3TA74C4.js.map +1 -0
  25. package/dist/{chunk-5OZTI7TR.js → chunk-CKY2QIRR.js} +6 -6
  26. package/dist/{chunk-5OZTI7TR.js.map → chunk-CKY2QIRR.js.map} +1 -1
  27. package/dist/{chunk-EZQ2D47U.js → chunk-CVEI4RQP.js} +4 -4
  28. package/dist/{chunk-EZQ2D47U.js.map → chunk-CVEI4RQP.js.map} +1 -1
  29. package/dist/{chunk-NK4H3JWN.mjs → chunk-DJHNSBIR.mjs} +63 -100
  30. package/dist/chunk-DJHNSBIR.mjs.map +1 -0
  31. package/dist/{chunk-P4RVGMZL.js → chunk-DTFU3ZTD.js} +5 -33
  32. package/dist/chunk-DTFU3ZTD.js.map +1 -0
  33. package/dist/{chunk-BHOT22QL.js → chunk-EBARYRSA.js} +2 -2
  34. package/dist/{chunk-BHOT22QL.js.map → chunk-EBARYRSA.js.map} +1 -1
  35. package/dist/{chunk-QGLGQXJE.js → chunk-FV42SSLP.js} +10 -10
  36. package/dist/chunk-FV42SSLP.js.map +1 -0
  37. package/dist/{chunk-RT264BD4.mjs → chunk-M4KRQXOT.mjs} +4 -4
  38. package/dist/{chunk-RT264BD4.mjs.map → chunk-M4KRQXOT.mjs.map} +1 -1
  39. package/dist/{chunk-WR55H7DH.mjs → chunk-O4RZCDP2.mjs} +2 -2
  40. package/dist/{chunk-WR55H7DH.mjs.map → chunk-O4RZCDP2.mjs.map} +1 -1
  41. package/dist/{chunk-VYU2FYDE.js → chunk-PM7A5I3X.js} +146 -183
  42. package/dist/chunk-PM7A5I3X.js.map +1 -0
  43. package/dist/{chunk-TDNBO3V7.js → chunk-Q7QPHZOV.js} +74 -74
  44. package/dist/{chunk-TDNBO3V7.js.map → chunk-Q7QPHZOV.js.map} +1 -1
  45. package/dist/{chunk-OW5LSEHU.mjs → chunk-QEACOJXX.mjs} +74 -74
  46. package/dist/chunk-QEACOJXX.mjs.map +1 -0
  47. package/dist/{chunk-N5GQIT7A.mjs → chunk-RMPXGEFL.mjs} +11 -10
  48. package/dist/chunk-RMPXGEFL.mjs.map +1 -0
  49. package/dist/{chunk-QSCWV47U.js → chunk-RPNMDGRA.js} +50 -50
  50. package/dist/chunk-RPNMDGRA.js.map +1 -0
  51. package/dist/{chunk-5TLKFOEL.mjs → chunk-RSCRIDMW.mjs} +275 -313
  52. package/dist/chunk-RSCRIDMW.mjs.map +1 -0
  53. package/dist/{chunk-XGAPZT4J.js → chunk-RUZPOHJW.js} +48 -47
  54. package/dist/chunk-RUZPOHJW.js.map +1 -0
  55. package/dist/{chunk-ULKZGM2T.js → chunk-RWZ2PLMQ.js} +177 -177
  56. package/dist/chunk-RWZ2PLMQ.js.map +1 -0
  57. package/dist/{chunk-UVFWKDRO.mjs → chunk-SCGICCQM.mjs} +15 -15
  58. package/dist/chunk-SCGICCQM.mjs.map +1 -0
  59. package/dist/{chunk-EDI46QA7.mjs → chunk-TRNDFSM6.mjs} +274 -324
  60. package/dist/chunk-TRNDFSM6.mjs.map +1 -0
  61. package/dist/{chunk-LRNVB7MO.js → chunk-ULSG4JLR.js} +6 -6
  62. package/dist/{chunk-LRNVB7MO.js.map → chunk-ULSG4JLR.js.map} +1 -1
  63. package/dist/{chunk-MFF37C24.js → chunk-UPWJRCAD.js} +445 -483
  64. package/dist/chunk-UPWJRCAD.js.map +1 -0
  65. package/dist/{chunk-RBH723MG.mjs → chunk-UUTTS3VV.mjs} +45 -45
  66. package/dist/chunk-UUTTS3VV.mjs.map +1 -0
  67. package/dist/{chunk-MYHBXIO2.js → chunk-VCL5LDS5.js} +42 -41
  68. package/dist/chunk-VCL5LDS5.js.map +1 -0
  69. package/dist/{chunk-PLTLRL2V.mjs → chunk-VPRAESA7.mjs} +3 -3
  70. package/dist/{chunk-PLTLRL2V.mjs.map → chunk-VPRAESA7.mjs.map} +1 -1
  71. package/dist/{chunk-HTODLUKG.js → chunk-VWZ53TE2.js} +12 -12
  72. package/dist/{chunk-HTODLUKG.js.map → chunk-VWZ53TE2.js.map} +1 -1
  73. package/dist/{chunk-3VYD7QL2.mjs → chunk-WX44DAQD.mjs} +9 -9
  74. package/dist/chunk-WX44DAQD.mjs.map +1 -0
  75. package/dist/{chunk-DJ33CSGJ.mjs → chunk-XYMHIZ3K.mjs} +5 -33
  76. package/dist/chunk-XYMHIZ3K.mjs.map +1 -0
  77. package/dist/{chunk-YXN2K77G.js → chunk-Y5VN4SPH.js} +26 -3
  78. package/dist/chunk-Y5VN4SPH.js.map +1 -0
  79. package/dist/{chunk-NQGLSM46.mjs → chunk-Y65X2NHF.mjs} +4 -4
  80. package/dist/{chunk-NQGLSM46.mjs.map → chunk-Y65X2NHF.mjs.map} +1 -1
  81. package/dist/{chunk-YYNGXKUE.mjs → chunk-YHD6SJIN.mjs} +15 -15
  82. package/dist/{chunk-YYNGXKUE.mjs.map → chunk-YHD6SJIN.mjs.map} +1 -1
  83. package/dist/{chunk-7VJ7CMMT.mjs → chunk-ZEFNBGYI.mjs} +26 -3
  84. package/dist/chunk-ZEFNBGYI.mjs.map +1 -0
  85. package/dist/{chunk-WLNY3GVM.mjs → chunk-ZPV7X4ZE.mjs} +7 -7
  86. package/dist/{chunk-WLNY3GVM.mjs.map → chunk-ZPV7X4ZE.mjs.map} +1 -1
  87. package/dist/index.js +709 -709
  88. package/dist/index.mjs +3 -3
  89. package/dist/lib/i18n-context.d.mts +12 -4
  90. package/dist/lib/i18n-context.d.ts +12 -4
  91. package/dist/lib/i18n-context.js +6 -6
  92. package/dist/lib/i18n-context.mjs +1 -1
  93. package/dist/platform/admin/index.js +12 -12
  94. package/dist/platform/admin/index.mjs +6 -6
  95. package/dist/platform/agents-workspace.js +9 -9
  96. package/dist/platform/agents-workspace.mjs +8 -8
  97. package/dist/platform/app-shell.js +5 -5
  98. package/dist/platform/app-shell.mjs +4 -4
  99. package/dist/platform/auth/index.js +29 -29
  100. package/dist/platform/auth/index.mjs +6 -6
  101. package/dist/platform/billing/index.js +7 -7
  102. package/dist/platform/billing/index.mjs +5 -5
  103. package/dist/platform/impersonation/index.js +5 -5
  104. package/dist/platform/impersonation/index.mjs +4 -4
  105. package/dist/platform/index.d.mts +1 -1
  106. package/dist/platform/index.d.ts +1 -1
  107. package/dist/platform/index.js +112 -112
  108. package/dist/platform/index.js.map +1 -1
  109. package/dist/platform/index.mjs +30 -30
  110. package/dist/platform/index.mjs.map +1 -1
  111. package/dist/platform/pages/index.d.mts +12 -2
  112. package/dist/platform/pages/index.d.ts +12 -2
  113. package/dist/platform/pages/index.js +451 -450
  114. package/dist/platform/pages/index.js.map +1 -1
  115. package/dist/platform/pages/index.mjs +51 -50
  116. package/dist/platform/pages/index.mjs.map +1 -1
  117. package/dist/platform/settings/index.js +9 -9
  118. package/dist/platform/settings/index.mjs +8 -8
  119. package/dist/platform/workflow-canvas-shell.js +7 -7
  120. package/dist/platform/workflow-canvas-shell.mjs +6 -6
  121. package/package.json +2 -1
  122. package/dist/chunk-3VYD7QL2.mjs.map +0 -1
  123. package/dist/chunk-5TLKFOEL.mjs.map +0 -1
  124. package/dist/chunk-7VJ7CMMT.mjs.map +0 -1
  125. package/dist/chunk-DJ33CSGJ.mjs.map +0 -1
  126. package/dist/chunk-EDI46QA7.mjs.map +0 -1
  127. package/dist/chunk-FKRIQYRG.js.map +0 -1
  128. package/dist/chunk-ID55ABBB.js.map +0 -1
  129. package/dist/chunk-MFF37C24.js.map +0 -1
  130. package/dist/chunk-MYHBXIO2.js.map +0 -1
  131. package/dist/chunk-N5GQIT7A.mjs.map +0 -1
  132. package/dist/chunk-NK4H3JWN.mjs.map +0 -1
  133. package/dist/chunk-OM5NNUD2.mjs.map +0 -1
  134. package/dist/chunk-OW5LSEHU.mjs.map +0 -1
  135. package/dist/chunk-P4RVGMZL.js.map +0 -1
  136. package/dist/chunk-QGLGQXJE.js.map +0 -1
  137. package/dist/chunk-QSCWV47U.js.map +0 -1
  138. package/dist/chunk-RBH723MG.mjs.map +0 -1
  139. package/dist/chunk-ULKZGM2T.js.map +0 -1
  140. package/dist/chunk-UVFWKDRO.mjs.map +0 -1
  141. package/dist/chunk-VYU2FYDE.js.map +0 -1
  142. package/dist/chunk-XGAPZT4J.js.map +0 -1
  143. package/dist/chunk-YXN2K77G.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { NodeRunningIndicator, WorkflowHandle, NodeCard, NodeCardHeader, NodeCardMeta, NodeInteractiveCard, NodeIconBubble, NodeCardBadge, NodeCardDeleteAction, Workspace, useModalStore, CATEGORY_COLORS, CATEGORY_PILL_COLORS, ICON_MAP, WorkflowCanvas, EXPERIMENTAL_NODE_TYPES, getEntityIcon, getEntityGradient, useWorkflowStore, LOGIC_ICON_MAP, LOGIC_NODE_GRADIENTS, getFrameworkMeta, getCompatibleModels, isModelCompatibleWithFramework, FRAMEWORK_META, isFrameworkCompatibleWithProviders } from './chunk-EDI46QA7.mjs';
3
- import { FormInput, FormSelect, Avatar, ToggleSwitch, HeroBlock, GlassModal, SectionCard, FormTextarea, FormGrid, Input, DynamicIslandConfirm } from './chunk-OW5LSEHU.mjs';
4
- import { useTranslations } from './chunk-7VJ7CMMT.mjs';
5
- import { Badge, Button } from './chunk-WR55H7DH.mjs';
2
+ import { NodeRunningIndicator, WorkflowHandle, NodeCard, NodeCardHeader, NodeCardMeta, NodeInteractiveCard, NodeIconBubble, NodeCardBadge, NodeCardDeleteAction, Workspace, useModalStore, CATEGORY_COLORS, CATEGORY_PILL_COLORS, ICON_MAP, WorkflowCanvas, EXPERIMENTAL_NODE_TYPES, getEntityIcon, getEntityGradient, useWorkflowStore, LOGIC_ICON_MAP, LOGIC_NODE_GRADIENTS, getFrameworkMeta, getCompatibleModels, isModelCompatibleWithFramework, FRAMEWORK_META, isFrameworkCompatibleWithProviders } from './chunk-TRNDFSM6.mjs';
3
+ import { FormInput, FormSelect, Avatar, ToggleSwitch, HeroBlock, GlassModal, SectionCard, FormTextarea, FormGrid, Input, DynamicIslandConfirm } from './chunk-QEACOJXX.mjs';
4
+ import { useTranslations } from './chunk-ZEFNBGYI.mjs';
5
+ import { Badge, Button, IconButton } from './chunk-O4RZCDP2.mjs';
6
6
  import { getAgentTier, createDefaultLogicNodeConfig } from './chunk-G7JQ4OCE.mjs';
7
7
  import { memo, useCallback, useMemo, useState, useEffect, useRef, Children } from 'react';
8
8
  import { Position } from '@xyflow/react';
@@ -499,17 +499,17 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
499
499
  }, [family, models, setSelectedModelId, setTemperature, onChanged]);
500
500
  const currentFamilyEntry = family.find((entry) => selectedModelId.startsWith(entry.prefix)) ?? family[0];
501
501
  const currentModelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId;
502
- return /* @__PURE__ */ 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: [
502
+ return /* @__PURE__ */ 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: [
503
503
  /* @__PURE__ */ jsxs("div", { className: "px-4 pt-3 pb-2", children: [
504
504
  /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
505
- /* @__PURE__ */ jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("agentDrawer.capabilityRating") }),
505
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.capabilityRating") }),
506
506
  /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-1", children: [
507
507
  /* @__PURE__ */ jsx("span", { className: `text-lg font-bold tabular-nums ${tierInfo.color}`, children: elo }),
508
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: "ELO" })
508
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: "ELO" })
509
509
  ] })
510
510
  ] }),
511
511
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
512
- /* @__PURE__ */ 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: [
512
+ /* @__PURE__ */ 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: [
513
513
  /* @__PURE__ */ jsx(
514
514
  "div",
515
515
  {
@@ -520,7 +520,7 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
520
520
  [1200, 1600, 2e3].map((boundary) => /* @__PURE__ */ jsx(
521
521
  "div",
522
522
  {
523
- className: "absolute top-0 h-full w-px bg-gray-400/40 dark:bg-gray-500/40",
523
+ className: "absolute top-0 h-full w-px bg-slate-400/40 dark:bg-slate-500/40",
524
524
  style: { left: `${(boundary - 800) / (2400 - 800) * 100}%` }
525
525
  },
526
526
  boundary
@@ -540,12 +540,12 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
540
540
  "aria-valuemax": 2400,
541
541
  "aria-valuenow": elo,
542
542
  "aria-valuetext": `${elo} ELO \u2014 ${t(`agentDrawer.tier${tierInfo.tierKey.charAt(0).toUpperCase()}${tierInfo.tierKey.slice(1)}`)}`,
543
- 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"
543
+ 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"
544
544
  }
545
545
  ),
546
546
  /* @__PURE__ */ 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)"}; }` })
547
547
  ] }),
548
- /* @__PURE__ */ jsxs("div", { className: "mt-0.5 flex justify-between text-[8px] text-gray-400 dark:text-gray-500", children: [
548
+ /* @__PURE__ */ jsxs("div", { className: "mt-0.5 flex justify-between text-[8px] text-slate-400 dark:text-slate-500", children: [
549
549
  /* @__PURE__ */ jsx("span", { children: "800" }),
550
550
  /* @__PURE__ */ jsx("span", { children: "1200" }),
551
551
  /* @__PURE__ */ jsx("span", { children: "1600" }),
@@ -553,35 +553,35 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
553
553
  /* @__PURE__ */ jsx("span", { children: "2400" })
554
554
  ] })
555
555
  ] }),
556
- /* @__PURE__ */ 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: [
557
- /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
558
- /* @__PURE__ */ jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.model") }),
559
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-semibold text-gray-900 dark:text-white", children: currentModelName })
556
+ /* @__PURE__ */ 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: [
557
+ /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
558
+ /* @__PURE__ */ jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.model") }),
559
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-semibold text-slate-900 dark:text-white", children: currentModelName })
560
560
  ] }),
561
- /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
562
- /* @__PURE__ */ jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.maxTokens") }),
563
- /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: currentFamilyEntry.maxTokens.toLocaleString() })
561
+ /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
562
+ /* @__PURE__ */ jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.maxTokens") }),
563
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: currentFamilyEntry.maxTokens.toLocaleString() })
564
564
  ] }),
565
- /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
566
- /* @__PURE__ */ jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.context") }),
567
- /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: currentFamilyEntry.contextWindow })
565
+ /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
566
+ /* @__PURE__ */ jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.context") }),
567
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: currentFamilyEntry.contextWindow })
568
568
  ] }),
569
- /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
570
- /* @__PURE__ */ jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.temperature") }),
571
- /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: temperature.toFixed(2) })
569
+ /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
570
+ /* @__PURE__ */ jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.temperature") }),
571
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: temperature.toFixed(2) })
572
572
  ] }),
573
- /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
574
- /* @__PURE__ */ jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.autonomy") }),
573
+ /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
574
+ /* @__PURE__ */ jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.autonomy") }),
575
575
  /* @__PURE__ */ jsx("p", { className: `text-xs font-semibold ${tierInfo.color}`, children: t(`agentDrawer.${tierInfo.autonomyKey}`) })
576
576
  ] }),
577
- /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-gray-900/60", children: [
578
- /* @__PURE__ */ jsx("p", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.costPerTask") }),
579
- /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: tierInfo.costPerTask })
577
+ /* @__PURE__ */ jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
578
+ /* @__PURE__ */ jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.costPerTask") }),
579
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: tierInfo.costPerTask })
580
580
  ] })
581
581
  ] }),
582
- /* @__PURE__ */ 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: [
582
+ /* @__PURE__ */ 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: [
583
583
  /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
584
- /* @__PURE__ */ jsx("span", { className: "text-[9px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.autonomyLevel") }),
584
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.autonomyLevel") }),
585
585
  /* @__PURE__ */ jsx("span", { className: `text-[10px] font-semibold ${tierInfo.color}`, children: t(`agentDrawer.${tierInfo.autonomyKey}`) })
586
586
  ] }),
587
587
  /* @__PURE__ */ jsx("div", { className: "flex gap-1", children: [
@@ -596,11 +596,11 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
596
596
  onClick: () => handleAutonomyClick(level),
597
597
  "aria-label": t(`agentDrawer.${labelKey}`),
598
598
  "aria-pressed": level <= tierInfo.autonomyPercent,
599
- 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"}`
599
+ 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"}`
600
600
  },
601
601
  level
602
602
  )) }),
603
- /* @__PURE__ */ jsxs("div", { className: "mt-1 flex justify-between text-[7px] text-gray-400 dark:text-gray-500", children: [
603
+ /* @__PURE__ */ jsxs("div", { className: "mt-1 flex justify-between text-[7px] text-slate-400 dark:text-slate-500", children: [
604
604
  /* @__PURE__ */ jsx("span", { children: t("agentDrawer.autonomyLow") }),
605
605
  /* @__PURE__ */ jsx("span", { children: t("agentDrawer.autonomyMedium") }),
606
606
  /* @__PURE__ */ jsx("span", { children: t("agentDrawer.autonomyHigh") }),
@@ -625,7 +625,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
625
625
  }, [selectedModelId, models, setSelectedFramework, setSelectedModelId, markDirty]);
626
626
  return /* @__PURE__ */ jsxs("div", { className: "space-y-5 p-4", children: [
627
627
  /* @__PURE__ */ jsxs("div", { children: [
628
- /* @__PURE__ */ jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
628
+ /* @__PURE__ */ jsx("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.framework") }),
629
629
  /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
630
630
  const meta = FRAMEWORK_META[key];
631
631
  const isSelected = key === selectedFramework;
@@ -637,7 +637,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
637
637
  type: "button",
638
638
  onClick: () => handleFrameworkChange(key),
639
639
  disabled: !isCompatibleWithProviders,
640
- 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"}`,
640
+ 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"}`,
641
641
  title: !isCompatibleWithProviders ? t("agentDrawer.frameworkIncompatible") : void 0,
642
642
  children: [
643
643
  /* @__PURE__ */ jsx(meta.IconComponent, { className: "h-3.5 w-3.5" }),
@@ -650,9 +650,9 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
650
650
  }) })
651
651
  ] }),
652
652
  /* @__PURE__ */ jsxs("div", { children: [
653
- /* @__PURE__ */ jsxs("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: [
653
+ /* @__PURE__ */ jsxs("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: [
654
654
  t("agentDrawer.model"),
655
- compatibleModels.length < models.length && /* @__PURE__ */ jsxs("span", { className: "ml-1.5 text-[10px] font-normal text-gray-400 dark:text-gray-500", children: [
655
+ compatibleModels.length < models.length && /* @__PURE__ */ jsxs("span", { className: "ml-1.5 text-[10px] font-normal text-slate-400 dark:text-slate-500", children: [
656
656
  "(",
657
657
  compatibleModels.length,
658
658
  "/",
@@ -673,12 +673,12 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
673
673
  setSelectedModelId(model.id);
674
674
  markDirty();
675
675
  },
676
- 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"}`,
676
+ className: `flex items-center gap-2.5 rounded-xl border px-3 py-2.5 text-left transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${!isCompatible ? "cursor-not-allowed border-slate-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-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"}`,
677
677
  children: [
678
- /* @__PURE__ */ jsx(IconComponent, { className: `h-5 w-5 flex-shrink-0 ${isSelected && isCompatible ? color : "text-gray-400 dark:text-gray-500"}` }),
678
+ /* @__PURE__ */ jsx(IconComponent, { className: `h-5 w-5 flex-shrink-0 ${isSelected && isCompatible ? color : "text-slate-400 dark:text-slate-500"}` }),
679
679
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
680
- /* @__PURE__ */ 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 }),
681
- /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: providerLabel })
680
+ /* @__PURE__ */ jsx("p", { className: `truncate text-xs font-semibold ${isSelected && isCompatible ? "text-slate-900 dark:text-white" : "text-slate-600 dark:text-slate-300"}`, children: model.name }),
681
+ /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: providerLabel })
682
682
  ] })
683
683
  ]
684
684
  },
@@ -714,11 +714,11 @@ function PromptTab({
714
714
  return /* @__PURE__ */ jsxs("div", { className: "space-y-5 p-4", children: [
715
715
  /* @__PURE__ */ jsxs("div", { children: [
716
716
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
717
- /* @__PURE__ */ jsx("label", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.temperature") }),
718
- /* @__PURE__ */ jsx("span", { className: "text-sm font-bold tabular-nums text-gray-900 dark:text-white", children: temperature.toFixed(2) })
717
+ /* @__PURE__ */ jsx("label", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.temperature") }),
718
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-bold tabular-nums text-slate-900 dark:text-white", children: temperature.toFixed(2) })
719
719
  ] }),
720
720
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
721
- /* @__PURE__ */ 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__ */ jsx(
721
+ /* @__PURE__ */ 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__ */ jsx(
722
722
  "div",
723
723
  {
724
724
  className: "h-full rounded-full transition-all duration-300 ease-out",
@@ -737,21 +737,21 @@ function PromptTab({
737
737
  "aria-label": t("agentDrawer.temperature"),
738
738
  "aria-valuenow": temperature,
739
739
  "aria-valuetext": `${temperature.toFixed(2)} \u2014 ${isPrecise ? t("agentDrawer.precise") : isBalanced ? t("agentDrawer.balanced") : t("agentDrawer.creative")}`,
740
- 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"
740
+ 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"
741
741
  }
742
742
  ),
743
743
  /* @__PURE__ */ 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)"}; }` })
744
744
  ] }),
745
745
  /* @__PURE__ */ jsxs("div", { className: "mt-1 flex items-center justify-between", children: [
746
- /* @__PURE__ */ jsx("span", { className: `text-[10px] font-medium transition-colors ${isPrecise ? "text-blue-500" : "text-gray-400 dark:text-gray-500"}`, children: t("agentDrawer.precise") }),
747
- /* @__PURE__ */ jsx("span", { className: `text-[10px] font-medium transition-colors ${isBalanced ? "text-purple-500" : "text-gray-400 dark:text-gray-500"}`, children: t("agentDrawer.balanced") }),
748
- /* @__PURE__ */ jsx("span", { className: `text-[10px] font-medium transition-colors ${isCreative ? "text-pink-500" : "text-gray-400 dark:text-gray-500"}`, children: t("agentDrawer.creative") })
746
+ /* @__PURE__ */ jsx("span", { className: `text-[10px] font-medium transition-colors ${isPrecise ? "text-blue-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.precise") }),
747
+ /* @__PURE__ */ jsx("span", { className: `text-[10px] font-medium transition-colors ${isBalanced ? "text-purple-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.balanced") }),
748
+ /* @__PURE__ */ jsx("span", { className: `text-[10px] font-medium transition-colors ${isCreative ? "text-pink-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.creative") })
749
749
  ] })
750
750
  ] }),
751
751
  /* @__PURE__ */ jsxs("div", { children: [
752
752
  /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
753
- /* @__PURE__ */ jsx("label", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.systemPrompt") }),
754
- /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
753
+ /* @__PURE__ */ jsx("label", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.systemPrompt") }),
754
+ /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
755
755
  promptText.length,
756
756
  " chars"
757
757
  ] })
@@ -762,14 +762,14 @@ function PromptTab({
762
762
  value: promptText,
763
763
  onChange: handlePromptChange,
764
764
  rows: 12,
765
- 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",
765
+ 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",
766
766
  placeholder: t("agentDrawer.systemPromptPlaceholder")
767
767
  }
768
768
  )
769
769
  ] }),
770
770
  /* @__PURE__ */ jsxs("div", { children: [
771
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.outputSchema", { _: "Output schema (optional)" }) }),
772
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-[11px] text-gray-400 dark:text-gray-500", children: t("agentDrawer.outputSchemaHint", {
771
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.outputSchema", { _: "Output schema (optional)" }) }),
772
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-[11px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.outputSchemaHint", {
773
773
  _: "Define the structured JSON the model must return. The engine parses + validates and exposes it under `output.parsed`. Invalid output fails the node."
774
774
  }) }),
775
775
  /* @__PURE__ */ jsx(
@@ -788,8 +788,8 @@ function PromptTab({
788
788
  function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
789
789
  if (agentTools.length === 0) {
790
790
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center px-4 py-12 text-center", children: [
791
- /* @__PURE__ */ jsx(CommandLineIcon, { className: "mb-2 h-8 w-8 text-gray-400 dark:text-gray-500" }),
792
- /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: t("agentDrawer.noToolsAvailable") })
791
+ /* @__PURE__ */ jsx(CommandLineIcon, { className: "mb-2 h-8 w-8 text-slate-400 dark:text-slate-500" }),
792
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: t("agentDrawer.noToolsAvailable") })
793
793
  ] });
794
794
  }
795
795
  const sortedTools = [...agentTools].sort((a, b) => {
@@ -800,7 +800,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
800
800
  return 0;
801
801
  });
802
802
  return /* @__PURE__ */ jsxs("div", { className: "space-y-2 p-4", children: [
803
- /* @__PURE__ */ jsx("p", { className: "mb-3 text-xs text-gray-500 dark:text-gray-400", children: t("agentDrawer.toolsDescription") }),
803
+ /* @__PURE__ */ jsx("p", { className: "mb-3 text-xs text-slate-500 dark:text-slate-400", children: t("agentDrawer.toolsDescription") }),
804
804
  sortedTools.map((tool) => {
805
805
  const isEnabled = enabledToolIds.has(tool.agentToolId);
806
806
  const isCompatible = !tool.compatibleFrameworks || tool.compatibleFrameworks.length === 0 || tool.compatibleFrameworks.includes(agentFramework);
@@ -809,26 +809,26 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
809
809
  {
810
810
  type: "button",
811
811
  onClick: () => onToggle(tool.agentToolId),
812
- 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"}`,
812
+ 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"}`,
813
813
  disabled: !isCompatible,
814
814
  children: [
815
- /* @__PURE__ */ 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__ */ jsx(CommandLineIcon, { className: `h-4 w-4 ${isEnabled ? "text-white" : "text-gray-500 dark:text-gray-400"}` }) }),
815
+ /* @__PURE__ */ 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__ */ jsx(CommandLineIcon, { className: `h-4 w-4 ${isEnabled ? "text-white" : "text-slate-500 dark:text-slate-400"}` }) }),
816
816
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
817
817
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
818
- /* @__PURE__ */ jsx("p", { className: `text-sm font-medium ${isEnabled ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-400"}`, children: tool.name }),
819
- !isCompatible && /* @__PURE__ */ 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" })
818
+ /* @__PURE__ */ jsx("p", { className: `text-sm font-medium ${isEnabled ? "text-slate-900 dark:text-white" : "text-slate-600 dark:text-slate-400"}`, children: tool.name }),
819
+ !isCompatible && /* @__PURE__ */ jsx(Badge, { color: "zinc", size: "xs", children: "incompatible" })
820
820
  ] }),
821
- tool.description && /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
821
+ tool.description && /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.description }),
822
822
  tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
823
823
  const meta = getFrameworkMeta(framework);
824
824
  const isCurrentFw = framework === agentFramework;
825
- return /* @__PURE__ */ 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: [
825
+ return /* @__PURE__ */ 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: [
826
826
  /* @__PURE__ */ jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
827
827
  meta.label
828
828
  ] }, framework);
829
829
  }) })
830
830
  ] }),
831
- /* @__PURE__ */ 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__ */ jsx(CheckIcon, { className: "h-3 w-3" }) }),
831
+ /* @__PURE__ */ 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__ */ jsx(CheckIcon, { className: "h-3 w-3" }) }),
832
832
  /* @__PURE__ */ jsx(
833
833
  "div",
834
834
  {
@@ -886,7 +886,7 @@ function EngineTab({
886
886
  const configuredCompatible = compatibleProviders.filter((p) => p.configured);
887
887
  const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
888
888
  const frameworkMeta = getFrameworkMeta(selectedFramework);
889
- 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";
889
+ 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";
890
890
  return /* @__PURE__ */ jsx("div", { className: "p-5", children: /* @__PURE__ */ 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: [
891
891
  /* @__PURE__ */ jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsx(
892
892
  AgentCapabilityCard,
@@ -914,9 +914,9 @@ function EngineTab({
914
914
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
915
915
  /* @__PURE__ */ jsx(CpuChipIcon, { className: "mt-0.5 h-5 w-5 text-indigo-500 dark:text-indigo-400" }),
916
916
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
917
- /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: modelName }),
917
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: modelName }),
918
918
  compatibleProviders.length === 0 ? /* @__PURE__ */ 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__ */ jsxs("div", { className: "mt-1 flex items-center gap-1.5", children: [
919
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-500 dark:text-gray-400", children: t("agentDrawer.servedVia", { _: "via" }) }),
919
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-500 dark:text-slate-400", children: t("agentDrawer.servedVia", { _: "via" }) }),
920
920
  /* @__PURE__ */ jsx(
921
921
  "select",
922
922
  {
@@ -925,22 +925,17 @@ function EngineTab({
925
925
  onSelectProvider(event.target.value);
926
926
  markDirty();
927
927
  },
928
- 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",
928
+ "aria-label": t("agentDrawer.servedVia", { _: "via" }),
929
+ 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",
929
930
  children: configuredCompatible.map((p) => /* @__PURE__ */ jsx("option", { value: p.id, children: p.name }, p.id))
930
931
  }
931
932
  ),
932
- effectiveProvider && /* @__PURE__ */ 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: [
933
- /* @__PURE__ */ jsx("span", { className: `h-1 w-1 rounded-full ${effectiveProvider.configured ? "bg-emerald-500" : "bg-amber-500"}` }),
934
- effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" })
935
- ] })
936
- ] }) : /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-gray-500 dark:text-gray-400", children: [
933
+ effectiveProvider && /* @__PURE__ */ jsx(Badge, { color: effectiveProvider.configured ? "emerald" : "amber", size: "xs", children: effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) })
934
+ ] }) : /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-slate-500 dark:text-slate-400", children: [
937
935
  t("agentDrawer.servedVia", { _: "via" }),
938
936
  " ",
939
937
  effectiveProvider?.name ?? family,
940
- effectiveProvider && /* @__PURE__ */ 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: [
941
- /* @__PURE__ */ jsx("span", { className: `h-1 w-1 rounded-full ${effectiveProvider.configured ? "bg-emerald-500" : "bg-amber-500"}` }),
942
- effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" })
943
- ] })
938
+ effectiveProvider && /* @__PURE__ */ jsx("span", { className: "ml-2 inline-flex", children: /* @__PURE__ */ jsx(Badge, { color: effectiveProvider.configured ? "emerald" : "amber", size: "xs", children: effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) }) })
944
939
  ] })
945
940
  ] })
946
941
  ] }),
@@ -950,13 +945,13 @@ function EngineTab({
950
945
  ] })
951
946
  ] }) }),
952
947
  /* @__PURE__ */ 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: [
953
- /* @__PURE__ */ 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: [
948
+ /* @__PURE__ */ 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: [
954
949
  /* @__PURE__ */ jsx(Cog6ToothIcon, { className: "h-3 w-3" }),
955
950
  /* @__PURE__ */ jsx("span", { children: t("agentDrawer.overrideDerivation", { _: "Override \xB7 ajustes avan\xE7ados" }) }),
956
- /* @__PURE__ */ jsx("span", { className: "ml-auto font-normal text-gray-400 group-open:hidden", children: "\u25BE" }),
957
- /* @__PURE__ */ jsx("span", { className: "ml-auto hidden font-normal text-gray-400 group-open:inline", children: "\u25B4" })
951
+ /* @__PURE__ */ jsx("span", { className: "ml-auto font-normal text-slate-400 group-open:hidden", children: "\u25BE" }),
952
+ /* @__PURE__ */ jsx("span", { className: "ml-auto hidden font-normal text-slate-400 group-open:inline", children: "\u25B4" })
958
953
  ] }),
959
- /* @__PURE__ */ 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." }) }),
954
+ /* @__PURE__ */ 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." }) }),
960
955
  /* @__PURE__ */ jsxs("div", { className: "mt-3 space-y-4", children: [
961
956
  /* @__PURE__ */ jsx(
962
957
  ConfigTab,
@@ -972,13 +967,13 @@ function EngineTab({
972
967
  }
973
968
  ),
974
969
  /* @__PURE__ */ jsxs("div", { children: [
975
- /* @__PURE__ */ 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" }) }),
970
+ /* @__PURE__ */ 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" }) }),
976
971
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-2", children: [
977
972
  { key: "max", labelKey: "agentDrawer.maxOutputTokens", label: "Max output", value: maxOutputTokens, setter: setMaxOutputTokens, step: 1, min: 1, max: 32768 },
978
973
  { key: "topP", labelKey: "agentDrawer.topP", label: "Top-p", value: topP, setter: setTopP, step: 0.05, min: 0, max: 1 },
979
974
  { key: "topK", labelKey: "agentDrawer.topK", label: "Top-k", value: topK, setter: setTopK, step: 1, min: 0, max: 500 }
980
975
  ].map((field) => /* @__PURE__ */ jsxs("div", { className: `${inputCard} flex flex-col items-center !py-2`, children: [
981
- /* @__PURE__ */ jsx("span", { className: "text-[8px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t(field.labelKey, { _: field.label }) }),
976
+ /* @__PURE__ */ jsx("span", { className: "text-[8px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t(field.labelKey, { _: field.label }) }),
982
977
  /* @__PURE__ */ jsx(
983
978
  "input",
984
979
  {
@@ -991,14 +986,14 @@ function EngineTab({
991
986
  field.setter(Number(event.target.value) || 0);
992
987
  markDirty();
993
988
  },
994
- className: "w-full bg-transparent text-center text-sm font-semibold tabular-nums text-gray-900 outline-none dark:text-white"
989
+ className: "w-full bg-transparent text-center text-sm font-semibold tabular-nums text-slate-900 outline-none dark:text-white"
995
990
  }
996
991
  )
997
992
  ] }, field.key)) })
998
993
  ] }),
999
994
  modelProviders.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
1000
995
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
1001
- /* @__PURE__ */ jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("agentDrawer.providerCredentials", { _: "Credenciais do provedor" }) }),
996
+ /* @__PURE__ */ jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.providerCredentials", { _: "Credenciais do provedor" }) }),
1002
997
  /* @__PURE__ */ jsx(
1003
998
  "a",
1004
999
  {
@@ -1011,17 +1006,17 @@ function EngineTab({
1011
1006
  /* @__PURE__ */ jsx("div", { className: "space-y-1", children: modelProviders.map((provider) => /* @__PURE__ */ jsxs(
1012
1007
  "div",
1013
1008
  {
1014
- 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]",
1009
+ 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]",
1015
1010
  children: [
1016
- /* @__PURE__ */ jsx(KeyIcon, { className: "h-3 w-3 shrink-0 text-gray-500 dark:text-gray-400" }),
1017
- /* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold text-gray-900 dark:text-white", children: provider.name }),
1018
- /* @__PURE__ */ 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" }) }),
1019
- provider.apiKeyMasked && /* @__PURE__ */ jsx("span", { className: "ml-auto truncate font-mono text-[9px] text-gray-400 dark:text-gray-500", title: provider.credentialRef, children: provider.apiKeyMasked })
1011
+ /* @__PURE__ */ jsx(KeyIcon, { className: "h-3 w-3 shrink-0 text-slate-500 dark:text-slate-400" }),
1012
+ /* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold text-slate-900 dark:text-white", children: provider.name }),
1013
+ /* @__PURE__ */ jsx(Badge, { color: provider.configured ? "emerald" : "amber", size: "xs", children: provider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) }),
1014
+ provider.apiKeyMasked && /* @__PURE__ */ jsx("span", { className: "ml-auto truncate font-mono text-[9px] text-slate-400 dark:text-slate-500", title: provider.credentialRef, children: provider.apiKeyMasked })
1020
1015
  ]
1021
1016
  },
1022
1017
  provider.id
1023
1018
  )) }),
1024
- /* @__PURE__ */ 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." }) })
1019
+ /* @__PURE__ */ 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." }) })
1025
1020
  ] })
1026
1021
  ] })
1027
1022
  ] })
@@ -1175,7 +1170,7 @@ function AgentModal({ onSaved, onPersist }) {
1175
1170
  if (!agent) return null;
1176
1171
  const sections = [];
1177
1172
  const effectiveAvatarUrl = avatarUrl || agent.avatar;
1178
- 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";
1173
+ 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";
1179
1174
  const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
1180
1175
  const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
1181
1176
  const avatarNode = /* @__PURE__ */ jsx(
@@ -1449,9 +1444,9 @@ function ConfigSection({ title, icon: Icon, defaultOpen = true, children }) {
1449
1444
  "aria-expanded": open,
1450
1445
  className: "flex w-full items-center gap-2 px-4 py-2.5 text-left hover:bg-white/5",
1451
1446
  children: [
1452
- open ? /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-3 w-3 text-gray-400" }) : /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-3 w-3 text-gray-400" }),
1453
- /* @__PURE__ */ jsx(Icon, { className: "h-3 w-3 text-gray-400" }),
1454
- /* @__PURE__ */ jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: title })
1447
+ open ? /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-3 w-3 text-slate-400" }) : /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-3 w-3 text-slate-400" }),
1448
+ /* @__PURE__ */ jsx(Icon, { className: "h-3 w-3 text-slate-400" }),
1449
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: title })
1455
1450
  ]
1456
1451
  }
1457
1452
  ),
@@ -1518,22 +1513,15 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1518
1513
  const footer = /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1519
1514
  /* @__PURE__ */ jsx("div", { role: "status", "aria-live": "polite", className: "text-xs", children: dirty ? /* @__PURE__ */ jsx("span", { className: "text-amber-500 dark:text-amber-400", children: t("subworkflowDrawer.unsavedChanges") }) : /* @__PURE__ */ jsx("span", { className: "text-emerald-500 dark:text-emerald-400", children: t("subworkflowDrawer.saved") }) }),
1520
1515
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
1516
+ /* @__PURE__ */ jsx(Button, { type: "button", outline: true, size: "sm", onClick: closeModal, children: t("subworkflowDrawer.cancel") }),
1521
1517
  /* @__PURE__ */ jsx(
1522
- "button",
1523
- {
1524
- type: "button",
1525
- onClick: closeModal,
1526
- 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",
1527
- children: t("subworkflowDrawer.cancel")
1528
- }
1529
- ),
1530
- /* @__PURE__ */ jsx(
1531
- "button",
1518
+ Button,
1532
1519
  {
1533
1520
  type: "button",
1521
+ color: "ios-teal",
1522
+ size: "sm",
1534
1523
  onClick: handleSave,
1535
- disabled: isCreateMode && !name.trim(),
1536
- 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"}`,
1524
+ disabled: isCreateMode && !name.trim() || !dirty,
1537
1525
  children: isCreateMode ? t("subworkflowDrawer.create") : t("subworkflowDrawer.save")
1538
1526
  }
1539
1527
  )
@@ -1555,7 +1543,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1555
1543
  children: /* @__PURE__ */ jsxs("div", { className: "flex h-[80vh] min-h-[600px]", children: [
1556
1544
  /* @__PURE__ */ jsxs("div", { className: "flex w-72 flex-shrink-0 flex-col overflow-y-auto border-r border-white/10", children: [
1557
1545
  isCreateMode ? /* @__PURE__ */ 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: [
1558
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("subworkflowDrawer.name") }),
1546
+ /* @__PURE__ */ jsx("label", { className: "mb-1 block text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("subworkflowDrawer.name") }),
1559
1547
  /* @__PURE__ */ jsx(
1560
1548
  "input",
1561
1549
  {
@@ -1564,7 +1552,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1564
1552
  onChange: (event) => setName(event.target.value),
1565
1553
  placeholder: t("subworkflowDrawer.namePlaceholder"),
1566
1554
  autoFocus: true,
1567
- 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"
1555
+ 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"
1568
1556
  }
1569
1557
  ),
1570
1558
  /* @__PURE__ */ jsx("div", { className: "mt-3 flex flex-wrap gap-1", children: ["external", "market", "data", "communication", "analytics"].map((cat) => /* @__PURE__ */ jsx(
@@ -1572,7 +1560,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1572
1560
  {
1573
1561
  type: "button",
1574
1562
  onClick: () => setCategory(cat),
1575
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${CATEGORY_PILL_COLORS[cat] ?? 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"}`,
1563
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${CATEGORY_PILL_COLORS[cat] ?? 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"}`,
1576
1564
  children: cat
1577
1565
  },
1578
1566
  cat
@@ -1580,7 +1568,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1580
1568
  ] }) : /* @__PURE__ */ 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__ */ jsxs("div", { className: "flex items-center gap-3", children: [
1581
1569
  /* @__PURE__ */ 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__ */ jsx(IconComponent, { className: "h-5 w-5 text-white" }) }),
1582
1570
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
1583
- /* @__PURE__ */ jsx("h3", { className: "truncate text-sm font-bold text-gray-900 dark:text-white", children: name }),
1571
+ /* @__PURE__ */ jsx("h3", { className: "truncate text-sm font-bold text-slate-900 dark:text-white", children: name }),
1584
1572
  /* @__PURE__ */ jsxs("div", { className: "mt-1 flex flex-wrap gap-1", children: [
1585
1573
  /* @__PURE__ */ 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") }),
1586
1574
  /* @__PURE__ */ jsx("span", { className: `inline-flex items-center rounded-full px-1.5 py-0.5 text-[8px] font-medium ${categoryPill}`, children: category })
@@ -1592,7 +1580,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1592
1580
  type: "button",
1593
1581
  onClick: () => onMaximize(tool.toolId),
1594
1582
  title: t("subworkflowDrawer.openFullEditor"),
1595
- 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",
1583
+ className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-slate-400 transition-colors hover:bg-white/10 hover:text-teal-500 dark:hover:text-teal-400",
1596
1584
  children: /* @__PURE__ */ jsx(ArrowsPointingOutIcon, { className: "h-4 w-4" })
1597
1585
  }
1598
1586
  )
@@ -1604,19 +1592,19 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1604
1592
  onChange: (event) => setDescription(event.target.value),
1605
1593
  rows: 2,
1606
1594
  placeholder: t("subworkflowDrawer.descriptionPlaceholder"),
1607
- 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"
1595
+ 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"
1608
1596
  }
1609
1597
  ) }),
1610
- /* @__PURE__ */ jsx(ConfigSection, { title: t("subworkflowDrawer.inputVariables"), icon: ArrowsPointingInIcon, children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: inputVariables.length > 0 ? inputVariables.map((variable) => /* @__PURE__ */ jsx(VariableChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1611
- /* @__PURE__ */ jsx(ConfigSection, { title: t("subworkflowDrawer.outputVariables"), icon: ArrowsPointingOutIcon, children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: outputVariables.length > 0 ? outputVariables.map((variable) => /* @__PURE__ */ jsx(OutputChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1598
+ /* @__PURE__ */ jsx(ConfigSection, { title: t("subworkflowDrawer.inputVariables"), icon: ArrowsPointingInIcon, children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: inputVariables.length > 0 ? inputVariables.map((variable) => /* @__PURE__ */ jsx(VariableChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1599
+ /* @__PURE__ */ jsx(ConfigSection, { title: t("subworkflowDrawer.outputVariables"), icon: ArrowsPointingOutIcon, children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: outputVariables.length > 0 ? outputVariables.map((variable) => /* @__PURE__ */ jsx(OutputChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("subworkflowDrawer.noVariables") }) }) }),
1612
1600
  /* @__PURE__ */ jsxs(ConfigSection, { title: t("subworkflowDrawer.executionSettings"), icon: BoltIcon, defaultOpen: false, children: [
1613
1601
  /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
1614
1602
  /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
1615
- /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-[10px] text-gray-600 dark:text-gray-400", children: [
1603
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-[10px] text-slate-600 dark:text-slate-400", children: [
1616
1604
  /* @__PURE__ */ jsx(ClockIcon, { className: "h-3 w-3" }),
1617
1605
  t("subworkflowDrawer.timeout")
1618
1606
  ] }),
1619
- /* @__PURE__ */ jsxs("span", { className: "text-[10px] font-bold tabular-nums text-gray-900 dark:text-white", children: [
1607
+ /* @__PURE__ */ jsxs("span", { className: "text-[10px] font-bold tabular-nums text-slate-900 dark:text-white", children: [
1620
1608
  (timeoutMs / 1e3).toFixed(0),
1621
1609
  "s"
1622
1610
  ] })
@@ -1635,21 +1623,21 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1635
1623
  "aria-valuemax": 30,
1636
1624
  "aria-valuenow": timeoutMs / 1e3,
1637
1625
  "aria-valuetext": `${(timeoutMs / 1e3).toFixed(0)} seconds`,
1638
- 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"
1626
+ 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"
1639
1627
  }
1640
1628
  )
1641
1629
  ] }),
1642
1630
  /* @__PURE__ */ jsxs("div", { children: [
1643
1631
  /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
1644
- /* @__PURE__ */ jsx("label", { className: "text-[10px] text-gray-600 dark:text-gray-400", children: t("subworkflowDrawer.retries") }),
1645
- /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold tabular-nums text-gray-900 dark:text-white", children: retryCount })
1632
+ /* @__PURE__ */ jsx("label", { className: "text-[10px] text-slate-600 dark:text-slate-400", children: t("subworkflowDrawer.retries") }),
1633
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold tabular-nums text-slate-900 dark:text-white", children: retryCount })
1646
1634
  ] }),
1647
1635
  /* @__PURE__ */ jsx("div", { className: "flex gap-1", children: [0, 1, 2, 3].map((count) => /* @__PURE__ */ jsx(
1648
1636
  "button",
1649
1637
  {
1650
1638
  type: "button",
1651
1639
  onClick: () => setRetryCount(count),
1652
- 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"}`,
1640
+ 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"}`,
1653
1641
  children: count
1654
1642
  },
1655
1643
  count
@@ -1728,15 +1716,7 @@ function PipelineSettingsModal({ onSave }) {
1728
1716
  }
1729
1717
  };
1730
1718
  const footer = /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
1731
- /* @__PURE__ */ jsx(
1732
- "button",
1733
- {
1734
- type: "button",
1735
- onClick: closeModal,
1736
- 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",
1737
- children: t("cancel")
1738
- }
1739
- ),
1719
+ /* @__PURE__ */ jsx(Button, { type: "button", outline: true, size: "sm", onClick: closeModal, children: t("cancel") }),
1740
1720
  /* @__PURE__ */ jsxs(
1741
1721
  Button,
1742
1722
  {
@@ -1810,12 +1790,12 @@ function PipelineSettingsModal({ onSave }) {
1810
1790
  })
1811
1791
  }
1812
1792
  ),
1813
- /* @__PURE__ */ 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: [
1814
- /* @__PURE__ */ jsx("legend", { className: "px-1 text-xs font-medium text-gray-600 dark:text-gray-300", children: t("pipelineLifecycle", { _: "Lifecycle" }) }),
1815
- /* @__PURE__ */ jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-gray-700 dark:text-gray-200", children: [
1793
+ /* @__PURE__ */ jsxs("fieldset", { className: "space-y-2 rounded-xl liquid-surface p-3", children: [
1794
+ /* @__PURE__ */ jsx("legend", { className: "px-1 text-xs font-medium text-slate-600 dark:text-slate-300", children: t("pipelineLifecycle", { _: "Lifecycle" }) }),
1795
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-slate-700 dark:text-slate-200", children: [
1816
1796
  /* @__PURE__ */ jsxs("span", { children: [
1817
1797
  t("pipelineIsDraft", { _: "Draft mode" }),
1818
- /* @__PURE__ */ 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." }) })
1798
+ /* @__PURE__ */ 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." }) })
1819
1799
  ] }),
1820
1800
  /* @__PURE__ */ jsx(
1821
1801
  "input",
@@ -1823,14 +1803,14 @@ function PipelineSettingsModal({ onSave }) {
1823
1803
  type: "checkbox",
1824
1804
  checked: isDraft,
1825
1805
  onChange: (event) => setIsDraft(event.target.checked),
1826
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
1806
+ className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1"
1827
1807
  }
1828
1808
  )
1829
1809
  ] }),
1830
- /* @__PURE__ */ jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-gray-700 dark:text-gray-200", children: [
1810
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-slate-700 dark:text-slate-200", children: [
1831
1811
  /* @__PURE__ */ jsxs("span", { children: [
1832
1812
  t("pipelineIsActive", { _: "Active" }),
1833
- /* @__PURE__ */ 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." }) })
1813
+ /* @__PURE__ */ 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." }) })
1834
1814
  ] }),
1835
1815
  /* @__PURE__ */ jsx(
1836
1816
  "input",
@@ -1838,7 +1818,7 @@ function PipelineSettingsModal({ onSave }) {
1838
1818
  type: "checkbox",
1839
1819
  checked: isActive,
1840
1820
  onChange: (event) => setIsActive(event.target.checked),
1841
- className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
1821
+ className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1"
1842
1822
  }
1843
1823
  )
1844
1824
  ] })
@@ -1918,15 +1898,7 @@ function RunReplayModal({
1918
1898
  /* @__PURE__ */ jsx("code", { children: workflowId.slice(0, 8) })
1919
1899
  ] }),
1920
1900
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
1921
- /* @__PURE__ */ jsx(
1922
- "button",
1923
- {
1924
- type: "button",
1925
- onClick: onClose,
1926
- 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",
1927
- children: t("cancel")
1928
- }
1929
- ),
1901
+ /* @__PURE__ */ jsx(Button, { type: "button", outline: true, size: "sm", onClick: onClose, children: t("cancel") }),
1930
1902
  /* @__PURE__ */ jsxs(
1931
1903
  Button,
1932
1904
  {
@@ -1994,15 +1966,7 @@ function RowEditor({
1994
1966
  /* @__PURE__ */ jsx("span", { className: "font-mono text-xs text-gray-700 dark:text-gray-200", children: row.key }),
1995
1967
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
1996
1968
  /* @__PURE__ */ jsx(Badge, { color: "zinc", size: "xs", className: "uppercase tracking-wider", children: row.kind }),
1997
- row.touched && /* @__PURE__ */ jsx(
1998
- "button",
1999
- {
2000
- type: "button",
2001
- onClick: onReset,
2002
- className: "text-[11px] text-indigo-600 hover:text-indigo-500 dark:text-indigo-400",
2003
- children: "reset"
2004
- }
2005
- )
1969
+ row.touched && /* @__PURE__ */ jsx(Button, { type: "button", plain: true, size: "xs", onClick: onReset, children: "reset" })
2006
1970
  ] })
2007
1971
  ] }),
2008
1972
  row.kind === "boolean" ? /* @__PURE__ */ jsxs(
@@ -2999,7 +2963,7 @@ function SectionHeader({ icon, title, colorClass, count, onAdd, addLabel, isOpen
2999
2963
  /* @__PURE__ */ jsx(
3000
2964
  ChevronDownIcon,
3001
2965
  {
3002
- className: `h-3 w-3 text-gray-400 transition-transform duration-200 ${isOpen ? "" : "-rotate-90"}`
2966
+ className: `h-3 w-3 text-slate-400 transition-transform duration-200 ${isOpen ? "" : "-rotate-90"}`
3003
2967
  }
3004
2968
  )
3005
2969
  ]
@@ -3020,7 +2984,7 @@ function SectionHeader({ icon, title, colorClass, count, onAdd, addLabel, isOpen
3020
2984
  function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count, onAdd, addLabel, children }) {
3021
2985
  const [isOpen, setIsOpen] = useState(defaultOpen);
3022
2986
  const safeChildren = Children.toArray(children);
3023
- return /* @__PURE__ */ jsxs("div", { className: "border-t border-gray-200/40 dark:border-white/5", children: [
2987
+ return /* @__PURE__ */ jsxs("div", { className: "border-t border-slate-200/40 dark:border-white/5", children: [
3024
2988
  /* @__PURE__ */ jsx(
3025
2989
  SectionHeader,
3026
2990
  {
@@ -3039,7 +3003,7 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
3039
3003
  }
3040
3004
  function LogicNodeItemCard({ item, translationFunction }) {
3041
3005
  const IconComponent = LOGIC_ICON_MAP[item.nodeType];
3042
- const gradient = LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
3006
+ const gradient = LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-slate-400 to-slate-500";
3043
3007
  const defaultConfig = createDefaultLogicNodeConfig(item.nodeType);
3044
3008
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
3045
3009
  return /* @__PURE__ */ jsxs(
@@ -3051,8 +3015,8 @@ function LogicNodeItemCard({ item, translationFunction }) {
3051
3015
  children: [
3052
3016
  /* @__PURE__ */ jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${gradient} shadow-sm`, children: IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "h-3.5 w-3.5 text-white" }) }),
3053
3017
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3054
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: translationFunction(item.nameKey) }),
3055
- /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: translationFunction(item.descriptionKey) })
3018
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: translationFunction(item.nameKey) }),
3019
+ /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: translationFunction(item.descriptionKey) })
3056
3020
  ] })
3057
3021
  ]
3058
3022
  }
@@ -3132,13 +3096,13 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3132
3096
  function renderLogicSubcategory(subcategory, items, isFirst) {
3133
3097
  if (items.length === 0) return null;
3134
3098
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
3135
- /* @__PURE__ */ 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]) }),
3099
+ /* @__PURE__ */ 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]) }),
3136
3100
  items.map((item) => /* @__PURE__ */ jsx(LogicNodeItemCard, { item, translationFunction: t }, item.nodeType))
3137
3101
  ] }, subcategory);
3138
3102
  }
3139
- return /* @__PURE__ */ 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: [
3103
+ return /* @__PURE__ */ 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: [
3140
3104
  /* @__PURE__ */ jsxs("div", { className: "p-4 pb-2", children: [
3141
- /* @__PURE__ */ jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: t("palette") }),
3105
+ /* @__PURE__ */ jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("palette") }),
3142
3106
  /* @__PURE__ */ jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsx(
3143
3107
  "input",
3144
3108
  {
@@ -3146,7 +3110,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3146
3110
  value: searchQuery,
3147
3111
  onChange: (event) => setSearchQuery(event.target.value),
3148
3112
  placeholder: t("searchPalette"),
3149
- 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"
3113
+ 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"
3150
3114
  }
3151
3115
  ) })
3152
3116
  ] }),
@@ -3159,7 +3123,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3159
3123
  onAdd: onCreateAgent,
3160
3124
  addLabel: t("newAgent"),
3161
3125
  count: filteredAgents.length,
3162
- children: filteredAgents.length === 0 && filteredAgentTools.length === 0 && filteredProviders.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noAgents") }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3126
+ children: filteredAgents.length === 0 && filteredAgentTools.length === 0 && filteredProviders.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noAgents") }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3163
3127
  filteredAgents.map((agent) => /* @__PURE__ */ jsxs(
3164
3128
  "div",
3165
3129
  {
@@ -3168,24 +3132,24 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3168
3132
  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",
3169
3133
  children: [
3170
3134
  /* @__PURE__ */ jsxs("div", { className: "relative flex-shrink-0", children: [
3171
- agent.avatar ? /* @__PURE__ */ 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__ */ 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__ */ jsx(CpuChipIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3172
- /* @__PURE__ */ 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__ */ jsx(CpuChipIcon, { className: "h-2 w-2 text-white" }) })
3135
+ agent.avatar ? /* @__PURE__ */ 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__ */ 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__ */ jsx(CpuChipIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3136
+ /* @__PURE__ */ 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__ */ jsx(CpuChipIcon, { className: "h-2 w-2 text-white" }) })
3173
3137
  ] }),
3174
3138
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3175
3139
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
3176
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: agent.name }),
3140
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: agent.name }),
3177
3141
  (() => {
3178
3142
  const tier = getAgentTier(Number(agent.elo ?? 0));
3179
3143
  return /* @__PURE__ */ 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)}`) });
3180
3144
  })()
3181
3145
  ] }),
3182
- /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: agent.role ?? agent.agentId })
3146
+ /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: agent.role ?? agent.agentId })
3183
3147
  ] })
3184
3148
  ]
3185
3149
  },
3186
3150
  agent.agentId
3187
3151
  )),
3188
- filteredProviders.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-2 border-t border-gray-200/40 pt-2 dark:border-white/5", children: [
3152
+ filteredProviders.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-2 border-t border-slate-200/40 pt-2 dark:border-white/5", children: [
3189
3153
  /* @__PURE__ */ 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") }),
3190
3154
  filteredProviders.map((provider) => {
3191
3155
  const providerLogo = PROVIDER_LOGOS3[provider.provider];
@@ -3209,13 +3173,13 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3209
3173
  children: [
3210
3174
  providerLogo ? /* @__PURE__ */ jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/10 p-1", children: /* @__PURE__ */ jsx("img", { src: providerLogo, alt: "", className: "h-4 w-4 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ 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__ */ jsx(KeyIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3211
3175
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3212
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: provider.name }),
3213
- /* @__PURE__ */ jsxs("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: [
3176
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: provider.name }),
3177
+ /* @__PURE__ */ jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
3214
3178
  provider.modelCount,
3215
3179
  " models"
3216
3180
  ] })
3217
3181
  ] }),
3218
- provider.configured ? /* @__PURE__ */ 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__ */ 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") })
3182
+ provider.configured ? /* @__PURE__ */ jsx(Badge, { color: "emerald", size: "xs", children: t("configured") }) : /* @__PURE__ */ jsx(Badge, { color: "amber", size: "xs", children: t("setup") })
3219
3183
  ]
3220
3184
  },
3221
3185
  provider.id
@@ -3233,7 +3197,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3233
3197
  colorClass: "text-teal-600 dark:text-teal-400",
3234
3198
  onAdd: onCreateTool,
3235
3199
  addLabel: t("newSubworkflow"),
3236
- children: filteredTools.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noSubworkflows") }) : filteredTools.map((tool) => /* @__PURE__ */ jsxs(
3200
+ children: filteredTools.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noSubworkflows") }) : filteredTools.map((tool) => /* @__PURE__ */ jsxs(
3237
3201
  "div",
3238
3202
  {
3239
3203
  draggable: true,
@@ -3242,8 +3206,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3242
3206
  children: [
3243
3207
  /* @__PURE__ */ 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__ */ jsx(ArrowPathRoundedSquareIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3244
3208
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3245
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: tool.name }),
3246
- /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
3209
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: tool.name }),
3210
+ /* @__PURE__ */ jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.category })
3247
3211
  ] }),
3248
3212
  /* @__PURE__ */ jsx(
3249
3213
  ToggleSwitch,
@@ -3271,7 +3235,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3271
3235
  colorClass: "text-violet-600 dark:text-violet-400",
3272
3236
  onAdd: onCreateRule,
3273
3237
  addLabel: t("newRule"),
3274
- children: filteredRules.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noRules") }) : filteredRules.map((rule) => /* @__PURE__ */ jsxs(
3238
+ children: filteredRules.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noRules") }) : filteredRules.map((rule) => /* @__PURE__ */ jsxs(
3275
3239
  "div",
3276
3240
  {
3277
3241
  draggable: true,
@@ -3280,8 +3244,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3280
3244
  children: [
3281
3245
  /* @__PURE__ */ 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__ */ jsx(AdjustmentsHorizontalIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3282
3246
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3283
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: rule.name }),
3284
- /* @__PURE__ */ jsxs("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: [
3247
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: rule.name }),
3248
+ /* @__PURE__ */ jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
3285
3249
  "P",
3286
3250
  String(rule.priority ?? "")
3287
3251
  ] })
@@ -3313,7 +3277,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3313
3277
  count: filteredEntityTypes.length,
3314
3278
  onAdd: onCreateDatasource,
3315
3279
  addLabel: t("newDataSource"),
3316
- children: filteredEntityTypes.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: t("noDataSources") }) : filteredEntityTypes.map((entity) => {
3280
+ children: filteredEntityTypes.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noDataSources") }) : filteredEntityTypes.map((entity) => {
3317
3281
  const defaultConfig = JSON.stringify({
3318
3282
  type: "entity",
3319
3283
  entityMasterId: entity.id,
@@ -3334,15 +3298,15 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3334
3298
  children: [
3335
3299
  dsLogo ? /* @__PURE__ */ jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/10 p-1", children: /* @__PURE__ */ jsx("img", { src: dsLogo, alt: "", className: "h-4 w-4 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${entityGradient} shadow-sm`, children: /* @__PURE__ */ jsx(EntityIcon, { className: "h-3.5 w-3.5 text-white" }) }),
3336
3300
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3337
- /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: entity.label }),
3338
- /* @__PURE__ */ jsxs("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: [
3301
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: entity.label }),
3302
+ /* @__PURE__ */ jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
3339
3303
  entity.fieldCount,
3340
3304
  " ",
3341
3305
  t("entityFieldsLabel")
3342
3306
  ] })
3343
3307
  ] }),
3344
3308
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3345
- /* @__PURE__ */ 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" }),
3309
+ /* @__PURE__ */ jsx(Badge, { color: "zinc", size: "xs", children: "Read only" }),
3346
3310
  /* @__PURE__ */ jsx(
3347
3311
  ToggleSwitch,
3348
3312
  {
@@ -3368,7 +3332,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3368
3332
  {
3369
3333
  title: t("logicSection"),
3370
3334
  icon: /* @__PURE__ */ jsx(BoltIcon, { className: "h-3 w-3" }),
3371
- colorClass: "text-gray-600 dark:text-gray-400",
3335
+ colorClass: "text-slate-600 dark:text-slate-400",
3372
3336
  count: filteredLogicItems.length,
3373
3337
  children: [
3374
3338
  renderLogicSubcategory("control_flow", groupedLogicItems.control_flow, true),
@@ -3454,19 +3418,17 @@ function WorkflowListBar({
3454
3418
  children: /* @__PURE__ */ jsx(ArrowPathRoundedSquareIcon, { className: "h-3.5 w-3.5" })
3455
3419
  }
3456
3420
  ),
3457
- workflows.length > 1 && /* @__PURE__ */ jsx(
3458
- "button",
3421
+ workflows.length > 1 && /* @__PURE__ */ jsx("div", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsx(
3422
+ IconButton,
3459
3423
  {
3460
- type: "button",
3461
- onClick: (event) => {
3462
- event.stopPropagation();
3463
- onDelete(workflow.id, workflow.name);
3464
- },
3465
- 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",
3466
- "aria-label": `${tWorkflow("deleteWorkflow")} ${workflow.name}`,
3467
- children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-3.5 w-3.5" })
3424
+ label: `${tWorkflow("deleteWorkflow")} ${workflow.name}`,
3425
+ variant: "ghost",
3426
+ size: "sm",
3427
+ destructive: true,
3428
+ onClick: () => onDelete(workflow.id, workflow.name),
3429
+ icon: /* @__PURE__ */ jsx(TrashIcon, { className: "h-3.5 w-3.5" })
3468
3430
  }
3469
- )
3431
+ ) })
3470
3432
  ] })
3471
3433
  ]
3472
3434
  },
@@ -3537,22 +3499,23 @@ function VersionHistoryPanel({
3537
3499
  return /* @__PURE__ */ jsxs(
3538
3500
  "div",
3539
3501
  {
3540
- 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",
3502
+ 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",
3541
3503
  "data-testid": "version-history-panel",
3542
3504
  children: [
3543
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-700", children: [
3505
+ /* @__PURE__ */ jsxs("div", { className: "liquid-divider flex items-center justify-between px-4 py-3", children: [
3544
3506
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3545
- /* @__PURE__ */ jsx(ClockIcon, { className: "h-5 w-5 text-gray-500 dark:text-gray-400" }),
3546
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: translations("title") })
3507
+ /* @__PURE__ */ jsx(ClockIcon, { className: "h-5 w-5 text-slate-500 dark:text-slate-400" }),
3508
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") })
3547
3509
  ] }),
3548
3510
  /* @__PURE__ */ jsx(
3549
- "button",
3511
+ IconButton,
3550
3512
  {
3551
- type: "button",
3513
+ label: translations("close"),
3514
+ variant: "ghost",
3515
+ size: "sm",
3552
3516
  onClick: onClose,
3553
- 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",
3554
- "data-testid": "version-history-close",
3555
- children: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" })
3517
+ icon: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" }),
3518
+ "data-testid": "version-history-close"
3556
3519
  }
3557
3520
  )
3558
3521
  ] }),
@@ -3560,36 +3523,28 @@ function VersionHistoryPanel({
3560
3523
  isLoading && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-12", "data-testid": "version-history-loading", children: /* @__PURE__ */ jsx("div", { className: "h-6 w-6 animate-spin motion-reduce:animate-none rounded-full border-2 border-blue-500 border-t-transparent" }) }),
3561
3524
  loadError && /* @__PURE__ */ jsxs("div", { className: "px-4 py-8 text-center", "data-testid": "version-history-error", children: [
3562
3525
  /* @__PURE__ */ jsx("p", { className: "text-sm text-red-500 dark:text-red-400", children: loadError }),
3563
- /* @__PURE__ */ jsx(
3564
- "button",
3565
- {
3566
- type: "button",
3567
- onClick: loadVersions,
3568
- className: "mt-2 text-xs text-blue-600 hover:underline dark:text-blue-400",
3569
- children: translations("retry")
3570
- }
3571
- )
3526
+ /* @__PURE__ */ jsx(Button, { type: "button", plain: true, size: "xs", onClick: loadVersions, children: translations("retry") })
3572
3527
  ] }),
3573
3528
  !isLoading && !loadError && versions.length === 0 && /* @__PURE__ */ jsxs("div", { className: "px-4 py-12 text-center", "data-testid": "version-history-empty", children: [
3574
- /* @__PURE__ */ jsx(ClockIcon, { className: "mx-auto h-8 w-8 text-gray-300 dark:text-gray-600" }),
3575
- /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noVersions") })
3529
+ /* @__PURE__ */ jsx(ClockIcon, { className: "mx-auto h-8 w-8 text-slate-300 dark:text-slate-600" }),
3530
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noVersions") })
3576
3531
  ] }),
3577
- !isLoading && !loadError && versions.length > 0 && /* @__PURE__ */ jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: versions.map((version) => {
3532
+ !isLoading && !loadError && versions.length > 0 && /* @__PURE__ */ jsx("div", { className: "divide-y divide-slate-200/60 dark:divide-white/10", children: versions.map((version) => {
3578
3533
  const isCurrentVersion = version.version === currentVersion;
3579
3534
  return /* @__PURE__ */ jsxs(
3580
3535
  "div",
3581
3536
  {
3582
- 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"}`,
3537
+ 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]"}`,
3583
3538
  "data-testid": `version-entry-${version.version}`,
3584
3539
  children: [
3585
3540
  /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3586
- /* @__PURE__ */ jsxs("span", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: [
3541
+ /* @__PURE__ */ jsxs("span", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: [
3587
3542
  "v",
3588
3543
  version.version
3589
3544
  ] }),
3590
3545
  isCurrentVersion && /* @__PURE__ */ jsx(Badge, { color: "blue", size: "xs", children: translations("current") })
3591
3546
  ] }) }),
3592
- /* @__PURE__ */ jsxs("div", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: [
3547
+ /* @__PURE__ */ jsxs("div", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: [
3593
3548
  /* @__PURE__ */ jsx("div", { children: formatTimestamp3(version.publishedAt) }),
3594
3549
  /* @__PURE__ */ jsxs("div", { className: "mt-0.5", children: [
3595
3550
  translations("publishedBy"),
@@ -3608,11 +3563,12 @@ function VersionHistoryPanel({
3608
3563
  ] }),
3609
3564
  /* @__PURE__ */ jsxs("div", { className: "mt-2 flex gap-2", children: [
3610
3565
  /* @__PURE__ */ jsxs(
3611
- "button",
3566
+ Button,
3612
3567
  {
3613
3568
  type: "button",
3569
+ outline: true,
3570
+ size: "xs",
3614
3571
  onClick: () => onPreview(version),
3615
- 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",
3616
3572
  "data-testid": `version-preview-${version.version}`,
3617
3573
  children: [
3618
3574
  /* @__PURE__ */ jsx(EyeIcon, { className: "h-3 w-3" }),
@@ -3621,11 +3577,12 @@ function VersionHistoryPanel({
3621
3577
  }
3622
3578
  ),
3623
3579
  !isCurrentVersion && /* @__PURE__ */ jsxs(
3624
- "button",
3580
+ Button,
3625
3581
  {
3626
3582
  type: "button",
3583
+ outline: true,
3584
+ size: "xs",
3627
3585
  onClick: () => onRestore(version),
3628
- 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",
3629
3586
  "data-testid": `version-restore-${version.version}`,
3630
3587
  children: [
3631
3588
  /* @__PURE__ */ jsx(ArrowPathIcon, { className: "h-3 w-3" }),
@@ -3647,8 +3604,8 @@ function VersionHistoryPanel({
3647
3604
  var STATUS_CONFIG = {
3648
3605
  pending: {
3649
3606
  icon: ClockIcon,
3650
- color: "text-gray-400 dark:text-gray-500",
3651
- background: "bg-gray-100 dark:bg-gray-800",
3607
+ color: "text-slate-400 dark:text-slate-500",
3608
+ background: "bg-slate-100 dark:bg-slate-800",
3652
3609
  label: "pending"
3653
3610
  },
3654
3611
  running: {
@@ -3693,13 +3650,13 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3693
3650
  return /* @__PURE__ */ jsxs(
3694
3651
  "div",
3695
3652
  {
3696
- 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",
3653
+ className: "liquid-surface absolute bottom-0 left-0 right-0 z-40 border-t border-slate-200/60 shadow-xl dark:border-white/10",
3697
3654
  "data-testid": "run-panel",
3698
3655
  children: [
3699
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-gray-100 px-4 py-2 dark:border-gray-800", children: [
3656
+ /* @__PURE__ */ jsxs("div", { className: "liquid-divider flex items-center justify-between px-4 py-2", children: [
3700
3657
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3701
- /* @__PURE__ */ jsx(PlayIcon, { className: "h-4 w-4 text-gray-500 dark:text-gray-400" }),
3702
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: translations("title") }),
3658
+ /* @__PURE__ */ jsx(PlayIcon, { className: "h-4 w-4 text-slate-500 dark:text-slate-400" }),
3659
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") }),
3703
3660
  isRunning && /* @__PURE__ */ jsxs(
3704
3661
  "span",
3705
3662
  {
@@ -3721,11 +3678,12 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3721
3678
  ] }),
3722
3679
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3723
3680
  isRunning ? /* @__PURE__ */ jsxs(
3724
- "button",
3681
+ Button,
3725
3682
  {
3726
3683
  type: "button",
3684
+ destructive: true,
3685
+ size: "sm",
3727
3686
  onClick: onStop,
3728
- 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",
3729
3687
  "data-testid": "run-panel-stop",
3730
3688
  children: [
3731
3689
  /* @__PURE__ */ jsx(StopIcon, { className: "h-3.5 w-3.5" }),
@@ -3733,12 +3691,13 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3733
3691
  ]
3734
3692
  }
3735
3693
  ) : /* @__PURE__ */ jsxs(
3736
- "button",
3694
+ Button,
3737
3695
  {
3738
3696
  type: "button",
3697
+ color: "ios-green",
3698
+ size: "sm",
3739
3699
  onClick: onRun,
3740
3700
  disabled: !canRun,
3741
- 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",
3742
3701
  "data-testid": "run-panel-run",
3743
3702
  children: [
3744
3703
  /* @__PURE__ */ jsx(PlayIcon, { className: "h-3.5 w-3.5" }),
@@ -3747,18 +3706,19 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3747
3706
  }
3748
3707
  ),
3749
3708
  /* @__PURE__ */ jsx(
3750
- "button",
3709
+ IconButton,
3751
3710
  {
3752
- type: "button",
3711
+ label: translations("close"),
3712
+ variant: "ghost",
3713
+ size: "sm",
3753
3714
  onClick: onClose,
3754
- 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",
3755
- "data-testid": "run-panel-close",
3756
- children: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" })
3715
+ icon: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" }),
3716
+ "data-testid": "run-panel-close"
3757
3717
  }
3758
3718
  )
3759
3719
  ] })
3760
3720
  ] }),
3761
- /* @__PURE__ */ jsx("div", { className: "max-h-48 overflow-y-auto px-4 py-2", children: executionNodes.length === 0 ? /* @__PURE__ */ jsx("div", { className: "py-4 text-center text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") }) : /* @__PURE__ */ jsx("div", { className: "space-y-1", children: executionNodes.map((node) => {
3721
+ /* @__PURE__ */ jsx("div", { className: "max-h-48 overflow-y-auto px-4 py-2", children: executionNodes.length === 0 ? /* @__PURE__ */ jsx("div", { className: "py-4 text-center text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") }) : /* @__PURE__ */ jsx("div", { className: "space-y-1", children: executionNodes.map((node) => {
3762
3722
  const result = nodeResults[node.id];
3763
3723
  const status = result?.status ?? "pending";
3764
3724
  const statusConfig = STATUS_CONFIG[status];
@@ -3773,12 +3733,12 @@ function RunPanel({ open, onClose, onRun, onStop }) {
3773
3733
  /* @__PURE__ */ jsx(StatusIconComponent, { className: `h-4 w-4 flex-shrink-0 ${statusConfig.color}` }),
3774
3734
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3775
3735
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3776
- /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium text-gray-900 dark:text-white", children: nodeLabel }),
3777
- /* @__PURE__ */ 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 })
3736
+ /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium text-slate-900 dark:text-white", children: nodeLabel }),
3737
+ /* @__PURE__ */ 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 })
3778
3738
  ] }),
3779
3739
  result?.error && /* @__PURE__ */ jsx("p", { className: "mt-0.5 truncate text-xs text-red-500 dark:text-red-400", children: result.error })
3780
3740
  ] }),
3781
- result?.durationMs !== void 0 && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-xs text-gray-500 dark:text-gray-400", children: formatDuration2(result.durationMs) })
3741
+ result?.durationMs !== void 0 && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-xs text-slate-500 dark:text-slate-400", children: formatDuration2(result.durationMs) })
3782
3742
  ]
3783
3743
  },
3784
3744
  node.id
@@ -4051,32 +4011,33 @@ function VariableInspector({ open, onClose }) {
4051
4011
  return /* @__PURE__ */ jsxs(
4052
4012
  "div",
4053
4013
  {
4054
- 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",
4014
+ className: "liquid-surface absolute right-0 top-0 z-40 flex h-full w-80 flex-col shadow-xl",
4055
4015
  "data-testid": "variable-inspector",
4056
4016
  children: [
4057
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-700", children: [
4017
+ /* @__PURE__ */ jsxs("div", { className: "liquid-divider flex items-center justify-between border-b px-4 py-3", children: [
4058
4018
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
4059
- /* @__PURE__ */ jsx(VariableIcon, { className: "h-5 w-5 text-gray-500 dark:text-gray-400" }),
4060
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: translations("title") })
4019
+ /* @__PURE__ */ jsx(VariableIcon, { className: "h-5 w-5 text-slate-500 dark:text-slate-400" }),
4020
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") })
4061
4021
  ] }),
4062
4022
  /* @__PURE__ */ jsx(
4063
- "button",
4023
+ IconButton,
4064
4024
  {
4065
- type: "button",
4025
+ label: translations("close"),
4026
+ variant: "ghost",
4027
+ size: "sm",
4066
4028
  onClick: onClose,
4067
- 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",
4068
- "data-testid": "variable-inspector-close",
4069
- children: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" })
4029
+ icon: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" }),
4030
+ "data-testid": "variable-inspector-close"
4070
4031
  }
4071
4032
  )
4072
4033
  ] }),
4073
4034
  /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto", children: nodeVariableEntries.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "px-4 py-12 text-center", "data-testid": "variable-inspector-empty", children: [
4074
- /* @__PURE__ */ jsx(VariableIcon, { className: "mx-auto h-8 w-8 text-gray-300 dark:text-gray-600" }),
4075
- /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
4076
- ] }) : /* @__PURE__ */ jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
4035
+ /* @__PURE__ */ jsx(VariableIcon, { className: "mx-auto h-8 w-8 text-slate-300 dark:text-slate-600" }),
4036
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") })
4037
+ ] }) : /* @__PURE__ */ jsx("div", { className: "divide-y divide-slate-100 dark:divide-slate-800", children: nodeVariableEntries.map((entry) => {
4077
4038
  const isExpanded = expandedNodes.has(entry.nodeId);
4078
4039
  const IconComponent = LOGIC_ICON_MAP[entry.nodeType];
4079
- const gradient = LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
4040
+ const gradient = LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-slate-400 to-slate-500";
4080
4041
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
4081
4042
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
4082
4043
  return /* @__PURE__ */ jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -4085,12 +4046,12 @@ function VariableInspector({ open, onClose }) {
4085
4046
  {
4086
4047
  type: "button",
4087
4048
  onClick: () => toggleNodeExpansion(entry.nodeId),
4088
- 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",
4049
+ 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]",
4089
4050
  children: [
4090
- isExpanded ? /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-gray-400" }) : /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-gray-400" }),
4051
+ isExpanded ? /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-slate-400" }) : /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-slate-400" }),
4091
4052
  /* @__PURE__ */ jsx("div", { className: `flex h-5 w-5 flex-shrink-0 items-center justify-center rounded bg-gradient-to-br ${gradient}`, children: IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "h-3 w-3 text-white" }) }),
4092
- /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium text-gray-900 dark:text-white", children: entry.nodeLabel }),
4093
- /* @__PURE__ */ jsxs("span", { className: "ml-auto flex-shrink-0 text-[10px] text-gray-400 dark:text-gray-500", children: [
4053
+ /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium text-slate-900 dark:text-white", children: entry.nodeLabel }),
4054
+ /* @__PURE__ */ jsxs("span", { className: "ml-auto flex-shrink-0 text-[10px] text-slate-400 dark:text-slate-500", children: [
4094
4055
  entry.variables.length,
4095
4056
  " ",
4096
4057
  translations("variables")
@@ -4098,32 +4059,32 @@ function VariableInspector({ open, onClose }) {
4098
4059
  ]
4099
4060
  }
4100
4061
  ),
4101
- isExpanded && /* @__PURE__ */ jsx("div", { className: "bg-gray-50/50 px-4 pb-2 dark:bg-gray-800/30", children: entry.variables.length === 0 ? /* @__PURE__ */ jsx("p", { className: "py-2 pl-9 text-xs italic text-gray-400 dark:text-gray-500", children: translations("noVariables") }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4062
+ isExpanded && /* @__PURE__ */ jsx("div", { className: "bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm px-4 pb-2", children: entry.variables.length === 0 ? /* @__PURE__ */ jsx("p", { className: "py-2 pl-9 text-xs italic text-slate-400 dark:text-slate-500", children: translations("noVariables") }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4102
4063
  inputVariables.length > 0 && /* @__PURE__ */ jsxs("div", { className: "pl-9 pt-1", children: [
4103
- /* @__PURE__ */ jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-gray-400 dark:text-gray-500", children: translations("inputs") }),
4064
+ /* @__PURE__ */ jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("inputs") }),
4104
4065
  inputVariables.map((variable, index) => /* @__PURE__ */ jsxs(
4105
4066
  "div",
4106
4067
  {
4107
4068
  className: "flex items-center gap-2 py-0.5",
4108
4069
  children: [
4109
4070
  /* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-blue-400" }),
4110
- /* @__PURE__ */ jsx("span", { className: "text-xs text-gray-700 dark:text-gray-300", children: variable.name }),
4111
- /* @__PURE__ */ 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 })
4071
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-slate-700 dark:text-slate-300", children: variable.name }),
4072
+ /* @__PURE__ */ 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 })
4112
4073
  ]
4113
4074
  },
4114
4075
  `${variable.name}-${index}`
4115
4076
  ))
4116
4077
  ] }),
4117
4078
  outputVariables.length > 0 && /* @__PURE__ */ jsxs("div", { className: "pl-9 pt-1", children: [
4118
- /* @__PURE__ */ jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-gray-400 dark:text-gray-500", children: translations("outputs") }),
4079
+ /* @__PURE__ */ jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("outputs") }),
4119
4080
  outputVariables.map((variable, index) => /* @__PURE__ */ jsxs(
4120
4081
  "div",
4121
4082
  {
4122
4083
  className: "flex items-center gap-2 py-0.5",
4123
4084
  children: [
4124
4085
  /* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-green-400" }),
4125
- /* @__PURE__ */ jsx("span", { className: "text-xs text-gray-700 dark:text-gray-300", children: variable.name }),
4126
- /* @__PURE__ */ 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 })
4086
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-slate-700 dark:text-slate-300", children: variable.name }),
4087
+ /* @__PURE__ */ 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 })
4127
4088
  ]
4128
4089
  },
4129
4090
  `${variable.name}-${index}`
@@ -4203,10 +4164,10 @@ var STATUS_STYLES = {
4203
4164
  completed: { icon: CheckCircleIcon, colorClass: "text-green-500" },
4204
4165
  failed: { icon: ExclamationCircleIcon, colorClass: "text-red-500" },
4205
4166
  running: { icon: ArrowPathIcon, colorClass: "text-blue-500 animate-spin motion-reduce:animate-none" },
4206
- pending: { icon: ClockIcon, colorClass: "text-gray-400" },
4167
+ pending: { icon: ClockIcon, colorClass: "text-slate-400" },
4207
4168
  success: { icon: CheckCircleIcon, colorClass: "text-green-500" },
4208
4169
  error: { icon: ExclamationCircleIcon, colorClass: "text-red-500" },
4209
- skipped: { icon: ClockIcon, colorClass: "text-gray-400" }
4170
+ skipped: { icon: ClockIcon, colorClass: "text-slate-400" }
4210
4171
  };
4211
4172
  function formatDuration3(durationMs) {
4212
4173
  if (durationMs === null) return "\u2014";
@@ -4243,21 +4204,22 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4243
4204
  if (!open) return null;
4244
4205
  return /* @__PURE__ */ jsxs(Fragment, { children: [
4245
4206
  /* @__PURE__ */ jsx("div", { className: "fixed inset-x-0 top-[120px] bottom-0 z-40 bg-black/10 backdrop-blur-[1px]", onClick: onClose }),
4246
- /* @__PURE__ */ 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: [
4247
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-gray-200/50 px-4 py-3 dark:border-gray-700/50", children: [
4248
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-gray-900 dark:text-white", children: t("title") }),
4207
+ /* @__PURE__ */ 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: [
4208
+ /* @__PURE__ */ jsxs("div", { className: "liquid-divider flex items-center justify-between border-b px-4 py-3", children: [
4209
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: t("title") }),
4249
4210
  /* @__PURE__ */ jsx(
4250
- "button",
4211
+ IconButton,
4251
4212
  {
4252
- type: "button",
4213
+ label: t("close"),
4214
+ variant: "ghost",
4215
+ size: "sm",
4253
4216
  onClick: onClose,
4254
- 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",
4255
- children: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" })
4217
+ icon: /* @__PURE__ */ jsx(XMarkIcon, { className: "h-4 w-4" })
4256
4218
  }
4257
4219
  )
4258
4220
  ] }),
4259
4221
  /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [
4260
- isRunning && /* @__PURE__ */ jsxs("div", { className: "border-b border-gray-200/50 px-4 py-3 dark:border-gray-700/50", children: [
4222
+ isRunning && /* @__PURE__ */ jsxs("div", { className: "liquid-divider border-b px-4 py-3", children: [
4261
4223
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-2", children: [
4262
4224
  /* @__PURE__ */ jsx(ArrowPathIcon, { className: "h-4 w-4 animate-spin motion-reduce:animate-none text-blue-500" }),
4263
4225
  /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-blue-600 dark:text-blue-400", children: t("activeRun") })
@@ -4265,46 +4227,46 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4265
4227
  /* @__PURE__ */ jsx("div", { className: "max-h-60 space-y-1 overflow-y-auto", children: Object.entries(nodeResults).map(([nodeId, result]) => {
4266
4228
  const statusStyle = STATUS_STYLES[result.status] ?? STATUS_STYLES.pending;
4267
4229
  const StatusIcon = statusStyle.icon;
4268
- return /* @__PURE__ */ 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: [
4230
+ return /* @__PURE__ */ 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: [
4269
4231
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
4270
4232
  /* @__PURE__ */ jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
4271
- /* @__PURE__ */ jsx("span", { className: "truncate text-gray-700 dark:text-gray-300", children: nodeId.slice(0, 8) })
4233
+ /* @__PURE__ */ jsx("span", { className: "truncate text-slate-700 dark:text-slate-300", children: nodeId.slice(0, 8) })
4272
4234
  ] }),
4273
- result.durationMs !== void 0 && /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: formatDuration3(result.durationMs) })
4235
+ result.durationMs !== void 0 && /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: formatDuration3(result.durationMs) })
4274
4236
  ] }, nodeId);
4275
4237
  }) })
4276
4238
  ] }),
4277
- selectedNode && /* @__PURE__ */ jsxs("div", { className: "border-b border-gray-200/50 px-4 py-3 dark:border-gray-700/50", children: [
4239
+ selectedNode && /* @__PURE__ */ jsxs("div", { className: "liquid-divider border-b px-4 py-3", children: [
4278
4240
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4279
- /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-gray-900 dark:text-white", children: t("nodeDetail") }),
4280
- /* @__PURE__ */ 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") })
4241
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: t("nodeDetail") }),
4242
+ /* @__PURE__ */ jsx(Button, { type: "button", plain: true, size: "xs", onClick: () => setSelectedNode(null), children: t("close") })
4281
4243
  ] }),
4282
4244
  /* @__PURE__ */ jsxs("div", { className: "space-y-2 text-xs", children: [
4283
4245
  /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
4284
- /* @__PURE__ */ jsx("span", { className: "text-gray-500", children: t("status") }),
4285
- /* @__PURE__ */ jsx("span", { className: STATUS_STYLES[selectedNode.status]?.colorClass ?? "text-gray-400", children: t(selectedNode.status) })
4246
+ /* @__PURE__ */ jsx("span", { className: "text-slate-500", children: t("status") }),
4247
+ /* @__PURE__ */ jsx("span", { className: STATUS_STYLES[selectedNode.status]?.colorClass ?? "text-slate-400", children: t(selectedNode.status) })
4286
4248
  ] }),
4287
4249
  /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
4288
- /* @__PURE__ */ jsx("span", { className: "text-gray-500", children: t("duration") }),
4289
- /* @__PURE__ */ jsx("span", { className: "text-gray-700 dark:text-gray-300", children: formatDuration3(selectedNode.durationMs) })
4250
+ /* @__PURE__ */ jsx("span", { className: "text-slate-500", children: t("duration") }),
4251
+ /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300", children: formatDuration3(selectedNode.durationMs) })
4290
4252
  ] }),
4291
4253
  selectedNode.error && /* @__PURE__ */ jsxs("div", { children: [
4292
4254
  /* @__PURE__ */ jsx("span", { className: "text-red-500", children: t("error") }),
4293
4255
  /* @__PURE__ */ 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 })
4294
4256
  ] }),
4295
4257
  Object.keys(selectedNode.outputs).length > 0 && /* @__PURE__ */ jsxs("div", { children: [
4296
- /* @__PURE__ */ jsx("span", { className: "text-gray-500", children: t("outputs") }),
4297
- /* @__PURE__ */ 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) })
4258
+ /* @__PURE__ */ jsx("span", { className: "text-slate-500", children: t("outputs") }),
4259
+ /* @__PURE__ */ 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) })
4298
4260
  ] })
4299
4261
  ] })
4300
4262
  ] }),
4301
4263
  /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto px-4 py-3", children: [
4302
- /* @__PURE__ */ jsx("h4", { className: "mb-2 text-xs font-semibold text-gray-500 dark:text-gray-400", children: t("runHistory") }),
4264
+ /* @__PURE__ */ jsx("h4", { className: "mb-2 text-xs font-semibold text-slate-500 dark:text-slate-400", children: t("runHistory") }),
4303
4265
  isLoadingRuns && /* @__PURE__ */ jsx("div", { className: "space-y-2", children: [1, 2, 3].map((index) => /* @__PURE__ */ jsx("div", { className: "shimmer h-14 rounded-lg" }, index)) }),
4304
4266
  !isLoadingRuns && runs.length === 0 && /* @__PURE__ */ jsxs("div", { className: "py-8 text-center", children: [
4305
- /* @__PURE__ */ jsx(ClockIcon, { className: "mx-auto mb-2 h-8 w-8 text-gray-300 dark:text-gray-600" }),
4306
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("noRuns") }),
4307
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-[10px] text-gray-400 dark:text-gray-500", children: t("noRunsDescription") })
4267
+ /* @__PURE__ */ jsx(ClockIcon, { className: "mx-auto mb-2 h-8 w-8 text-slate-300 dark:text-slate-600" }),
4268
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("noRuns") }),
4269
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-[10px] text-slate-400 dark:text-slate-500", children: t("noRunsDescription") })
4308
4270
  ] }),
4309
4271
  !isLoadingRuns && runs.length > 0 && /* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: runs.map((run) => {
4310
4272
  const statusStyle = STATUS_STYLES[run.status] ?? STATUS_STYLES.pending;
@@ -4318,14 +4280,14 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4318
4280
  setSelectedRun(isSelected ? null : run);
4319
4281
  setSelectedNode(null);
4320
4282
  },
4321
- 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"}`,
4283
+ 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]"}`,
4322
4284
  children: [
4323
4285
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
4324
4286
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
4325
4287
  /* @__PURE__ */ jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
4326
- /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-white", children: formatTimestamp2(run.createdAt) })
4288
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-slate-900 dark:text-white", children: formatTimestamp2(run.createdAt) })
4327
4289
  ] }),
4328
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400", children: formatDuration3(run.totalDurationMs) })
4290
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400", children: formatDuration3(run.totalDurationMs) })
4329
4291
  ] }),
4330
4292
  run.error && /* @__PURE__ */ jsx("p", { className: "mt-1 truncate text-[10px] text-red-500", children: run.error })
4331
4293
  ]
@@ -4334,7 +4296,7 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4334
4296
  );
4335
4297
  }) }),
4336
4298
  selectedRun && selectedRun.nodeResults.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-3 space-y-1", children: [
4337
- /* @__PURE__ */ jsx("h5", { className: "mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-gray-400", children: "Nodes" }),
4299
+ /* @__PURE__ */ jsx("h5", { className: "mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-slate-400", children: "Nodes" }),
4338
4300
  selectedRun.nodeResults.map((nodeResult) => {
4339
4301
  const nodeStatusStyle = STATUS_STYLES[nodeResult.status] ?? STATUS_STYLES.pending;
4340
4302
  const NodeStatusIcon = nodeStatusStyle.icon;
@@ -4343,13 +4305,13 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4343
4305
  {
4344
4306
  type: "button",
4345
4307
  onClick: () => setSelectedNode(nodeResult),
4346
- 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",
4308
+ 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]",
4347
4309
  children: [
4348
4310
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
4349
4311
  /* @__PURE__ */ jsx(NodeStatusIcon, { className: `h-3 w-3 ${nodeStatusStyle.colorClass}` }),
4350
- /* @__PURE__ */ jsx("span", { className: "text-gray-700 dark:text-gray-300", children: nodeResult.nodeType })
4312
+ /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300", children: nodeResult.nodeType })
4351
4313
  ] }),
4352
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400", children: formatDuration3(nodeResult.durationMs) })
4314
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400", children: formatDuration3(nodeResult.durationMs) })
4353
4315
  ]
4354
4316
  },
4355
4317
  nodeResult.nodeId
@@ -4472,39 +4434,39 @@ function DslExportModal({ open, onClose, workflow, graph }) {
4472
4434
  subtitle: translations("description"),
4473
4435
  maxWidth: "2xl",
4474
4436
  children: /* @__PURE__ */ jsxs("div", { "data-testid": "dsl-export-modal", children: [
4475
- /* @__PURE__ */ jsx("div", { className: "border-b border-gray-200 px-1 py-4 dark:border-gray-700", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [
4437
+ /* @__PURE__ */ jsx("div", { className: "liquid-divider px-1 py-4", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [
4476
4438
  /* @__PURE__ */ jsxs("div", { children: [
4477
- /* @__PURE__ */ jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("workflowName") }),
4478
- /* @__PURE__ */ jsx("p", { className: "font-medium text-gray-900 dark:text-white", children: workflow.name })
4439
+ /* @__PURE__ */ jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("workflowName") }),
4440
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: workflow.name })
4479
4441
  ] }),
4480
4442
  /* @__PURE__ */ jsxs("div", { children: [
4481
- /* @__PURE__ */ jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("version") }),
4482
- /* @__PURE__ */ jsxs("p", { className: "font-medium text-gray-900 dark:text-white", children: [
4443
+ /* @__PURE__ */ jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("version") }),
4444
+ /* @__PURE__ */ jsxs("p", { className: "font-medium text-slate-900 dark:text-white", children: [
4483
4445
  "v",
4484
4446
  workflow.version
4485
4447
  ] })
4486
4448
  ] }),
4487
4449
  /* @__PURE__ */ jsxs("div", { children: [
4488
- /* @__PURE__ */ jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("nodes") }),
4489
- /* @__PURE__ */ jsx("p", { className: "font-medium text-gray-900 dark:text-white", children: graph.nodes.length })
4450
+ /* @__PURE__ */ jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("nodes") }),
4451
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: graph.nodes.length })
4490
4452
  ] }),
4491
4453
  /* @__PURE__ */ jsxs("div", { children: [
4492
- /* @__PURE__ */ jsx("span", { className: "text-gray-500 dark:text-gray-400", children: translations("edges") }),
4493
- /* @__PURE__ */ jsx("p", { className: "font-medium text-gray-900 dark:text-white", children: graph.edges.length })
4454
+ /* @__PURE__ */ jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("edges") }),
4455
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: graph.edges.length })
4494
4456
  ] })
4495
4457
  ] }) }),
4496
4458
  /* @__PURE__ */ jsxs("div", { className: "px-1 py-4", children: [
4497
- /* @__PURE__ */ jsx("div", { className: "mb-2 text-xs font-medium uppercase tracking-wider text-gray-400 dark:text-gray-500", children: translations("preview") }),
4459
+ /* @__PURE__ */ jsx("div", { className: "mb-2 text-xs font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("preview") }),
4498
4460
  /* @__PURE__ */ jsx(
4499
4461
  "pre",
4500
4462
  {
4501
- 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",
4463
+ className: "liquid-surface max-h-64 overflow-auto rounded-lg p-3 text-xs text-slate-700 dark:text-slate-300",
4502
4464
  "data-testid": "export-json-preview",
4503
4465
  children: previewLines
4504
4466
  }
4505
4467
  )
4506
4468
  ] }),
4507
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
4469
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-slate-200 px-1 py-4 dark:border-slate-700", children: [
4508
4470
  /* @__PURE__ */ jsx(
4509
4471
  Button,
4510
4472
  {
@@ -5059,5 +5021,5 @@ function useHelpLines() {
5059
5021
  }
5060
5022
 
5061
5023
  export { AgentModal, AmazonNovaIcon, AnthropicModelIcon, AutoSaveWorkspace, DslExportModal, DslImportModal, DynamicIslandConfirm2 as DynamicIslandConfirm, ExecutionTimelinePanel, MetaLlamaIcon, ModelProviderFlowNode, NodePalette, OutputSchemaBuilder, PipelineSettingsModal, PreviewPanel, RULE_STATUS_OPTIONS, RuleActionBuilder, RuleConditionBuilder, RuleForm, RunInputDialog, RunPanel, RunReplayModal, S3WriteFlowNode, SaveStatusBadge, SubworkflowModal, TIMEZONE_OPTIONS, VariableInspector, VersionHistoryPanel, WorkflowListBar, defaultAgentOutputSchema, defaultRuleAction, defaultRuleCondition, defaultRuleForm, getModelIcon, useCanRedo, useCanUndo, useCanvasShortcuts, useClipboard, useContextMenu, useEditingNodeId, useHasCopied, useHelpLines, useIsRunning, useNodeResults, useSelectedNodeCount, useSubworkflowStore, useUndoRedo };
5062
- //# sourceMappingURL=chunk-5TLKFOEL.mjs.map
5063
- //# sourceMappingURL=chunk-5TLKFOEL.mjs.map
5024
+ //# sourceMappingURL=chunk-RSCRIDMW.mjs.map
5025
+ //# sourceMappingURL=chunk-RSCRIDMW.mjs.map