@datatechsolutions/ui 3.6.0 → 3.6.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 (41) hide show
  1. package/dist/astrlabe/index.js +106 -106
  2. package/dist/astrlabe/index.mjs +2 -2
  3. package/dist/astrlabe/workflow-canvas.js +2 -2
  4. package/dist/astrlabe/workflow-canvas.mjs +1 -1
  5. package/dist/{chunk-I63NFWIA.mjs → chunk-3Z66NXEB.mjs} +3 -3
  6. package/dist/{chunk-I63NFWIA.mjs.map → chunk-3Z66NXEB.mjs.map} +1 -1
  7. package/dist/{chunk-XTXLRQ3H.mjs → chunk-4JDJRGAB.mjs} +27 -28
  8. package/dist/chunk-4JDJRGAB.mjs.map +1 -0
  9. package/dist/{chunk-WEZ722BS.mjs → chunk-5ZAZ2C7A.mjs} +4 -4
  10. package/dist/{chunk-WEZ722BS.mjs.map → chunk-5ZAZ2C7A.mjs.map} +1 -1
  11. package/dist/{chunk-UWSMHKOF.js → chunk-6ZMTJSQF.js} +78 -78
  12. package/dist/chunk-6ZMTJSQF.js.map +1 -0
  13. package/dist/{chunk-VPOIX2DY.js → chunk-DRORQGN2.js} +27 -27
  14. package/dist/{chunk-VPOIX2DY.js.map → chunk-DRORQGN2.js.map} +1 -1
  15. package/dist/{chunk-QTA5I6FC.mjs → chunk-KDFBN2L2.mjs} +34 -31
  16. package/dist/chunk-KDFBN2L2.mjs.map +1 -0
  17. package/dist/{chunk-QHP2MR2F.js → chunk-KEWRLEYV.js} +4 -4
  18. package/dist/{chunk-QHP2MR2F.js.map → chunk-KEWRLEYV.js.map} +1 -1
  19. package/dist/{chunk-DYWSG42B.mjs → chunk-MQNXKBFP.mjs} +8 -8
  20. package/dist/chunk-MQNXKBFP.mjs.map +1 -0
  21. package/dist/{chunk-3WXMBAGN.js → chunk-MUOTTGCX.js} +27 -28
  22. package/dist/chunk-MUOTTGCX.js.map +1 -0
  23. package/dist/{chunk-S7AV6XEY.js → chunk-SQZGQOKU.js} +32 -29
  24. package/dist/chunk-SQZGQOKU.js.map +1 -0
  25. package/dist/platform/agents-workspace.js +4 -4
  26. package/dist/platform/agents-workspace.mjs +3 -3
  27. package/dist/platform/index.js +15 -15
  28. package/dist/platform/index.mjs +6 -6
  29. package/dist/platform/pages/index.js +325 -320
  30. package/dist/platform/pages/index.js.map +1 -1
  31. package/dist/platform/pages/index.mjs +320 -315
  32. package/dist/platform/pages/index.mjs.map +1 -1
  33. package/dist/platform/workflow-canvas-shell.js +3 -3
  34. package/dist/platform/workflow-canvas-shell.mjs +2 -2
  35. package/package.json +1 -1
  36. package/dist/chunk-3WXMBAGN.js.map +0 -1
  37. package/dist/chunk-DYWSG42B.mjs.map +0 -1
  38. package/dist/chunk-QTA5I6FC.mjs.map +0 -1
  39. package/dist/chunk-S7AV6XEY.js.map +0 -1
  40. package/dist/chunk-UWSMHKOF.js.map +0 -1
  41. package/dist/chunk-XTXLRQ3H.mjs.map +0 -1
@@ -2,12 +2,12 @@
2
2
  'use strict';
3
3
 
4
4
  var chunk3T2WGL47_js = require('../../chunk-3T2WGL47.js');
5
- var chunk3WXMBAGN_js = require('../../chunk-3WXMBAGN.js');
5
+ var chunkMUOTTGCX_js = require('../../chunk-MUOTTGCX.js');
6
6
  var chunkLVK7VXW7_js = require('../../chunk-LVK7VXW7.js');
7
- var chunkUWSMHKOF_js = require('../../chunk-UWSMHKOF.js');
7
+ var chunk6ZMTJSQF_js = require('../../chunk-6ZMTJSQF.js');
8
8
  require('../../chunk-55H6WZQP.js');
9
9
  require('../../chunk-DJDZIRM6.js');
10
- require('../../chunk-S7AV6XEY.js');
10
+ require('../../chunk-SQZGQOKU.js');
11
11
  var chunkGCYYGSHU_js = require('../../chunk-GCYYGSHU.js');
12
12
  require('../../chunk-UZ3CMNUJ.js');
13
13
  require('../../chunk-YXN2K77G.js');
@@ -32,29 +32,30 @@ 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",
36
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
37
- chunkGCYYGSHU_js.SearchBar,
38
- {
39
- searchTerm,
40
- onSearchChange: setSearchTerm,
41
- placeholder: labels.searchPlaceholder ?? labels.title,
42
- noBorder: true
43
- }
44
- ) : void 0
35
+ gradient: "from-emerald-500 to-teal-700"
45
36
  }
46
37
  );
47
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredModels.map((model) => /* @__PURE__ */ jsxRuntime.jsx(
48
- chunkGCYYGSHU_js.EntityCard,
49
- {
50
- accentGradient: "from-emerald-500 to-teal-700",
51
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-emerald-500/10 text-emerald-600 dark:bg-emerald-500/20 dark:text-emerald-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CubeTransparentIcon, { className: "h-6 w-6" }) }),
52
- title: model.name,
53
- subtitle: `${labels.provider}: ${model.provider}`,
54
- status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: model.enabled ? "emerald" : "zinc", children: model.enabled ? labels.enabled : labels.disabled })
55
- },
56
- model.id
57
- )) });
38
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
39
+ /* @__PURE__ */ jsxRuntime.jsx(
40
+ chunkGCYYGSHU_js.SearchBar,
41
+ {
42
+ searchTerm,
43
+ onSearchChange: setSearchTerm,
44
+ placeholder: labels.searchPlaceholder ?? labels.title
45
+ }
46
+ ),
47
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredModels.map((model) => /* @__PURE__ */ jsxRuntime.jsx(
48
+ chunkGCYYGSHU_js.EntityCard,
49
+ {
50
+ accentGradient: "from-emerald-500 to-teal-700",
51
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-emerald-500/10 text-emerald-600 dark:bg-emerald-500/20 dark:text-emerald-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CubeTransparentIcon, { className: "h-6 w-6" }) }),
52
+ title: model.name,
53
+ subtitle: `${labels.provider}: ${model.provider}`,
54
+ status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: model.enabled ? "emerald" : "zinc", children: model.enabled ? labels.enabled : labels.disabled })
55
+ },
56
+ model.id
57
+ )) })
58
+ ] });
58
59
  return /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content });
59
60
  }
60
61
  function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpdate, onDelete }) {
@@ -241,16 +242,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
241
242
  title: labels.title,
242
243
  subtitle: labels.subtitle,
243
244
  gradient: "from-sky-500 to-blue-700",
244
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
245
- chunkGCYYGSHU_js.SearchBar,
246
- {
247
- searchTerm,
248
- onSearchChange: setSearchTerm,
249
- placeholder: labels.searchPlaceholder ?? labels.title,
250
- noBorder: true
251
- }
252
- ) : void 0,
253
- actions: /* @__PURE__ */ jsxRuntime.jsx(
245
+ toolbar: /* @__PURE__ */ jsxRuntime.jsx(
254
246
  chunkGCYYGSHU_js.CreateActionButton,
255
247
  {
256
248
  mode: "desktop",
@@ -270,37 +262,47 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
270
262
  accent: "sky"
271
263
  }
272
264
  );
273
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredPrompts.map((prompt) => {
274
- const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
275
- const key = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
276
- return /* @__PURE__ */ jsxRuntime.jsx(
277
- chunkGCYYGSHU_js.EntityCard,
265
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
266
+ /* @__PURE__ */ jsxRuntime.jsx(
267
+ chunkGCYYGSHU_js.SearchBar,
278
268
  {
279
- accentGradient: "from-sky-500 to-blue-700",
280
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-sky-500/10 text-sky-600 dark:bg-sky-500/20 dark:text-sky-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ChatBubbleLeftEllipsisIcon, { className: "h-6 w-6" }) }),
281
- title: agentName,
282
- subtitle: `${prompt.locale} \xB7 v${prompt.version}`,
283
- status: prompt.isActive ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "emerald", children: labels.isActive }) : null,
284
- footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
285
- !prompt.isActive && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onActivate(prompt), children: labels.activate }),
286
- /* @__PURE__ */ jsxRuntime.jsx(
287
- chunkGCYYGSHU_js.Button,
288
- {
289
- type: "button",
290
- size: "sm",
291
- color: "rose",
292
- onClick: () => {
293
- if (window.confirm(labels.deleteConfirm)) onDelete(prompt);
294
- },
295
- children: labels.delete
296
- }
297
- )
298
- ] }),
299
- children: prompt.prompt && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-3 text-xs text-slate-500 dark:text-slate-400", children: prompt.prompt })
300
- },
301
- key
302
- );
303
- }) });
269
+ searchTerm,
270
+ onSearchChange: setSearchTerm,
271
+ placeholder: labels.searchPlaceholder ?? labels.title
272
+ }
273
+ ),
274
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredPrompts.map((prompt) => {
275
+ const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
276
+ const key = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
277
+ return /* @__PURE__ */ jsxRuntime.jsx(
278
+ chunkGCYYGSHU_js.EntityCard,
279
+ {
280
+ accentGradient: "from-sky-500 to-blue-700",
281
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-sky-500/10 text-sky-600 dark:bg-sky-500/20 dark:text-sky-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ChatBubbleLeftEllipsisIcon, { className: "h-6 w-6" }) }),
282
+ title: agentName,
283
+ subtitle: `${prompt.locale} \xB7 v${prompt.version}`,
284
+ status: prompt.isActive ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "emerald", children: labels.isActive }) : null,
285
+ footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
286
+ !prompt.isActive && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onActivate(prompt), children: labels.activate }),
287
+ /* @__PURE__ */ jsxRuntime.jsx(
288
+ chunkGCYYGSHU_js.Button,
289
+ {
290
+ type: "button",
291
+ size: "sm",
292
+ color: "rose",
293
+ onClick: () => {
294
+ if (window.confirm(labels.deleteConfirm)) onDelete(prompt);
295
+ },
296
+ children: labels.delete
297
+ }
298
+ )
299
+ ] }),
300
+ children: prompt.prompt && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-3 text-xs text-slate-500 dark:text-slate-400", children: prompt.prompt })
301
+ },
302
+ key
303
+ );
304
+ }) })
305
+ ] });
304
306
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
305
307
  /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content, mobileAction }),
306
308
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -385,16 +387,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
385
387
  title: labels.title,
386
388
  subtitle: labels.subtitle,
387
389
  gradient: "from-amber-500 to-orange-700",
388
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
389
- chunkGCYYGSHU_js.SearchBar,
390
- {
391
- searchTerm,
392
- onSearchChange: setSearchTerm,
393
- placeholder: labels.searchPlaceholder ?? labels.title,
394
- noBorder: true
395
- }
396
- ) : void 0,
397
- actions: /* @__PURE__ */ jsxRuntime.jsx(
390
+ toolbar: /* @__PURE__ */ jsxRuntime.jsx(
398
391
  chunkGCYYGSHU_js.CreateActionButton,
399
392
  {
400
393
  mode: "desktop",
@@ -414,33 +407,43 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
414
407
  accent: "amber"
415
408
  }
416
409
  );
417
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsx(
418
- chunkGCYYGSHU_js.EntityCard,
419
- {
420
- accentGradient: "from-amber-500 to-orange-700",
421
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-amber-500/10 text-amber-600 dark:bg-amber-500/20 dark:text-amber-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-6 w-6" }) }),
422
- title: tool.name,
423
- subtitle: toolTypeLabel(tool),
424
- status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: tool.enabled ? "emerald" : "zinc", children: tool.enabled ? labels.enabled : labels.disabled }),
425
- footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
426
- /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(tool), children: labels.edit }),
427
- /* @__PURE__ */ jsxRuntime.jsx(
428
- chunkGCYYGSHU_js.Button,
429
- {
430
- type: "button",
431
- size: "sm",
432
- color: "rose",
433
- onClick: () => {
434
- if (window.confirm(labels.deleteConfirm)) onDelete(tool);
435
- },
436
- children: labels.delete
437
- }
438
- )
439
- ] }),
440
- children: tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: tool.description })
441
- },
442
- tool.agentToolId
443
- )) });
410
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
411
+ /* @__PURE__ */ jsxRuntime.jsx(
412
+ chunkGCYYGSHU_js.SearchBar,
413
+ {
414
+ searchTerm,
415
+ onSearchChange: setSearchTerm,
416
+ placeholder: labels.searchPlaceholder ?? labels.title
417
+ }
418
+ ),
419
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsx(
420
+ chunkGCYYGSHU_js.EntityCard,
421
+ {
422
+ accentGradient: "from-amber-500 to-orange-700",
423
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-amber-500/10 text-amber-600 dark:bg-amber-500/20 dark:text-amber-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-6 w-6" }) }),
424
+ title: tool.name,
425
+ subtitle: toolTypeLabel(tool),
426
+ status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: tool.enabled ? "emerald" : "zinc", children: tool.enabled ? labels.enabled : labels.disabled }),
427
+ footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
428
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(tool), children: labels.edit }),
429
+ /* @__PURE__ */ jsxRuntime.jsx(
430
+ chunkGCYYGSHU_js.Button,
431
+ {
432
+ type: "button",
433
+ size: "sm",
434
+ color: "rose",
435
+ onClick: () => {
436
+ if (window.confirm(labels.deleteConfirm)) onDelete(tool);
437
+ },
438
+ children: labels.delete
439
+ }
440
+ )
441
+ ] }),
442
+ children: tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: tool.description })
443
+ },
444
+ tool.agentToolId
445
+ )) })
446
+ ] });
444
447
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
445
448
  /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content, mobileAction }),
446
449
  createOpen && /* @__PURE__ */ jsxRuntime.jsx(
@@ -940,16 +943,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
940
943
  title: labels.title,
941
944
  subtitle: labels.subtitle,
942
945
  gradient: "from-fuchsia-500 to-purple-700",
943
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
944
- chunkGCYYGSHU_js.SearchBar,
945
- {
946
- searchTerm,
947
- onSearchChange: setSearchTerm,
948
- placeholder: labels.searchPlaceholder ?? labels.title,
949
- noBorder: true
950
- }
951
- ) : void 0,
952
- actions: /* @__PURE__ */ jsxRuntime.jsx(
946
+ toolbar: /* @__PURE__ */ jsxRuntime.jsx(
953
947
  chunkGCYYGSHU_js.CreateActionButton,
954
948
  {
955
949
  mode: "desktop",
@@ -969,33 +963,43 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
969
963
  accent: "fuchsia"
970
964
  }
971
965
  );
972
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsx(
973
- chunkGCYYGSHU_js.EntityCard,
974
- {
975
- accentGradient: "from-fuchsia-500 to-purple-700",
976
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-fuchsia-500/10 text-fuchsia-600 dark:bg-fuchsia-500/20 dark:text-fuchsia-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-6 w-6" }) }),
977
- title: rule.name,
978
- subtitle: `${labels.order}: ${rule.order ?? 0}`,
979
- status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: rule.enabled ? "emerald" : "zinc", children: rule.enabled ? labels.enabled : labels.disabled }),
980
- footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
981
- /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(rule), children: labels.edit }),
982
- /* @__PURE__ */ jsxRuntime.jsx(
983
- chunkGCYYGSHU_js.Button,
984
- {
985
- type: "button",
986
- size: "sm",
987
- color: "rose",
988
- onClick: () => {
989
- if (window.confirm(labels.deleteConfirm)) onDelete(rule);
990
- },
991
- children: labels.delete
992
- }
993
- )
994
- ] }),
995
- children: rule.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: rule.description })
996
- },
997
- rule.ruleId
998
- )) });
966
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
967
+ /* @__PURE__ */ jsxRuntime.jsx(
968
+ chunkGCYYGSHU_js.SearchBar,
969
+ {
970
+ searchTerm,
971
+ onSearchChange: setSearchTerm,
972
+ placeholder: labels.searchPlaceholder ?? labels.title
973
+ }
974
+ ),
975
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsx(
976
+ chunkGCYYGSHU_js.EntityCard,
977
+ {
978
+ accentGradient: "from-fuchsia-500 to-purple-700",
979
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-fuchsia-500/10 text-fuchsia-600 dark:bg-fuchsia-500/20 dark:text-fuchsia-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-6 w-6" }) }),
980
+ title: rule.name,
981
+ subtitle: `${labels.order}: ${rule.order ?? 0}`,
982
+ status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: rule.enabled ? "emerald" : "zinc", children: rule.enabled ? labels.enabled : labels.disabled }),
983
+ footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
984
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(rule), children: labels.edit }),
985
+ /* @__PURE__ */ jsxRuntime.jsx(
986
+ chunkGCYYGSHU_js.Button,
987
+ {
988
+ type: "button",
989
+ size: "sm",
990
+ color: "rose",
991
+ onClick: () => {
992
+ if (window.confirm(labels.deleteConfirm)) onDelete(rule);
993
+ },
994
+ children: labels.delete
995
+ }
996
+ )
997
+ ] }),
998
+ children: rule.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: rule.description })
999
+ },
1000
+ rule.ruleId
1001
+ )) })
1002
+ ] });
999
1003
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1000
1004
  /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content, mobileAction }),
1001
1005
  createOpen && /* @__PURE__ */ jsxRuntime.jsx(
@@ -1003,7 +1007,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
1003
1007
  {
1004
1008
  title: labels.createTitle,
1005
1009
  saveLabel: labels.save,
1006
- initial: chunkUWSMHKOF_js.defaultRuleForm(),
1010
+ initial: chunk6ZMTJSQF_js.defaultRuleForm(),
1007
1011
  onClose: () => setCreateOpen(false),
1008
1012
  onSubmit: (value) => {
1009
1013
  onCreate(value);
@@ -1047,12 +1051,12 @@ function RuleEditor({
1047
1051
  event.preventDefault();
1048
1052
  onSubmit(value);
1049
1053
  },
1050
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkUWSMHKOF_js.RuleForm, { value, onChange: setValue })
1054
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk6ZMTJSQF_js.RuleForm, { value, onChange: setValue })
1051
1055
  }
1052
1056
  );
1053
1057
  }
1054
1058
  function ruleToFormValue(rule) {
1055
- const base = chunkUWSMHKOF_js.defaultRuleForm();
1059
+ const base = chunk6ZMTJSQF_js.defaultRuleForm();
1056
1060
  const rawCondition = rule.condition ?? rule.conditions;
1057
1061
  const rawAction = pickAction(rule);
1058
1062
  return {
@@ -1273,16 +1277,7 @@ function DatasourcesPageView({
1273
1277
  title: labels.title,
1274
1278
  subtitle: labels.subtitle,
1275
1279
  gradient: "from-amber-500 to-orange-600",
1276
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
1277
- chunkGCYYGSHU_js.SearchBar,
1278
- {
1279
- searchTerm,
1280
- onSearchChange: setSearchTerm,
1281
- placeholder: labels.searchPlaceholder ?? labels.title,
1282
- noBorder: true
1283
- }
1284
- ) : void 0,
1285
- actions: /* @__PURE__ */ jsxRuntime.jsx(
1280
+ toolbar: /* @__PURE__ */ jsxRuntime.jsx(
1286
1281
  chunkGCYYGSHU_js.CreateActionButton,
1287
1282
  {
1288
1283
  mode: "desktop",
@@ -1302,6 +1297,14 @@ function DatasourcesPageView({
1302
1297
  accent: "amber"
1303
1298
  }
1304
1299
  ),
1300
+ !isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
1301
+ chunkGCYYGSHU_js.SearchBar,
1302
+ {
1303
+ searchTerm,
1304
+ onSearchChange: setSearchTerm,
1305
+ placeholder: labels.searchPlaceholder ?? labels.title
1306
+ }
1307
+ ),
1305
1308
  isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
1306
1309
  chunkGCYYGSHU_js.PageEmptyState,
1307
1310
  {
@@ -1325,7 +1328,7 @@ function DatasourcesPageView({
1325
1328
  subtitle: dialectLabel,
1326
1329
  status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: ds.enabled ? "emerald" : "zinc", children: ds.enabled ? labels.enabled : labels.disabled }),
1327
1330
  footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs text-slate-500 dark:text-slate-400", children: [
1328
- ds.readOnly && /* @__PURE__ */ jsxRuntime.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" }),
1331
+ ds.readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "blue", size: "xs", children: "Read-only" }),
1329
1332
  ds.timeoutMs && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
1330
1333
  ds.timeoutMs / 1e3,
1331
1334
  "s timeout"
@@ -1382,30 +1385,31 @@ function AgentsIndexPageView({ labels }) {
1382
1385
  label: labels.title,
1383
1386
  title: labels.title,
1384
1387
  subtitle: labels.subtitle,
1385
- gradient: "from-violet-500 to-indigo-700",
1386
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
1387
- chunkGCYYGSHU_js.SearchBar,
1388
- {
1389
- searchTerm,
1390
- onSearchChange: setSearchTerm,
1391
- placeholder: labels.searchPlaceholder ?? labels.title,
1392
- noBorder: true
1393
- }
1394
- ) : void 0
1388
+ gradient: "from-violet-500 to-indigo-700"
1395
1389
  }
1396
1390
  );
1397
- const content = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4", children: filteredTiles.map((tile) => {
1398
- const Icon = tile.icon;
1399
- return /* @__PURE__ */ jsxRuntime.jsx(Link, { href: tile.href, className: "block focus:outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(
1400
- chunkGCYYGSHU_js.EntityCard,
1391
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1392
+ !isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
1393
+ chunkGCYYGSHU_js.SearchBar,
1401
1394
  {
1402
- accentGradient: tile.gradient,
1403
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-11 w-11 items-center justify-center rounded-lg bg-gradient-to-br ${tile.gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-6 w-6 text-white" }) }),
1404
- title: tile.title,
1405
- children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: tile.subtitle })
1395
+ searchTerm,
1396
+ onSearchChange: setSearchTerm,
1397
+ placeholder: labels.searchPlaceholder ?? labels.title
1406
1398
  }
1407
- ) }, tile.id);
1408
- }) });
1399
+ ),
1400
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4", children: filteredTiles.map((tile) => {
1401
+ const Icon = tile.icon;
1402
+ return /* @__PURE__ */ jsxRuntime.jsx(Link, { href: tile.href, className: "block focus:outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(
1403
+ chunkGCYYGSHU_js.EntityCard,
1404
+ {
1405
+ accentGradient: tile.gradient,
1406
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-11 w-11 items-center justify-center rounded-lg bg-gradient-to-br ${tile.gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-6 w-6 text-white" }) }),
1407
+ title: tile.title,
1408
+ children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: tile.subtitle })
1409
+ }
1410
+ ) }, tile.id);
1411
+ }) })
1412
+ ] });
1409
1413
  return /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content });
1410
1414
  }
1411
1415
  function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublish }) {
@@ -1479,7 +1483,7 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
1479
1483
  ] }),
1480
1484
  /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
1481
1485
  /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.workspace }),
1482
- selectedWorkflow ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[680px] rounded-2xl border border-white/65 dark:border-white/12 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(chunk3WXMBAGN_js.WorkflowWorkspace, { graph: chunk3T2WGL47_js.adaptWorkflowGraphToUi(selectedWorkflow.graph) }) }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Text, { children: labels.empty })
1486
+ selectedWorkflow ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[680px] rounded-2xl border border-white/65 dark:border-white/12 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(chunkMUOTTGCX_js.WorkflowWorkspace, { graph: chunk3T2WGL47_js.adaptWorkflowGraphToUi(selectedWorkflow.graph) }) }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Text, { children: labels.empty })
1483
1487
  ] })
1484
1488
  ] });
1485
1489
  }
@@ -1535,55 +1539,54 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1535
1539
  title: labels.title,
1536
1540
  subtitle: labels.subtitle,
1537
1541
  gradient: "from-indigo-500 to-sky-700",
1538
- toolbar: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-end", children: [
1539
- !isEmpty && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1540
- chunkGCYYGSHU_js.SearchBar,
1541
- {
1542
- searchTerm,
1543
- onSearchChange: setSearchTerm,
1544
- placeholder: labels.searchPlaceholder ?? labels.title,
1545
- noBorder: true
1546
- }
1547
- ) }),
1548
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full sm:w-48", children: /* @__PURE__ */ jsxRuntime.jsx(
1549
- chunkGCYYGSHU_js.FormSelect,
1550
- {
1551
- name: "statusFilter",
1552
- label: labels.filterStatus,
1553
- options: statusOptions,
1554
- value: statusFilter,
1555
- onValueChange: setStatusFilter
1556
- }
1557
- ) })
1558
- ] })
1542
+ toolbar: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full sm:w-48", children: /* @__PURE__ */ jsxRuntime.jsx(
1543
+ chunkGCYYGSHU_js.FormSelect,
1544
+ {
1545
+ name: "statusFilter",
1546
+ label: labels.filterStatus,
1547
+ options: statusOptions,
1548
+ value: statusFilter,
1549
+ onValueChange: setStatusFilter
1550
+ }
1551
+ ) })
1559
1552
  }
1560
1553
  );
1561
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : filteredRuns.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredRuns.map((run) => /* @__PURE__ */ jsxRuntime.jsxs(
1562
- chunkGCYYGSHU_js.EntityCard,
1563
- {
1564
- accentGradient: "from-indigo-500 to-sky-700",
1565
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-indigo-500/10 text-indigo-600 dark:bg-indigo-500/20 dark:text-indigo-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-6 w-6" }) }),
1566
- title: run.id.slice(0, 8),
1567
- subtitle: `${labels.startedAt}: ${new Date(run.createdAt).toLocaleString()}`,
1568
- status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: BADGE_COLOR[run.status] ?? "zinc", children: statusLabelFor(run.status) }),
1569
- footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
1570
- onView && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onView(run), children: labels.view }),
1571
- onViewTimeline && labels.timeline && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onViewTimeline(run), children: labels.timeline }),
1572
- /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onReplay(run), children: labels.replay }),
1573
- run.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", color: "rose", onClick: () => onCancel(run), children: labels.cancel })
1574
- ] }),
1575
- children: [
1576
- /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 grid grid-cols-2 gap-1 text-xs text-slate-500 dark:text-slate-400", children: [
1577
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.duration }),
1578
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: chunk3T2WGL47_js.formatDurationMs(run.totalDurationMs) }),
1579
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.triggeredBy }),
1580
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right truncate", children: run.triggeredBy || "\u2014" })
1554
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : filteredRuns.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1555
+ !isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
1556
+ chunkGCYYGSHU_js.SearchBar,
1557
+ {
1558
+ searchTerm,
1559
+ onSearchChange: setSearchTerm,
1560
+ placeholder: labels.searchPlaceholder ?? labels.title
1561
+ }
1562
+ ),
1563
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredRuns.map((run) => /* @__PURE__ */ jsxRuntime.jsxs(
1564
+ chunkGCYYGSHU_js.EntityCard,
1565
+ {
1566
+ accentGradient: "from-indigo-500 to-sky-700",
1567
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-indigo-500/10 text-indigo-600 dark:bg-indigo-500/20 dark:text-indigo-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-6 w-6" }) }),
1568
+ title: run.id.slice(0, 8),
1569
+ subtitle: `${labels.startedAt}: ${new Date(run.createdAt).toLocaleString()}`,
1570
+ status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: BADGE_COLOR[run.status] ?? "zinc", children: statusLabelFor(run.status) }),
1571
+ footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
1572
+ onView && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onView(run), children: labels.view }),
1573
+ onViewTimeline && labels.timeline && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onViewTimeline(run), children: labels.timeline }),
1574
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onReplay(run), children: labels.replay }),
1575
+ run.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", color: "rose", onClick: () => onCancel(run), children: labels.cancel })
1581
1576
  ] }),
1582
- run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-2 text-xs text-rose-600 dark:text-rose-400", children: run.error })
1583
- ]
1584
- },
1585
- run.id
1586
- )) });
1577
+ children: [
1578
+ /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 grid grid-cols-2 gap-1 text-xs text-slate-500 dark:text-slate-400", children: [
1579
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.duration }),
1580
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: chunk3T2WGL47_js.formatDurationMs(run.totalDurationMs) }),
1581
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.triggeredBy }),
1582
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right truncate", children: run.triggeredBy || "\u2014" })
1583
+ ] }),
1584
+ run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-2 text-xs text-rose-600 dark:text-rose-400", children: run.error })
1585
+ ]
1586
+ },
1587
+ run.id
1588
+ )) })
1589
+ ] });
1587
1590
  return /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content });
1588
1591
  }
1589
1592
  function RunTimelinePageView({ labels, entries, loading, runId }) {
@@ -1614,7 +1617,7 @@ function RunTimelinePageView({ labels, entries, loading, runId }) {
1614
1617
  {
1615
1618
  hero,
1616
1619
  content: /* @__PURE__ */ jsxRuntime.jsx(
1617
- chunkUWSMHKOF_js.ExecutionTimelinePanel,
1620
+ chunk6ZMTJSQF_js.ExecutionTimelinePanel,
1618
1621
  {
1619
1622
  entries,
1620
1623
  labels
@@ -1707,16 +1710,7 @@ function ConnectionsPageView({
1707
1710
  title: labels.title,
1708
1711
  subtitle: labels.subtitle,
1709
1712
  gradient: "from-sky-500 to-indigo-600",
1710
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
1711
- chunkGCYYGSHU_js.SearchBar,
1712
- {
1713
- searchTerm,
1714
- onSearchChange: setSearchTerm,
1715
- placeholder: labels.searchPlaceholder ?? labels.title,
1716
- noBorder: true
1717
- }
1718
- ) : void 0,
1719
- actions: /* @__PURE__ */ jsxRuntime.jsx(
1713
+ toolbar: /* @__PURE__ */ jsxRuntime.jsx(
1720
1714
  chunkGCYYGSHU_js.CreateActionButton,
1721
1715
  {
1722
1716
  mode: "desktop",
@@ -1736,40 +1730,50 @@ function ConnectionsPageView({
1736
1730
  accent: "sky"
1737
1731
  }
1738
1732
  );
1739
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredConnections.map((conn) => /* @__PURE__ */ jsxRuntime.jsx(
1740
- chunkGCYYGSHU_js.EntityCard,
1741
- {
1742
- accentGradient: "from-sky-500 to-indigo-600",
1743
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-sky-500/10 text-sky-600 dark:bg-sky-500/20 dark:text-sky-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.LinkIcon, { className: "h-6 w-6" }) }),
1744
- title: conn.name,
1745
- subtitle: providerLabel(conn.providerSlug),
1746
- status: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1", children: [
1747
- /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: conn.enabled ? "emerald" : "zinc", children: conn.enabled ? labels.enable : labels.disable }),
1748
- conn.credentialRef ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "indigo", children: "Secret set" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "amber", children: "No secret" })
1749
- ] }),
1750
- footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
1751
- /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(conn), children: labels.edit }),
1752
- /* @__PURE__ */ jsxRuntime.jsx(
1753
- chunkGCYYGSHU_js.Button,
1754
- {
1755
- type: "button",
1756
- size: "sm",
1757
- color: "rose",
1758
- onClick: async () => {
1759
- if (window.confirm(labels.deleteConfirm)) await onDelete(conn);
1760
- },
1761
- children: labels.delete
1762
- }
1763
- )
1764
- ] }),
1765
- children: /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 space-y-0.5 text-xs text-slate-500 dark:text-slate-400", children: [
1766
- conn.region && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Region", value: conn.region }),
1767
- conn.endpoint && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Endpoint", value: conn.endpoint }),
1768
- conn.modelFilter && conn.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Models", value: conn.modelFilter.join(", ") })
1769
- ] })
1770
- },
1771
- conn.id
1772
- )) });
1733
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1734
+ /* @__PURE__ */ jsxRuntime.jsx(
1735
+ chunkGCYYGSHU_js.SearchBar,
1736
+ {
1737
+ searchTerm,
1738
+ onSearchChange: setSearchTerm,
1739
+ placeholder: labels.searchPlaceholder ?? labels.title
1740
+ }
1741
+ ),
1742
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredConnections.map((conn) => /* @__PURE__ */ jsxRuntime.jsx(
1743
+ chunkGCYYGSHU_js.EntityCard,
1744
+ {
1745
+ accentGradient: "from-sky-500 to-indigo-600",
1746
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-sky-500/10 text-sky-600 dark:bg-sky-500/20 dark:text-sky-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.LinkIcon, { className: "h-6 w-6" }) }),
1747
+ title: conn.name,
1748
+ subtitle: providerLabel(conn.providerSlug),
1749
+ status: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1", children: [
1750
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: conn.enabled ? "emerald" : "zinc", children: conn.enabled ? labels.enable : labels.disable }),
1751
+ conn.credentialRef ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "indigo", children: "Secret set" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "amber", children: "No secret" })
1752
+ ] }),
1753
+ footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
1754
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(conn), children: labels.edit }),
1755
+ /* @__PURE__ */ jsxRuntime.jsx(
1756
+ chunkGCYYGSHU_js.Button,
1757
+ {
1758
+ type: "button",
1759
+ size: "sm",
1760
+ color: "rose",
1761
+ onClick: async () => {
1762
+ if (window.confirm(labels.deleteConfirm)) await onDelete(conn);
1763
+ },
1764
+ children: labels.delete
1765
+ }
1766
+ )
1767
+ ] }),
1768
+ children: /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 space-y-0.5 text-xs text-slate-500 dark:text-slate-400", children: [
1769
+ conn.region && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Region", value: conn.region }),
1770
+ conn.endpoint && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Endpoint", value: conn.endpoint }),
1771
+ conn.modelFilter && conn.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Models", value: conn.modelFilter.join(", ") })
1772
+ ] })
1773
+ },
1774
+ conn.id
1775
+ )) })
1776
+ ] });
1773
1777
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1774
1778
  /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content, mobileAction }),
1775
1779
  createOpen && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2040,16 +2044,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2040
2044
  title: labels.title,
2041
2045
  subtitle: labels.subtitle,
2042
2046
  gradient: "from-rose-500 to-orange-600",
2043
- toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
2044
- chunkGCYYGSHU_js.SearchBar,
2045
- {
2046
- searchTerm,
2047
- onSearchChange: setSearchTerm,
2048
- placeholder: labels.searchPlaceholder ?? labels.title,
2049
- noBorder: true
2050
- }
2051
- ) : void 0,
2052
- actions: /* @__PURE__ */ jsxRuntime.jsx(
2047
+ toolbar: /* @__PURE__ */ jsxRuntime.jsx(
2053
2048
  chunkGCYYGSHU_js.CreateActionButton,
2054
2049
  {
2055
2050
  mode: "desktop",
@@ -2069,50 +2064,60 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2069
2064
  accent: "rose"
2070
2065
  }
2071
2066
  );
2072
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredCredentials.map((secret) => /* @__PURE__ */ jsxRuntime.jsxs(
2073
- chunkGCYYGSHU_js.EntityCard,
2074
- {
2075
- accentGradient: "from-rose-500 to-orange-700",
2076
- icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-rose-500/10 text-rose-600 dark:bg-rose-500/20 dark:text-rose-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-6 w-6" }) }),
2077
- title: secret.name,
2078
- subtitle: secret.secretType,
2079
- status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: secret.disabled ? "zinc" : "emerald", children: secret.disabled ? labels.disable : "Active" }),
2080
- footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
2081
- /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.CopyableId, { id: secret.secretId }),
2082
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
2083
- /* @__PURE__ */ jsxRuntime.jsxs(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setRotateFor(secret), children: [
2084
- /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "mr-1 h-3.5 w-3.5" }),
2085
- labels.rotate
2086
- ] }),
2087
- !secret.disabled && /* @__PURE__ */ jsxRuntime.jsxs(
2088
- chunkGCYYGSHU_js.Button,
2089
- {
2090
- type: "button",
2091
- size: "sm",
2092
- color: "rose",
2093
- onClick: () => {
2094
- if (window.confirm(labels.disableConfirm)) onDisable(secret);
2095
- },
2096
- children: [
2097
- /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "mr-1 h-3.5 w-3.5" }),
2098
- labels.disable
2099
- ]
2100
- }
2101
- )
2102
- ] })
2103
- ] }),
2104
- children: [
2105
- secret.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: secret.description }),
2106
- /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-2 grid grid-cols-2 gap-1 text-xs text-slate-500 dark:text-slate-400", children: [
2107
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.createdAt }),
2108
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: new Date(secret.createdAt).toLocaleDateString() }),
2109
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.expiresAt }),
2110
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: secret.expiresAt ? new Date(secret.expiresAt).toLocaleDateString() : labels.neverExpires })
2111
- ] })
2112
- ]
2113
- },
2114
- secret.secretId
2115
- )) });
2067
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2068
+ /* @__PURE__ */ jsxRuntime.jsx(
2069
+ chunkGCYYGSHU_js.SearchBar,
2070
+ {
2071
+ searchTerm,
2072
+ onSearchChange: setSearchTerm,
2073
+ placeholder: labels.searchPlaceholder ?? labels.title
2074
+ }
2075
+ ),
2076
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredCredentials.map((secret) => /* @__PURE__ */ jsxRuntime.jsxs(
2077
+ chunkGCYYGSHU_js.EntityCard,
2078
+ {
2079
+ accentGradient: "from-rose-500 to-orange-700",
2080
+ icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-rose-500/10 text-rose-600 dark:bg-rose-500/20 dark:text-rose-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-6 w-6" }) }),
2081
+ title: secret.name,
2082
+ subtitle: secret.secretType,
2083
+ status: /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: secret.disabled ? "zinc" : "emerald", children: secret.disabled ? labels.disable : "Active" }),
2084
+ footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
2085
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.CopyableId, { id: secret.secretId }),
2086
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
2087
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGCYYGSHU_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setRotateFor(secret), children: [
2088
+ /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "mr-1 h-3.5 w-3.5" }),
2089
+ labels.rotate
2090
+ ] }),
2091
+ !secret.disabled && /* @__PURE__ */ jsxRuntime.jsxs(
2092
+ chunkGCYYGSHU_js.Button,
2093
+ {
2094
+ type: "button",
2095
+ size: "sm",
2096
+ color: "rose",
2097
+ onClick: () => {
2098
+ if (window.confirm(labels.disableConfirm)) onDisable(secret);
2099
+ },
2100
+ children: [
2101
+ /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "mr-1 h-3.5 w-3.5" }),
2102
+ labels.disable
2103
+ ]
2104
+ }
2105
+ )
2106
+ ] })
2107
+ ] }),
2108
+ children: [
2109
+ secret.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: secret.description }),
2110
+ /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-2 grid grid-cols-2 gap-1 text-xs text-slate-500 dark:text-slate-400", children: [
2111
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.createdAt }),
2112
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: new Date(secret.createdAt).toLocaleDateString() }),
2113
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.expiresAt }),
2114
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: secret.expiresAt ? new Date(secret.expiresAt).toLocaleDateString() : labels.neverExpires })
2115
+ ] })
2116
+ ]
2117
+ },
2118
+ secret.secretId
2119
+ )) })
2120
+ ] });
2116
2121
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2117
2122
  /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.ManagementPageLayout, { hero, content, mobileAction }),
2118
2123
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2166,11 +2171,11 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2166
2171
 
2167
2172
  Object.defineProperty(exports, "RolesPageView", {
2168
2173
  enumerable: true,
2169
- get: function () { return chunk3WXMBAGN_js.RolesPageView; }
2174
+ get: function () { return chunkMUOTTGCX_js.RolesPageView; }
2170
2175
  });
2171
2176
  Object.defineProperty(exports, "UsersPageView", {
2172
2177
  enumerable: true,
2173
- get: function () { return chunk3WXMBAGN_js.UsersPageView; }
2178
+ get: function () { return chunkMUOTTGCX_js.UsersPageView; }
2174
2179
  });
2175
2180
  Object.defineProperty(exports, "DIALECT_CATEGORIES", {
2176
2181
  enumerable: true,