@memberjunction/ng-conversations 5.48.0 → 5.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +99 -1
  2. package/dist/lib/components/collection/collections-full-view.component.d.ts +10 -0
  3. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  4. package/dist/lib/components/collection/collections-full-view.component.js +74 -14
  5. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  6. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +76 -5
  7. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  8. package/dist/lib/components/conversation/conversation-chat-area.component.js +314 -161
  9. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  10. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +7 -1
  11. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  12. package/dist/lib/components/conversation/conversation-empty-state.component.js +45 -23
  13. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  14. package/dist/lib/components/conversation/conversation-list.component.d.ts +16 -1
  15. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  16. package/dist/lib/components/conversation/conversation-list.component.js +439 -351
  17. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  18. package/dist/lib/components/export/export-modal.component.d.ts +25 -3
  19. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  20. package/dist/lib/components/export/export-modal.component.js +172 -34
  21. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  22. package/dist/lib/components/message/message-input.component.d.ts +6 -1
  23. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  24. package/dist/lib/components/message/message-input.component.js +21 -3
  25. package/dist/lib/components/message/message-input.component.js.map +1 -1
  26. package/dist/lib/components/message/message-item.component.d.ts +58 -1
  27. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  28. package/dist/lib/components/message/message-item.component.js +390 -224
  29. package/dist/lib/components/message/message-item.component.js.map +1 -1
  30. package/dist/lib/components/message/message-list.component.d.ts +36 -1
  31. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  32. package/dist/lib/components/message/message-list.component.js +102 -4
  33. package/dist/lib/components/message/message-list.component.js.map +1 -1
  34. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js +2 -2
  35. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js.map +1 -1
  36. package/dist/lib/components/realtime/media/realtime-media-surface.component.js +2 -2
  37. package/dist/lib/components/realtime/media/realtime-media-surface.component.js.map +1 -1
  38. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +14 -1
  39. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  40. package/dist/lib/components/sidebar/conversation-sidebar.component.js +38 -5
  41. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  42. package/dist/lib/components/slots/slot-interfaces.d.ts +23 -1
  43. package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
  44. package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
  45. package/dist/lib/directives/chat-slot.directive.d.ts +10 -2
  46. package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
  47. package/dist/lib/directives/chat-slot.directive.js.map +1 -1
  48. package/dist/lib/models/lazy-artifact-info.d.ts +8 -7
  49. package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
  50. package/dist/lib/models/lazy-artifact-info.js +12 -11
  51. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  52. package/dist/lib/services/export.service.d.ts +149 -0
  53. package/dist/lib/services/export.service.d.ts.map +1 -1
  54. package/dist/lib/services/export.service.js +270 -36
  55. package/dist/lib/services/export.service.js.map +1 -1
  56. package/package.json +29 -29
@@ -16,511 +16,555 @@ const _c0 = a0 => ({ $implicit: a0 });
16
16
  const _c1 = (a0, a1) => ({ $implicit: a0, depth: a1 });
17
17
  const _forTrack0 = ($index, $item) => $item.ID;
18
18
  const _forTrack1 = ($index, $item) => $item.project.ID;
19
- function ConversationListComponent_Conditional_4_Conditional_3_Conditional_13_Template(rf, ctx) { if (rf & 1) {
19
+ function ConversationListComponent_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
20
+ const _r1 = i0.ɵɵgetCurrentView();
21
+ i0.ɵɵelementStart(0, "input", 12);
22
+ i0.ɵɵtwoWayListener("ngModelChange", function ConversationListComponent_Conditional_1_Conditional_2_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event); return i0.ɵɵresetView($event); });
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const ctx_r1 = i0.ɵɵnextContext(2);
26
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.searchQuery);
27
+ } }
28
+ function ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Conditional_13_Template(rf, ctx) { if (rf & 1) {
20
29
  const _r5 = i0.ɵɵgetCurrentView();
21
30
  i0.ɵɵelementStart(0, "button", 18);
22
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_4_Conditional_3_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onUnpinSidebarClick($event)); });
31
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onUnpinSidebarClick($event)); });
23
32
  i0.ɵɵelement(1, "i", 22);
24
33
  i0.ɵɵelementStart(2, "span");
25
34
  i0.ɵɵtext(3, "Hide Sidebar");
26
35
  i0.ɵɵelementEnd()();
27
36
  } }
28
- function ConversationListComponent_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
37
+ function ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
29
38
  const _r4 = i0.ɵɵgetCurrentView();
30
39
  i0.ɵɵelementStart(0, "div", 15)(1, "button", 16);
31
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_4_Conditional_3_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onRefreshConversationsClick($event)); });
40
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onRefreshConversationsClick($event)); });
32
41
  i0.ɵɵelement(2, "i", 17);
33
42
  i0.ɵɵelementStart(3, "span");
34
43
  i0.ɵɵtext(4);
35
44
  i0.ɵɵelementEnd()();
36
45
  i0.ɵɵelementStart(5, "button", 18);
37
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_4_Conditional_3_Template_button_click_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onSelectConversationsClick($event)); });
46
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Template_button_click_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onSelectConversationsClick($event)); });
38
47
  i0.ɵɵelement(6, "i", 19);
39
48
  i0.ɵɵelementStart(7, "span");
40
49
  i0.ɵɵtext(8, "Select Conversations");
41
50
  i0.ɵɵelementEnd()();
42
51
  i0.ɵɵelementStart(9, "button", 18);
43
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_4_Conditional_3_Template_button_click_9_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onToggleGroupByClick($event)); });
52
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Template_button_click_9_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onToggleGroupByClick($event)); });
44
53
  i0.ɵɵelement(10, "i", 20);
45
54
  i0.ɵɵelementStart(11, "span");
46
55
  i0.ɵɵtext(12);
47
56
  i0.ɵɵelementEnd()();
48
- i0.ɵɵconditionalCreate(13, ConversationListComponent_Conditional_4_Conditional_3_Conditional_13_Template, 4, 0, "button", 21);
57
+ i0.ɵɵconditionalCreate(13, ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Conditional_13_Template, 4, 0, "button", 21);
49
58
  i0.ɵɵelementEnd();
50
59
  } if (rf & 2) {
51
- const ctx_r2 = i0.ɵɵnextContext(2);
60
+ const ctx_r1 = i0.ɵɵnextContext(3);
52
61
  i0.ɵɵadvance();
53
- i0.ɵɵproperty("disabled", ctx_r2.isRefreshing);
62
+ i0.ɵɵproperty("disabled", ctx_r1.isRefreshing);
54
63
  i0.ɵɵadvance();
55
- i0.ɵɵclassProp("fa-spin", ctx_r2.isRefreshing);
64
+ i0.ɵɵclassProp("fa-spin", ctx_r1.isRefreshing);
56
65
  i0.ɵɵadvance(2);
57
- i0.ɵɵtextInterpolate(ctx_r2.isRefreshing ? "Refreshing..." : "Refresh");
66
+ i0.ɵɵtextInterpolate(ctx_r1.isRefreshing ? "Refreshing..." : "Refresh");
58
67
  i0.ɵɵadvance(6);
59
- i0.ɵɵclassProp("fa-folder-tree", ctx_r2.groupBy !== "project")("fa-list", ctx_r2.groupBy === "project");
68
+ i0.ɵɵclassProp("fa-folder-tree", ctx_r1.groupBy !== "project")("fa-list", ctx_r1.groupBy === "project");
60
69
  i0.ɵɵadvance(2);
61
- i0.ɵɵtextInterpolate(ctx_r2.groupBy === "project" ? "Show as flat list" : "Group by folder");
70
+ i0.ɵɵtextInterpolate(ctx_r1.groupBy === "project" ? "Show as flat list" : "Group by folder");
62
71
  i0.ɵɵadvance();
63
- i0.ɵɵconditional(!ctx_r2.isMobileView ? 13 : -1);
72
+ i0.ɵɵconditional(!ctx_r1.isMobileView ? 13 : -1);
64
73
  } }
65
- function ConversationListComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
66
- const _r2 = i0.ɵɵgetCurrentView();
67
- i0.ɵɵelementStart(0, "div", 6)(1, "button", 13);
68
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_4_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleHeaderMenu($event)); });
74
+ function ConversationListComponent_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
75
+ const _r3 = i0.ɵɵgetCurrentView();
76
+ i0.ɵɵelementStart(0, "div", 11)(1, "button", 13);
77
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_1_Conditional_3_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleHeaderMenu($event)); });
69
78
  i0.ɵɵelement(2, "i", 14);
70
79
  i0.ɵɵelementEnd();
71
- i0.ɵɵconditionalCreate(3, ConversationListComponent_Conditional_4_Conditional_3_Template, 14, 10, "div", 15);
80
+ i0.ɵɵconditionalCreate(3, ConversationListComponent_Conditional_1_Conditional_3_Conditional_3_Template, 14, 10, "div", 15);
72
81
  i0.ɵɵelementEnd();
73
82
  } if (rf & 2) {
74
- const ctx_r2 = i0.ɵɵnextContext();
83
+ const ctx_r1 = i0.ɵɵnextContext(2);
75
84
  i0.ɵɵadvance(3);
76
- i0.ɵɵconditional(ctx_r2.isHeaderMenuOpen ? 3 : -1);
85
+ i0.ɵɵconditional(ctx_r1.isHeaderMenuOpen ? 3 : -1);
77
86
  } }
78
- function ConversationListComponent_Conditional_10_For_9_Template(rf, ctx) { if (rf & 1) {
79
- i0.ɵɵelementContainer(0, 28);
87
+ function ConversationListComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
88
+ i0.ɵɵelementStart(0, "div", 3)(1, "div", 9);
89
+ i0.ɵɵconditionalCreate(2, ConversationListComponent_Conditional_1_Conditional_2_Template, 1, 1, "input", 10);
90
+ i0.ɵɵconditionalCreate(3, ConversationListComponent_Conditional_1_Conditional_3_Template, 4, 1, "div", 11);
91
+ i0.ɵɵelementEnd()();
80
92
  } if (rf & 2) {
81
- const conversation_r7 = ctx.$implicit;
82
- i0.ɵɵnextContext(2);
83
- const conversationItem_r8 = i0.ɵɵreference(17);
84
- i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, conversation_r7));
93
+ const ctx_r1 = i0.ɵɵnextContext();
94
+ i0.ɵɵadvance(2);
95
+ i0.ɵɵconditional(ctx_r1.showSearch ? 2 : -1);
96
+ i0.ɵɵadvance();
97
+ i0.ɵɵconditional(ctx_r1.showHeaderMenu && !ctx_r1.isSelectionMode ? 3 : -1);
85
98
  } }
86
- function ConversationListComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
99
+ function ConversationListComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
87
100
  const _r6 = i0.ɵɵgetCurrentView();
88
- i0.ɵɵelementStart(0, "div", 10)(1, "div", 23);
89
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_10_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.togglePinned()); });
90
- i0.ɵɵelementStart(2, "div", 24);
91
- i0.ɵɵelement(3, "i", 25)(4, "i", 26);
92
- i0.ɵɵelementStart(5, "span");
93
- i0.ɵɵtext(6, "Pinned");
101
+ i0.ɵɵelementStart(0, "button", 23);
102
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createNewConversation()); });
103
+ i0.ɵɵelement(1, "i", 24);
104
+ i0.ɵɵelementStart(2, "span");
105
+ i0.ɵɵtext(3, "New Conversation");
106
+ i0.ɵɵelementEnd()();
107
+ } }
108
+ function ConversationListComponent_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
109
+ const _r7 = i0.ɵɵgetCurrentView();
110
+ i0.ɵɵelementStart(0, "div", 28);
111
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_4_Conditional_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.togglePinned()); });
112
+ i0.ɵɵelementStart(1, "div", 29);
113
+ i0.ɵɵelement(2, "i", 30)(3, "i", 31);
114
+ i0.ɵɵelementStart(4, "span");
115
+ i0.ɵɵtext(5, "Pinned");
94
116
  i0.ɵɵelementEnd()()();
95
- i0.ɵɵelementStart(7, "div", 27);
96
- i0.ɵɵrepeaterCreate(8, ConversationListComponent_Conditional_10_For_9_Template, 1, 4, "ng-container", 28, _forTrack0);
117
+ } if (rf & 2) {
118
+ const ctx_r1 = i0.ɵɵnextContext(2);
119
+ i0.ɵɵclassProp("expanded", ctx_r1.pinnedExpanded);
120
+ } }
121
+ function ConversationListComponent_Conditional_4_For_4_Template(rf, ctx) { if (rf & 1) {
122
+ i0.ɵɵelementContainer(0, 27);
123
+ } if (rf & 2) {
124
+ const conversation_r8 = ctx.$implicit;
125
+ i0.ɵɵnextContext(2);
126
+ const conversationItem_r9 = i0.ɵɵreference(11);
127
+ i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, conversation_r8));
128
+ } }
129
+ function ConversationListComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
130
+ i0.ɵɵelementStart(0, "div", 6);
131
+ i0.ɵɵconditionalCreate(1, ConversationListComponent_Conditional_4_Conditional_1_Template, 6, 2, "div", 25);
132
+ i0.ɵɵelementStart(2, "div", 26);
133
+ i0.ɵɵrepeaterCreate(3, ConversationListComponent_Conditional_4_For_4_Template, 1, 4, "ng-container", 27, _forTrack0);
97
134
  i0.ɵɵelementEnd()();
98
135
  } if (rf & 2) {
99
- const ctx_r2 = i0.ɵɵnextContext();
136
+ const ctx_r1 = i0.ɵɵnextContext();
100
137
  i0.ɵɵadvance();
101
- i0.ɵɵclassProp("expanded", ctx_r2.pinnedExpanded);
102
- i0.ɵɵadvance(6);
103
- i0.ɵɵclassProp("expanded", ctx_r2.pinnedExpanded);
138
+ i0.ɵɵconditional(ctx_r1.showSectionHeaders ? 1 : -1);
139
+ i0.ɵɵadvance();
140
+ i0.ɵɵclassProp("expanded", !ctx_r1.showSectionHeaders || ctx_r1.pinnedExpanded);
104
141
  i0.ɵɵadvance();
105
- i0.ɵɵrepeater(ctx_r2.pinnedConversations);
142
+ i0.ɵɵrepeater(ctx_r1.pinnedConversations);
106
143
  } }
107
- function ConversationListComponent_Conditional_11_For_10_Conditional_0_Template(rf, ctx) { if (rf & 1) {
108
- i0.ɵɵelementContainer(0, 28);
144
+ function ConversationListComponent_Conditional_5_For_10_Conditional_0_Template(rf, ctx) { if (rf & 1) {
145
+ i0.ɵɵelementContainer(0, 27);
109
146
  } if (rf & 2) {
110
- const node_r10 = i0.ɵɵnextContext().$implicit;
147
+ const node_r11 = i0.ɵɵnextContext().$implicit;
111
148
  i0.ɵɵnextContext(2);
112
- const folderNode_r11 = i0.ɵɵreference(15);
113
- i0.ɵɵproperty("ngTemplateOutlet", folderNode_r11)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r10));
149
+ const folderNode_r12 = i0.ɵɵreference(9);
150
+ i0.ɵɵproperty("ngTemplateOutlet", folderNode_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r11));
114
151
  } }
115
- function ConversationListComponent_Conditional_11_For_10_Template(rf, ctx) { if (rf & 1) {
116
- i0.ɵɵconditionalCreate(0, ConversationListComponent_Conditional_11_For_10_Conditional_0_Template, 1, 4, "ng-container", 28);
152
+ function ConversationListComponent_Conditional_5_For_10_Template(rf, ctx) { if (rf & 1) {
153
+ i0.ɵɵconditionalCreate(0, ConversationListComponent_Conditional_5_For_10_Conditional_0_Template, 1, 4, "ng-container", 27);
117
154
  } if (rf & 2) {
118
- const node_r10 = ctx.$implicit;
119
- const ctx_r2 = i0.ɵɵnextContext(2);
120
- i0.ɵɵconditional(!ctx_r2.isSearching || node_r10.hasContent ? 0 : -1);
155
+ const node_r11 = ctx.$implicit;
156
+ const ctx_r1 = i0.ɵɵnextContext(2);
157
+ i0.ɵɵconditional(!ctx_r1.isSearching || node_r11.hasContent ? 0 : -1);
121
158
  } }
122
- function ConversationListComponent_Conditional_11_Conditional_11_Template(rf, ctx) { if (rf & 1) {
123
- i0.ɵɵelementStart(0, "div", 33);
159
+ function ConversationListComponent_Conditional_5_Conditional_11_Template(rf, ctx) { if (rf & 1) {
160
+ i0.ɵɵelementStart(0, "div", 36);
124
161
  i0.ɵɵtext(1, "No folders yet \u2014 create one to organize conversations.");
125
162
  i0.ɵɵelementEnd();
126
163
  } }
127
- function ConversationListComponent_Conditional_11_For_20_Template(rf, ctx) { if (rf & 1) {
128
- i0.ɵɵelementContainer(0, 28);
164
+ function ConversationListComponent_Conditional_5_For_20_Template(rf, ctx) { if (rf & 1) {
165
+ i0.ɵɵelementContainer(0, 27);
129
166
  } if (rf & 2) {
130
- const conversation_r12 = ctx.$implicit;
167
+ const conversation_r13 = ctx.$implicit;
131
168
  i0.ɵɵnextContext(2);
132
- const conversationItem_r8 = i0.ɵɵreference(17);
133
- i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, conversation_r12));
169
+ const conversationItem_r9 = i0.ɵɵreference(11);
170
+ i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, conversation_r13));
134
171
  } }
135
- function ConversationListComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
136
- const _r9 = i0.ɵɵgetCurrentView();
137
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 30);
138
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_11_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleFolders()); })("dragover", function ConversationListComponent_Conditional_11_Template_div_dragover_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFoldersRootDragOver($event)); })("dragleave", function ConversationListComponent_Conditional_11_Template_div_dragleave_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDragLeave("folders-root")); })("drop", function ConversationListComponent_Conditional_11_Template_div_drop_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFoldersRootDrop($event)); });
139
- i0.ɵɵelementStart(2, "div", 24);
140
- i0.ɵɵelement(3, "i", 25);
172
+ function ConversationListComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
173
+ const _r10 = i0.ɵɵgetCurrentView();
174
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 33);
175
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_5_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleFolders()); })("dragover", function ConversationListComponent_Conditional_5_Template_div_dragover_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFoldersRootDragOver($event)); })("dragleave", function ConversationListComponent_Conditional_5_Template_div_dragleave_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDragLeave("folders-root")); })("drop", function ConversationListComponent_Conditional_5_Template_div_drop_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFoldersRootDrop($event)); });
176
+ i0.ɵɵelementStart(2, "div", 29);
177
+ i0.ɵɵelement(3, "i", 30);
141
178
  i0.ɵɵelementStart(4, "span");
142
179
  i0.ɵɵtext(5, "Folders");
143
180
  i0.ɵɵelementEnd()();
144
- i0.ɵɵelementStart(6, "button", 31);
145
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_11_Template_button_click_6_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createFolder(null, $event)); });
146
- i0.ɵɵelement(7, "i", 32);
181
+ i0.ɵɵelementStart(6, "button", 34);
182
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_5_Template_button_click_6_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createFolder(null, $event)); });
183
+ i0.ɵɵelement(7, "i", 35);
147
184
  i0.ɵɵelementEnd()();
148
- i0.ɵɵelementStart(8, "div", 27);
149
- i0.ɵɵrepeaterCreate(9, ConversationListComponent_Conditional_11_For_10_Template, 1, 1, null, null, _forTrack1);
150
- i0.ɵɵconditionalCreate(11, ConversationListComponent_Conditional_11_Conditional_11_Template, 2, 0, "div", 33);
185
+ i0.ɵɵelementStart(8, "div", 26);
186
+ i0.ɵɵrepeaterCreate(9, ConversationListComponent_Conditional_5_For_10_Template, 1, 1, null, null, _forTrack1);
187
+ i0.ɵɵconditionalCreate(11, ConversationListComponent_Conditional_5_Conditional_11_Template, 2, 0, "div", 36);
151
188
  i0.ɵɵelementEnd()();
152
- i0.ɵɵelementStart(12, "div", 34);
153
- i0.ɵɵlistener("dragover", function ConversationListComponent_Conditional_11_Template_div_dragover_12_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUngroupedDragOver($event)); })("dragleave", function ConversationListComponent_Conditional_11_Template_div_dragleave_12_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDragLeave("ungrouped")); })("drop", function ConversationListComponent_Conditional_11_Template_div_drop_12_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUngroupedDrop($event)); });
154
- i0.ɵɵelementStart(13, "div", 23);
155
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_11_Template_div_click_13_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleUngrouped()); });
156
- i0.ɵɵelementStart(14, "div", 24);
157
- i0.ɵɵelement(15, "i", 25);
189
+ i0.ɵɵelementStart(12, "div", 37);
190
+ i0.ɵɵlistener("dragover", function ConversationListComponent_Conditional_5_Template_div_dragover_12_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onUngroupedDragOver($event)); })("dragleave", function ConversationListComponent_Conditional_5_Template_div_dragleave_12_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDragLeave("ungrouped")); })("drop", function ConversationListComponent_Conditional_5_Template_div_drop_12_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onUngroupedDrop($event)); });
191
+ i0.ɵɵelementStart(13, "div", 28);
192
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_5_Template_div_click_13_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleUngrouped()); });
193
+ i0.ɵɵelementStart(14, "div", 29);
194
+ i0.ɵɵelement(15, "i", 30);
158
195
  i0.ɵɵelementStart(16, "span");
159
196
  i0.ɵɵtext(17);
160
197
  i0.ɵɵelementEnd()()();
161
- i0.ɵɵelementStart(18, "div", 27);
162
- i0.ɵɵrepeaterCreate(19, ConversationListComponent_Conditional_11_For_20_Template, 1, 4, "ng-container", 28, _forTrack0);
198
+ i0.ɵɵelementStart(18, "div", 26);
199
+ i0.ɵɵrepeaterCreate(19, ConversationListComponent_Conditional_5_For_20_Template, 1, 4, "ng-container", 27, _forTrack0);
163
200
  i0.ɵɵelementEnd()();
164
201
  } if (rf & 2) {
165
- const ctx_r2 = i0.ɵɵnextContext();
202
+ const ctx_r1 = i0.ɵɵnextContext();
166
203
  i0.ɵɵadvance();
167
- i0.ɵɵclassProp("expanded", ctx_r2.foldersExpanded)("drag-over", ctx_r2.dragOverTargetId === "folders-root");
204
+ i0.ɵɵclassProp("expanded", ctx_r1.foldersExpanded)("drag-over", ctx_r1.dragOverTargetId === "folders-root");
168
205
  i0.ɵɵadvance(7);
169
- i0.ɵɵclassProp("expanded", ctx_r2.foldersExpanded);
206
+ i0.ɵɵclassProp("expanded", ctx_r1.foldersExpanded);
170
207
  i0.ɵɵadvance();
171
- i0.ɵɵrepeater(ctx_r2.folderTree);
208
+ i0.ɵɵrepeater(ctx_r1.folderTree);
172
209
  i0.ɵɵadvance(2);
173
- i0.ɵɵconditional(ctx_r2.folderTree.length === 0 ? 11 : -1);
210
+ i0.ɵɵconditional(ctx_r1.folderTree.length === 0 ? 11 : -1);
174
211
  i0.ɵɵadvance();
175
- i0.ɵɵclassProp("drag-over", ctx_r2.dragOverTargetId === "ungrouped");
212
+ i0.ɵɵclassProp("drag-over", ctx_r1.dragOverTargetId === "ungrouped");
176
213
  i0.ɵɵadvance();
177
- i0.ɵɵclassProp("expanded", ctx_r2.ungroupedExpanded);
214
+ i0.ɵɵclassProp("expanded", ctx_r1.ungroupedExpanded);
178
215
  i0.ɵɵadvance(4);
179
- i0.ɵɵtextInterpolate(ctx_r2.folderTree.length > 0 ? "Ungrouped" : "Messages");
216
+ i0.ɵɵtextInterpolate(ctx_r1.folderTree.length > 0 ? "Ungrouped" : "Messages");
180
217
  i0.ɵɵadvance();
181
- i0.ɵɵclassProp("expanded", ctx_r2.ungroupedExpanded);
218
+ i0.ɵɵclassProp("expanded", ctx_r1.ungroupedExpanded);
182
219
  i0.ɵɵadvance();
183
- i0.ɵɵrepeater(ctx_r2.ungroupedConversations);
220
+ i0.ɵɵrepeater(ctx_r1.ungroupedConversations);
221
+ } }
222
+ function ConversationListComponent_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
223
+ const _r14 = i0.ɵɵgetCurrentView();
224
+ i0.ɵɵelementStart(0, "div", 28);
225
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_6_Conditional_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleDirectMessages()); });
226
+ i0.ɵɵelementStart(1, "div", 29);
227
+ i0.ɵɵelement(2, "i", 30);
228
+ i0.ɵɵelementStart(3, "span");
229
+ i0.ɵɵtext(4, "Messages");
230
+ i0.ɵɵelementEnd()()();
231
+ } if (rf & 2) {
232
+ const ctx_r1 = i0.ɵɵnextContext(2);
233
+ i0.ɵɵclassProp("expanded", ctx_r1.directMessagesExpanded);
184
234
  } }
185
- function ConversationListComponent_Conditional_12_For_8_Template(rf, ctx) { if (rf & 1) {
186
- i0.ɵɵelementContainer(0, 28);
235
+ function ConversationListComponent_Conditional_6_For_4_Template(rf, ctx) { if (rf & 1) {
236
+ i0.ɵɵelementContainer(0, 27);
187
237
  } if (rf & 2) {
188
- const conversation_r14 = ctx.$implicit;
238
+ const conversation_r15 = ctx.$implicit;
189
239
  i0.ɵɵnextContext(2);
190
- const conversationItem_r8 = i0.ɵɵreference(17);
191
- i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, conversation_r14));
240
+ const conversationItem_r9 = i0.ɵɵreference(11);
241
+ i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, conversation_r15));
192
242
  } }
193
- function ConversationListComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
194
- const _r13 = i0.ɵɵgetCurrentView();
195
- i0.ɵɵelementStart(0, "div", 11)(1, "div", 23);
196
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_12_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleDirectMessages()); });
197
- i0.ɵɵelementStart(2, "div", 24);
198
- i0.ɵɵelement(3, "i", 25);
199
- i0.ɵɵelementStart(4, "span");
200
- i0.ɵɵtext(5, "Messages");
201
- i0.ɵɵelementEnd()()();
202
- i0.ɵɵelementStart(6, "div", 27);
203
- i0.ɵɵrepeaterCreate(7, ConversationListComponent_Conditional_12_For_8_Template, 1, 4, "ng-container", 28, _forTrack0);
243
+ function ConversationListComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
244
+ i0.ɵɵelementStart(0, "div", 7);
245
+ i0.ɵɵconditionalCreate(1, ConversationListComponent_Conditional_6_Conditional_1_Template, 5, 2, "div", 25);
246
+ i0.ɵɵelementStart(2, "div", 26);
247
+ i0.ɵɵrepeaterCreate(3, ConversationListComponent_Conditional_6_For_4_Template, 1, 4, "ng-container", 27, _forTrack0);
204
248
  i0.ɵɵelementEnd()();
205
249
  } if (rf & 2) {
206
- const ctx_r2 = i0.ɵɵnextContext();
250
+ const ctx_r1 = i0.ɵɵnextContext();
207
251
  i0.ɵɵadvance();
208
- i0.ɵɵclassProp("expanded", ctx_r2.directMessagesExpanded);
209
- i0.ɵɵadvance(5);
210
- i0.ɵɵclassProp("expanded", ctx_r2.directMessagesExpanded);
252
+ i0.ɵɵconditional(ctx_r1.showSectionHeaders ? 1 : -1);
211
253
  i0.ɵɵadvance();
212
- i0.ɵɵrepeater(ctx_r2.unpinnedConversations);
254
+ i0.ɵɵclassProp("expanded", !ctx_r1.showSectionHeaders || ctx_r1.directMessagesExpanded);
255
+ i0.ɵɵadvance();
256
+ i0.ɵɵrepeater(ctx_r1.unpinnedConversations);
213
257
  } }
214
- function ConversationListComponent_Conditional_13_Conditional_4_Template(rf, ctx) { if (rf & 1) {
215
- const _r16 = i0.ɵɵgetCurrentView();
216
- i0.ɵɵelementStart(0, "button", 42);
217
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_13_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.selectAll()); });
258
+ function ConversationListComponent_Conditional_7_Conditional_4_Template(rf, ctx) { if (rf & 1) {
259
+ const _r17 = i0.ɵɵgetCurrentView();
260
+ i0.ɵɵelementStart(0, "button", 45);
261
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_7_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.selectAll()); });
218
262
  i0.ɵɵtext(1, "Select All");
219
263
  i0.ɵɵelementEnd();
220
264
  } }
221
- function ConversationListComponent_Conditional_13_Conditional_5_Template(rf, ctx) { if (rf & 1) {
222
- const _r17 = i0.ɵɵgetCurrentView();
223
- i0.ɵɵelementStart(0, "button", 42);
224
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_13_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.deselectAll()); });
265
+ function ConversationListComponent_Conditional_7_Conditional_5_Template(rf, ctx) { if (rf & 1) {
266
+ const _r18 = i0.ɵɵgetCurrentView();
267
+ i0.ɵɵelementStart(0, "button", 45);
268
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_7_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.deselectAll()); });
225
269
  i0.ɵɵtext(1, "Deselect All");
226
270
  i0.ɵɵelementEnd();
227
271
  } }
228
- function ConversationListComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
229
- const _r15 = i0.ɵɵgetCurrentView();
230
- i0.ɵɵelementStart(0, "div", 12)(1, "div", 35)(2, "span", 36);
272
+ function ConversationListComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
273
+ const _r16 = i0.ɵɵgetCurrentView();
274
+ i0.ɵɵelementStart(0, "div", 8)(1, "div", 38)(2, "span", 39);
231
275
  i0.ɵɵtext(3);
232
276
  i0.ɵɵelementEnd();
233
- i0.ɵɵconditionalCreate(4, ConversationListComponent_Conditional_13_Conditional_4_Template, 2, 0, "button", 37)(5, ConversationListComponent_Conditional_13_Conditional_5_Template, 2, 0, "button", 37);
277
+ i0.ɵɵconditionalCreate(4, ConversationListComponent_Conditional_7_Conditional_4_Template, 2, 0, "button", 40)(5, ConversationListComponent_Conditional_7_Conditional_5_Template, 2, 0, "button", 40);
234
278
  i0.ɵɵelementEnd();
235
- i0.ɵɵelementStart(6, "div", 38)(7, "button", 39);
236
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_13_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.bulkDeleteConversations()); });
237
- i0.ɵɵelement(8, "i", 40);
279
+ i0.ɵɵelementStart(6, "div", 41)(7, "button", 42);
280
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_7_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.bulkDeleteConversations()); });
281
+ i0.ɵɵelement(8, "i", 43);
238
282
  i0.ɵɵtext(9);
239
283
  i0.ɵɵelementEnd();
240
- i0.ɵɵelementStart(10, "button", 41);
241
- i0.ɵɵlistener("click", function ConversationListComponent_Conditional_13_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleSelectionMode()); });
284
+ i0.ɵɵelementStart(10, "button", 44);
285
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_7_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleSelectionMode()); });
242
286
  i0.ɵɵtext(11, " Cancel ");
243
287
  i0.ɵɵelementEnd()()();
244
288
  } if (rf & 2) {
245
- const ctx_r2 = i0.ɵɵnextContext();
289
+ const ctx_r1 = i0.ɵɵnextContext();
246
290
  i0.ɵɵadvance(3);
247
- i0.ɵɵtextInterpolate1("", ctx_r2.selectedConversationIds.size, " selected");
291
+ i0.ɵɵtextInterpolate1("", ctx_r1.selectedConversationIds.size, " selected");
248
292
  i0.ɵɵadvance();
249
- i0.ɵɵconditional(ctx_r2.selectedConversationIds.size < ctx_r2.filteredConversations.length ? 4 : 5);
293
+ i0.ɵɵconditional(ctx_r1.selectedConversationIds.size < ctx_r1.filteredConversations.length ? 4 : 5);
250
294
  i0.ɵɵadvance(3);
251
- i0.ɵɵproperty("disabled", ctx_r2.selectedConversationIds.size === 0);
295
+ i0.ɵɵproperty("disabled", ctx_r1.selectedConversationIds.size === 0);
252
296
  i0.ɵɵadvance(2);
253
- i0.ɵɵtextInterpolate1(" Delete (", ctx_r2.selectedConversationIds.size, ") ");
297
+ i0.ɵɵtextInterpolate1(" Delete (", ctx_r1.selectedConversationIds.size, ") ");
254
298
  } }
255
- function ConversationListComponent_ng_template_14_Conditional_14_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
256
- i0.ɵɵelementContainer(0, 28);
299
+ function ConversationListComponent_ng_template_8_Conditional_14_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
300
+ i0.ɵɵelementContainer(0, 27);
257
301
  } if (rf & 2) {
258
- const child_r20 = i0.ɵɵnextContext().$implicit;
302
+ const child_r21 = i0.ɵɵnextContext().$implicit;
259
303
  i0.ɵɵnextContext(3);
260
- const folderNode_r11 = i0.ɵɵreference(15);
261
- i0.ɵɵproperty("ngTemplateOutlet", folderNode_r11)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, child_r20));
304
+ const folderNode_r12 = i0.ɵɵreference(9);
305
+ i0.ɵɵproperty("ngTemplateOutlet", folderNode_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, child_r21));
262
306
  } }
263
- function ConversationListComponent_ng_template_14_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
264
- i0.ɵɵconditionalCreate(0, ConversationListComponent_ng_template_14_Conditional_14_For_2_Conditional_0_Template, 1, 4, "ng-container", 28);
307
+ function ConversationListComponent_ng_template_8_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
308
+ i0.ɵɵconditionalCreate(0, ConversationListComponent_ng_template_8_Conditional_14_For_2_Conditional_0_Template, 1, 4, "ng-container", 27);
265
309
  } if (rf & 2) {
266
- const child_r20 = ctx.$implicit;
267
- const ctx_r2 = i0.ɵɵnextContext(3);
268
- i0.ɵɵconditional(!ctx_r2.isSearching || child_r20.hasContent ? 0 : -1);
310
+ const child_r21 = ctx.$implicit;
311
+ const ctx_r1 = i0.ɵɵnextContext(3);
312
+ i0.ɵɵconditional(!ctx_r1.isSearching || child_r21.hasContent ? 0 : -1);
269
313
  } }
270
- function ConversationListComponent_ng_template_14_Conditional_14_For_4_Template(rf, ctx) { if (rf & 1) {
271
- i0.ɵɵelementContainer(0, 28);
314
+ function ConversationListComponent_ng_template_8_Conditional_14_For_4_Template(rf, ctx) { if (rf & 1) {
315
+ i0.ɵɵelementContainer(0, 27);
272
316
  } if (rf & 2) {
273
- const conversation_r21 = ctx.$implicit;
274
- const node_r19 = i0.ɵɵnextContext(2).$implicit;
317
+ const conversation_r22 = ctx.$implicit;
318
+ const node_r20 = i0.ɵɵnextContext(2).$implicit;
275
319
  i0.ɵɵnextContext();
276
- const conversationItem_r8 = i0.ɵɵreference(17);
277
- i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, conversation_r21, node_r19.depth + 1));
320
+ const conversationItem_r9 = i0.ɵɵreference(11);
321
+ i0.ɵɵproperty("ngTemplateOutlet", conversationItem_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, conversation_r22, node_r20.depth + 1));
278
322
  } }
279
- function ConversationListComponent_ng_template_14_Conditional_14_Conditional_5_Template(rf, ctx) { if (rf & 1) {
280
- i0.ɵɵelementStart(0, "div", 33);
323
+ function ConversationListComponent_ng_template_8_Conditional_14_Conditional_5_Template(rf, ctx) { if (rf & 1) {
324
+ i0.ɵɵelementStart(0, "div", 36);
281
325
  i0.ɵɵtext(1, "Empty \u2014 drop a conversation here");
282
326
  i0.ɵɵelementEnd();
283
327
  } if (rf & 2) {
284
- const node_r19 = i0.ɵɵnextContext(2).$implicit;
285
- i0.ɵɵstyleProp("padding-left", 26 + node_r19.depth * 14, "px");
328
+ const node_r20 = i0.ɵɵnextContext(2).$implicit;
329
+ i0.ɵɵstyleProp("padding-left", 26 + node_r20.depth * 14, "px");
286
330
  } }
287
- function ConversationListComponent_ng_template_14_Conditional_14_Template(rf, ctx) { if (rf & 1) {
288
- i0.ɵɵelementStart(0, "div", 52);
289
- i0.ɵɵrepeaterCreate(1, ConversationListComponent_ng_template_14_Conditional_14_For_2_Template, 1, 1, null, null, _forTrack1);
290
- i0.ɵɵrepeaterCreate(3, ConversationListComponent_ng_template_14_Conditional_14_For_4_Template, 1, 5, "ng-container", 28, _forTrack0);
291
- i0.ɵɵconditionalCreate(5, ConversationListComponent_ng_template_14_Conditional_14_Conditional_5_Template, 2, 2, "div", 53);
331
+ function ConversationListComponent_ng_template_8_Conditional_14_Template(rf, ctx) { if (rf & 1) {
332
+ i0.ɵɵelementStart(0, "div", 55);
333
+ i0.ɵɵrepeaterCreate(1, ConversationListComponent_ng_template_8_Conditional_14_For_2_Template, 1, 1, null, null, _forTrack1);
334
+ i0.ɵɵrepeaterCreate(3, ConversationListComponent_ng_template_8_Conditional_14_For_4_Template, 1, 5, "ng-container", 27, _forTrack0);
335
+ i0.ɵɵconditionalCreate(5, ConversationListComponent_ng_template_8_Conditional_14_Conditional_5_Template, 2, 2, "div", 56);
292
336
  i0.ɵɵelementEnd();
293
337
  } if (rf & 2) {
294
- const node_r19 = i0.ɵɵnextContext().$implicit;
295
- const ctx_r2 = i0.ɵɵnextContext();
338
+ const node_r20 = i0.ɵɵnextContext().$implicit;
339
+ const ctx_r1 = i0.ɵɵnextContext();
296
340
  i0.ɵɵadvance();
297
- i0.ɵɵrepeater(node_r19.children);
341
+ i0.ɵɵrepeater(node_r20.children);
298
342
  i0.ɵɵadvance(2);
299
- i0.ɵɵrepeater(node_r19.conversations);
343
+ i0.ɵɵrepeater(node_r20.conversations);
300
344
  i0.ɵɵadvance(2);
301
- i0.ɵɵconditional(node_r19.totalCount === 0 && !ctx_r2.isSearching ? 5 : -1);
345
+ i0.ɵɵconditional(node_r20.totalCount === 0 && !ctx_r1.isSearching ? 5 : -1);
302
346
  } }
303
- function ConversationListComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
304
- const _r18 = i0.ɵɵgetCurrentView();
305
- i0.ɵɵelementStart(0, "div", 43);
306
- i0.ɵɵlistener("dragstart", function ConversationListComponent_ng_template_14_Template_div_dragstart_0_listener($event) { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFolderDragStart(node_r19, $event)); })("dragend", function ConversationListComponent_ng_template_14_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFolderDragEnd()); })("click", function ConversationListComponent_ng_template_14_Template_div_click_0_listener() { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleFolder(node_r19.project.ID)); })("dragover", function ConversationListComponent_ng_template_14_Template_div_dragover_0_listener($event) { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFolderDragOver(node_r19.project.ID, $event)); })("dragleave", function ConversationListComponent_ng_template_14_Template_div_dragleave_0_listener() { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDragLeave(node_r19.project.ID)); })("drop", function ConversationListComponent_ng_template_14_Template_div_drop_0_listener($event) { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFolderDrop(node_r19.project, $event)); });
307
- i0.ɵɵelement(1, "i", 44)(2, "i");
308
- i0.ɵɵelementStart(3, "span", 45);
347
+ function ConversationListComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
348
+ const _r19 = i0.ɵɵgetCurrentView();
349
+ i0.ɵɵelementStart(0, "div", 46);
350
+ i0.ɵɵlistener("dragstart", function ConversationListComponent_ng_template_8_Template_div_dragstart_0_listener($event) { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFolderDragStart(node_r20, $event)); })("dragend", function ConversationListComponent_ng_template_8_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFolderDragEnd()); })("click", function ConversationListComponent_ng_template_8_Template_div_click_0_listener() { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleFolder(node_r20.project.ID)); })("dragover", function ConversationListComponent_ng_template_8_Template_div_dragover_0_listener($event) { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFolderDragOver(node_r20.project.ID, $event)); })("dragleave", function ConversationListComponent_ng_template_8_Template_div_dragleave_0_listener() { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDragLeave(node_r20.project.ID)); })("drop", function ConversationListComponent_ng_template_8_Template_div_drop_0_listener($event) { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFolderDrop(node_r20.project, $event)); });
351
+ i0.ɵɵelement(1, "i", 47)(2, "i");
352
+ i0.ɵɵelementStart(3, "span", 48);
309
353
  i0.ɵɵtext(4);
310
354
  i0.ɵɵelementEnd();
311
- i0.ɵɵelementStart(5, "span", 46);
355
+ i0.ɵɵelementStart(5, "span", 49);
312
356
  i0.ɵɵtext(6);
313
357
  i0.ɵɵelementEnd();
314
- i0.ɵɵelementStart(7, "div", 47);
315
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_14_Template_div_click_7_listener($event) { i0.ɵɵrestoreView(_r18); return i0.ɵɵresetView($event.stopPropagation()); });
316
- i0.ɵɵelementStart(8, "button", 48);
317
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_14_Template_button_click_8_listener($event) { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createFolder(node_r19.project.ID, $event)); });
318
- i0.ɵɵelement(9, "i", 32);
358
+ i0.ɵɵelementStart(7, "div", 50);
359
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_8_Template_div_click_7_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
360
+ i0.ɵɵelementStart(8, "button", 51);
361
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_8_Template_button_click_8_listener($event) { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createFolder(node_r20.project.ID, $event)); });
362
+ i0.ɵɵelement(9, "i", 35);
319
363
  i0.ɵɵelementEnd();
320
- i0.ɵɵelementStart(10, "button", 49);
321
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_14_Template_button_click_10_listener($event) { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.editFolder(node_r19.project, $event)); });
322
- i0.ɵɵelement(11, "i", 50);
364
+ i0.ɵɵelementStart(10, "button", 52);
365
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_8_Template_button_click_10_listener($event) { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.editFolder(node_r20.project, $event)); });
366
+ i0.ɵɵelement(11, "i", 53);
323
367
  i0.ɵɵelementEnd();
324
- i0.ɵɵelementStart(12, "button", 51);
325
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_14_Template_button_click_12_listener($event) { const node_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteFolder(node_r19.project, $event)); });
326
- i0.ɵɵelement(13, "i", 40);
368
+ i0.ɵɵelementStart(12, "button", 54);
369
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_8_Template_button_click_12_listener($event) { const node_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deleteFolder(node_r20.project, $event)); });
370
+ i0.ɵɵelement(13, "i", 43);
327
371
  i0.ɵɵelementEnd()()();
328
- i0.ɵɵconditionalCreate(14, ConversationListComponent_ng_template_14_Conditional_14_Template, 6, 1, "div", 52);
372
+ i0.ɵɵconditionalCreate(14, ConversationListComponent_ng_template_8_Conditional_14_Template, 6, 1, "div", 55);
329
373
  } if (rf & 2) {
330
- const node_r19 = ctx.$implicit;
331
- const ctx_r2 = i0.ɵɵnextContext();
332
- i0.ɵɵstyleProp("padding-left", 12 + node_r19.depth * 14, "px");
333
- i0.ɵɵclassProp("drag-over", ctx_r2.dragOverTargetId === node_r19.project.ID)("dragging", ctx_r2.draggedFolderId === node_r19.project.ID);
334
- i0.ɵɵproperty("draggable", true)("title", node_r19.project.Name);
374
+ const node_r20 = ctx.$implicit;
375
+ const ctx_r1 = i0.ɵɵnextContext();
376
+ i0.ɵɵstyleProp("padding-left", 12 + node_r20.depth * 14, "px");
377
+ i0.ɵɵclassProp("drag-over", ctx_r1.dragOverTargetId === node_r20.project.ID)("dragging", ctx_r1.draggedFolderId === node_r20.project.ID);
378
+ i0.ɵɵproperty("draggable", true)("title", node_r20.project.Name);
335
379
  i0.ɵɵadvance();
336
- i0.ɵɵclassProp("expanded", ctx_r2.isFolderExpanded(node_r19.project.ID));
380
+ i0.ɵɵclassProp("expanded", ctx_r1.isFolderExpanded(node_r20.project.ID));
337
381
  i0.ɵɵadvance();
338
- i0.ɵɵclassMap(i0.ɵɵinterpolate1("fas ", node_r19.project.Icon || "fa-folder", " folder-icon"));
339
- i0.ɵɵstyleProp("color", node_r19.project.Color || null);
382
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("fas ", node_r20.project.Icon || "fa-folder", " folder-icon"));
383
+ i0.ɵɵstyleProp("color", node_r20.project.Color || null);
340
384
  i0.ɵɵadvance(2);
341
- i0.ɵɵtextInterpolate(node_r19.project.Name);
385
+ i0.ɵɵtextInterpolate(node_r20.project.Name);
342
386
  i0.ɵɵadvance(2);
343
- i0.ɵɵtextInterpolate(node_r19.totalCount);
387
+ i0.ɵɵtextInterpolate(node_r20.totalCount);
344
388
  i0.ɵɵadvance(8);
345
- i0.ɵɵconditional(ctx_r2.isFolderExpanded(node_r19.project.ID) ? 14 : -1);
389
+ i0.ɵɵconditional(ctx_r1.isFolderExpanded(node_r20.project.ID) ? 14 : -1);
346
390
  } }
347
- function ConversationListComponent_ng_template_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
348
- const _r24 = i0.ɵɵgetCurrentView();
349
- i0.ɵɵelementStart(0, "div", 55)(1, "input", 65);
350
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_1_Template_input_click_1_listener($event) { i0.ɵɵrestoreView(_r24); const conversation_r23 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r2.toggleConversationSelection(conversation_r23.ID)); });
391
+ function ConversationListComponent_ng_template_10_Conditional_1_Template(rf, ctx) { if (rf & 1) {
392
+ const _r25 = i0.ɵɵgetCurrentView();
393
+ i0.ɵɵelementStart(0, "div", 58)(1, "input", 68);
394
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_1_Template_input_click_1_listener($event) { i0.ɵɵrestoreView(_r25); const conversation_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.toggleConversationSelection(conversation_r24.ID)); });
351
395
  i0.ɵɵelementEnd()();
352
396
  } if (rf & 2) {
353
- const conversation_r23 = i0.ɵɵnextContext().$implicit;
354
- const ctx_r2 = i0.ɵɵnextContext();
397
+ const conversation_r24 = i0.ɵɵnextContext().$implicit;
398
+ const ctx_r1 = i0.ɵɵnextContext();
355
399
  i0.ɵɵadvance();
356
- i0.ɵɵproperty("checked", ctx_r2.selectedConversationIds.has(conversation_r23.ID));
400
+ i0.ɵɵproperty("checked", ctx_r1.selectedConversationIds.has(conversation_r24.ID));
357
401
  } }
358
- function ConversationListComponent_ng_template_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
359
- i0.ɵɵelementStart(0, "div", 57);
360
- i0.ɵɵelement(1, "i", 66);
402
+ function ConversationListComponent_ng_template_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
403
+ i0.ɵɵelementStart(0, "div", 60);
404
+ i0.ɵɵelement(1, "i", 69);
361
405
  i0.ɵɵelementEnd();
362
406
  } }
363
- function ConversationListComponent_ng_template_16_Conditional_9_Template(rf, ctx) { if (rf & 1) {
364
- i0.ɵɵelement(0, "i", 62);
407
+ function ConversationListComponent_ng_template_10_Conditional_9_Template(rf, ctx) { if (rf & 1) {
408
+ i0.ɵɵelement(0, "i", 65);
365
409
  } if (rf & 2) {
366
- const conversation_r23 = i0.ɵɵnextContext().$implicit;
367
- const ctx_r2 = i0.ɵɵnextContext();
368
- i0.ɵɵproperty("title", ctx_r2.sharedWithMeTooltip(conversation_r23));
410
+ const conversation_r24 = i0.ɵɵnextContext().$implicit;
411
+ const ctx_r1 = i0.ɵɵnextContext();
412
+ i0.ɵɵproperty("title", ctx_r1.sharedWithMeTooltip(conversation_r24));
369
413
  } }
370
- function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_For_11_Template(rf, ctx) { if (rf & 1) {
371
- const _r28 = i0.ɵɵgetCurrentView();
372
- i0.ɵɵelementStart(0, "button", 75);
373
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_For_11_Template_button_click_0_listener() { const f_r29 = i0.ɵɵrestoreView(_r28).$implicit; const conversation_r23 = i0.ɵɵnextContext(4).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectMoveTarget(conversation_r23, f_r29.project.ID)); });
414
+ function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_For_11_Template(rf, ctx) { if (rf & 1) {
415
+ const _r29 = i0.ɵɵgetCurrentView();
416
+ i0.ɵɵelementStart(0, "button", 78);
417
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_For_11_Template_button_click_0_listener() { const f_r30 = i0.ɵɵrestoreView(_r29).$implicit; const conversation_r24 = i0.ɵɵnextContext(4).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectMoveTarget(conversation_r24, f_r30.project.ID)); });
374
418
  i0.ɵɵelement(1, "i");
375
419
  i0.ɵɵelementStart(2, "span");
376
420
  i0.ɵɵtext(3);
377
421
  i0.ɵɵelementEnd()();
378
422
  } if (rf & 2) {
379
- const f_r29 = ctx.$implicit;
380
- const conversation_r23 = i0.ɵɵnextContext(4).$implicit;
381
- const ctx_r2 = i0.ɵɵnextContext();
382
- i0.ɵɵstyleProp("padding-left", 14 + f_r29.depth * 12, "px");
383
- i0.ɵɵclassProp("current", ctx_r2.IsInFolder(conversation_r23, f_r29.project.ID));
423
+ const f_r30 = ctx.$implicit;
424
+ const conversation_r24 = i0.ɵɵnextContext(4).$implicit;
425
+ const ctx_r1 = i0.ɵɵnextContext();
426
+ i0.ɵɵstyleProp("padding-left", 14 + f_r30.depth * 12, "px");
427
+ i0.ɵɵclassProp("current", ctx_r1.IsInFolder(conversation_r24, f_r30.project.ID));
384
428
  i0.ɵɵadvance();
385
- i0.ɵɵclassMap(i0.ɵɵinterpolate1("fas ", f_r29.project.Icon || "fa-folder"));
386
- i0.ɵɵstyleProp("color", f_r29.project.Color || null);
429
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("fas ", f_r30.project.Icon || "fa-folder"));
430
+ i0.ɵɵstyleProp("color", f_r30.project.Color || null);
387
431
  i0.ɵɵadvance(2);
388
- i0.ɵɵtextInterpolate(f_r29.project.Name);
432
+ i0.ɵɵtextInterpolate(f_r30.project.Name);
389
433
  } }
390
- function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
391
- const _r27 = i0.ɵɵgetCurrentView();
392
- i0.ɵɵelementStart(0, "button", 71);
393
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.closeMoveSubmenu($event)); });
394
- i0.ɵɵelement(1, "i", 72);
434
+ function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
435
+ const _r28 = i0.ɵɵgetCurrentView();
436
+ i0.ɵɵelementStart(0, "button", 74);
437
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.closeMoveSubmenu($event)); });
438
+ i0.ɵɵelement(1, "i", 75);
395
439
  i0.ɵɵelementStart(2, "span");
396
440
  i0.ɵɵtext(3, "Move to folder");
397
441
  i0.ɵɵelementEnd()();
398
- i0.ɵɵelement(4, "div", 73);
399
- i0.ɵɵelementStart(5, "div", 74)(6, "button", 75);
400
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r27); const conversation_r23 = i0.ɵɵnextContext(3).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectMoveTarget(conversation_r23, null)); });
401
- i0.ɵɵelement(7, "i", 76);
442
+ i0.ɵɵelement(4, "div", 76);
443
+ i0.ɵɵelementStart(5, "div", 77)(6, "button", 78);
444
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r28); const conversation_r24 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectMoveTarget(conversation_r24, null)); });
445
+ i0.ɵɵelement(7, "i", 79);
402
446
  i0.ɵɵelementStart(8, "span");
403
447
  i0.ɵɵtext(9, "No folder");
404
448
  i0.ɵɵelementEnd()();
405
- i0.ɵɵrepeaterCreate(10, ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_For_11_Template, 4, 10, "button", 77, _forTrack1);
449
+ i0.ɵɵrepeaterCreate(10, ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_For_11_Template, 4, 10, "button", 80, _forTrack1);
406
450
  i0.ɵɵelementEnd();
407
- i0.ɵɵelement(12, "div", 73);
408
- i0.ɵɵelementStart(13, "button", 75);
409
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_Template_button_click_13_listener($event) { i0.ɵɵrestoreView(_r27); const conversation_r23 = i0.ɵɵnextContext(3).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createFolderForConversation(conversation_r23, $event)); });
410
- i0.ɵɵelement(14, "i", 32);
451
+ i0.ɵɵelement(12, "div", 76);
452
+ i0.ɵɵelementStart(13, "button", 78);
453
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_Template_button_click_13_listener($event) { i0.ɵɵrestoreView(_r28); const conversation_r24 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createFolderForConversation(conversation_r24, $event)); });
454
+ i0.ɵɵelement(14, "i", 35);
411
455
  i0.ɵɵelementStart(15, "span");
412
456
  i0.ɵɵtext(16, "New folder\u2026");
413
457
  i0.ɵɵelementEnd()();
414
458
  } if (rf & 2) {
415
- const conversation_r23 = i0.ɵɵnextContext(3).$implicit;
416
- const ctx_r2 = i0.ɵɵnextContext();
459
+ const conversation_r24 = i0.ɵɵnextContext(3).$implicit;
460
+ const ctx_r1 = i0.ɵɵnextContext();
417
461
  i0.ɵɵadvance(6);
418
- i0.ɵɵclassProp("current", !conversation_r23.ProjectID);
462
+ i0.ɵɵclassProp("current", !conversation_r24.ProjectID);
419
463
  i0.ɵɵadvance(4);
420
- i0.ɵɵrepeater(ctx_r2.flatFolders);
464
+ i0.ɵɵrepeater(ctx_r1.flatFolders);
421
465
  } }
422
- function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
423
- const _r30 = i0.ɵɵgetCurrentView();
424
- i0.ɵɵelementStart(0, "button", 75);
425
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r30); const conversation_r23 = i0.ɵɵnextContext(3).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.togglePin(conversation_r23, $event)); });
426
- i0.ɵɵelement(1, "i", 78);
466
+ function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
467
+ const _r31 = i0.ɵɵgetCurrentView();
468
+ i0.ɵɵelementStart(0, "button", 78);
469
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r31); const conversation_r24 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.togglePin(conversation_r24, $event)); });
470
+ i0.ɵɵelement(1, "i", 81);
427
471
  i0.ɵɵelementStart(2, "span");
428
472
  i0.ɵɵtext(3);
429
473
  i0.ɵɵelementEnd()();
430
- i0.ɵɵelementStart(4, "button", 75);
431
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_2_Template_button_click_4_listener($event) { i0.ɵɵrestoreView(_r30); const conversation_r23 = i0.ɵɵnextContext(3).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.openMoveSubmenu(conversation_r23.ID, $event)); });
432
- i0.ɵɵelement(5, "i", 79);
474
+ i0.ɵɵelementStart(4, "button", 78);
475
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_2_Template_button_click_4_listener($event) { i0.ɵɵrestoreView(_r31); const conversation_r24 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openMoveSubmenu(conversation_r24.ID, $event)); });
476
+ i0.ɵɵelement(5, "i", 82);
433
477
  i0.ɵɵelementStart(6, "span");
434
478
  i0.ɵɵtext(7, "Move to folder");
435
479
  i0.ɵɵelementEnd();
436
- i0.ɵɵelement(8, "i", 80);
480
+ i0.ɵɵelement(8, "i", 83);
437
481
  i0.ɵɵelementEnd();
438
- i0.ɵɵelementStart(9, "button", 75);
439
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_2_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r30); const conversation_r23 = i0.ɵɵnextContext(3).$implicit; const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.renameConversation(conversation_r23); return i0.ɵɵresetView(ctx_r2.closeMenu()); });
440
- i0.ɵɵelement(10, "i", 81);
482
+ i0.ɵɵelementStart(9, "button", 78);
483
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_2_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r31); const conversation_r24 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.renameConversation(conversation_r24); return i0.ɵɵresetView(ctx_r1.closeMenu()); });
484
+ i0.ɵɵelement(10, "i", 84);
441
485
  i0.ɵɵelementStart(11, "span");
442
486
  i0.ɵɵtext(12, "Rename");
443
487
  i0.ɵɵelementEnd()();
444
- i0.ɵɵelement(13, "div", 73);
445
- i0.ɵɵelementStart(14, "button", 82);
446
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_2_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r30); const conversation_r23 = i0.ɵɵnextContext(3).$implicit; const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.deleteConversation(conversation_r23); return i0.ɵɵresetView(ctx_r2.closeMenu()); });
447
- i0.ɵɵelement(15, "i", 40);
488
+ i0.ɵɵelement(13, "div", 76);
489
+ i0.ɵɵelementStart(14, "button", 85);
490
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_2_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r31); const conversation_r24 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.deleteConversation(conversation_r24); return i0.ɵɵresetView(ctx_r1.closeMenu()); });
491
+ i0.ɵɵelement(15, "i", 43);
448
492
  i0.ɵɵelementStart(16, "span");
449
493
  i0.ɵɵtext(17, "Delete");
450
494
  i0.ɵɵelementEnd()();
451
495
  } if (rf & 2) {
452
- const conversation_r23 = i0.ɵɵnextContext(3).$implicit;
496
+ const conversation_r24 = i0.ɵɵnextContext(3).$implicit;
453
497
  i0.ɵɵadvance(3);
454
- i0.ɵɵtextInterpolate(conversation_r23.IsPinned ? "Unpin" : "Pin");
498
+ i0.ɵɵtextInterpolate(conversation_r24.IsPinned ? "Unpin" : "Pin");
455
499
  } }
456
- function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Template(rf, ctx) { if (rf & 1) {
457
- const _r26 = i0.ɵɵgetCurrentView();
458
- i0.ɵɵelementStart(0, "div", 70);
459
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r26); return i0.ɵɵresetView($event.stopPropagation()); });
460
- i0.ɵɵconditionalCreate(1, ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_1_Template, 17, 2)(2, ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Conditional_2_Template, 18, 1);
500
+ function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Template(rf, ctx) { if (rf & 1) {
501
+ const _r27 = i0.ɵɵgetCurrentView();
502
+ i0.ɵɵelementStart(0, "div", 73);
503
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r27); return i0.ɵɵresetView($event.stopPropagation()); });
504
+ i0.ɵɵconditionalCreate(1, ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_1_Template, 17, 2)(2, ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Conditional_2_Template, 18, 1);
461
505
  i0.ɵɵelementEnd();
462
506
  } if (rf & 2) {
463
- const conversation_r23 = i0.ɵɵnextContext(2).$implicit;
464
- const ctx_r2 = i0.ɵɵnextContext();
507
+ const conversation_r24 = i0.ɵɵnextContext(2).$implicit;
508
+ const ctx_r1 = i0.ɵɵnextContext();
465
509
  i0.ɵɵadvance();
466
- i0.ɵɵconditional(ctx_r2.IsMoveSubmenuOpen(conversation_r23) ? 1 : 2);
510
+ i0.ɵɵconditional(ctx_r1.IsMoveSubmenuOpen(conversation_r24) ? 1 : 2);
467
511
  } }
468
- function ConversationListComponent_ng_template_16_Conditional_12_Template(rf, ctx) { if (rf & 1) {
469
- const _r25 = i0.ɵɵgetCurrentView();
470
- i0.ɵɵelementStart(0, "div", 64)(1, "button", 67);
471
- i0.ɵɵlistener("click", function ConversationListComponent_ng_template_16_Conditional_12_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r25); const conversation_r23 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleMenu(conversation_r23.ID, $event)); });
472
- i0.ɵɵelement(2, "i", 68);
512
+ function ConversationListComponent_ng_template_10_Conditional_12_Template(rf, ctx) { if (rf & 1) {
513
+ const _r26 = i0.ɵɵgetCurrentView();
514
+ i0.ɵɵelementStart(0, "div", 67)(1, "button", 70);
515
+ i0.ɵɵlistener("click", function ConversationListComponent_ng_template_10_Conditional_12_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r26); const conversation_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleMenu(conversation_r24.ID, $event)); });
516
+ i0.ɵɵelement(2, "i", 71);
473
517
  i0.ɵɵelementEnd();
474
- i0.ɵɵconditionalCreate(3, ConversationListComponent_ng_template_16_Conditional_12_Conditional_3_Template, 3, 1, "div", 69);
518
+ i0.ɵɵconditionalCreate(3, ConversationListComponent_ng_template_10_Conditional_12_Conditional_3_Template, 3, 1, "div", 72);
475
519
  i0.ɵɵelementEnd();
476
520
  } if (rf & 2) {
477
- const conversation_r23 = i0.ɵɵnextContext().$implicit;
478
- const ctx_r2 = i0.ɵɵnextContext();
521
+ const conversation_r24 = i0.ɵɵnextContext().$implicit;
522
+ const ctx_r1 = i0.ɵɵnextContext();
479
523
  i0.ɵɵadvance(3);
480
- i0.ɵɵconditional(ctx_r2.IsMenuOpen(conversation_r23) ? 3 : -1);
524
+ i0.ɵɵconditional(ctx_r1.IsMenuOpen(conversation_r24) ? 3 : -1);
481
525
  } }
482
- function ConversationListComponent_ng_template_16_Template(rf, ctx) { if (rf & 1) {
483
- const _r22 = i0.ɵɵgetCurrentView();
484
- i0.ɵɵelementStart(0, "div", 54);
485
- i0.ɵɵlistener("dragstart", function ConversationListComponent_ng_template_16_Template_div_dragstart_0_listener($event) { const conversation_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onConversationDragStart(conversation_r23, $event)); })("dragend", function ConversationListComponent_ng_template_16_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onConversationDragEnd()); })("click", function ConversationListComponent_ng_template_16_Template_div_click_0_listener() { const conversation_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleConversationClick(conversation_r23)); });
486
- i0.ɵɵconditionalCreate(1, ConversationListComponent_ng_template_16_Conditional_1_Template, 2, 1, "div", 55);
487
- i0.ɵɵelementStart(2, "div", 56);
488
- i0.ɵɵconditionalCreate(3, ConversationListComponent_ng_template_16_Conditional_3_Template, 2, 0, "div", 57);
489
- i0.ɵɵelementStart(4, "div", 58);
490
- i0.ɵɵelement(5, "mj-notification-badge", 59);
526
+ function ConversationListComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
527
+ const _r23 = i0.ɵɵgetCurrentView();
528
+ i0.ɵɵelementStart(0, "div", 57);
529
+ i0.ɵɵlistener("dragstart", function ConversationListComponent_ng_template_10_Template_div_dragstart_0_listener($event) { const conversation_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onConversationDragStart(conversation_r24, $event)); })("dragend", function ConversationListComponent_ng_template_10_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onConversationDragEnd()); })("click", function ConversationListComponent_ng_template_10_Template_div_click_0_listener() { const conversation_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleConversationClick(conversation_r24)); });
530
+ i0.ɵɵconditionalCreate(1, ConversationListComponent_ng_template_10_Conditional_1_Template, 2, 1, "div", 58);
531
+ i0.ɵɵelementStart(2, "div", 59);
532
+ i0.ɵɵconditionalCreate(3, ConversationListComponent_ng_template_10_Conditional_3_Template, 2, 0, "div", 60);
533
+ i0.ɵɵelementStart(4, "div", 61);
534
+ i0.ɵɵelement(5, "mj-notification-badge", 62);
491
535
  i0.ɵɵelementEnd()();
492
- i0.ɵɵelementStart(6, "div", 60)(7, "div", 61);
536
+ i0.ɵɵelementStart(6, "div", 63)(7, "div", 64);
493
537
  i0.ɵɵtext(8);
494
- i0.ɵɵconditionalCreate(9, ConversationListComponent_ng_template_16_Conditional_9_Template, 1, 1, "i", 62);
538
+ i0.ɵɵconditionalCreate(9, ConversationListComponent_ng_template_10_Conditional_9_Template, 1, 1, "i", 65);
495
539
  i0.ɵɵelementEnd();
496
- i0.ɵɵelementStart(10, "div", 63);
540
+ i0.ɵɵelementStart(10, "div", 66);
497
541
  i0.ɵɵtext(11);
498
542
  i0.ɵɵelementEnd()();
499
- i0.ɵɵconditionalCreate(12, ConversationListComponent_ng_template_16_Conditional_12_Template, 4, 1, "div", 64);
543
+ i0.ɵɵconditionalCreate(12, ConversationListComponent_ng_template_10_Conditional_12_Template, 4, 1, "div", 67);
500
544
  i0.ɵɵelementEnd();
501
545
  } if (rf & 2) {
502
- const conversation_r23 = ctx.$implicit;
503
- const depth_r31 = ctx.depth;
504
- const ctx_r2 = i0.ɵɵnextContext();
505
- i0.ɵɵstyleProp("padding-left", depth_r31 ? 16 + depth_r31 * 14 : 16, "px");
506
- i0.ɵɵclassProp("active", ctx_r2.IsConversationActive(conversation_r23))("renamed", ctx_r2.IsConversationRenamed(conversation_r23))("dragging", ctx_r2.IsConversationDragging(conversation_r23));
507
- i0.ɵɵproperty("draggable", !ctx_r2.isSelectionMode);
546
+ const conversation_r24 = ctx.$implicit;
547
+ const depth_r32 = ctx.depth;
548
+ const ctx_r1 = i0.ɵɵnextContext();
549
+ i0.ɵɵstyleProp("padding-left", depth_r32 ? 16 + depth_r32 * 14 : 16, "px");
550
+ i0.ɵɵclassProp("active", ctx_r1.IsConversationActive(conversation_r24))("renamed", ctx_r1.IsConversationRenamed(conversation_r24))("dragging", ctx_r1.IsConversationDragging(conversation_r24));
551
+ i0.ɵɵproperty("draggable", !ctx_r1.isSelectionMode);
508
552
  i0.ɵɵadvance();
509
- i0.ɵɵconditional(ctx_r2.isSelectionMode ? 1 : -1);
553
+ i0.ɵɵconditional(ctx_r1.isSelectionMode ? 1 : -1);
510
554
  i0.ɵɵadvance(2);
511
- i0.ɵɵconditional(ctx_r2.hasActiveTasks(conversation_r23.ID) ? 3 : -1);
555
+ i0.ɵɵconditional(ctx_r1.hasActiveTasks(conversation_r24.ID) ? 3 : -1);
512
556
  i0.ɵɵadvance(2);
513
- i0.ɵɵproperty("conversationId", conversation_r23.ID);
557
+ i0.ɵɵproperty("conversationId", conversation_r24.ID);
514
558
  i0.ɵɵadvance();
515
- i0.ɵɵproperty("title", conversation_r23.Name + (conversation_r23.Description ? "\n" + conversation_r23.Description : ""));
559
+ i0.ɵɵproperty("title", conversation_r24.Name + (conversation_r24.Description ? "\n" + conversation_r24.Description : ""));
516
560
  i0.ɵɵadvance(2);
517
- i0.ɵɵtextInterpolate1(" ", conversation_r23.Name, " ");
561
+ i0.ɵɵtextInterpolate1(" ", conversation_r24.Name, " ");
518
562
  i0.ɵɵadvance();
519
- i0.ɵɵconditional(ctx_r2.isSharedWithMe(conversation_r23) ? 9 : -1);
563
+ i0.ɵɵconditional(ctx_r1.isSharedWithMe(conversation_r24) ? 9 : -1);
520
564
  i0.ɵɵadvance(2);
521
- i0.ɵɵtextInterpolate(conversation_r23.Description);
565
+ i0.ɵɵtextInterpolate(conversation_r24.Description);
522
566
  i0.ɵɵadvance();
523
- i0.ɵɵconditional(!ctx_r2.isSelectionMode ? 12 : -1);
567
+ i0.ɵɵconditional(!ctx_r1.isSelectionMode ? 12 : -1);
524
568
  } }
525
569
  export class ConversationListComponent {
526
570
  dialogService;
@@ -534,6 +578,29 @@ export class ConversationListComponent {
534
578
  renamedConversationId = null;
535
579
  isSidebarPinned = true; // Whether sidebar is pinned (stays open after selection)
536
580
  isMobileView = false; // Whether we're on mobile (no pin options)
581
+ // ── White-label chrome toggles (all default true = stock rendering) ──
582
+ /** Show the search box in the list header. Flipping to false clears any active
583
+ * search so a hidden filter can't keep silently narrowing the list. */
584
+ set showSearch(value) {
585
+ if (!value && this._searchQuery) {
586
+ this.searchQuery = ''; // setter rebuilds the groupings
587
+ }
588
+ this._showSearch = value;
589
+ }
590
+ get showSearch() {
591
+ return this._showSearch;
592
+ }
593
+ _showSearch = true;
594
+ /** Show the "New Conversation" button. */
595
+ showNewConversationButton = true;
596
+ /** Show the ⋯ header options menu (refresh / select / group-by / hide sidebar). */
597
+ showHeaderMenu = true;
598
+ /** Show the collapsible Pinned / Folders / Messages section headers. When false,
599
+ * the list renders FLAT and fully expanded: folder grouping is bypassed (the
600
+ * folder tree's root drop-zone and New Folder action live in the section
601
+ * header, so a headerless tree would allow one-way folder nesting) — the
602
+ * chrome-less rendering for embedded hosts. */
603
+ showSectionHeaders = true;
537
604
  conversationSelected = new EventEmitter();
538
605
  conversationDeleted = new EventEmitter(); // Emits the deleted conversation ID
539
606
  newConversationRequested = new EventEmitter();
@@ -1248,51 +1315,48 @@ export class ConversationListComponent {
1248
1315
  static ɵfac = function ConversationListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ConversationListComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.NotificationService), i0.ɵɵdirectiveInject(i3.ActiveTasksService), i0.ɵɵdirectiveInject(i4.MJDialogService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
1249
1316
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationListComponent, selectors: [["mj-conversation-list"]], hostBindings: function ConversationListComponent_HostBindings(rf, ctx) { if (rf & 1) {
1250
1317
  i0.ɵɵlistener("click", function ConversationListComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, i0.ɵɵresolveDocument);
1251
- } }, inputs: { environmentId: "environmentId", currentUser: "currentUser", selectedConversationId: "selectedConversationId", renamedConversationId: "renamedConversationId", isSidebarPinned: "isSidebarPinned", isMobileView: "isMobileView" }, outputs: { conversationSelected: "conversationSelected", conversationDeleted: "conversationDeleted", newConversationRequested: "newConversationRequested", pinSidebarRequested: "pinSidebarRequested", unpinSidebarRequested: "unpinSidebarRequested", refreshRequested: "refreshRequested" }, standalone: false, decls: 18, vars: 5, consts: [["folderNode", ""], ["conversationItem", ""], [1, "conversation-list"], [1, "list-header"], [1, "header-top"], ["type", "text", "placeholder", "Search conversations...", 1, "search-input", 3, "ngModelChange", "ngModel"], [1, "header-menu-container"], ["title", "New Conversation", 1, "btn-new-conversation", 3, "click"], [1, "fas", "fa-plus"], [1, "list-content"], [1, "sidebar-section", "pinned-section"], [1, "sidebar-section"], [1, "selection-action-bar"], ["title", "Options", 1, "btn-menu", 3, "click"], [1, "fas", "fa-ellipsis-v"], [1, "header-dropdown-menu"], [1, "dropdown-item", 3, "click", "disabled"], [1, "fas", "fa-sync-alt"], [1, "dropdown-item", 3, "click"], [1, "fas", "fa-check-square"], [1, "fas"], [1, "dropdown-item"], [1, "fas", "fa-table-columns"], [1, "section-header", 3, "click"], [1, "section-title"], [1, "fas", "fa-chevron-right"], [1, "fas", "fa-thumbtack", "section-icon"], [1, "chat-list"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "sidebar-section", "folders-section"], [1, "section-header", 3, "click", "dragover", "dragleave", "drop"], ["title", "New Folder", 1, "section-action-btn", 3, "click"], [1, "fas", "fa-folder-plus"], [1, "folder-empty-hint"], [1, "sidebar-section", "ungrouped-section", 3, "dragover", "dragleave", "drop"], [1, "selection-info"], [1, "selection-count"], [1, "link-btn"], [1, "selection-actions"], [1, "btn-delete-bulk", 3, "click", "disabled"], [1, "fas", "fa-trash"], [1, "btn-cancel", 3, "click"], [1, "link-btn", 3, "click"], [1, "folder-row", 3, "dragstart", "dragend", "click", "dragover", "dragleave", "drop", "draggable", "title"], [1, "fas", "fa-chevron-right", "folder-chevron"], [1, "folder-name"], [1, "folder-count"], [1, "folder-actions", 3, "click"], ["title", "New Subfolder", 1, "folder-action-btn", 3, "click"], ["title", "Edit Folder", 1, "folder-action-btn", 3, "click"], [1, "fas", "fa-pen"], ["title", "Delete Folder", 1, "folder-action-btn", "danger", 3, "click"], [1, "folder-children"], [1, "folder-empty-hint", 3, "paddingLeft"], [1, "conversation-item", 3, "dragstart", "dragend", "click", "draggable"], [1, "conversation-checkbox"], [1, "conversation-icon-wrapper"], [1, "conversation-icon", "has-tasks"], [1, "badge-overlay"], [3, "conversationId"], [1, "conversation-info", 3, "title"], [1, "conversation-name"], [1, "fas", "fa-share-nodes", "shared-indicator", 3, "title"], [1, "conversation-preview"], [1, "conversation-actions"], ["type", "checkbox", 3, "click", "checked"], [1, "fas", "fa-spinner", "fa-pulse"], ["title", "More options", 1, "menu-btn", 3, "click"], [1, "fas", "fa-ellipsis"], [1, "context-menu"], [1, "context-menu", 3, "click"], [1, "menu-item", "back", 3, "click"], [1, "fas", "fa-chevron-left"], [1, "menu-divider"], [1, "move-folder-list"], [1, "menu-item", 3, "click"], [1, "fas", "fa-inbox"], [1, "menu-item", 3, "current", "paddingLeft"], [1, "fas", "fa-thumbtack"], [1, "fas", "fa-folder-tree"], [1, "fas", "fa-chevron-right", "submenu-arrow"], [1, "fas", "fa-edit"], [1, "menu-item", "danger", 3, "click"]], template: function ConversationListComponent_Template(rf, ctx) { if (rf & 1) {
1252
- const _r1 = i0.ɵɵgetCurrentView();
1253
- i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "input", 5);
1254
- i0.ɵɵtwoWayListener("ngModelChange", function ConversationListComponent_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.searchQuery, $event) || (ctx.searchQuery = $event); return i0.ɵɵresetView($event); });
1318
+ } }, inputs: { environmentId: "environmentId", currentUser: "currentUser", selectedConversationId: "selectedConversationId", renamedConversationId: "renamedConversationId", isSidebarPinned: "isSidebarPinned", isMobileView: "isMobileView", showSearch: "showSearch", showNewConversationButton: "showNewConversationButton", showHeaderMenu: "showHeaderMenu", showSectionHeaders: "showSectionHeaders" }, outputs: { conversationSelected: "conversationSelected", conversationDeleted: "conversationDeleted", newConversationRequested: "newConversationRequested", pinSidebarRequested: "pinSidebarRequested", unpinSidebarRequested: "unpinSidebarRequested", refreshRequested: "refreshRequested" }, standalone: false, decls: 12, vars: 5, consts: [["folderNode", ""], ["conversationItem", ""], [1, "conversation-list"], [1, "list-header"], ["title", "New Conversation", 1, "btn-new-conversation"], [1, "list-content"], [1, "sidebar-section", "pinned-section"], [1, "sidebar-section"], [1, "selection-action-bar"], [1, "header-top"], ["type", "text", "placeholder", "Search conversations...", 1, "search-input", 3, "ngModel"], [1, "header-menu-container"], ["type", "text", "placeholder", "Search conversations...", 1, "search-input", 3, "ngModelChange", "ngModel"], ["title", "Options", 1, "btn-menu", 3, "click"], [1, "fas", "fa-ellipsis-v"], [1, "header-dropdown-menu"], [1, "dropdown-item", 3, "click", "disabled"], [1, "fas", "fa-sync-alt"], [1, "dropdown-item", 3, "click"], [1, "fas", "fa-check-square"], [1, "fas"], [1, "dropdown-item"], [1, "fas", "fa-table-columns"], ["title", "New Conversation", 1, "btn-new-conversation", 3, "click"], [1, "fas", "fa-plus"], [1, "section-header", 3, "expanded"], [1, "chat-list"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "section-header", 3, "click"], [1, "section-title"], [1, "fas", "fa-chevron-right"], [1, "fas", "fa-thumbtack", "section-icon"], [1, "sidebar-section", "folders-section"], [1, "section-header", 3, "click", "dragover", "dragleave", "drop"], ["title", "New Folder", 1, "section-action-btn", 3, "click"], [1, "fas", "fa-folder-plus"], [1, "folder-empty-hint"], [1, "sidebar-section", "ungrouped-section", 3, "dragover", "dragleave", "drop"], [1, "selection-info"], [1, "selection-count"], [1, "link-btn"], [1, "selection-actions"], [1, "btn-delete-bulk", 3, "click", "disabled"], [1, "fas", "fa-trash"], [1, "btn-cancel", 3, "click"], [1, "link-btn", 3, "click"], [1, "folder-row", 3, "dragstart", "dragend", "click", "dragover", "dragleave", "drop", "draggable", "title"], [1, "fas", "fa-chevron-right", "folder-chevron"], [1, "folder-name"], [1, "folder-count"], [1, "folder-actions", 3, "click"], ["title", "New Subfolder", 1, "folder-action-btn", 3, "click"], ["title", "Edit Folder", 1, "folder-action-btn", 3, "click"], [1, "fas", "fa-pen"], ["title", "Delete Folder", 1, "folder-action-btn", "danger", 3, "click"], [1, "folder-children"], [1, "folder-empty-hint", 3, "paddingLeft"], [1, "conversation-item", 3, "dragstart", "dragend", "click", "draggable"], [1, "conversation-checkbox"], [1, "conversation-icon-wrapper"], [1, "conversation-icon", "has-tasks"], [1, "badge-overlay"], [3, "conversationId"], [1, "conversation-info", 3, "title"], [1, "conversation-name"], [1, "fas", "fa-share-nodes", "shared-indicator", 3, "title"], [1, "conversation-preview"], [1, "conversation-actions"], ["type", "checkbox", 3, "click", "checked"], [1, "fas", "fa-spinner", "fa-pulse"], ["title", "More options", 1, "menu-btn", 3, "click"], [1, "fas", "fa-ellipsis"], [1, "context-menu"], [1, "context-menu", 3, "click"], [1, "menu-item", "back", 3, "click"], [1, "fas", "fa-chevron-left"], [1, "menu-divider"], [1, "move-folder-list"], [1, "menu-item", 3, "click"], [1, "fas", "fa-inbox"], [1, "menu-item", 3, "current", "paddingLeft"], [1, "fas", "fa-thumbtack"], [1, "fas", "fa-folder-tree"], [1, "fas", "fa-chevron-right", "submenu-arrow"], [1, "fas", "fa-edit"], [1, "menu-item", "danger", 3, "click"]], template: function ConversationListComponent_Template(rf, ctx) { if (rf & 1) {
1319
+ i0.ɵɵelementStart(0, "div", 2);
1320
+ i0.ɵɵconditionalCreate(1, ConversationListComponent_Conditional_1_Template, 4, 2, "div", 3);
1321
+ i0.ɵɵconditionalCreate(2, ConversationListComponent_Conditional_2_Template, 4, 0, "button", 4);
1322
+ i0.ɵɵelementStart(3, "div", 5);
1323
+ i0.ɵɵconditionalCreate(4, ConversationListComponent_Conditional_4_Template, 5, 3, "div", 6);
1324
+ i0.ɵɵconditionalCreate(5, ConversationListComponent_Conditional_5_Template, 21, 14)(6, ConversationListComponent_Conditional_6_Template, 5, 3, "div", 7);
1255
1325
  i0.ɵɵelementEnd();
1256
- i0.ɵɵconditionalCreate(4, ConversationListComponent_Conditional_4_Template, 4, 1, "div", 6);
1257
- i0.ɵɵelementEnd()();
1258
- i0.ɵɵelementStart(5, "button", 7);
1259
- i0.ɵɵlistener("click", function ConversationListComponent_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.createNewConversation()); });
1260
- i0.ɵɵelement(6, "i", 8);
1261
- i0.ɵɵelementStart(7, "span");
1262
- i0.ɵɵtext(8, "New Conversation");
1263
- i0.ɵɵelementEnd()();
1264
- i0.ɵɵelementStart(9, "div", 9);
1265
- i0.ɵɵconditionalCreate(10, ConversationListComponent_Conditional_10_Template, 10, 4, "div", 10);
1266
- i0.ɵɵconditionalCreate(11, ConversationListComponent_Conditional_11_Template, 21, 14)(12, ConversationListComponent_Conditional_12_Template, 9, 4, "div", 11);
1326
+ i0.ɵɵconditionalCreate(7, ConversationListComponent_Conditional_7_Template, 12, 4, "div", 8);
1267
1327
  i0.ɵɵelementEnd();
1268
- i0.ɵɵconditionalCreate(13, ConversationListComponent_Conditional_13_Template, 12, 4, "div", 12);
1269
- i0.ɵɵelementEnd();
1270
- i0.ɵɵtemplate(14, ConversationListComponent_ng_template_14_Template, 15, 18, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(16, ConversationListComponent_ng_template_16_Template, 13, 17, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
1328
+ i0.ɵɵtemplate(8, ConversationListComponent_ng_template_8_Template, 15, 18, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(10, ConversationListComponent_ng_template_10_Template, 13, 17, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
1271
1329
  } if (rf & 2) {
1272
- i0.ɵɵadvance(3);
1273
- i0.ɵɵtwoWayProperty("ngModel", ctx.searchQuery);
1274
1330
  i0.ɵɵadvance();
1275
- i0.ɵɵconditional(!ctx.isSelectionMode ? 4 : -1);
1276
- i0.ɵɵadvance(6);
1277
- i0.ɵɵconditional(ctx.pinnedConversations.length > 0 ? 10 : -1);
1331
+ i0.ɵɵconditional(ctx.showSearch || ctx.showHeaderMenu && !ctx.isSelectionMode ? 1 : -1);
1332
+ i0.ɵɵadvance();
1333
+ i0.ɵɵconditional(ctx.showNewConversationButton ? 2 : -1);
1334
+ i0.ɵɵadvance(2);
1335
+ i0.ɵɵconditional(ctx.pinnedConversations.length > 0 ? 4 : -1);
1278
1336
  i0.ɵɵadvance();
1279
- i0.ɵɵconditional(ctx.groupBy === "project" ? 11 : 12);
1337
+ i0.ɵɵconditional(ctx.showSectionHeaders && ctx.groupBy === "project" ? 5 : 6);
1280
1338
  i0.ɵɵadvance(2);
1281
- i0.ɵɵconditional(ctx.isSelectionMode ? 13 : -1);
1282
- } }, dependencies: [i5.NgTemplateOutlet, i6.DefaultValueAccessor, i6.NgControlStatus, i6.NgModel, i7.NotificationBadgeComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n .conversation-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; background: var(--mj-brand-secondary); }\n .list-header[_ngcontent-%COMP%] { padding: 8px; border-bottom: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent); }\n .search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: var(--mj-brand-on-secondary);\n font-size: 13px;\n transition: all 0.2s;\n }\n .search-input[_ngcontent-%COMP%]::placeholder { color: color-mix(in srgb, var(--mj-brand-on-secondary) 50%, transparent); }\n .search-input[_ngcontent-%COMP%]:focus { outline: none; background: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent); border-color: var(--mj-brand-primary); }\n .btn-new-conversation[_ngcontent-%COMP%] {\n width: calc(100% - 16px);\n margin: 8px;\n padding: 10px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: background 0.2s;\n flex-shrink: 0;\n }\n .btn-new-conversation[_ngcontent-%COMP%]:hover { background: var(--mj-brand-primary-hover); }\n .btn-new-conversation[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n .list-content[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 0; }\n\n \n\n .sidebar-section[_ngcontent-%COMP%] { margin-bottom: 20px; }\n .pinned-section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] .section-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 11px;\n margin-left: 2px;\n }\n .section-header[_ngcontent-%COMP%] {\n padding: 4px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n color: var(--mj-brand-on-secondary);\n font-size: 13px;\n font-weight: 500;\n transition: background 0.2s;\n user-select: none;\n }\n .section-header[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--mj-brand-on-secondary) 8%, transparent); }\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:not(.section-icon) {\n transition: transform 0.2s;\n }\n .section-header.expanded[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:not(.section-icon) { transform: rotate(90deg); }\n .chat-list[_ngcontent-%COMP%] {\n padding: 4px 0;\n display: none;\n }\n .chat-list.expanded[_ngcontent-%COMP%] { display: block; }\n\n .conversation-item[_ngcontent-%COMP%] {\n padding: 6px 5px 6px 16px;\n cursor: pointer;\n display: flex;\n gap: 8px;\n align-items: center;\n transition: all 0.2s;\n position: relative;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n font-size: 14px;\n min-height: 45px;\n }\n .conversation-item[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--mj-brand-on-secondary) 8%, transparent); color: var(--mj-brand-on-secondary); }\n .conversation-item[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; }\n .conversation-item.active[_ngcontent-%COMP%] { background: var(--mj-brand-primary); color: var(--mj-brand-on-secondary); }\n .conversation-icon-wrapper[_ngcontent-%COMP%] { position: relative; flex-shrink: 0; }\n .conversation-icon[_ngcontent-%COMP%] { font-size: 12px; width: 16px; text-align: center; }\n .conversation-icon.has-tasks[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .badge-overlay[_ngcontent-%COMP%] { position: absolute; top: -4px; right: -4px; }\n .conversation-info[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .conversation-name[_ngcontent-%COMP%] { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; }\n .shared-indicator[_ngcontent-%COMP%] { font-size: 10px; color: color-mix(in srgb, var(--mj-brand-on-secondary) 55%, transparent); flex-shrink: 0; }\n .conversation-item.active[_ngcontent-%COMP%] .shared-indicator[_ngcontent-%COMP%] { color: color-mix(in srgb, var(--mj-brand-on-secondary) 85%, transparent); }\n .conversation-preview[_ngcontent-%COMP%] { font-size: 12px; color: color-mix(in srgb, var(--mj-brand-on-secondary) 50%, transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-preview[_ngcontent-%COMP%] { color: color-mix(in srgb, var(--mj-brand-on-secondary) 80%, transparent); }\n .conversation-meta[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }\n\n \n\n .project-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n margin-left: auto;\n background-color: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n white-space: nowrap;\n max-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .conversation-item[_ngcontent-%COMP%]:hover .project-badge[_ngcontent-%COMP%] {\n background-color: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 80%, transparent);\n }\n .conversation-item.active[_ngcontent-%COMP%] .project-badge[_ngcontent-%COMP%] {\n background-color: color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .conversation-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 10;\n }\n .conversation-item[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-actions[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] { pointer-events: auto; }\n .pinned-icon[_ngcontent-%COMP%] { color: var(--mj-brand-accent); font-size: 12px; }\n\n \n\n .task-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 12px;\n margin-right: 8px;\n flex-shrink: 0;\n animation: _ngcontent-%COMP%_pulse-glow 2s ease-in-out infinite;\n }\n @keyframes _ngcontent-%COMP%_pulse-glow {\n 0%, 100% {\n opacity: 1;\n filter: drop-shadow(0 0 2px var(--mj-status-warning));\n }\n 50% {\n opacity: 0.6;\n filter: drop-shadow(0 0 4px var(--mj-status-warning));\n }\n }\n .conversation-item.active[_ngcontent-%COMP%] .task-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n }\n\n .menu-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n background: var(--mj-brand-secondary) !important;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n }\n .menu-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent) !important;\n color: var(--mj-brand-on-secondary);\n }\n .conversation-item.active[_ngcontent-%COMP%] .menu-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary-hover) !important;\n color: var(--mj-brand-on-secondary);\n }\n .menu-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n\n .context-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: var(--mj-brand-secondary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n pointer-events: auto;\n }\n\n .menu-item[_ngcontent-%COMP%] {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 85%, transparent);\n font-size: 14px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .menu-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .menu-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n }\n\n .menu-item[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: var(--mj-brand-on-secondary);\n }\n\n .menu-item.danger[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 15%, transparent);\n color: var(--mj-status-error);\n }\n\n .menu-item.danger[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .menu-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n margin: 4px 0;\n }\n\n \n\n .conversation-item.renamed[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_renameHighlight 1500ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n @keyframes _ngcontent-%COMP%_renameHighlight {\n 0% {\n background: linear-gradient(90deg, rgba(59, 130, 246, 0.4), rgba(147, 51, 234, 0.4));\n transform: scale(1.03);\n box-shadow: 0 0 20px rgba(59, 130, 246, 0.5);\n }\n 25% {\n background: linear-gradient(90deg, rgba(59, 130, 246, 0.35), rgba(147, 51, 234, 0.35));\n box-shadow: 0 0 15px rgba(59, 130, 246, 0.4);\n }\n 50% {\n background: linear-gradient(90deg, rgba(16, 185, 129, 0.3), rgba(59, 130, 246, 0.3));\n transform: scale(1.02);\n box-shadow: 0 0 10px rgba(16, 185, 129, 0.3);\n }\n 75% {\n background: linear-gradient(90deg, rgba(16, 185, 129, 0.2), rgba(59, 130, 246, 0.2));\n box-shadow: 0 0 5px rgba(16, 185, 129, 0.2);\n }\n 100% {\n background: transparent;\n transform: scale(1);\n box-shadow: none;\n }\n }\n\n \n\n .header-top[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n \n\n .header-menu-container[_ngcontent-%COMP%] {\n position: relative;\n flex-shrink: 0;\n }\n\n .btn-menu[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-menu[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n border-color: color-mix(in srgb, var(--mj-brand-on-secondary) 30%, transparent);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n min-width: 200px;\n background: var(--mj-brand-secondary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n padding: 4px 0;\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%] {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 85%, transparent);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: var(--mj-brand-on-secondary);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%] .shortcut[_ngcontent-%COMP%] {\n margin-left: auto;\n font-size: 11px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 40%, transparent);\n font-family: system-ui, -apple-system, sans-serif;\n }\n\n .btn-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n font-size: 13px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .btn-select[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n border-color: color-mix(in srgb, var(--mj-brand-on-secondary) 30%, transparent);\n }\n\n .conversation-checkbox[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-right: 8px;\n flex-shrink: 0;\n }\n\n .conversation-checkbox[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: var(--mj-brand-primary);\n }\n\n .selection-action-bar[_ngcontent-%COMP%] {\n position: sticky;\n bottom: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: var(--mj-brand-secondary);\n border-top: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n gap: 12px;\n flex-wrap: wrap;\n flex-shrink: 0;\n }\n\n .selection-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 90%, transparent);\n font-size: 14px;\n font-weight: 500;\n flex: 1 1 auto;\n min-width: 150px;\n }\n\n .selection-count[_ngcontent-%COMP%] {\n color: var(--mj-brand-on-secondary);\n }\n\n .link-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-accent);\n cursor: pointer;\n font-size: 13px;\n text-decoration: underline;\n padding: 0;\n transition: color 0.2s;\n }\n\n .link-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-on-secondary);\n }\n\n .selection-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex: 0 0 auto;\n }\n\n .btn-cancel[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 0.2s;\n }\n\n .btn-cancel[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: var(--mj-status-error);\n border: none;\n border-radius: 6px;\n color: var(--mj-brand-on-secondary);\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n transition: all 0.2s;\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-status-error) 80%, black);\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n \n\n .section-action-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n .section-action-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n .section-action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 12px; }\n\n .folder-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n cursor: pointer;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 80%, transparent);\n font-size: 13px;\n transition: background 0.15s;\n user-select: none;\n position: relative;\n }\n .folder-row[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--mj-brand-on-secondary) 8%, transparent); }\n .folder-row.drag-over[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n box-shadow: inset 0 0 0 1px var(--mj-brand-primary);\n }\n .folder-row.dragging[_ngcontent-%COMP%] { opacity: 0.4; }\n .section-header.drag-over[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, transparent);\n box-shadow: inset 0 0 0 1px var(--mj-brand-primary);\n border-radius: 6px;\n }\n .folder-chevron[_ngcontent-%COMP%] {\n font-size: 9px;\n width: 10px;\n flex-shrink: 0;\n transition: transform 0.2s;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 55%, transparent);\n }\n .folder-chevron.expanded[_ngcontent-%COMP%] { transform: rotate(90deg); }\n .folder-icon[_ngcontent-%COMP%] { font-size: 12px; width: 16px; text-align: center; flex-shrink: 0; }\n .folder-name[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 600;\n }\n .folder-count[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 50%, transparent);\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 6px;\n text-align: right;\n }\n .folder-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n gap: 2px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 5;\n }\n .folder-row[_ngcontent-%COMP%]:hover .folder-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .folder-row[_ngcontent-%COMP%]:hover .folder-count[_ngcontent-%COMP%] { opacity: 0; }\n .folder-action-btn[_ngcontent-%COMP%] {\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n cursor: pointer;\n transition: all 0.15s;\n }\n .folder-action-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 18%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n .folder-action-btn.danger[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 18%, transparent);\n color: var(--mj-status-error);\n }\n .folder-action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 11px; }\n .folder-children[_ngcontent-%COMP%] { display: block; }\n .folder-empty-hint[_ngcontent-%COMP%] {\n padding: 6px 16px;\n font-size: 11px;\n font-style: italic;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 45%, transparent);\n }\n .ungrouped-section.drag-over[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n box-shadow: inset 0 0 0 1px var(--mj-brand-primary);\n border-radius: 6px;\n }\n\n \n\n .conversation-item[_ngcontent-%COMP%] { user-select: none; }\n .conversation-item.dragging[_ngcontent-%COMP%] { opacity: 0.4; }\n\n \n\n .menu-item.back[_ngcontent-%COMP%] { font-weight: 600; }\n .menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%] { margin-left: auto; font-size: 10px; }\n .menu-item.current[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 18%, transparent); }\n .move-folder-list[_ngcontent-%COMP%] { max-height: 240px; overflow-y: auto; }"] });
1339
+ i0.ɵɵconditional(ctx.isSelectionMode ? 7 : -1);
1340
+ } }, dependencies: [i5.NgTemplateOutlet, i6.DefaultValueAccessor, i6.NgControlStatus, i6.NgModel, i7.NotificationBadgeComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n --conv-list-bg: var(--mj-chat-list-bg, var(--mj-brand-secondary));\n --conv-list-ink: var(--mj-chat-list-ink, var(--mj-brand-on-secondary));\n --conv-list-active-bg: var(--mj-chat-list-active-bg, var(--mj-brand-primary));\n --conv-list-active-ink: var(--mj-chat-list-active-ink, var(--mj-brand-on-secondary));\n --conv-list-active-hover-bg: var(--mj-chat-list-active-hover-bg, var(--mj-brand-primary-hover));\n --conv-list-accent: var(--mj-chat-list-accent, var(--mj-brand-primary));\n --conv-list-accent-ink: var(--mj-chat-list-accent-ink, var(--mj-text-inverse));\n --conv-list-accent-hover: var(--mj-chat-list-accent-hover, var(--mj-brand-primary-hover));\n --conv-list-hover-bg: var(--mj-chat-list-hover-bg, color-mix(in srgb, var(--conv-list-ink) 8%, transparent));\n }\n .conversation-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; background: var(--conv-list-bg); }\n .list-header[_ngcontent-%COMP%] { padding: 8px; border-bottom: 1px solid color-mix(in srgb, var(--conv-list-ink) 10%, transparent); }\n .search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: var(--conv-list-ink);\n font-size: 13px;\n transition: all 0.2s;\n }\n .search-input[_ngcontent-%COMP%]::placeholder { color: color-mix(in srgb, var(--conv-list-ink) 50%, transparent); }\n .search-input[_ngcontent-%COMP%]:focus { outline: none; background: color-mix(in srgb, var(--conv-list-ink) 15%, transparent); border-color: var(--conv-list-accent); }\n .btn-new-conversation[_ngcontent-%COMP%] {\n width: calc(100% - 16px);\n margin: 8px;\n padding: 10px;\n background: var(--conv-list-accent);\n color: var(--conv-list-accent-ink);\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: background 0.2s;\n flex-shrink: 0;\n }\n .btn-new-conversation[_ngcontent-%COMP%]:hover { background: var(--conv-list-accent-hover); }\n .btn-new-conversation[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n .list-content[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 0; }\n\n \n\n .sidebar-section[_ngcontent-%COMP%] { margin-bottom: 20px; }\n .pinned-section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] .section-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 11px;\n margin-left: 2px;\n }\n .section-header[_ngcontent-%COMP%] {\n padding: 4px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n color: var(--conv-list-ink);\n font-size: 13px;\n font-weight: 500;\n transition: background 0.2s;\n user-select: none;\n }\n .section-header[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--conv-list-ink) 8%, transparent); }\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:not(.section-icon) {\n transition: transform 0.2s;\n }\n .section-header.expanded[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:not(.section-icon) { transform: rotate(90deg); }\n .chat-list[_ngcontent-%COMP%] {\n padding: 4px 0;\n display: none;\n }\n .chat-list.expanded[_ngcontent-%COMP%] { display: block; }\n\n .conversation-item[_ngcontent-%COMP%] {\n padding: 6px 5px 6px 16px;\n cursor: pointer;\n display: flex;\n gap: 8px;\n align-items: center;\n transition: all 0.2s;\n position: relative;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n font-size: 14px;\n min-height: 45px;\n }\n .conversation-item[_ngcontent-%COMP%]:hover { background: var(--conv-list-hover-bg); color: var(--conv-list-ink); }\n .conversation-item[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; }\n .conversation-item.active[_ngcontent-%COMP%] { background: var(--conv-list-active-bg); color: var(--conv-list-active-ink); }\n .conversation-icon-wrapper[_ngcontent-%COMP%] { position: relative; flex-shrink: 0; }\n .conversation-icon[_ngcontent-%COMP%] { font-size: 12px; width: 16px; text-align: center; }\n .conversation-icon.has-tasks[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .badge-overlay[_ngcontent-%COMP%] { position: absolute; top: -4px; right: -4px; }\n .conversation-info[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .conversation-name[_ngcontent-%COMP%] { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; }\n .shared-indicator[_ngcontent-%COMP%] { font-size: 10px; color: color-mix(in srgb, var(--conv-list-ink) 55%, transparent); flex-shrink: 0; }\n .conversation-item.active[_ngcontent-%COMP%] .shared-indicator[_ngcontent-%COMP%] { color: color-mix(in srgb, var(--conv-list-active-ink) 85%, transparent); }\n .conversation-preview[_ngcontent-%COMP%] { font-size: 12px; color: color-mix(in srgb, var(--conv-list-ink) 50%, transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-preview[_ngcontent-%COMP%] { color: color-mix(in srgb, var(--conv-list-active-ink) 80%, transparent); }\n .conversation-meta[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }\n\n \n\n .project-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n margin-left: auto;\n background-color: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n white-space: nowrap;\n max-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .conversation-item[_ngcontent-%COMP%]:hover .project-badge[_ngcontent-%COMP%] {\n background-color: color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n color: color-mix(in srgb, var(--conv-list-ink) 80%, transparent);\n }\n .conversation-item.active[_ngcontent-%COMP%] .project-badge[_ngcontent-%COMP%] {\n background-color: color-mix(in srgb, var(--conv-list-active-ink) 20%, transparent);\n color: var(--conv-list-active-ink);\n }\n\n .conversation-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 10;\n }\n .conversation-item[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-actions[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] { pointer-events: auto; }\n .pinned-icon[_ngcontent-%COMP%] { color: var(--mj-brand-accent); font-size: 12px; }\n\n \n\n .task-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 12px;\n margin-right: 8px;\n flex-shrink: 0;\n animation: _ngcontent-%COMP%_pulse-glow 2s ease-in-out infinite;\n }\n @keyframes _ngcontent-%COMP%_pulse-glow {\n 0%, 100% {\n opacity: 1;\n filter: drop-shadow(0 0 2px var(--mj-status-warning));\n }\n 50% {\n opacity: 0.6;\n filter: drop-shadow(0 0 4px var(--mj-status-warning));\n }\n }\n .conversation-item.active[_ngcontent-%COMP%] .task-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n }\n\n .menu-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n background: var(--conv-list-bg) !important;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n }\n .menu-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 15%, transparent) !important;\n color: var(--conv-list-ink);\n }\n .conversation-item.active[_ngcontent-%COMP%] .menu-btn[_ngcontent-%COMP%] {\n background: var(--conv-list-active-hover-bg) !important;\n color: var(--conv-list-active-ink);\n }\n .menu-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n\n .context-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: var(--conv-list-bg);\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n pointer-events: auto;\n }\n\n .menu-item[_ngcontent-%COMP%] {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--conv-list-ink) 85%, transparent);\n font-size: 14px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .menu-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n }\n\n .menu-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n }\n\n .menu-item[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: var(--conv-list-ink);\n }\n\n .menu-item.danger[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 15%, transparent);\n color: var(--mj-status-error);\n }\n\n .menu-item.danger[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .menu-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n margin: 4px 0;\n }\n\n \n\n .conversation-item.renamed[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_renameHighlight 1500ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n \n\n\n\n @keyframes _ngcontent-%COMP%_renameHighlight {\n 0% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-brand-primary) 40%, transparent),\n color-mix(in srgb, var(--mj-brand-accent) 40%, transparent));\n transform: scale(1.03);\n box-shadow: 0 0 20px color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n 25% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-brand-primary) 35%, transparent),\n color-mix(in srgb, var(--mj-brand-accent) 35%, transparent));\n box-shadow: 0 0 15px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n }\n 50% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-status-success) 30%, transparent),\n color-mix(in srgb, var(--mj-brand-primary) 30%, transparent));\n transform: scale(1.02);\n box-shadow: 0 0 10px color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n }\n 75% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-status-success) 20%, transparent),\n color-mix(in srgb, var(--mj-brand-primary) 20%, transparent));\n box-shadow: 0 0 5px color-mix(in srgb, var(--mj-status-success) 20%, transparent);\n }\n 100% {\n background: transparent;\n transform: scale(1);\n box-shadow: none;\n }\n }\n\n \n\n .header-top[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n \n\n .header-menu-container[_ngcontent-%COMP%] {\n position: relative;\n flex-shrink: 0;\n }\n\n .btn-menu[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-menu[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n border-color: color-mix(in srgb, var(--conv-list-ink) 30%, transparent);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n min-width: 200px;\n background: var(--conv-list-bg);\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n padding: 4px 0;\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%] {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--conv-list-ink) 85%, transparent);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: var(--conv-list-ink);\n }\n\n .header-dropdown-menu[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%] .shortcut[_ngcontent-%COMP%] {\n margin-left: auto;\n font-size: 11px;\n color: color-mix(in srgb, var(--conv-list-ink) 40%, transparent);\n font-family: system-ui, -apple-system, sans-serif;\n }\n\n .btn-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n font-size: 13px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .btn-select[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n border-color: color-mix(in srgb, var(--conv-list-ink) 30%, transparent);\n }\n\n .conversation-checkbox[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-right: 8px;\n flex-shrink: 0;\n }\n\n .conversation-checkbox[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: var(--conv-list-accent);\n }\n\n .selection-action-bar[_ngcontent-%COMP%] {\n position: sticky;\n bottom: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: var(--conv-list-bg);\n border-top: 1px solid color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n gap: 12px;\n flex-wrap: wrap;\n flex-shrink: 0;\n }\n\n .selection-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n color: color-mix(in srgb, var(--conv-list-ink) 90%, transparent);\n font-size: 14px;\n font-weight: 500;\n flex: 1 1 auto;\n min-width: 150px;\n }\n\n .selection-count[_ngcontent-%COMP%] {\n color: var(--conv-list-ink);\n }\n\n .link-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-accent);\n cursor: pointer;\n font-size: 13px;\n text-decoration: underline;\n padding: 0;\n transition: color 0.2s;\n }\n\n .link-btn[_ngcontent-%COMP%]:hover {\n color: var(--conv-list-ink);\n }\n\n .selection-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex: 0 0 auto;\n }\n\n .btn-cancel[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 0.2s;\n }\n\n .btn-cancel[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: var(--mj-status-error);\n border: none;\n border-radius: 6px;\n \n\n\n\n color: var(--mj-brand-on-secondary);\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n transition: all 0.2s;\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-status-error) 80%, black);\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-delete-bulk[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n \n\n .section-action-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n .section-action-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n color: var(--conv-list-ink);\n }\n .section-action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 12px; }\n\n .folder-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n cursor: pointer;\n color: color-mix(in srgb, var(--conv-list-ink) 80%, transparent);\n font-size: 13px;\n transition: background 0.15s;\n user-select: none;\n position: relative;\n }\n .folder-row[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--conv-list-ink) 8%, transparent); }\n .folder-row.drag-over[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--conv-list-accent) 25%, transparent);\n box-shadow: inset 0 0 0 1px var(--conv-list-accent);\n }\n .folder-row.dragging[_ngcontent-%COMP%] { opacity: 0.4; }\n .section-header.drag-over[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--conv-list-accent) 18%, transparent);\n box-shadow: inset 0 0 0 1px var(--conv-list-accent);\n border-radius: 6px;\n }\n .folder-chevron[_ngcontent-%COMP%] {\n font-size: 9px;\n width: 10px;\n flex-shrink: 0;\n transition: transform 0.2s;\n color: color-mix(in srgb, var(--conv-list-ink) 55%, transparent);\n }\n .folder-chevron.expanded[_ngcontent-%COMP%] { transform: rotate(90deg); }\n .folder-icon[_ngcontent-%COMP%] { font-size: 12px; width: 16px; text-align: center; flex-shrink: 0; }\n .folder-name[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 600;\n }\n .folder-count[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: color-mix(in srgb, var(--conv-list-ink) 50%, transparent);\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 6px;\n text-align: right;\n }\n .folder-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n gap: 2px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 5;\n }\n .folder-row[_ngcontent-%COMP%]:hover .folder-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .folder-row[_ngcontent-%COMP%]:hover .folder-count[_ngcontent-%COMP%] { opacity: 0; }\n .folder-action-btn[_ngcontent-%COMP%] {\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n cursor: pointer;\n transition: all 0.15s;\n }\n .folder-action-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 18%, transparent);\n color: var(--conv-list-ink);\n }\n .folder-action-btn.danger[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 18%, transparent);\n color: var(--mj-status-error);\n }\n .folder-action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 11px; }\n .folder-children[_ngcontent-%COMP%] { display: block; }\n .folder-empty-hint[_ngcontent-%COMP%] {\n padding: 6px 16px;\n font-size: 11px;\n font-style: italic;\n color: color-mix(in srgb, var(--conv-list-ink) 45%, transparent);\n }\n .ungrouped-section.drag-over[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--conv-list-accent) 12%, transparent);\n box-shadow: inset 0 0 0 1px var(--conv-list-accent);\n border-radius: 6px;\n }\n\n \n\n .conversation-item[_ngcontent-%COMP%] { user-select: none; }\n .conversation-item.dragging[_ngcontent-%COMP%] { opacity: 0.4; }\n\n \n\n .menu-item.back[_ngcontent-%COMP%] { font-weight: 600; }\n .menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%] { margin-left: auto; font-size: 10px; }\n .menu-item.current[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--conv-list-accent) 18%, transparent); }\n .move-folder-list[_ngcontent-%COMP%] { max-height: 240px; overflow-y: auto; }"] });
1283
1341
  }
1284
1342
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConversationListComponent, [{
1285
1343
  type: Component,
1286
1344
  args: [{ standalone: false, selector: 'mj-conversation-list', template: `
1287
1345
  <div class="conversation-list">
1346
+ <!-- Header strip gated as a whole so an empty bordered band never renders:
1347
+ the ⋯ menu also hides during selection mode, so it only counts toward
1348
+ the strip when actually visible. -->
1349
+ @if (showSearch || (showHeaderMenu && !isSelectionMode)) {
1288
1350
  <div class="list-header">
1289
1351
  <div class="header-top">
1290
- <input
1291
- type="text"
1292
- class="search-input"
1293
- placeholder="Search conversations..."
1294
- [(ngModel)]="searchQuery">
1295
- @if (!isSelectionMode) {
1352
+ @if (showSearch) {
1353
+ <input
1354
+ type="text"
1355
+ class="search-input"
1356
+ placeholder="Search conversations..."
1357
+ [(ngModel)]="searchQuery">
1358
+ }
1359
+ @if (showHeaderMenu && !isSelectionMode) {
1296
1360
  <div class="header-menu-container">
1297
1361
  <button class="btn-menu" (click)="toggleHeaderMenu($event)" title="Options">
1298
1362
  <i class="fas fa-ellipsis-v"></i>
@@ -1323,22 +1387,27 @@ export class ConversationListComponent {
1323
1387
  }
1324
1388
  </div>
1325
1389
  </div>
1326
- <button class="btn-new-conversation" (click)="createNewConversation()" title="New Conversation">
1327
- <i class="fas fa-plus"></i>
1328
- <span>New Conversation</span>
1329
- </button>
1390
+ }
1391
+ @if (showNewConversationButton) {
1392
+ <button class="btn-new-conversation" (click)="createNewConversation()" title="New Conversation">
1393
+ <i class="fas fa-plus"></i>
1394
+ <span>New Conversation</span>
1395
+ </button>
1396
+ }
1330
1397
  <div class="list-content">
1331
1398
  <!-- Pinned Section (only show if there are pinned conversations) -->
1332
1399
  @if (pinnedConversations.length > 0) {
1333
1400
  <div class="sidebar-section pinned-section">
1334
- <div class="section-header" [class.expanded]="pinnedExpanded" (click)="togglePinned()">
1335
- <div class="section-title">
1336
- <i class="fas fa-chevron-right"></i>
1337
- <i class="fas fa-thumbtack section-icon"></i>
1338
- <span>Pinned</span>
1401
+ @if (showSectionHeaders) {
1402
+ <div class="section-header" [class.expanded]="pinnedExpanded" (click)="togglePinned()">
1403
+ <div class="section-title">
1404
+ <i class="fas fa-chevron-right"></i>
1405
+ <i class="fas fa-thumbtack section-icon"></i>
1406
+ <span>Pinned</span>
1407
+ </div>
1339
1408
  </div>
1340
- </div>
1341
- <div class="chat-list" [class.expanded]="pinnedExpanded">
1409
+ }
1410
+ <div class="chat-list" [class.expanded]="!showSectionHeaders || pinnedExpanded">
1342
1411
  @for (conversation of pinnedConversations; track conversation.ID) {
1343
1412
  <ng-container [ngTemplateOutlet]="conversationItem" [ngTemplateOutletContext]="{ $implicit: conversation }"></ng-container>
1344
1413
  }
@@ -1346,8 +1415,16 @@ export class ConversationListComponent {
1346
1415
  </div>
1347
1416
  }
1348
1417
 
1349
- @if (groupBy === 'project') {
1350
- <!-- Folders Section -->
1418
+ <!-- showSectionHeaders=false forces the FLAT branch even in project
1419
+ grouping: the folder tree's root drop-zone and New Folder action
1420
+ live in the section header, so rendering the tree without headers
1421
+ would let a user drag a folder INTO another folder with no way to
1422
+ ever drag it back out (a one-way door). Flat + headerless is the
1423
+ coherent chrome-less rendering. -->
1424
+ @if (showSectionHeaders && groupBy === 'project') {
1425
+ <!-- Folders Section. NOTE: this whole branch is already gated on
1426
+ showSectionHeaders above, so the header + collapse state here are
1427
+ unconditional — a headerless folder tree never renders. -->
1351
1428
  <div class="sidebar-section folders-section">
1352
1429
  <div class="section-header" [class.expanded]="foldersExpanded"
1353
1430
  [class.drag-over]="dragOverTargetId === 'folders-root'"
@@ -1381,6 +1458,7 @@ export class ConversationListComponent {
1381
1458
  (dragover)="onUngroupedDragOver($event)"
1382
1459
  (dragleave)="onDragLeave('ungrouped')"
1383
1460
  (drop)="onUngroupedDrop($event)">
1461
+ <!-- Same as Folders above: reached only when showSectionHeaders is true. -->
1384
1462
  <div class="section-header" [class.expanded]="ungroupedExpanded" (click)="toggleUngrouped()">
1385
1463
  <div class="section-title">
1386
1464
  <i class="fas fa-chevron-right"></i>
@@ -1396,13 +1474,15 @@ export class ConversationListComponent {
1396
1474
  } @else {
1397
1475
  <!-- Flat Messages Section -->
1398
1476
  <div class="sidebar-section">
1399
- <div class="section-header" [class.expanded]="directMessagesExpanded" (click)="toggleDirectMessages()">
1400
- <div class="section-title">
1401
- <i class="fas fa-chevron-right"></i>
1402
- <span>Messages</span>
1477
+ @if (showSectionHeaders) {
1478
+ <div class="section-header" [class.expanded]="directMessagesExpanded" (click)="toggleDirectMessages()">
1479
+ <div class="section-title">
1480
+ <i class="fas fa-chevron-right"></i>
1481
+ <span>Messages</span>
1482
+ </div>
1403
1483
  </div>
1404
- </div>
1405
- <div class="chat-list" [class.expanded]="directMessagesExpanded">
1484
+ }
1485
+ <div class="chat-list" [class.expanded]="!showSectionHeaders || directMessagesExpanded">
1406
1486
  @for (conversation of unpinnedConversations; track conversation.ID) {
1407
1487
  <ng-container [ngTemplateOutlet]="conversationItem" [ngTemplateOutletContext]="{ $implicit: conversation }"></ng-container>
1408
1488
  }
@@ -1580,7 +1660,7 @@ export class ConversationListComponent {
1580
1660
  }
1581
1661
  </div>
1582
1662
  </ng-template>
1583
- `, styles: ["\n :host { display: block; height: 100%; }\n .conversation-list { display: flex; flex-direction: column; height: 100%; background: var(--mj-brand-secondary); }\n .list-header { padding: 8px; border-bottom: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent); }\n .search-input {\n width: 100%;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: var(--mj-brand-on-secondary);\n font-size: 13px;\n transition: all 0.2s;\n }\n .search-input::placeholder { color: color-mix(in srgb, var(--mj-brand-on-secondary) 50%, transparent); }\n .search-input:focus { outline: none; background: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent); border-color: var(--mj-brand-primary); }\n .btn-new-conversation {\n width: calc(100% - 16px);\n margin: 8px;\n padding: 10px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: background 0.2s;\n flex-shrink: 0;\n }\n .btn-new-conversation:hover { background: var(--mj-brand-primary-hover); }\n .btn-new-conversation i { font-size: 14px; }\n .list-content { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 0; }\n\n /* Collapsible Sections */\n .sidebar-section { margin-bottom: 20px; }\n .pinned-section .section-title .section-icon {\n color: var(--mj-status-warning);\n font-size: 11px;\n margin-left: 2px;\n }\n .section-header {\n padding: 4px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n color: var(--mj-brand-on-secondary);\n font-size: 13px;\n font-weight: 500;\n transition: background 0.2s;\n user-select: none;\n }\n .section-header:hover { background: color-mix(in srgb, var(--mj-brand-on-secondary) 8%, transparent); }\n .section-title {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .section-title i {\n font-size: 10px;\n }\n .section-title i:not(.section-icon) {\n transition: transform 0.2s;\n }\n .section-header.expanded .section-title i:not(.section-icon) { transform: rotate(90deg); }\n .chat-list {\n padding: 4px 0;\n display: none;\n }\n .chat-list.expanded { display: block; }\n\n .conversation-item {\n padding: 6px 5px 6px 16px;\n cursor: pointer;\n display: flex;\n gap: 8px;\n align-items: center;\n transition: all 0.2s;\n position: relative;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n font-size: 14px;\n min-height: 45px;\n }\n .conversation-item:hover { background: color-mix(in srgb, var(--mj-brand-on-secondary) 8%, transparent); color: var(--mj-brand-on-secondary); }\n .conversation-item:hover .conversation-actions { opacity: 1; }\n .conversation-item.active { background: var(--mj-brand-primary); color: var(--mj-brand-on-secondary); }\n .conversation-icon-wrapper { position: relative; flex-shrink: 0; }\n .conversation-icon { font-size: 12px; width: 16px; text-align: center; }\n .conversation-icon.has-tasks { color: var(--mj-status-warning); }\n .badge-overlay { position: absolute; top: -4px; right: -4px; }\n .conversation-info { flex: 1; min-width: 0; }\n .conversation-name { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; }\n .shared-indicator { font-size: 10px; color: color-mix(in srgb, var(--mj-brand-on-secondary) 55%, transparent); flex-shrink: 0; }\n .conversation-item.active .shared-indicator { color: color-mix(in srgb, var(--mj-brand-on-secondary) 85%, transparent); }\n .conversation-preview { font-size: 12px; color: color-mix(in srgb, var(--mj-brand-on-secondary) 50%, transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-item.active .conversation-preview { color: color-mix(in srgb, var(--mj-brand-on-secondary) 80%, transparent); }\n .conversation-meta { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }\n\n /* Project Badge */\n .project-badge {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n margin-left: auto;\n background-color: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n white-space: nowrap;\n max-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .conversation-item:hover .project-badge {\n background-color: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 80%, transparent);\n }\n .conversation-item.active .project-badge {\n background-color: color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .conversation-actions {\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 10;\n }\n .conversation-item:hover .conversation-actions { opacity: 1; pointer-events: auto; }\n .conversation-item.active .conversation-actions { opacity: 1; pointer-events: auto; }\n .conversation-actions > * { pointer-events: auto; }\n .pinned-icon { color: var(--mj-brand-accent); font-size: 12px; }\n\n /* Task Indicator */\n .task-indicator {\n color: var(--mj-status-warning);\n font-size: 12px;\n margin-right: 8px;\n flex-shrink: 0;\n animation: pulse-glow 2s ease-in-out infinite;\n }\n @keyframes pulse-glow {\n 0%, 100% {\n opacity: 1;\n filter: drop-shadow(0 0 2px var(--mj-status-warning));\n }\n 50% {\n opacity: 0.6;\n filter: drop-shadow(0 0 4px var(--mj-status-warning));\n }\n }\n .conversation-item.active .task-indicator {\n color: var(--mj-status-warning);\n }\n\n .menu-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n background: var(--mj-brand-secondary) !important;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n }\n .menu-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent) !important;\n color: var(--mj-brand-on-secondary);\n }\n .conversation-item.active .menu-btn {\n background: var(--mj-brand-primary-hover) !important;\n color: var(--mj-brand-on-secondary);\n }\n .menu-btn i { font-size: 14px; }\n\n .context-menu {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: var(--mj-brand-secondary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n pointer-events: auto;\n }\n\n .menu-item {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 85%, transparent);\n font-size: 14px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .menu-item:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .menu-item i {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n }\n\n .menu-item:hover i {\n color: var(--mj-brand-on-secondary);\n }\n\n .menu-item.danger {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger:hover {\n background: color-mix(in srgb, var(--mj-status-error) 15%, transparent);\n color: var(--mj-status-error);\n }\n\n .menu-item.danger i {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger:hover i {\n color: var(--mj-status-error);\n }\n\n .menu-divider {\n height: 1px;\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n margin: 4px 0;\n }\n\n /* Rename Animation */\n .conversation-item.renamed {\n animation: renameHighlight 1500ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n @keyframes renameHighlight {\n 0% {\n background: linear-gradient(90deg, rgba(59, 130, 246, 0.4), rgba(147, 51, 234, 0.4));\n transform: scale(1.03);\n box-shadow: 0 0 20px rgba(59, 130, 246, 0.5);\n }\n 25% {\n background: linear-gradient(90deg, rgba(59, 130, 246, 0.35), rgba(147, 51, 234, 0.35));\n box-shadow: 0 0 15px rgba(59, 130, 246, 0.4);\n }\n 50% {\n background: linear-gradient(90deg, rgba(16, 185, 129, 0.3), rgba(59, 130, 246, 0.3));\n transform: scale(1.02);\n box-shadow: 0 0 10px rgba(16, 185, 129, 0.3);\n }\n 75% {\n background: linear-gradient(90deg, rgba(16, 185, 129, 0.2), rgba(59, 130, 246, 0.2));\n box-shadow: 0 0 5px rgba(16, 185, 129, 0.2);\n }\n 100% {\n background: transparent;\n transform: scale(1);\n box-shadow: none;\n }\n }\n\n /* Selection Mode Styles */\n .header-top {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n /* Header menu button and dropdown */\n .header-menu-container {\n position: relative;\n flex-shrink: 0;\n }\n\n .btn-menu {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-menu:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n border-color: color-mix(in srgb, var(--mj-brand-on-secondary) 30%, transparent);\n }\n\n .header-dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n min-width: 200px;\n background: var(--mj-brand-secondary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n padding: 4px 0;\n }\n\n .header-dropdown-menu .dropdown-item {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 85%, transparent);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .header-dropdown-menu .dropdown-item:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .header-dropdown-menu .dropdown-item i {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n }\n\n .header-dropdown-menu .dropdown-item:hover i {\n color: var(--mj-brand-on-secondary);\n }\n\n .header-dropdown-menu .dropdown-item .shortcut {\n margin-left: auto;\n font-size: 11px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 40%, transparent);\n font-family: system-ui, -apple-system, sans-serif;\n }\n\n .btn-select {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n font-size: 13px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .btn-select:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n border-color: color-mix(in srgb, var(--mj-brand-on-secondary) 30%, transparent);\n }\n\n .conversation-checkbox {\n display: flex;\n align-items: center;\n margin-right: 8px;\n flex-shrink: 0;\n }\n\n .conversation-checkbox input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: var(--mj-brand-primary);\n }\n\n .selection-action-bar {\n position: sticky;\n bottom: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: var(--mj-brand-secondary);\n border-top: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n gap: 12px;\n flex-wrap: wrap;\n flex-shrink: 0;\n }\n\n .selection-info {\n display: flex;\n align-items: center;\n gap: 12px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 90%, transparent);\n font-size: 14px;\n font-weight: 500;\n flex: 1 1 auto;\n min-width: 150px;\n }\n\n .selection-count {\n color: var(--mj-brand-on-secondary);\n }\n\n .link-btn {\n background: none;\n border: none;\n color: var(--mj-brand-accent);\n cursor: pointer;\n font-size: 13px;\n text-decoration: underline;\n padding: 0;\n transition: color 0.2s;\n }\n\n .link-btn:hover {\n color: var(--mj-brand-on-secondary);\n }\n\n .selection-actions {\n display: flex;\n gap: 8px;\n flex: 0 0 auto;\n }\n\n .btn-cancel {\n padding: 8px 16px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-brand-on-secondary) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 70%, transparent);\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 0.2s;\n }\n\n .btn-cancel:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 10%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n\n .btn-delete-bulk {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: var(--mj-status-error);\n border: none;\n border-radius: 6px;\n color: var(--mj-brand-on-secondary);\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n transition: all 0.2s;\n }\n\n .btn-delete-bulk:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-status-error) 80%, black);\n }\n\n .btn-delete-bulk:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-delete-bulk i {\n font-size: 12px;\n }\n\n /* Folders */\n .section-action-btn {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n .section-action-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 15%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n .section-action-btn i { font-size: 12px; }\n\n .folder-row {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n cursor: pointer;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 80%, transparent);\n font-size: 13px;\n transition: background 0.15s;\n user-select: none;\n position: relative;\n }\n .folder-row:hover { background: color-mix(in srgb, var(--mj-brand-on-secondary) 8%, transparent); }\n .folder-row.drag-over {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n box-shadow: inset 0 0 0 1px var(--mj-brand-primary);\n }\n .folder-row.dragging { opacity: 0.4; }\n .section-header.drag-over {\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, transparent);\n box-shadow: inset 0 0 0 1px var(--mj-brand-primary);\n border-radius: 6px;\n }\n .folder-chevron {\n font-size: 9px;\n width: 10px;\n flex-shrink: 0;\n transition: transform 0.2s;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 55%, transparent);\n }\n .folder-chevron.expanded { transform: rotate(90deg); }\n .folder-icon { font-size: 12px; width: 16px; text-align: center; flex-shrink: 0; }\n .folder-name {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 600;\n }\n .folder-count {\n font-size: 11px;\n font-weight: 600;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 50%, transparent);\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 6px;\n text-align: right;\n }\n .folder-actions {\n position: absolute;\n right: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n gap: 2px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 5;\n }\n .folder-row:hover .folder-actions { opacity: 1; pointer-events: auto; }\n .folder-row:hover .folder-count { opacity: 0; }\n .folder-action-btn {\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 60%, transparent);\n cursor: pointer;\n transition: all 0.15s;\n }\n .folder-action-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-on-secondary) 18%, transparent);\n color: var(--mj-brand-on-secondary);\n }\n .folder-action-btn.danger:hover {\n background: color-mix(in srgb, var(--mj-status-error) 18%, transparent);\n color: var(--mj-status-error);\n }\n .folder-action-btn i { font-size: 11px; }\n .folder-children { display: block; }\n .folder-empty-hint {\n padding: 6px 16px;\n font-size: 11px;\n font-style: italic;\n color: color-mix(in srgb, var(--mj-brand-on-secondary) 45%, transparent);\n }\n .ungrouped-section.drag-over {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n box-shadow: inset 0 0 0 1px var(--mj-brand-primary);\n border-radius: 6px;\n }\n\n /* Dragging state */\n .conversation-item { user-select: none; }\n .conversation-item.dragging { opacity: 0.4; }\n\n /* Move-to-folder submenu */\n .menu-item.back { font-weight: 600; }\n .menu-item .submenu-arrow { margin-left: auto; font-size: 10px; }\n .menu-item.current { background: color-mix(in srgb, var(--mj-brand-primary) 18%, transparent); }\n .move-folder-list { max-height: 240px; overflow-y: auto; }\n "] }]
1663
+ `, styles: ["\n :host {\n display: block;\n height: 100%;\n /* White-label theming tokens for the list panel. The public\n --mj-chat-list-* custom properties are host-overridable (set\n them at :root or on any ancestor); the private --conv-list-* names\n resolve the fallback ONCE here so the 70+ usages below stay simple.\n (A self-referential var() fallback would be a custom-property cycle,\n so the two-name indirection is required, not stylistic.) Defaults\n preserve the stock look exactly: a brand-secondary panel with\n on-secondary ink. Hover/border/divider states derive from the ink via\n color-mix, so they follow automatically when the ink is remapped.\n The accent trio drives the panel's ACTION surfaces (New Conversation\n button, search-focus ring, checkbox tick, drag-over highlights) \u2014\n independent of the active-row pair so a host can tint actions on their\n own; defaults to the brand-primary action color, unchanged.\n --conv-list-hover-bg is the row-hover wash: it defaults to the same\n ink-derived tint as before (so a bg/ink remap still gives a neutral\n hover), but a host can point it at a brand tint to make hover an accent\n cue while keeping the panel itself on a neutral surface. */\n --conv-list-bg: var(--mj-chat-list-bg, var(--mj-brand-secondary));\n --conv-list-ink: var(--mj-chat-list-ink, var(--mj-brand-on-secondary));\n --conv-list-active-bg: var(--mj-chat-list-active-bg, var(--mj-brand-primary));\n --conv-list-active-ink: var(--mj-chat-list-active-ink, var(--mj-brand-on-secondary));\n --conv-list-active-hover-bg: var(--mj-chat-list-active-hover-bg, var(--mj-brand-primary-hover));\n --conv-list-accent: var(--mj-chat-list-accent, var(--mj-brand-primary));\n --conv-list-accent-ink: var(--mj-chat-list-accent-ink, var(--mj-text-inverse));\n --conv-list-accent-hover: var(--mj-chat-list-accent-hover, var(--mj-brand-primary-hover));\n --conv-list-hover-bg: var(--mj-chat-list-hover-bg, color-mix(in srgb, var(--conv-list-ink) 8%, transparent));\n }\n .conversation-list { display: flex; flex-direction: column; height: 100%; background: var(--conv-list-bg); }\n .list-header { padding: 8px; border-bottom: 1px solid color-mix(in srgb, var(--conv-list-ink) 10%, transparent); }\n .search-input {\n width: 100%;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: var(--conv-list-ink);\n font-size: 13px;\n transition: all 0.2s;\n }\n .search-input::placeholder { color: color-mix(in srgb, var(--conv-list-ink) 50%, transparent); }\n .search-input:focus { outline: none; background: color-mix(in srgb, var(--conv-list-ink) 15%, transparent); border-color: var(--conv-list-accent); }\n .btn-new-conversation {\n width: calc(100% - 16px);\n margin: 8px;\n padding: 10px;\n background: var(--conv-list-accent);\n color: var(--conv-list-accent-ink);\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: background 0.2s;\n flex-shrink: 0;\n }\n .btn-new-conversation:hover { background: var(--conv-list-accent-hover); }\n .btn-new-conversation i { font-size: 14px; }\n .list-content { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 0; }\n\n /* Collapsible Sections */\n .sidebar-section { margin-bottom: 20px; }\n .pinned-section .section-title .section-icon {\n color: var(--mj-status-warning);\n font-size: 11px;\n margin-left: 2px;\n }\n .section-header {\n padding: 4px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n color: var(--conv-list-ink);\n font-size: 13px;\n font-weight: 500;\n transition: background 0.2s;\n user-select: none;\n }\n .section-header:hover { background: color-mix(in srgb, var(--conv-list-ink) 8%, transparent); }\n .section-title {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .section-title i {\n font-size: 10px;\n }\n .section-title i:not(.section-icon) {\n transition: transform 0.2s;\n }\n .section-header.expanded .section-title i:not(.section-icon) { transform: rotate(90deg); }\n .chat-list {\n padding: 4px 0;\n display: none;\n }\n .chat-list.expanded { display: block; }\n\n .conversation-item {\n padding: 6px 5px 6px 16px;\n cursor: pointer;\n display: flex;\n gap: 8px;\n align-items: center;\n transition: all 0.2s;\n position: relative;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n font-size: 14px;\n min-height: 45px;\n }\n .conversation-item:hover { background: var(--conv-list-hover-bg); color: var(--conv-list-ink); }\n .conversation-item:hover .conversation-actions { opacity: 1; }\n .conversation-item.active { background: var(--conv-list-active-bg); color: var(--conv-list-active-ink); }\n .conversation-icon-wrapper { position: relative; flex-shrink: 0; }\n .conversation-icon { font-size: 12px; width: 16px; text-align: center; }\n .conversation-icon.has-tasks { color: var(--mj-status-warning); }\n .badge-overlay { position: absolute; top: -4px; right: -4px; }\n .conversation-info { flex: 1; min-width: 0; }\n .conversation-name { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; }\n .shared-indicator { font-size: 10px; color: color-mix(in srgb, var(--conv-list-ink) 55%, transparent); flex-shrink: 0; }\n .conversation-item.active .shared-indicator { color: color-mix(in srgb, var(--conv-list-active-ink) 85%, transparent); }\n .conversation-preview { font-size: 12px; color: color-mix(in srgb, var(--conv-list-ink) 50%, transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-item.active .conversation-preview { color: color-mix(in srgb, var(--conv-list-active-ink) 80%, transparent); }\n .conversation-meta { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }\n\n /* Project Badge */\n .project-badge {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n margin-left: auto;\n background-color: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n white-space: nowrap;\n max-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .conversation-item:hover .project-badge {\n background-color: color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n color: color-mix(in srgb, var(--conv-list-ink) 80%, transparent);\n }\n .conversation-item.active .project-badge {\n background-color: color-mix(in srgb, var(--conv-list-active-ink) 20%, transparent);\n color: var(--conv-list-active-ink);\n }\n\n .conversation-actions {\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 10;\n }\n .conversation-item:hover .conversation-actions { opacity: 1; pointer-events: auto; }\n .conversation-item.active .conversation-actions { opacity: 1; pointer-events: auto; }\n .conversation-actions > * { pointer-events: auto; }\n .pinned-icon { color: var(--mj-brand-accent); font-size: 12px; }\n\n /* Task Indicator */\n .task-indicator {\n color: var(--mj-status-warning);\n font-size: 12px;\n margin-right: 8px;\n flex-shrink: 0;\n animation: pulse-glow 2s ease-in-out infinite;\n }\n @keyframes pulse-glow {\n 0%, 100% {\n opacity: 1;\n filter: drop-shadow(0 0 2px var(--mj-status-warning));\n }\n 50% {\n opacity: 0.6;\n filter: drop-shadow(0 0 4px var(--mj-status-warning));\n }\n }\n .conversation-item.active .task-indicator {\n color: var(--mj-status-warning);\n }\n\n .menu-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n background: var(--conv-list-bg) !important;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n }\n .menu-btn:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 15%, transparent) !important;\n color: var(--conv-list-ink);\n }\n .conversation-item.active .menu-btn {\n background: var(--conv-list-active-hover-bg) !important;\n color: var(--conv-list-active-ink);\n }\n .menu-btn i { font-size: 14px; }\n\n .context-menu {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: var(--conv-list-bg);\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n pointer-events: auto;\n }\n\n .menu-item {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--conv-list-ink) 85%, transparent);\n font-size: 14px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .menu-item:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n }\n\n .menu-item i {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n }\n\n .menu-item:hover i {\n color: var(--conv-list-ink);\n }\n\n .menu-item.danger {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger:hover {\n background: color-mix(in srgb, var(--mj-status-error) 15%, transparent);\n color: var(--mj-status-error);\n }\n\n .menu-item.danger i {\n color: var(--mj-status-error);\n }\n\n .menu-item.danger:hover i {\n color: var(--mj-status-error);\n }\n\n .menu-divider {\n height: 1px;\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n margin: 4px 0;\n }\n\n /* Rename Animation */\n .conversation-item.renamed {\n animation: renameHighlight 1500ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n /* Brand-token ramp (was hardcoded tailwind blue/purple/emerald rgba values,\n which ignored theming): primary/accent open the flash, success/primary\n carry the fade, at the original alpha ramp (40/35/30/20; glows 50-20). */\n @keyframes renameHighlight {\n 0% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-brand-primary) 40%, transparent),\n color-mix(in srgb, var(--mj-brand-accent) 40%, transparent));\n transform: scale(1.03);\n box-shadow: 0 0 20px color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n 25% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-brand-primary) 35%, transparent),\n color-mix(in srgb, var(--mj-brand-accent) 35%, transparent));\n box-shadow: 0 0 15px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n }\n 50% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-status-success) 30%, transparent),\n color-mix(in srgb, var(--mj-brand-primary) 30%, transparent));\n transform: scale(1.02);\n box-shadow: 0 0 10px color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n }\n 75% {\n background: linear-gradient(90deg,\n color-mix(in srgb, var(--mj-status-success) 20%, transparent),\n color-mix(in srgb, var(--mj-brand-primary) 20%, transparent));\n box-shadow: 0 0 5px color-mix(in srgb, var(--mj-status-success) 20%, transparent);\n }\n 100% {\n background: transparent;\n transform: scale(1);\n box-shadow: none;\n }\n }\n\n /* Selection Mode Styles */\n .header-top {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n /* Header menu button and dropdown */\n .header-menu-container {\n position: relative;\n flex-shrink: 0;\n }\n\n .btn-menu {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-menu:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n border-color: color-mix(in srgb, var(--conv-list-ink) 30%, transparent);\n }\n\n .header-dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n min-width: 200px;\n background: var(--conv-list-bg);\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n z-index: 1001;\n overflow: hidden;\n padding: 4px 0;\n }\n\n .header-dropdown-menu .dropdown-item {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: color-mix(in srgb, var(--conv-list-ink) 85%, transparent);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .header-dropdown-menu .dropdown-item:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n }\n\n .header-dropdown-menu .dropdown-item i {\n width: 16px;\n font-size: 13px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n }\n\n .header-dropdown-menu .dropdown-item:hover i {\n color: var(--conv-list-ink);\n }\n\n .header-dropdown-menu .dropdown-item .shortcut {\n margin-left: auto;\n font-size: 11px;\n color: color-mix(in srgb, var(--conv-list-ink) 40%, transparent);\n font-family: system-ui, -apple-system, sans-serif;\n }\n\n .btn-select {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n font-size: 13px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .btn-select:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n border-color: color-mix(in srgb, var(--conv-list-ink) 30%, transparent);\n }\n\n .conversation-checkbox {\n display: flex;\n align-items: center;\n margin-right: 8px;\n flex-shrink: 0;\n }\n\n .conversation-checkbox input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: var(--conv-list-accent);\n }\n\n .selection-action-bar {\n position: sticky;\n bottom: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: var(--conv-list-bg);\n border-top: 1px solid color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n gap: 12px;\n flex-wrap: wrap;\n flex-shrink: 0;\n }\n\n .selection-info {\n display: flex;\n align-items: center;\n gap: 12px;\n color: color-mix(in srgb, var(--conv-list-ink) 90%, transparent);\n font-size: 14px;\n font-weight: 500;\n flex: 1 1 auto;\n min-width: 150px;\n }\n\n .selection-count {\n color: var(--conv-list-ink);\n }\n\n .link-btn {\n background: none;\n border: none;\n color: var(--mj-brand-accent);\n cursor: pointer;\n font-size: 13px;\n text-decoration: underline;\n padding: 0;\n transition: color 0.2s;\n }\n\n .link-btn:hover {\n color: var(--conv-list-ink);\n }\n\n .selection-actions {\n display: flex;\n gap: 8px;\n flex: 0 0 auto;\n }\n\n .btn-cancel {\n padding: 8px 16px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--conv-list-ink) 20%, transparent);\n border-radius: 6px;\n color: color-mix(in srgb, var(--conv-list-ink) 70%, transparent);\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 0.2s;\n }\n\n .btn-cancel:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 10%, transparent);\n color: var(--conv-list-ink);\n }\n\n .btn-delete-bulk {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: var(--mj-status-error);\n border: none;\n border-radius: 6px;\n /* Deliberately NOT --conv-list-ink: this ink sits on the error-red button,\n not the panel, so it must not follow a panel remap. (brand-on-secondary\n stays light in both modes; text-inverse flips dark in dark mode.) */\n color: var(--mj-brand-on-secondary);\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n transition: all 0.2s;\n }\n\n .btn-delete-bulk:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-status-error) 80%, black);\n }\n\n .btn-delete-bulk:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-delete-bulk i {\n font-size: 12px;\n }\n\n /* Folders */\n .section-action-btn {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n cursor: pointer;\n transition: all 0.2s;\n }\n .section-action-btn:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 15%, transparent);\n color: var(--conv-list-ink);\n }\n .section-action-btn i { font-size: 12px; }\n\n .folder-row {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n cursor: pointer;\n color: color-mix(in srgb, var(--conv-list-ink) 80%, transparent);\n font-size: 13px;\n transition: background 0.15s;\n user-select: none;\n position: relative;\n }\n .folder-row:hover { background: color-mix(in srgb, var(--conv-list-ink) 8%, transparent); }\n .folder-row.drag-over {\n background: color-mix(in srgb, var(--conv-list-accent) 25%, transparent);\n box-shadow: inset 0 0 0 1px var(--conv-list-accent);\n }\n .folder-row.dragging { opacity: 0.4; }\n .section-header.drag-over {\n background: color-mix(in srgb, var(--conv-list-accent) 18%, transparent);\n box-shadow: inset 0 0 0 1px var(--conv-list-accent);\n border-radius: 6px;\n }\n .folder-chevron {\n font-size: 9px;\n width: 10px;\n flex-shrink: 0;\n transition: transform 0.2s;\n color: color-mix(in srgb, var(--conv-list-ink) 55%, transparent);\n }\n .folder-chevron.expanded { transform: rotate(90deg); }\n .folder-icon { font-size: 12px; width: 16px; text-align: center; flex-shrink: 0; }\n .folder-name {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 600;\n }\n .folder-count {\n font-size: 11px;\n font-weight: 600;\n color: color-mix(in srgb, var(--conv-list-ink) 50%, transparent);\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 6px;\n text-align: right;\n }\n .folder-actions {\n position: absolute;\n right: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n gap: 2px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 5;\n }\n .folder-row:hover .folder-actions { opacity: 1; pointer-events: auto; }\n .folder-row:hover .folder-count { opacity: 0; }\n .folder-action-btn {\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: color-mix(in srgb, var(--conv-list-ink) 60%, transparent);\n cursor: pointer;\n transition: all 0.15s;\n }\n .folder-action-btn:hover {\n background: color-mix(in srgb, var(--conv-list-ink) 18%, transparent);\n color: var(--conv-list-ink);\n }\n .folder-action-btn.danger:hover {\n background: color-mix(in srgb, var(--mj-status-error) 18%, transparent);\n color: var(--mj-status-error);\n }\n .folder-action-btn i { font-size: 11px; }\n .folder-children { display: block; }\n .folder-empty-hint {\n padding: 6px 16px;\n font-size: 11px;\n font-style: italic;\n color: color-mix(in srgb, var(--conv-list-ink) 45%, transparent);\n }\n .ungrouped-section.drag-over {\n background: color-mix(in srgb, var(--conv-list-accent) 12%, transparent);\n box-shadow: inset 0 0 0 1px var(--conv-list-accent);\n border-radius: 6px;\n }\n\n /* Dragging state */\n .conversation-item { user-select: none; }\n .conversation-item.dragging { opacity: 0.4; }\n\n /* Move-to-folder submenu */\n .menu-item.back { font-weight: 600; }\n .menu-item .submenu-arrow { margin-left: auto; font-size: 10px; }\n .menu-item.current { background: color-mix(in srgb, var(--conv-list-accent) 18%, transparent); }\n .move-folder-list { max-height: 240px; overflow-y: auto; }\n "] }]
1584
1664
  }], () => [{ type: i1.DialogService }, { type: i2.NotificationService }, { type: i3.ActiveTasksService }, { type: i4.MJDialogService }, { type: i0.ChangeDetectorRef }], { environmentId: [{
1585
1665
  type: Input
1586
1666
  }], currentUser: [{
@@ -1593,6 +1673,14 @@ export class ConversationListComponent {
1593
1673
  type: Input
1594
1674
  }], isMobileView: [{
1595
1675
  type: Input
1676
+ }], showSearch: [{
1677
+ type: Input
1678
+ }], showNewConversationButton: [{
1679
+ type: Input
1680
+ }], showHeaderMenu: [{
1681
+ type: Input
1682
+ }], showSectionHeaders: [{
1683
+ type: Input
1596
1684
  }], conversationSelected: [{
1597
1685
  type: Output
1598
1686
  }], conversationDeleted: [{
@@ -1609,5 +1697,5 @@ export class ConversationListComponent {
1609
1697
  type: HostListener,
1610
1698
  args: ['document:click']
1611
1699
  }] }); })();
1612
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationListComponent, { className: "ConversationListComponent", filePath: "src/lib/components/conversation/conversation-list.component.ts", lineNumber: 964 }); })();
1700
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationListComponent, { className: "ConversationListComponent", filePath: "src/lib/components/conversation/conversation-list.component.ts", lineNumber: 1029 }); })();
1613
1701
  //# sourceMappingURL=conversation-list.component.js.map