@datatechsolutions/ui 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/astrlabe/contracts.d.mts +517 -0
  2. package/dist/astrlabe/contracts.d.ts +517 -0
  3. package/dist/astrlabe/graph-node.d.mts +28 -0
  4. package/dist/astrlabe/graph-node.d.ts +28 -0
  5. package/dist/astrlabe/index.d.mts +743 -0
  6. package/dist/astrlabe/index.d.ts +743 -0
  7. package/dist/astrlabe/index.js +108 -108
  8. package/dist/astrlabe/index.mjs +4 -4
  9. package/dist/astrlabe/utils.d.mts +60 -0
  10. package/dist/astrlabe/utils.d.ts +60 -0
  11. package/dist/astrlabe/workflow-canvas.d.mts +6 -0
  12. package/dist/astrlabe/workflow-canvas.d.ts +6 -0
  13. package/dist/astrlabe/workflow-canvas.js +4 -4
  14. package/dist/astrlabe/workflow-canvas.mjs +3 -3
  15. package/dist/astrlabe/workflow-preview-canvas.d.mts +10 -0
  16. package/dist/astrlabe/workflow-preview-canvas.d.ts +10 -0
  17. package/dist/billing-panel-DsHhhJqG.d.mts +18 -0
  18. package/dist/billing-panel-DsHhhJqG.d.ts +18 -0
  19. package/dist/brand/index.d.mts +71 -0
  20. package/dist/brand/index.d.ts +71 -0
  21. package/dist/{chunk-AVM53A3Y.js → chunk-3WXMBAGN.js} +46 -44
  22. package/dist/chunk-3WXMBAGN.js.map +1 -0
  23. package/dist/{chunk-NOHHZ6FM.mjs → chunk-4OFG6POC.mjs} +10 -6
  24. package/dist/chunk-4OFG6POC.mjs.map +1 -0
  25. package/dist/{chunk-QLFSJ6HK.mjs → chunk-7LILNZMR.mjs} +3 -3
  26. package/dist/{chunk-QLFSJ6HK.mjs.map → chunk-7LILNZMR.mjs.map} +1 -1
  27. package/dist/{chunk-NKXQYFS7.js → chunk-AMYQSPQC.js} +16 -16
  28. package/dist/{chunk-NKXQYFS7.js.map → chunk-AMYQSPQC.js.map} +1 -1
  29. package/dist/{chunk-2MJAHST4.mjs → chunk-DYWSG42B.mjs} +4 -4
  30. package/dist/{chunk-2MJAHST4.mjs.map → chunk-DYWSG42B.mjs.map} +1 -1
  31. package/dist/{chunk-NJ5RVWLA.mjs → chunk-ESLKQJQS.mjs} +4 -4
  32. package/dist/{chunk-NJ5RVWLA.mjs.map → chunk-ESLKQJQS.mjs.map} +1 -1
  33. package/dist/{chunk-AWDH6WNA.js → chunk-GCYYGSHU.js} +10 -6
  34. package/dist/chunk-GCYYGSHU.js.map +1 -0
  35. package/dist/{chunk-UHMAKUON.mjs → chunk-HGWVJ3VB.mjs} +21 -21
  36. package/dist/{chunk-UHMAKUON.mjs.map → chunk-HGWVJ3VB.mjs.map} +1 -1
  37. package/dist/{chunk-4PFU6A2B.mjs → chunk-I63NFWIA.mjs} +3 -3
  38. package/dist/{chunk-4PFU6A2B.mjs.map → chunk-I63NFWIA.mjs.map} +1 -1
  39. package/dist/{chunk-QPSHM2JQ.mjs → chunk-IHHGT3LP.mjs} +19 -19
  40. package/dist/{chunk-QPSHM2JQ.mjs.map → chunk-IHHGT3LP.mjs.map} +1 -1
  41. package/dist/{chunk-6W7VTZG6.mjs → chunk-JQYDJ75Q.mjs} +3 -3
  42. package/dist/{chunk-6W7VTZG6.mjs.map → chunk-JQYDJ75Q.mjs.map} +1 -1
  43. package/dist/{chunk-V5VBYOF5.js → chunk-LVK7VXW7.js} +54 -54
  44. package/dist/{chunk-V5VBYOF5.js.map → chunk-LVK7VXW7.js.map} +1 -1
  45. package/dist/{chunk-7CEZB3ZD.mjs → chunk-MRRFDIUQ.mjs} +3 -3
  46. package/dist/{chunk-7CEZB3ZD.mjs.map → chunk-MRRFDIUQ.mjs.map} +1 -1
  47. package/dist/{chunk-A7FI4K7Z.js → chunk-NJZIE4EH.js} +5 -5
  48. package/dist/{chunk-A7FI4K7Z.js.map → chunk-NJZIE4EH.js.map} +1 -1
  49. package/dist/{chunk-P43PX75J.js → chunk-P5F257N3.js} +33 -33
  50. package/dist/{chunk-P43PX75J.js.map → chunk-P5F257N3.js.map} +1 -1
  51. package/dist/{chunk-BVXATTTA.js → chunk-QHP2MR2F.js} +4 -4
  52. package/dist/{chunk-BVXATTTA.js.map → chunk-QHP2MR2F.js.map} +1 -1
  53. package/dist/{chunk-CY2MBKVG.js → chunk-QRNFTG6A.js} +4 -4
  54. package/dist/{chunk-CY2MBKVG.js.map → chunk-QRNFTG6A.js.map} +1 -1
  55. package/dist/{chunk-OASC7NYV.mjs → chunk-QTA5I6FC.mjs} +3 -3
  56. package/dist/{chunk-OASC7NYV.mjs.map → chunk-QTA5I6FC.mjs.map} +1 -1
  57. package/dist/{chunk-QSMPKL27.js → chunk-S7AV6XEY.js} +74 -74
  58. package/dist/{chunk-QSMPKL27.js.map → chunk-S7AV6XEY.js.map} +1 -1
  59. package/dist/{chunk-VMGNQFRO.js → chunk-UGJZ3M4Q.js} +53 -53
  60. package/dist/{chunk-VMGNQFRO.js.map → chunk-UGJZ3M4Q.js.map} +1 -1
  61. package/dist/{chunk-5BEVTOZV.mjs → chunk-UOABOFKO.mjs} +4 -4
  62. package/dist/{chunk-5BEVTOZV.mjs.map → chunk-UOABOFKO.mjs.map} +1 -1
  63. package/dist/{chunk-74MHWEDC.js → chunk-UWSMHKOF.js} +161 -161
  64. package/dist/{chunk-74MHWEDC.js.map → chunk-UWSMHKOF.js.map} +1 -1
  65. package/dist/{chunk-ZM2Q2SMC.mjs → chunk-VDLAZR7S.mjs} +3 -3
  66. package/dist/{chunk-ZM2Q2SMC.mjs.map → chunk-VDLAZR7S.mjs.map} +1 -1
  67. package/dist/{chunk-FK3WDELF.js → chunk-VPOIX2DY.js} +40 -40
  68. package/dist/{chunk-FK3WDELF.js.map → chunk-VPOIX2DY.js.map} +1 -1
  69. package/dist/{chunk-IOEQ2GET.mjs → chunk-VUAGVZJM.mjs} +4 -4
  70. package/dist/{chunk-IOEQ2GET.mjs.map → chunk-VUAGVZJM.mjs.map} +1 -1
  71. package/dist/{chunk-Z7VY5M4T.js → chunk-W5YCZOXO.js} +77 -77
  72. package/dist/{chunk-Z7VY5M4T.js.map → chunk-W5YCZOXO.js.map} +1 -1
  73. package/dist/{chunk-C4NRF2G2.js → chunk-WBEZATIB.js} +13 -13
  74. package/dist/{chunk-C4NRF2G2.js.map → chunk-WBEZATIB.js.map} +1 -1
  75. package/dist/{chunk-6V3DUBOZ.mjs → chunk-WEZ722BS.mjs} +7 -7
  76. package/dist/{chunk-6V3DUBOZ.mjs.map → chunk-WEZ722BS.mjs.map} +1 -1
  77. package/dist/{chunk-3OLYSMI5.mjs → chunk-XTXLRQ3H.mjs} +24 -22
  78. package/dist/chunk-XTXLRQ3H.mjs.map +1 -0
  79. package/dist/{chunk-5I7F7KZ6.js → chunk-YOJIPZ72.js} +10 -10
  80. package/dist/{chunk-5I7F7KZ6.js.map → chunk-YOJIPZ72.js.map} +1 -1
  81. package/dist/{chunk-NCDBNGIB.js → chunk-YTE6WCBX.js} +76 -76
  82. package/dist/{chunk-NCDBNGIB.js.map → chunk-YTE6WCBX.js.map} +1 -1
  83. package/dist/{chunk-7UHV6A4C.mjs → chunk-ZYVDDSAC.mjs} +6 -6
  84. package/dist/{chunk-7UHV6A4C.mjs.map → chunk-ZYVDDSAC.mjs.map} +1 -1
  85. package/dist/dynamic-island-confirm-BKsZkAEP.d.mts +17 -0
  86. package/dist/dynamic-island-confirm-BKsZkAEP.d.ts +17 -0
  87. package/dist/index-BNRGVAS5.d.mts +222 -0
  88. package/dist/index-BoebbJ44.d.mts +49 -0
  89. package/dist/index-BoebbJ44.d.ts +49 -0
  90. package/dist/index-CnCY-b5V.d.ts +222 -0
  91. package/dist/index.d.mts +5310 -0
  92. package/dist/index.d.ts +5310 -0
  93. package/dist/index.js +721 -721
  94. package/dist/index.mjs +2 -2
  95. package/dist/layout-engine-YZcVr20M.d.mts +19 -0
  96. package/dist/layout-engine-YZcVr20M.d.ts +19 -0
  97. package/dist/lib/i18n-context.d.mts +36 -0
  98. package/dist/lib/i18n-context.d.ts +36 -0
  99. package/dist/lib/router-context.d.mts +35 -0
  100. package/dist/lib/router-context.d.ts +35 -0
  101. package/dist/navigation-BiWVffAN.d.mts +49 -0
  102. package/dist/navigation-BiWVffAN.d.ts +49 -0
  103. package/dist/platform/admin/index.d.mts +17 -0
  104. package/dist/platform/admin/index.d.ts +17 -0
  105. package/dist/platform/admin/index.js +11 -11
  106. package/dist/platform/admin/index.mjs +5 -5
  107. package/dist/platform/agents-workspace.d.mts +19 -0
  108. package/dist/platform/agents-workspace.d.ts +19 -0
  109. package/dist/platform/agents-workspace.js +7 -7
  110. package/dist/platform/agents-workspace.mjs +6 -6
  111. package/dist/platform/app-shell.d.mts +58 -0
  112. package/dist/platform/app-shell.d.ts +58 -0
  113. package/dist/platform/app-shell.js +4 -4
  114. package/dist/platform/app-shell.mjs +3 -3
  115. package/dist/platform/auth/index.d.mts +73 -0
  116. package/dist/platform/auth/index.d.ts +73 -0
  117. package/dist/platform/auth/index.js +28 -28
  118. package/dist/platform/auth/index.mjs +5 -5
  119. package/dist/platform/billing/index.d.mts +29 -0
  120. package/dist/platform/billing/index.d.ts +29 -0
  121. package/dist/platform/billing/index.js +4 -4
  122. package/dist/platform/billing/index.mjs +3 -3
  123. package/dist/platform/impersonation/index.d.mts +19 -0
  124. package/dist/platform/impersonation/index.d.ts +19 -0
  125. package/dist/platform/impersonation/index.js +4 -4
  126. package/dist/platform/impersonation/index.mjs +3 -3
  127. package/dist/platform/index.d.mts +188 -0
  128. package/dist/platform/index.d.ts +188 -0
  129. package/dist/platform/index.js +89 -89
  130. package/dist/platform/index.mjs +19 -19
  131. package/dist/platform/pages/index.d.mts +441 -0
  132. package/dist/platform/pages/index.d.ts +441 -0
  133. package/dist/platform/pages/index.js +326 -302
  134. package/dist/platform/pages/index.js.map +1 -1
  135. package/dist/platform/pages/index.mjs +148 -124
  136. package/dist/platform/pages/index.mjs.map +1 -1
  137. package/dist/platform/rbac.d.mts +42 -0
  138. package/dist/platform/rbac.d.ts +42 -0
  139. package/dist/platform/settings/index.d.mts +31 -0
  140. package/dist/platform/settings/index.d.ts +31 -0
  141. package/dist/platform/settings/index.js +8 -8
  142. package/dist/platform/settings/index.mjs +7 -7
  143. package/dist/platform/telemetry/index.d.mts +51 -0
  144. package/dist/platform/telemetry/index.d.ts +51 -0
  145. package/dist/platform/utils/index.d.mts +32 -0
  146. package/dist/platform/utils/index.d.ts +32 -0
  147. package/dist/platform/windsock-admin-client.d.mts +57 -0
  148. package/dist/platform/windsock-admin-client.d.ts +57 -0
  149. package/dist/platform/workflow-api-client.d.mts +6 -0
  150. package/dist/platform/workflow-api-client.d.ts +6 -0
  151. package/dist/platform/workflow-canvas-shell.d.mts +18 -0
  152. package/dist/platform/workflow-canvas-shell.d.ts +18 -0
  153. package/dist/platform/workflow-canvas-shell.js +5 -5
  154. package/dist/platform/workflow-canvas-shell.mjs +4 -4
  155. package/dist/rule-form-BYJzyork.d.mts +128 -0
  156. package/dist/rule-form-BYJzyork.d.ts +128 -0
  157. package/dist/workflow-api-client-CpFl3WcG.d.mts +468 -0
  158. package/dist/workflow-api-client-uLICOanv.d.ts +468 -0
  159. package/dist/workflow-canvas--qaYKuMm.d.ts +113 -0
  160. package/dist/workflow-canvas-B80fmD_n.d.mts +113 -0
  161. package/dist/workflow-store-o17I6L6A.d.ts +79 -0
  162. package/dist/workflow-store-ppVHdMZi.d.mts +79 -0
  163. package/package.json +1 -1
  164. package/dist/chunk-3OLYSMI5.mjs.map +0 -1
  165. package/dist/chunk-AVM53A3Y.js.map +0 -1
  166. package/dist/chunk-AWDH6WNA.js.map +0 -1
  167. package/dist/chunk-NOHHZ6FM.mjs.map +0 -1
@@ -1,19 +1,19 @@
1
1
  "use client";
2
2
  import { adaptWorkflowGraphToUi, formatDurationMs } from '../../chunk-UQXVCVAN.mjs';
3
- import { WorkflowWorkspace } from '../../chunk-3OLYSMI5.mjs';
4
- export { RolesPageView, UsersPageView } from '../../chunk-3OLYSMI5.mjs';
5
- import { DatasourceModal, findCategory, DIALECT_CATEGORIES } from '../../chunk-UHMAKUON.mjs';
6
- export { DIALECT_CATEGORIES, DatasourceFormModal, DatasourceModal, findCategory, findDialect } from '../../chunk-UHMAKUON.mjs';
7
- import { defaultRuleForm, RuleForm, ExecutionTimelinePanel } from '../../chunk-2MJAHST4.mjs';
3
+ import { WorkflowWorkspace } from '../../chunk-XTXLRQ3H.mjs';
4
+ export { RolesPageView, UsersPageView } from '../../chunk-XTXLRQ3H.mjs';
5
+ import { DatasourceModal, findCategory, DIALECT_CATEGORIES } from '../../chunk-HGWVJ3VB.mjs';
6
+ export { DIALECT_CATEGORIES, DatasourceFormModal, DatasourceModal, findCategory, findDialect } from '../../chunk-HGWVJ3VB.mjs';
7
+ import { defaultRuleForm, RuleForm, ExecutionTimelinePanel } from '../../chunk-DYWSG42B.mjs';
8
8
  import '../../chunk-JB6RNAD2.mjs';
9
9
  import '../../chunk-LEXBTVGM.mjs';
10
- import '../../chunk-OASC7NYV.mjs';
11
- import { HeroSection, SearchBar, PageLoadingState, PageEmptyState, EntityCard, Badge, ManagementPageLayout, CreateActionButton, Button, GlassModal, FormGrid, FormSelect, FormInput, FormTextarea, SectionHeader, Text, Form, FormActionsRow, Table, TableHead, TableRow, TableHeader, TableBody, TableCell, InlineForm, CopyableId } from '../../chunk-NOHHZ6FM.mjs';
10
+ import '../../chunk-QTA5I6FC.mjs';
11
+ import { HeroSection, SearchBar, PageLoadingState, PageEmptyState, EntityCard, Badge, ManagementPageLayout, CreateActionButton, Button, GlassModal, FormGrid, FormSelect, FormInput, FormTextarea, SectionHeader, Text, Form, FormActionsRow, Table, TableHead, TableRow, TableHeader, TableBody, TableCell, InlineForm, CopyableId } from '../../chunk-4OFG6POC.mjs';
12
12
  import '../../chunk-D2JF6C3E.mjs';
13
+ import '../../chunk-7VJ7CMMT.mjs';
13
14
  import { useLink } from '../../chunk-QWG2FMUN.mjs';
14
15
  import '../../chunk-RHRJXK5R.mjs';
15
16
  import '../../chunk-3AY5HIQ6.mjs';
16
- import '../../chunk-7VJ7CMMT.mjs';
17
17
  import '../../chunk-OZNTQROP.mjs';
18
18
  import '../../chunk-G7JQ4OCE.mjs';
19
19
  import { useState, useMemo, useEffect } from 'react';
@@ -32,17 +32,18 @@ function AgentsModelsPageView({ labels, models, loading }) {
32
32
  label: labels.title,
33
33
  title: labels.title,
34
34
  subtitle: labels.subtitle,
35
- gradient: "from-emerald-500 to-teal-700"
35
+ gradient: "from-emerald-500 to-teal-700",
36
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
37
+ SearchBar,
38
+ {
39
+ searchTerm,
40
+ onSearchChange: setSearchTerm,
41
+ placeholder: labels.searchPlaceholder ?? labels.title,
42
+ noBorder: true
43
+ }
44
+ ) : void 0
36
45
  }
37
46
  );
38
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
39
- SearchBar,
40
- {
41
- searchTerm,
42
- onSearchChange: setSearchTerm,
43
- placeholder: labels.searchPlaceholder ?? labels.title
44
- }
45
- ) : void 0;
46
47
  const content = loading ? /* @__PURE__ */ jsx(PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsx(PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredModels.map((model) => /* @__PURE__ */ jsx(
47
48
  EntityCard,
48
49
  {
@@ -54,12 +55,16 @@ function AgentsModelsPageView({ labels, models, loading }) {
54
55
  },
55
56
  model.id
56
57
  )) });
57
- return /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content });
58
+ return /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content });
58
59
  }
59
60
  function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpdate, onDelete }) {
60
61
  const [editing, setEditing] = useState(null);
61
62
  const [createOpen, setCreateOpen] = useState(false);
63
+ const [searchTerm, setSearchTerm] = useState("");
62
64
  const modelOptions = models.map((model) => ({ value: model.id, label: `${model.name} (${model.provider})` }));
65
+ const allAgents = agents;
66
+ const filteredAgents = searchTerm.trim() ? allAgents.filter((agent) => String(agent.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allAgents;
67
+ const isEmpty = allAgents.length === 0;
63
68
  const hero = /* @__PURE__ */ jsx(
64
69
  HeroSection,
65
70
  {
@@ -68,7 +73,16 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
68
73
  title: labels.title,
69
74
  subtitle: labels.subtitle,
70
75
  gradient: "from-violet-500 to-indigo-700",
71
- toolbar: /* @__PURE__ */ jsx(
76
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
77
+ SearchBar,
78
+ {
79
+ searchTerm,
80
+ onSearchChange: setSearchTerm,
81
+ placeholder: labels.searchPlaceholder ?? labels.title,
82
+ noBorder: true
83
+ }
84
+ ) : void 0,
85
+ actions: /* @__PURE__ */ jsx(
72
86
  CreateActionButton,
73
87
  {
74
88
  mode: "desktop",
@@ -88,7 +102,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
88
102
  accent: "violet"
89
103
  }
90
104
  );
91
- const content = loading ? /* @__PURE__ */ jsx(PageLoadingState, {}) : agents.length === 0 ? /* @__PURE__ */ jsx(PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: agents.map((agent) => {
105
+ const content = loading ? /* @__PURE__ */ jsx(PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsx(PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredAgents.map((agent) => {
92
106
  const modelRecord = models.find((model) => model.id === String(agent.modelId ?? ""));
93
107
  return /* @__PURE__ */ jsx(
94
108
  EntityCard,
@@ -211,6 +225,14 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
211
225
  }
212
226
  return map;
213
227
  }, [agents]);
228
+ const allPrompts = prompts;
229
+ const filteredPrompts = searchTerm.trim() ? allPrompts.filter((prompt) => {
230
+ const term = searchTerm.trim().toLowerCase();
231
+ const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
232
+ const promptText = prompt.prompt ?? "";
233
+ return agentName.toLowerCase().includes(term) || promptText.toLowerCase().includes(term);
234
+ }) : allPrompts;
235
+ const isEmpty = allPrompts.length === 0;
214
236
  const hero = /* @__PURE__ */ jsx(
215
237
  HeroSection,
216
238
  {
@@ -219,7 +241,16 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
219
241
  title: labels.title,
220
242
  subtitle: labels.subtitle,
221
243
  gradient: "from-sky-500 to-blue-700",
222
- toolbar: /* @__PURE__ */ jsx(
244
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
245
+ SearchBar,
246
+ {
247
+ searchTerm,
248
+ onSearchChange: setSearchTerm,
249
+ placeholder: labels.searchPlaceholder ?? labels.title,
250
+ noBorder: true
251
+ }
252
+ ) : void 0,
253
+ actions: /* @__PURE__ */ jsx(
223
254
  CreateActionButton,
224
255
  {
225
256
  mode: "desktop",
@@ -239,22 +270,6 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
239
270
  accent: "sky"
240
271
  }
241
272
  );
242
- const allPrompts = prompts;
243
- const filteredPrompts = searchTerm.trim() ? allPrompts.filter((prompt) => {
244
- const term = searchTerm.trim().toLowerCase();
245
- const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
246
- const promptText = prompt.prompt ?? "";
247
- return agentName.toLowerCase().includes(term) || promptText.toLowerCase().includes(term);
248
- }) : allPrompts;
249
- const isEmpty = allPrompts.length === 0;
250
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
251
- SearchBar,
252
- {
253
- searchTerm,
254
- onSearchChange: setSearchTerm,
255
- placeholder: labels.searchPlaceholder ?? labels.title
256
- }
257
- ) : void 0;
258
273
  const content = loading ? /* @__PURE__ */ jsx(PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsx(PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredPrompts.map((prompt) => {
259
274
  const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
260
275
  const key = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
@@ -287,7 +302,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
287
302
  );
288
303
  }) });
289
304
  return /* @__PURE__ */ jsxs(Fragment, { children: [
290
- /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content, mobileAction }),
305
+ /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content, mobileAction }),
291
306
  /* @__PURE__ */ jsx(
292
307
  GlassModal,
293
308
  {
@@ -362,14 +377,6 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
362
377
  const allTools = tools;
363
378
  const filteredTools = searchTerm.trim() ? allTools.filter((tool) => tool.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allTools;
364
379
  const isEmpty = allTools.length === 0;
365
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
366
- SearchBar,
367
- {
368
- searchTerm,
369
- onSearchChange: setSearchTerm,
370
- placeholder: labels.searchPlaceholder ?? labels.title
371
- }
372
- ) : void 0;
373
380
  const hero = /* @__PURE__ */ jsx(
374
381
  HeroSection,
375
382
  {
@@ -378,7 +385,16 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
378
385
  title: labels.title,
379
386
  subtitle: labels.subtitle,
380
387
  gradient: "from-amber-500 to-orange-700",
381
- toolbar: /* @__PURE__ */ jsx(
388
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
389
+ SearchBar,
390
+ {
391
+ searchTerm,
392
+ onSearchChange: setSearchTerm,
393
+ placeholder: labels.searchPlaceholder ?? labels.title,
394
+ noBorder: true
395
+ }
396
+ ) : void 0,
397
+ actions: /* @__PURE__ */ jsx(
382
398
  CreateActionButton,
383
399
  {
384
400
  mode: "desktop",
@@ -426,7 +442,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
426
442
  tool.agentToolId
427
443
  )) });
428
444
  return /* @__PURE__ */ jsxs(Fragment, { children: [
429
- /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content, mobileAction }),
445
+ /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content, mobileAction }),
430
446
  createOpen && /* @__PURE__ */ jsx(
431
447
  ToolEditor,
432
448
  {
@@ -611,14 +627,14 @@ function ParametersEditor({
611
627
  onValueChange: (description) => update(index, { description })
612
628
  }
613
629
  ),
614
- /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 pb-2 text-xs text-gray-700 dark:text-gray-300", children: [
630
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 pb-2 text-xs text-slate-700 dark:text-slate-300", children: [
615
631
  /* @__PURE__ */ jsx(
616
632
  "input",
617
633
  {
618
634
  type: "checkbox",
619
635
  checked: param.required,
620
636
  onChange: (event) => update(index, { required: event.target.checked }),
621
- className: "h-4 w-4 rounded border-gray-300"
637
+ className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-white/15 dark:bg-white/[0.08]"
622
638
  }
623
639
  ),
624
640
  "Required"
@@ -916,14 +932,6 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
916
932
  const allRules = rules;
917
933
  const filteredRules = searchTerm.trim() ? allRules.filter((rule) => (rule.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allRules;
918
934
  const isEmpty = allRules.length === 0;
919
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
920
- SearchBar,
921
- {
922
- searchTerm,
923
- onSearchChange: setSearchTerm,
924
- placeholder: labels.searchPlaceholder ?? labels.title
925
- }
926
- ) : void 0;
927
935
  const hero = /* @__PURE__ */ jsx(
928
936
  HeroSection,
929
937
  {
@@ -932,7 +940,16 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
932
940
  title: labels.title,
933
941
  subtitle: labels.subtitle,
934
942
  gradient: "from-fuchsia-500 to-purple-700",
935
- toolbar: /* @__PURE__ */ jsx(
943
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
944
+ SearchBar,
945
+ {
946
+ searchTerm,
947
+ onSearchChange: setSearchTerm,
948
+ placeholder: labels.searchPlaceholder ?? labels.title,
949
+ noBorder: true
950
+ }
951
+ ) : void 0,
952
+ actions: /* @__PURE__ */ jsx(
936
953
  CreateActionButton,
937
954
  {
938
955
  mode: "desktop",
@@ -980,7 +997,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
980
997
  rule.ruleId
981
998
  )) });
982
999
  return /* @__PURE__ */ jsxs(Fragment, { children: [
983
- /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content, mobileAction }),
1000
+ /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content, mobileAction }),
984
1001
  createOpen && /* @__PURE__ */ jsx(
985
1002
  RuleEditor,
986
1003
  {
@@ -1222,7 +1239,7 @@ function DatasourcesPageView({
1222
1239
  useSampleData ? SAMPLE_DATASOURCES : []
1223
1240
  );
1224
1241
  const allDatasources = externalDatasources ?? localDatasources;
1225
- const datasources = searchTerm.trim() ? allDatasources.filter((ds) => ds.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allDatasources;
1242
+ const datasources = searchTerm.trim() ? allDatasources.filter((ds) => (ds.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allDatasources;
1226
1243
  const isEmpty = allDatasources.length === 0;
1227
1244
  function handleCreate(data) {
1228
1245
  if (onCreate) {
@@ -1256,7 +1273,16 @@ function DatasourcesPageView({
1256
1273
  title: labels.title,
1257
1274
  subtitle: labels.subtitle,
1258
1275
  gradient: "from-amber-500 to-orange-600",
1259
- toolbar: /* @__PURE__ */ jsx(
1276
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
1277
+ SearchBar,
1278
+ {
1279
+ searchTerm,
1280
+ onSearchChange: setSearchTerm,
1281
+ placeholder: labels.searchPlaceholder ?? labels.title,
1282
+ noBorder: true
1283
+ }
1284
+ ) : void 0,
1285
+ actions: /* @__PURE__ */ jsx(
1260
1286
  CreateActionButton,
1261
1287
  {
1262
1288
  mode: "desktop",
@@ -1276,14 +1302,6 @@ function DatasourcesPageView({
1276
1302
  accent: "amber"
1277
1303
  }
1278
1304
  ),
1279
- !isEmpty && /* @__PURE__ */ jsx(
1280
- SearchBar,
1281
- {
1282
- searchTerm,
1283
- onSearchChange: setSearchTerm,
1284
- placeholder: labels.searchPlaceholder ?? labels.title
1285
- }
1286
- ),
1287
1305
  isEmpty ? /* @__PURE__ */ jsx(
1288
1306
  PageEmptyState,
1289
1307
  {
@@ -1297,7 +1315,7 @@ function DatasourcesPageView({
1297
1315
  const gradient = getDialectGradient(ds.dialect);
1298
1316
  const dialectLabel = getDialectLabel(ds.dialect);
1299
1317
  const logoSrc = getDialectLogoSrc(ds.dialect);
1300
- const iconElement = logoSrc ? /* @__PURE__ */ jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-white shadow-sm ring-1 ring-black/5 dark:bg-white/10 dark:ring-white/10", children: /* @__PURE__ */ jsx("img", { src: logoSrc, alt: dialectLabel, className: "h-7 w-7 object-contain" }) }) : /* @__PURE__ */ jsx("div", { className: `flex h-11 w-11 items-center justify-center rounded-lg bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsx(Icon, { className: "h-6 w-6 text-white" }) });
1318
+ const iconElement = logoSrc ? /* @__PURE__ */ jsx("div", { className: "liquid-surface flex h-11 w-11 items-center justify-center rounded-lg", children: /* @__PURE__ */ jsx("img", { src: logoSrc, alt: dialectLabel, className: "h-7 w-7 object-contain" }) }) : /* @__PURE__ */ jsx("div", { className: `flex h-11 w-11 items-center justify-center rounded-lg bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsx(Icon, { className: "h-6 w-6 text-white" }) });
1301
1319
  return /* @__PURE__ */ jsx(
1302
1320
  EntityCard,
1303
1321
  {
@@ -1306,20 +1324,20 @@ function DatasourcesPageView({
1306
1324
  title: ds.name ?? ds.id,
1307
1325
  subtitle: dialectLabel,
1308
1326
  status: /* @__PURE__ */ jsx(Badge, { color: ds.enabled ? "emerald" : "zinc", children: ds.enabled ? labels.enabled : labels.disabled }),
1309
- footer: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-gray-400 dark:text-gray-500", children: [
1327
+ footer: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-slate-500 dark:text-slate-400", children: [
1310
1328
  ds.readOnly && /* @__PURE__ */ jsx("span", { className: "rounded-full bg-blue-100 px-2 py-0.5 text-[10px] font-semibold text-blue-700 dark:bg-blue-900/30 dark:text-blue-300", children: "Read-only" }),
1311
1329
  ds.timeoutMs && /* @__PURE__ */ jsxs("span", { children: [
1312
1330
  ds.timeoutMs / 1e3,
1313
1331
  "s timeout"
1314
1332
  ] })
1315
1333
  ] }),
1316
- children: /* @__PURE__ */ jsxs("div", { className: "mt-2 text-xs text-gray-500 dark:text-gray-400", children: [
1334
+ children: /* @__PURE__ */ jsxs("div", { className: "mt-2 text-xs text-slate-500 dark:text-slate-400", children: [
1317
1335
  /* @__PURE__ */ jsxs("div", { children: [
1318
1336
  labels.dialect,
1319
1337
  ": ",
1320
1338
  dialectLabel
1321
1339
  ] }),
1322
- ds.slug && /* @__PURE__ */ jsxs("div", { className: "truncate text-gray-400", children: [
1340
+ ds.slug && /* @__PURE__ */ jsxs("div", { className: "truncate text-slate-400 dark:text-slate-500", children: [
1323
1341
  "/",
1324
1342
  ds.slug
1325
1343
  ] })
@@ -1342,7 +1360,7 @@ function DatasourcesPageView({
1342
1360
  function DashboardPageView({ labels, appLogo }) {
1343
1361
  const hero = /* @__PURE__ */ jsxs("div", { className: "w-full text-center", children: [
1344
1362
  /* @__PURE__ */ jsx("div", { className: "flex justify-center mb-6", children: appLogo }),
1345
- /* @__PURE__ */ jsx("p", { className: "mt-3 text-base text-gray-500 dark:text-gray-400", children: labels.subtitle })
1363
+ /* @__PURE__ */ jsx("p", { className: "mt-3 text-base text-slate-600 dark:text-slate-300", children: labels.subtitle })
1346
1364
  ] });
1347
1365
  return /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content: null });
1348
1366
  }
@@ -1364,17 +1382,18 @@ function AgentsIndexPageView({ labels }) {
1364
1382
  label: labels.title,
1365
1383
  title: labels.title,
1366
1384
  subtitle: labels.subtitle,
1367
- gradient: "from-violet-500 to-indigo-700"
1385
+ gradient: "from-violet-500 to-indigo-700",
1386
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
1387
+ SearchBar,
1388
+ {
1389
+ searchTerm,
1390
+ onSearchChange: setSearchTerm,
1391
+ placeholder: labels.searchPlaceholder ?? labels.title,
1392
+ noBorder: true
1393
+ }
1394
+ ) : void 0
1368
1395
  }
1369
1396
  );
1370
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
1371
- SearchBar,
1372
- {
1373
- searchTerm,
1374
- onSearchChange: setSearchTerm,
1375
- placeholder: labels.searchPlaceholder ?? labels.title
1376
- }
1377
- ) : void 0;
1378
1397
  const content = /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4", children: filteredTiles.map((tile) => {
1379
1398
  const Icon = tile.icon;
1380
1399
  return /* @__PURE__ */ jsx(Link, { href: tile.href, className: "block focus:outline-none", children: /* @__PURE__ */ jsx(
@@ -1387,7 +1406,7 @@ function AgentsIndexPageView({ labels }) {
1387
1406
  }
1388
1407
  ) }, tile.id);
1389
1408
  }) });
1390
- return /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content });
1409
+ return /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content });
1391
1410
  }
1392
1411
  function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublish }) {
1393
1412
  const selectedWorkflow = workflows[0] ?? null;
@@ -1516,26 +1535,29 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1516
1535
  title: labels.title,
1517
1536
  subtitle: labels.subtitle,
1518
1537
  gradient: "from-indigo-500 to-sky-700",
1519
- toolbar: /* @__PURE__ */ jsx("div", { className: "w-48", children: /* @__PURE__ */ jsx(
1520
- FormSelect,
1521
- {
1522
- name: "statusFilter",
1523
- label: labels.filterStatus,
1524
- options: statusOptions,
1525
- value: statusFilter,
1526
- onValueChange: setStatusFilter
1527
- }
1528
- ) })
1538
+ toolbar: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-end", children: [
1539
+ !isEmpty && /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
1540
+ SearchBar,
1541
+ {
1542
+ searchTerm,
1543
+ onSearchChange: setSearchTerm,
1544
+ placeholder: labels.searchPlaceholder ?? labels.title,
1545
+ noBorder: true
1546
+ }
1547
+ ) }),
1548
+ /* @__PURE__ */ jsx("div", { className: "w-full sm:w-48", children: /* @__PURE__ */ jsx(
1549
+ FormSelect,
1550
+ {
1551
+ name: "statusFilter",
1552
+ label: labels.filterStatus,
1553
+ options: statusOptions,
1554
+ value: statusFilter,
1555
+ onValueChange: setStatusFilter
1556
+ }
1557
+ ) })
1558
+ ] })
1529
1559
  }
1530
1560
  );
1531
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
1532
- SearchBar,
1533
- {
1534
- searchTerm,
1535
- onSearchChange: setSearchTerm,
1536
- placeholder: labels.searchPlaceholder ?? labels.title
1537
- }
1538
- ) : void 0;
1539
1561
  const content = loading ? /* @__PURE__ */ jsx(PageLoadingState, {}) : filteredRuns.length === 0 ? /* @__PURE__ */ jsx(PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredRuns.map((run) => /* @__PURE__ */ jsxs(
1540
1562
  EntityCard,
1541
1563
  {
@@ -1562,7 +1584,7 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1562
1584
  },
1563
1585
  run.id
1564
1586
  )) });
1565
- return /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content });
1587
+ return /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content });
1566
1588
  }
1567
1589
  function RunTimelinePageView({ labels, entries, loading, runId }) {
1568
1590
  const hero = /* @__PURE__ */ jsx(
@@ -1677,14 +1699,6 @@ function ConnectionsPageView({
1677
1699
  const allConnections = connections;
1678
1700
  const filteredConnections = searchTerm.trim() ? allConnections.filter((conn) => conn.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allConnections;
1679
1701
  const isEmpty = allConnections.length === 0;
1680
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
1681
- SearchBar,
1682
- {
1683
- searchTerm,
1684
- onSearchChange: setSearchTerm,
1685
- placeholder: labels.searchPlaceholder ?? labels.title
1686
- }
1687
- ) : void 0;
1688
1702
  const hero = /* @__PURE__ */ jsx(
1689
1703
  HeroSection,
1690
1704
  {
@@ -1693,7 +1707,16 @@ function ConnectionsPageView({
1693
1707
  title: labels.title,
1694
1708
  subtitle: labels.subtitle,
1695
1709
  gradient: "from-sky-500 to-indigo-600",
1696
- toolbar: /* @__PURE__ */ jsx(
1710
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
1711
+ SearchBar,
1712
+ {
1713
+ searchTerm,
1714
+ onSearchChange: setSearchTerm,
1715
+ placeholder: labels.searchPlaceholder ?? labels.title,
1716
+ noBorder: true
1717
+ }
1718
+ ) : void 0,
1719
+ actions: /* @__PURE__ */ jsx(
1697
1720
  CreateActionButton,
1698
1721
  {
1699
1722
  mode: "desktop",
@@ -1748,7 +1771,7 @@ function ConnectionsPageView({
1748
1771
  conn.id
1749
1772
  )) });
1750
1773
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1751
- /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content, mobileAction }),
1774
+ /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content, mobileAction }),
1752
1775
  createOpen && /* @__PURE__ */ jsx(
1753
1776
  ConnectionEditor,
1754
1777
  {
@@ -2003,14 +2026,6 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2003
2026
  const allCredentials = credentials;
2004
2027
  const filteredCredentials = searchTerm.trim() ? allCredentials.filter((secret) => secret.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allCredentials;
2005
2028
  const isEmpty = allCredentials.length === 0;
2006
- const summary = !isEmpty ? /* @__PURE__ */ jsx(
2007
- SearchBar,
2008
- {
2009
- searchTerm,
2010
- onSearchChange: setSearchTerm,
2011
- placeholder: labels.searchPlaceholder ?? labels.title
2012
- }
2013
- ) : void 0;
2014
2029
  const typeOptions = [
2015
2030
  { value: "generic", label: labels.typeGeneric },
2016
2031
  { value: "api_key", label: labels.typeApiKey },
@@ -2025,7 +2040,16 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2025
2040
  title: labels.title,
2026
2041
  subtitle: labels.subtitle,
2027
2042
  gradient: "from-rose-500 to-orange-600",
2028
- toolbar: /* @__PURE__ */ jsx(
2043
+ toolbar: !isEmpty ? /* @__PURE__ */ jsx(
2044
+ SearchBar,
2045
+ {
2046
+ searchTerm,
2047
+ onSearchChange: setSearchTerm,
2048
+ placeholder: labels.searchPlaceholder ?? labels.title,
2049
+ noBorder: true
2050
+ }
2051
+ ) : void 0,
2052
+ actions: /* @__PURE__ */ jsx(
2029
2053
  CreateActionButton,
2030
2054
  {
2031
2055
  mode: "desktop",
@@ -2090,7 +2114,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2090
2114
  secret.secretId
2091
2115
  )) });
2092
2116
  return /* @__PURE__ */ jsxs(Fragment, { children: [
2093
- /* @__PURE__ */ jsx(ManagementPageLayout, { hero, summary, content, mobileAction }),
2117
+ /* @__PURE__ */ jsx(ManagementPageLayout, { hero, content, mobileAction }),
2094
2118
  /* @__PURE__ */ jsx(
2095
2119
  GlassModal,
2096
2120
  {