@memberjunction/ng-flow-editor 5.42.0 → 5.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,28 +4,30 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/forms";
6
6
  import * as i3 from "@memberjunction/ng-code-editor";
7
+ import * as i4 from "@memberjunction/ng-ui-components";
7
8
  function AgentPropertiesPanelComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "div", 1);
9
- i0.ɵɵelement(1, "i", 2);
10
- i0.ɵɵelementStart(2, "p");
11
- i0.ɵɵtext(3, "Select a step or connection to view its properties");
12
- i0.ɵɵelementEnd()();
9
+ i0.ɵɵelement(0, "mj-empty-state", 1);
13
10
  } }
14
11
  function AgentPropertiesPanelComponent_Conditional_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelementStart(0, "span", 17);
12
+ i0.ɵɵelementStart(0, "span", 16);
16
13
  i0.ɵɵtext(1, "Start");
17
14
  i0.ɵɵelementEnd();
18
15
  } }
19
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_4_Template(rf, ctx) { if (rf & 1) {
16
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_21_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementStart(0, "span");
18
+ i0.ɵɵtext(1, "General");
19
+ i0.ɵɵelementEnd();
20
+ } }
21
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_4_Template(rf, ctx) { if (rf & 1) {
20
22
  const _r3 = i0.ɵɵgetCurrentView();
21
23
  i0.ɵɵelementStart(0, "input", 30);
22
- i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnNameChange(ctx_r1.InputValue($event))); });
24
+ i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnNameChange(ctx_r1.InputValue($event))); });
23
25
  i0.ɵɵelementEnd();
24
26
  } if (rf & 2) {
25
27
  const ctx_r1 = i0.ɵɵnextContext(3);
26
28
  i0.ɵɵproperty("value", ctx_r1.Step.Name);
27
29
  } }
28
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_5_Template(rf, ctx) { if (rf & 1) {
30
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_5_Template(rf, ctx) { if (rf & 1) {
29
31
  i0.ɵɵelementStart(0, "div", 26);
30
32
  i0.ɵɵtext(1);
31
33
  i0.ɵɵelementEnd();
@@ -34,16 +36,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
34
36
  i0.ɵɵadvance();
35
37
  i0.ɵɵtextInterpolate(ctx_r1.Step.Name);
36
38
  } }
37
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_9_Template(rf, ctx) { if (rf & 1) {
39
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_9_Template(rf, ctx) { if (rf & 1) {
38
40
  const _r4 = i0.ɵɵgetCurrentView();
39
41
  i0.ɵɵelementStart(0, "textarea", 31);
40
- i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_9_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnDescriptionChange(ctx_r1.InputValue($event))); });
42
+ i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_9_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnDescriptionChange(ctx_r1.InputValue($event))); });
41
43
  i0.ɵɵelementEnd();
42
44
  } if (rf & 2) {
43
45
  const ctx_r1 = i0.ɵɵnextContext(3);
44
46
  i0.ɵɵproperty("value", ctx_r1.Step.Description || "");
45
47
  } }
46
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_10_Template(rf, ctx) { if (rf & 1) {
48
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_10_Template(rf, ctx) { if (rf & 1) {
47
49
  i0.ɵɵelementStart(0, "div", 26);
48
50
  i0.ɵɵtext(1);
49
51
  i0.ɵɵelementEnd();
@@ -52,10 +54,10 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
52
54
  i0.ɵɵadvance();
53
55
  i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.Description || "\u2014", " ");
54
56
  } }
55
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_14_Template(rf, ctx) { if (rf & 1) {
57
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_14_Template(rf, ctx) { if (rf & 1) {
56
58
  const _r5 = i0.ɵɵgetCurrentView();
57
59
  i0.ɵɵelementStart(0, "select", 32);
58
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_14_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnStatusChange(ctx_r1.InputValue($event))); });
60
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_14_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnStatusChange(ctx_r1.InputValue($event))); });
59
61
  i0.ɵɵelementStart(1, "option", 33);
60
62
  i0.ɵɵtext(2, "Active");
61
63
  i0.ɵɵelementEnd();
@@ -69,9 +71,9 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
69
71
  const ctx_r1 = i0.ɵɵnextContext(3);
70
72
  i0.ɵɵproperty("value", ctx_r1.Step.Status);
71
73
  } }
72
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_15_Template(rf, ctx) { if (rf & 1) {
74
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_15_Template(rf, ctx) { if (rf & 1) {
73
75
  i0.ɵɵelementStart(0, "div", 26);
74
- i0.ɵɵelement(1, "span", 15);
76
+ i0.ɵɵelement(1, "span", 14);
75
77
  i0.ɵɵtext(2);
76
78
  i0.ɵɵelementEnd();
77
79
  } if (rf & 2) {
@@ -81,10 +83,10 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
81
83
  i0.ɵɵadvance();
82
84
  i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.Status, " ");
83
85
  } }
84
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_16_Template(rf, ctx) { if (rf & 1) {
86
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_16_Template(rf, ctx) { if (rf & 1) {
85
87
  const _r6 = i0.ɵɵgetCurrentView();
86
88
  i0.ɵɵelementStart(0, "div", 29)(1, "label", 36)(2, "input", 37);
87
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_16_Template_input_change_2_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnStartingStepChange(ctx_r1.CheckedValue($event))); });
89
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_16_Template_input_change_2_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnStartingStepChange(ctx_r1.CheckedValue($event))); });
88
90
  i0.ɵɵelementEnd();
89
91
  i0.ɵɵtext(3, " Starting Step ");
90
92
  i0.ɵɵelementEnd()();
@@ -93,35 +95,35 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
93
95
  i0.ɵɵadvance(2);
94
96
  i0.ɵɵproperty("checked", ctx_r1.Step.StartingStep);
95
97
  } }
96
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_17_Template(rf, ctx) { if (rf & 1) {
98
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_17_Template(rf, ctx) { if (rf & 1) {
97
99
  i0.ɵɵelementStart(0, "div", 24)(1, "label");
98
100
  i0.ɵɵtext(2, "Starting Step");
99
101
  i0.ɵɵelementEnd();
100
- i0.ɵɵelementStart(3, "div", 26)(4, "span", 17);
102
+ i0.ɵɵelementStart(3, "div", 26)(4, "span", 16);
101
103
  i0.ɵɵtext(5, "Yes \u2014 this is the entry point");
102
104
  i0.ɵɵelementEnd()()();
103
105
  } }
104
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Template(rf, ctx) { if (rf & 1) {
105
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 24)(2, "label");
106
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Template(rf, ctx) { if (rf & 1) {
107
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
106
108
  i0.ɵɵtext(3, "Name");
107
109
  i0.ɵɵelementEnd();
108
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_4_Template, 1, 1, "input", 25);
109
- i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_5_Template, 2, 1, "div", 26);
110
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_4_Template, 1, 1, "input", 25);
111
+ i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_5_Template, 2, 1, "div", 26);
110
112
  i0.ɵɵelementEnd();
111
113
  i0.ɵɵelementStart(6, "div", 24)(7, "label");
112
114
  i0.ɵɵtext(8, "Description");
113
115
  i0.ɵɵelementEnd();
114
- i0.ɵɵconditionalCreate(9, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_9_Template, 1, 1, "textarea", 27);
115
- i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_10_Template, 2, 1, "div", 26);
116
+ i0.ɵɵconditionalCreate(9, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_9_Template, 1, 1, "textarea", 27);
117
+ i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_10_Template, 2, 1, "div", 26);
116
118
  i0.ɵɵelementEnd();
117
119
  i0.ɵɵelementStart(11, "div", 24)(12, "label");
118
120
  i0.ɵɵtext(13, "Status");
119
121
  i0.ɵɵelementEnd();
120
- i0.ɵɵconditionalCreate(14, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_14_Template, 7, 1, "select", 28);
121
- i0.ɵɵconditionalCreate(15, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_15_Template, 3, 3, "div", 26);
122
+ i0.ɵɵconditionalCreate(14, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_14_Template, 7, 1, "select", 28);
123
+ i0.ɵɵconditionalCreate(15, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_15_Template, 3, 3, "div", 26);
122
124
  i0.ɵɵelementEnd();
123
- i0.ɵɵconditionalCreate(16, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_16_Template, 4, 1, "div", 29);
124
- i0.ɵɵconditionalCreate(17, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_17_Template, 6, 0, "div", 24);
125
+ i0.ɵɵconditionalCreate(16, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_16_Template, 4, 1, "div", 29);
126
+ i0.ɵɵconditionalCreate(17, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_17_Template, 6, 0, "div", 24);
125
127
  i0.ɵɵelementEnd();
126
128
  } if (rf & 2) {
127
129
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -142,10 +144,15 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Template(rf,
142
144
  i0.ɵɵadvance();
143
145
  i0.ɵɵconditional(ctx_r1.ReadOnly && ctx_r1.Step.StartingStep ? 17 : -1);
144
146
  } }
145
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
147
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_24_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "span");
149
+ i0.ɵɵtext(1, "Configuration");
150
+ i0.ɵɵelementEnd();
151
+ } }
152
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
146
153
  const _r7 = i0.ɵɵgetCurrentView();
147
154
  i0.ɵɵelementStart(0, "select", 32);
148
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_1_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnLoopBodyTypeChange(ctx_r1.InputValue($event))); });
155
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnLoopBodyTypeChange(ctx_r1.InputValue($event))); });
149
156
  i0.ɵɵelementStart(1, "option", 38);
150
157
  i0.ɵɵtext(2, "Action");
151
158
  i0.ɵɵelementEnd();
@@ -159,7 +166,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
159
166
  const ctx_r1 = i0.ɵɵnextContext(4);
160
167
  i0.ɵɵproperty("value", ctx_r1.Step.LoopBodyType || "Action");
161
168
  } }
162
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
169
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
163
170
  i0.ɵɵelementStart(0, "div", 26);
164
171
  i0.ɵɵtext(1);
165
172
  i0.ɵɵelementEnd();
@@ -168,12 +175,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
168
175
  i0.ɵɵadvance();
169
176
  i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.LoopBodyType || "Action", " ");
170
177
  } }
171
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_1_Template(rf, ctx) { if (rf & 1) {
178
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Template(rf, ctx) { if (rf & 1) {
172
179
  i0.ɵɵelementStart(0, "div", 24)(1, "label");
173
180
  i0.ɵɵtext(2, "Loop Body Type");
174
181
  i0.ɵɵelementEnd();
175
- i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_1_Conditional_3_Template, 7, 1, "select", 28);
176
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_1_Conditional_4_Template, 2, 1, "div", 26);
182
+ i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_3_Template, 7, 1, "select", 28);
183
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_4_Template, 2, 1, "div", 26);
177
184
  i0.ɵɵelementEnd();
178
185
  } if (rf & 2) {
179
186
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -182,7 +189,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
182
189
  i0.ɵɵadvance();
183
190
  i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
184
191
  } }
185
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
192
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
186
193
  i0.ɵɵelementStart(0, "option", 42);
187
194
  i0.ɵɵtext(1);
188
195
  i0.ɵɵelementEnd();
@@ -192,14 +199,14 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
192
199
  i0.ɵɵadvance();
193
200
  i0.ɵɵtextInterpolate(action_r9.Name);
194
201
  } }
195
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
202
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
196
203
  const _r8 = i0.ɵɵgetCurrentView();
197
204
  i0.ɵɵelementStart(0, "select", 32);
198
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnActionChange(ctx_r1.InputValue($event))); });
205
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnActionChange(ctx_r1.InputValue($event))); });
199
206
  i0.ɵɵelementStart(1, "option", 41);
200
207
  i0.ɵɵtext(2, "-- Select Action --");
201
208
  i0.ɵɵelementEnd();
202
- i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
209
+ i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
203
210
  i0.ɵɵelementEnd();
204
211
  } if (rf & 2) {
205
212
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -207,7 +214,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
207
214
  i0.ɵɵadvance(3);
208
215
  i0.ɵɵrepeater(ctx_r1.Actions);
209
216
  } }
210
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
217
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
211
218
  i0.ɵɵelementStart(0, "div", 26);
212
219
  i0.ɵɵtext(1);
213
220
  i0.ɵɵelementEnd();
@@ -216,12 +223,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
216
223
  i0.ɵɵadvance();
217
224
  i0.ɵɵtextInterpolate(ctx_r1.selectedActionName);
218
225
  } }
219
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Template(rf, ctx) { if (rf & 1) {
226
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Template(rf, ctx) { if (rf & 1) {
220
227
  i0.ɵɵelementStart(0, "div", 24)(1, "label");
221
228
  i0.ɵɵtext(2, "Action");
222
229
  i0.ɵɵelementEnd();
223
- i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Conditional_3_Template, 5, 1, "select", 28);
224
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Conditional_4_Template, 2, 1, "div", 26);
230
+ i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_Template, 5, 1, "select", 28);
231
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_4_Template, 2, 1, "div", 26);
225
232
  i0.ɵɵelementEnd();
226
233
  } if (rf & 2) {
227
234
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -230,7 +237,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
230
237
  i0.ɵɵadvance();
231
238
  i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
232
239
  } }
233
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
240
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
234
241
  i0.ɵɵelementStart(0, "option", 42);
235
242
  i0.ɵɵtext(1);
236
243
  i0.ɵɵelementEnd();
@@ -240,14 +247,14 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
240
247
  i0.ɵɵadvance();
241
248
  i0.ɵɵtextInterpolate(prompt_r11.Name);
242
249
  } }
243
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
250
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
244
251
  const _r10 = i0.ɵɵgetCurrentView();
245
252
  i0.ɵɵelementStart(0, "select", 32);
246
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnPromptChange(ctx_r1.InputValue($event))); });
253
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnPromptChange(ctx_r1.InputValue($event))); });
247
254
  i0.ɵɵelementStart(1, "option", 41);
248
255
  i0.ɵɵtext(2, "-- Select Prompt --");
249
256
  i0.ɵɵelementEnd();
250
- i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
257
+ i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
251
258
  i0.ɵɵelementEnd();
252
259
  } if (rf & 2) {
253
260
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -255,7 +262,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
255
262
  i0.ɵɵadvance(3);
256
263
  i0.ɵɵrepeater(ctx_r1.Prompts);
257
264
  } }
258
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
265
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
259
266
  i0.ɵɵelementStart(0, "div", 26);
260
267
  i0.ɵɵtext(1);
261
268
  i0.ɵɵelementEnd();
@@ -264,12 +271,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
264
271
  i0.ɵɵadvance();
265
272
  i0.ɵɵtextInterpolate(ctx_r1.selectedPromptName);
266
273
  } }
267
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Template(rf, ctx) { if (rf & 1) {
274
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Template(rf, ctx) { if (rf & 1) {
268
275
  i0.ɵɵelementStart(0, "div", 24)(1, "label");
269
276
  i0.ɵɵtext(2, "Prompt");
270
277
  i0.ɵɵelementEnd();
271
- i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Conditional_3_Template, 5, 1, "select", 28);
272
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Conditional_4_Template, 2, 1, "div", 26);
278
+ i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_Template, 5, 1, "select", 28);
279
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_4_Template, 2, 1, "div", 26);
273
280
  i0.ɵɵelementEnd();
274
281
  } if (rf & 2) {
275
282
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -278,7 +285,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
278
285
  i0.ɵɵadvance();
279
286
  i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
280
287
  } }
281
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
288
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
282
289
  i0.ɵɵelementStart(0, "option", 42);
283
290
  i0.ɵɵtext(1);
284
291
  i0.ɵɵelementEnd();
@@ -288,14 +295,14 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
288
295
  i0.ɵɵadvance();
289
296
  i0.ɵɵtextInterpolate(agent_r13.Name);
290
297
  } }
291
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
298
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
292
299
  const _r12 = i0.ɵɵgetCurrentView();
293
300
  i0.ɵɵelementStart(0, "select", 32);
294
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnSubAgentChange(ctx_r1.InputValue($event))); });
301
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnSubAgentChange(ctx_r1.InputValue($event))); });
295
302
  i0.ɵɵelementStart(1, "option", 41);
296
303
  i0.ɵɵtext(2, "-- Select Agent --");
297
304
  i0.ɵɵelementEnd();
298
- i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
305
+ i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
299
306
  i0.ɵɵelementEnd();
300
307
  } if (rf & 2) {
301
308
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -303,7 +310,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
303
310
  i0.ɵɵadvance(3);
304
311
  i0.ɵɵrepeater(ctx_r1.Agents);
305
312
  } }
306
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
313
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
307
314
  i0.ɵɵelementStart(0, "div", 26);
308
315
  i0.ɵɵtext(1);
309
316
  i0.ɵɵelementEnd();
@@ -312,12 +319,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
312
319
  i0.ɵɵadvance();
313
320
  i0.ɵɵtextInterpolate(ctx_r1.selectedAgentName);
314
321
  } }
315
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Template(rf, ctx) { if (rf & 1) {
322
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Template(rf, ctx) { if (rf & 1) {
316
323
  i0.ɵɵelementStart(0, "div", 24)(1, "label");
317
324
  i0.ɵɵtext(2, "Sub-Agent");
318
325
  i0.ɵɵelementEnd();
319
- i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Conditional_3_Template, 5, 1, "select", 28);
320
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Conditional_4_Template, 2, 1, "div", 26);
326
+ i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_Template, 5, 1, "select", 28);
327
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_4_Template, 2, 1, "div", 26);
321
328
  i0.ɵɵelementEnd();
322
329
  } if (rf & 2) {
323
330
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -326,26 +333,26 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
326
333
  i0.ɵɵadvance();
327
334
  i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
328
335
  } }
329
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_5_Template(rf, ctx) { if (rf & 1) {
336
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_5_Template(rf, ctx) { if (rf & 1) {
330
337
  const _r14 = i0.ɵɵgetCurrentView();
331
338
  i0.ɵɵelementStart(0, "div", 24)(1, "label");
332
339
  i0.ɵɵtext(2, "Loop Configuration");
333
340
  i0.ɵɵelementEnd();
334
341
  i0.ɵɵelementStart(3, "mj-code-editor", 43);
335
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_5_Template_mj_code_editor_change_3_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnConfigurationChange($event)); });
342
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_5_Template_mj_code_editor_change_3_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnConfigurationChange($event)); });
336
343
  i0.ɵɵelementEnd()();
337
344
  } if (rf & 2) {
338
345
  const ctx_r1 = i0.ɵɵnextContext(3);
339
346
  i0.ɵɵadvance(3);
340
347
  i0.ɵɵproperty("value", ctx_r1.FormatJsonDisplay(ctx_r1.Step.Configuration))("readonly", ctx_r1.ReadOnly)("lineWrapping", true);
341
348
  } }
342
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Template(rf, ctx) { if (rf & 1) {
343
- i0.ɵɵelementStart(0, "div", 22);
344
- i0.ɵɵconditionalCreate(1, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_1_Template, 5, 2, "div", 24);
345
- i0.ɵɵconditionalCreate(2, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_2_Template, 5, 2, "div", 24);
346
- i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_3_Template, 5, 2, "div", 24);
347
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_4_Template, 5, 2, "div", 24);
348
- i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_5_Template, 4, 3, "div", 24);
349
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Template(rf, ctx) { if (rf & 1) {
350
+ i0.ɵɵelementStart(0, "div", 23);
351
+ i0.ɵɵconditionalCreate(1, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Template, 5, 2, "div", 24);
352
+ i0.ɵɵconditionalCreate(2, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Template, 5, 2, "div", 24);
353
+ i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Template, 5, 2, "div", 24);
354
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Template, 5, 2, "div", 24);
355
+ i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_5_Template, 4, 3, "div", 24);
349
356
  i0.ɵɵelementEnd();
350
357
  } if (rf & 2) {
351
358
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -360,19 +367,24 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Template(rf,
360
367
  i0.ɵɵadvance();
361
368
  i0.ɵɵconditional(ctx_r1.showLoopConfig ? 5 : -1);
362
369
  } }
363
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Conditional_5_Template(rf, ctx) { if (rf & 1) {
370
+ function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_1_Template(rf, ctx) { if (rf & 1) {
371
+ i0.ɵɵelementStart(0, "span");
372
+ i0.ɵɵtext(1, "Data Mapping");
373
+ i0.ɵɵelementEnd();
374
+ } }
375
+ function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template(rf, ctx) { if (rf & 1) {
364
376
  const _r16 = i0.ɵɵgetCurrentView();
365
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 24)(2, "label");
377
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
366
378
  i0.ɵɵtext(3, "Input Mapping");
367
379
  i0.ɵɵelementEnd();
368
380
  i0.ɵɵelementStart(4, "mj-code-editor", 44);
369
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Conditional_5_Template_mj_code_editor_change_4_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnInputMappingChange($event)); });
381
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template_mj_code_editor_change_4_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnInputMappingChange($event)); });
370
382
  i0.ɵɵelementEnd()();
371
383
  i0.ɵɵelementStart(5, "div", 24)(6, "label");
372
384
  i0.ɵɵtext(7, "Output Mapping");
373
385
  i0.ɵɵelementEnd();
374
386
  i0.ɵɵelementStart(8, "mj-code-editor", 45);
375
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Conditional_5_Template_mj_code_editor_change_8_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnOutputMappingChange($event)); });
387
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template_mj_code_editor_change_8_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnOutputMappingChange($event)); });
376
388
  i0.ɵɵelementEnd()()();
377
389
  } if (rf & 2) {
378
390
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -381,28 +393,25 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Conditional_
381
393
  i0.ɵɵadvance(4);
382
394
  i0.ɵɵproperty("value", ctx_r1.FormatJsonDisplay(ctx_r1.Step.ActionOutputMapping))("readonly", ctx_r1.ReadOnly)("lineWrapping", true);
383
395
  } }
384
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Template(rf, ctx) { if (rf & 1) {
396
+ function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_Template(rf, ctx) { if (rf & 1) {
385
397
  const _r15 = i0.ɵɵgetCurrentView();
386
- i0.ɵɵelementStart(0, "div", 19)(1, "button", 20);
387
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("mapping")); });
388
- i0.ɵɵelementStart(2, "span", 21);
389
- i0.ɵɵtext(3, "Data Mapping");
390
- i0.ɵɵelementEnd();
391
- i0.ɵɵelement(4, "i", 10);
392
- i0.ɵɵelementEnd();
393
- i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Conditional_5_Template, 9, 6, "div", 22);
398
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 18);
399
+ i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_Template_mj_accordion_panel_ExpandedChange_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("mapping")); });
400
+ i0.ɵɵtemplate(1, AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_1_Template, 2, 0, "ng-template", 19)(2, AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template, 9, 6, "ng-template", 20);
394
401
  i0.ɵɵelementEnd();
395
402
  } if (rf & 2) {
396
403
  const ctx_r1 = i0.ɵɵnextContext(2);
397
- i0.ɵɵadvance(4);
398
- i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("mapping") ? "fa-chevron-right" : "fa-chevron-down");
399
- i0.ɵɵadvance();
400
- i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("mapping") ? 5 : -1);
404
+ i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("mapping"));
401
405
  } }
402
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_4_Template(rf, ctx) { if (rf & 1) {
406
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_28_Template(rf, ctx) { if (rf & 1) {
407
+ i0.ɵɵelementStart(0, "span");
408
+ i0.ɵɵtext(1, "Error Handling");
409
+ i0.ɵɵelementEnd();
410
+ } }
411
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_4_Template(rf, ctx) { if (rf & 1) {
403
412
  const _r17 = i0.ɵɵgetCurrentView();
404
413
  i0.ɵɵelementStart(0, "select", 32);
405
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_4_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnErrorBehaviorChange(ctx_r1.InputValue($event))); });
414
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_4_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnErrorBehaviorChange(ctx_r1.InputValue($event))); });
406
415
  i0.ɵɵelementStart(1, "option", 47);
407
416
  i0.ɵɵtext(2, "Fail (stop flow)");
408
417
  i0.ɵɵelementEnd();
@@ -416,7 +425,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
416
425
  const ctx_r1 = i0.ɵɵnextContext(3);
417
426
  i0.ɵɵproperty("value", ctx_r1.Step.OnErrorBehavior);
418
427
  } }
419
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_5_Template(rf, ctx) { if (rf & 1) {
428
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_5_Template(rf, ctx) { if (rf & 1) {
420
429
  i0.ɵɵelementStart(0, "div", 26);
421
430
  i0.ɵɵtext(1);
422
431
  i0.ɵɵelementEnd();
@@ -425,16 +434,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
425
434
  i0.ɵɵadvance();
426
435
  i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.OnErrorBehavior === "fail" ? "Fail (stop flow)" : ctx_r1.Step.OnErrorBehavior === "continue" ? "Continue (ignore error)" : "Retry", " ");
427
436
  } }
428
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
437
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
429
438
  const _r18 = i0.ɵɵgetCurrentView();
430
439
  i0.ɵɵelementStart(0, "input", 51);
431
- i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_6_Conditional_3_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnRetryCountChange(ctx_r1.NumericValue($event))); });
440
+ i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_3_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnRetryCountChange(ctx_r1.NumericValue($event))); });
432
441
  i0.ɵɵelementEnd();
433
442
  } if (rf & 2) {
434
443
  const ctx_r1 = i0.ɵɵnextContext(4);
435
444
  i0.ɵɵproperty("value", ctx_r1.Step.RetryCount);
436
445
  } }
437
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
446
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
438
447
  i0.ɵɵelementStart(0, "div", 26);
439
448
  i0.ɵɵtext(1);
440
449
  i0.ɵɵelementEnd();
@@ -443,12 +452,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
443
452
  i0.ɵɵadvance();
444
453
  i0.ɵɵtextInterpolate(ctx_r1.Step.RetryCount);
445
454
  } }
446
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_6_Template(rf, ctx) { if (rf & 1) {
455
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Template(rf, ctx) { if (rf & 1) {
447
456
  i0.ɵɵelementStart(0, "div", 24)(1, "label");
448
457
  i0.ɵɵtext(2, "Retry Count");
449
458
  i0.ɵɵelementEnd();
450
- i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_6_Conditional_3_Template, 1, 1, "input", 50);
451
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_6_Conditional_4_Template, 2, 1, "div", 26);
459
+ i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_3_Template, 1, 1, "input", 50);
460
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_4_Template, 2, 1, "div", 26);
452
461
  i0.ɵɵelementEnd();
453
462
  } if (rf & 2) {
454
463
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -457,16 +466,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
457
466
  i0.ɵɵadvance();
458
467
  i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
459
468
  } }
460
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_10_Template(rf, ctx) { if (rf & 1) {
469
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template(rf, ctx) { if (rf & 1) {
461
470
  const _r19 = i0.ɵɵgetCurrentView();
462
471
  i0.ɵɵelementStart(0, "input", 52);
463
- i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_10_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnTimeoutChange(ctx_r1.NumericValue($event))); });
472
+ i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnTimeoutChange(ctx_r1.NumericValue($event))); });
464
473
  i0.ɵɵelementEnd();
465
474
  } if (rf & 2) {
466
475
  const ctx_r1 = i0.ɵɵnextContext(3);
467
476
  i0.ɵɵproperty("value", ctx_r1.Step.TimeoutSeconds);
468
477
  } }
469
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_11_Template(rf, ctx) { if (rf & 1) {
478
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_11_Template(rf, ctx) { if (rf & 1) {
470
479
  i0.ɵɵelementStart(0, "div", 26);
471
480
  i0.ɵɵtext(1);
472
481
  i0.ɵɵelementEnd();
@@ -475,19 +484,19 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
475
484
  i0.ɵɵadvance();
476
485
  i0.ɵɵtextInterpolate1("", ctx_r1.Step.TimeoutSeconds, "s");
477
486
  } }
478
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Template(rf, ctx) { if (rf & 1) {
479
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 24)(2, "label");
487
+ function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Template(rf, ctx) { if (rf & 1) {
488
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
480
489
  i0.ɵɵtext(3, "On Error");
481
490
  i0.ɵɵelementEnd();
482
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_4_Template, 7, 1, "select", 28);
483
- i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_5_Template, 2, 1, "div", 26);
491
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_4_Template, 7, 1, "select", 28);
492
+ i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_5_Template, 2, 1, "div", 26);
484
493
  i0.ɵɵelementEnd();
485
- i0.ɵɵconditionalCreate(6, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_6_Template, 5, 2, "div", 24);
494
+ i0.ɵɵconditionalCreate(6, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Template, 5, 2, "div", 24);
486
495
  i0.ɵɵelementStart(7, "div", 24)(8, "label");
487
496
  i0.ɵɵtext(9, "Timeout (seconds)");
488
497
  i0.ɵɵelementEnd();
489
- i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_10_Template, 1, 1, "input", 46);
490
- i0.ɵɵconditionalCreate(11, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_11_Template, 2, 1, "div", 26);
498
+ i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template, 1, 1, "input", 46);
499
+ i0.ɵɵconditionalCreate(11, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_11_Template, 2, 1, "div", 26);
491
500
  i0.ɵɵelementEnd()();
492
501
  } if (rf & 2) {
493
502
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -502,67 +511,52 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Template(rf,
502
511
  i0.ɵɵadvance();
503
512
  i0.ɵɵconditional(ctx_r1.ReadOnly ? 11 : -1);
504
513
  } }
505
- function AgentPropertiesPanelComponent_Conditional_2_Conditional_39_Template(rf, ctx) { if (rf & 1) {
514
+ function AgentPropertiesPanelComponent_Conditional_2_Conditional_30_Template(rf, ctx) { if (rf & 1) {
506
515
  const _r20 = i0.ɵɵgetCurrentView();
507
- i0.ɵɵelementStart(0, "div", 23)(1, "button", 53);
508
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Conditional_39_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDeleteStep()); });
516
+ i0.ɵɵelementStart(0, "div", 22)(1, "button", 53);
517
+ i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Conditional_30_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDeleteStep()); });
509
518
  i0.ɵɵelement(2, "i", 54);
510
519
  i0.ɵɵtext(3, " Delete Step ");
511
520
  i0.ɵɵelementEnd()();
512
521
  } }
513
522
  function AgentPropertiesPanelComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
514
523
  const _r1 = i0.ɵɵgetCurrentView();
515
- i0.ɵɵelementStart(0, "div", 3)(1, "div", 4)(2, "span", 5);
524
+ i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "span", 4);
516
525
  i0.ɵɵtext(3, "STEP");
517
526
  i0.ɵɵelementEnd();
518
- i0.ɵɵelementStart(4, "button", 6);
527
+ i0.ɵɵelementStart(4, "button", 5);
519
528
  i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseRequested.emit()); });
520
- i0.ɵɵelement(5, "i", 7);
529
+ i0.ɵɵelement(5, "i", 6);
521
530
  i0.ɵɵelementEnd()();
522
- i0.ɵɵelementStart(6, "div", 8)(7, "div", 9);
523
- i0.ɵɵelement(8, "i", 10);
531
+ i0.ɵɵelementStart(6, "div", 7)(7, "div", 8);
532
+ i0.ɵɵelement(8, "i", 9);
524
533
  i0.ɵɵelementEnd();
525
- i0.ɵɵelementStart(9, "div", 11)(10, "span", 12);
534
+ i0.ɵɵelementStart(9, "div", 10)(10, "span", 11);
526
535
  i0.ɵɵtext(11);
527
536
  i0.ɵɵelementEnd();
528
- i0.ɵɵelementStart(12, "span", 13)(13, "span", 14);
537
+ i0.ɵɵelementStart(12, "span", 12)(13, "span", 13);
529
538
  i0.ɵɵtext(14);
530
539
  i0.ɵɵelementEnd();
531
- i0.ɵɵelement(15, "span", 15);
532
- i0.ɵɵelementStart(16, "span", 16);
540
+ i0.ɵɵelement(15, "span", 14);
541
+ i0.ɵɵelementStart(16, "span", 15);
533
542
  i0.ɵɵtext(17);
534
543
  i0.ɵɵelementEnd();
535
- i0.ɵɵconditionalCreate(18, AgentPropertiesPanelComponent_Conditional_2_Conditional_18_Template, 2, 0, "span", 17);
544
+ i0.ɵɵconditionalCreate(18, AgentPropertiesPanelComponent_Conditional_2_Conditional_18_Template, 2, 0, "span", 16);
536
545
  i0.ɵɵelementEnd()()()();
537
- i0.ɵɵelementStart(19, "div", 18)(20, "div", 19)(21, "button", 20);
538
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("general")); });
539
- i0.ɵɵelementStart(22, "span", 21);
540
- i0.ɵɵtext(23, "General");
541
- i0.ɵɵelementEnd();
542
- i0.ɵɵelement(24, "i", 10);
543
- i0.ɵɵelementEnd();
544
- i0.ɵɵconditionalCreate(25, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Template, 18, 8, "div", 22);
545
- i0.ɵɵelementEnd();
546
- i0.ɵɵelementStart(26, "div", 19)(27, "button", 20);
547
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Template_button_click_27_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("config")); });
548
- i0.ɵɵelementStart(28, "span", 21);
549
- i0.ɵɵtext(29, "Configuration");
550
- i0.ɵɵelementEnd();
551
- i0.ɵɵelement(30, "i", 10);
546
+ i0.ɵɵelementStart(19, "div", 17)(20, "mj-accordion-panel", 18);
547
+ i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Template_mj_accordion_panel_ExpandedChange_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("general")); });
548
+ i0.ɵɵtemplate(21, AgentPropertiesPanelComponent_Conditional_2_ng_template_21_Template, 2, 0, "ng-template", 19)(22, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Template, 18, 8, "ng-template", 20);
552
549
  i0.ɵɵelementEnd();
553
- i0.ɵɵconditionalCreate(31, AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Template, 6, 5, "div", 22);
550
+ i0.ɵɵelementStart(23, "mj-accordion-panel", 18);
551
+ i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Template_mj_accordion_panel_ExpandedChange_23_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("config")); });
552
+ i0.ɵɵtemplate(24, AgentPropertiesPanelComponent_Conditional_2_ng_template_24_Template, 2, 0, "ng-template", 19)(25, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Template, 6, 5, "ng-template", 20);
554
553
  i0.ɵɵelementEnd();
555
- i0.ɵɵconditionalCreate(32, AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Template, 6, 2, "div", 19);
556
- i0.ɵɵelementStart(33, "div", 19)(34, "button", 20);
557
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("errors")); });
558
- i0.ɵɵelementStart(35, "span", 21);
559
- i0.ɵɵtext(36, "Error Handling");
554
+ i0.ɵɵconditionalCreate(26, AgentPropertiesPanelComponent_Conditional_2_Conditional_26_Template, 3, 2, "mj-accordion-panel", 21);
555
+ i0.ɵɵelementStart(27, "mj-accordion-panel", 18);
556
+ i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Template_mj_accordion_panel_ExpandedChange_27_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("errors")); });
557
+ i0.ɵɵtemplate(28, AgentPropertiesPanelComponent_Conditional_2_ng_template_28_Template, 2, 0, "ng-template", 19)(29, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Template, 12, 5, "ng-template", 20);
560
558
  i0.ɵɵelementEnd();
561
- i0.ɵɵelement(37, "i", 10);
562
- i0.ɵɵelementEnd();
563
- i0.ɵɵconditionalCreate(38, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Template, 12, 5, "div", 22);
564
- i0.ɵɵelementEnd();
565
- i0.ɵɵconditionalCreate(39, AgentPropertiesPanelComponent_Conditional_2_Conditional_39_Template, 4, 0, "div", 23);
559
+ i0.ɵɵconditionalCreate(30, AgentPropertiesPanelComponent_Conditional_2_Conditional_30_Template, 4, 0, "div", 22);
566
560
  i0.ɵɵelementEnd();
567
561
  } if (rf & 2) {
568
562
  const ctx_r1 = i0.ɵɵnextContext();
@@ -583,22 +577,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Template(rf, ctx) { if (rf
583
577
  i0.ɵɵtextInterpolate(ctx_r1.Step.Status);
584
578
  i0.ɵɵadvance();
585
579
  i0.ɵɵconditional(ctx_r1.Step.StartingStep ? 18 : -1);
586
- i0.ɵɵadvance(6);
587
- i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("general") ? "fa-chevron-right" : "fa-chevron-down");
588
- i0.ɵɵadvance();
589
- i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("general") ? 25 : -1);
590
- i0.ɵɵadvance(5);
591
- i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("config") ? "fa-chevron-right" : "fa-chevron-down");
592
- i0.ɵɵadvance();
593
- i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("config") ? 31 : -1);
594
- i0.ɵɵadvance();
595
- i0.ɵɵconditional(ctx_r1.Step.StepType === "Action" || ctx_r1.showActionPicker ? 32 : -1);
596
- i0.ɵɵadvance(5);
597
- i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("errors") ? "fa-chevron-right" : "fa-chevron-down");
598
- i0.ɵɵadvance();
599
- i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("errors") ? 38 : -1);
580
+ i0.ɵɵadvance(2);
581
+ i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("general"));
582
+ i0.ɵɵadvance(3);
583
+ i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("config"));
584
+ i0.ɵɵadvance(3);
585
+ i0.ɵɵconditional(ctx_r1.Step.StepType === "Action" || ctx_r1.showActionPicker ? 26 : -1);
600
586
  i0.ɵɵadvance();
601
- i0.ɵɵconditional(!ctx_r1.ReadOnly ? 39 : -1);
587
+ i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("errors"));
588
+ i0.ɵɵadvance(3);
589
+ i0.ɵɵconditional(!ctx_r1.ReadOnly ? 30 : -1);
602
590
  } }
603
591
  function AgentPropertiesPanelComponent_Conditional_3_Conditional_19_Template(rf, ctx) { if (rf & 1) {
604
592
  i0.ɵɵelementStart(0, "span", 61);
@@ -609,8 +597,13 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_19_Template(rf,
609
597
  i0.ɵɵadvance();
610
598
  i0.ɵɵtextInterpolate1(" Priority: ", ctx_r1.PathEntity.Priority, " ");
611
599
  } }
612
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_26_Template(rf, ctx) { if (rf & 1) {
613
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 24)(2, "label");
600
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_22_Template(rf, ctx) { if (rf & 1) {
601
+ i0.ɵɵelementStart(0, "span");
602
+ i0.ɵɵtext(1, "Route");
603
+ i0.ɵɵelementEnd();
604
+ } }
605
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_23_Template(rf, ctx) { if (rf & 1) {
606
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
614
607
  i0.ɵɵtext(3, "From");
615
608
  i0.ɵɵelementEnd();
616
609
  i0.ɵɵelementStart(4, "div", 62);
@@ -632,16 +625,21 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_26_Template(rf,
632
625
  i0.ɵɵadvance(5);
633
626
  i0.ɵɵtextInterpolate1(" ", ctx_r1.destinationStepName, " ");
634
627
  } }
635
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_4_Template(rf, ctx) { if (rf & 1) {
628
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_25_Template(rf, ctx) { if (rf & 1) {
629
+ i0.ɵɵelementStart(0, "span");
630
+ i0.ɵɵtext(1, "Settings");
631
+ i0.ɵɵelementEnd();
632
+ } }
633
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_4_Template(rf, ctx) { if (rf & 1) {
636
634
  const _r22 = i0.ɵɵgetCurrentView();
637
635
  i0.ɵɵelementStart(0, "input", 68);
638
- i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathDescriptionChange(ctx_r1.InputValue($event))); });
636
+ i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathDescriptionChange(ctx_r1.InputValue($event))); });
639
637
  i0.ɵɵelementEnd();
640
638
  } if (rf & 2) {
641
639
  const ctx_r1 = i0.ɵɵnextContext(3);
642
640
  i0.ɵɵproperty("value", ctx_r1.PathEntity.Description || "");
643
641
  } }
644
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_5_Template(rf, ctx) { if (rf & 1) {
642
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_5_Template(rf, ctx) { if (rf & 1) {
645
643
  i0.ɵɵelementStart(0, "div", 26);
646
644
  i0.ɵɵtext(1);
647
645
  i0.ɵɵelementEnd();
@@ -650,46 +648,46 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_
650
648
  i0.ɵɵadvance();
651
649
  i0.ɵɵtextInterpolate1(" ", ctx_r1.PathEntity.Description || "\u2014", " ");
652
650
  } }
653
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_6_Template(rf, ctx) { if (rf & 1) {
651
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_6_Template(rf, ctx) { if (rf & 1) {
654
652
  i0.ɵɵelementStart(0, "span", 63);
655
653
  i0.ɵɵtext(1, "Displayed as a label on the connection line");
656
654
  i0.ɵɵelementEnd();
657
655
  } }
658
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_10_Template(rf, ctx) { if (rf & 1) {
656
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_10_Template(rf, ctx) { if (rf & 1) {
659
657
  const _r23 = i0.ɵɵgetCurrentView();
660
658
  i0.ɵɵelementStart(0, "mj-code-editor", 69);
661
- i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_10_Template_mj_code_editor_change_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathConditionChange($event)); });
659
+ i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_10_Template_mj_code_editor_change_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathConditionChange($event)); });
662
660
  i0.ɵɵelementEnd();
663
661
  } if (rf & 2) {
664
662
  const ctx_r1 = i0.ɵɵnextContext(3);
665
663
  i0.ɵɵproperty("value", ctx_r1.PathEntity.Condition || "")("readonly", false)("lineWrapping", true);
666
664
  } }
667
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_11_Template(rf, ctx) { if (rf & 1) {
665
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_11_Template(rf, ctx) { if (rf & 1) {
668
666
  i0.ɵɵelement(0, "mj-code-editor", 66);
669
667
  } if (rf & 2) {
670
668
  const ctx_r1 = i0.ɵɵnextContext(3);
671
669
  i0.ɵɵproperty("value", ctx_r1.PathEntity.Condition)("readonly", true)("lineWrapping", true);
672
670
  } }
673
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_12_Template(rf, ctx) { if (rf & 1) {
671
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_12_Template(rf, ctx) { if (rf & 1) {
674
672
  i0.ɵɵelementStart(0, "div", 62);
675
673
  i0.ɵɵtext(1, " No condition (always taken) ");
676
674
  i0.ɵɵelementEnd();
677
675
  } }
678
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_13_Template(rf, ctx) { if (rf & 1) {
676
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_13_Template(rf, ctx) { if (rf & 1) {
679
677
  i0.ɵɵelementStart(0, "span", 63);
680
678
  i0.ɵɵtext(1, " JavaScript expression evaluated at runtime. Leave empty for unconditional. ");
681
679
  i0.ɵɵelementEnd();
682
680
  } }
683
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_17_Template(rf, ctx) { if (rf & 1) {
681
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_17_Template(rf, ctx) { if (rf & 1) {
684
682
  const _r24 = i0.ɵɵgetCurrentView();
685
683
  i0.ɵɵelementStart(0, "input", 70);
686
- i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_17_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathPriorityChange(ctx_r1.NumericValue($event))); });
684
+ i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_17_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathPriorityChange(ctx_r1.NumericValue($event))); });
687
685
  i0.ɵɵelementEnd();
688
686
  } if (rf & 2) {
689
687
  const ctx_r1 = i0.ɵɵnextContext(3);
690
688
  i0.ɵɵproperty("value", ctx_r1.PathEntity.Priority);
691
689
  } }
692
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_18_Template(rf, ctx) { if (rf & 1) {
690
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_18_Template(rf, ctx) { if (rf & 1) {
693
691
  i0.ɵɵelementStart(0, "div", 26);
694
692
  i0.ɵɵtext(1);
695
693
  i0.ɵɵelementEnd();
@@ -698,27 +696,27 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_
698
696
  i0.ɵɵadvance();
699
697
  i0.ɵɵtextInterpolate(ctx_r1.PathEntity.Priority);
700
698
  } }
701
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Template(rf, ctx) { if (rf & 1) {
702
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 24)(2, "label");
699
+ function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Template(rf, ctx) { if (rf & 1) {
700
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
703
701
  i0.ɵɵtext(3, "Description");
704
702
  i0.ɵɵelementEnd();
705
- i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_4_Template, 1, 1, "input", 64);
706
- i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_5_Template, 2, 1, "div", 26);
707
- i0.ɵɵconditionalCreate(6, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_6_Template, 2, 0, "span", 63);
703
+ i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_4_Template, 1, 1, "input", 64);
704
+ i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_5_Template, 2, 1, "div", 26);
705
+ i0.ɵɵconditionalCreate(6, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_6_Template, 2, 0, "span", 63);
708
706
  i0.ɵɵelementEnd();
709
707
  i0.ɵɵelementStart(7, "div", 24)(8, "label");
710
708
  i0.ɵɵtext(9, "Condition");
711
709
  i0.ɵɵelementEnd();
712
- i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_10_Template, 1, 3, "mj-code-editor", 65);
713
- i0.ɵɵconditionalCreate(11, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_11_Template, 1, 3, "mj-code-editor", 66);
714
- i0.ɵɵconditionalCreate(12, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_12_Template, 2, 0, "div", 62);
715
- i0.ɵɵconditionalCreate(13, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_13_Template, 2, 0, "span", 63);
710
+ i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_10_Template, 1, 3, "mj-code-editor", 65);
711
+ i0.ɵɵconditionalCreate(11, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_11_Template, 1, 3, "mj-code-editor", 66);
712
+ i0.ɵɵconditionalCreate(12, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_12_Template, 2, 0, "div", 62);
713
+ i0.ɵɵconditionalCreate(13, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_13_Template, 2, 0, "span", 63);
716
714
  i0.ɵɵelementEnd();
717
715
  i0.ɵɵelementStart(14, "div", 24)(15, "label");
718
716
  i0.ɵɵtext(16, "Priority");
719
717
  i0.ɵɵelementEnd();
720
- i0.ɵɵconditionalCreate(17, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_17_Template, 1, 1, "input", 67);
721
- i0.ɵɵconditionalCreate(18, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_18_Template, 2, 1, "div", 26);
718
+ i0.ɵɵconditionalCreate(17, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_17_Template, 1, 1, "input", 67);
719
+ i0.ɵɵconditionalCreate(18, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_18_Template, 2, 1, "div", 26);
722
720
  i0.ɵɵelementStart(19, "span", 63);
723
721
  i0.ɵɵtext(20, "Higher priority paths are evaluated first when multiple paths leave a step.");
724
722
  i0.ɵɵelementEnd()()();
@@ -743,57 +741,47 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Template(rf,
743
741
  i0.ɵɵadvance();
744
742
  i0.ɵɵconditional(ctx_r1.ReadOnly ? 18 : -1);
745
743
  } }
746
- function AgentPropertiesPanelComponent_Conditional_3_Conditional_33_Template(rf, ctx) { if (rf & 1) {
744
+ function AgentPropertiesPanelComponent_Conditional_3_Conditional_27_Template(rf, ctx) { if (rf & 1) {
747
745
  const _r25 = i0.ɵɵgetCurrentView();
748
- i0.ɵɵelementStart(0, "div", 23)(1, "button", 53);
749
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Conditional_33_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDeletePath()); });
746
+ i0.ɵɵelementStart(0, "div", 22)(1, "button", 53);
747
+ i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Conditional_27_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDeletePath()); });
750
748
  i0.ɵɵelement(2, "i", 54);
751
749
  i0.ɵɵtext(3, " Delete Path ");
752
750
  i0.ɵɵelementEnd()();
753
751
  } }
754
752
  function AgentPropertiesPanelComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
755
753
  const _r21 = i0.ɵɵgetCurrentView();
756
- i0.ɵɵelementStart(0, "div", 55)(1, "div", 4)(2, "span", 5);
754
+ i0.ɵɵelementStart(0, "div", 55)(1, "div", 3)(2, "span", 4);
757
755
  i0.ɵɵtext(3, "PATH");
758
756
  i0.ɵɵelementEnd();
759
- i0.ɵɵelementStart(4, "button", 6);
757
+ i0.ɵɵelementStart(4, "button", 5);
760
758
  i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseRequested.emit()); });
761
- i0.ɵɵelement(5, "i", 7);
759
+ i0.ɵɵelement(5, "i", 6);
762
760
  i0.ɵɵelementEnd()();
763
- i0.ɵɵelementStart(6, "div", 8)(7, "div", 56);
761
+ i0.ɵɵelementStart(6, "div", 7)(7, "div", 56);
764
762
  i0.ɵɵelement(8, "i", 57);
765
763
  i0.ɵɵelementEnd();
766
- i0.ɵɵelementStart(9, "div", 11)(10, "span", 58)(11, "span", 59);
764
+ i0.ɵɵelementStart(9, "div", 10)(10, "span", 58)(11, "span", 59);
767
765
  i0.ɵɵtext(12);
768
766
  i0.ɵɵelementEnd();
769
767
  i0.ɵɵelement(13, "i", 60);
770
768
  i0.ɵɵelementStart(14, "span", 59);
771
769
  i0.ɵɵtext(15);
772
770
  i0.ɵɵelementEnd()();
773
- i0.ɵɵelementStart(16, "span", 13)(17, "span", 14);
771
+ i0.ɵɵelementStart(16, "span", 12)(17, "span", 13);
774
772
  i0.ɵɵtext(18);
775
773
  i0.ɵɵelementEnd();
776
774
  i0.ɵɵconditionalCreate(19, AgentPropertiesPanelComponent_Conditional_3_Conditional_19_Template, 2, 1, "span", 61);
777
775
  i0.ɵɵelementEnd()()()();
778
- i0.ɵɵelementStart(20, "div", 18)(21, "div", 19)(22, "button", 20);
779
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("path-overview")); });
780
- i0.ɵɵelementStart(23, "span", 21);
781
- i0.ɵɵtext(24, "Route");
776
+ i0.ɵɵelementStart(20, "div", 17)(21, "mj-accordion-panel", 18);
777
+ i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_3_Template_mj_accordion_panel_ExpandedChange_21_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("path-overview")); });
778
+ i0.ɵɵtemplate(22, AgentPropertiesPanelComponent_Conditional_3_ng_template_22_Template, 2, 0, "ng-template", 19)(23, AgentPropertiesPanelComponent_Conditional_3_ng_template_23_Template, 13, 2, "ng-template", 20);
782
779
  i0.ɵɵelementEnd();
783
- i0.ɵɵelement(25, "i", 10);
780
+ i0.ɵɵelementStart(24, "mj-accordion-panel", 18);
781
+ i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_3_Template_mj_accordion_panel_ExpandedChange_24_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("path-settings")); });
782
+ i0.ɵɵtemplate(25, AgentPropertiesPanelComponent_Conditional_3_ng_template_25_Template, 2, 0, "ng-template", 19)(26, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Template, 21, 9, "ng-template", 20);
784
783
  i0.ɵɵelementEnd();
785
- i0.ɵɵconditionalCreate(26, AgentPropertiesPanelComponent_Conditional_3_Conditional_26_Template, 13, 2, "div", 22);
786
- i0.ɵɵelementEnd();
787
- i0.ɵɵelementStart(27, "div", 19)(28, "button", 20);
788
- i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("path-settings")); });
789
- i0.ɵɵelementStart(29, "span", 21);
790
- i0.ɵɵtext(30, "Settings");
791
- i0.ɵɵelementEnd();
792
- i0.ɵɵelement(31, "i", 10);
793
- i0.ɵɵelementEnd();
794
- i0.ɵɵconditionalCreate(32, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Template, 21, 9, "div", 22);
795
- i0.ɵɵelementEnd();
796
- i0.ɵɵconditionalCreate(33, AgentPropertiesPanelComponent_Conditional_3_Conditional_33_Template, 4, 0, "div", 23);
784
+ i0.ɵɵconditionalCreate(27, AgentPropertiesPanelComponent_Conditional_3_Conditional_27_Template, 4, 0, "div", 22);
797
785
  i0.ɵɵelementEnd();
798
786
  } if (rf & 2) {
799
787
  const ctx_r1 = i0.ɵɵnextContext();
@@ -810,16 +798,12 @@ function AgentPropertiesPanelComponent_Conditional_3_Template(rf, ctx) { if (rf
810
798
  i0.ɵɵtextInterpolate1(" ", ctx_r1.isConditionalPath ? "Conditional" : "Always", " ");
811
799
  i0.ɵɵadvance();
812
800
  i0.ɵɵconditional(ctx_r1.PathEntity.Priority !== 0 ? 19 : -1);
813
- i0.ɵɵadvance(6);
814
- i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("path-overview") ? "fa-chevron-right" : "fa-chevron-down");
815
- i0.ɵɵadvance();
816
- i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("path-overview") ? 26 : -1);
817
- i0.ɵɵadvance(5);
818
- i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("path-settings") ? "fa-chevron-right" : "fa-chevron-down");
819
- i0.ɵɵadvance();
820
- i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("path-settings") ? 32 : -1);
821
- i0.ɵɵadvance();
822
- i0.ɵɵconditional(!ctx_r1.ReadOnly ? 33 : -1);
801
+ i0.ɵɵadvance(2);
802
+ i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("path-overview"));
803
+ i0.ɵɵadvance(3);
804
+ i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("path-settings"));
805
+ i0.ɵɵadvance(3);
806
+ i0.ɵɵconditional(!ctx_r1.ReadOnly ? 27 : -1);
823
807
  } }
824
808
  /** Step type accent color mapping */
825
809
  const STEP_TYPE_COLORS = {
@@ -1091,11 +1075,11 @@ export class AgentPropertiesPanelComponent {
1091
1075
  }
1092
1076
  }
1093
1077
  static ɵfac = function AgentPropertiesPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AgentPropertiesPanelComponent)(); };
1094
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentPropertiesPanelComponent, selectors: [["mj-agent-properties-panel"]], inputs: { Step: "Step", SelectedConnection: "SelectedConnection", PathEntity: "PathEntity", ReadOnly: "ReadOnly", Actions: "Actions", Prompts: "Prompts", Agents: "Agents", AllSteps: "AllSteps" }, outputs: { StepChanged: "StepChanged", PathChanged: "PathChanged", DeleteStepRequested: "DeleteStepRequested", DeletePathRequested: "DeletePathRequested", CloseRequested: "CloseRequested" }, standalone: false, decls: 4, vars: 3, consts: [[1, "mj-agent-props"], [1, "mj-agent-props-empty"], [1, "fa-solid", "fa-mouse-pointer"], [1, "mj-agent-props-header", "mj-agent-props-header--step"], [1, "mj-agent-props-header-top"], [1, "mj-agent-props-header-label"], ["title", "Close", 1, "mj-agent-props-close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "mj-agent-props-identity"], [1, "mj-agent-props-identity-icon"], [1, "fa-solid", 3, "ngClass"], [1, "mj-agent-props-identity-info"], [1, "mj-agent-props-identity-name"], [1, "mj-agent-props-identity-meta"], [1, "mj-agent-props-type-pill"], [1, "mj-agent-props-status-dot"], [1, "mj-agent-props-status-label"], [1, "mj-agent-props-start-badge"], [1, "mj-agent-props-content"], [1, "mj-agent-props-section"], [1, "mj-agent-props-section-header", 3, "click"], [1, "mj-agent-props-section-title"], [1, "mj-agent-props-section-body"], [1, "mj-agent-props-section", "mj-agent-props-danger"], [1, "mj-agent-props-field"], ["type", "text", "placeholder", "Step name...", 1, "mj-agent-props-input", 3, "value"], [1, "mj-agent-props-readonly-value"], ["placeholder", "Optional description...", "rows", "2", 1, "mj-agent-props-input", "mj-agent-props-textarea", 3, "value"], [1, "mj-agent-props-input", 3, "value"], [1, "mj-agent-props-field", "mj-agent-props-field--row"], ["type", "text", "placeholder", "Step name...", 1, "mj-agent-props-input", 3, "input", "value"], ["placeholder", "Optional description...", "rows", "2", 1, "mj-agent-props-input", "mj-agent-props-textarea", 3, "input", "value"], [1, "mj-agent-props-input", 3, "change", "value"], ["value", "Active"], ["value", "Disabled"], ["value", "Pending"], [1, "mj-agent-props-checkbox-label"], ["type", "checkbox", 3, "change", "checked"], ["value", "Action"], ["value", "Prompt"], ["value", "Sub-Agent"], ["value", ""], [3, "value"], ["language", "json", "setup", "minimal", 3, "change", "value", "readonly", "lineWrapping"], ["language", "json", "setup", "minimal", "placeholder", "Enter JSON input mapping...", 3, "change", "value", "readonly", "lineWrapping"], ["language", "json", "setup", "minimal", "placeholder", "Enter JSON output mapping...", 3, "change", "value", "readonly", "lineWrapping"], ["type", "number", "min", "1", 1, "mj-agent-props-input", 3, "value"], ["value", "fail"], ["value", "continue"], ["value", "retry"], ["type", "number", "min", "0", "max", "10", 1, "mj-agent-props-input", 3, "value"], ["type", "number", "min", "0", "max", "10", 1, "mj-agent-props-input", 3, "input", "value"], ["type", "number", "min", "1", 1, "mj-agent-props-input", 3, "input", "value"], [1, "mj-agent-props-delete-btn", 3, "click"], [1, "fa-solid", "fa-trash-can"], [1, "mj-agent-props-header", "mj-agent-props-header--path"], [1, "mj-agent-props-identity-icon", "mj-agent-props-identity-icon--path"], [1, "fa-solid", "fa-arrow-right"], [1, "mj-agent-props-path-route"], [1, "mj-agent-props-path-step-name"], [1, "fa-solid", "fa-arrow-right", "mj-agent-props-path-arrow"], [1, "mj-agent-props-priority-badge"], [1, "mj-agent-props-readonly-value", "mj-agent-props-readonly-value--muted"], [1, "mj-agent-props-hint"], ["type", "text", "placeholder", "Path label...", 1, "mj-agent-props-input", 3, "value"], ["language", "javascript", "setup", "minimal", "placeholder", "e.g. payload.status === 'active'", 3, "value", "readonly", "lineWrapping"], ["language", "javascript", "setup", "minimal", 3, "value", "readonly", "lineWrapping"], ["type", "number", "min", "-100", "max", "100", 1, "mj-agent-props-input", 3, "value"], ["type", "text", "placeholder", "Path label...", 1, "mj-agent-props-input", 3, "input", "value"], ["language", "javascript", "setup", "minimal", "placeholder", "e.g. payload.status === 'active'", 3, "change", "value", "readonly", "lineWrapping"], ["type", "number", "min", "-100", "max", "100", 1, "mj-agent-props-input", 3, "input", "value"]], template: function AgentPropertiesPanelComponent_Template(rf, ctx) { if (rf & 1) {
1078
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentPropertiesPanelComponent, selectors: [["mj-agent-properties-panel"]], inputs: { Step: "Step", SelectedConnection: "SelectedConnection", PathEntity: "PathEntity", ReadOnly: "ReadOnly", Actions: "Actions", Prompts: "Prompts", Agents: "Agents", AllSteps: "AllSteps" }, outputs: { StepChanged: "StepChanged", PathChanged: "PathChanged", DeleteStepRequested: "DeleteStepRequested", DeletePathRequested: "DeletePathRequested", CloseRequested: "CloseRequested" }, standalone: false, decls: 4, vars: 3, consts: [[1, "mj-agent-props"], ["Icon", "fa-solid fa-arrow-pointer", "Title", "No selection", "Message", "Select a step or connection to view its properties", 1, "mj-agent-props-empty"], [1, "mj-agent-props-header", "mj-agent-props-header--step"], [1, "mj-agent-props-header-top"], [1, "mj-agent-props-header-label"], ["title", "Close", 1, "mj-agent-props-close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "mj-agent-props-identity"], [1, "mj-agent-props-identity-icon"], [1, "fa-solid", 3, "ngClass"], [1, "mj-agent-props-identity-info"], [1, "mj-agent-props-identity-name"], [1, "mj-agent-props-identity-meta"], [1, "mj-agent-props-type-pill"], [1, "mj-agent-props-status-dot"], [1, "mj-agent-props-status-label"], [1, "mj-agent-props-start-badge"], [1, "mj-agent-props-content"], ["Size", "sm", 1, "mj-agent-props-accordion", 3, "ExpandedChange", "FlushBody", "Expanded"], ["mjAccordionTitle", ""], ["mjAccordionBody", ""], ["Size", "sm", 1, "mj-agent-props-accordion", 3, "FlushBody", "Expanded"], [1, "mj-agent-props-section", "mj-agent-props-danger"], [1, "mj-agent-props-section-body"], [1, "mj-agent-props-field"], ["type", "text", "placeholder", "Step name...", 1, "mj-agent-props-input", 3, "value"], [1, "mj-agent-props-readonly-value"], ["placeholder", "Optional description...", "rows", "2", 1, "mj-agent-props-input", "mj-agent-props-textarea", 3, "value"], [1, "mj-agent-props-input", 3, "value"], [1, "mj-agent-props-field", "mj-agent-props-field--row"], ["type", "text", "placeholder", "Step name...", 1, "mj-agent-props-input", 3, "input", "value"], ["placeholder", "Optional description...", "rows", "2", 1, "mj-agent-props-input", "mj-agent-props-textarea", 3, "input", "value"], [1, "mj-agent-props-input", 3, "change", "value"], ["value", "Active"], ["value", "Disabled"], ["value", "Pending"], [1, "mj-agent-props-checkbox-label"], ["type", "checkbox", 3, "change", "checked"], ["value", "Action"], ["value", "Prompt"], ["value", "Sub-Agent"], ["value", ""], [3, "value"], ["language", "json", "setup", "minimal", 3, "change", "value", "readonly", "lineWrapping"], ["language", "json", "setup", "minimal", "placeholder", "Enter JSON input mapping...", 3, "change", "value", "readonly", "lineWrapping"], ["language", "json", "setup", "minimal", "placeholder", "Enter JSON output mapping...", 3, "change", "value", "readonly", "lineWrapping"], ["type", "number", "min", "1", 1, "mj-agent-props-input", 3, "value"], ["value", "fail"], ["value", "continue"], ["value", "retry"], ["type", "number", "min", "0", "max", "10", 1, "mj-agent-props-input", 3, "value"], ["type", "number", "min", "0", "max", "10", 1, "mj-agent-props-input", 3, "input", "value"], ["type", "number", "min", "1", 1, "mj-agent-props-input", 3, "input", "value"], [1, "mj-agent-props-delete-btn", 3, "click"], [1, "fa-solid", "fa-trash-can"], [1, "mj-agent-props-header", "mj-agent-props-header--path"], [1, "mj-agent-props-identity-icon", "mj-agent-props-identity-icon--path"], [1, "fa-solid", "fa-arrow-right"], [1, "mj-agent-props-path-route"], [1, "mj-agent-props-path-step-name"], [1, "fa-solid", "fa-arrow-right", "mj-agent-props-path-arrow"], [1, "mj-agent-props-priority-badge"], [1, "mj-agent-props-readonly-value", "mj-agent-props-readonly-value--muted"], [1, "mj-agent-props-hint"], ["type", "text", "placeholder", "Path label...", 1, "mj-agent-props-input", 3, "value"], ["language", "javascript", "setup", "minimal", "placeholder", "e.g. payload.status === 'active'", 3, "value", "readonly", "lineWrapping"], ["language", "javascript", "setup", "minimal", 3, "value", "readonly", "lineWrapping"], ["type", "number", "min", "-100", "max", "100", 1, "mj-agent-props-input", 3, "value"], ["type", "text", "placeholder", "Path label...", 1, "mj-agent-props-input", 3, "input", "value"], ["language", "javascript", "setup", "minimal", "placeholder", "e.g. payload.status === 'active'", 3, "change", "value", "readonly", "lineWrapping"], ["type", "number", "min", "-100", "max", "100", 1, "mj-agent-props-input", 3, "input", "value"]], template: function AgentPropertiesPanelComponent_Template(rf, ctx) { if (rf & 1) {
1095
1079
  i0.ɵɵelementStart(0, "div", 0);
1096
- i0.ɵɵconditionalCreate(1, AgentPropertiesPanelComponent_Conditional_1_Template, 4, 0, "div", 1);
1097
- i0.ɵɵconditionalCreate(2, AgentPropertiesPanelComponent_Conditional_2_Template, 40, 23);
1098
- i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_3_Template, 34, 17);
1080
+ i0.ɵɵconditionalCreate(1, AgentPropertiesPanelComponent_Conditional_1_Template, 1, 0, "mj-empty-state", 1);
1081
+ i0.ɵɵconditionalCreate(2, AgentPropertiesPanelComponent_Conditional_2_Template, 31, 23);
1082
+ i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_3_Template, 28, 17);
1099
1083
  i0.ɵɵelementEnd();
1100
1084
  } if (rf & 2) {
1101
1085
  i0.ɵɵadvance();
@@ -1104,11 +1088,11 @@ export class AgentPropertiesPanelComponent {
1104
1088
  i0.ɵɵconditional(ctx.isStepSelected ? 2 : -1);
1105
1089
  i0.ɵɵadvance();
1106
1090
  i0.ɵɵconditional(ctx.isConnectionSelected ? 3 : -1);
1107
- } }, dependencies: [i1.NgClass, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i3.CodeEditorComponent], styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n.mj-agent-props-section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 14px;\n border: none;\n background: none;\n cursor: pointer;\n transition: background-color 0.1s ease;\n}\n\n.mj-agent-props-section-header:hover {\n background: var(--mj-bg-page);\n}\n\n.mj-agent-props-section-header i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: transform 0.15s ease;\n}\n\n.mj-agent-props-section-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.mj-agent-props-section-body {\n padding: 0 14px 12px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"], encapsulation: 2 });
1091
+ } }, dependencies: [i1.NgClass, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i3.CodeEditorComponent, i4.MJEmptyStateComponent, i4.MJAccordionPanelComponent, i4.MJAccordionTitleDirective, i4.MJAccordionBodyDirective], styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n/* Section headers are now <mj-accordion-panel>; the bespoke section-header /\n section-title chrome was removed so the accordion owns the title styling. */\n.mj-agent-props-section-body {\n padding: 12px 14px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"], encapsulation: 2 });
1108
1092
  }
1109
1093
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgentPropertiesPanelComponent, [{
1110
1094
  type: Component,
1111
- args: [{ standalone: false, selector: 'mj-agent-properties-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"mj-agent-props\">\n\n <!-- Empty State -->\n @if (!isStepSelected && !isConnectionSelected) {\n <div class=\"mj-agent-props-empty\">\n <i class=\"fa-solid fa-mouse-pointer\"></i>\n <p>Select a step or connection to view its properties</p>\n </div>\n }\n\n <!-- ============================================ -->\n <!-- STEP PROPERTIES -->\n <!-- ============================================ -->\n @if (isStepSelected) {\n <!-- Step Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--step\"\n [style.border-left-color]=\"stepTypeColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">STEP</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon\" [style.background]=\"stepTypeColor\">\n <i class=\"fa-solid\" [ngClass]=\"stepTypeIcon\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-identity-name\">{{ Step!.Name }}</span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\" [style.color]=\"stepTypeColor\"\n [style.background]=\"stepTypeColor + '18'\">{{ stepTypeLabel }}</span>\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n <span class=\"mj-agent-props-status-label\">{{ Step!.Status }}</span>\n @if (Step!.StartingStep) {\n <span class=\"mj-agent-props-start-badge\">Start</span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 General Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('general')\">\n <span class=\"mj-agent-props-section-title\">General</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('general') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('general')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Name</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"Step!.Name\"\n (input)=\"OnNameChange(InputValue($event))\"\n placeholder=\"Step name...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.Name }}</div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <textarea [value]=\"Step!.Description || ''\"\n (input)=\"OnDescriptionChange(InputValue($event))\"\n placeholder=\"Optional description...\" rows=\"2\"\n class=\"mj-agent-props-input mj-agent-props-textarea\"></textarea>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.Description || '\u2014' }}\n </div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Status</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.Status\"\n (change)=\"OnStatusChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Active\">Active</option>\n <option value=\"Disabled\">Disabled</option>\n <option value=\"Pending\">Pending</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n {{ Step!.Status }}\n </div>\n }\n </div>\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-field mj-agent-props-field--row\">\n <label class=\"mj-agent-props-checkbox-label\">\n <input type=\"checkbox\" [checked]=\"Step!.StartingStep\"\n (change)=\"OnStartingStepChange(CheckedValue($event))\">\n Starting Step\n </label>\n </div>\n }\n @if (ReadOnly && Step!.StartingStep) {\n <div class=\"mj-agent-props-field\">\n <label>Starting Step</label>\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-start-badge\">Yes \u2014 this is the entry point</span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n <!-- \u2500\u2500 Configuration Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('config')\">\n <span class=\"mj-agent-props-section-title\">Configuration</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('config') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('config')) {\n <div class=\"mj-agent-props-section-body\">\n <!-- Loop Body Type (ForEach / While) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Body Type</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.LoopBodyType || 'Action'\"\n (change)=\"OnLoopBodyTypeChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Action\">Action</option>\n <option value=\"Prompt\">Prompt</option>\n <option value=\"Sub-Agent\">Sub-Agent</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.LoopBodyType || 'Action' }}\n </div>\n }\n </div>\n }\n <!-- Action Picker -->\n @if (showActionPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Action</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.ActionID || ''\"\n (change)=\"OnActionChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Action --</option>\n @for (action of Actions; track action) {\n <option [value]=\"action.ID\">{{ action.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedActionName }}</div>\n }\n </div>\n }\n <!-- Prompt Picker -->\n @if (showPromptPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Prompt</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.PromptID || ''\"\n (change)=\"OnPromptChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Prompt --</option>\n @for (prompt of Prompts; track prompt) {\n <option [value]=\"prompt.ID\">{{ prompt.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedPromptName }}</div>\n }\n </div>\n }\n <!-- Sub-Agent Picker -->\n @if (showAgentPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Sub-Agent</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.SubAgentID || ''\"\n (change)=\"OnSubAgentChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Agent --</option>\n @for (agent of Agents; track agent) {\n <option [value]=\"agent.ID\">{{ agent.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedAgentName }}</div>\n }\n </div>\n }\n <!-- Loop Configuration (JSON) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Configuration</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.Configuration)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n (change)=\"OnConfigurationChange($any($event))\">\n </mj-code-editor>\n </div>\n }\n </div>\n }\n </div>\n <!-- \u2500\u2500 Data Mapping Section (Action steps) \u2500\u2500\u2500 -->\n @if (Step!.StepType === 'Action' || showActionPicker) {\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('mapping')\">\n <span class=\"mj-agent-props-section-title\">Data Mapping</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('mapping') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('mapping')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Input Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionInputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON input mapping...\"\n (change)=\"OnInputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Output Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionOutputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON output mapping...\"\n (change)=\"OnOutputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n }\n <!-- \u2500\u2500 Error Handling Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('errors')\">\n <span class=\"mj-agent-props-section-title\">Error Handling</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('errors') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('errors')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>On Error</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.OnErrorBehavior\"\n (change)=\"OnErrorBehaviorChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"fail\">Fail (stop flow)</option>\n <option value=\"continue\">Continue (ignore error)</option>\n <option value=\"retry\">Retry</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.OnErrorBehavior === 'fail' ? 'Fail (stop flow)' :\n Step!.OnErrorBehavior === 'continue' ? 'Continue (ignore error)' : 'Retry' }}\n </div>\n }\n </div>\n @if (Step!.OnErrorBehavior === 'retry') {\n <div class=\"mj-agent-props-field\">\n <label>Retry Count</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.RetryCount\" min=\"0\" max=\"10\"\n (input)=\"OnRetryCountChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.RetryCount }}</div>\n }\n </div>\n }\n <div class=\"mj-agent-props-field\">\n <label>Timeout (seconds)</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.TimeoutSeconds\" min=\"1\"\n (input)=\"OnTimeoutChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.TimeoutSeconds }}s</div>\n }\n </div>\n </div>\n }\n </div>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeleteStep()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Step\n </button>\n </div>\n }\n </div>\n }\n\n <!-- ============================================ -->\n <!-- PATH PROPERTIES -->\n <!-- ============================================ -->\n @if (isConnectionSelected) {\n <!-- Path Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--path\"\n [style.border-left-color]=\"pathAccentColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">PATH</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Path identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon mj-agent-props-identity-icon--path\"\n [style.background]=\"pathAccentColor\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-path-route\">\n <span class=\"mj-agent-props-path-step-name\">{{ originStepName }}</span>\n <i class=\"fa-solid fa-arrow-right mj-agent-props-path-arrow\"></i>\n <span class=\"mj-agent-props-path-step-name\">{{ destinationStepName }}</span>\n </span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\"\n [style.color]=\"pathAccentColor\"\n [style.background]=\"pathAccentColor + '18'\">\n {{ isConditionalPath ? 'Conditional' : 'Always' }}\n </span>\n @if (PathEntity!.Priority !== 0) {\n <span class=\"mj-agent-props-priority-badge\">\n Priority: {{ PathEntity!.Priority }}\n </span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 Overview Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('path-overview')\">\n <span class=\"mj-agent-props-section-title\">Route</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('path-overview') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('path-overview')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>From</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ originStepName }}\n </div>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>To</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ destinationStepName }}\n </div>\n </div>\n <span class=\"mj-agent-props-hint\">To change the route, rewire the connection on the canvas.</span>\n </div>\n }\n </div>\n <!-- \u2500\u2500 Path Settings Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('path-settings')\">\n <span class=\"mj-agent-props-section-title\">Settings</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('path-settings') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('path-settings')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"PathEntity!.Description || ''\"\n (input)=\"OnPathDescriptionChange(InputValue($event))\"\n placeholder=\"Path label...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ PathEntity!.Description || '\u2014' }}\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">Displayed as a label on the connection line</span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Condition</label>\n @if (!ReadOnly) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition || ''\"\n language=\"javascript\"\n [readonly]=\"false\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"e.g. payload.status === 'active'\"\n (change)=\"OnPathConditionChange($any($event))\">\n </mj-code-editor>\n }\n @if (ReadOnly && PathEntity!.Condition) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition\"\n language=\"javascript\"\n [readonly]=\"true\"\n setup=\"minimal\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n }\n @if (ReadOnly && !PathEntity!.Condition) {\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n No condition (always taken)\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">\n JavaScript expression evaluated at runtime. Leave empty for unconditional.\n </span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Priority</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"PathEntity!.Priority\" min=\"-100\" max=\"100\"\n (input)=\"OnPathPriorityChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ PathEntity!.Priority }}</div>\n }\n <span class=\"mj-agent-props-hint\">Higher priority paths are evaluated first when multiple paths leave a step.</span>\n </div>\n </div>\n }\n </div>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeletePath()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Path\n </button>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n.mj-agent-props-section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 14px;\n border: none;\n background: none;\n cursor: pointer;\n transition: background-color 0.1s ease;\n}\n\n.mj-agent-props-section-header:hover {\n background: var(--mj-bg-page);\n}\n\n.mj-agent-props-section-header i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: transform 0.15s ease;\n}\n\n.mj-agent-props-section-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.mj-agent-props-section-body {\n padding: 0 14px 12px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"] }]
1095
+ args: [{ standalone: false, selector: 'mj-agent-properties-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"mj-agent-props\">\n\n <!-- Empty State -->\n @if (!isStepSelected && !isConnectionSelected) {\n <mj-empty-state class=\"mj-agent-props-empty\"\n Icon=\"fa-solid fa-arrow-pointer\"\n Title=\"No selection\"\n Message=\"Select a step or connection to view its properties\" />\n }\n\n <!-- ============================================ -->\n <!-- STEP PROPERTIES -->\n <!-- ============================================ -->\n @if (isStepSelected) {\n <!-- Step Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--step\"\n [style.border-left-color]=\"stepTypeColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">STEP</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon\" [style.background]=\"stepTypeColor\">\n <i class=\"fa-solid\" [ngClass]=\"stepTypeIcon\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-identity-name\">{{ Step!.Name }}</span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\" [style.color]=\"stepTypeColor\"\n [style.background]=\"stepTypeColor + '18'\">{{ stepTypeLabel }}</span>\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n <span class=\"mj-agent-props-status-label\">{{ Step!.Status }}</span>\n @if (Step!.StartingStep) {\n <span class=\"mj-agent-props-start-badge\">Start</span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 General Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('general')\" (ExpandedChange)=\"ToggleSection('general')\">\n <ng-template mjAccordionTitle><span>General</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Name</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"Step!.Name\"\n (input)=\"OnNameChange(InputValue($event))\"\n placeholder=\"Step name...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.Name }}</div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <textarea [value]=\"Step!.Description || ''\"\n (input)=\"OnDescriptionChange(InputValue($event))\"\n placeholder=\"Optional description...\" rows=\"2\"\n class=\"mj-agent-props-input mj-agent-props-textarea\"></textarea>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.Description || '\u2014' }}\n </div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Status</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.Status\"\n (change)=\"OnStatusChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Active\">Active</option>\n <option value=\"Disabled\">Disabled</option>\n <option value=\"Pending\">Pending</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n {{ Step!.Status }}\n </div>\n }\n </div>\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-field mj-agent-props-field--row\">\n <label class=\"mj-agent-props-checkbox-label\">\n <input type=\"checkbox\" [checked]=\"Step!.StartingStep\"\n (change)=\"OnStartingStepChange(CheckedValue($event))\">\n Starting Step\n </label>\n </div>\n }\n @if (ReadOnly && Step!.StartingStep) {\n <div class=\"mj-agent-props-field\">\n <label>Starting Step</label>\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-start-badge\">Yes \u2014 this is the entry point</span>\n </div>\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Configuration Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('config')\" (ExpandedChange)=\"ToggleSection('config')\">\n <ng-template mjAccordionTitle><span>Configuration</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <!-- Loop Body Type (ForEach / While) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Body Type</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.LoopBodyType || 'Action'\"\n (change)=\"OnLoopBodyTypeChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Action\">Action</option>\n <option value=\"Prompt\">Prompt</option>\n <option value=\"Sub-Agent\">Sub-Agent</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.LoopBodyType || 'Action' }}\n </div>\n }\n </div>\n }\n <!-- Action Picker -->\n @if (showActionPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Action</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.ActionID || ''\"\n (change)=\"OnActionChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Action --</option>\n @for (action of Actions; track action) {\n <option [value]=\"action.ID\">{{ action.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedActionName }}</div>\n }\n </div>\n }\n <!-- Prompt Picker -->\n @if (showPromptPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Prompt</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.PromptID || ''\"\n (change)=\"OnPromptChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Prompt --</option>\n @for (prompt of Prompts; track prompt) {\n <option [value]=\"prompt.ID\">{{ prompt.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedPromptName }}</div>\n }\n </div>\n }\n <!-- Sub-Agent Picker -->\n @if (showAgentPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Sub-Agent</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.SubAgentID || ''\"\n (change)=\"OnSubAgentChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Agent --</option>\n @for (agent of Agents; track agent) {\n <option [value]=\"agent.ID\">{{ agent.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedAgentName }}</div>\n }\n </div>\n }\n <!-- Loop Configuration (JSON) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Configuration</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.Configuration)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n (change)=\"OnConfigurationChange($any($event))\">\n </mj-code-editor>\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Data Mapping Section (Action steps) \u2500\u2500\u2500 -->\n @if (Step!.StepType === 'Action' || showActionPicker) {\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('mapping')\" (ExpandedChange)=\"ToggleSection('mapping')\">\n <ng-template mjAccordionTitle><span>Data Mapping</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Input Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionInputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON input mapping...\"\n (change)=\"OnInputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Output Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionOutputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON output mapping...\"\n (change)=\"OnOutputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n </div>\n </ng-template>\n </mj-accordion-panel>\n }\n <!-- \u2500\u2500 Error Handling Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('errors')\" (ExpandedChange)=\"ToggleSection('errors')\">\n <ng-template mjAccordionTitle><span>Error Handling</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>On Error</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.OnErrorBehavior\"\n (change)=\"OnErrorBehaviorChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"fail\">Fail (stop flow)</option>\n <option value=\"continue\">Continue (ignore error)</option>\n <option value=\"retry\">Retry</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.OnErrorBehavior === 'fail' ? 'Fail (stop flow)' :\n Step!.OnErrorBehavior === 'continue' ? 'Continue (ignore error)' : 'Retry' }}\n </div>\n }\n </div>\n @if (Step!.OnErrorBehavior === 'retry') {\n <div class=\"mj-agent-props-field\">\n <label>Retry Count</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.RetryCount\" min=\"0\" max=\"10\"\n (input)=\"OnRetryCountChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.RetryCount }}</div>\n }\n </div>\n }\n <div class=\"mj-agent-props-field\">\n <label>Timeout (seconds)</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.TimeoutSeconds\" min=\"1\"\n (input)=\"OnTimeoutChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.TimeoutSeconds }}s</div>\n }\n </div>\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeleteStep()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Step\n </button>\n </div>\n }\n </div>\n }\n\n <!-- ============================================ -->\n <!-- PATH PROPERTIES -->\n <!-- ============================================ -->\n @if (isConnectionSelected) {\n <!-- Path Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--path\"\n [style.border-left-color]=\"pathAccentColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">PATH</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Path identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon mj-agent-props-identity-icon--path\"\n [style.background]=\"pathAccentColor\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-path-route\">\n <span class=\"mj-agent-props-path-step-name\">{{ originStepName }}</span>\n <i class=\"fa-solid fa-arrow-right mj-agent-props-path-arrow\"></i>\n <span class=\"mj-agent-props-path-step-name\">{{ destinationStepName }}</span>\n </span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\"\n [style.color]=\"pathAccentColor\"\n [style.background]=\"pathAccentColor + '18'\">\n {{ isConditionalPath ? 'Conditional' : 'Always' }}\n </span>\n @if (PathEntity!.Priority !== 0) {\n <span class=\"mj-agent-props-priority-badge\">\n Priority: {{ PathEntity!.Priority }}\n </span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 Overview Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('path-overview')\" (ExpandedChange)=\"ToggleSection('path-overview')\">\n <ng-template mjAccordionTitle><span>Route</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>From</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ originStepName }}\n </div>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>To</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ destinationStepName }}\n </div>\n </div>\n <span class=\"mj-agent-props-hint\">To change the route, rewire the connection on the canvas.</span>\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Path Settings Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('path-settings')\" (ExpandedChange)=\"ToggleSection('path-settings')\">\n <ng-template mjAccordionTitle><span>Settings</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"PathEntity!.Description || ''\"\n (input)=\"OnPathDescriptionChange(InputValue($event))\"\n placeholder=\"Path label...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ PathEntity!.Description || '\u2014' }}\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">Displayed as a label on the connection line</span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Condition</label>\n @if (!ReadOnly) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition || ''\"\n language=\"javascript\"\n [readonly]=\"false\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"e.g. payload.status === 'active'\"\n (change)=\"OnPathConditionChange($any($event))\">\n </mj-code-editor>\n }\n @if (ReadOnly && PathEntity!.Condition) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition\"\n language=\"javascript\"\n [readonly]=\"true\"\n setup=\"minimal\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n }\n @if (ReadOnly && !PathEntity!.Condition) {\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n No condition (always taken)\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">\n JavaScript expression evaluated at runtime. Leave empty for unconditional.\n </span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Priority</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"PathEntity!.Priority\" min=\"-100\" max=\"100\"\n (input)=\"OnPathPriorityChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ PathEntity!.Priority }}</div>\n }\n <span class=\"mj-agent-props-hint\">Higher priority paths are evaluated first when multiple paths leave a step.</span>\n </div>\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeletePath()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Path\n </button>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n/* Section headers are now <mj-accordion-panel>; the bespoke section-header /\n section-title chrome was removed so the accordion owns the title styling. */\n.mj-agent-props-section-body {\n padding: 12px 14px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"] }]
1112
1096
  }], null, { Step: [{
1113
1097
  type: Input
1114
1098
  }], SelectedConnection: [{