@memberjunction/ng-conversations 5.38.0 → 5.40.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,73 +4,66 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@memberjunction/ng-shared-generic";
5
5
  import * as i2 from "../message/message-input.component";
6
6
  function ConversationEmptyStateComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
7
- const _r1 = i0.ɵɵgetCurrentView();
8
- i0.ɵɵelementStart(0, "button", 10);
9
- i0.ɵɵlistener("click", function ConversationEmptyStateComponent_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.sidebarToggleClicked.emit()); });
10
- i0.ɵɵelement(1, "i", 11);
7
+ i0.ɵɵelementStart(0, "div", 1);
8
+ i0.ɵɵelement(1, "mj-loading", 9);
11
9
  i0.ɵɵelementEnd();
12
10
  } }
13
- function ConversationEmptyStateComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
14
- i0.ɵɵelementStart(0, "div", 2);
15
- i0.ɵɵelement(1, "mj-loading", 12);
11
+ function ConversationEmptyStateComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelementStart(0, "div", 3)(1, "div", 10);
13
+ i0.ɵɵelement(2, "i", 11);
16
14
  i0.ɵɵelementEnd();
17
- } }
18
- function ConversationEmptyStateComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "div", 4)(1, "div", 13);
20
- i0.ɵɵelement(2, "i", 14);
21
- i0.ɵɵelementEnd();
22
- i0.ɵɵelementStart(3, "h1", 15);
15
+ i0.ɵɵelementStart(3, "h1", 12);
23
16
  i0.ɵɵtext(4, "Welcome to Conversations");
24
17
  i0.ɵɵelementEnd();
25
- i0.ɵɵelementStart(5, "p", 16);
18
+ i0.ɵɵelementStart(5, "p", 13);
26
19
  i0.ɵɵtext(6, " Start a new conversation by typing a message below, or choose a suggested prompt to get started. ");
27
20
  i0.ɵɵelementEnd()();
28
21
  } }
29
- function ConversationEmptyStateComponent_Conditional_5_For_3_Template(rf, ctx) { if (rf & 1) {
30
- const _r3 = i0.ɵɵgetCurrentView();
31
- i0.ɵɵelementStart(0, "div", 19);
32
- i0.ɵɵlistener("click", function ConversationEmptyStateComponent_Conditional_5_For_3_Template_div_click_0_listener() { const prompt_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSuggestedPromptClicked(prompt_r4.prompt)); });
33
- i0.ɵɵelementStart(1, "div", 20);
22
+ function ConversationEmptyStateComponent_Conditional_4_For_3_Template(rf, ctx) { if (rf & 1) {
23
+ const _r1 = i0.ɵɵgetCurrentView();
24
+ i0.ɵɵelementStart(0, "div", 16);
25
+ i0.ɵɵlistener("click", function ConversationEmptyStateComponent_Conditional_4_For_3_Template_div_click_0_listener() { const prompt_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onSuggestedPromptClicked(prompt_r2.prompt)); });
26
+ i0.ɵɵelementStart(1, "div", 17);
34
27
  i0.ɵɵelement(2, "i");
35
28
  i0.ɵɵelementEnd();
36
- i0.ɵɵelementStart(3, "div", 21)(4, "div", 22);
29
+ i0.ɵɵelementStart(3, "div", 18)(4, "div", 19);
37
30
  i0.ɵɵtext(5);
38
31
  i0.ɵɵelementEnd();
39
- i0.ɵɵelementStart(6, "div", 23);
32
+ i0.ɵɵelementStart(6, "div", 20);
40
33
  i0.ɵɵtext(7);
41
34
  i0.ɵɵelementEnd()()();
42
35
  } if (rf & 2) {
43
- const prompt_r4 = ctx.$implicit;
44
- const ctx_r1 = i0.ɵɵnextContext(2);
45
- i0.ɵɵclassProp("disabled", ctx_r1.disabled);
36
+ const prompt_r2 = ctx.$implicit;
37
+ const ctx_r2 = i0.ɵɵnextContext(2);
38
+ i0.ɵɵclassProp("disabled", ctx_r2.disabled);
46
39
  i0.ɵɵadvance(2);
47
- i0.ɵɵclassMap(i0.ɵɵinterpolate1("fa-solid ", prompt_r4.icon));
40
+ i0.ɵɵclassMap(prompt_r2.icon);
48
41
  i0.ɵɵadvance(3);
49
- i0.ɵɵtextInterpolate(prompt_r4.title);
42
+ i0.ɵɵtextInterpolate(prompt_r2.title);
50
43
  i0.ɵɵadvance(2);
51
- i0.ɵɵtextInterpolate(prompt_r4.prompt);
44
+ i0.ɵɵtextInterpolate(prompt_r2.prompt);
52
45
  } }
53
- function ConversationEmptyStateComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
54
- i0.ɵɵelementStart(0, "div", 5)(1, "div", 17);
55
- i0.ɵɵrepeaterCreate(2, ConversationEmptyStateComponent_Conditional_5_For_3_Template, 8, 7, "div", 18, i0.ɵɵrepeaterTrackByIdentity);
46
+ function ConversationEmptyStateComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 14);
48
+ i0.ɵɵrepeaterCreate(2, ConversationEmptyStateComponent_Conditional_4_For_3_Template, 8, 6, "div", 15, i0.ɵɵrepeaterTrackByIdentity);
56
49
  i0.ɵɵelementEnd()();
57
50
  } if (rf & 2) {
58
- const ctx_r1 = i0.ɵɵnextContext();
51
+ const ctx_r2 = i0.ɵɵnextContext();
59
52
  i0.ɵɵadvance(2);
60
- i0.ɵɵrepeater(ctx_r1.suggestedPrompts);
53
+ i0.ɵɵrepeater(ctx_r2.suggestedPrompts);
61
54
  } }
62
- function ConversationEmptyStateComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
63
- i0.ɵɵelementStart(0, "div", 6)(1, "p", 24);
55
+ function ConversationEmptyStateComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
56
+ i0.ɵɵelementStart(0, "div", 5)(1, "p", 21);
64
57
  i0.ɵɵtext(2);
65
58
  i0.ɵɵelementEnd()();
66
59
  } if (rf & 2) {
67
- const ctx_r1 = i0.ɵɵnextContext();
60
+ const ctx_r2 = i0.ɵɵnextContext();
68
61
  i0.ɵɵadvance(2);
69
- i0.ɵɵtextInterpolate(ctx_r1.greeting);
62
+ i0.ɵɵtextInterpolate(ctx_r2.greeting);
70
63
  } }
71
- function ConversationEmptyStateComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 25);
73
- i0.ɵɵelement(2, "i", 26);
64
+ function ConversationEmptyStateComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵelementStart(0, "div", 8)(1, "div", 22);
66
+ i0.ɵɵelement(2, "i", 23);
74
67
  i0.ɵɵelementStart(3, "span");
75
68
  i0.ɵɵtext(4, "Use ");
76
69
  i0.ɵɵelementStart(5, "strong");
@@ -78,8 +71,8 @@ function ConversationEmptyStateComponent_Conditional_9_Template(rf, ctx) { if (r
78
71
  i0.ɵɵelementEnd();
79
72
  i0.ɵɵtext(7, " to directly invoke a specific agent");
80
73
  i0.ɵɵelementEnd()();
81
- i0.ɵɵelementStart(8, "div", 25);
82
- i0.ɵɵelement(9, "i", 27);
74
+ i0.ɵɵelementStart(8, "div", 22);
75
+ i0.ɵɵelement(9, "i", 24);
83
76
  i0.ɵɵelementStart(10, "span");
84
77
  i0.ɵɵtext(11, "Press ");
85
78
  i0.ɵɵelementStart(12, "strong");
@@ -122,104 +115,104 @@ export class ConversationEmptyStateComponent {
122
115
  allSuggestedPrompts = [
123
116
  // Data Analysis & Insights
124
117
  {
125
- icon: 'fa-clock-rotate-left',
118
+ icon: 'fa-solid fa-clock-rotate-left',
126
119
  title: 'Recent changes',
127
120
  prompt: 'Show me what\'s changed in my data recently'
128
121
  },
129
122
  {
130
- icon: 'fa-list-check',
123
+ icon: 'fa-solid fa-list-check',
131
124
  title: 'Pending items',
132
125
  prompt: 'Find all my incomplete or pending items'
133
126
  },
134
127
  {
135
- icon: 'fa-magnifying-glass',
128
+ icon: 'fa-solid fa-magnifying-glass',
136
129
  title: 'Search everything',
137
130
  prompt: 'Search everything in my system for a specific topic'
138
131
  },
139
132
  {
140
- icon: 'fa-clipboard-check',
133
+ icon: 'fa-solid fa-clipboard-check',
141
134
  title: 'Data quality',
142
135
  prompt: 'Analyze my data and find duplicates or inconsistencies'
143
136
  },
144
137
  {
145
- icon: 'fa-inbox',
138
+ icon: 'fa-solid fa-inbox',
146
139
  title: 'Catch up',
147
140
  prompt: 'Create a summary of activity while I was away'
148
141
  },
149
142
  // Research & Information Gathering
150
143
  {
151
- icon: 'fa-download',
144
+ icon: 'fa-solid fa-download',
152
145
  title: 'Research & save',
153
146
  prompt: 'Research a topic and save the findings to my database'
154
147
  },
155
148
  {
156
- icon: 'fa-code-compare',
149
+ icon: 'fa-solid fa-code-compare',
157
150
  title: 'Compare sources',
158
151
  prompt: 'Compare my data with information from the web'
159
152
  },
160
153
  {
161
- icon: 'fa-folder-open',
154
+ icon: 'fa-solid fa-folder-open',
162
155
  title: 'Search files',
163
156
  prompt: 'Search my files and documents for related information'
164
157
  },
165
158
  {
166
- icon: 'fa-layer-group',
159
+ icon: 'fa-solid fa-layer-group',
167
160
  title: 'Multi-source search',
168
161
  prompt: 'Find relevant information across all my data sources'
169
162
  },
170
163
  {
171
- icon: 'fa-sitemap',
164
+ icon: 'fa-solid fa-sitemap',
172
165
  title: 'Comprehensive research',
173
166
  prompt: 'Gather information on a topic from multiple sources'
174
167
  },
175
168
  // Automation & Agent Building
176
169
  {
177
- icon: 'fa-calendar-day',
170
+ icon: 'fa-solid fa-calendar-day',
178
171
  title: 'Daily summaries',
179
172
  prompt: 'Create an agent to send me daily data summaries'
180
173
  },
181
174
  {
182
- icon: 'fa-bell',
175
+ icon: 'fa-solid fa-bell',
183
176
  title: 'Change alerts',
184
177
  prompt: 'Build an agent that monitors data changes and alerts me'
185
178
  },
186
179
  {
187
- icon: 'fa-file-chart-column',
180
+ icon: 'fa-solid fa-chart-column',
188
181
  title: 'Automated reports',
189
182
  prompt: 'Design an agent to aggregate data and create reports'
190
183
  },
191
184
  {
192
- icon: 'fa-arrows-rotate',
185
+ icon: 'fa-solid fa-arrows-rotate',
193
186
  title: 'Data sync',
194
187
  prompt: 'Help me create an agent that syncs data with external systems'
195
188
  },
196
189
  {
197
- icon: 'fa-file-import',
190
+ icon: 'fa-solid fa-file-import',
198
191
  title: 'File processor',
199
192
  prompt: 'Build an agent that processes files and updates my database'
200
193
  },
201
194
  {
202
- icon: 'fa-slack',
195
+ icon: 'fa-brands fa-slack',
203
196
  title: 'Slack notifications',
204
197
  prompt: 'Create an agent to post updates to Slack when data changes'
205
198
  },
206
199
  {
207
- icon: 'fa-broom',
200
+ icon: 'fa-solid fa-broom',
208
201
  title: 'Data cleanup',
209
202
  prompt: 'Design an agent that validates and cleans up my data regularly'
210
203
  },
211
204
  {
212
- icon: 'fa-chart-pie',
205
+ icon: 'fa-solid fa-chart-pie',
213
206
  title: 'Auto visualizations',
214
207
  prompt: 'Build an agent that generates visualizations from my data'
215
208
  },
216
209
  {
217
- icon: 'fa-graduation-cap',
210
+ icon: 'fa-solid fa-graduation-cap',
218
211
  title: 'Research compiler',
219
212
  prompt: 'Create an agent to research topics and compile findings'
220
213
  },
221
214
  {
222
- icon: 'fa-diagram-project',
215
+ icon: 'fa-solid fa-diagram-project',
223
216
  title: 'Workflow automation',
224
217
  prompt: 'Help me design a workflow agent with approval steps'
225
218
  }
@@ -262,42 +255,39 @@ export class ConversationEmptyStateComponent {
262
255
  } if (rf & 2) {
263
256
  let _t;
264
257
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messageInput = _t.first);
265
- } }, inputs: { currentUser: "currentUser", disabled: "disabled", showSidebarToggle: "showSidebarToggle", enableAttachments: "enableAttachments", enableMentions: "enableMentions", maxAttachments: "maxAttachments", maxAttachmentSizeBytes: "maxAttachmentSizeBytes", acceptedFileTypes: "acceptedFileTypes", greeting: "greeting", overlayMode: "overlayMode" }, outputs: { messageSent: "messageSent", sidebarToggleClicked: "sidebarToggleClicked" }, standalone: false, decls: 10, vars: 19, consts: [[1, "conversation-empty-state"], ["title", "Show conversations", 1, "sidebar-toggle-btn"], [1, "loading-overlay"], [1, "empty-state-container"], [1, "greeting-section"], [1, "suggested-prompts"], [1, "overlay-greeting"], [1, "message-input-wrapper"], [3, "emptyStateSubmit", "placeholder", "disabled", "currentUser", "emptyStateMode", "enableMentions", "enableAttachments", "maxAttachments", "maxAttachmentSizeBytes", "acceptedFileTypes"], [1, "tips-section"], ["title", "Show conversations", 1, "sidebar-toggle-btn", 3, "click"], [1, "fas", "fa-table-columns"], ["text", "Creating your conversation...", "size", "large"], [1, "greeting-icon"], [1, "fa-solid", "fa-comments", "fa-3x"], [1, "greeting-title"], [1, "greeting-subtitle"], [1, "prompt-grid"], [1, "prompt-card", 3, "disabled"], [1, "prompt-card", 3, "click"], [1, "prompt-icon"], [1, "prompt-content"], [1, "prompt-title"], [1, "prompt-text"], [1, "overlay-greeting-text"], [1, "tip-item"], [1, "fa-solid", "fa-at"], [1, "fa-solid", "fa-keyboard"]], template: function ConversationEmptyStateComponent_Template(rf, ctx) { if (rf & 1) {
258
+ } }, inputs: { currentUser: "currentUser", disabled: "disabled", showSidebarToggle: "showSidebarToggle", enableAttachments: "enableAttachments", enableMentions: "enableMentions", maxAttachments: "maxAttachments", maxAttachmentSizeBytes: "maxAttachmentSizeBytes", acceptedFileTypes: "acceptedFileTypes", greeting: "greeting", overlayMode: "overlayMode" }, outputs: { messageSent: "messageSent", sidebarToggleClicked: "sidebarToggleClicked" }, standalone: false, decls: 9, vars: 18, consts: [[1, "conversation-empty-state"], [1, "loading-overlay"], [1, "empty-state-container"], [1, "greeting-section"], [1, "suggested-prompts"], [1, "overlay-greeting"], [1, "message-input-wrapper"], [3, "emptyStateSubmit", "placeholder", "disabled", "currentUser", "emptyStateMode", "enableMentions", "enableAttachments", "maxAttachments", "maxAttachmentSizeBytes", "acceptedFileTypes"], [1, "tips-section"], ["text", "Creating your conversation...", "size", "large"], [1, "greeting-icon"], [1, "fa-solid", "fa-comments", "fa-3x"], [1, "greeting-title"], [1, "greeting-subtitle"], [1, "prompt-grid"], [1, "prompt-card", 3, "disabled"], [1, "prompt-card", 3, "click"], [1, "prompt-icon"], [1, "prompt-content"], [1, "prompt-title"], [1, "prompt-text"], [1, "overlay-greeting-text"], [1, "tip-item"], [1, "fa-solid", "fa-at"], [1, "fa-solid", "fa-keyboard"]], template: function ConversationEmptyStateComponent_Template(rf, ctx) { if (rf & 1) {
266
259
  i0.ɵɵelementStart(0, "div", 0);
267
- i0.ɵɵconditionalCreate(1, ConversationEmptyStateComponent_Conditional_1_Template, 2, 0, "button", 1);
268
- i0.ɵɵconditionalCreate(2, ConversationEmptyStateComponent_Conditional_2_Template, 2, 0, "div", 2);
269
- i0.ɵɵelementStart(3, "div", 3);
270
- i0.ɵɵconditionalCreate(4, ConversationEmptyStateComponent_Conditional_4_Template, 7, 0, "div", 4);
271
- i0.ɵɵconditionalCreate(5, ConversationEmptyStateComponent_Conditional_5_Template, 4, 0, "div", 5);
272
- i0.ɵɵconditionalCreate(6, ConversationEmptyStateComponent_Conditional_6_Template, 3, 1, "div", 6);
273
- i0.ɵɵelementStart(7, "div", 7)(8, "mj-message-input", 8);
274
- i0.ɵɵlistener("emptyStateSubmit", function ConversationEmptyStateComponent_Template_mj_message_input_emptyStateSubmit_8_listener($event) { return ctx.onEmptyStateSubmit($event); });
260
+ i0.ɵɵconditionalCreate(1, ConversationEmptyStateComponent_Conditional_1_Template, 2, 0, "div", 1);
261
+ i0.ɵɵelementStart(2, "div", 2);
262
+ i0.ɵɵconditionalCreate(3, ConversationEmptyStateComponent_Conditional_3_Template, 7, 0, "div", 3);
263
+ i0.ɵɵconditionalCreate(4, ConversationEmptyStateComponent_Conditional_4_Template, 4, 0, "div", 4);
264
+ i0.ɵɵconditionalCreate(5, ConversationEmptyStateComponent_Conditional_5_Template, 3, 1, "div", 5);
265
+ i0.ɵɵelementStart(6, "div", 6)(7, "mj-message-input", 7);
266
+ i0.ɵɵlistener("emptyStateSubmit", function ConversationEmptyStateComponent_Template_mj_message_input_emptyStateSubmit_7_listener($event) { return ctx.onEmptyStateSubmit($event); });
275
267
  i0.ɵɵelementEnd()();
276
- i0.ɵɵconditionalCreate(9, ConversationEmptyStateComponent_Conditional_9_Template, 18, 0, "div", 9);
268
+ i0.ɵɵconditionalCreate(8, ConversationEmptyStateComponent_Conditional_8_Template, 18, 0, "div", 8);
277
269
  i0.ɵɵelementEnd()();
278
270
  } if (rf & 2) {
279
271
  i0.ɵɵclassProp("overlay-mode", ctx.overlayMode);
280
272
  i0.ɵɵadvance();
281
- i0.ɵɵconditional(ctx.showSidebarToggle ? 1 : -1);
282
- i0.ɵɵadvance();
283
- i0.ɵɵconditional(ctx.disabled ? 2 : -1);
273
+ i0.ɵɵconditional(ctx.disabled ? 1 : -1);
284
274
  i0.ɵɵadvance();
285
275
  i0.ɵɵclassProp("loading", ctx.disabled);
286
276
  i0.ɵɵadvance();
287
- i0.ɵɵconditional(!ctx.overlayMode ? 4 : -1);
277
+ i0.ɵɵconditional(!ctx.overlayMode ? 3 : -1);
288
278
  i0.ɵɵadvance();
289
- i0.ɵɵconditional(ctx.suggestedPrompts.length > 0 ? 5 : -1);
279
+ i0.ɵɵconditional(ctx.suggestedPrompts.length > 0 ? 4 : -1);
290
280
  i0.ɵɵadvance();
291
- i0.ɵɵconditional(ctx.overlayMode ? 6 : -1);
281
+ i0.ɵɵconditional(ctx.overlayMode ? 5 : -1);
292
282
  i0.ɵɵadvance(2);
293
283
  i0.ɵɵproperty("placeholder", ctx.overlayMode ? "Type a message..." : "Type your message to start a new conversation...")("disabled", ctx.disabled)("currentUser", ctx.currentUser)("emptyStateMode", true)("enableMentions", ctx.enableMentions)("enableAttachments", ctx.enableAttachments)("maxAttachments", ctx.maxAttachments)("maxAttachmentSizeBytes", ctx.maxAttachmentSizeBytes)("acceptedFileTypes", ctx.acceptedFileTypes);
294
284
  i0.ɵɵadvance();
295
- i0.ɵɵconditional(!ctx.overlayMode ? 9 : -1);
296
- } }, dependencies: [i1.LoadingComponent, i2.MessageInputComponent], styles: ["[_nghost-%COMP%] {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n\n\n.sidebar-toggle-btn[_ngcontent-%COMP%] {\n position: absolute;\n top: 12px;\n left: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n z-index: 10;\n}\n\n.sidebar-toggle-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-text-primary) 8%, transparent);\n}\n\n.sidebar-toggle-btn[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-text-primary) 12%, transparent);\n}\n\n.sidebar-toggle-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 18px;\n transition: color 0.15s ease;\n}\n\n.sidebar-toggle-btn[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n}\n@media (max-width: 768px) {\n .conversation-empty-state[_ngcontent-%COMP%] {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-in;\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.loading-message[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container[_ngcontent-%COMP%] {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 2rem;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading[_ngcontent-%COMP%] {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n\n.greeting-section[_ngcontent-%COMP%] {\n text-align: center;\n padding: 2rem 0;\n}\n\n.greeting-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-bottom: 1rem;\n opacity: 0.8;\n}\n\n.greeting-title[_ngcontent-%COMP%] {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n\n\n.suggested-prompts[_ngcontent-%COMP%] {\n margin: 1rem 0;\n}\n\n.prompt-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card[_ngcontent-%COMP%]:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n\n\n.message-input-wrapper[_ngcontent-%COMP%] {\n margin: 1.5rem 0;\n width: 100%;\n}\n\n\n\n.tips-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 1rem 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n\n\n.conversation-empty-state.overlay-mode[_ngcontent-%COMP%] {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting[_ngcontent-%COMP%] {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n}\n\n\n\n@media (max-width: 768px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n }\n}\n\n\n@media (max-width: 480px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.5rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.4rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n }\n}"] });
285
+ i0.ɵɵconditional(!ctx.overlayMode ? 8 : -1);
286
+ } }, dependencies: [i1.LoadingComponent, i2.MessageInputComponent], styles: ["[_nghost-%COMP%] {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n@media (max-width: 768px) {\n .conversation-empty-state[_ngcontent-%COMP%] {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-in;\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.loading-message[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container[_ngcontent-%COMP%] {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.25rem;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading[_ngcontent-%COMP%] {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n\n.greeting-section[_ngcontent-%COMP%] {\n text-align: center;\n padding: 0.5rem 0;\n}\n\n.greeting-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-bottom: 0.5rem;\n opacity: 0.8;\n}\n\n.greeting-title[_ngcontent-%COMP%] {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n\n\n.suggested-prompts[_ngcontent-%COMP%] {\n margin: 0;\n}\n\n.prompt-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card[_ngcontent-%COMP%]:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n\n\n.message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0;\n width: 100%;\n}\n\n\n\n.tips-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem 0 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n\n\n.conversation-empty-state.overlay-mode[_ngcontent-%COMP%] {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting[_ngcontent-%COMP%] {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n}\n\n\n\n\n@media (max-height: 820px) {\n .conversation-empty-state[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n margin-bottom: 0.25rem;\n }\n .greeting-icon[_ngcontent-%COMP%] .fa-3x[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n }\n .tips-section[_ngcontent-%COMP%] {\n padding: 0.5rem 0 0;\n }\n}\n\n\n\n@media (max-width: 768px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n }\n}\n\n\n@media (max-width: 480px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.5rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.4rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n }\n}"] });
297
287
  }
298
288
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConversationEmptyStateComponent, [{
299
289
  type: Component,
300
- args: [{ standalone: false, selector: 'mj-conversation-empty-state', template: "<div class=\"conversation-empty-state\" [class.overlay-mode]=\"overlayMode\">\n <!-- Sidebar Toggle Button (top-left when sidebar is collapsed) -->\n @if (showSidebarToggle) {\n <button class=\"sidebar-toggle-btn\"\n (click)=\"sidebarToggleClicked.emit()\"\n title=\"Show conversations\">\n <i class=\"fas fa-table-columns\"></i>\n </button>\n }\n\n <!-- Loading Overlay -->\n @if (disabled) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Creating your conversation...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <div class=\"empty-state-container\" [class.loading]=\"disabled\">\n <!-- Greeting Header (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"greeting-section\">\n <div class=\"greeting-icon\">\n <i class=\"fa-solid fa-comments fa-3x\"></i>\n </div>\n <h1 class=\"greeting-title\">Welcome to Conversations</h1>\n <p class=\"greeting-subtitle\">\n Start a new conversation by typing a message below, or choose a suggested prompt to get started.\n </p>\n </div>\n }\n\n <!-- Suggested Prompts (hidden in overlay mode) -->\n @if (suggestedPrompts.length > 0) {\n <div class=\"suggested-prompts\">\n <div class=\"prompt-grid\">\n @for (prompt of suggestedPrompts; track prompt) {\n <div\n class=\"prompt-card\"\n (click)=\"onSuggestedPromptClicked(prompt.prompt)\"\n [class.disabled]=\"disabled\"\n >\n <div class=\"prompt-icon\">\n <i class=\"fa-solid {{prompt.icon}}\"></i>\n </div>\n <div class=\"prompt-content\">\n <div class=\"prompt-title\">{{prompt.title}}</div>\n <div class=\"prompt-text\">{{prompt.prompt}}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Compact greeting for overlay mode -->\n @if (overlayMode) {\n <div class=\"overlay-greeting\">\n <p class=\"overlay-greeting-text\">{{ greeting }}</p>\n </div>\n }\n\n <!-- Message Input (using full mj-message-input in empty state mode) -->\n <div class=\"message-input-wrapper\">\n <mj-message-input\n [placeholder]=\"overlayMode ? 'Type a message...' : 'Type your message to start a new conversation...'\"\n [disabled]=\"disabled\"\n [currentUser]=\"currentUser\"\n [emptyStateMode]=\"true\"\n [enableMentions]=\"enableMentions\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n (emptyStateSubmit)=\"onEmptyStateSubmit($event)\">\n </mj-message-input>\n </div>\n\n <!-- Footer Tips (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"tips-section\">\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-at\"></i>\n <span>Use <strong>&#64;AgentName</strong> to directly invoke a specific agent</span>\n </div>\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-keyboard\"></i>\n <span>Press <strong>Enter</strong> to send, <strong>Shift+Enter</strong> for new line</span>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n/* Sidebar toggle button - positioned in top-left */\n.sidebar-toggle-btn {\n position: absolute;\n top: 12px;\n left: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n z-index: 10;\n}\n\n.sidebar-toggle-btn:hover {\n background: color-mix(in srgb, var(--mj-text-primary) 8%, transparent);\n}\n\n.sidebar-toggle-btn:active {\n background: color-mix(in srgb, var(--mj-text-primary) 12%, transparent);\n}\n\n.sidebar-toggle-btn i {\n color: var(--mj-text-secondary);\n font-size: 18px;\n transition: color 0.15s ease;\n}\n\n.sidebar-toggle-btn:hover i {\n color: var(--mj-text-primary);\n}\n@media (max-width: 768px) {\n .conversation-empty-state {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: fadeIn 0.2s ease-in;\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content i {\n color: var(--mj-brand-primary);\n}\n\n.loading-message {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 2rem;\n animation: fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n/* Greeting Section */\n.greeting-section {\n text-align: center;\n padding: 2rem 0;\n}\n\n.greeting-icon {\n color: var(--mj-brand-primary);\n margin-bottom: 1rem;\n opacity: 0.8;\n}\n\n.greeting-title {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n/* Suggested Prompts */\n.suggested-prompts {\n margin: 1rem 0;\n}\n\n.prompt-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n/* Message Input Wrapper */\n.message-input-wrapper {\n margin: 1.5rem 0;\n width: 100%;\n}\n\n/* Tips Section */\n.tips-section {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 1rem 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item i {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item strong {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n/* Overlay Mode \u2014 compact layout for floating chat widget */\n.conversation-empty-state.overlay-mode {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode .empty-state-container {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode .message-input-wrapper {\n margin: 0.5rem 0;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .empty-state-container {\n gap: 0.75rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1.1rem;\n }\n .greeting-subtitle {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title {\n font-size: 0.75rem;\n }\n .prompt-text {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.5rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.85rem;\n }\n}\n/* Small Phone adjustments */\n@media (max-width: 480px) {\n .empty-state-container {\n gap: 0.5rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1rem;\n }\n .greeting-subtitle {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title {\n font-size: 0.7rem;\n }\n .prompt-text {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.4rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.8rem;\n }\n}\n"] }]
290
+ args: [{ standalone: false, selector: 'mj-conversation-empty-state', template: "<div class=\"conversation-empty-state\" [class.overlay-mode]=\"overlayMode\">\n <!-- Loading Overlay -->\n @if (disabled) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Creating your conversation...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <div class=\"empty-state-container\" [class.loading]=\"disabled\">\n <!-- Greeting Header (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"greeting-section\">\n <div class=\"greeting-icon\">\n <i class=\"fa-solid fa-comments fa-3x\"></i>\n </div>\n <h1 class=\"greeting-title\">Welcome to Conversations</h1>\n <p class=\"greeting-subtitle\">\n Start a new conversation by typing a message below, or choose a suggested prompt to get started.\n </p>\n </div>\n }\n\n <!-- Suggested Prompts (hidden in overlay mode) -->\n @if (suggestedPrompts.length > 0) {\n <div class=\"suggested-prompts\">\n <div class=\"prompt-grid\">\n @for (prompt of suggestedPrompts; track prompt) {\n <div\n class=\"prompt-card\"\n (click)=\"onSuggestedPromptClicked(prompt.prompt)\"\n [class.disabled]=\"disabled\"\n >\n <div class=\"prompt-icon\">\n <i class=\"{{prompt.icon}}\"></i>\n </div>\n <div class=\"prompt-content\">\n <div class=\"prompt-title\">{{prompt.title}}</div>\n <div class=\"prompt-text\">{{prompt.prompt}}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Compact greeting for overlay mode -->\n @if (overlayMode) {\n <div class=\"overlay-greeting\">\n <p class=\"overlay-greeting-text\">{{ greeting }}</p>\n </div>\n }\n\n <!-- Message Input (using full mj-message-input in empty state mode) -->\n <div class=\"message-input-wrapper\">\n <mj-message-input\n [placeholder]=\"overlayMode ? 'Type a message...' : 'Type your message to start a new conversation...'\"\n [disabled]=\"disabled\"\n [currentUser]=\"currentUser\"\n [emptyStateMode]=\"true\"\n [enableMentions]=\"enableMentions\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n (emptyStateSubmit)=\"onEmptyStateSubmit($event)\">\n </mj-message-input>\n </div>\n\n <!-- Footer Tips (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"tips-section\">\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-at\"></i>\n <span>Use <strong>&#64;AgentName</strong> to directly invoke a specific agent</span>\n </div>\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-keyboard\"></i>\n <span>Press <strong>Enter</strong> to send, <strong>Shift+Enter</strong> for new line</span>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n@media (max-width: 768px) {\n .conversation-empty-state {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: fadeIn 0.2s ease-in;\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content i {\n color: var(--mj-brand-primary);\n}\n\n.loading-message {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.25rem;\n animation: fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n/* Greeting Section */\n.greeting-section {\n text-align: center;\n padding: 0.5rem 0;\n}\n\n.greeting-icon {\n color: var(--mj-brand-primary);\n margin-bottom: 0.5rem;\n opacity: 0.8;\n}\n\n.greeting-title {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n/* Suggested Prompts */\n.suggested-prompts {\n margin: 0;\n}\n\n.prompt-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n/* Message Input Wrapper */\n.message-input-wrapper {\n margin: 0;\n width: 100%;\n}\n\n/* Tips Section */\n.tips-section {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem 0 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item i {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item strong {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n/* Overlay Mode \u2014 compact layout for floating chat widget */\n.conversation-empty-state.overlay-mode {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode .empty-state-container {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode .message-input-wrapper {\n margin: 0.5rem 0;\n}\n\n/* Short-viewport fallback \u2014 keep the welcome screen scroll-free when the\n available height is reduced (browser chrome, app header, smaller laptops). */\n@media (max-height: 820px) {\n .conversation-empty-state {\n padding: 1rem;\n }\n .empty-state-container {\n gap: 0.75rem;\n }\n .greeting-section {\n padding: 0;\n }\n .greeting-icon {\n margin-bottom: 0.25rem;\n }\n .greeting-icon .fa-3x {\n font-size: 2em;\n }\n .greeting-title {\n font-size: 1.5rem;\n }\n .tips-section {\n padding: 0.5rem 0 0;\n }\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .empty-state-container {\n gap: 0.75rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1.1rem;\n }\n .greeting-subtitle {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title {\n font-size: 0.75rem;\n }\n .prompt-text {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.5rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.85rem;\n }\n}\n/* Small Phone adjustments */\n@media (max-width: 480px) {\n .empty-state-container {\n gap: 0.5rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1rem;\n }\n .greeting-subtitle {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title {\n font-size: 0.7rem;\n }\n .prompt-text {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.4rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.8rem;\n }\n}\n"] }]
301
291
  }], () => [], { currentUser: [{
302
292
  type: Input
303
293
  }], disabled: [{
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-empty-state.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-empty-state.component.ts","../../../../src/lib/components/conversation/conversation-empty-state.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { UserInfo } from '@memberjunction/core';\nimport { PendingAttachment } from '../mention/mention-editor.component';\nimport { MessageInputComponent } from '../message/message-input.component';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-empty-state',\n templateUrl: './conversation-empty-state.component.html',\n styleUrls: ['./conversation-empty-state.component.css']\n})\nexport class ConversationEmptyStateComponent {\n @Input() currentUser!: UserInfo;\n @Input() disabled: boolean = false;\n @Input() showSidebarToggle: boolean = false;\n @Input() enableAttachments: boolean = false;\n @Input() enableMentions: boolean = true;\n @Input() maxAttachments: number = 10;\n @Input() maxAttachmentSizeBytes: number = 20 * 1024 * 1024;\n @Input() acceptedFileTypes: string = 'image/*';\n\n /** Greeting text shown in the empty state. Set by host app via overlay/chat-area chain. */\n @Input() greeting: string = 'How can I help you?';\n\n /** When true (overlay context), suggested prompts are hidden to save space */\n private _overlayMode = false;\n @Input()\n set overlayMode(value: boolean) {\n this._overlayMode = value;\n if (value) {\n this.suggestedPrompts = [];\n }\n }\n get overlayMode(): boolean {\n return this._overlayMode;\n }\n\n @ViewChild(MessageInputComponent) private messageInput?: MessageInputComponent;\n\n @Output() messageSent = new EventEmitter<{text: string; attachments: PendingAttachment[]}>();\n @Output() sidebarToggleClicked = new EventEmitter<void>();\n\n public messageText: string = '';\n\n // All available suggested prompts (business user focused)\n private allSuggestedPrompts: Array<{icon: string; title: string; prompt: string}> = [\n // Data Analysis & Insights\n {\n icon: 'fa-clock-rotate-left',\n title: 'Recent changes',\n prompt: 'Show me what\\'s changed in my data recently'\n },\n {\n icon: 'fa-list-check',\n title: 'Pending items',\n prompt: 'Find all my incomplete or pending items'\n },\n {\n icon: 'fa-magnifying-glass',\n title: 'Search everything',\n prompt: 'Search everything in my system for a specific topic'\n },\n {\n icon: 'fa-clipboard-check',\n title: 'Data quality',\n prompt: 'Analyze my data and find duplicates or inconsistencies'\n },\n {\n icon: 'fa-inbox',\n title: 'Catch up',\n prompt: 'Create a summary of activity while I was away'\n },\n\n // Research & Information Gathering\n {\n icon: 'fa-download',\n title: 'Research & save',\n prompt: 'Research a topic and save the findings to my database'\n },\n {\n icon: 'fa-code-compare',\n title: 'Compare sources',\n prompt: 'Compare my data with information from the web'\n },\n {\n icon: 'fa-folder-open',\n title: 'Search files',\n prompt: 'Search my files and documents for related information'\n },\n {\n icon: 'fa-layer-group',\n title: 'Multi-source search',\n prompt: 'Find relevant information across all my data sources'\n },\n {\n icon: 'fa-sitemap',\n title: 'Comprehensive research',\n prompt: 'Gather information on a topic from multiple sources'\n },\n\n // Automation & Agent Building\n {\n icon: 'fa-calendar-day',\n title: 'Daily summaries',\n prompt: 'Create an agent to send me daily data summaries'\n },\n {\n icon: 'fa-bell',\n title: 'Change alerts',\n prompt: 'Build an agent that monitors data changes and alerts me'\n },\n {\n icon: 'fa-file-chart-column',\n title: 'Automated reports',\n prompt: 'Design an agent to aggregate data and create reports'\n },\n {\n icon: 'fa-arrows-rotate',\n title: 'Data sync',\n prompt: 'Help me create an agent that syncs data with external systems'\n },\n {\n icon: 'fa-file-import',\n title: 'File processor',\n prompt: 'Build an agent that processes files and updates my database'\n },\n {\n icon: 'fa-slack',\n title: 'Slack notifications',\n prompt: 'Create an agent to post updates to Slack when data changes'\n },\n {\n icon: 'fa-broom',\n title: 'Data cleanup',\n prompt: 'Design an agent that validates and cleans up my data regularly'\n },\n {\n icon: 'fa-chart-pie',\n title: 'Auto visualizations',\n prompt: 'Build an agent that generates visualizations from my data'\n },\n {\n icon: 'fa-graduation-cap',\n title: 'Research compiler',\n prompt: 'Create an agent to research topics and compile findings'\n },\n {\n icon: 'fa-diagram-project',\n title: 'Workflow automation',\n prompt: 'Help me design a workflow agent with approval steps'\n }\n ];\n\n // Randomly selected prompts to display (refreshed on each load)\n public suggestedPrompts: Array<{icon: string; title: string; prompt: string}> = [];\n\n constructor() {\n // Select 4 random prompts on initialization\n this.suggestedPrompts = this.selectRandomPrompts(4);\n }\n\n /**\n * Select random prompts from the full list\n */\n private selectRandomPrompts(count: number): Array<{icon: string; title: string; prompt: string}> {\n const shuffled = [...this.allSuggestedPrompts].sort(() => Math.random() - 0.5);\n return shuffled.slice(0, count);\n }\n\n /**\n * Focus the message input programmatically.\n * Called by parent when the user clicks \"New Conversation\" while already on the empty state.\n */\n public FocusInput(): void {\n setTimeout(() => {\n if (this.messageInput) {\n this.messageInput.inputBox?.focus();\n }\n }, 100);\n }\n\n onEmptyStateSubmit(event: {text: string; attachments: PendingAttachment[]}): void {\n this.messageSent.emit(event);\n }\n\n onSuggestedPromptClicked(prompt: string): void {\n if (!this.disabled) {\n this.messageSent.emit({ text: prompt, attachments: [] });\n }\n }\n}\n","<div class=\"conversation-empty-state\" [class.overlay-mode]=\"overlayMode\">\n <!-- Sidebar Toggle Button (top-left when sidebar is collapsed) -->\n @if (showSidebarToggle) {\n <button class=\"sidebar-toggle-btn\"\n (click)=\"sidebarToggleClicked.emit()\"\n title=\"Show conversations\">\n <i class=\"fas fa-table-columns\"></i>\n </button>\n }\n\n <!-- Loading Overlay -->\n @if (disabled) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Creating your conversation...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <div class=\"empty-state-container\" [class.loading]=\"disabled\">\n <!-- Greeting Header (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"greeting-section\">\n <div class=\"greeting-icon\">\n <i class=\"fa-solid fa-comments fa-3x\"></i>\n </div>\n <h1 class=\"greeting-title\">Welcome to Conversations</h1>\n <p class=\"greeting-subtitle\">\n Start a new conversation by typing a message below, or choose a suggested prompt to get started.\n </p>\n </div>\n }\n\n <!-- Suggested Prompts (hidden in overlay mode) -->\n @if (suggestedPrompts.length > 0) {\n <div class=\"suggested-prompts\">\n <div class=\"prompt-grid\">\n @for (prompt of suggestedPrompts; track prompt) {\n <div\n class=\"prompt-card\"\n (click)=\"onSuggestedPromptClicked(prompt.prompt)\"\n [class.disabled]=\"disabled\"\n >\n <div class=\"prompt-icon\">\n <i class=\"fa-solid {{prompt.icon}}\"></i>\n </div>\n <div class=\"prompt-content\">\n <div class=\"prompt-title\">{{prompt.title}}</div>\n <div class=\"prompt-text\">{{prompt.prompt}}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Compact greeting for overlay mode -->\n @if (overlayMode) {\n <div class=\"overlay-greeting\">\n <p class=\"overlay-greeting-text\">{{ greeting }}</p>\n </div>\n }\n\n <!-- Message Input (using full mj-message-input in empty state mode) -->\n <div class=\"message-input-wrapper\">\n <mj-message-input\n [placeholder]=\"overlayMode ? 'Type a message...' : 'Type your message to start a new conversation...'\"\n [disabled]=\"disabled\"\n [currentUser]=\"currentUser\"\n [emptyStateMode]=\"true\"\n [enableMentions]=\"enableMentions\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n (emptyStateSubmit)=\"onEmptyStateSubmit($event)\">\n </mj-message-input>\n </div>\n\n <!-- Footer Tips (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"tips-section\">\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-at\"></i>\n <span>Use <strong>&#64;AgentName</strong> to directly invoke a specific agent</span>\n </div>\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-keyboard\"></i>\n <span>Press <strong>Enter</strong> to send, <strong>Shift+Enter</strong> for new line</span>\n </div>\n </div>\n }\n </div>\n</div>\n"]}
1
+ {"version":3,"file":"conversation-empty-state.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-empty-state.component.ts","../../../../src/lib/components/conversation/conversation-empty-state.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { UserInfo } from '@memberjunction/core';\nimport { PendingAttachment } from '../mention/mention-editor.component';\nimport { MessageInputComponent } from '../message/message-input.component';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-empty-state',\n templateUrl: './conversation-empty-state.component.html',\n styleUrls: ['./conversation-empty-state.component.css']\n})\nexport class ConversationEmptyStateComponent {\n @Input() currentUser!: UserInfo;\n @Input() disabled: boolean = false;\n @Input() showSidebarToggle: boolean = false;\n @Input() enableAttachments: boolean = false;\n @Input() enableMentions: boolean = true;\n @Input() maxAttachments: number = 10;\n @Input() maxAttachmentSizeBytes: number = 20 * 1024 * 1024;\n @Input() acceptedFileTypes: string = 'image/*';\n\n /** Greeting text shown in the empty state. Set by host app via overlay/chat-area chain. */\n @Input() greeting: string = 'How can I help you?';\n\n /** When true (overlay context), suggested prompts are hidden to save space */\n private _overlayMode = false;\n @Input()\n set overlayMode(value: boolean) {\n this._overlayMode = value;\n if (value) {\n this.suggestedPrompts = [];\n }\n }\n get overlayMode(): boolean {\n return this._overlayMode;\n }\n\n @ViewChild(MessageInputComponent) private messageInput?: MessageInputComponent;\n\n @Output() messageSent = new EventEmitter<{text: string; attachments: PendingAttachment[]}>();\n @Output() sidebarToggleClicked = new EventEmitter<void>();\n\n public messageText: string = '';\n\n // All available suggested prompts (business user focused)\n private allSuggestedPrompts: Array<{icon: string; title: string; prompt: string}> = [\n // Data Analysis & Insights\n {\n icon: 'fa-solid fa-clock-rotate-left',\n title: 'Recent changes',\n prompt: 'Show me what\\'s changed in my data recently'\n },\n {\n icon: 'fa-solid fa-list-check',\n title: 'Pending items',\n prompt: 'Find all my incomplete or pending items'\n },\n {\n icon: 'fa-solid fa-magnifying-glass',\n title: 'Search everything',\n prompt: 'Search everything in my system for a specific topic'\n },\n {\n icon: 'fa-solid fa-clipboard-check',\n title: 'Data quality',\n prompt: 'Analyze my data and find duplicates or inconsistencies'\n },\n {\n icon: 'fa-solid fa-inbox',\n title: 'Catch up',\n prompt: 'Create a summary of activity while I was away'\n },\n\n // Research & Information Gathering\n {\n icon: 'fa-solid fa-download',\n title: 'Research & save',\n prompt: 'Research a topic and save the findings to my database'\n },\n {\n icon: 'fa-solid fa-code-compare',\n title: 'Compare sources',\n prompt: 'Compare my data with information from the web'\n },\n {\n icon: 'fa-solid fa-folder-open',\n title: 'Search files',\n prompt: 'Search my files and documents for related information'\n },\n {\n icon: 'fa-solid fa-layer-group',\n title: 'Multi-source search',\n prompt: 'Find relevant information across all my data sources'\n },\n {\n icon: 'fa-solid fa-sitemap',\n title: 'Comprehensive research',\n prompt: 'Gather information on a topic from multiple sources'\n },\n\n // Automation & Agent Building\n {\n icon: 'fa-solid fa-calendar-day',\n title: 'Daily summaries',\n prompt: 'Create an agent to send me daily data summaries'\n },\n {\n icon: 'fa-solid fa-bell',\n title: 'Change alerts',\n prompt: 'Build an agent that monitors data changes and alerts me'\n },\n {\n icon: 'fa-solid fa-chart-column',\n title: 'Automated reports',\n prompt: 'Design an agent to aggregate data and create reports'\n },\n {\n icon: 'fa-solid fa-arrows-rotate',\n title: 'Data sync',\n prompt: 'Help me create an agent that syncs data with external systems'\n },\n {\n icon: 'fa-solid fa-file-import',\n title: 'File processor',\n prompt: 'Build an agent that processes files and updates my database'\n },\n {\n icon: 'fa-brands fa-slack',\n title: 'Slack notifications',\n prompt: 'Create an agent to post updates to Slack when data changes'\n },\n {\n icon: 'fa-solid fa-broom',\n title: 'Data cleanup',\n prompt: 'Design an agent that validates and cleans up my data regularly'\n },\n {\n icon: 'fa-solid fa-chart-pie',\n title: 'Auto visualizations',\n prompt: 'Build an agent that generates visualizations from my data'\n },\n {\n icon: 'fa-solid fa-graduation-cap',\n title: 'Research compiler',\n prompt: 'Create an agent to research topics and compile findings'\n },\n {\n icon: 'fa-solid fa-diagram-project',\n title: 'Workflow automation',\n prompt: 'Help me design a workflow agent with approval steps'\n }\n ];\n\n // Randomly selected prompts to display (refreshed on each load)\n public suggestedPrompts: Array<{icon: string; title: string; prompt: string}> = [];\n\n constructor() {\n // Select 4 random prompts on initialization\n this.suggestedPrompts = this.selectRandomPrompts(4);\n }\n\n /**\n * Select random prompts from the full list\n */\n private selectRandomPrompts(count: number): Array<{icon: string; title: string; prompt: string}> {\n const shuffled = [...this.allSuggestedPrompts].sort(() => Math.random() - 0.5);\n return shuffled.slice(0, count);\n }\n\n /**\n * Focus the message input programmatically.\n * Called by parent when the user clicks \"New Conversation\" while already on the empty state.\n */\n public FocusInput(): void {\n setTimeout(() => {\n if (this.messageInput) {\n this.messageInput.inputBox?.focus();\n }\n }, 100);\n }\n\n onEmptyStateSubmit(event: {text: string; attachments: PendingAttachment[]}): void {\n this.messageSent.emit(event);\n }\n\n onSuggestedPromptClicked(prompt: string): void {\n if (!this.disabled) {\n this.messageSent.emit({ text: prompt, attachments: [] });\n }\n }\n}\n","<div class=\"conversation-empty-state\" [class.overlay-mode]=\"overlayMode\">\n <!-- Loading Overlay -->\n @if (disabled) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Creating your conversation...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <div class=\"empty-state-container\" [class.loading]=\"disabled\">\n <!-- Greeting Header (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"greeting-section\">\n <div class=\"greeting-icon\">\n <i class=\"fa-solid fa-comments fa-3x\"></i>\n </div>\n <h1 class=\"greeting-title\">Welcome to Conversations</h1>\n <p class=\"greeting-subtitle\">\n Start a new conversation by typing a message below, or choose a suggested prompt to get started.\n </p>\n </div>\n }\n\n <!-- Suggested Prompts (hidden in overlay mode) -->\n @if (suggestedPrompts.length > 0) {\n <div class=\"suggested-prompts\">\n <div class=\"prompt-grid\">\n @for (prompt of suggestedPrompts; track prompt) {\n <div\n class=\"prompt-card\"\n (click)=\"onSuggestedPromptClicked(prompt.prompt)\"\n [class.disabled]=\"disabled\"\n >\n <div class=\"prompt-icon\">\n <i class=\"{{prompt.icon}}\"></i>\n </div>\n <div class=\"prompt-content\">\n <div class=\"prompt-title\">{{prompt.title}}</div>\n <div class=\"prompt-text\">{{prompt.prompt}}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Compact greeting for overlay mode -->\n @if (overlayMode) {\n <div class=\"overlay-greeting\">\n <p class=\"overlay-greeting-text\">{{ greeting }}</p>\n </div>\n }\n\n <!-- Message Input (using full mj-message-input in empty state mode) -->\n <div class=\"message-input-wrapper\">\n <mj-message-input\n [placeholder]=\"overlayMode ? 'Type a message...' : 'Type your message to start a new conversation...'\"\n [disabled]=\"disabled\"\n [currentUser]=\"currentUser\"\n [emptyStateMode]=\"true\"\n [enableMentions]=\"enableMentions\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n (emptyStateSubmit)=\"onEmptyStateSubmit($event)\">\n </mj-message-input>\n </div>\n\n <!-- Footer Tips (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"tips-section\">\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-at\"></i>\n <span>Use <strong>&#64;AgentName</strong> to directly invoke a specific agent</span>\n </div>\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-keyboard\"></i>\n <span>Press <strong>Enter</strong> to send, <strong>Shift+Enter</strong> for new line</span>\n </div>\n </div>\n }\n </div>\n</div>\n"]}
@@ -29,6 +29,16 @@ export interface MessageAttachment {
29
29
  /** For source='artifact': resolved MJArtifactType.Name, e.g. "Data Snapshot". Drives the type badge. */
30
30
  artifactTypeName?: string;
31
31
  }
32
+ /**
33
+ * A fully-loaded artifact + its version to render as a card under a message.
34
+ * A single message can carry more than one DISTINCT artifact (e.g. a research
35
+ * report plus a standalone generated infographic), so the message renders an
36
+ * array of these — one card each.
37
+ */
38
+ export interface MessageArtifactRef {
39
+ artifact: MJArtifactEntity;
40
+ version: MJArtifactVersionEntity;
41
+ }
32
42
  /**
33
43
  * Component for displaying a single message in a conversation
34
44
  * Follows the dynamic rendering pattern from skip-chat for optimal performance
@@ -46,6 +56,12 @@ export declare class MessageItemComponent extends BaseAngularComponent implement
46
56
  isProcessing: boolean;
47
57
  artifact?: MJArtifactEntity;
48
58
  artifactVersion?: MJArtifactVersionEntity;
59
+ /**
60
+ * All distinct artifacts attached to this message, each at its latest version.
61
+ * Preferred over the single `artifact`/`artifactVersion` inputs above (which are
62
+ * retained for backward compatibility and kept pointed at the first entry).
63
+ */
64
+ artifacts: MessageArtifactRef[];
49
65
  agentRun: MJAIAgentRunEntityExtended | null;
50
66
  userAvatarMap: Map<string, {
51
67
  imageUrl: string | null;
@@ -210,6 +226,12 @@ export declare class MessageItemComponent extends BaseAngularComponent implement
210
226
  * Show for latest completed AI message that user hasn't rated yet.
211
227
  */
212
228
  shouldShowInlineActions(): boolean;
229
+ /**
230
+ * The artifacts to render under this message, one card each. Prefers the
231
+ * `artifacts` array; falls back to the legacy single `artifact`/`artifactVersion`
232
+ * inputs so older callers that set only those keep working.
233
+ */
234
+ get displayArtifacts(): MessageArtifactRef[];
213
235
  get hasArtifact(): boolean;
214
236
  /**
215
237
  * Check if the artifact is a system-only artifact
@@ -360,6 +382,6 @@ export declare class MessageItemComponent extends BaseAngularComponent implement
360
382
  */
361
383
  private getChoiceDisplayValue;
362
384
  static ɵfac: i0.ɵɵFactoryDeclaration<MessageItemComponent, never>;
363
- static ɵcmp: i0.ɵɵComponentDeclaration<MessageItemComponent, "mj-conversation-message-item", never, { "message": { "alias": "message"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "allMessages": { "alias": "allMessages"; "required": false; }; "isProcessing": { "alias": "isProcessing"; "required": false; }; "artifact": { "alias": "artifact"; "required": false; }; "artifactVersion": { "alias": "artifactVersion"; "required": false; }; "agentRun": { "alias": "agentRun"; "required": false; }; "userAvatarMap": { "alias": "userAvatarMap"; "required": false; }; "ratings": { "alias": "ratings"; "required": false; }; "isLastMessage": { "alias": "isLastMessage"; "required": false; }; "attachments": { "alias": "attachments"; "required": false; }; }, { "editClicked": "editClicked"; "deleteClicked": "deleteClicked"; "retryClicked": "retryClicked"; "testFeedbackClicked": "testFeedbackClicked"; "artifactClicked": "artifactClicked"; "artifactActionPerformed": "artifactActionPerformed"; "messageEdited": "messageEdited"; "openEntityRecord": "openEntityRecord"; "suggestedResponseSelected": "suggestedResponseSelected"; "attachmentClicked": "attachmentClicked"; "diagnosticRequested": "diagnosticRequested"; "messagePinToggled": "messagePinToggled"; }, never, never, false, never>;
385
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessageItemComponent, "mj-conversation-message-item", never, { "message": { "alias": "message"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "allMessages": { "alias": "allMessages"; "required": false; }; "isProcessing": { "alias": "isProcessing"; "required": false; }; "artifact": { "alias": "artifact"; "required": false; }; "artifactVersion": { "alias": "artifactVersion"; "required": false; }; "artifacts": { "alias": "artifacts"; "required": false; }; "agentRun": { "alias": "agentRun"; "required": false; }; "userAvatarMap": { "alias": "userAvatarMap"; "required": false; }; "ratings": { "alias": "ratings"; "required": false; }; "isLastMessage": { "alias": "isLastMessage"; "required": false; }; "attachments": { "alias": "attachments"; "required": false; }; }, { "editClicked": "editClicked"; "deleteClicked": "deleteClicked"; "retryClicked": "retryClicked"; "testFeedbackClicked": "testFeedbackClicked"; "artifactClicked": "artifactClicked"; "artifactActionPerformed": "artifactActionPerformed"; "messageEdited": "messageEdited"; "openEntityRecord": "openEntityRecord"; "suggestedResponseSelected": "suggestedResponseSelected"; "attachmentClicked": "attachmentClicked"; "diagnosticRequested": "diagnosticRequested"; "messagePinToggled": "messagePinToggled"; }, never, never, false, never>;
364
386
  }
365
387
  //# sourceMappingURL=message-item.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-item.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-item.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtK,OAAO,EAAE,QAAQ,EAAW,YAAY,EAAgB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAoC,iBAAiB,EAAyC,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEzL,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;;AAIpF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wGAAwG;IACxG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBASa,oBAAqB,SAAQ,oBAAqB,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO;IA2D1H,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,gBAAgB;IA7DV,OAAO,EAAG,0BAA0B,CAAC;IACrC,YAAY,EAAG,oBAAoB,GAAG,IAAI,CAAC;IAC3C,WAAW,EAAG,QAAQ,CAAC;IACvB,WAAW,EAAG,0BAA0B,EAAE,CAAC;IAC3C,YAAY,EAAE,OAAO,CAAS;IAC9B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IACnD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,CAAC,CAAa;IAC5F,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAS;IAC/B,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAErC,WAAW,2CAAkD;IAC7D,aAAa,2CAAkD;IAC/D,YAAY,2CAAkD;IAC9D,mBAAmB,2CAAkD;IACrE,eAAe;oBAAiC,MAAM;oBAAc,MAAM;OAAK;IAC/E,uBAAuB;gBAA6B,MAAM;oBAAc,MAAM;OAAK;IACnF,aAAa,2CAAkD;IAC/D,gBAAgB;oBAAiC,MAAM;sBAAgB,YAAY;OAAK;IACxF,yBAAyB;cAA2B,MAAM;sBAAgB,MAAM;OAAK;IACrF,iBAAiB,kCAAyC;IAC1D,mBAAmB,uBAA8B;IACjD,iBAAiB,2CAAkD;IAEpF,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,oBAAoB,CAAa;IAClC,qBAAqB,EAAE,MAAM,CAAU;IACvC,0BAA0B,EAAE,MAAM,CAAU;IAC5C,SAAS,EAAE,OAAO,CAAS;IAC3B,UAAU,EAAE,MAAM,CAAM;IAC/B,OAAO,CAAC,YAAY,CAAc;IAGlC,OAAO,CAAC,sBAAsB,CAA+D;IAE7F;;;;;;OAMG;IACH,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,qBAAqB,CAAc;IAC3C,OAAO,CAAC,4BAA4B,CAAkB;IAG/C,sBAAsB,EAAE,OAAO,CAAS;IACxC,WAAW,EAAE,YAAY,EAAE,CAAM;IACxC,OAAO,CAAC,WAAW,CAAkB;IAGrC,OAAO,CAAC,qBAAqB,CAAc;IAC3C,OAAO,CAAC,kBAAkB,CAAc;gBAG9B,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,oBAAoB,EACnC,mBAAmB,EAAE,0BAA0B,EAC/C,gBAAgB,EAAE,uBAAuB;IAK7C,QAAQ;IAWd,WAAW,CAAC,QAAQ,EAAE,aAAa;IAMnC;;;;OAIG;IACH,SAAS;IAgCT,eAAe;IAYf,WAAW;IAOX;;;;;OAKG;IACI,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOpD;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,oBAAoB;IAgB5B,IAAW,oBAAoB,IAAI,MAAM,CAExC;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,WAAW,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CA8BjF;IAED,IAAW,aAAa,IAAI,OAAO,CAElC;IAED;;;;OAIG;IACH,IAAW,iBAAiB,IAAI,MAAM,CASrC;IAED;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,GAAG,IAAI,CAMxC;IAED;;;OAGG;IACH,IAAW,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAM9C;IAED,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,cAAc;IA0CtB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,UAAU;IAIlB,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED,IAAW,gBAAgB,IAAI,OAAO,CAMrC;IAED,IAAW,aAAa,IAAI,UAAU,GAAG,aAAa,GAAG,OAAO,CAE/D;IAEM,aAAa,IAAI,MAAM;IAW9B,IAAW,4BAA4B,IAAI,OAAO,CAEjD;IAED,IAAW,2BAA2B,IAAI,OAAO,CAEhD;IAED;;;;OAIG;IACI,gBAAgB,IAAI,OAAO;IA0BlC;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;OAEG;IACI,kBAAkB,IAAI,MAAM;IAInC;;;OAGG;IACI,uBAAuB,IAAI,OAAO;IAKzC,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;;;;;;OAOG;IACH,IAAW,YAAY,IAAI,MAAM,GAAG,IAAI,CAEvC;IAED,OAAO,CAAC,qBAAqB;IAuC7B,IAAW,uBAAuB,IAAI,MAAM,GAAG,IAAI,CA2BlD;IAED;;;;OAIG;IACH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,OAAO,CAAC,mBAAmB;IAmB3B,IAAW,eAAe,IAAI,OAAO,CAOpC;IAEM,WAAW,IAAI,IAAI;IAMnB,YAAY,IAAI,IAAI;IAgBpB,aAAa,IAAI,IAAI;IAOf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B/B,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAUzC,aAAa,IAAI,IAAI;IAMf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC,mBAAmB,IAAI,IAAI;IAM3B,YAAY,IAAI,IAAI;IAMpB,eAAe,IAAI,IAAI;IASvB,yBAAyB,CAAC,KAAK,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAC;QAAC,OAAO,CAAC,EAAE,uBAAuB,CAAA;KAAC,GAAG,IAAI;IAavH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAK9C,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAMlC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAMnC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAM3C;;;OAGG;IACI,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAI7D;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,iBAAiB,EAAE,CAEjD;IAED;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM5C,mFAAmF;IAC5E,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,MAAM;IAI1D;;;OAGG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;OAEG;YACW,SAAS;IA0BvB;;;;OAIG;IACH,IAAW,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAwB3C;IAED;;OAEG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAKvC;IAED;;OAEG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED;;OAEG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAMrC;IAED;;OAEG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxC;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAajC;;OAEG;IACI,eAAe,IAAI,IAAI;IAa9B;;OAEG;IACH,IAAW,mBAAmB,IAAI,OAAO,CAExC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,IAAW,YAAY,IAAI,iBAAiB,GAAG,IAAI,CAelD;IAED;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB,CAAwC;IACtE,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,IAAW,kBAAkB,IAAI,iBAAiB,EAAE,CAgBnD;IAED;;;OAGG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAsC3D;;OAEG;IACU,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE;;;OAGG;YACW,wBAAwB;IAwBtC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;yCAhsClB,oBAAoB;2CAApB,oBAAoB;CA4tChC"}
1
+ {"version":3,"file":"message-item.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-item.component.ts"],"names":[],"mappings":"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"}