@datatechsolutions/ui 3.10.0 → 3.11.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.
- package/dist/astrlabe/contracts.d.mts +18 -2
- package/dist/astrlabe/contracts.d.ts +18 -2
- package/dist/astrlabe/index.d.mts +2 -2
- package/dist/astrlabe/index.d.ts +2 -2
- package/dist/astrlabe/index.js +108 -108
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/{chunk-JB3U6ORY.mjs → chunk-3U3CIARA.mjs} +3 -3
- package/dist/{chunk-JB3U6ORY.mjs.map → chunk-3U3CIARA.mjs.map} +1 -1
- package/dist/{chunk-5U43K6G3.mjs → chunk-7DZ2C5IN.mjs} +24 -22
- package/dist/chunk-7DZ2C5IN.mjs.map +1 -0
- package/dist/{chunk-EC34PGUO.js → chunk-APONR6ZM.js} +136 -136
- package/dist/chunk-APONR6ZM.js.map +1 -0
- package/dist/{chunk-AMESLEIO.js → chunk-BTMHQCDB.js} +63 -63
- package/dist/{chunk-AMESLEIO.js.map → chunk-BTMHQCDB.js.map} +1 -1
- package/dist/{chunk-L3R425GB.js → chunk-CLXEVSGB.js} +13 -13
- package/dist/{chunk-L3R425GB.js.map → chunk-CLXEVSGB.js.map} +1 -1
- package/dist/{chunk-TSNKICPP.js → chunk-CVCMJJ56.js} +10 -10
- package/dist/{chunk-TSNKICPP.js.map → chunk-CVCMJJ56.js.map} +1 -1
- package/dist/{chunk-MSMEECO6.js → chunk-DPXCJVJT.js} +9 -9
- package/dist/{chunk-MSMEECO6.js.map → chunk-DPXCJVJT.js.map} +1 -1
- package/dist/{chunk-A256OE5E.mjs → chunk-E3NMVWRL.mjs} +5 -5
- package/dist/chunk-E3NMVWRL.mjs.map +1 -0
- package/dist/{chunk-HEXTU6W3.mjs → chunk-I77TTBYO.mjs} +6 -6
- package/dist/{chunk-HEXTU6W3.mjs.map → chunk-I77TTBYO.mjs.map} +1 -1
- package/dist/{chunk-RHRJXK5R.mjs → chunk-IGOMJHC6.mjs} +11 -3
- package/dist/chunk-IGOMJHC6.mjs.map +1 -0
- package/dist/{chunk-DA3H7ERQ.mjs → chunk-IHOCYBHM.mjs} +3 -3
- package/dist/{chunk-DA3H7ERQ.mjs.map → chunk-IHOCYBHM.mjs.map} +1 -1
- package/dist/{chunk-C4D3EI5L.mjs → chunk-K3LIDGMA.mjs} +3 -3
- package/dist/{chunk-C4D3EI5L.mjs.map → chunk-K3LIDGMA.mjs.map} +1 -1
- package/dist/{chunk-YSYEV2Z6.js → chunk-KDVZIDVF.js} +46 -44
- package/dist/chunk-KDVZIDVF.js.map +1 -0
- package/dist/{chunk-NM37GLCL.mjs → chunk-LHAOIPYP.mjs} +3 -3
- package/dist/{chunk-NM37GLCL.mjs.map → chunk-LHAOIPYP.mjs.map} +1 -1
- package/dist/{chunk-MAOZWOA6.js → chunk-LM6BJOKX.js} +55 -55
- package/dist/{chunk-MAOZWOA6.js.map → chunk-LM6BJOKX.js.map} +1 -1
- package/dist/{chunk-2A45ZEK4.js → chunk-MN777KLN.js} +45 -45
- package/dist/{chunk-2A45ZEK4.js.map → chunk-MN777KLN.js.map} +1 -1
- package/dist/{chunk-FIJMOTP4.js → chunk-NW32BM3F.js} +34 -34
- package/dist/{chunk-FIJMOTP4.js.map → chunk-NW32BM3F.js.map} +1 -1
- package/dist/{chunk-W6MBDTKF.mjs → chunk-O4DIKNNH.mjs} +3 -3
- package/dist/{chunk-W6MBDTKF.mjs.map → chunk-O4DIKNNH.mjs.map} +1 -1
- package/dist/{chunk-5AKTDJFR.js → chunk-OD2AZBEX.js} +25 -25
- package/dist/{chunk-5AKTDJFR.js.map → chunk-OD2AZBEX.js.map} +1 -1
- package/dist/{chunk-5KI7FB3E.mjs → chunk-OKCEK7GH.mjs} +225 -234
- package/dist/chunk-OKCEK7GH.mjs.map +1 -0
- package/dist/{chunk-KHUWFL6W.js → chunk-OO4YMN4P.js} +4 -4
- package/dist/{chunk-KHUWFL6W.js.map → chunk-OO4YMN4P.js.map} +1 -1
- package/dist/{chunk-O4HH77A4.js → chunk-OSXBMLZP.js} +68 -68
- package/dist/{chunk-O4HH77A4.js.map → chunk-OSXBMLZP.js.map} +1 -1
- package/dist/{chunk-6ZYATZS3.mjs → chunk-Q6MMJYEG.mjs} +3 -3
- package/dist/{chunk-6ZYATZS3.mjs.map → chunk-Q6MMJYEG.mjs.map} +1 -1
- package/dist/{chunk-NSZN54HW.js → chunk-QASAHGLE.js} +4 -4
- package/dist/{chunk-NSZN54HW.js.map → chunk-QASAHGLE.js.map} +1 -1
- package/dist/{chunk-BU4WMSK3.mjs → chunk-QDW3IJIL.mjs} +3 -3
- package/dist/{chunk-BU4WMSK3.mjs.map → chunk-QDW3IJIL.mjs.map} +1 -1
- package/dist/{chunk-FENA4YGN.mjs → chunk-QKWNQOJB.mjs} +3 -3
- package/dist/{chunk-FENA4YGN.mjs.map → chunk-QKWNQOJB.mjs.map} +1 -1
- package/dist/{chunk-H7X3SXMB.mjs → chunk-S46LUR7O.mjs} +7 -7
- package/dist/{chunk-H7X3SXMB.mjs.map → chunk-S46LUR7O.mjs.map} +1 -1
- package/dist/{chunk-FD376DZ6.mjs → chunk-S4LHC5SF.mjs} +3 -3
- package/dist/{chunk-FD376DZ6.mjs.map → chunk-S4LHC5SF.mjs.map} +1 -1
- package/dist/{chunk-B76RTA7D.js → chunk-SSKKTSMA.js} +35 -35
- package/dist/{chunk-B76RTA7D.js.map → chunk-SSKKTSMA.js.map} +1 -1
- package/dist/{chunk-LVR4SR65.js → chunk-TIJXCRM4.js} +223 -234
- package/dist/chunk-TIJXCRM4.js.map +1 -0
- package/dist/{chunk-6UX2SRA2.mjs → chunk-VHU5FWFB.mjs} +3 -3
- package/dist/{chunk-6UX2SRA2.mjs.map → chunk-VHU5FWFB.mjs.map} +1 -1
- package/dist/{chunk-SY4MUT5V.js → chunk-ZUU7G3PC.js} +11 -2
- package/dist/chunk-ZUU7G3PC.js.map +1 -0
- package/dist/index.d.mts +26 -40
- package/dist/index.d.ts +26 -40
- package/dist/index.js +663 -671
- package/dist/index.mjs +2 -2
- package/dist/platform/admin/index.js +10 -10
- package/dist/platform/admin/index.mjs +4 -4
- package/dist/platform/agents-workspace.js +7 -7
- package/dist/platform/agents-workspace.mjs +6 -6
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/auth/index.js +22 -22
- package/dist/platform/auth/index.mjs +4 -4
- package/dist/platform/billing/index.js +4 -4
- package/dist/platform/billing/index.mjs +3 -3
- package/dist/platform/impersonation/index.js +4 -4
- package/dist/platform/impersonation/index.mjs +3 -3
- package/dist/platform/index.js +82 -82
- package/dist/platform/index.mjs +18 -18
- package/dist/platform/pages/index.d.mts +3 -3
- package/dist/platform/pages/index.d.ts +3 -3
- package/dist/platform/pages/index.js +734 -701
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +452 -419
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +7 -7
- package/dist/platform/settings/index.mjs +6 -6
- package/dist/platform/workflow-api-client.d.mts +1 -1
- package/dist/platform/workflow-api-client.d.ts +1 -1
- package/dist/platform/workflow-api-client.js +65 -61
- package/dist/platform/workflow-api-client.mjs +1 -1
- package/dist/platform/workflow-canvas-shell.js +5 -5
- package/dist/platform/workflow-canvas-shell.mjs +4 -4
- package/dist/{rule-form-BYJzyork.d.mts → rule-form-BkKCY8Tc.d.mts} +8 -2
- package/dist/{rule-form-BYJzyork.d.ts → rule-form-CBD8wlrw.d.ts} +8 -2
- package/dist/{workflow-api-client-CpFl3WcG.d.mts → workflow-api-client-D9_0Spdz.d.mts} +16 -1
- package/dist/{workflow-api-client-uLICOanv.d.ts → workflow-api-client-E1QFRgeP.d.ts} +16 -1
- package/package.json +1 -1
- package/dist/chunk-5KI7FB3E.mjs.map +0 -1
- package/dist/chunk-5U43K6G3.mjs.map +0 -1
- package/dist/chunk-A256OE5E.mjs.map +0 -1
- package/dist/chunk-EC34PGUO.js.map +0 -1
- package/dist/chunk-LVR4SR65.js.map +0 -1
- package/dist/chunk-RHRJXK5R.mjs.map +0 -1
- package/dist/chunk-SY4MUT5V.js.map +0 -1
- package/dist/chunk-YSYEV2Z6.js.map +0 -1
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunk3T2WGL47_js = require('../../chunk-3T2WGL47.js');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
5
|
+
var chunkKDVZIDVF_js = require('../../chunk-KDVZIDVF.js');
|
|
6
|
+
var chunkNW32BM3F_js = require('../../chunk-NW32BM3F.js');
|
|
7
|
+
var chunkAPONR6ZM_js = require('../../chunk-APONR6ZM.js');
|
|
8
8
|
require('../../chunk-55H6WZQP.js');
|
|
9
9
|
require('../../chunk-DJDZIRM6.js');
|
|
10
|
-
require('../../chunk-
|
|
11
|
-
var
|
|
10
|
+
require('../../chunk-OSXBMLZP.js');
|
|
11
|
+
var chunkTIJXCRM4_js = require('../../chunk-TIJXCRM4.js');
|
|
12
12
|
require('../../chunk-YXN2K77G.js');
|
|
13
|
-
require('../../chunk-
|
|
13
|
+
require('../../chunk-ZUU7G3PC.js');
|
|
14
14
|
require('../../chunk-2OZZH2IO.js');
|
|
15
15
|
require('../../chunk-EZQ2D47U.js');
|
|
16
16
|
var chunkBHOT22QL_js = require('../../chunk-BHOT22QL.js');
|
|
@@ -27,36 +27,35 @@ function AgentsModelsPageView({ labels, models, loading }) {
|
|
|
27
27
|
const filteredModels = searchTerm.trim() ? allModels.filter((model) => model.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allModels;
|
|
28
28
|
const isEmpty = allModels.length === 0;
|
|
29
29
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
-
|
|
30
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
31
31
|
{
|
|
32
32
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CubeTransparentIcon, { className: "h-5 w-5" }),
|
|
33
33
|
label: labels.title,
|
|
34
34
|
title: labels.title,
|
|
35
35
|
subtitle: labels.subtitle,
|
|
36
|
-
gradient: "from-emerald-500 to-teal-700"
|
|
36
|
+
gradient: "from-emerald-500 to-teal-700",
|
|
37
|
+
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
39
|
+
{
|
|
40
|
+
searchTerm,
|
|
41
|
+
onSearchChange: setSearchTerm,
|
|
42
|
+
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
43
|
+
noBorder: true
|
|
44
|
+
}
|
|
45
|
+
) : void 0
|
|
37
46
|
}
|
|
38
47
|
);
|
|
39
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
{
|
|
51
|
-
accentGradient: "from-emerald-500 to-teal-700",
|
|
52
|
-
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" }) }),
|
|
53
|
-
title: model.name,
|
|
54
|
-
subtitle: `${labels.provider}: ${model.provider}`,
|
|
55
|
-
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: model.enabled ? "emerald" : "zinc", children: model.enabled ? labels.enabled : labels.disabled })
|
|
56
|
-
},
|
|
57
|
-
model.id
|
|
58
|
-
)) })
|
|
59
|
-
] });
|
|
48
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_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(
|
|
49
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
50
|
+
{
|
|
51
|
+
accentGradient: "from-emerald-500 to-teal-700",
|
|
52
|
+
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" }) }),
|
|
53
|
+
title: model.name,
|
|
54
|
+
subtitle: `${labels.provider}: ${model.provider}`,
|
|
55
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: model.enabled ? "emerald" : "zinc", children: model.enabled ? labels.enabled : labels.disabled })
|
|
56
|
+
},
|
|
57
|
+
model.id
|
|
58
|
+
)) });
|
|
60
59
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
61
60
|
hero,
|
|
62
61
|
content
|
|
@@ -71,7 +70,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
71
70
|
const filteredAgents = searchTerm.trim() ? allAgents.filter((agent) => String(agent.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allAgents;
|
|
72
71
|
const isEmpty = allAgents.length === 0;
|
|
73
72
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
74
|
-
|
|
73
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
75
74
|
{
|
|
76
75
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
|
|
77
76
|
label: labels.title,
|
|
@@ -79,7 +78,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
79
78
|
subtitle: labels.subtitle,
|
|
80
79
|
gradient: "from-violet-500 to-indigo-700",
|
|
81
80
|
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
82
|
-
|
|
81
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
83
82
|
{
|
|
84
83
|
searchTerm,
|
|
85
84
|
onSearchChange: setSearchTerm,
|
|
@@ -88,7 +87,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
88
87
|
}
|
|
89
88
|
) : void 0,
|
|
90
89
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
91
|
-
|
|
90
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
92
91
|
{
|
|
93
92
|
mode: "desktop",
|
|
94
93
|
label: labels.addAgent,
|
|
@@ -99,7 +98,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
99
98
|
}
|
|
100
99
|
);
|
|
101
100
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
102
|
-
|
|
101
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
103
102
|
{
|
|
104
103
|
mode: "mobile",
|
|
105
104
|
label: labels.addAgent,
|
|
@@ -107,10 +106,10 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
107
106
|
accent: "violet"
|
|
108
107
|
}
|
|
109
108
|
);
|
|
110
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_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: filteredAgents.map((agent) => {
|
|
111
110
|
const modelRecord = models.find((model) => model.id === String(agent.modelId ?? ""));
|
|
112
111
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
113
|
-
|
|
112
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
114
113
|
{
|
|
115
114
|
accentGradient: "from-violet-500 to-indigo-700",
|
|
116
115
|
icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-violet-500/10 text-violet-600 dark:bg-violet-500/20 dark:text-violet-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-6 w-6" }) }),
|
|
@@ -147,7 +146,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
147
146
|
);
|
|
148
147
|
}) });
|
|
149
148
|
const renderForm = (initial, onSubmit) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
150
|
-
|
|
149
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
151
150
|
{
|
|
152
151
|
open: true,
|
|
153
152
|
onClose: () => {
|
|
@@ -170,13 +169,13 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
170
169
|
outputSchema: String(form.get("outputSchema") ?? "").trim() || void 0
|
|
171
170
|
});
|
|
172
171
|
},
|
|
173
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
174
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
175
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
176
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
177
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
178
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
179
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
172
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
173
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "name", label: labels.name, defaultValue: initial.name ?? "", required: true }),
|
|
174
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormSelect, { name: "modelId", label: labels.model, options: modelOptions, defaultValue: initial.modelId ?? modelOptions[0]?.value ?? "", required: true }),
|
|
175
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "maxTokens", label: String(labels.maxTokens), type: "number", defaultValue: String(initial.maxTokens ?? 2048) }),
|
|
176
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "temperature", label: labels.temperature, type: "number", step: 0.1, min: 0, max: 2, defaultValue: String(initial.temperature ?? 0.2) }),
|
|
177
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, defaultValue: initial.systemPrompt ?? "", rows: 4 }),
|
|
178
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "outputSchema", label: labels.outputSchema, placeholder: labels.outputSchemaPlaceholder, defaultValue: initial.outputSchema ?? "", rows: 4 })
|
|
180
179
|
] })
|
|
181
180
|
}
|
|
182
181
|
);
|
|
@@ -243,7 +242,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
243
242
|
}) : allPrompts;
|
|
244
243
|
const isEmpty = allPrompts.length === 0;
|
|
245
244
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
246
|
-
|
|
245
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
247
246
|
{
|
|
248
247
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ChatBubbleLeftEllipsisIcon, { className: "h-5 w-5" }),
|
|
249
248
|
label: labels.title,
|
|
@@ -251,7 +250,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
251
250
|
subtitle: labels.subtitle,
|
|
252
251
|
gradient: "from-sky-500 to-blue-700",
|
|
253
252
|
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
254
|
-
|
|
253
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
255
254
|
{
|
|
256
255
|
mode: "desktop",
|
|
257
256
|
label: labels.addPrompt,
|
|
@@ -262,7 +261,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
262
261
|
}
|
|
263
262
|
);
|
|
264
263
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
265
|
-
|
|
264
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
266
265
|
{
|
|
267
266
|
mode: "mobile",
|
|
268
267
|
label: labels.addPrompt,
|
|
@@ -270,9 +269,9 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
270
269
|
accent: "sky"
|
|
271
270
|
}
|
|
272
271
|
);
|
|
273
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
272
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
274
273
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
275
|
-
|
|
274
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
276
275
|
{
|
|
277
276
|
searchTerm,
|
|
278
277
|
onSearchChange: setSearchTerm,
|
|
@@ -283,7 +282,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
283
282
|
const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
|
|
284
283
|
const key = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
|
|
285
284
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
286
|
-
|
|
285
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
287
286
|
{
|
|
288
287
|
accentGradient: "from-sky-500 to-blue-700",
|
|
289
288
|
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" }) }),
|
|
@@ -318,7 +317,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
318
317
|
mobileAction
|
|
319
318
|
] }),
|
|
320
319
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
321
|
-
|
|
320
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
322
321
|
{
|
|
323
322
|
open: createOpen,
|
|
324
323
|
onClose: () => setCreateOpen(false),
|
|
@@ -342,11 +341,11 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
342
341
|
});
|
|
343
342
|
setCreateOpen(false);
|
|
344
343
|
},
|
|
345
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
346
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
347
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
344
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
345
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormSelect, { name: "agentId", label: labels.agent, options: agentOptions, required: true }),
|
|
346
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormSelect, { name: "locale", label: labels.locale, options: LOCALE_OPTIONS, defaultValue: "en" }),
|
|
348
347
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
349
|
-
|
|
348
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
350
349
|
{
|
|
351
350
|
name: "isActive",
|
|
352
351
|
label: labels.isActive,
|
|
@@ -354,10 +353,10 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
354
353
|
defaultValue: "true"
|
|
355
354
|
}
|
|
356
355
|
),
|
|
357
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
358
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
359
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
360
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
356
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "reason", label: labels.reason }),
|
|
357
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, rows: 3 }),
|
|
358
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "userTemplate", label: labels.userTemplate, rows: 3 }),
|
|
359
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "prompt", label: labels.prompt, rows: 6, required: true })
|
|
361
360
|
] })
|
|
362
361
|
}
|
|
363
362
|
)
|
|
@@ -392,7 +391,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
392
391
|
const filteredTools = searchTerm.trim() ? allTools.filter((tool) => tool.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allTools;
|
|
393
392
|
const isEmpty = allTools.length === 0;
|
|
394
393
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
395
|
-
|
|
394
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
396
395
|
{
|
|
397
396
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-5 w-5" }),
|
|
398
397
|
label: labels.title,
|
|
@@ -400,7 +399,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
400
399
|
subtitle: labels.subtitle,
|
|
401
400
|
gradient: "from-amber-500 to-orange-700",
|
|
402
401
|
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
403
|
-
|
|
402
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
404
403
|
{
|
|
405
404
|
mode: "desktop",
|
|
406
405
|
label: labels.addTool,
|
|
@@ -411,7 +410,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
411
410
|
}
|
|
412
411
|
);
|
|
413
412
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
414
|
-
|
|
413
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
415
414
|
{
|
|
416
415
|
mode: "mobile",
|
|
417
416
|
label: labels.addTool,
|
|
@@ -419,9 +418,9 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
419
418
|
accent: "amber"
|
|
420
419
|
}
|
|
421
420
|
);
|
|
422
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
421
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
423
422
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
424
|
-
|
|
423
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
425
424
|
{
|
|
426
425
|
searchTerm,
|
|
427
426
|
onSearchChange: setSearchTerm,
|
|
@@ -429,7 +428,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
429
428
|
}
|
|
430
429
|
),
|
|
431
430
|
/* @__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(
|
|
432
|
-
|
|
431
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
433
432
|
{
|
|
434
433
|
accentGradient: "from-amber-500 to-orange-700",
|
|
435
434
|
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" }) }),
|
|
@@ -519,7 +518,7 @@ function ToolEditor({
|
|
|
519
518
|
setValue((v) => ({ ...v, [key]: next }));
|
|
520
519
|
};
|
|
521
520
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
522
|
-
|
|
521
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
523
522
|
{
|
|
524
523
|
open: true,
|
|
525
524
|
onClose,
|
|
@@ -532,9 +531,9 @@ function ToolEditor({
|
|
|
532
531
|
handleSubmit();
|
|
533
532
|
},
|
|
534
533
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
535
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
534
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
536
535
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
537
|
-
|
|
536
|
+
chunkTIJXCRM4_js.FormInput,
|
|
538
537
|
{
|
|
539
538
|
label: "Name",
|
|
540
539
|
required: true,
|
|
@@ -544,7 +543,7 @@ function ToolEditor({
|
|
|
544
543
|
}
|
|
545
544
|
),
|
|
546
545
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
547
|
-
|
|
546
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
548
547
|
{
|
|
549
548
|
label: "Tool type",
|
|
550
549
|
value: value.toolType,
|
|
@@ -554,7 +553,7 @@ function ToolEditor({
|
|
|
554
553
|
}
|
|
555
554
|
),
|
|
556
555
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
557
|
-
|
|
556
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
558
557
|
{
|
|
559
558
|
label: "Enabled",
|
|
560
559
|
value: value.enabled ? "true" : "false",
|
|
@@ -563,7 +562,7 @@ function ToolEditor({
|
|
|
563
562
|
}
|
|
564
563
|
),
|
|
565
564
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
566
|
-
|
|
565
|
+
chunkTIJXCRM4_js.FormInput,
|
|
567
566
|
{
|
|
568
567
|
label: "Icon (optional)",
|
|
569
568
|
value: value.icon ?? "",
|
|
@@ -573,7 +572,7 @@ function ToolEditor({
|
|
|
573
572
|
)
|
|
574
573
|
] }),
|
|
575
574
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
576
|
-
|
|
575
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
577
576
|
{
|
|
578
577
|
label: "Description",
|
|
579
578
|
rows: 2,
|
|
@@ -621,7 +620,7 @@ function ParametersEditor({
|
|
|
621
620
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
622
621
|
parameters.map((param, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_160px_1fr_110px_auto] items-end gap-2", children: [
|
|
623
622
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
624
|
-
|
|
623
|
+
chunkTIJXCRM4_js.FormInput,
|
|
625
624
|
{
|
|
626
625
|
label: "Name",
|
|
627
626
|
value: param.name,
|
|
@@ -630,7 +629,7 @@ function ParametersEditor({
|
|
|
630
629
|
}
|
|
631
630
|
),
|
|
632
631
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
633
|
-
|
|
632
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
634
633
|
{
|
|
635
634
|
label: "Type",
|
|
636
635
|
value: param.type,
|
|
@@ -639,7 +638,7 @@ function ParametersEditor({
|
|
|
639
638
|
}
|
|
640
639
|
),
|
|
641
640
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
642
|
-
|
|
641
|
+
chunkTIJXCRM4_js.FormInput,
|
|
643
642
|
{
|
|
644
643
|
label: "Description",
|
|
645
644
|
value: param.description,
|
|
@@ -673,9 +672,9 @@ function HandlerConfigEditor({
|
|
|
673
672
|
if (toolType === "http") {
|
|
674
673
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
675
674
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "HTTP handler" }),
|
|
676
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
675
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
677
676
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
678
|
-
|
|
677
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
679
678
|
{
|
|
680
679
|
label: "Method",
|
|
681
680
|
value: stringProp(config, "method", "GET"),
|
|
@@ -684,7 +683,7 @@ function HandlerConfigEditor({
|
|
|
684
683
|
}
|
|
685
684
|
),
|
|
686
685
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
687
|
-
|
|
686
|
+
chunkTIJXCRM4_js.FormInput,
|
|
688
687
|
{
|
|
689
688
|
label: "URL template",
|
|
690
689
|
value: stringProp(config, "url"),
|
|
@@ -694,7 +693,7 @@ function HandlerConfigEditor({
|
|
|
694
693
|
)
|
|
695
694
|
] }),
|
|
696
695
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
697
|
-
|
|
696
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
698
697
|
{
|
|
699
698
|
label: "Headers (JSON)",
|
|
700
699
|
rows: 3,
|
|
@@ -704,7 +703,7 @@ function HandlerConfigEditor({
|
|
|
704
703
|
}
|
|
705
704
|
),
|
|
706
705
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
707
|
-
|
|
706
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
708
707
|
{
|
|
709
708
|
label: "Body template",
|
|
710
709
|
rows: 3,
|
|
@@ -719,7 +718,7 @@ function HandlerConfigEditor({
|
|
|
719
718
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
720
719
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Function handler" }),
|
|
721
720
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
722
|
-
|
|
721
|
+
chunkTIJXCRM4_js.FormInput,
|
|
723
722
|
{
|
|
724
723
|
label: "Implementation key",
|
|
725
724
|
value: stringProp(config, "implementationKey"),
|
|
@@ -733,9 +732,9 @@ function HandlerConfigEditor({
|
|
|
733
732
|
if (toolType === "database_query") {
|
|
734
733
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
735
734
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Database query handler" }),
|
|
736
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
735
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
737
736
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
738
|
-
|
|
737
|
+
chunkTIJXCRM4_js.FormInput,
|
|
739
738
|
{
|
|
740
739
|
label: "Datasource ID",
|
|
741
740
|
value: stringProp(config, "datasourceId"),
|
|
@@ -744,7 +743,7 @@ function HandlerConfigEditor({
|
|
|
744
743
|
}
|
|
745
744
|
),
|
|
746
745
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
747
|
-
|
|
746
|
+
chunkTIJXCRM4_js.FormInput,
|
|
748
747
|
{
|
|
749
748
|
label: "Max rows",
|
|
750
749
|
type: "number",
|
|
@@ -754,7 +753,7 @@ function HandlerConfigEditor({
|
|
|
754
753
|
)
|
|
755
754
|
] }),
|
|
756
755
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
757
|
-
|
|
756
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
758
757
|
{
|
|
759
758
|
label: "Query template",
|
|
760
759
|
rows: 4,
|
|
@@ -770,7 +769,7 @@ function HandlerConfigEditor({
|
|
|
770
769
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Code execution handler" }),
|
|
771
770
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-amber-600 dark:text-amber-400", children: "Experimental \u2014 sandbox is not yet enforced. Only enable for trusted tools." }),
|
|
772
771
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
773
|
-
|
|
772
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
774
773
|
{
|
|
775
774
|
label: "Language",
|
|
776
775
|
value: stringProp(config, "language", "javascript"),
|
|
@@ -782,7 +781,7 @@ function HandlerConfigEditor({
|
|
|
782
781
|
}
|
|
783
782
|
),
|
|
784
783
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
785
|
-
|
|
784
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
786
785
|
{
|
|
787
786
|
label: "Code",
|
|
788
787
|
rows: 6,
|
|
@@ -795,9 +794,9 @@ function HandlerConfigEditor({
|
|
|
795
794
|
}
|
|
796
795
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
797
796
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "API call handler" }),
|
|
798
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
797
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
799
798
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
800
|
-
|
|
799
|
+
chunkTIJXCRM4_js.FormInput,
|
|
801
800
|
{
|
|
802
801
|
label: "URL",
|
|
803
802
|
value: stringProp(config, "url"),
|
|
@@ -805,7 +804,7 @@ function HandlerConfigEditor({
|
|
|
805
804
|
}
|
|
806
805
|
),
|
|
807
806
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
808
|
-
|
|
807
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
809
808
|
{
|
|
810
809
|
label: "Auth",
|
|
811
810
|
value: stringProp(config, "authType", "bearer"),
|
|
@@ -819,7 +818,7 @@ function HandlerConfigEditor({
|
|
|
819
818
|
}
|
|
820
819
|
),
|
|
821
820
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
822
|
-
|
|
821
|
+
chunkTIJXCRM4_js.FormInput,
|
|
823
822
|
{
|
|
824
823
|
label: "Credential secret id",
|
|
825
824
|
value: stringProp(config, "credentialRef"),
|
|
@@ -956,15 +955,24 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete, o
|
|
|
956
955
|
const filteredRules = searchTerm.trim() ? allRules.filter((rule) => (rule.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allRules;
|
|
957
956
|
const isEmpty = allRules.length === 0;
|
|
958
957
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
959
|
-
|
|
958
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
960
959
|
{
|
|
961
960
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-5 w-5" }),
|
|
962
961
|
label: labels.title,
|
|
963
962
|
title: labels.title,
|
|
964
963
|
subtitle: labels.subtitle,
|
|
965
964
|
gradient: "from-fuchsia-500 to-purple-700",
|
|
966
|
-
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
967
|
-
|
|
965
|
+
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
966
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
967
|
+
{
|
|
968
|
+
searchTerm,
|
|
969
|
+
onSearchChange: setSearchTerm,
|
|
970
|
+
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
971
|
+
noBorder: true
|
|
972
|
+
}
|
|
973
|
+
) : void 0,
|
|
974
|
+
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
975
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
968
976
|
{
|
|
969
977
|
mode: "desktop",
|
|
970
978
|
label: labels.addRule,
|
|
@@ -975,7 +983,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete, o
|
|
|
975
983
|
}
|
|
976
984
|
);
|
|
977
985
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
978
|
-
|
|
986
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
979
987
|
{
|
|
980
988
|
mode: "mobile",
|
|
981
989
|
label: labels.addRule,
|
|
@@ -983,43 +991,33 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete, o
|
|
|
983
991
|
accent: "fuchsia"
|
|
984
992
|
}
|
|
985
993
|
);
|
|
986
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
}
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
},
|
|
1014
|
-
children: labels.delete
|
|
1015
|
-
}
|
|
1016
|
-
)
|
|
1017
|
-
] }),
|
|
1018
|
-
children: rule.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: rule.description })
|
|
1019
|
-
},
|
|
1020
|
-
rule.ruleId
|
|
1021
|
-
)) })
|
|
1022
|
-
] });
|
|
994
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_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(
|
|
995
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
996
|
+
{
|
|
997
|
+
accentGradient: "from-fuchsia-500 to-purple-700",
|
|
998
|
+
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" }) }),
|
|
999
|
+
title: rule.name,
|
|
1000
|
+
subtitle: `${labels.order}: ${rule.order ?? 0}`,
|
|
1001
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: rule.enabled ? "emerald" : "zinc", children: rule.enabled ? labels.enabled : labels.disabled }),
|
|
1002
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
1003
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(rule), children: labels.edit }),
|
|
1004
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1005
|
+
chunkBHOT22QL_js.Button,
|
|
1006
|
+
{
|
|
1007
|
+
type: "button",
|
|
1008
|
+
size: "sm",
|
|
1009
|
+
color: "rose",
|
|
1010
|
+
onClick: () => {
|
|
1011
|
+
if (window.confirm(labels.deleteConfirm)) onDelete(rule);
|
|
1012
|
+
},
|
|
1013
|
+
children: labels.delete
|
|
1014
|
+
}
|
|
1015
|
+
)
|
|
1016
|
+
] }),
|
|
1017
|
+
children: rule.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: rule.description })
|
|
1018
|
+
},
|
|
1019
|
+
rule.ruleId
|
|
1020
|
+
)) });
|
|
1023
1021
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1024
1022
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1025
1023
|
hero,
|
|
@@ -1031,7 +1029,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete, o
|
|
|
1031
1029
|
{
|
|
1032
1030
|
title: labels.createTitle,
|
|
1033
1031
|
saveLabel: labels.save,
|
|
1034
|
-
initial:
|
|
1032
|
+
initial: chunkAPONR6ZM_js.defaultRuleForm(),
|
|
1035
1033
|
onClose: () => setCreateOpen(false),
|
|
1036
1034
|
onSubmit: (value) => {
|
|
1037
1035
|
onCreate(value);
|
|
@@ -1063,7 +1061,7 @@ function RuleEditor({
|
|
|
1063
1061
|
}) {
|
|
1064
1062
|
const [value, setValue] = react.useState(initial);
|
|
1065
1063
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1066
|
-
|
|
1064
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
1067
1065
|
{
|
|
1068
1066
|
open: true,
|
|
1069
1067
|
onClose,
|
|
@@ -1075,12 +1073,12 @@ function RuleEditor({
|
|
|
1075
1073
|
event.preventDefault();
|
|
1076
1074
|
onSubmit(value);
|
|
1077
1075
|
},
|
|
1078
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1076
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkAPONR6ZM_js.RuleForm, { value, onChange: setValue })
|
|
1079
1077
|
}
|
|
1080
1078
|
);
|
|
1081
1079
|
}
|
|
1082
1080
|
function ruleToFormValue(rule) {
|
|
1083
|
-
const base =
|
|
1081
|
+
const base = chunkAPONR6ZM_js.defaultRuleForm();
|
|
1084
1082
|
const rawCondition = rule.condition ?? rule.conditions;
|
|
1085
1083
|
const rawAction = pickAction(rule);
|
|
1086
1084
|
return {
|
|
@@ -1095,7 +1093,10 @@ function ruleToFormValue(rule) {
|
|
|
1095
1093
|
status: typeof rule.status === "string" ? rule.status : base.status,
|
|
1096
1094
|
validFrom: typeof rule.validFrom === "string" ? rule.validFrom : base.validFrom,
|
|
1097
1095
|
validUntil: typeof rule.validUntil === "string" ? rule.validUntil : base.validUntil,
|
|
1098
|
-
tags: Array.isArray(rule.tags) ? rule.tags.filter((tag) => typeof tag === "string") : base.tags
|
|
1096
|
+
tags: Array.isArray(rule.tags) ? rule.tags.filter((tag) => typeof tag === "string") : base.tags,
|
|
1097
|
+
// Round-trip recurrence (Fallback 4) — backend persists it as the
|
|
1098
|
+
// structured `{ kind, ... }` blob the wizard sends.
|
|
1099
|
+
recurrence: rule.recurrence ?? null
|
|
1099
1100
|
};
|
|
1100
1101
|
}
|
|
1101
1102
|
function pickAction(rule) {
|
|
@@ -1123,6 +1124,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1123
1124
|
timeoutMs: 3e4,
|
|
1124
1125
|
allowedTables: null,
|
|
1125
1126
|
blockedColumns: null,
|
|
1127
|
+
maskPii: null,
|
|
1126
1128
|
enabled: true,
|
|
1127
1129
|
createdAt: "2026-03-20T10:00:00Z",
|
|
1128
1130
|
updatedAt: "2026-03-20T10:00:00Z",
|
|
@@ -1139,6 +1141,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1139
1141
|
timeoutMs: 15e3,
|
|
1140
1142
|
allowedTables: null,
|
|
1141
1143
|
blockedColumns: null,
|
|
1144
|
+
maskPii: null,
|
|
1142
1145
|
enabled: true,
|
|
1143
1146
|
createdAt: "2026-03-18T08:30:00Z",
|
|
1144
1147
|
updatedAt: "2026-03-22T14:00:00Z",
|
|
@@ -1155,6 +1158,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1155
1158
|
timeoutMs: 3e4,
|
|
1156
1159
|
allowedTables: null,
|
|
1157
1160
|
blockedColumns: null,
|
|
1161
|
+
maskPii: null,
|
|
1158
1162
|
enabled: true,
|
|
1159
1163
|
createdAt: "2026-03-15T09:00:00Z",
|
|
1160
1164
|
updatedAt: "2026-03-21T11:00:00Z",
|
|
@@ -1171,6 +1175,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1171
1175
|
timeoutMs: 1e4,
|
|
1172
1176
|
allowedTables: null,
|
|
1173
1177
|
blockedColumns: null,
|
|
1178
|
+
maskPii: null,
|
|
1174
1179
|
enabled: false,
|
|
1175
1180
|
createdAt: "2026-03-10T12:00:00Z",
|
|
1176
1181
|
updatedAt: "2026-03-19T16:00:00Z",
|
|
@@ -1187,6 +1192,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1187
1192
|
timeoutMs: 5e3,
|
|
1188
1193
|
allowedTables: null,
|
|
1189
1194
|
blockedColumns: null,
|
|
1195
|
+
maskPii: null,
|
|
1190
1196
|
enabled: true,
|
|
1191
1197
|
createdAt: "2026-03-12T07:00:00Z",
|
|
1192
1198
|
updatedAt: "2026-03-23T09:00:00Z",
|
|
@@ -1203,6 +1209,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1203
1209
|
timeoutMs: 2e4,
|
|
1204
1210
|
allowedTables: null,
|
|
1205
1211
|
blockedColumns: null,
|
|
1212
|
+
maskPii: null,
|
|
1206
1213
|
enabled: true,
|
|
1207
1214
|
createdAt: "2026-03-22T15:00:00Z",
|
|
1208
1215
|
updatedAt: "2026-03-25T10:00:00Z",
|
|
@@ -1211,7 +1218,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1211
1218
|
];
|
|
1212
1219
|
function getDialectLabel(dialect) {
|
|
1213
1220
|
if (!dialect) return "Unknown";
|
|
1214
|
-
for (const category of
|
|
1221
|
+
for (const category of chunkNW32BM3F_js.DIALECT_CATEGORIES) {
|
|
1215
1222
|
const found = category.dialects.find((d) => d.value === dialect);
|
|
1216
1223
|
if (found) return found.label;
|
|
1217
1224
|
}
|
|
@@ -1219,12 +1226,12 @@ function getDialectLabel(dialect) {
|
|
|
1219
1226
|
}
|
|
1220
1227
|
function getDialectGradient(dialect) {
|
|
1221
1228
|
if (!dialect) return "from-gray-400 to-gray-500";
|
|
1222
|
-
const category =
|
|
1229
|
+
const category = chunkNW32BM3F_js.findCategory(dialect);
|
|
1223
1230
|
return category?.gradient ?? "from-gray-400 to-gray-500";
|
|
1224
1231
|
}
|
|
1225
1232
|
function getDialectIcon(dialect) {
|
|
1226
1233
|
if (!dialect) return outline.CircleStackIcon;
|
|
1227
|
-
const category =
|
|
1234
|
+
const category = chunkNW32BM3F_js.findCategory(dialect);
|
|
1228
1235
|
return category?.icon ?? outline.CircleStackIcon;
|
|
1229
1236
|
}
|
|
1230
1237
|
var DIALECT_LOGO = {
|
|
@@ -1294,6 +1301,7 @@ function DatasourcesPageView({
|
|
|
1294
1301
|
timeoutMs: 3e4,
|
|
1295
1302
|
allowedTables: null,
|
|
1296
1303
|
blockedColumns: null,
|
|
1304
|
+
maskPii: null,
|
|
1297
1305
|
enabled: true,
|
|
1298
1306
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1299
1307
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -1303,15 +1311,24 @@ function DatasourcesPageView({
|
|
|
1303
1311
|
}
|
|
1304
1312
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1305
1313
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1306
|
-
|
|
1314
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
1307
1315
|
{
|
|
1308
1316
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CircleStackIcon, { className: "h-5 w-5" }),
|
|
1309
1317
|
label: labels.title,
|
|
1310
1318
|
title: labels.title,
|
|
1311
1319
|
subtitle: labels.subtitle,
|
|
1312
1320
|
gradient: "from-amber-500 to-orange-600",
|
|
1313
|
-
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1314
|
-
|
|
1321
|
+
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1322
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
1323
|
+
{
|
|
1324
|
+
searchTerm,
|
|
1325
|
+
onSearchChange: setSearchTerm,
|
|
1326
|
+
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
1327
|
+
noBorder: true
|
|
1328
|
+
}
|
|
1329
|
+
) : void 0,
|
|
1330
|
+
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1331
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
1315
1332
|
{
|
|
1316
1333
|
mode: "desktop",
|
|
1317
1334
|
label: labels.addDatasource,
|
|
@@ -1322,7 +1339,7 @@ function DatasourcesPageView({
|
|
|
1322
1339
|
}
|
|
1323
1340
|
),
|
|
1324
1341
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1325
|
-
|
|
1342
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
1326
1343
|
{
|
|
1327
1344
|
mode: "mobile",
|
|
1328
1345
|
label: labels.addDatasource,
|
|
@@ -1330,16 +1347,8 @@ function DatasourcesPageView({
|
|
|
1330
1347
|
accent: "amber"
|
|
1331
1348
|
}
|
|
1332
1349
|
),
|
|
1333
|
-
!isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1334
|
-
chunkLVR4SR65_js.SearchBar,
|
|
1335
|
-
{
|
|
1336
|
-
searchTerm,
|
|
1337
|
-
onSearchChange: setSearchTerm,
|
|
1338
|
-
placeholder: labels.searchPlaceholder ?? labels.title
|
|
1339
|
-
}
|
|
1340
|
-
),
|
|
1341
1350
|
isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1342
|
-
|
|
1351
|
+
chunkTIJXCRM4_js.PageEmptyState,
|
|
1343
1352
|
{
|
|
1344
1353
|
title: labels.emptyTitle,
|
|
1345
1354
|
message: labels.emptyDescription,
|
|
@@ -1353,7 +1362,7 @@ function DatasourcesPageView({
|
|
|
1353
1362
|
const logoSrc = getDialectLogoSrc(ds.dialect);
|
|
1354
1363
|
const iconElement = logoSrc ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface flex h-11 w-11 items-center justify-center rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logoSrc, alt: dialectLabel, className: "h-7 w-7 object-contain" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-11 w-11 items-center justify-center rounded-lg bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-6 w-6 text-white" }) });
|
|
1355
1364
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1356
|
-
|
|
1365
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
1357
1366
|
{
|
|
1358
1367
|
accentGradient: gradient,
|
|
1359
1368
|
icon: iconElement,
|
|
@@ -1383,7 +1392,7 @@ function DatasourcesPageView({
|
|
|
1383
1392
|
);
|
|
1384
1393
|
}) }),
|
|
1385
1394
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1386
|
-
|
|
1395
|
+
chunkNW32BM3F_js.DatasourceModal,
|
|
1387
1396
|
{
|
|
1388
1397
|
open: modalOpen,
|
|
1389
1398
|
onClose: () => setModalOpen(false),
|
|
@@ -1412,37 +1421,36 @@ function AgentsIndexPageView({ labels }) {
|
|
|
1412
1421
|
const filteredTiles = searchTerm.trim() ? allTiles.filter((tile) => tile.title.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allTiles;
|
|
1413
1422
|
const isEmpty = allTiles.length === 0;
|
|
1414
1423
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1415
|
-
|
|
1424
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
1416
1425
|
{
|
|
1417
1426
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
|
|
1418
1427
|
label: labels.title,
|
|
1419
1428
|
title: labels.title,
|
|
1420
1429
|
subtitle: labels.subtitle,
|
|
1421
|
-
gradient: "from-violet-500 to-indigo-700"
|
|
1430
|
+
gradient: "from-violet-500 to-indigo-700",
|
|
1431
|
+
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1432
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
1433
|
+
{
|
|
1434
|
+
searchTerm,
|
|
1435
|
+
onSearchChange: setSearchTerm,
|
|
1436
|
+
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
1437
|
+
noBorder: true
|
|
1438
|
+
}
|
|
1439
|
+
) : void 0
|
|
1422
1440
|
}
|
|
1423
1441
|
);
|
|
1424
|
-
const content = /* @__PURE__ */ jsxRuntime.
|
|
1425
|
-
|
|
1426
|
-
|
|
1442
|
+
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) => {
|
|
1443
|
+
const Icon = tile.icon;
|
|
1444
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Link, { href: tile.href, className: "block focus:outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1445
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
1427
1446
|
{
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1447
|
+
accentGradient: tile.gradient,
|
|
1448
|
+
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" }) }),
|
|
1449
|
+
title: tile.title,
|
|
1450
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: tile.subtitle })
|
|
1431
1451
|
}
|
|
1432
|
-
),
|
|
1433
|
-
|
|
1434
|
-
const Icon = tile.icon;
|
|
1435
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Link, { href: tile.href, className: "block focus:outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1436
|
-
chunkLVR4SR65_js.EntityCard,
|
|
1437
|
-
{
|
|
1438
|
-
accentGradient: tile.gradient,
|
|
1439
|
-
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" }) }),
|
|
1440
|
-
title: tile.title,
|
|
1441
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: tile.subtitle })
|
|
1442
|
-
}
|
|
1443
|
-
) }, tile.id);
|
|
1444
|
-
}) })
|
|
1445
|
-
] });
|
|
1452
|
+
) }, tile.id);
|
|
1453
|
+
}) });
|
|
1446
1454
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1447
1455
|
hero,
|
|
1448
1456
|
content
|
|
@@ -1452,7 +1460,7 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1452
1460
|
const selectedWorkflow = workflows[0] ?? null;
|
|
1453
1461
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
1454
1462
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1455
|
-
|
|
1463
|
+
chunkTIJXCRM4_js.SectionHeader,
|
|
1456
1464
|
{
|
|
1457
1465
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.RectangleStackIcon, { className: "h-5 w-5 text-white" }),
|
|
1458
1466
|
title: labels.title,
|
|
@@ -1461,9 +1469,9 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1461
1469
|
}
|
|
1462
1470
|
),
|
|
1463
1471
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
|
|
1464
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1472
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.add }),
|
|
1465
1473
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1466
|
-
|
|
1474
|
+
chunkTIJXCRM4_js.Form,
|
|
1467
1475
|
{
|
|
1468
1476
|
onSubmit: (event) => {
|
|
1469
1477
|
event.preventDefault();
|
|
@@ -1474,32 +1482,32 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1474
1482
|
onCreate({ name, description });
|
|
1475
1483
|
event.currentTarget.reset();
|
|
1476
1484
|
},
|
|
1477
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1478
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1479
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1480
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1485
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
1486
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "name", label: labels.workflowName, placeholder: labels.workflowNamePlaceholder, required: true }),
|
|
1487
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.workflowDescriptionPlaceholder, rows: 3 }),
|
|
1488
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", children: labels.create }) })
|
|
1481
1489
|
] })
|
|
1482
1490
|
}
|
|
1483
1491
|
)
|
|
1484
1492
|
] }),
|
|
1485
1493
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
|
|
1486
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1487
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1488
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1489
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1490
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1491
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1492
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1493
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1494
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.registry }),
|
|
1495
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.Table, { children: [
|
|
1496
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableHead, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.TableRow, { children: [
|
|
1497
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableHeader, { children: labels.name }),
|
|
1498
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableHeader, { children: labels.description }),
|
|
1499
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableHeader, { children: labels.version }),
|
|
1500
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableHeader, { children: labels.status }),
|
|
1501
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableHeader, { children: labels.actions })
|
|
1494
1502
|
] }) }),
|
|
1495
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1496
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1497
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1498
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1499
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1500
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1503
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableBody, { children: workflows.map((workflow) => /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.TableRow, { children: [
|
|
1504
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableCell, { children: workflow.name }),
|
|
1505
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableCell, { children: workflow.description }),
|
|
1506
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableCell, { children: String(workflow.version) }),
|
|
1507
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { children: workflow.isDraft ? labels.statusDraft : labels.statusPublished }) }),
|
|
1508
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
1501
1509
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1502
|
-
|
|
1510
|
+
chunkTIJXCRM4_js.Form,
|
|
1503
1511
|
{
|
|
1504
1512
|
onSubmit: (event) => {
|
|
1505
1513
|
event.preventDefault();
|
|
@@ -1509,7 +1517,7 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1509
1517
|
description: workflow.description ?? ""
|
|
1510
1518
|
});
|
|
1511
1519
|
},
|
|
1512
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1520
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.InlineForm, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", outline: true, children: labels.saveMeta }) })
|
|
1513
1521
|
}
|
|
1514
1522
|
),
|
|
1515
1523
|
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", color: "sky", onClick: () => onPublish(workflow.id), children: labels.publish })
|
|
@@ -1518,8 +1526,8 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1518
1526
|
] })
|
|
1519
1527
|
] }),
|
|
1520
1528
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
|
|
1521
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1522
|
-
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(
|
|
1529
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.workspace }),
|
|
1530
|
+
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(chunkKDVZIDVF_js.WorkflowWorkspace, { graph: chunk3T2WGL47_js.adaptWorkflowGraphToUi(selectedWorkflow.graph) }) }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.Text, { children: labels.empty })
|
|
1523
1531
|
] })
|
|
1524
1532
|
] });
|
|
1525
1533
|
}
|
|
@@ -1533,6 +1541,7 @@ var BADGE_COLOR = {
|
|
|
1533
1541
|
function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onView, onViewTimeline }) {
|
|
1534
1542
|
const [statusFilter, setStatusFilter] = react.useState("all");
|
|
1535
1543
|
const [searchTerm, setSearchTerm] = react.useState("");
|
|
1544
|
+
const [filtersOpen, setFiltersOpen] = react.useState(false);
|
|
1536
1545
|
const statusOptions = react.useMemo(() => [
|
|
1537
1546
|
{ value: "all", label: labels.filterAll },
|
|
1538
1547
|
{ value: "pending", label: labels.statusPending },
|
|
@@ -1568,61 +1577,68 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
|
|
|
1568
1577
|
});
|
|
1569
1578
|
const isEmpty = allRuns.length === 0;
|
|
1570
1579
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1571
|
-
|
|
1580
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
1572
1581
|
{
|
|
1573
1582
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5" }),
|
|
1574
1583
|
label: labels.title,
|
|
1575
1584
|
title: labels.title,
|
|
1576
1585
|
subtitle: labels.subtitle,
|
|
1577
1586
|
gradient: "from-indigo-500 to-sky-700",
|
|
1578
|
-
toolbar:
|
|
1579
|
-
|
|
1587
|
+
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1588
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
1580
1589
|
{
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1590
|
+
searchTerm,
|
|
1591
|
+
onSearchChange: setSearchTerm,
|
|
1592
|
+
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
1593
|
+
noBorder: true,
|
|
1594
|
+
filtersModal: {
|
|
1595
|
+
open: filtersOpen,
|
|
1596
|
+
onOpen: () => setFiltersOpen(true),
|
|
1597
|
+
onClose: () => setFiltersOpen(false),
|
|
1598
|
+
title: labels.filterStatus,
|
|
1599
|
+
count: statusFilter !== "all" ? 1 : 0,
|
|
1600
|
+
onClear: statusFilter !== "all" ? () => setStatusFilter("all") : void 0,
|
|
1601
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1602
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
1603
|
+
{
|
|
1604
|
+
name: "statusFilter",
|
|
1605
|
+
label: labels.filterStatus,
|
|
1606
|
+
options: statusOptions,
|
|
1607
|
+
value: statusFilter,
|
|
1608
|
+
onValueChange: setStatusFilter
|
|
1609
|
+
}
|
|
1610
|
+
)
|
|
1611
|
+
}
|
|
1586
1612
|
}
|
|
1587
|
-
)
|
|
1613
|
+
) : void 0
|
|
1588
1614
|
}
|
|
1589
1615
|
);
|
|
1590
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
}
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onReplay(run), children: labels.replay }),
|
|
1611
|
-
run.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", color: "rose", onClick: () => onCancel(run), children: labels.cancel })
|
|
1616
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : filteredRuns.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_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(
|
|
1617
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
1618
|
+
{
|
|
1619
|
+
accentGradient: "from-indigo-500 to-sky-700",
|
|
1620
|
+
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" }) }),
|
|
1621
|
+
title: run.id.slice(0, 8),
|
|
1622
|
+
subtitle: `${labels.startedAt}: ${new Date(run.createdAt).toLocaleString()}`,
|
|
1623
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: BADGE_COLOR[run.status] ?? "zinc", children: statusLabelFor(run.status) }),
|
|
1624
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
1625
|
+
onView && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onView(run), children: labels.view }),
|
|
1626
|
+
onViewTimeline && labels.timeline && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onViewTimeline(run), children: labels.timeline }),
|
|
1627
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onReplay(run), children: labels.replay }),
|
|
1628
|
+
run.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", color: "rose", onClick: () => onCancel(run), children: labels.cancel })
|
|
1629
|
+
] }),
|
|
1630
|
+
children: [
|
|
1631
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 grid grid-cols-2 gap-1 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
1632
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.duration }),
|
|
1633
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: chunk3T2WGL47_js.formatDurationMs(run.totalDurationMs) }),
|
|
1634
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.triggeredBy }),
|
|
1635
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right truncate", children: run.triggeredBy || "\u2014" })
|
|
1612
1636
|
] }),
|
|
1613
|
-
children:
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right truncate", children: run.triggeredBy || "\u2014" })
|
|
1619
|
-
] }),
|
|
1620
|
-
run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-2 text-xs text-rose-600 dark:text-rose-400", children: run.error })
|
|
1621
|
-
]
|
|
1622
|
-
},
|
|
1623
|
-
run.id
|
|
1624
|
-
)) })
|
|
1625
|
-
] });
|
|
1637
|
+
run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-2 text-xs text-rose-600 dark:text-rose-400", children: run.error })
|
|
1638
|
+
]
|
|
1639
|
+
},
|
|
1640
|
+
run.id
|
|
1641
|
+
)) });
|
|
1626
1642
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1627
1643
|
hero,
|
|
1628
1644
|
content
|
|
@@ -1630,7 +1646,7 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
|
|
|
1630
1646
|
}
|
|
1631
1647
|
function RunTimelinePageView({ labels, entries, loading, runId }) {
|
|
1632
1648
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1633
|
-
|
|
1649
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
1634
1650
|
{
|
|
1635
1651
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5" }),
|
|
1636
1652
|
label: labels.title,
|
|
@@ -1642,19 +1658,19 @@ function RunTimelinePageView({ labels, entries, loading, runId }) {
|
|
|
1642
1658
|
if (loading) {
|
|
1643
1659
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1644
1660
|
hero,
|
|
1645
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1661
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {})
|
|
1646
1662
|
] });
|
|
1647
1663
|
}
|
|
1648
1664
|
if (entries.length === 0) {
|
|
1649
1665
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1650
1666
|
hero,
|
|
1651
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1667
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageEmptyState, { title: labels.empty ?? "", message: "", iconName: "folder-open" })
|
|
1652
1668
|
] });
|
|
1653
1669
|
}
|
|
1654
1670
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1655
1671
|
hero,
|
|
1656
1672
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1657
|
-
|
|
1673
|
+
chunkAPONR6ZM_js.ExecutionTimelinePanel,
|
|
1658
1674
|
{
|
|
1659
1675
|
entries,
|
|
1660
1676
|
labels
|
|
@@ -1739,15 +1755,24 @@ function ConnectionsPageView({
|
|
|
1739
1755
|
const filteredConnections = searchTerm.trim() ? allConnections.filter((conn) => conn.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allConnections;
|
|
1740
1756
|
const isEmpty = allConnections.length === 0;
|
|
1741
1757
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1742
|
-
|
|
1758
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
1743
1759
|
{
|
|
1744
1760
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.LinkIcon, { className: "h-5 w-5" }),
|
|
1745
1761
|
label: labels.title,
|
|
1746
1762
|
title: labels.title,
|
|
1747
1763
|
subtitle: labels.subtitle,
|
|
1748
1764
|
gradient: "from-sky-500 to-indigo-600",
|
|
1749
|
-
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1750
|
-
|
|
1765
|
+
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1766
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
1767
|
+
{
|
|
1768
|
+
searchTerm,
|
|
1769
|
+
onSearchChange: setSearchTerm,
|
|
1770
|
+
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
1771
|
+
noBorder: true
|
|
1772
|
+
}
|
|
1773
|
+
) : void 0,
|
|
1774
|
+
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1775
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
1751
1776
|
{
|
|
1752
1777
|
mode: "desktop",
|
|
1753
1778
|
label: labels.add,
|
|
@@ -1758,7 +1783,7 @@ function ConnectionsPageView({
|
|
|
1758
1783
|
}
|
|
1759
1784
|
);
|
|
1760
1785
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1761
|
-
|
|
1786
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
1762
1787
|
{
|
|
1763
1788
|
mode: "mobile",
|
|
1764
1789
|
label: labels.add,
|
|
@@ -1766,50 +1791,40 @@ function ConnectionsPageView({
|
|
|
1766
1791
|
accent: "sky"
|
|
1767
1792
|
}
|
|
1768
1793
|
);
|
|
1769
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
{
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
] }),
|
|
1804
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 space-y-0.5 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
1805
|
-
conn.region && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Region", value: conn.region }),
|
|
1806
|
-
conn.endpoint && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Endpoint", value: conn.endpoint }),
|
|
1807
|
-
conn.modelFilter && conn.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Models", value: conn.modelFilter.join(", ") })
|
|
1808
|
-
] })
|
|
1809
|
-
},
|
|
1810
|
-
conn.id
|
|
1811
|
-
)) })
|
|
1812
|
-
] });
|
|
1794
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_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(
|
|
1795
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
1796
|
+
{
|
|
1797
|
+
accentGradient: "from-sky-500 to-indigo-600",
|
|
1798
|
+
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" }) }),
|
|
1799
|
+
title: conn.name,
|
|
1800
|
+
subtitle: providerLabel(conn.providerSlug),
|
|
1801
|
+
status: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1", children: [
|
|
1802
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: conn.enabled ? "emerald" : "zinc", children: conn.enabled ? labels.enable : labels.disable }),
|
|
1803
|
+
conn.credentialRef ? /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "indigo", children: "Secret set" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "amber", children: "No secret" })
|
|
1804
|
+
] }),
|
|
1805
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
1806
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(conn), children: labels.edit }),
|
|
1807
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1808
|
+
chunkBHOT22QL_js.Button,
|
|
1809
|
+
{
|
|
1810
|
+
type: "button",
|
|
1811
|
+
size: "sm",
|
|
1812
|
+
color: "rose",
|
|
1813
|
+
onClick: async () => {
|
|
1814
|
+
if (window.confirm(labels.deleteConfirm)) await onDelete(conn);
|
|
1815
|
+
},
|
|
1816
|
+
children: labels.delete
|
|
1817
|
+
}
|
|
1818
|
+
)
|
|
1819
|
+
] }),
|
|
1820
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 space-y-0.5 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
1821
|
+
conn.region && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Region", value: conn.region }),
|
|
1822
|
+
conn.endpoint && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Endpoint", value: conn.endpoint }),
|
|
1823
|
+
conn.modelFilter && conn.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Models", value: conn.modelFilter.join(", ") })
|
|
1824
|
+
] })
|
|
1825
|
+
},
|
|
1826
|
+
conn.id
|
|
1827
|
+
)) });
|
|
1813
1828
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1814
1829
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1815
1830
|
hero,
|
|
@@ -1929,7 +1944,7 @@ function ConnectionEditor({
|
|
|
1929
1944
|
return preset.exampleModels?.join(", ") ?? "";
|
|
1930
1945
|
}, [preset]);
|
|
1931
1946
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1932
|
-
|
|
1947
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
1933
1948
|
{
|
|
1934
1949
|
open: true,
|
|
1935
1950
|
onClose,
|
|
@@ -1942,9 +1957,9 @@ function ConnectionEditor({
|
|
|
1942
1957
|
void handleSubmit();
|
|
1943
1958
|
},
|
|
1944
1959
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1945
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1960
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
1946
1961
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1947
|
-
|
|
1962
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
1948
1963
|
{
|
|
1949
1964
|
label: "Provider",
|
|
1950
1965
|
value: value.providerSlug,
|
|
@@ -1955,7 +1970,7 @@ function ConnectionEditor({
|
|
|
1955
1970
|
}
|
|
1956
1971
|
),
|
|
1957
1972
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1958
|
-
|
|
1973
|
+
chunkTIJXCRM4_js.FormInput,
|
|
1959
1974
|
{
|
|
1960
1975
|
label: "Display name",
|
|
1961
1976
|
required: true,
|
|
@@ -1965,7 +1980,7 @@ function ConnectionEditor({
|
|
|
1965
1980
|
}
|
|
1966
1981
|
),
|
|
1967
1982
|
preset.needsRegion && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1968
|
-
|
|
1983
|
+
chunkTIJXCRM4_js.FormInput,
|
|
1969
1984
|
{
|
|
1970
1985
|
label: "Region",
|
|
1971
1986
|
value: value.region,
|
|
@@ -1974,7 +1989,7 @@ function ConnectionEditor({
|
|
|
1974
1989
|
}
|
|
1975
1990
|
),
|
|
1976
1991
|
preset.needsEndpoint && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1977
|
-
|
|
1992
|
+
chunkTIJXCRM4_js.FormInput,
|
|
1978
1993
|
{
|
|
1979
1994
|
label: "Endpoint URL",
|
|
1980
1995
|
value: value.endpoint,
|
|
@@ -1984,7 +1999,7 @@ function ConnectionEditor({
|
|
|
1984
1999
|
)
|
|
1985
2000
|
] }),
|
|
1986
2001
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1987
|
-
|
|
2002
|
+
chunkTIJXCRM4_js.FormInput,
|
|
1988
2003
|
{
|
|
1989
2004
|
label: value.credentialRef ? "Rotate API key (leave blank to keep current)" : "API key",
|
|
1990
2005
|
type: "password",
|
|
@@ -1995,7 +2010,7 @@ function ConnectionEditor({
|
|
|
1995
2010
|
}
|
|
1996
2011
|
),
|
|
1997
2012
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1998
|
-
|
|
2013
|
+
chunkTIJXCRM4_js.FormInput,
|
|
1999
2014
|
{
|
|
2000
2015
|
label: "Model filter (comma-separated, optional)",
|
|
2001
2016
|
value: value.modelFilter,
|
|
@@ -2007,7 +2022,7 @@ function ConnectionEditor({
|
|
|
2007
2022
|
/* @__PURE__ */ jsxRuntime.jsxs("details", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 text-sm dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
2008
2023
|
/* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer font-medium text-slate-700 dark:text-slate-200", children: "Advanced config (JSON)" }),
|
|
2009
2024
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2010
|
-
|
|
2025
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
2011
2026
|
{
|
|
2012
2027
|
rows: 4,
|
|
2013
2028
|
value: value.configJson,
|
|
@@ -2077,7 +2092,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2077
2092
|
{ value: "password", label: labels.typePassword }
|
|
2078
2093
|
];
|
|
2079
2094
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2080
|
-
|
|
2095
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
2081
2096
|
{
|
|
2082
2097
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-5 w-5" }),
|
|
2083
2098
|
label: labels.title,
|
|
@@ -2085,7 +2100,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2085
2100
|
subtitle: labels.subtitle,
|
|
2086
2101
|
gradient: "from-rose-500 to-orange-600",
|
|
2087
2102
|
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2088
|
-
|
|
2103
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
2089
2104
|
{
|
|
2090
2105
|
mode: "desktop",
|
|
2091
2106
|
label: labels.addCredential,
|
|
@@ -2096,7 +2111,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2096
2111
|
}
|
|
2097
2112
|
);
|
|
2098
2113
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2099
|
-
|
|
2114
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
2100
2115
|
{
|
|
2101
2116
|
mode: "mobile",
|
|
2102
2117
|
label: labels.addCredential,
|
|
@@ -2104,9 +2119,9 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2104
2119
|
accent: "rose"
|
|
2105
2120
|
}
|
|
2106
2121
|
);
|
|
2107
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2122
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2108
2123
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2109
|
-
|
|
2124
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
2110
2125
|
{
|
|
2111
2126
|
searchTerm,
|
|
2112
2127
|
onSearchChange: setSearchTerm,
|
|
@@ -2114,7 +2129,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2114
2129
|
}
|
|
2115
2130
|
),
|
|
2116
2131
|
/* @__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(
|
|
2117
|
-
|
|
2132
|
+
chunkTIJXCRM4_js.EntityCard,
|
|
2118
2133
|
{
|
|
2119
2134
|
accentGradient: "from-rose-500 to-orange-700",
|
|
2120
2135
|
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" }) }),
|
|
@@ -2122,7 +2137,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2122
2137
|
subtitle: secret.secretType,
|
|
2123
2138
|
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: secret.disabled ? "zinc" : "emerald", children: secret.disabled ? labels.disable : "Active" }),
|
|
2124
2139
|
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
2125
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2140
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.CopyableId, { id: secret.secretId }),
|
|
2126
2141
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
2127
2142
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setRotateFor(secret), children: [
|
|
2128
2143
|
/* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "mr-1 h-3.5 w-3.5" }),
|
|
@@ -2165,7 +2180,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2165
2180
|
mobileAction
|
|
2166
2181
|
] }),
|
|
2167
2182
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2168
|
-
|
|
2183
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
2169
2184
|
{
|
|
2170
2185
|
open: createOpen,
|
|
2171
2186
|
onClose: () => setCreateOpen(false),
|
|
@@ -2183,16 +2198,16 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2183
2198
|
onCreate({ name, value, secretType, description });
|
|
2184
2199
|
setCreateOpen(false);
|
|
2185
2200
|
},
|
|
2186
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2187
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2188
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2189
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2190
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2201
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
2202
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "name", label: labels.name, placeholder: labels.namePlaceholder, required: true }),
|
|
2203
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormSelect, { name: "secretType", label: labels.type, options: typeOptions, defaultValue: "generic" }),
|
|
2204
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }),
|
|
2205
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.descriptionPlaceholder, rows: 2 })
|
|
2191
2206
|
] })
|
|
2192
2207
|
}
|
|
2193
2208
|
),
|
|
2194
2209
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2195
|
-
|
|
2210
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
2196
2211
|
{
|
|
2197
2212
|
open: rotateFor !== null,
|
|
2198
2213
|
onClose: () => setRotateFor(null),
|
|
@@ -2207,7 +2222,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2207
2222
|
onRotate(rotateFor, value);
|
|
2208
2223
|
setRotateFor(null);
|
|
2209
2224
|
},
|
|
2210
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2225
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormGrid, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }) })
|
|
2211
2226
|
}
|
|
2212
2227
|
)
|
|
2213
2228
|
] });
|
|
@@ -2260,15 +2275,24 @@ function AgentsWorkspacePageView({
|
|
|
2260
2275
|
}, [agents, selectedId]);
|
|
2261
2276
|
const isEmpty = agents.length === 0;
|
|
2262
2277
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2263
|
-
|
|
2278
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
2264
2279
|
{
|
|
2265
2280
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
|
|
2266
2281
|
label: labels.title,
|
|
2267
2282
|
title: labels.title,
|
|
2268
2283
|
subtitle: labels.subtitle,
|
|
2269
2284
|
gradient: "from-violet-500 to-indigo-700",
|
|
2285
|
+
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2286
|
+
chunkTIJXCRM4_js.SearchBar,
|
|
2287
|
+
{
|
|
2288
|
+
searchTerm,
|
|
2289
|
+
onSearchChange: setSearchTerm,
|
|
2290
|
+
placeholder: labels.searchPlaceholder,
|
|
2291
|
+
noBorder: true
|
|
2292
|
+
}
|
|
2293
|
+
) : void 0,
|
|
2270
2294
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2271
|
-
|
|
2295
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
2272
2296
|
{
|
|
2273
2297
|
mode: "desktop",
|
|
2274
2298
|
label: labels.addAgent,
|
|
@@ -2279,7 +2303,7 @@ function AgentsWorkspacePageView({
|
|
|
2279
2303
|
}
|
|
2280
2304
|
);
|
|
2281
2305
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2282
|
-
|
|
2306
|
+
chunkTIJXCRM4_js.CreateActionButton,
|
|
2283
2307
|
{
|
|
2284
2308
|
mode: "mobile",
|
|
2285
2309
|
label: labels.addAgent,
|
|
@@ -2287,91 +2311,81 @@ function AgentsWorkspacePageView({
|
|
|
2287
2311
|
accent: "violet"
|
|
2288
2312
|
}
|
|
2289
2313
|
);
|
|
2290
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2291
|
-
|
|
2314
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2315
|
+
chunkTIJXCRM4_js.PageEmptyState,
|
|
2292
2316
|
{
|
|
2293
2317
|
title: labels.empty,
|
|
2294
2318
|
message: labels.emptyMessage,
|
|
2295
2319
|
iconName: "folder-open"
|
|
2296
2320
|
}
|
|
2297
|
-
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
2298
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
),
|
|
2306
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-[20rem_minmax(0,1fr)]", children: [
|
|
2307
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:sticky lg:top-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkLVR4SR65_js.ListCard, { variant: "glass", children: filteredAgents.map((agent) => {
|
|
2308
|
-
const id = String(agent.agentId ?? agent.id ?? "");
|
|
2309
|
-
const active = id === selectedId;
|
|
2310
|
-
const initials = deriveInitials(String(agent.name ?? id));
|
|
2311
|
-
const modelName = models.find((m) => m.id === String(agent.modelId ?? ""))?.name ?? String(agent.modelId ?? "");
|
|
2312
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2313
|
-
chunkLVR4SR65_js.ListCardItem,
|
|
2314
|
-
{
|
|
2315
|
-
leading: /* @__PURE__ */ jsxRuntime.jsx(chunkLVR4SR65_js.Avatar, { tone: active ? "violet" : "slate", initials }),
|
|
2316
|
-
trailing: agent.activePromptVersion > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "emerald", children: [
|
|
2317
|
-
"v",
|
|
2318
|
-
agent.activePromptVersion
|
|
2319
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", children: "draft" }),
|
|
2320
|
-
pressable: true,
|
|
2321
|
-
onPress: () => {
|
|
2322
|
-
setSelectedId(id);
|
|
2323
|
-
onSelectAgent?.(id);
|
|
2324
|
-
},
|
|
2325
|
-
className: active ? "bg-violet-500/5 dark:bg-violet-400/10" : "",
|
|
2326
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
2327
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-sm font-semibold text-slate-900 dark:text-slate-100", children: String(agent.name ?? id) }),
|
|
2328
|
-
modelName && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-slate-500 dark:text-slate-400", children: modelName })
|
|
2329
|
-
] })
|
|
2330
|
-
},
|
|
2331
|
-
id
|
|
2332
|
-
);
|
|
2333
|
-
}) }) }),
|
|
2334
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: selectedAgent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2335
|
-
AgentDetail,
|
|
2336
|
-
{
|
|
2337
|
-
agent: selectedAgent,
|
|
2338
|
-
labels,
|
|
2339
|
-
models,
|
|
2340
|
-
tools,
|
|
2341
|
-
connections,
|
|
2342
|
-
prompts: promptsByAgent[String(selectedAgent.agentId ?? selectedAgent.id ?? "")] ?? [],
|
|
2343
|
-
onUpdateAgent,
|
|
2344
|
-
onDeleteAgent,
|
|
2345
|
-
onCreatePrompt,
|
|
2346
|
-
onActivatePrompt,
|
|
2347
|
-
onAttachTool,
|
|
2348
|
-
onDetachTool,
|
|
2349
|
-
onUpdateModel,
|
|
2350
|
-
onCleared: () => {
|
|
2351
|
-
setSelectedId(null);
|
|
2352
|
-
onSelectAgent?.(null);
|
|
2353
|
-
}
|
|
2354
|
-
},
|
|
2355
|
-
String(selectedAgent.agentId ?? selectedAgent.id ?? "")
|
|
2356
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2357
|
-
chunkLVR4SR65_js.SectionCard,
|
|
2321
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-[20rem_minmax(0,1fr)]", children: [
|
|
2322
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:sticky lg:top-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.ListCard, { variant: "glass", children: filteredAgents.map((agent) => {
|
|
2323
|
+
const id = String(agent.agentId ?? agent.id ?? "");
|
|
2324
|
+
const active = id === selectedId;
|
|
2325
|
+
const initials = deriveInitials(String(agent.name ?? id));
|
|
2326
|
+
const modelName = models.find((m) => m.id === String(agent.modelId ?? ""))?.name ?? String(agent.modelId ?? "");
|
|
2327
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2328
|
+
chunkTIJXCRM4_js.ListCardItem,
|
|
2358
2329
|
{
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2330
|
+
leading: /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.Avatar, { tone: active ? "violet" : "slate", initials }),
|
|
2331
|
+
trailing: agent.activePromptVersion > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "emerald", children: [
|
|
2332
|
+
"v",
|
|
2333
|
+
agent.activePromptVersion
|
|
2334
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", children: "draft" }),
|
|
2335
|
+
pressable: true,
|
|
2336
|
+
onPress: () => {
|
|
2337
|
+
setSelectedId(id);
|
|
2338
|
+
onSelectAgent?.(id);
|
|
2363
2339
|
},
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
{
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2340
|
+
className: active ? "bg-violet-500/5 dark:bg-violet-400/10" : "",
|
|
2341
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
2342
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-sm font-semibold text-slate-900 dark:text-slate-100", children: String(agent.name ?? id) }),
|
|
2343
|
+
modelName && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-slate-500 dark:text-slate-400", children: modelName })
|
|
2344
|
+
] })
|
|
2345
|
+
},
|
|
2346
|
+
id
|
|
2347
|
+
);
|
|
2348
|
+
}) }) }),
|
|
2349
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { children: selectedAgent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2350
|
+
AgentDetail,
|
|
2351
|
+
{
|
|
2352
|
+
agent: selectedAgent,
|
|
2353
|
+
labels,
|
|
2354
|
+
models,
|
|
2355
|
+
tools,
|
|
2356
|
+
connections,
|
|
2357
|
+
prompts: promptsByAgent[String(selectedAgent.agentId ?? selectedAgent.id ?? "")] ?? [],
|
|
2358
|
+
onUpdateAgent,
|
|
2359
|
+
onDeleteAgent,
|
|
2360
|
+
onCreatePrompt,
|
|
2361
|
+
onActivatePrompt,
|
|
2362
|
+
onAttachTool,
|
|
2363
|
+
onDetachTool,
|
|
2364
|
+
onUpdateModel,
|
|
2365
|
+
onCleared: () => {
|
|
2366
|
+
setSelectedId(null);
|
|
2367
|
+
onSelectAgent?.(null);
|
|
2372
2368
|
}
|
|
2373
|
-
|
|
2374
|
-
|
|
2369
|
+
},
|
|
2370
|
+
String(selectedAgent.agentId ?? selectedAgent.id ?? "")
|
|
2371
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2372
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2373
|
+
{
|
|
2374
|
+
header: {
|
|
2375
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-4 w-4" }),
|
|
2376
|
+
title: labels.noSelection,
|
|
2377
|
+
subtitle: labels.noSelectionMessage
|
|
2378
|
+
},
|
|
2379
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2380
|
+
chunkTIJXCRM4_js.PageEmptyState,
|
|
2381
|
+
{
|
|
2382
|
+
title: labels.noSelection,
|
|
2383
|
+
message: labels.noSelectionMessage,
|
|
2384
|
+
iconName: "folder-open"
|
|
2385
|
+
}
|
|
2386
|
+
)
|
|
2387
|
+
}
|
|
2388
|
+
) })
|
|
2375
2389
|
] });
|
|
2376
2390
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
2377
2391
|
hero,
|
|
@@ -2397,7 +2411,7 @@ function AgentDetail({
|
|
|
2397
2411
|
}) {
|
|
2398
2412
|
const agentId = String(agent.agentId ?? agent.id ?? "");
|
|
2399
2413
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2400
|
-
|
|
2414
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2401
2415
|
{
|
|
2402
2416
|
header: {
|
|
2403
2417
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-4 w-4" }),
|
|
@@ -2422,15 +2436,15 @@ function AgentDetail({
|
|
|
2422
2436
|
]
|
|
2423
2437
|
}
|
|
2424
2438
|
),
|
|
2425
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2426
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2427
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2428
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2429
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2430
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2439
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.Tabs, { defaultValue: "general", className: "w-full", children: [
|
|
2440
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.TabsList, { className: "bg-white/40 dark:bg-white/[0.06]", children: [
|
|
2441
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsTrigger, { value: "general", children: labels.generalTab }),
|
|
2442
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsTrigger, { value: "prompt", children: labels.promptTab }),
|
|
2443
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsTrigger, { value: "tools", children: labels.toolsTab }),
|
|
2444
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsTrigger, { value: "model", children: labels.modelTab })
|
|
2431
2445
|
] }),
|
|
2432
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2433
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2446
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsContent, { value: "general", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(GeneralTab, { agent, labels, onSubmit: (input) => onUpdateAgent(agentId, input) }) }),
|
|
2447
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsContent, { value: "prompt", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2434
2448
|
PromptTab,
|
|
2435
2449
|
{
|
|
2436
2450
|
agent,
|
|
@@ -2440,7 +2454,7 @@ function AgentDetail({
|
|
|
2440
2454
|
onActivate: (promptId) => onActivatePrompt(agentId, promptId)
|
|
2441
2455
|
}
|
|
2442
2456
|
) }),
|
|
2443
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2457
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsContent, { value: "tools", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2444
2458
|
ToolsTab,
|
|
2445
2459
|
{
|
|
2446
2460
|
agent,
|
|
@@ -2450,7 +2464,7 @@ function AgentDetail({
|
|
|
2450
2464
|
onDetach: (toolId) => onDetachTool(agentId, toolId)
|
|
2451
2465
|
}
|
|
2452
2466
|
) }),
|
|
2453
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2467
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.TabsContent, { value: "model", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2454
2468
|
ModelTab,
|
|
2455
2469
|
{
|
|
2456
2470
|
agent,
|
|
@@ -2482,7 +2496,7 @@ function GeneralTab({
|
|
|
2482
2496
|
const initialRole = String(agent.role ?? "");
|
|
2483
2497
|
const initialStatus = String(agent.status ?? "draft");
|
|
2484
2498
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2485
|
-
|
|
2499
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2486
2500
|
{
|
|
2487
2501
|
variant: "glass",
|
|
2488
2502
|
header: {
|
|
@@ -2511,10 +2525,10 @@ function GeneralTab({
|
|
|
2511
2525
|
},
|
|
2512
2526
|
className: "space-y-4",
|
|
2513
2527
|
children: [
|
|
2514
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2515
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2528
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
2529
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "name", label: labels.name, defaultValue: initial.name, required: true }),
|
|
2516
2530
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2517
|
-
|
|
2531
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
2518
2532
|
{
|
|
2519
2533
|
name: "status",
|
|
2520
2534
|
label: labels.status,
|
|
@@ -2526,9 +2540,9 @@ function GeneralTab({
|
|
|
2526
2540
|
]
|
|
2527
2541
|
}
|
|
2528
2542
|
),
|
|
2529
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2543
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "role", label: labels.role, placeholder: labels.rolePlaceholder, defaultValue: initialRole }),
|
|
2530
2544
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2531
|
-
|
|
2545
|
+
chunkTIJXCRM4_js.FormInput,
|
|
2532
2546
|
{
|
|
2533
2547
|
name: "maxTokens",
|
|
2534
2548
|
label: labels.maxTokens,
|
|
@@ -2537,7 +2551,7 @@ function GeneralTab({
|
|
|
2537
2551
|
}
|
|
2538
2552
|
),
|
|
2539
2553
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2540
|
-
|
|
2554
|
+
chunkTIJXCRM4_js.FormInput,
|
|
2541
2555
|
{
|
|
2542
2556
|
name: "temperature",
|
|
2543
2557
|
label: labels.temperature,
|
|
@@ -2549,7 +2563,7 @@ function GeneralTab({
|
|
|
2549
2563
|
}
|
|
2550
2564
|
)
|
|
2551
2565
|
] }),
|
|
2552
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2566
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "description", label: labels.description, defaultValue: initialDescription, rows: 3 }),
|
|
2553
2567
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", color: "indigo", disabled: submitting, children: submitting ? labels.saving : labels.save }) })
|
|
2554
2568
|
]
|
|
2555
2569
|
}
|
|
@@ -2569,7 +2583,7 @@ function PromptTab({
|
|
|
2569
2583
|
const currentSystem = String(agent.systemPrompt ?? "");
|
|
2570
2584
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
2571
2585
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2572
|
-
|
|
2586
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2573
2587
|
{
|
|
2574
2588
|
variant: "glass",
|
|
2575
2589
|
header: {
|
|
@@ -2581,7 +2595,7 @@ function PromptTab({
|
|
|
2581
2595
|
}
|
|
2582
2596
|
),
|
|
2583
2597
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2584
|
-
|
|
2598
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2585
2599
|
{
|
|
2586
2600
|
variant: "glass",
|
|
2587
2601
|
header: {
|
|
@@ -2592,10 +2606,10 @@ function PromptTab({
|
|
|
2592
2606
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-4 w-4" }),
|
|
2593
2607
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1.5", children: labels.addPrompt })
|
|
2594
2608
|
] }),
|
|
2595
|
-
children: prompts.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.promptVersionsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2609
|
+
children: prompts.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.promptVersionsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.ListCard, { children: prompts.map((prompt) => {
|
|
2596
2610
|
const id = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
|
|
2597
2611
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2598
|
-
|
|
2612
|
+
chunkTIJXCRM4_js.ListCardItem,
|
|
2599
2613
|
{
|
|
2600
2614
|
leading: /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: prompt.isActive ? "emerald" : "zinc", children: [
|
|
2601
2615
|
"v",
|
|
@@ -2613,7 +2627,7 @@ function PromptTab({
|
|
|
2613
2627
|
}
|
|
2614
2628
|
),
|
|
2615
2629
|
addOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2616
|
-
|
|
2630
|
+
chunkTIJXCRM4_js.GlassModal,
|
|
2617
2631
|
{
|
|
2618
2632
|
open: true,
|
|
2619
2633
|
onClose: () => setAddOpen(false),
|
|
@@ -2634,10 +2648,10 @@ function PromptTab({
|
|
|
2634
2648
|
});
|
|
2635
2649
|
setAddOpen(false);
|
|
2636
2650
|
},
|
|
2637
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2638
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2651
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
2652
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormSelect, { name: "locale", label: labels.promptLocale, options: LOCALE_OPTIONS2, defaultValue: "en" }),
|
|
2639
2653
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2640
|
-
|
|
2654
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
2641
2655
|
{
|
|
2642
2656
|
name: "isActive",
|
|
2643
2657
|
label: labels.promptIsActive,
|
|
@@ -2648,10 +2662,10 @@ function PromptTab({
|
|
|
2648
2662
|
defaultValue: "true"
|
|
2649
2663
|
}
|
|
2650
2664
|
),
|
|
2651
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2652
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2653
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2654
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2665
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormInput, { name: "reason", label: labels.promptReason }),
|
|
2666
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "systemPrompt", label: labels.promptSystemPrompt, rows: 3 }),
|
|
2667
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "userTemplate", label: labels.promptUserTemplate, rows: 3 }),
|
|
2668
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormTextarea, { name: "prompt", label: labels.promptText, rows: 6, required: true })
|
|
2655
2669
|
] })
|
|
2656
2670
|
}
|
|
2657
2671
|
)
|
|
@@ -2674,15 +2688,15 @@ function ToolsTab({
|
|
|
2674
2688
|
const availableTools = tools.filter((tool) => !attachedSet.has(tool.agentToolId));
|
|
2675
2689
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
2676
2690
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2677
|
-
|
|
2691
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2678
2692
|
{
|
|
2679
2693
|
variant: "glass",
|
|
2680
2694
|
header: {
|
|
2681
2695
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-4 w-4" }),
|
|
2682
2696
|
title: labels.toolsAttached
|
|
2683
2697
|
},
|
|
2684
|
-
children: attachedTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2685
|
-
|
|
2698
|
+
children: attachedTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.ListCard, { children: attachedTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2699
|
+
chunkTIJXCRM4_js.ListCardItem,
|
|
2686
2700
|
{
|
|
2687
2701
|
leading: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 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-5 w-5" }) }),
|
|
2688
2702
|
trailing: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onDetach(tool.agentToolId), children: labels.detachTool }),
|
|
@@ -2696,15 +2710,15 @@ function ToolsTab({
|
|
|
2696
2710
|
}
|
|
2697
2711
|
),
|
|
2698
2712
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2699
|
-
|
|
2713
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2700
2714
|
{
|
|
2701
2715
|
variant: "glass",
|
|
2702
2716
|
header: {
|
|
2703
2717
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-4 w-4" }),
|
|
2704
2718
|
title: labels.toolsAvailable
|
|
2705
2719
|
},
|
|
2706
|
-
children: availableTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2707
|
-
|
|
2720
|
+
children: availableTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.ListCard, { children: availableTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2721
|
+
chunkTIJXCRM4_js.ListCardItem,
|
|
2708
2722
|
{
|
|
2709
2723
|
leading: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 items-center justify-center rounded-lg bg-slate-500/10 text-slate-600 dark:bg-slate-500/20 dark:text-slate-300", children: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-5 w-5" }) }),
|
|
2710
2724
|
trailing: /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Button, { type: "button", size: "sm", color: "indigo", onClick: () => onAttach(tool.agentToolId), children: [
|
|
@@ -2745,7 +2759,7 @@ function ModelTab({
|
|
|
2745
2759
|
return matches.length > 0 ? matches : connections;
|
|
2746
2760
|
}, [selectedModel, connections]);
|
|
2747
2761
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2748
|
-
|
|
2762
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
2749
2763
|
{
|
|
2750
2764
|
variant: "glass",
|
|
2751
2765
|
header: {
|
|
@@ -2766,9 +2780,9 @@ function ModelTab({
|
|
|
2766
2780
|
},
|
|
2767
2781
|
className: "space-y-4",
|
|
2768
2782
|
children: [
|
|
2769
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2783
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
2770
2784
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2771
|
-
|
|
2785
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
2772
2786
|
{
|
|
2773
2787
|
label: labels.model,
|
|
2774
2788
|
value: modelId,
|
|
@@ -2777,7 +2791,7 @@ function ModelTab({
|
|
|
2777
2791
|
}
|
|
2778
2792
|
),
|
|
2779
2793
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2780
|
-
|
|
2794
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
2781
2795
|
{
|
|
2782
2796
|
label: labels.connection,
|
|
2783
2797
|
value: connectionId,
|
|
@@ -2979,11 +2993,9 @@ function AgentNewWizardPageView({
|
|
|
2979
2993
|
labels.wizardStep4Subtitle,
|
|
2980
2994
|
labels.wizardStep5Subtitle
|
|
2981
2995
|
];
|
|
2982
|
-
const
|
|
2996
|
+
const indicatorSteps = stepTitles.map((title, idx) => ({
|
|
2983
2997
|
id: String(idx + 1),
|
|
2984
|
-
|
|
2985
|
-
description: stepSubtitles[idx],
|
|
2986
|
-
status: idx + 1 < step ? "complete" : idx + 1 === step ? "current" : "upcoming"
|
|
2998
|
+
title
|
|
2987
2999
|
}));
|
|
2988
3000
|
function markTouched() {
|
|
2989
3001
|
if (!touched) setTouched(true);
|
|
@@ -3069,7 +3081,7 @@ function AgentNewWizardPageView({
|
|
|
3069
3081
|
}
|
|
3070
3082
|
const counter = labels.wizardStepCounter.replace("{current}", String(step)).replace("{total}", String(TOTAL_STEPS));
|
|
3071
3083
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
3072
|
-
|
|
3084
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
3073
3085
|
{
|
|
3074
3086
|
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3075
3087
|
"div",
|
|
@@ -3082,12 +3094,22 @@ function AgentNewWizardPageView({
|
|
|
3082
3094
|
label: counter,
|
|
3083
3095
|
title: labels.pageTitle,
|
|
3084
3096
|
subtitle: stepSubtitles[step - 1],
|
|
3085
|
-
gradient: activePreset.accent
|
|
3097
|
+
gradient: activePreset.accent,
|
|
3098
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3099
|
+
chunkTIJXCRM4_js.StepIndicator,
|
|
3100
|
+
{
|
|
3101
|
+
accent: "indigo",
|
|
3102
|
+
currentStep: step - 1,
|
|
3103
|
+
onStepChange: (idx) => goToStep(idx + 1),
|
|
3104
|
+
progressLabel: labels.pageTitle,
|
|
3105
|
+
steps: indicatorSteps
|
|
3106
|
+
}
|
|
3107
|
+
)
|
|
3086
3108
|
}
|
|
3087
3109
|
);
|
|
3088
3110
|
function renderStep1() {
|
|
3089
3111
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3090
|
-
|
|
3112
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3091
3113
|
{
|
|
3092
3114
|
variant: "glass",
|
|
3093
3115
|
header: {
|
|
@@ -3103,7 +3125,7 @@ function AgentNewWizardPageView({
|
|
|
3103
3125
|
children: AGENT_PRESETS.map((preset) => {
|
|
3104
3126
|
const selected = preset.id === presetId;
|
|
3105
3127
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3106
|
-
|
|
3128
|
+
chunkTIJXCRM4_js.FilterTileButton,
|
|
3107
3129
|
{
|
|
3108
3130
|
isActive: selected,
|
|
3109
3131
|
color: preset.tileColor,
|
|
@@ -3122,7 +3144,7 @@ function AgentNewWizardPageView({
|
|
|
3122
3144
|
}
|
|
3123
3145
|
function renderStep2() {
|
|
3124
3146
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3125
|
-
|
|
3147
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3126
3148
|
{
|
|
3127
3149
|
variant: "glass",
|
|
3128
3150
|
header: {
|
|
@@ -3150,9 +3172,9 @@ function AgentNewWizardPageView({
|
|
|
3150
3172
|
e
|
|
3151
3173
|
)) })
|
|
3152
3174
|
] }),
|
|
3153
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3175
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
3154
3176
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3155
|
-
|
|
3177
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3156
3178
|
{
|
|
3157
3179
|
label: labels.name,
|
|
3158
3180
|
value: name,
|
|
@@ -3165,7 +3187,7 @@ function AgentNewWizardPageView({
|
|
|
3165
3187
|
}
|
|
3166
3188
|
),
|
|
3167
3189
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3168
|
-
|
|
3190
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3169
3191
|
{
|
|
3170
3192
|
label: labels.role,
|
|
3171
3193
|
value: role,
|
|
@@ -3178,7 +3200,7 @@ function AgentNewWizardPageView({
|
|
|
3178
3200
|
)
|
|
3179
3201
|
] }),
|
|
3180
3202
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3181
|
-
|
|
3203
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
3182
3204
|
{
|
|
3183
3205
|
label: labels.descriptionLabel,
|
|
3184
3206
|
value: description,
|
|
@@ -3196,7 +3218,7 @@ function AgentNewWizardPageView({
|
|
|
3196
3218
|
}
|
|
3197
3219
|
function renderStep3() {
|
|
3198
3220
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3199
|
-
|
|
3221
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3200
3222
|
{
|
|
3201
3223
|
variant: "glass",
|
|
3202
3224
|
header: {
|
|
@@ -3204,9 +3226,9 @@ function AgentNewWizardPageView({
|
|
|
3204
3226
|
subtitle: labels.connectionPickPrompt
|
|
3205
3227
|
},
|
|
3206
3228
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
3207
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3229
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
3208
3230
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3209
|
-
|
|
3231
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
3210
3232
|
{
|
|
3211
3233
|
label: labels.connectionLabel,
|
|
3212
3234
|
value: connectionId,
|
|
@@ -3219,7 +3241,7 @@ function AgentNewWizardPageView({
|
|
|
3219
3241
|
}
|
|
3220
3242
|
),
|
|
3221
3243
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3222
|
-
|
|
3244
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
3223
3245
|
{
|
|
3224
3246
|
label: labels.frameworkLabel,
|
|
3225
3247
|
value: framework,
|
|
@@ -3231,7 +3253,7 @@ function AgentNewWizardPageView({
|
|
|
3231
3253
|
}
|
|
3232
3254
|
),
|
|
3233
3255
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3234
|
-
|
|
3256
|
+
chunkTIJXCRM4_js.FormSelect,
|
|
3235
3257
|
{
|
|
3236
3258
|
label: labels.model,
|
|
3237
3259
|
value: modelId,
|
|
@@ -3244,7 +3266,7 @@ function AgentNewWizardPageView({
|
|
|
3244
3266
|
)
|
|
3245
3267
|
] }),
|
|
3246
3268
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3247
|
-
|
|
3269
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
3248
3270
|
{
|
|
3249
3271
|
label: labels.outputSchemaLabel,
|
|
3250
3272
|
value: outputSchema,
|
|
@@ -3263,7 +3285,7 @@ function AgentNewWizardPageView({
|
|
|
3263
3285
|
function renderStep4() {
|
|
3264
3286
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
3265
3287
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3266
|
-
|
|
3288
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3267
3289
|
{
|
|
3268
3290
|
variant: "glass",
|
|
3269
3291
|
header: {
|
|
@@ -3423,7 +3445,7 @@ function AgentNewWizardPageView({
|
|
|
3423
3445
|
}
|
|
3424
3446
|
),
|
|
3425
3447
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3426
|
-
|
|
3448
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3427
3449
|
{
|
|
3428
3450
|
variant: "glass",
|
|
3429
3451
|
header: {
|
|
@@ -3466,7 +3488,7 @@ function AgentNewWizardPageView({
|
|
|
3466
3488
|
}) })
|
|
3467
3489
|
] }),
|
|
3468
3490
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3469
|
-
|
|
3491
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3470
3492
|
{
|
|
3471
3493
|
label: labels.tagsLabel,
|
|
3472
3494
|
value: tagsInput,
|
|
@@ -3487,7 +3509,7 @@ function AgentNewWizardPageView({
|
|
|
3487
3509
|
const connectionLabel = connectionId ? connections.find((c) => c.id === connectionId)?.name ?? labels.connectionInline : labels.connectionInline;
|
|
3488
3510
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
3489
3511
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3490
|
-
|
|
3512
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3491
3513
|
{
|
|
3492
3514
|
variant: "glass",
|
|
3493
3515
|
header: {
|
|
@@ -3502,7 +3524,7 @@ function AgentNewWizardPageView({
|
|
|
3502
3524
|
}
|
|
3503
3525
|
),
|
|
3504
3526
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3505
|
-
|
|
3527
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3506
3528
|
{
|
|
3507
3529
|
variant: "glass",
|
|
3508
3530
|
header: {
|
|
@@ -3531,7 +3553,7 @@ function AgentNewWizardPageView({
|
|
|
3531
3553
|
}
|
|
3532
3554
|
),
|
|
3533
3555
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3534
|
-
|
|
3556
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3535
3557
|
{
|
|
3536
3558
|
variant: "glass",
|
|
3537
3559
|
header: {
|
|
@@ -3551,7 +3573,7 @@ function AgentNewWizardPageView({
|
|
|
3551
3573
|
}
|
|
3552
3574
|
),
|
|
3553
3575
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3554
|
-
|
|
3576
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3555
3577
|
{
|
|
3556
3578
|
variant: "glass",
|
|
3557
3579
|
header: {
|
|
@@ -3595,22 +3617,10 @@ function AgentNewWizardPageView({
|
|
|
3595
3617
|
if (step < TOTAL_STEPS) goNext();
|
|
3596
3618
|
else void submit();
|
|
3597
3619
|
},
|
|
3598
|
-
className: "space-y-
|
|
3620
|
+
className: "space-y-4",
|
|
3599
3621
|
children: [
|
|
3600
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3601
|
-
|
|
3602
|
-
{
|
|
3603
|
-
steps: timelineSteps,
|
|
3604
|
-
progressLabel: labels.pageTitle,
|
|
3605
|
-
onStepClick: (idx) => {
|
|
3606
|
-
goToStep(idx + 1);
|
|
3607
|
-
}
|
|
3608
|
-
}
|
|
3609
|
-
),
|
|
3610
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full space-y-5", children: [
|
|
3611
|
-
stepBody,
|
|
3612
|
-
footer
|
|
3613
|
-
] })
|
|
3622
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface rounded-2xl p-5 sm:p-8", children: stepBody }),
|
|
3623
|
+
footer
|
|
3614
3624
|
]
|
|
3615
3625
|
}
|
|
3616
3626
|
);
|
|
@@ -3696,14 +3706,24 @@ function DatasourceNewWizardPageView({
|
|
|
3696
3706
|
const [readOnly, setReadOnly] = react.useState(true);
|
|
3697
3707
|
const [maxPoolSize, setMaxPoolSize] = react.useState("5");
|
|
3698
3708
|
const [timeoutMs, setTimeoutMs] = react.useState("5000");
|
|
3699
|
-
const [
|
|
3700
|
-
const [
|
|
3709
|
+
const [allowedTablesItems, setAllowedTablesItems] = react.useState([]);
|
|
3710
|
+
const [allowedTablesSelected, setAllowedTablesSelected] = react.useState([]);
|
|
3711
|
+
const [blockedColumnsItems, setBlockedColumnsItems] = react.useState([]);
|
|
3712
|
+
const [blockedColumnsSelected, setBlockedColumnsSelected] = react.useState([]);
|
|
3701
3713
|
const [maskPii, setMaskPii] = react.useState(false);
|
|
3714
|
+
const allowedTablesStyle = {
|
|
3715
|
+
bg: "bg-amber-500/15",
|
|
3716
|
+
text: "text-amber-700 dark:text-amber-300"
|
|
3717
|
+
};
|
|
3718
|
+
const blockedColumnsStyle = {
|
|
3719
|
+
bg: "bg-rose-500/15",
|
|
3720
|
+
text: "text-rose-700 dark:text-rose-300"
|
|
3721
|
+
};
|
|
3702
3722
|
const [submitting, setSubmitting] = react.useState(false);
|
|
3703
3723
|
const [touched, setTouched] = react.useState(false);
|
|
3704
3724
|
const [testStatus, setTestStatus] = react.useState("idle");
|
|
3705
|
-
const dialectOption = react.useMemo(() => dialect ?
|
|
3706
|
-
const category = react.useMemo(() => dialect ?
|
|
3725
|
+
const dialectOption = react.useMemo(() => dialect ? chunkNW32BM3F_js.findDialect(dialect) : null, [dialect]);
|
|
3726
|
+
const category = react.useMemo(() => dialect ? chunkNW32BM3F_js.findCategory(dialect) : null, [dialect]);
|
|
3707
3727
|
react.useEffect(() => {
|
|
3708
3728
|
if (dialectOption?.defaultPort && (port === "" || /^[0-9]+$/.test(port))) {
|
|
3709
3729
|
setPort(String(dialectOption.defaultPort));
|
|
@@ -3767,10 +3787,9 @@ function DatasourceNewWizardPageView({
|
|
|
3767
3787
|
if (Number.isFinite(pool) && pool > 0) payload.maxPoolSize = pool;
|
|
3768
3788
|
const timeout = Number(timeoutMs);
|
|
3769
3789
|
if (Number.isFinite(timeout) && timeout > 0) payload.timeoutMs = timeout;
|
|
3770
|
-
|
|
3771
|
-
if (
|
|
3772
|
-
|
|
3773
|
-
if (blocked.length > 0) payload.blockedColumns = blocked;
|
|
3790
|
+
if (allowedTablesSelected.length > 0) payload.allowedTables = [...allowedTablesSelected];
|
|
3791
|
+
if (blockedColumnsSelected.length > 0) payload.blockedColumns = [...blockedColumnsSelected];
|
|
3792
|
+
if (maskPii) payload.maskPii = true;
|
|
3774
3793
|
return payload;
|
|
3775
3794
|
}
|
|
3776
3795
|
async function handleTestConnection() {
|
|
@@ -3787,11 +3806,7 @@ function DatasourceNewWizardPageView({
|
|
|
3787
3806
|
async function submit() {
|
|
3788
3807
|
setSubmitting(true);
|
|
3789
3808
|
try {
|
|
3790
|
-
|
|
3791
|
-
...buildPayload(),
|
|
3792
|
-
...maskPii ? { maskPii: true } : {}
|
|
3793
|
-
};
|
|
3794
|
-
await onSubmit(payload);
|
|
3809
|
+
await onSubmit(buildPayload());
|
|
3795
3810
|
} finally {
|
|
3796
3811
|
setSubmitting(false);
|
|
3797
3812
|
}
|
|
@@ -3827,29 +3842,37 @@ function DatasourceNewWizardPageView({
|
|
|
3827
3842
|
labels.wizardStep3Subtitle,
|
|
3828
3843
|
labels.wizardStep4Subtitle
|
|
3829
3844
|
];
|
|
3830
|
-
const
|
|
3845
|
+
const indicatorSteps = stepTitles.map((title, idx) => ({
|
|
3831
3846
|
id: String(idx + 1),
|
|
3832
|
-
|
|
3833
|
-
description: stepSubtitles[idx],
|
|
3834
|
-
status: idx + 1 < step ? "complete" : idx + 1 === step ? "current" : "upcoming"
|
|
3847
|
+
title
|
|
3835
3848
|
}));
|
|
3836
3849
|
const counter = labels.wizardStepCounter.replace("{current}", String(step)).replace("{total}", String(TOTAL_STEPS2));
|
|
3837
3850
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
3838
|
-
|
|
3851
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
3839
3852
|
{
|
|
3840
3853
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CircleStackIcon, { className: "h-5 w-5" }),
|
|
3841
3854
|
label: counter,
|
|
3842
3855
|
title: labels.pageTitle,
|
|
3843
3856
|
subtitle: stepSubtitles[step - 1] ?? labels.pageSubtitle,
|
|
3844
|
-
gradient: category?.gradient ?? "from-amber-500 to-orange-600"
|
|
3857
|
+
gradient: category?.gradient ?? "from-amber-500 to-orange-600",
|
|
3858
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3859
|
+
chunkTIJXCRM4_js.StepIndicator,
|
|
3860
|
+
{
|
|
3861
|
+
accent: "indigo",
|
|
3862
|
+
currentStep: step - 1,
|
|
3863
|
+
onStepChange: (idx) => goToStep(idx + 1),
|
|
3864
|
+
progressLabel: labels.pageTitle,
|
|
3865
|
+
steps: indicatorSteps
|
|
3866
|
+
}
|
|
3867
|
+
)
|
|
3845
3868
|
}
|
|
3846
3869
|
);
|
|
3847
3870
|
function renderStep1() {
|
|
3848
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children:
|
|
3871
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children: chunkNW32BM3F_js.DIALECT_CATEGORIES.map((cat) => {
|
|
3849
3872
|
const color = CATEGORY_COLOR[cat.id] ?? "slate";
|
|
3850
3873
|
const categoryLabel = labels[cat.labelKey] ?? cat.id;
|
|
3851
3874
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3852
|
-
|
|
3875
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
3853
3876
|
{
|
|
3854
3877
|
variant: "glass",
|
|
3855
3878
|
header: {
|
|
@@ -3867,7 +3890,7 @@ function DatasourceNewWizardPageView({
|
|
|
3867
3890
|
const selected = opt.value === dialect;
|
|
3868
3891
|
const logoSrc = DIALECT_LOGO_SRC[opt.value.toLowerCase()];
|
|
3869
3892
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3870
|
-
|
|
3893
|
+
chunkTIJXCRM4_js.FilterTileButton,
|
|
3871
3894
|
{
|
|
3872
3895
|
isActive: selected,
|
|
3873
3896
|
color,
|
|
@@ -3895,7 +3918,7 @@ function DatasourceNewWizardPageView({
|
|
|
3895
3918
|
case "standard":
|
|
3896
3919
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3897
3920
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3898
|
-
|
|
3921
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3899
3922
|
{
|
|
3900
3923
|
label: labels.fieldHost,
|
|
3901
3924
|
value: host,
|
|
@@ -3908,7 +3931,7 @@ function DatasourceNewWizardPageView({
|
|
|
3908
3931
|
}
|
|
3909
3932
|
),
|
|
3910
3933
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3911
|
-
|
|
3934
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3912
3935
|
{
|
|
3913
3936
|
label: labels.fieldPort,
|
|
3914
3937
|
type: "number",
|
|
@@ -3920,7 +3943,7 @@ function DatasourceNewWizardPageView({
|
|
|
3920
3943
|
}
|
|
3921
3944
|
),
|
|
3922
3945
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3923
|
-
|
|
3946
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3924
3947
|
{
|
|
3925
3948
|
label: labels.fieldDatabase,
|
|
3926
3949
|
value: database,
|
|
@@ -3933,7 +3956,7 @@ function DatasourceNewWizardPageView({
|
|
|
3933
3956
|
}
|
|
3934
3957
|
),
|
|
3935
3958
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3936
|
-
|
|
3959
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3937
3960
|
{
|
|
3938
3961
|
label: labels.fieldUsername,
|
|
3939
3962
|
value: username,
|
|
@@ -3945,7 +3968,7 @@ function DatasourceNewWizardPageView({
|
|
|
3945
3968
|
}
|
|
3946
3969
|
),
|
|
3947
3970
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3948
|
-
|
|
3971
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3949
3972
|
{
|
|
3950
3973
|
label: labels.fieldPassword,
|
|
3951
3974
|
type: "password",
|
|
@@ -3958,7 +3981,7 @@ function DatasourceNewWizardPageView({
|
|
|
3958
3981
|
}
|
|
3959
3982
|
),
|
|
3960
3983
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3961
|
-
|
|
3984
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3962
3985
|
{
|
|
3963
3986
|
label: labels.fieldSchema,
|
|
3964
3987
|
value: schema,
|
|
@@ -3972,7 +3995,7 @@ function DatasourceNewWizardPageView({
|
|
|
3972
3995
|
] });
|
|
3973
3996
|
case "connection-string":
|
|
3974
3997
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-full", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3975
|
-
|
|
3998
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3976
3999
|
{
|
|
3977
4000
|
label: labels.fieldConnectionString,
|
|
3978
4001
|
value: connectionString,
|
|
@@ -3987,7 +4010,7 @@ function DatasourceNewWizardPageView({
|
|
|
3987
4010
|
case "cloud-bigquery":
|
|
3988
4011
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3989
4012
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3990
|
-
|
|
4013
|
+
chunkTIJXCRM4_js.FormInput,
|
|
3991
4014
|
{
|
|
3992
4015
|
label: labels.fieldProjectId,
|
|
3993
4016
|
value: projectId,
|
|
@@ -4000,7 +4023,7 @@ function DatasourceNewWizardPageView({
|
|
|
4000
4023
|
}
|
|
4001
4024
|
),
|
|
4002
4025
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4003
|
-
|
|
4026
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4004
4027
|
{
|
|
4005
4028
|
label: labels.fieldDataset,
|
|
4006
4029
|
value: dataset,
|
|
@@ -4013,7 +4036,7 @@ function DatasourceNewWizardPageView({
|
|
|
4013
4036
|
}
|
|
4014
4037
|
),
|
|
4015
4038
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-full", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4016
|
-
|
|
4039
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4017
4040
|
{
|
|
4018
4041
|
label: labels.fieldKeyFile,
|
|
4019
4042
|
value: keyFile,
|
|
@@ -4028,7 +4051,7 @@ function DatasourceNewWizardPageView({
|
|
|
4028
4051
|
case "cloud-snowflake":
|
|
4029
4052
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4030
4053
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4031
|
-
|
|
4054
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4032
4055
|
{
|
|
4033
4056
|
label: labels.fieldAccount,
|
|
4034
4057
|
value: account,
|
|
@@ -4041,7 +4064,7 @@ function DatasourceNewWizardPageView({
|
|
|
4041
4064
|
}
|
|
4042
4065
|
),
|
|
4043
4066
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4044
|
-
|
|
4067
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4045
4068
|
{
|
|
4046
4069
|
label: labels.fieldWarehouse,
|
|
4047
4070
|
value: warehouseField,
|
|
@@ -4054,7 +4077,7 @@ function DatasourceNewWizardPageView({
|
|
|
4054
4077
|
}
|
|
4055
4078
|
),
|
|
4056
4079
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4057
|
-
|
|
4080
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4058
4081
|
{
|
|
4059
4082
|
label: labels.fieldDatabase,
|
|
4060
4083
|
value: database,
|
|
@@ -4067,7 +4090,7 @@ function DatasourceNewWizardPageView({
|
|
|
4067
4090
|
}
|
|
4068
4091
|
),
|
|
4069
4092
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4070
|
-
|
|
4093
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4071
4094
|
{
|
|
4072
4095
|
label: labels.fieldUsername,
|
|
4073
4096
|
value: username,
|
|
@@ -4080,7 +4103,7 @@ function DatasourceNewWizardPageView({
|
|
|
4080
4103
|
}
|
|
4081
4104
|
),
|
|
4082
4105
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4083
|
-
|
|
4106
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4084
4107
|
{
|
|
4085
4108
|
label: labels.fieldPassword,
|
|
4086
4109
|
type: "password",
|
|
@@ -4093,7 +4116,7 @@ function DatasourceNewWizardPageView({
|
|
|
4093
4116
|
}
|
|
4094
4117
|
),
|
|
4095
4118
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4096
|
-
|
|
4119
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4097
4120
|
{
|
|
4098
4121
|
label: labels.fieldSchema,
|
|
4099
4122
|
value: schema,
|
|
@@ -4108,7 +4131,7 @@ function DatasourceNewWizardPageView({
|
|
|
4108
4131
|
case "cloud-key":
|
|
4109
4132
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4110
4133
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4111
|
-
|
|
4134
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4112
4135
|
{
|
|
4113
4136
|
label: labels.fieldRegion,
|
|
4114
4137
|
value: region,
|
|
@@ -4121,7 +4144,7 @@ function DatasourceNewWizardPageView({
|
|
|
4121
4144
|
}
|
|
4122
4145
|
),
|
|
4123
4146
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4124
|
-
|
|
4147
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4125
4148
|
{
|
|
4126
4149
|
label: labels.fieldToken,
|
|
4127
4150
|
type: "password",
|
|
@@ -4135,7 +4158,7 @@ function DatasourceNewWizardPageView({
|
|
|
4135
4158
|
}
|
|
4136
4159
|
),
|
|
4137
4160
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4138
|
-
|
|
4161
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4139
4162
|
{
|
|
4140
4163
|
label: labels.fieldBucket,
|
|
4141
4164
|
value: bucket,
|
|
@@ -4150,7 +4173,7 @@ function DatasourceNewWizardPageView({
|
|
|
4150
4173
|
case "vector-key":
|
|
4151
4174
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4152
4175
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4153
|
-
|
|
4176
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4154
4177
|
{
|
|
4155
4178
|
label: labels.fieldApiKey,
|
|
4156
4179
|
type: "password",
|
|
@@ -4164,7 +4187,7 @@ function DatasourceNewWizardPageView({
|
|
|
4164
4187
|
}
|
|
4165
4188
|
),
|
|
4166
4189
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4167
|
-
|
|
4190
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4168
4191
|
{
|
|
4169
4192
|
label: labels.fieldEnvironment,
|
|
4170
4193
|
value: environment,
|
|
@@ -4177,7 +4200,7 @@ function DatasourceNewWizardPageView({
|
|
|
4177
4200
|
}
|
|
4178
4201
|
),
|
|
4179
4202
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4180
|
-
|
|
4203
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4181
4204
|
{
|
|
4182
4205
|
label: labels.fieldIndex,
|
|
4183
4206
|
value: index,
|
|
@@ -4193,13 +4216,13 @@ function DatasourceNewWizardPageView({
|
|
|
4193
4216
|
}
|
|
4194
4217
|
function renderStep2() {
|
|
4195
4218
|
if (!dialectOption) {
|
|
4196
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4219
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.SectionCard, { variant: "glass", header: { title: labels.wizardStep1Title }, children: [
|
|
4197
4220
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-700 dark:text-slate-200", children: labels.wizardStep1Subtitle }),
|
|
4198
4221
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: () => goToStep(1), children: labels.wizardBack }) })
|
|
4199
4222
|
] });
|
|
4200
4223
|
}
|
|
4201
4224
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4202
|
-
|
|
4225
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4203
4226
|
{
|
|
4204
4227
|
variant: "glass",
|
|
4205
4228
|
header: {
|
|
@@ -4210,7 +4233,7 @@ function DatasourceNewWizardPageView({
|
|
|
4210
4233
|
},
|
|
4211
4234
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4212
4235
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4213
|
-
|
|
4236
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4214
4237
|
{
|
|
4215
4238
|
label: labels.fieldName,
|
|
4216
4239
|
value: name,
|
|
@@ -4222,10 +4245,10 @@ function DatasourceNewWizardPageView({
|
|
|
4222
4245
|
required: true
|
|
4223
4246
|
}
|
|
4224
4247
|
),
|
|
4225
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4248
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.FormGrid, { children: renderConnectionFields() }),
|
|
4226
4249
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-6 pt-1", children: [
|
|
4227
4250
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4228
|
-
|
|
4251
|
+
chunkTIJXCRM4_js.FormToggle,
|
|
4229
4252
|
{
|
|
4230
4253
|
checked: ssl,
|
|
4231
4254
|
onChange: (v) => {
|
|
@@ -4237,7 +4260,7 @@ function DatasourceNewWizardPageView({
|
|
|
4237
4260
|
}
|
|
4238
4261
|
),
|
|
4239
4262
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4240
|
-
|
|
4263
|
+
chunkTIJXCRM4_js.FormToggle,
|
|
4241
4264
|
{
|
|
4242
4265
|
checked: readOnly,
|
|
4243
4266
|
onChange: (v) => {
|
|
@@ -4259,13 +4282,13 @@ function DatasourceNewWizardPageView({
|
|
|
4259
4282
|
onClick: () => void handleTestConnection(),
|
|
4260
4283
|
disabled: testStatus === "testing",
|
|
4261
4284
|
children: testStatus === "testing" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
4262
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4285
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.Spinner, { size: "xs" }),
|
|
4263
4286
|
labels.testing
|
|
4264
4287
|
] }) : labels.testConnection
|
|
4265
4288
|
}
|
|
4266
4289
|
),
|
|
4267
|
-
testStatus === "success" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4268
|
-
testStatus === "failed" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4290
|
+
testStatus === "success" && /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.StatusBadge, { status: "success", label: labels.connectionSuccess }),
|
|
4291
|
+
testStatus === "failed" && /* @__PURE__ */ jsxRuntime.jsx(chunkTIJXCRM4_js.StatusBadge, { status: "error", label: labels.connectionFailed })
|
|
4269
4292
|
] })
|
|
4270
4293
|
] })
|
|
4271
4294
|
}
|
|
@@ -4273,7 +4296,7 @@ function DatasourceNewWizardPageView({
|
|
|
4273
4296
|
}
|
|
4274
4297
|
function renderStep3() {
|
|
4275
4298
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4276
|
-
|
|
4299
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4277
4300
|
{
|
|
4278
4301
|
variant: "glass",
|
|
4279
4302
|
header: {
|
|
@@ -4281,9 +4304,9 @@ function DatasourceNewWizardPageView({
|
|
|
4281
4304
|
subtitle: labels.governanceSectionSubtitle
|
|
4282
4305
|
},
|
|
4283
4306
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4284
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4307
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
4285
4308
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4286
|
-
|
|
4309
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4287
4310
|
{
|
|
4288
4311
|
label: labels.fieldMaxPoolSize,
|
|
4289
4312
|
type: "number",
|
|
@@ -4298,7 +4321,7 @@ function DatasourceNewWizardPageView({
|
|
|
4298
4321
|
}
|
|
4299
4322
|
),
|
|
4300
4323
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4301
|
-
|
|
4324
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4302
4325
|
{
|
|
4303
4326
|
label: labels.fieldTimeoutMs,
|
|
4304
4327
|
type: "number",
|
|
@@ -4312,34 +4335,56 @@ function DatasourceNewWizardPageView({
|
|
|
4312
4335
|
}
|
|
4313
4336
|
)
|
|
4314
4337
|
] }),
|
|
4338
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
4339
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "block text-xs font-medium text-gray-500 dark:text-gray-400", children: labels.fieldAllowedTables }),
|
|
4340
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4341
|
+
chunkTIJXCRM4_js.ChipPicker,
|
|
4342
|
+
{
|
|
4343
|
+
items: allowedTablesItems,
|
|
4344
|
+
selectedIds: allowedTablesSelected,
|
|
4345
|
+
onChange: (ids) => {
|
|
4346
|
+
setAllowedTablesSelected(ids);
|
|
4347
|
+
markTouched();
|
|
4348
|
+
},
|
|
4349
|
+
onItemsChange: (items) => {
|
|
4350
|
+
setAllowedTablesItems(items);
|
|
4351
|
+
markTouched();
|
|
4352
|
+
},
|
|
4353
|
+
allowCustom: true,
|
|
4354
|
+
unselectedStyle: allowedTablesStyle,
|
|
4355
|
+
showActions: false,
|
|
4356
|
+
addPlaceholder: labels.fieldAllowedTablesPlaceholder,
|
|
4357
|
+
addAriaLabel: labels.fieldAllowedTables
|
|
4358
|
+
}
|
|
4359
|
+
),
|
|
4360
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-slate-500 dark:text-slate-400", children: labels.fieldAllowedTablesHint })
|
|
4361
|
+
] }),
|
|
4362
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
4363
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "block text-xs font-medium text-gray-500 dark:text-gray-400", children: labels.fieldBlockedColumns }),
|
|
4364
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4365
|
+
chunkTIJXCRM4_js.ChipPicker,
|
|
4366
|
+
{
|
|
4367
|
+
items: blockedColumnsItems,
|
|
4368
|
+
selectedIds: blockedColumnsSelected,
|
|
4369
|
+
onChange: (ids) => {
|
|
4370
|
+
setBlockedColumnsSelected(ids);
|
|
4371
|
+
markTouched();
|
|
4372
|
+
},
|
|
4373
|
+
onItemsChange: (items) => {
|
|
4374
|
+
setBlockedColumnsItems(items);
|
|
4375
|
+
markTouched();
|
|
4376
|
+
},
|
|
4377
|
+
allowCustom: true,
|
|
4378
|
+
unselectedStyle: blockedColumnsStyle,
|
|
4379
|
+
showActions: false,
|
|
4380
|
+
addPlaceholder: labels.fieldBlockedColumnsPlaceholder,
|
|
4381
|
+
addAriaLabel: labels.fieldBlockedColumns
|
|
4382
|
+
}
|
|
4383
|
+
),
|
|
4384
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-slate-500 dark:text-slate-400", children: labels.fieldBlockedColumnsHint })
|
|
4385
|
+
] }),
|
|
4315
4386
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4316
|
-
|
|
4317
|
-
{
|
|
4318
|
-
label: labels.fieldAllowedTables,
|
|
4319
|
-
value: allowedTables,
|
|
4320
|
-
onValueChange: (v) => {
|
|
4321
|
-
setAllowedTables(v);
|
|
4322
|
-
markTouched();
|
|
4323
|
-
},
|
|
4324
|
-
placeholder: labels.fieldAllowedTablesPlaceholder,
|
|
4325
|
-
hint: labels.fieldAllowedTablesHint
|
|
4326
|
-
}
|
|
4327
|
-
),
|
|
4328
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4329
|
-
chunkLVR4SR65_js.FormInput,
|
|
4330
|
-
{
|
|
4331
|
-
label: labels.fieldBlockedColumns,
|
|
4332
|
-
value: blockedColumns,
|
|
4333
|
-
onValueChange: (v) => {
|
|
4334
|
-
setBlockedColumns(v);
|
|
4335
|
-
markTouched();
|
|
4336
|
-
},
|
|
4337
|
-
placeholder: labels.fieldBlockedColumnsPlaceholder,
|
|
4338
|
-
hint: labels.fieldBlockedColumnsHint
|
|
4339
|
-
}
|
|
4340
|
-
),
|
|
4341
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4342
|
-
chunkLVR4SR65_js.FormCheckbox,
|
|
4387
|
+
chunkTIJXCRM4_js.FormCheckbox,
|
|
4343
4388
|
{
|
|
4344
4389
|
checked: maskPii,
|
|
4345
4390
|
onChange: (v) => {
|
|
@@ -4357,11 +4402,11 @@ function DatasourceNewWizardPageView({
|
|
|
4357
4402
|
function renderStep4() {
|
|
4358
4403
|
const categoryLabel = category ? labels[category.labelKey] ?? category.id : labels.reviewNoneValue;
|
|
4359
4404
|
const dialectLabel = dialectOption?.label ?? labels.reviewNoneValue;
|
|
4360
|
-
const allowed =
|
|
4361
|
-
const blocked =
|
|
4405
|
+
const allowed = allowedTablesSelected;
|
|
4406
|
+
const blocked = blockedColumnsSelected;
|
|
4362
4407
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4363
4408
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4364
|
-
|
|
4409
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4365
4410
|
{
|
|
4366
4411
|
variant: "glass",
|
|
4367
4412
|
header: {
|
|
@@ -4379,7 +4424,7 @@ function DatasourceNewWizardPageView({
|
|
|
4379
4424
|
}
|
|
4380
4425
|
),
|
|
4381
4426
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4382
|
-
|
|
4427
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4383
4428
|
{
|
|
4384
4429
|
variant: "glass",
|
|
4385
4430
|
header: {
|
|
@@ -4399,7 +4444,7 @@ function DatasourceNewWizardPageView({
|
|
|
4399
4444
|
}
|
|
4400
4445
|
),
|
|
4401
4446
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4402
|
-
|
|
4447
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4403
4448
|
{
|
|
4404
4449
|
variant: "glass",
|
|
4405
4450
|
header: {
|
|
@@ -4450,20 +4495,10 @@ function DatasourceNewWizardPageView({
|
|
|
4450
4495
|
if (step < TOTAL_STEPS2) goNext();
|
|
4451
4496
|
else void submit();
|
|
4452
4497
|
},
|
|
4453
|
-
className: "space-y-
|
|
4498
|
+
className: "space-y-4",
|
|
4454
4499
|
children: [
|
|
4455
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4456
|
-
|
|
4457
|
-
{
|
|
4458
|
-
steps: timelineSteps,
|
|
4459
|
-
progressLabel: labels.pageTitle,
|
|
4460
|
-
onStepClick: (idx) => goToStep(idx + 1)
|
|
4461
|
-
}
|
|
4462
|
-
),
|
|
4463
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full space-y-5", children: [
|
|
4464
|
-
stepBody,
|
|
4465
|
-
footer
|
|
4466
|
-
] })
|
|
4500
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface rounded-2xl p-5 sm:p-8", children: stepBody }),
|
|
4501
|
+
footer
|
|
4467
4502
|
]
|
|
4468
4503
|
}
|
|
4469
4504
|
);
|
|
@@ -4478,9 +4513,6 @@ function ReviewRow2({ label, value }) {
|
|
|
4478
4513
|
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "mt-0.5 truncate text-xs font-semibold text-gray-900 dark:text-white", children: value })
|
|
4479
4514
|
] });
|
|
4480
4515
|
}
|
|
4481
|
-
function splitList(raw) {
|
|
4482
|
-
return raw.split(",").map((s) => s.trim()).filter((s) => s.length > 0);
|
|
4483
|
-
}
|
|
4484
4516
|
async function simulateTest() {
|
|
4485
4517
|
await new Promise((r) => setTimeout(r, 1500));
|
|
4486
4518
|
return true;
|
|
@@ -4594,11 +4626,16 @@ function RuleNewWizardPageView({
|
|
|
4594
4626
|
const [priority, setPriority] = react.useState(50);
|
|
4595
4627
|
const [enabled, setEnabled] = react.useState(true);
|
|
4596
4628
|
const [status, setStatus] = react.useState("active");
|
|
4597
|
-
const [
|
|
4629
|
+
const [tagsItems, setTagsItems] = react.useState([]);
|
|
4630
|
+
const [tagsSelected, setTagsSelected] = react.useState([]);
|
|
4631
|
+
const tagsStyle = {
|
|
4632
|
+
bg: "bg-fuchsia-500/15",
|
|
4633
|
+
text: "text-fuchsia-700 dark:text-fuchsia-300"
|
|
4634
|
+
};
|
|
4598
4635
|
const [combinator, setCombinator] = react.useState("and");
|
|
4599
|
-
const [condition, setCondition] = react.useState(
|
|
4636
|
+
const [condition, setCondition] = react.useState(chunkAPONR6ZM_js.defaultRuleCondition());
|
|
4600
4637
|
const [actionTileId, setActionTileId] = react.useState("");
|
|
4601
|
-
const [action, setAction] = react.useState(
|
|
4638
|
+
const [action, setAction] = react.useState(chunkAPONR6ZM_js.defaultRuleAction());
|
|
4602
4639
|
const [validFromDate, setValidFromDate] = react.useState(null);
|
|
4603
4640
|
const [validFromTime, setValidFromTime] = react.useState(null);
|
|
4604
4641
|
const [validUntilDate, setValidUntilDate] = react.useState(null);
|
|
@@ -4644,49 +4681,40 @@ function RuleNewWizardPageView({
|
|
|
4644
4681
|
next.setHours(time?.hours ?? 0, time?.minutes ?? 0, 0, 0);
|
|
4645
4682
|
return next.toISOString();
|
|
4646
4683
|
}
|
|
4647
|
-
const tags = react.useMemo(
|
|
4648
|
-
() => tagsInput.split(",").map((t) => t.trim()).filter((t) => t.length > 0),
|
|
4649
|
-
[tagsInput]
|
|
4650
|
-
);
|
|
4684
|
+
const tags = react.useMemo(() => [...tagsSelected], [tagsSelected]);
|
|
4651
4685
|
function buildPayload() {
|
|
4652
4686
|
const validFrom = combineDateTime(validFromDate, validFromTime);
|
|
4653
4687
|
const validUntil = noExpiry ? null : combineDateTime(validUntilDate, validUntilTime);
|
|
4654
|
-
const conditionWithCombinator = combinator === "
|
|
4655
|
-
operator: "boolean_expression",
|
|
4656
|
-
combinator: "and",
|
|
4657
|
-
operands: [condition],
|
|
4658
|
-
// The engine ignores extra fields, so this is forward-compat.
|
|
4659
|
-
...{ notFlag: true }
|
|
4660
|
-
} : combinator === "or" ? {
|
|
4688
|
+
const conditionWithCombinator = combinator === "and" ? condition : {
|
|
4661
4689
|
operator: "boolean_expression",
|
|
4662
|
-
combinator
|
|
4690
|
+
combinator,
|
|
4663
4691
|
operands: [condition]
|
|
4664
|
-
}
|
|
4692
|
+
};
|
|
4665
4693
|
const finalAction = {
|
|
4666
4694
|
type: action.type,
|
|
4667
4695
|
params: {
|
|
4668
4696
|
...action.params ?? {},
|
|
4669
|
-
actionVariant: actionTileId
|
|
4670
|
-
recurrence,
|
|
4671
|
-
...recurrence === "cron" && cronExpression ? { cronExpression } : {},
|
|
4672
|
-
...recurrence === "recurring" ? {
|
|
4673
|
-
weekdays,
|
|
4674
|
-
...recurringTime ? { timeOfDay: `${pad(recurringTime.hours)}:${pad(recurringTime.minutes)}` } : {}
|
|
4675
|
-
} : {}
|
|
4697
|
+
actionVariant: actionTileId
|
|
4676
4698
|
}
|
|
4677
4699
|
};
|
|
4678
|
-
const
|
|
4700
|
+
const recurrencePayload = recurrence === "cron" ? { kind: "cron", expression: cronExpression.trim() } : recurrence === "recurring" ? {
|
|
4701
|
+
kind: "recurring",
|
|
4702
|
+
weekdays: [...weekdays],
|
|
4703
|
+
timeOfDay: recurringTime ? `${pad(recurringTime.hours)}:${pad(recurringTime.minutes)}` : "00:00"
|
|
4704
|
+
} : { kind: "one-off" };
|
|
4679
4705
|
return {
|
|
4680
4706
|
name: name.trim() || "Untitled Rule",
|
|
4681
4707
|
description: description.trim() || void 0,
|
|
4682
4708
|
enabled,
|
|
4683
4709
|
priority,
|
|
4684
|
-
|
|
4710
|
+
// `paused` ships as-is — backend understands it natively (Fallback 2).
|
|
4711
|
+
status,
|
|
4685
4712
|
validFrom,
|
|
4686
4713
|
validUntil,
|
|
4687
4714
|
tags,
|
|
4688
4715
|
condition: conditionWithCombinator,
|
|
4689
|
-
action: finalAction
|
|
4716
|
+
action: finalAction,
|
|
4717
|
+
recurrence: recurrencePayload
|
|
4690
4718
|
};
|
|
4691
4719
|
}
|
|
4692
4720
|
async function submit() {
|
|
@@ -4730,26 +4758,34 @@ function RuleNewWizardPageView({
|
|
|
4730
4758
|
labels.wizardStep4Subtitle,
|
|
4731
4759
|
labels.wizardStep5Subtitle
|
|
4732
4760
|
];
|
|
4733
|
-
const
|
|
4761
|
+
const indicatorSteps = stepTitles.map((title, idx) => ({
|
|
4734
4762
|
id: String(idx + 1),
|
|
4735
|
-
|
|
4736
|
-
description: stepSubtitles[idx],
|
|
4737
|
-
status: idx + 1 < step ? "complete" : idx + 1 === step ? "current" : "upcoming"
|
|
4763
|
+
title
|
|
4738
4764
|
}));
|
|
4739
4765
|
const counter = labels.wizardStepCounter.replace("{current}", String(step)).replace("{total}", String(TOTAL_STEPS3));
|
|
4740
4766
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4741
|
-
|
|
4767
|
+
chunkTIJXCRM4_js.HeroSection,
|
|
4742
4768
|
{
|
|
4743
4769
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-5 w-5" }),
|
|
4744
4770
|
label: counter,
|
|
4745
4771
|
title: labels.pageTitle,
|
|
4746
4772
|
subtitle: stepSubtitles[step - 1] ?? labels.pageSubtitle,
|
|
4747
|
-
gradient: "from-fuchsia-500 to-purple-700"
|
|
4773
|
+
gradient: "from-fuchsia-500 to-purple-700",
|
|
4774
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4775
|
+
chunkTIJXCRM4_js.StepIndicator,
|
|
4776
|
+
{
|
|
4777
|
+
accent: "violet",
|
|
4778
|
+
currentStep: step - 1,
|
|
4779
|
+
onStepChange: (idx) => goToStep(idx + 1),
|
|
4780
|
+
progressLabel: labels.pageTitle,
|
|
4781
|
+
steps: indicatorSteps
|
|
4782
|
+
}
|
|
4783
|
+
)
|
|
4748
4784
|
}
|
|
4749
4785
|
);
|
|
4750
4786
|
function renderStep1() {
|
|
4751
4787
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4752
|
-
|
|
4788
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4753
4789
|
{
|
|
4754
4790
|
variant: "glass",
|
|
4755
4791
|
header: {
|
|
@@ -4758,7 +4794,7 @@ function RuleNewWizardPageView({
|
|
|
4758
4794
|
},
|
|
4759
4795
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4760
4796
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4761
|
-
|
|
4797
|
+
chunkTIJXCRM4_js.FormInput,
|
|
4762
4798
|
{
|
|
4763
4799
|
label: labels.nameLabel,
|
|
4764
4800
|
value: name,
|
|
@@ -4771,7 +4807,7 @@ function RuleNewWizardPageView({
|
|
|
4771
4807
|
}
|
|
4772
4808
|
),
|
|
4773
4809
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4774
|
-
|
|
4810
|
+
chunkTIJXCRM4_js.FormTextarea,
|
|
4775
4811
|
{
|
|
4776
4812
|
label: labels.descriptionLabel,
|
|
4777
4813
|
value: description,
|
|
@@ -4807,7 +4843,7 @@ function RuleNewWizardPageView({
|
|
|
4807
4843
|
}
|
|
4808
4844
|
),
|
|
4809
4845
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4810
|
-
|
|
4846
|
+
chunkTIJXCRM4_js.FormToggle,
|
|
4811
4847
|
{
|
|
4812
4848
|
checked: enabled,
|
|
4813
4849
|
onChange: (v) => {
|
|
@@ -4824,7 +4860,7 @@ function RuleNewWizardPageView({
|
|
|
4824
4860
|
}
|
|
4825
4861
|
function renderStep2() {
|
|
4826
4862
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4827
|
-
|
|
4863
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4828
4864
|
{
|
|
4829
4865
|
variant: "glass",
|
|
4830
4866
|
header: {
|
|
@@ -4835,7 +4871,7 @@ function RuleNewWizardPageView({
|
|
|
4835
4871
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4836
4872
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.combinatorLabel }),
|
|
4837
4873
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4838
|
-
|
|
4874
|
+
chunkTIJXCRM4_js.SegmentedControl,
|
|
4839
4875
|
{
|
|
4840
4876
|
segments: [
|
|
4841
4877
|
{ value: "and", label: labels.combinatorAnd },
|
|
@@ -4852,7 +4888,7 @@ function RuleNewWizardPageView({
|
|
|
4852
4888
|
)
|
|
4853
4889
|
] }),
|
|
4854
4890
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4855
|
-
|
|
4891
|
+
chunkAPONR6ZM_js.RuleConditionBuilder,
|
|
4856
4892
|
{
|
|
4857
4893
|
value: condition,
|
|
4858
4894
|
onChange: (next) => {
|
|
@@ -4868,7 +4904,7 @@ function RuleNewWizardPageView({
|
|
|
4868
4904
|
function renderStep3() {
|
|
4869
4905
|
const selectedTile = ACTION_TILES.find((t) => t.id === actionTileId) ?? null;
|
|
4870
4906
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4871
|
-
|
|
4907
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4872
4908
|
{
|
|
4873
4909
|
variant: "glass",
|
|
4874
4910
|
header: {
|
|
@@ -4888,7 +4924,7 @@ function RuleNewWizardPageView({
|
|
|
4888
4924
|
const label = labels[tile.labelKey] ?? tile.id;
|
|
4889
4925
|
const description2 = labels[tile.descriptionKey] ?? "";
|
|
4890
4926
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4891
|
-
|
|
4927
|
+
chunkTIJXCRM4_js.FilterTileButton,
|
|
4892
4928
|
{
|
|
4893
4929
|
isActive: selected,
|
|
4894
4930
|
color: tile.color,
|
|
@@ -4906,7 +4942,7 @@ function RuleNewWizardPageView({
|
|
|
4906
4942
|
}
|
|
4907
4943
|
),
|
|
4908
4944
|
selectedTile && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4909
|
-
|
|
4945
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4910
4946
|
{
|
|
4911
4947
|
variant: "glass",
|
|
4912
4948
|
header: {
|
|
@@ -4914,7 +4950,7 @@ function RuleNewWizardPageView({
|
|
|
4914
4950
|
subtitle: labels.actionConfigSubtitle
|
|
4915
4951
|
},
|
|
4916
4952
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4917
|
-
|
|
4953
|
+
chunkAPONR6ZM_js.RuleActionBuilder,
|
|
4918
4954
|
{
|
|
4919
4955
|
value: action,
|
|
4920
4956
|
onChange: (next) => {
|
|
@@ -4931,7 +4967,7 @@ function RuleNewWizardPageView({
|
|
|
4931
4967
|
}
|
|
4932
4968
|
function renderStep4() {
|
|
4933
4969
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4934
|
-
|
|
4970
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
4935
4971
|
{
|
|
4936
4972
|
variant: "glass",
|
|
4937
4973
|
header: {
|
|
@@ -4939,12 +4975,12 @@ function RuleNewWizardPageView({
|
|
|
4939
4975
|
subtitle: labels.scheduleSectionSubtitle
|
|
4940
4976
|
},
|
|
4941
4977
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
4942
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4978
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTIJXCRM4_js.FormGrid, { children: [
|
|
4943
4979
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
4944
4980
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.validFromLabel }),
|
|
4945
4981
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
4946
4982
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4947
|
-
|
|
4983
|
+
chunkTIJXCRM4_js.DatePicker,
|
|
4948
4984
|
{
|
|
4949
4985
|
value: validFromDate,
|
|
4950
4986
|
onChange: (d) => {
|
|
@@ -4955,7 +4991,7 @@ function RuleNewWizardPageView({
|
|
|
4955
4991
|
}
|
|
4956
4992
|
),
|
|
4957
4993
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4958
|
-
|
|
4994
|
+
chunkTIJXCRM4_js.TimePicker,
|
|
4959
4995
|
{
|
|
4960
4996
|
value: validFromTime,
|
|
4961
4997
|
onChange: (t) => {
|
|
@@ -4971,7 +5007,7 @@ function RuleNewWizardPageView({
|
|
|
4971
5007
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.validUntilLabel }),
|
|
4972
5008
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
4973
5009
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4974
|
-
|
|
5010
|
+
chunkTIJXCRM4_js.DatePicker,
|
|
4975
5011
|
{
|
|
4976
5012
|
value: validUntilDate,
|
|
4977
5013
|
onChange: (d) => {
|
|
@@ -4982,7 +5018,7 @@ function RuleNewWizardPageView({
|
|
|
4982
5018
|
}
|
|
4983
5019
|
),
|
|
4984
5020
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4985
|
-
|
|
5021
|
+
chunkTIJXCRM4_js.TimePicker,
|
|
4986
5022
|
{
|
|
4987
5023
|
value: validUntilTime,
|
|
4988
5024
|
onChange: (t) => {
|
|
@@ -4996,7 +5032,7 @@ function RuleNewWizardPageView({
|
|
|
4996
5032
|
] })
|
|
4997
5033
|
] }),
|
|
4998
5034
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4999
|
-
|
|
5035
|
+
chunkTIJXCRM4_js.FormCheckbox,
|
|
5000
5036
|
{
|
|
5001
5037
|
checked: noExpiry,
|
|
5002
5038
|
onChange: (v) => {
|
|
@@ -5010,7 +5046,7 @@ function RuleNewWizardPageView({
|
|
|
5010
5046
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5011
5047
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.statusLabel }),
|
|
5012
5048
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5013
|
-
|
|
5049
|
+
chunkTIJXCRM4_js.SegmentedControl,
|
|
5014
5050
|
{
|
|
5015
5051
|
segments: [
|
|
5016
5052
|
{ value: "active", label: labels.statusActive },
|
|
@@ -5026,23 +5062,34 @@ function RuleNewWizardPageView({
|
|
|
5026
5062
|
}
|
|
5027
5063
|
)
|
|
5028
5064
|
] }),
|
|
5029
|
-
/* @__PURE__ */ jsxRuntime.
|
|
5030
|
-
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5065
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
5066
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.tagsLabel }),
|
|
5067
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5068
|
+
chunkTIJXCRM4_js.ChipPicker,
|
|
5069
|
+
{
|
|
5070
|
+
items: tagsItems,
|
|
5071
|
+
selectedIds: tagsSelected,
|
|
5072
|
+
onChange: (ids) => {
|
|
5073
|
+
setTagsSelected(ids);
|
|
5074
|
+
markTouched();
|
|
5075
|
+
},
|
|
5076
|
+
onItemsChange: (items) => {
|
|
5077
|
+
setTagsItems(items);
|
|
5078
|
+
markTouched();
|
|
5079
|
+
},
|
|
5080
|
+
allowCustom: true,
|
|
5081
|
+
unselectedStyle: tagsStyle,
|
|
5082
|
+
showActions: false,
|
|
5083
|
+
addPlaceholder: labels.tagsPlaceholder,
|
|
5084
|
+
addAriaLabel: labels.tagsLabel
|
|
5085
|
+
}
|
|
5086
|
+
),
|
|
5087
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-slate-500 dark:text-slate-400", children: labels.tagsHint })
|
|
5088
|
+
] }),
|
|
5042
5089
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5043
5090
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.recurrenceLabel }),
|
|
5044
5091
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5045
|
-
|
|
5092
|
+
chunkTIJXCRM4_js.SegmentedControl,
|
|
5046
5093
|
{
|
|
5047
5094
|
segments: [
|
|
5048
5095
|
{ value: "one-off", label: labels.recurrenceOneOff },
|
|
@@ -5059,7 +5106,7 @@ function RuleNewWizardPageView({
|
|
|
5059
5106
|
)
|
|
5060
5107
|
] }),
|
|
5061
5108
|
recurrence === "cron" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5062
|
-
|
|
5109
|
+
chunkTIJXCRM4_js.FormInput,
|
|
5063
5110
|
{
|
|
5064
5111
|
label: labels.cronExpressionLabel,
|
|
5065
5112
|
value: cronExpression,
|
|
@@ -5074,34 +5121,30 @@ function RuleNewWizardPageView({
|
|
|
5074
5121
|
recurrence === "recurring" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
5075
5122
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5076
5123
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.weekdaysLabel }),
|
|
5077
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
"inline-flex h-9 min-w-9 items-center justify-center rounded-full px-3 text-xs font-semibold transition",
|
|
5093
|
-
selected ? "bg-fuchsia-500 text-white shadow ring-2 ring-fuchsia-300/70" : "liquid-surface text-slate-700 dark:text-slate-300 hover:bg-fuchsia-500/10"
|
|
5094
|
-
].join(" "),
|
|
5095
|
-
children: label
|
|
5124
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5125
|
+
chunkTIJXCRM4_js.ChipPicker,
|
|
5126
|
+
{
|
|
5127
|
+
items: WEEKDAYS.map((d) => ({
|
|
5128
|
+
id: d.id,
|
|
5129
|
+
name: labels[d.labelKey] ?? d.id,
|
|
5130
|
+
style: {
|
|
5131
|
+
bg: "bg-fuchsia-500/15",
|
|
5132
|
+
text: "text-fuchsia-700 dark:text-fuchsia-300"
|
|
5133
|
+
}
|
|
5134
|
+
})),
|
|
5135
|
+
selectedIds: weekdays,
|
|
5136
|
+
onChange: (ids) => {
|
|
5137
|
+
setWeekdays(ids);
|
|
5138
|
+
markTouched();
|
|
5096
5139
|
},
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5140
|
+
showActions: false
|
|
5141
|
+
}
|
|
5142
|
+
)
|
|
5100
5143
|
] }),
|
|
5101
5144
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5102
5145
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.timeOfDayLabel }),
|
|
5103
5146
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5104
|
-
|
|
5147
|
+
chunkTIJXCRM4_js.TimePicker,
|
|
5105
5148
|
{
|
|
5106
5149
|
value: recurringTime,
|
|
5107
5150
|
onChange: (t) => {
|
|
@@ -5123,7 +5166,7 @@ function RuleNewWizardPageView({
|
|
|
5123
5166
|
const actionSentence = humanReadableAction(payload.action, labels, ACTION_TILES, actionTileId);
|
|
5124
5167
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5125
5168
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5126
|
-
|
|
5169
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
5127
5170
|
{
|
|
5128
5171
|
variant: "glass",
|
|
5129
5172
|
header: {
|
|
@@ -5149,7 +5192,7 @@ function RuleNewWizardPageView({
|
|
|
5149
5192
|
}
|
|
5150
5193
|
),
|
|
5151
5194
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5152
|
-
|
|
5195
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
5153
5196
|
{
|
|
5154
5197
|
variant: "glass",
|
|
5155
5198
|
header: {
|
|
@@ -5168,7 +5211,7 @@ function RuleNewWizardPageView({
|
|
|
5168
5211
|
}
|
|
5169
5212
|
),
|
|
5170
5213
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5171
|
-
|
|
5214
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
5172
5215
|
{
|
|
5173
5216
|
variant: "glass",
|
|
5174
5217
|
header: {
|
|
@@ -5186,7 +5229,7 @@ function RuleNewWizardPageView({
|
|
|
5186
5229
|
}
|
|
5187
5230
|
),
|
|
5188
5231
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5189
|
-
|
|
5232
|
+
chunkTIJXCRM4_js.SectionCard,
|
|
5190
5233
|
{
|
|
5191
5234
|
variant: "glass",
|
|
5192
5235
|
header: {
|
|
@@ -5252,20 +5295,10 @@ function RuleNewWizardPageView({
|
|
|
5252
5295
|
if (step < TOTAL_STEPS3) goNext();
|
|
5253
5296
|
else void submit();
|
|
5254
5297
|
},
|
|
5255
|
-
className: "space-y-
|
|
5298
|
+
className: "space-y-4",
|
|
5256
5299
|
children: [
|
|
5257
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5258
|
-
|
|
5259
|
-
{
|
|
5260
|
-
steps: timelineSteps,
|
|
5261
|
-
progressLabel: labels.pageTitle,
|
|
5262
|
-
onStepClick: (idx) => goToStep(idx + 1)
|
|
5263
|
-
}
|
|
5264
|
-
),
|
|
5265
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full space-y-5", children: [
|
|
5266
|
-
stepBody,
|
|
5267
|
-
footer
|
|
5268
|
-
] })
|
|
5300
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface rounded-2xl p-5 sm:p-8", children: stepBody }),
|
|
5301
|
+
footer
|
|
5269
5302
|
]
|
|
5270
5303
|
}
|
|
5271
5304
|
);
|
|
@@ -5330,31 +5363,31 @@ function humanReadableAction(action, labels, tiles, actionTileId) {
|
|
|
5330
5363
|
|
|
5331
5364
|
Object.defineProperty(exports, "RolesPageView", {
|
|
5332
5365
|
enumerable: true,
|
|
5333
|
-
get: function () { return
|
|
5366
|
+
get: function () { return chunkKDVZIDVF_js.RolesPageView; }
|
|
5334
5367
|
});
|
|
5335
5368
|
Object.defineProperty(exports, "UsersPageView", {
|
|
5336
5369
|
enumerable: true,
|
|
5337
|
-
get: function () { return
|
|
5370
|
+
get: function () { return chunkKDVZIDVF_js.UsersPageView; }
|
|
5338
5371
|
});
|
|
5339
5372
|
Object.defineProperty(exports, "DIALECT_CATEGORIES", {
|
|
5340
5373
|
enumerable: true,
|
|
5341
|
-
get: function () { return
|
|
5374
|
+
get: function () { return chunkNW32BM3F_js.DIALECT_CATEGORIES; }
|
|
5342
5375
|
});
|
|
5343
5376
|
Object.defineProperty(exports, "DatasourceFormModal", {
|
|
5344
5377
|
enumerable: true,
|
|
5345
|
-
get: function () { return
|
|
5378
|
+
get: function () { return chunkNW32BM3F_js.DatasourceFormModal; }
|
|
5346
5379
|
});
|
|
5347
5380
|
Object.defineProperty(exports, "DatasourceModal", {
|
|
5348
5381
|
enumerable: true,
|
|
5349
|
-
get: function () { return
|
|
5382
|
+
get: function () { return chunkNW32BM3F_js.DatasourceModal; }
|
|
5350
5383
|
});
|
|
5351
5384
|
Object.defineProperty(exports, "findCategory", {
|
|
5352
5385
|
enumerable: true,
|
|
5353
|
-
get: function () { return
|
|
5386
|
+
get: function () { return chunkNW32BM3F_js.findCategory; }
|
|
5354
5387
|
});
|
|
5355
5388
|
Object.defineProperty(exports, "findDialect", {
|
|
5356
5389
|
enumerable: true,
|
|
5357
|
-
get: function () { return
|
|
5390
|
+
get: function () { return chunkNW32BM3F_js.findDialect; }
|
|
5358
5391
|
});
|
|
5359
5392
|
exports.AgentNewWizardPageView = AgentNewWizardPageView;
|
|
5360
5393
|
exports.AgentsConfigPageView = AgentsConfigPageView;
|