@memberjunction/ng-conversations 6.2.0-edge.0 → 6.2.0-edge.2

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 (351) hide show
  1. package/README.md +43 -2
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +19 -3
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
  4. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +39 -7
  5. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  6. package/dist/lib/components/agent/active-agent-indicator.component.d.ts +74 -6
  7. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
  8. package/dist/lib/components/agent/active-agent-indicator.component.js +111 -21
  9. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  10. package/dist/lib/components/agent/agent-process-panel.component.d.ts +31 -5
  11. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
  12. package/dist/lib/components/agent/agent-process-panel.component.js +71 -15
  13. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  14. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +65 -9
  15. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
  16. package/dist/lib/components/artifact/artifact-share-modal.component.js +169 -57
  17. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  18. package/dist/lib/components/attachment/image-viewer.component.d.ts +77 -11
  19. package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
  20. package/dist/lib/components/attachment/image-viewer.component.js +181 -47
  21. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  22. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +129 -19
  23. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  24. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +350 -116
  25. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  26. package/dist/lib/components/collection/artifact-create-modal.component.d.ts +60 -8
  27. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
  28. package/dist/lib/components/collection/artifact-create-modal.component.js +130 -46
  29. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  30. package/dist/lib/components/collection/collection-artifact-card.component.d.ts +63 -3
  31. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  32. package/dist/lib/components/collection/collection-artifact-card.component.js +113 -19
  33. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  34. package/dist/lib/components/collection/collection-form-modal.component.d.ts +54 -8
  35. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  36. package/dist/lib/components/collection/collection-form-modal.component.js +130 -46
  37. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  38. package/dist/lib/components/collection/collection-share-modal.component.d.ts +70 -10
  39. package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
  40. package/dist/lib/components/collection/collection-share-modal.component.js +175 -53
  41. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  42. package/dist/lib/components/collection/collection-tree.component.d.ts +89 -9
  43. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  44. package/dist/lib/components/collection/collection-tree.component.js +220 -70
  45. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  46. package/dist/lib/components/collection/collection-view.component.d.ts +89 -11
  47. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  48. package/dist/lib/components/collection/collection-view.component.js +154 -40
  49. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  50. package/dist/lib/components/collection/collections-full-view.component.d.ts +390 -38
  51. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  52. package/dist/lib/components/collection/collections-full-view.component.js +951 -367
  53. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  54. package/dist/lib/components/composer/ai-composer.component.d.ts +213 -18
  55. package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -1
  56. package/dist/lib/components/composer/ai-composer.component.js +388 -44
  57. package/dist/lib/components/composer/ai-composer.component.js.map +1 -1
  58. package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +12 -1
  59. package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts.map +1 -1
  60. package/dist/lib/components/conversation/conversation-agent-picker.component.js +26 -4
  61. package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -1
  62. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +1191 -124
  63. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  64. package/dist/lib/components/conversation/conversation-chat-area.component.js +2816 -785
  65. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  66. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +139 -19
  67. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  68. package/dist/lib/components/conversation/conversation-empty-state.component.js +296 -59
  69. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  70. package/dist/lib/components/conversation/conversation-list.component.d.ts +579 -78
  71. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  72. package/dist/lib/components/conversation/conversation-list.component.js +2322 -823
  73. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  74. package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts +42 -4
  75. package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts.map +1 -1
  76. package/dist/lib/components/conversation/pinned-messages-panel.component.js +93 -21
  77. package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
  78. package/dist/lib/components/dialogs/input-dialog.component.d.ts +57 -11
  79. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
  80. package/dist/lib/components/dialogs/input-dialog.component.js +128 -16
  81. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  82. package/dist/lib/components/dialogs/rating-dialog.component.d.ts +68 -10
  83. package/dist/lib/components/dialogs/rating-dialog.component.d.ts.map +1 -1
  84. package/dist/lib/components/dialogs/rating-dialog.component.js +151 -27
  85. package/dist/lib/components/dialogs/rating-dialog.component.js.map +1 -1
  86. package/dist/lib/components/export/export-modal.component.d.ts +84 -10
  87. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  88. package/dist/lib/components/export/export-modal.component.js +173 -49
  89. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  90. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts +29 -3
  91. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
  92. package/dist/lib/components/global-tasks/global-tasks-panel.component.js +58 -12
  93. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  94. package/dist/lib/components/library/library-full-view.component.d.ts +57 -8
  95. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  96. package/dist/lib/components/library/library-full-view.component.js +119 -35
  97. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  98. package/dist/lib/components/members/members-modal.component.d.ts +76 -10
  99. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  100. package/dist/lib/components/members/members-modal.component.js +164 -50
  101. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  102. package/dist/lib/components/message/actionable-commands.component.d.ts +49 -5
  103. package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
  104. package/dist/lib/components/message/actionable-commands.component.js +140 -26
  105. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  106. package/dist/lib/components/message/conversation-message-rating.component.d.ts +46 -10
  107. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  108. package/dist/lib/components/message/conversation-message-rating.component.js +120 -36
  109. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  110. package/dist/lib/components/message/message-input.component.d.ts +613 -74
  111. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  112. package/dist/lib/components/message/message-input.component.js +1390 -422
  113. package/dist/lib/components/message/message-input.component.js.map +1 -1
  114. package/dist/lib/components/message/message-item.component.d.ts +490 -29
  115. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  116. package/dist/lib/components/message/message-item.component.js +1088 -244
  117. package/dist/lib/components/message/message-item.component.js.map +1 -1
  118. package/dist/lib/components/message/message-list.component.d.ts +297 -29
  119. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  120. package/dist/lib/components/message/message-list.component.js +598 -123
  121. package/dist/lib/components/message/message-list.component.js.map +1 -1
  122. package/dist/lib/components/navigation/conversation-navigation.component.d.ts +64 -5
  123. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  124. package/dist/lib/components/navigation/conversation-navigation.component.js +101 -11
  125. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  126. package/dist/lib/components/notification/activity-indicator.component.d.ts +6 -2
  127. package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
  128. package/dist/lib/components/notification/activity-indicator.component.js +13 -3
  129. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  130. package/dist/lib/components/notification/notification-badge.component.d.ts +15 -3
  131. package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
  132. package/dist/lib/components/notification/notification-badge.component.js +36 -8
  133. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  134. package/dist/lib/components/overlay/chat-overlay.component.d.ts +1 -1
  135. package/dist/lib/components/overlay/chat-overlay.component.js +4 -4
  136. package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
  137. package/dist/lib/components/project/project-form-modal.component.d.ts +93 -11
  138. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  139. package/dist/lib/components/project/project-form-modal.component.js +348 -87
  140. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  141. package/dist/lib/components/project/project-selector.component.d.ts +78 -8
  142. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
  143. package/dist/lib/components/project/project-selector.component.js +177 -46
  144. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  145. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +1 -1
  146. package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
  147. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  148. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +1 -1
  149. package/dist/lib/components/realtime/realtime-delegation-card.component.js +2 -2
  150. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  151. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +2 -2
  152. package/dist/lib/components/realtime/realtime-session-overlay.component.js +18 -18
  153. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  154. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +47 -23
  155. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
  156. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +136 -92
  157. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
  158. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +2 -2
  159. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +4 -4
  160. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  161. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +1 -1
  162. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +3 -3
  163. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  164. package/dist/lib/components/realtime/realtime-ui-config.d.ts +13 -11
  165. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  166. package/dist/lib/components/realtime/realtime-ui-config.js +29 -25
  167. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  168. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +3 -1
  169. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  170. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +6 -2
  171. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  172. package/dist/lib/components/search/search-panel.component.d.ts +133 -22
  173. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  174. package/dist/lib/components/search/search-panel.component.js +312 -83
  175. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  176. package/dist/lib/components/share/share-modal.component.d.ts +69 -9
  177. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  178. package/dist/lib/components/share/share-modal.component.js +139 -31
  179. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  180. package/dist/lib/components/shared/user-picker.component.d.ts +48 -8
  181. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  182. package/dist/lib/components/shared/user-picker.component.js +110 -30
  183. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  184. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +114 -11
  185. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  186. package/dist/lib/components/sidebar/conversation-sidebar.component.js +199 -21
  187. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  188. package/dist/lib/components/sidebar/routines-section.component.d.ts +20 -1
  189. package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -1
  190. package/dist/lib/components/sidebar/routines-section.component.js +25 -5
  191. package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
  192. package/dist/lib/components/slots/slot-interfaces.d.ts +19 -0
  193. package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
  194. package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
  195. package/dist/lib/components/task/tasks-full-view.component.d.ts +95 -13
  196. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
  197. package/dist/lib/components/task/tasks-full-view.component.js +223 -75
  198. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  199. package/dist/lib/components/tasks/task-widget.component.d.ts +46 -6
  200. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  201. package/dist/lib/components/tasks/task-widget.component.js +100 -16
  202. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  203. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +64 -7
  204. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  205. package/dist/lib/components/tasks/tasks-dropdown.component.js +127 -27
  206. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  207. package/dist/lib/components/thread/thread-panel.component.d.ts +66 -8
  208. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  209. package/dist/lib/components/thread/thread-panel.component.js +146 -36
  210. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  211. package/dist/lib/components/toast/toast.component.d.ts +11 -1
  212. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  213. package/dist/lib/components/toast/toast.component.js +25 -5
  214. package/dist/lib/components/toast/toast.component.js.map +1 -1
  215. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +385 -42
  216. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  217. package/dist/lib/components/workspace/conversation-workspace.component.js +891 -292
  218. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  219. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +8 -0
  220. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -1
  221. package/dist/lib/composer-plugins/base-conversation-mention.provider.js +8 -1
  222. package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -1
  223. package/dist/lib/directives/chat-slot.directive.d.ts +5 -1
  224. package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
  225. package/dist/lib/directives/chat-slot.directive.js.map +1 -1
  226. package/dist/lib/directives/search-shortcut.directive.d.ts +9 -1
  227. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  228. package/dist/lib/directives/search-shortcut.directive.js +14 -4
  229. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  230. package/dist/lib/events/chat-events.d.ts +34 -7
  231. package/dist/lib/events/chat-events.d.ts.map +1 -1
  232. package/dist/lib/events/chat-events.js +37 -7
  233. package/dist/lib/events/chat-events.js.map +1 -1
  234. package/dist/lib/models/agent-turn.model.d.ts +113 -0
  235. package/dist/lib/models/agent-turn.model.d.ts.map +1 -0
  236. package/dist/lib/models/agent-turn.model.js +12 -0
  237. package/dist/lib/models/agent-turn.model.js.map +1 -0
  238. package/dist/lib/models/collection-view.model.js.map +1 -1
  239. package/dist/lib/models/conversation-state.model.d.ts +8 -0
  240. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  241. package/dist/lib/models/conversation-state.model.js.map +1 -1
  242. package/dist/lib/models/lazy-artifact-info.d.ts +44 -12
  243. package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
  244. package/dist/lib/models/lazy-artifact-info.js +98 -34
  245. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  246. package/dist/lib/services/active-tasks.service.d.ts +30 -4
  247. package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
  248. package/dist/lib/services/active-tasks.service.js +71 -19
  249. package/dist/lib/services/active-tasks.service.js.map +1 -1
  250. package/dist/lib/services/agent-state.service.d.ts +17 -1
  251. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  252. package/dist/lib/services/agent-state.service.js +48 -16
  253. package/dist/lib/services/agent-state.service.js.map +1 -1
  254. package/dist/lib/services/artifact-permission.service.d.ts +39 -0
  255. package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
  256. package/dist/lib/services/artifact-permission.service.js +152 -17
  257. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  258. package/dist/lib/services/artifact-state.service.d.ts +58 -5
  259. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  260. package/dist/lib/services/artifact-state.service.js +135 -35
  261. package/dist/lib/services/artifact-state.service.js.map +1 -1
  262. package/dist/lib/services/collection-permission.service.d.ts +28 -0
  263. package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
  264. package/dist/lib/services/collection-permission.service.js +88 -32
  265. package/dist/lib/services/collection-permission.service.js.map +1 -1
  266. package/dist/lib/services/collection-state.service.d.ts +11 -1
  267. package/dist/lib/services/collection-state.service.d.ts.map +1 -1
  268. package/dist/lib/services/collection-state.service.js +25 -5
  269. package/dist/lib/services/collection-state.service.js.map +1 -1
  270. package/dist/lib/services/conversation-agent.service.d.ts +47 -4
  271. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  272. package/dist/lib/services/conversation-agent.service.js +85 -20
  273. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  274. package/dist/lib/services/conversation-attachment.service.d.ts +17 -0
  275. package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
  276. package/dist/lib/services/conversation-attachment.service.js +38 -10
  277. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  278. package/dist/lib/services/conversation-liveness-dom.service.d.ts +42 -0
  279. package/dist/lib/services/conversation-liveness-dom.service.d.ts.map +1 -0
  280. package/dist/lib/services/conversation-liveness-dom.service.js +74 -0
  281. package/dist/lib/services/conversation-liveness-dom.service.js.map +1 -0
  282. package/dist/lib/services/conversation-streaming.service.d.ts +22 -0
  283. package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
  284. package/dist/lib/services/conversation-streaming.service.js +50 -10
  285. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  286. package/dist/lib/services/data-cache.service.d.ts +31 -0
  287. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  288. package/dist/lib/services/data-cache.service.js +71 -15
  289. package/dist/lib/services/data-cache.service.js.map +1 -1
  290. package/dist/lib/services/dialog.service.d.ts +13 -0
  291. package/dist/lib/services/dialog.service.d.ts.map +1 -1
  292. package/dist/lib/services/dialog.service.js +25 -5
  293. package/dist/lib/services/dialog.service.js.map +1 -1
  294. package/dist/lib/services/export.service.d.ts +2 -0
  295. package/dist/lib/services/export.service.d.ts.map +1 -1
  296. package/dist/lib/services/export.service.js +5 -1
  297. package/dist/lib/services/export.service.js.map +1 -1
  298. package/dist/lib/services/mention-parser.service.d.ts +10 -0
  299. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  300. package/dist/lib/services/mention-parser.service.js +25 -5
  301. package/dist/lib/services/mention-parser.service.js.map +1 -1
  302. package/dist/lib/services/notification.service.d.ts +54 -6
  303. package/dist/lib/services/notification.service.d.ts.map +1 -1
  304. package/dist/lib/services/notification.service.js +123 -27
  305. package/dist/lib/services/notification.service.js.map +1 -1
  306. package/dist/lib/services/realtime-audio-recorder.d.ts +4 -4
  307. package/dist/lib/services/realtime-audio-recorder.js +12 -12
  308. package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
  309. package/dist/lib/services/realtime-pcm-wav.d.ts +4 -0
  310. package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -1
  311. package/dist/lib/services/realtime-pcm-wav.js +10 -2
  312. package/dist/lib/services/realtime-pcm-wav.js.map +1 -1
  313. package/dist/lib/services/search.service.d.ts +42 -9
  314. package/dist/lib/services/search.service.d.ts.map +1 -1
  315. package/dist/lib/services/search.service.js +103 -23
  316. package/dist/lib/services/search.service.js.map +1 -1
  317. package/dist/lib/services/toast.service.d.ts +19 -1
  318. package/dist/lib/services/toast.service.d.ts.map +1 -1
  319. package/dist/lib/services/toast.service.js +45 -9
  320. package/dist/lib/services/toast.service.js.map +1 -1
  321. package/dist/lib/services/ui-command-handler.service.d.ts +56 -5
  322. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
  323. package/dist/lib/services/ui-command-handler.service.js +113 -16
  324. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  325. package/dist/lib/utils/agent-artifact-summary.d.ts +2 -2
  326. package/dist/lib/utils/agent-artifact-summary.js +3 -3
  327. package/dist/lib/utils/agent-artifact-summary.js.map +1 -1
  328. package/dist/lib/utils/agent-turn-routing.d.ts +70 -0
  329. package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -0
  330. package/dist/lib/utils/agent-turn-routing.js +84 -0
  331. package/dist/lib/utils/agent-turn-routing.js.map +1 -0
  332. package/dist/lib/utils/artifact-panel-action.d.ts +15 -4
  333. package/dist/lib/utils/artifact-panel-action.d.ts.map +1 -1
  334. package/dist/lib/utils/artifact-panel-action.js +10 -2
  335. package/dist/lib/utils/artifact-panel-action.js.map +1 -1
  336. package/dist/lib/utils/decision-routing.d.ts +68 -0
  337. package/dist/lib/utils/decision-routing.d.ts.map +1 -0
  338. package/dist/lib/utils/decision-routing.js +101 -0
  339. package/dist/lib/utils/decision-routing.js.map +1 -0
  340. package/dist/lib/utils/distinct-artifacts.d.ts +2 -0
  341. package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
  342. package/dist/lib/utils/distinct-artifacts.js +5 -1
  343. package/dist/lib/utils/distinct-artifacts.js.map +1 -1
  344. package/dist/lib/utils/plan-mode-preference.d.ts +2 -2
  345. package/dist/lib/utils/plan-mode-preference.js +6 -6
  346. package/dist/lib/utils/plan-mode-preference.js.map +1 -1
  347. package/dist/public-api.d.ts +5 -0
  348. package/dist/public-api.d.ts.map +1 -1
  349. package/dist/public-api.js +8 -0
  350. package/dist/public-api.js.map +1 -1
  351. package/package.json +32 -32
@@ -1,35 +1,37 @@
1
1
  import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
2
2
  import { MessageInputComponent } from '../message/message-input.component';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@memberjunction/ng-shared-generic";
5
- import * as i2 from "../message/message-input.component";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@memberjunction/ng-shared-generic";
6
+ import * as i3 from "../message/message-input.component";
7
+ const _c0 = a0 => ({ $implicit: null, ConversationId: null, IsProcessing: a0 });
6
8
  function ConversationEmptyStateComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
7
9
  i0.ɵɵelementStart(0, "div", 1);
8
- i0.ɵɵelement(1, "mj-loading", 9);
10
+ i0.ɵɵelement(1, "mj-loading", 10);
9
11
  i0.ɵɵelementEnd();
10
12
  } }
11
13
  function ConversationEmptyStateComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "div", 3)(1, "div", 10);
13
- i0.ɵɵelement(2, "i", 11);
14
+ i0.ɵɵelementStart(0, "div", 3)(1, "div", 11);
15
+ i0.ɵɵelement(2, "i", 12);
14
16
  i0.ɵɵelementEnd();
15
- i0.ɵɵelementStart(3, "h1", 12);
17
+ i0.ɵɵelementStart(3, "h1", 13);
16
18
  i0.ɵɵtext(4, "Welcome to Conversations");
17
19
  i0.ɵɵelementEnd();
18
- i0.ɵɵelementStart(5, "p", 13);
20
+ i0.ɵɵelementStart(5, "p", 14);
19
21
  i0.ɵɵtext(6, " Start a new conversation by typing a message below, or choose a suggested prompt to get started. ");
20
22
  i0.ɵɵelementEnd()();
21
23
  } }
22
24
  function ConversationEmptyStateComponent_Conditional_4_For_3_Template(rf, ctx) { if (rf & 1) {
23
25
  const _r1 = i0.ɵɵgetCurrentView();
24
- i0.ɵɵelementStart(0, "div", 16);
26
+ i0.ɵɵelementStart(0, "div", 17);
25
27
  i0.ɵɵlistener("click", function ConversationEmptyStateComponent_Conditional_4_For_3_Template_div_click_0_listener() { const prompt_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onSuggestedPromptClicked(prompt_r2.prompt)); });
26
- i0.ɵɵelementStart(1, "div", 17);
28
+ i0.ɵɵelementStart(1, "div", 18);
27
29
  i0.ɵɵelement(2, "i");
28
30
  i0.ɵɵelementEnd();
29
- i0.ɵɵelementStart(3, "div", 18)(4, "div", 19);
31
+ i0.ɵɵelementStart(3, "div", 19)(4, "div", 20);
30
32
  i0.ɵɵtext(5);
31
33
  i0.ɵɵelementEnd();
32
- i0.ɵɵelementStart(6, "div", 20);
34
+ i0.ɵɵelementStart(6, "div", 21);
33
35
  i0.ɵɵtext(7);
34
36
  i0.ɵɵelementEnd()()();
35
37
  } if (rf & 2) {
@@ -44,8 +46,8 @@ function ConversationEmptyStateComponent_Conditional_4_For_3_Template(rf, ctx) {
44
46
  i0.ɵɵtextInterpolate(prompt_r2.prompt);
45
47
  } }
46
48
  function ConversationEmptyStateComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelementStart(0, "div", 4)(1, "div", 14);
48
- i0.ɵɵrepeaterCreate(2, ConversationEmptyStateComponent_Conditional_4_For_3_Template, 8, 6, "div", 15, i0.ɵɵrepeaterTrackByIdentity);
49
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 15);
50
+ i0.ɵɵrepeaterCreate(2, ConversationEmptyStateComponent_Conditional_4_For_3_Template, 8, 6, "div", 16, i0.ɵɵrepeaterTrackByIdentity);
49
51
  i0.ɵɵelementEnd()();
50
52
  } if (rf & 2) {
51
53
  const ctx_r2 = i0.ɵɵnextContext();
@@ -53,7 +55,7 @@ function ConversationEmptyStateComponent_Conditional_4_Template(rf, ctx) { if (r
53
55
  i0.ɵɵrepeater(ctx_r2.suggestedPrompts);
54
56
  } }
55
57
  function ConversationEmptyStateComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵelementStart(0, "div", 5)(1, "p", 21);
58
+ i0.ɵɵelementStart(0, "div", 5)(1, "p", 22);
57
59
  i0.ɵɵtext(2);
58
60
  i0.ɵɵelementEnd()();
59
61
  } if (rf & 2) {
@@ -61,9 +63,21 @@ function ConversationEmptyStateComponent_Conditional_5_Template(rf, ctx) { if (r
61
63
  i0.ɵɵadvance(2);
62
64
  i0.ɵɵtextInterpolate(ctx_r2.greeting);
63
65
  } }
64
- function ConversationEmptyStateComponent_Conditional_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "div", 22);
66
- i0.ɵɵelement(1, "i", 24);
66
+ function ConversationEmptyStateComponent_Conditional_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelementContainer(0);
68
+ } }
69
+ function ConversationEmptyStateComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵelementStart(0, "div", 7);
71
+ i0.ɵɵtemplate(1, ConversationEmptyStateComponent_Conditional_7_ng_container_1_Template, 1, 0, "ng-container", 23);
72
+ i0.ɵɵelementEnd();
73
+ } if (rf & 2) {
74
+ const ctx_r2 = i0.ɵɵnextContext();
75
+ i0.ɵɵadvance();
76
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.ComposerExtraTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, ctx_r2.disabled));
77
+ } }
78
+ function ConversationEmptyStateComponent_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
79
+ i0.ɵɵelementStart(0, "div", 24);
80
+ i0.ɵɵelement(1, "i", 26);
67
81
  i0.ɵɵelementStart(2, "span");
68
82
  i0.ɵɵtext(3, "Use ");
69
83
  i0.ɵɵelementStart(4, "strong");
@@ -72,11 +86,11 @@ function ConversationEmptyStateComponent_Conditional_8_Conditional_1_Template(rf
72
86
  i0.ɵɵtext(6, " to directly invoke a specific agent");
73
87
  i0.ɵɵelementEnd()();
74
88
  } }
75
- function ConversationEmptyStateComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
76
- i0.ɵɵelementStart(0, "div", 8);
77
- i0.ɵɵconditionalCreate(1, ConversationEmptyStateComponent_Conditional_8_Conditional_1_Template, 7, 0, "div", 22);
78
- i0.ɵɵelementStart(2, "div", 22);
79
- i0.ɵɵelement(3, "i", 23);
89
+ function ConversationEmptyStateComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵelementStart(0, "div", 9);
91
+ i0.ɵɵconditionalCreate(1, ConversationEmptyStateComponent_Conditional_9_Conditional_1_Template, 7, 0, "div", 24);
92
+ i0.ɵɵelementStart(2, "div", 24);
93
+ i0.ɵɵelement(3, "i", 25);
80
94
  i0.ɵɵelementStart(4, "span");
81
95
  i0.ɵɵtext(5, "Press ");
82
96
  i0.ɵɵelementStart(6, "strong");
@@ -94,44 +108,205 @@ function ConversationEmptyStateComponent_Conditional_8_Template(rf, ctx) { if (r
94
108
  i0.ɵɵconditional(ctx_r2.enableMentions ? 1 : -1);
95
109
  } }
96
110
  export class ConversationEmptyStateComponent {
97
- currentUser;
98
- disabled = false;
99
- showSidebarToggle = false;
100
- enableAttachments = false;
101
- enableMentions = true;
111
+ CurrentUser;
112
+ /** @deprecated Use {@link CurrentUser}. */
113
+ set currentUser(value) {
114
+ this.CurrentUser = value;
115
+ }
116
+ /** @deprecated Use {@link CurrentUser}. */
117
+ get currentUser() {
118
+ return this.CurrentUser;
119
+ }
120
+ Disabled = false;
121
+ /** @deprecated Use {@link Disabled}. */
122
+ set disabled(value) {
123
+ this.Disabled = value;
124
+ }
125
+ /** @deprecated Use {@link Disabled}. */
126
+ get disabled() {
127
+ return this.Disabled;
128
+ }
129
+ ShowSidebarToggle = false;
130
+ /** @deprecated Use {@link ShowSidebarToggle}. */
131
+ set showSidebarToggle(value) {
132
+ this.ShowSidebarToggle = value;
133
+ }
134
+ /** @deprecated Use {@link ShowSidebarToggle}. */
135
+ get showSidebarToggle() {
136
+ return this.ShowSidebarToggle;
137
+ }
138
+ EnableAttachments = false;
139
+ /** @deprecated Use {@link EnableAttachments}. */
140
+ set enableAttachments(value) {
141
+ this.EnableAttachments = value;
142
+ }
143
+ /** @deprecated Use {@link EnableAttachments}. */
144
+ get enableAttachments() {
145
+ return this.EnableAttachments;
146
+ }
147
+ EnableMentions = true;
148
+ /** @deprecated Use {@link EnableMentions}. */
149
+ set enableMentions(value) {
150
+ this.EnableMentions = value;
151
+ }
152
+ /** @deprecated Use {@link EnableMentions}. */
153
+ get enableMentions() {
154
+ return this.EnableMentions;
155
+ }
102
156
  /** Per-type mention caps under enableMentions (all default true) — forwarded to the composer. */
103
- enableAgentMentions = true;
104
- enableEntityMentions = true;
105
- enableSkillCommands = true;
157
+ EnableAgentMentions = true;
158
+ /** @deprecated Use {@link EnableAgentMentions}. */
159
+ set enableAgentMentions(value) {
160
+ this.EnableAgentMentions = value;
161
+ }
162
+ /** @deprecated Use {@link EnableAgentMentions}. */
163
+ get enableAgentMentions() {
164
+ return this.EnableAgentMentions;
165
+ }
166
+ EnableEntityMentions = true;
167
+ /** @deprecated Use {@link EnableEntityMentions}. */
168
+ set enableEntityMentions(value) {
169
+ this.EnableEntityMentions = value;
170
+ }
171
+ /** @deprecated Use {@link EnableEntityMentions}. */
172
+ get enableEntityMentions() {
173
+ return this.EnableEntityMentions;
174
+ }
175
+ EnableSkillCommands = true;
176
+ /** @deprecated Use {@link EnableSkillCommands}. */
177
+ set enableSkillCommands(value) {
178
+ this.EnableSkillCommands = value;
179
+ }
180
+ /** @deprecated Use {@link EnableSkillCommands}. */
181
+ get enableSkillCommands() {
182
+ return this.EnableSkillCommands;
183
+ }
106
184
  /** Show the built-in suggested-prompt chips. Hosts that don't want the default prompt vocabulary set false. */
107
- showSuggestedPrompts = true;
108
- maxAttachments = 10;
109
- maxAttachmentSizeBytes = 20 * 1024 * 1024;
110
- acceptedFileTypes = 'image/*';
185
+ ShowSuggestedPrompts = true;
186
+ /** @deprecated Use {@link ShowSuggestedPrompts}. */
187
+ set showSuggestedPrompts(value) {
188
+ this.ShowSuggestedPrompts = value;
189
+ }
190
+ /** @deprecated Use {@link ShowSuggestedPrompts}. */
191
+ get showSuggestedPrompts() {
192
+ return this.ShowSuggestedPrompts;
193
+ }
194
+ MaxAttachments = 10;
195
+ /** @deprecated Use {@link MaxAttachments}. */
196
+ set maxAttachments(value) {
197
+ this.MaxAttachments = value;
198
+ }
199
+ /** @deprecated Use {@link MaxAttachments}. */
200
+ get maxAttachments() {
201
+ return this.MaxAttachments;
202
+ }
203
+ MaxAttachmentSizeBytes = 20 * 1024 * 1024;
204
+ /** @deprecated Use {@link MaxAttachmentSizeBytes}. */
205
+ set maxAttachmentSizeBytes(value) {
206
+ this.MaxAttachmentSizeBytes = value;
207
+ }
208
+ /** @deprecated Use {@link MaxAttachmentSizeBytes}. */
209
+ get maxAttachmentSizeBytes() {
210
+ return this.MaxAttachmentSizeBytes;
211
+ }
212
+ AcceptedFileTypes = 'image/*';
213
+ /** @deprecated Use {@link AcceptedFileTypes}. */
214
+ set acceptedFileTypes(value) {
215
+ this.AcceptedFileTypes = value;
216
+ }
217
+ /** @deprecated Use {@link AcceptedFileTypes}. */
218
+ get acceptedFileTypes() {
219
+ return this.AcceptedFileTypes;
220
+ }
111
221
  /** Greeting text shown in the empty state. Set by host app via overlay/chat-area chain. */
112
- greeting = 'How can I help you?';
222
+ Greeting = 'How can I help you?';
223
+ /** @deprecated Use {@link Greeting}. */
224
+ set greeting(value) {
225
+ this.Greeting = value;
226
+ }
227
+ /** @deprecated Use {@link Greeting}. */
228
+ get greeting() {
229
+ return this.Greeting;
230
+ }
113
231
  /** When true (overlay context), suggested prompts are hidden to save space */
114
232
  _overlayMode = false;
115
- set overlayMode(value) {
233
+ set OverlayMode(value) {
116
234
  this._overlayMode = value;
117
235
  if (value) {
118
- this.suggestedPrompts = [];
236
+ this.SuggestedPrompts = [];
119
237
  }
120
238
  }
121
- get overlayMode() {
239
+ get OverlayMode() {
122
240
  return this._overlayMode;
123
241
  }
242
+ /** @deprecated Use {@link OverlayMode}. */
243
+ get overlayMode() {
244
+ return this.OverlayMode;
245
+ }
246
+ /** @deprecated Use {@link OverlayMode}. */
247
+ set overlayMode(value) {
248
+ this.OverlayMode = value;
249
+ }
250
+ /** The agents the composer's '@' list may offer (see `MessageInputComponent.AllowedAgentIDs`). */
251
+ AllowedAgentIDs = null;
252
+ /** The people the composer's '@' list offers (see `MessageInputComponent.MentionPeople`). */
253
+ MentionPeople = null;
254
+ /**
255
+ * The chat area's `composerExtra` slot template, rendered directly above this composer with an
256
+ * `IMJChatComposerExtraContext` (no conversation exists yet). Null renders nothing there.
257
+ */
258
+ ComposerExtraTemplate = null;
124
259
  messageInput;
125
260
  /** Draft staged into the composer on mount (see MessageInputComponent.initialDraft). */
126
- initialDraft = null;
127
- initialDraftApplied = new EventEmitter();
261
+ InitialDraft = null;
262
+ /** @deprecated Use {@link InitialDraft}. */
263
+ set initialDraft(value) {
264
+ this.InitialDraft = value;
265
+ }
266
+ /** @deprecated Use {@link InitialDraft}. */
267
+ get initialDraft() {
268
+ return this.InitialDraft;
269
+ }
270
+ InitialDraftApplied = new EventEmitter();
271
+ /**
272
+ * @deprecated Use {@link InitialDraftApplied}.
273
+ *
274
+ * The same emitter under the old binding name, so a template still binding
275
+ * (initialDraftApplied) keeps working. Must stay AFTER InitialDraftApplied: class fields
276
+ * initialise in order, and the other way round this captures undefined.
277
+ */
278
+ initialDraftApplied = this.InitialDraftApplied;
128
279
  /** Forwarded from the inner composer — serialized draft on every value change. */
129
280
  DraftStateChanged = new EventEmitter();
130
281
  /** Forwarded from the inner composer — persist-drafts save point. */
131
282
  ComposerBlurred = new EventEmitter();
132
- messageSent = new EventEmitter();
133
- sidebarToggleClicked = new EventEmitter();
134
- messageText = '';
283
+ MessageSent = new EventEmitter();
284
+ /**
285
+ * @deprecated Use {@link MessageSent}.
286
+ *
287
+ * The same emitter under the old binding name, so a template still binding
288
+ * (messageSent) keeps working. Must stay AFTER MessageSent: class fields
289
+ * initialise in order, and the other way round this captures undefined.
290
+ */
291
+ messageSent = this.MessageSent;
292
+ SidebarToggleClicked = new EventEmitter();
293
+ /**
294
+ * @deprecated Use {@link SidebarToggleClicked}.
295
+ *
296
+ * The same emitter under the old binding name, so a template still binding
297
+ * (sidebarToggleClicked) keeps working. Must stay AFTER SidebarToggleClicked: class fields
298
+ * initialise in order, and the other way round this captures undefined.
299
+ */
300
+ sidebarToggleClicked = this.SidebarToggleClicked;
301
+ MessageText = '';
302
+ /** @deprecated Use {@link MessageText}. */
303
+ get messageText() {
304
+ return this.MessageText;
305
+ }
306
+ /** @deprecated Use {@link MessageText}. */
307
+ set messageText(value) {
308
+ this.MessageText = value;
309
+ }
135
310
  // All available suggested prompts (business user focused)
136
311
  allSuggestedPrompts = [
137
312
  // Data Analysis & Insights
@@ -239,10 +414,18 @@ export class ConversationEmptyStateComponent {
239
414
  }
240
415
  ];
241
416
  // Randomly selected prompts to display (refreshed on each load)
242
- suggestedPrompts = [];
417
+ SuggestedPrompts = [];
418
+ /** @deprecated Use {@link SuggestedPrompts}. */
419
+ get suggestedPrompts() {
420
+ return this.SuggestedPrompts;
421
+ }
422
+ /** @deprecated Use {@link SuggestedPrompts}. */
423
+ set suggestedPrompts(value) {
424
+ this.SuggestedPrompts = value;
425
+ }
243
426
  constructor() {
244
427
  // Select 4 random prompts on initialization
245
- this.suggestedPrompts = this.selectRandomPrompts(4);
428
+ this.SuggestedPrompts = this.selectRandomPrompts(4);
246
429
  }
247
430
  /**
248
431
  * Select random prompts from the full list
@@ -273,31 +456,41 @@ export class ConversationEmptyStateComponent {
273
456
  }
274
457
  }, 100);
275
458
  }
459
+ OnEmptyStateSubmit(event) {
460
+ this.MessageSent.emit(event);
461
+ }
462
+ /** @deprecated Use {@link OnEmptyStateSubmit}. */
276
463
  onEmptyStateSubmit(event) {
277
- this.messageSent.emit(event);
464
+ return this.OnEmptyStateSubmit(event);
278
465
  }
279
- onSuggestedPromptClicked(prompt) {
280
- if (!this.disabled) {
281
- this.messageSent.emit({ text: prompt, attachments: [] });
466
+ OnSuggestedPromptClicked(prompt) {
467
+ if (!this.Disabled) {
468
+ this.MessageSent.emit({ text: prompt, attachments: [] });
282
469
  }
283
470
  }
471
+ /** @deprecated Use {@link OnSuggestedPromptClicked}. */
472
+ onSuggestedPromptClicked(prompt) {
473
+ return this.OnSuggestedPromptClicked(prompt);
474
+ }
284
475
  static ɵfac = function ConversationEmptyStateComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ConversationEmptyStateComponent)(); };
285
476
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationEmptyStateComponent, selectors: [["mj-conversation-empty-state"]], viewQuery: function ConversationEmptyStateComponent_Query(rf, ctx) { if (rf & 1) {
286
477
  i0.ɵɵviewQuery(MessageInputComponent, 5);
287
478
  } if (rf & 2) {
288
479
  let _t;
289
480
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messageInput = _t.first);
290
- } }, inputs: { currentUser: "currentUser", disabled: "disabled", showSidebarToggle: "showSidebarToggle", enableAttachments: "enableAttachments", enableMentions: "enableMentions", enableAgentMentions: "enableAgentMentions", enableEntityMentions: "enableEntityMentions", enableSkillCommands: "enableSkillCommands", showSuggestedPrompts: "showSuggestedPrompts", maxAttachments: "maxAttachments", maxAttachmentSizeBytes: "maxAttachmentSizeBytes", acceptedFileTypes: "acceptedFileTypes", greeting: "greeting", overlayMode: "overlayMode", initialDraft: "initialDraft" }, outputs: { initialDraftApplied: "initialDraftApplied", DraftStateChanged: "DraftStateChanged", ComposerBlurred: "ComposerBlurred", messageSent: "messageSent", sidebarToggleClicked: "sidebarToggleClicked" }, standalone: false, decls: 9, vars: 22, consts: [[1, "conversation-empty-state"], [1, "loading-overlay"], [1, "empty-state-container"], [1, "greeting-section"], [1, "suggested-prompts"], [1, "overlay-greeting"], [1, "message-input-wrapper"], [3, "initialDraftApplied", "DraftStateChanged", "ComposerBlurred", "emptyStateSubmit", "initialDraft", "placeholder", "disabled", "currentUser", "emptyStateMode", "enableMentions", "enableAgentMentions", "enableEntityMentions", "enableSkillCommands", "enableAttachments", "maxAttachments", "maxAttachmentSizeBytes", "acceptedFileTypes"], [1, "tips-section"], ["text", "Creating your conversation...", "size", "large"], [1, "greeting-icon"], [1, "fa-solid", "fa-comments", "fa-3x"], [1, "greeting-title"], [1, "greeting-subtitle"], [1, "prompt-grid"], [1, "prompt-card", 3, "disabled"], [1, "prompt-card", 3, "click"], [1, "prompt-icon"], [1, "prompt-content"], [1, "prompt-title"], [1, "prompt-text"], [1, "overlay-greeting-text"], [1, "tip-item"], [1, "fa-solid", "fa-keyboard"], [1, "fa-solid", "fa-at"]], template: function ConversationEmptyStateComponent_Template(rf, ctx) { if (rf & 1) {
481
+ } }, inputs: { CurrentUser: "CurrentUser", currentUser: "currentUser", Disabled: "Disabled", disabled: "disabled", ShowSidebarToggle: "ShowSidebarToggle", showSidebarToggle: "showSidebarToggle", EnableAttachments: "EnableAttachments", enableAttachments: "enableAttachments", EnableMentions: "EnableMentions", enableMentions: "enableMentions", EnableAgentMentions: "EnableAgentMentions", enableAgentMentions: "enableAgentMentions", EnableEntityMentions: "EnableEntityMentions", enableEntityMentions: "enableEntityMentions", EnableSkillCommands: "EnableSkillCommands", enableSkillCommands: "enableSkillCommands", ShowSuggestedPrompts: "ShowSuggestedPrompts", showSuggestedPrompts: "showSuggestedPrompts", MaxAttachments: "MaxAttachments", maxAttachments: "maxAttachments", MaxAttachmentSizeBytes: "MaxAttachmentSizeBytes", maxAttachmentSizeBytes: "maxAttachmentSizeBytes", AcceptedFileTypes: "AcceptedFileTypes", acceptedFileTypes: "acceptedFileTypes", Greeting: "Greeting", greeting: "greeting", OverlayMode: "OverlayMode", overlayMode: "overlayMode", AllowedAgentIDs: "AllowedAgentIDs", MentionPeople: "MentionPeople", ComposerExtraTemplate: "ComposerExtraTemplate", InitialDraft: "InitialDraft", initialDraft: "initialDraft" }, outputs: { InitialDraftApplied: "InitialDraftApplied", initialDraftApplied: "initialDraftApplied", DraftStateChanged: "DraftStateChanged", ComposerBlurred: "ComposerBlurred", MessageSent: "MessageSent", messageSent: "messageSent", SidebarToggleClicked: "SidebarToggleClicked", sidebarToggleClicked: "sidebarToggleClicked" }, standalone: false, decls: 10, vars: 25, consts: [[1, "conversation-empty-state"], [1, "loading-overlay"], [1, "empty-state-container"], [1, "greeting-section"], [1, "suggested-prompts"], [1, "overlay-greeting"], [1, "message-input-wrapper"], [1, "composer-extra"], [3, "initialDraftApplied", "DraftStateChanged", "ComposerBlurred", "emptyStateSubmit", "initialDraft", "placeholder", "disabled", "currentUser", "emptyStateMode", "enableMentions", "enableAgentMentions", "enableEntityMentions", "enableSkillCommands", "AllowedAgentIDs", "MentionPeople", "enableAttachments", "maxAttachments", "maxAttachmentSizeBytes", "acceptedFileTypes"], [1, "tips-section"], ["text", "Creating your conversation...", "size", "large"], [1, "greeting-icon"], [1, "fa-solid", "fa-comments", "fa-3x"], [1, "greeting-title"], [1, "greeting-subtitle"], [1, "prompt-grid"], [1, "prompt-card", 3, "disabled"], [1, "prompt-card", 3, "click"], [1, "prompt-icon"], [1, "prompt-content"], [1, "prompt-title"], [1, "prompt-text"], [1, "overlay-greeting-text"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "tip-item"], [1, "fa-solid", "fa-keyboard"], [1, "fa-solid", "fa-at"]], template: function ConversationEmptyStateComponent_Template(rf, ctx) { if (rf & 1) {
291
482
  i0.ɵɵelementStart(0, "div", 0);
292
483
  i0.ɵɵconditionalCreate(1, ConversationEmptyStateComponent_Conditional_1_Template, 2, 0, "div", 1);
293
484
  i0.ɵɵelementStart(2, "div", 2);
294
485
  i0.ɵɵconditionalCreate(3, ConversationEmptyStateComponent_Conditional_3_Template, 7, 0, "div", 3);
295
486
  i0.ɵɵconditionalCreate(4, ConversationEmptyStateComponent_Conditional_4_Template, 4, 0, "div", 4);
296
487
  i0.ɵɵconditionalCreate(5, ConversationEmptyStateComponent_Conditional_5_Template, 3, 1, "div", 5);
297
- i0.ɵɵelementStart(6, "div", 6)(7, "mj-message-input", 7);
298
- i0.ɵɵlistener("initialDraftApplied", function ConversationEmptyStateComponent_Template_mj_message_input_initialDraftApplied_7_listener() { return ctx.initialDraftApplied.emit(); })("DraftStateChanged", function ConversationEmptyStateComponent_Template_mj_message_input_DraftStateChanged_7_listener($event) { return ctx.DraftStateChanged.emit($event); })("ComposerBlurred", function ConversationEmptyStateComponent_Template_mj_message_input_ComposerBlurred_7_listener() { return ctx.ComposerBlurred.emit(); })("emptyStateSubmit", function ConversationEmptyStateComponent_Template_mj_message_input_emptyStateSubmit_7_listener($event) { return ctx.onEmptyStateSubmit($event); });
488
+ i0.ɵɵelementStart(6, "div", 6);
489
+ i0.ɵɵconditionalCreate(7, ConversationEmptyStateComponent_Conditional_7_Template, 2, 4, "div", 7);
490
+ i0.ɵɵelementStart(8, "mj-message-input", 8);
491
+ i0.ɵɵlistener("initialDraftApplied", function ConversationEmptyStateComponent_Template_mj_message_input_initialDraftApplied_8_listener() { return ctx.initialDraftApplied.emit(); })("DraftStateChanged", function ConversationEmptyStateComponent_Template_mj_message_input_DraftStateChanged_8_listener($event) { return ctx.DraftStateChanged.emit($event); })("ComposerBlurred", function ConversationEmptyStateComponent_Template_mj_message_input_ComposerBlurred_8_listener() { return ctx.ComposerBlurred.emit(); })("emptyStateSubmit", function ConversationEmptyStateComponent_Template_mj_message_input_emptyStateSubmit_8_listener($event) { return ctx.onEmptyStateSubmit($event); });
299
492
  i0.ɵɵelementEnd()();
300
- i0.ɵɵconditionalCreate(8, ConversationEmptyStateComponent_Conditional_8_Template, 12, 1, "div", 8);
493
+ i0.ɵɵconditionalCreate(9, ConversationEmptyStateComponent_Conditional_9_Template, 12, 1, "div", 9);
301
494
  i0.ɵɵelementEnd()();
302
495
  } if (rf & 2) {
303
496
  i0.ɵɵclassProp("overlay-mode", ctx.overlayMode);
@@ -312,57 +505,101 @@ export class ConversationEmptyStateComponent {
312
505
  i0.ɵɵadvance();
313
506
  i0.ɵɵconditional(ctx.overlayMode ? 5 : -1);
314
507
  i0.ɵɵadvance(2);
315
- i0.ɵɵproperty("initialDraft", ctx.initialDraft)("placeholder", ctx.overlayMode ? "Type a message..." : "Type your message to start a new conversation...")("disabled", ctx.disabled)("currentUser", ctx.currentUser)("emptyStateMode", true)("enableMentions", ctx.enableMentions)("enableAgentMentions", ctx.enableAgentMentions)("enableEntityMentions", ctx.enableEntityMentions)("enableSkillCommands", ctx.enableSkillCommands)("enableAttachments", ctx.enableAttachments)("maxAttachments", ctx.maxAttachments)("maxAttachmentSizeBytes", ctx.maxAttachmentSizeBytes)("acceptedFileTypes", ctx.acceptedFileTypes);
508
+ i0.ɵɵconditional(ctx.ComposerExtraTemplate ? 7 : -1);
509
+ i0.ɵɵadvance();
510
+ i0.ɵɵproperty("initialDraft", ctx.initialDraft)("placeholder", ctx.overlayMode ? "Type a message..." : "Type your message to start a new conversation...")("disabled", ctx.disabled)("currentUser", ctx.currentUser)("emptyStateMode", true)("enableMentions", ctx.enableMentions)("enableAgentMentions", ctx.enableAgentMentions)("enableEntityMentions", ctx.enableEntityMentions)("enableSkillCommands", ctx.enableSkillCommands)("AllowedAgentIDs", ctx.AllowedAgentIDs)("MentionPeople", ctx.MentionPeople)("enableAttachments", ctx.enableAttachments)("maxAttachments", ctx.maxAttachments)("maxAttachmentSizeBytes", ctx.maxAttachmentSizeBytes)("acceptedFileTypes", ctx.acceptedFileTypes);
316
511
  i0.ɵɵadvance();
317
- i0.ɵɵconditional(!ctx.overlayMode ? 8 : -1);
318
- } }, dependencies: [i1.LoadingComponent, i2.MessageInputComponent], styles: ["[_nghost-%COMP%] {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n@media (max-width: 768px) {\n .conversation-empty-state[_ngcontent-%COMP%] {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-in;\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.loading-message[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container[_ngcontent-%COMP%] {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.25rem;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading[_ngcontent-%COMP%] {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.greeting-section[_ngcontent-%COMP%] {\n text-align: center;\n padding: 0.5rem 0;\n}\n\n.greeting-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-bottom: 0.5rem;\n opacity: 0.8;\n}\n\n.greeting-title[_ngcontent-%COMP%] {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n\n.suggested-prompts[_ngcontent-%COMP%] {\n margin: 0;\n}\n\n.prompt-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card[_ngcontent-%COMP%]:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n\n.message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0;\n width: 100%;\n}\n\n\n.tips-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem 0 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n\n.conversation-empty-state.overlay-mode[_ngcontent-%COMP%] {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting[_ngcontent-%COMP%] {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n}\n\n\n\n@media (max-height: 820px) {\n .conversation-empty-state[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n margin-bottom: 0.25rem;\n }\n .greeting-icon[_ngcontent-%COMP%] .fa-3x[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n }\n .tips-section[_ngcontent-%COMP%] {\n padding: 0.5rem 0 0;\n }\n}\n\n\n@media (max-width: 768px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n }\n}\n\n@media (max-width: 480px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.5rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.4rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n }\n}"] });
512
+ i0.ɵɵconditional(!ctx.overlayMode ? 9 : -1);
513
+ } }, dependencies: [i1.NgTemplateOutlet, i2.LoadingComponent, i3.MessageInputComponent], styles: ["[_nghost-%COMP%] {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n@media (max-width: 768px) {\n .conversation-empty-state[_ngcontent-%COMP%] {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-in;\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.loading-message[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container[_ngcontent-%COMP%] {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.25rem;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading[_ngcontent-%COMP%] {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.greeting-section[_ngcontent-%COMP%] {\n text-align: center;\n padding: 0.5rem 0;\n}\n\n.greeting-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-bottom: 0.5rem;\n opacity: 0.8;\n}\n\n.greeting-title[_ngcontent-%COMP%] {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n\n.suggested-prompts[_ngcontent-%COMP%] {\n margin: 0;\n}\n\n.prompt-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card[_ngcontent-%COMP%]:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n\n.message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0;\n width: 100%;\n}\n\n\n.composer-extra[_ngcontent-%COMP%] {\n margin-bottom: 0.5rem;\n}\n\n\n.tips-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem 0 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n\n.conversation-empty-state.overlay-mode[_ngcontent-%COMP%] {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting[_ngcontent-%COMP%] {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode[_ngcontent-%COMP%] .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n}\n\n\n\n@media (max-height: 820px) {\n .conversation-empty-state[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n margin-bottom: 0.25rem;\n }\n .greeting-icon[_ngcontent-%COMP%] .fa-3x[_ngcontent-%COMP%] {\n font-size: 2em;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n }\n .tips-section[_ngcontent-%COMP%] {\n padding: 0.5rem 0 0;\n }\n}\n\n\n@media (max-width: 768px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.75rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.5rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n }\n}\n\n@media (max-width: 480px) {\n .empty-state-container[_ngcontent-%COMP%] {\n gap: 0.5rem;\n }\n .greeting-section[_ngcontent-%COMP%] {\n padding: 0.25rem 0;\n }\n .greeting-icon[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title[_ngcontent-%COMP%] {\n font-size: 1rem;\n }\n .greeting-subtitle[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card[_ngcontent-%COMP%] {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n }\n .prompt-text[_ngcontent-%COMP%] {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper[_ngcontent-%COMP%] {\n margin: 0.4rem 0;\n }\n .tips-section[_ngcontent-%COMP%] {\n display: none;\n }\n .loading-content[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .loading-message[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n }\n}"] });
319
514
  }
320
515
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConversationEmptyStateComponent, [{
321
516
  type: Component,
322
- args: [{ standalone: false, selector: 'mj-conversation-empty-state', template: "<div class=\"conversation-empty-state\" [class.overlay-mode]=\"overlayMode\">\n <!-- Loading Overlay -->\n @if (disabled) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Creating your conversation...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <div class=\"empty-state-container\" [class.loading]=\"disabled\">\n <!-- Greeting Header (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"greeting-section\">\n <div class=\"greeting-icon\">\n <i class=\"fa-solid fa-comments fa-3x\"></i>\n </div>\n <h1 class=\"greeting-title\">Welcome to Conversations</h1>\n <p class=\"greeting-subtitle\">\n Start a new conversation by typing a message below, or choose a suggested prompt to get started.\n </p>\n </div>\n }\n\n <!-- Suggested Prompts (hidden in overlay mode) -->\n @if (showSuggestedPrompts && suggestedPrompts.length > 0) {\n <div class=\"suggested-prompts\">\n <div class=\"prompt-grid\">\n @for (prompt of suggestedPrompts; track prompt) {\n <div\n class=\"prompt-card\"\n (click)=\"onSuggestedPromptClicked(prompt.prompt)\"\n [class.disabled]=\"disabled\"\n >\n <div class=\"prompt-icon\">\n <i class=\"{{prompt.icon}}\"></i>\n </div>\n <div class=\"prompt-content\">\n <div class=\"prompt-title\">{{prompt.title}}</div>\n <div class=\"prompt-text\">{{prompt.prompt}}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Compact greeting for overlay mode -->\n @if (overlayMode) {\n <div class=\"overlay-greeting\">\n <p class=\"overlay-greeting-text\">{{ greeting }}</p>\n </div>\n }\n\n <!-- Message Input (using full mj-message-input in empty state mode) -->\n <div class=\"message-input-wrapper\">\n <mj-message-input\n [initialDraft]=\"initialDraft\"\n (initialDraftApplied)=\"initialDraftApplied.emit()\"\n (DraftStateChanged)=\"DraftStateChanged.emit($event)\"\n (ComposerBlurred)=\"ComposerBlurred.emit()\"\n [placeholder]=\"overlayMode ? 'Type a message...' : 'Type your message to start a new conversation...'\"\n [disabled]=\"disabled\"\n [currentUser]=\"currentUser\"\n [emptyStateMode]=\"true\"\n [enableMentions]=\"enableMentions\"\n [enableAgentMentions]=\"enableAgentMentions\"\n [enableEntityMentions]=\"enableEntityMentions\"\n [enableSkillCommands]=\"enableSkillCommands\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n (emptyStateSubmit)=\"onEmptyStateSubmit($event)\">\n </mj-message-input>\n </div>\n\n <!-- Footer Tips (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"tips-section\">\n @if (enableMentions) {\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-at\"></i>\n <span>Use <strong>&#64;AgentName</strong> to directly invoke a specific agent</span>\n </div>\n }\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-keyboard\"></i>\n <span>Press <strong>Enter</strong> to send, <strong>Shift+Enter</strong> for new line</span>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n@media (max-width: 768px) {\n .conversation-empty-state {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: fadeIn 0.2s ease-in;\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content i {\n color: var(--mj-brand-primary);\n}\n\n.loading-message {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.25rem;\n animation: fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n/* Greeting Section */\n.greeting-section {\n text-align: center;\n padding: 0.5rem 0;\n}\n\n.greeting-icon {\n color: var(--mj-brand-primary);\n margin-bottom: 0.5rem;\n opacity: 0.8;\n}\n\n.greeting-title {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n/* Suggested Prompts */\n.suggested-prompts {\n margin: 0;\n}\n\n.prompt-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n/* Message Input Wrapper */\n.message-input-wrapper {\n margin: 0;\n width: 100%;\n}\n\n/* Tips Section */\n.tips-section {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem 0 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item i {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item strong {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n/* Overlay Mode \u2014 compact layout for floating chat widget */\n.conversation-empty-state.overlay-mode {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode .empty-state-container {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode .message-input-wrapper {\n margin: 0.5rem 0;\n}\n\n/* Short-viewport fallback \u2014 keep the welcome screen scroll-free when the\n available height is reduced (browser chrome, app header, smaller laptops). */\n@media (max-height: 820px) {\n .conversation-empty-state {\n padding: 1rem;\n }\n .empty-state-container {\n gap: 0.75rem;\n }\n .greeting-section {\n padding: 0;\n }\n .greeting-icon {\n margin-bottom: 0.25rem;\n }\n .greeting-icon .fa-3x {\n font-size: 2em;\n }\n .greeting-title {\n font-size: 1.5rem;\n }\n .tips-section {\n padding: 0.5rem 0 0;\n }\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .empty-state-container {\n gap: 0.75rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1.1rem;\n }\n .greeting-subtitle {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title {\n font-size: 0.75rem;\n }\n .prompt-text {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.5rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.85rem;\n }\n}\n/* Small Phone adjustments */\n@media (max-width: 480px) {\n .empty-state-container {\n gap: 0.5rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1rem;\n }\n .greeting-subtitle {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title {\n font-size: 0.7rem;\n }\n .prompt-text {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.4rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.8rem;\n }\n}\n"] }]
323
- }], () => [], { currentUser: [{
517
+ args: [{ standalone: false, selector: 'mj-conversation-empty-state', template: "<div class=\"conversation-empty-state\" [class.overlay-mode]=\"overlayMode\">\n <!-- Loading Overlay -->\n @if (disabled) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Creating your conversation...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <div class=\"empty-state-container\" [class.loading]=\"disabled\">\n <!-- Greeting Header (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"greeting-section\">\n <div class=\"greeting-icon\">\n <i class=\"fa-solid fa-comments fa-3x\"></i>\n </div>\n <h1 class=\"greeting-title\">Welcome to Conversations</h1>\n <p class=\"greeting-subtitle\">\n Start a new conversation by typing a message below, or choose a suggested prompt to get started.\n </p>\n </div>\n }\n\n <!-- Suggested Prompts (hidden in overlay mode) -->\n @if (showSuggestedPrompts && suggestedPrompts.length > 0) {\n <div class=\"suggested-prompts\">\n <div class=\"prompt-grid\">\n @for (prompt of suggestedPrompts; track prompt) {\n <div\n class=\"prompt-card\"\n (click)=\"onSuggestedPromptClicked(prompt.prompt)\"\n [class.disabled]=\"disabled\"\n >\n <div class=\"prompt-icon\">\n <i class=\"{{prompt.icon}}\"></i>\n </div>\n <div class=\"prompt-content\">\n <div class=\"prompt-title\">{{prompt.title}}</div>\n <div class=\"prompt-text\">{{prompt.prompt}}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Compact greeting for overlay mode -->\n @if (overlayMode) {\n <div class=\"overlay-greeting\">\n <p class=\"overlay-greeting-text\">{{ greeting }}</p>\n </div>\n }\n\n <!-- Message Input (using full mj-message-input in empty state mode) -->\n <div class=\"message-input-wrapper\">\n <!-- composerExtra slot \u2014 host UI directly above the composer (IMJChatComposerExtraContext). -->\n @if (ComposerExtraTemplate) {\n <div class=\"composer-extra\">\n <ng-container *ngTemplateOutlet=\"ComposerExtraTemplate; context: {\n $implicit: null,\n ConversationId: null,\n IsProcessing: disabled\n }\"></ng-container>\n </div>\n }\n <mj-message-input\n [initialDraft]=\"initialDraft\"\n (initialDraftApplied)=\"initialDraftApplied.emit()\"\n (DraftStateChanged)=\"DraftStateChanged.emit($event)\"\n (ComposerBlurred)=\"ComposerBlurred.emit()\"\n [placeholder]=\"overlayMode ? 'Type a message...' : 'Type your message to start a new conversation...'\"\n [disabled]=\"disabled\"\n [currentUser]=\"currentUser\"\n [emptyStateMode]=\"true\"\n [enableMentions]=\"enableMentions\"\n [enableAgentMentions]=\"enableAgentMentions\"\n [enableEntityMentions]=\"enableEntityMentions\"\n [enableSkillCommands]=\"enableSkillCommands\"\n [AllowedAgentIDs]=\"AllowedAgentIDs\"\n [MentionPeople]=\"MentionPeople\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n (emptyStateSubmit)=\"onEmptyStateSubmit($event)\">\n </mj-message-input>\n </div>\n\n <!-- Footer Tips (hidden in overlay mode) -->\n @if (!overlayMode) {\n <div class=\"tips-section\">\n @if (enableMentions) {\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-at\"></i>\n <span>Use <strong>&#64;AgentName</strong> to directly invoke a specific agent</span>\n </div>\n }\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-keyboard\"></i>\n <span>Press <strong>Enter</strong> to send, <strong>Shift+Enter</strong> for new line</span>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host {\n display: flex;\n flex: 1;\n height: 100%;\n min-height: 0;\n}\n\n.conversation-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n width: 100%;\n padding: 2rem;\n overflow-y: auto;\n position: relative;\n}\n\n@media (max-width: 768px) {\n .conversation-empty-state {\n align-items: flex-start;\n padding: 1rem 0.75rem;\n }\n}\n\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n animation: fadeIn 0.2s ease-in;\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n box-shadow: 0 4px 20px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.loading-content i {\n color: var(--mj-brand-primary);\n}\n\n.loading-message {\n font-size: 1rem;\n color: var(--mj-text-primary);\n font-weight: 500;\n margin: 0;\n}\n\n.empty-state-container {\n max-width: 800px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.25rem;\n animation: fadeIn 0.3s ease-in;\n transition: opacity 0.2s ease;\n}\n.empty-state-container.loading {\n opacity: 0.4;\n pointer-events: none;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n/* Greeting Section */\n.greeting-section {\n text-align: center;\n padding: 0.5rem 0;\n}\n\n.greeting-icon {\n color: var(--mj-brand-primary);\n margin-bottom: 0.5rem;\n opacity: 0.8;\n}\n\n.greeting-title {\n font-size: 2rem;\n font-weight: 600;\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n}\n\n.greeting-subtitle {\n font-size: 1rem;\n color: var(--mj-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n\n/* Suggested Prompts */\n.suggested-prompts {\n margin: 0;\n}\n\n.prompt-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1rem;\n}\n\n.prompt-card {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n padding: 1.25rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-card:hover:not(.disabled) {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.prompt-card.disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.prompt-icon {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 8px;\n font-size: 1.2rem;\n}\n\n.prompt-content {\n flex: 1;\n min-width: 0;\n}\n\n.prompt-title {\n font-weight: 600;\n font-size: 0.95rem;\n color: var(--mj-text-primary);\n margin-bottom: 0.25rem;\n}\n\n.prompt-text {\n font-size: 0.85rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n/* Message Input Wrapper */\n.message-input-wrapper {\n margin: 0;\n width: 100%;\n}\n\n/* composerExtra slot: host UI directly above the composer. Spacing only; the host styles its content. */\n.composer-extra {\n margin-bottom: 0.5rem;\n}\n\n/* Tips Section */\n.tips-section {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem 0 0;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.tip-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n}\n.tip-item i {\n flex-shrink: 0;\n width: 24px;\n text-align: center;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n}\n.tip-item strong {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n/* Overlay Mode \u2014 compact layout for floating chat widget */\n.conversation-empty-state.overlay-mode {\n padding: 1rem;\n align-items: center;\n justify-content: center;\n}\n\n.overlay-mode .empty-state-container {\n gap: 0.75rem;\n max-width: 100%;\n justify-content: center;\n}\n\n.overlay-greeting {\n text-align: center;\n padding: 1rem 0 0;\n}\n\n.overlay-greeting-text {\n font-size: 1.1rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.overlay-mode .message-input-wrapper {\n margin: 0.5rem 0;\n}\n\n/* Short-viewport fallback \u2014 keep the welcome screen scroll-free when the\n available height is reduced (browser chrome, app header, smaller laptops). */\n@media (max-height: 820px) {\n .conversation-empty-state {\n padding: 1rem;\n }\n .empty-state-container {\n gap: 0.75rem;\n }\n .greeting-section {\n padding: 0;\n }\n .greeting-icon {\n margin-bottom: 0.25rem;\n }\n .greeting-icon .fa-3x {\n font-size: 2em;\n }\n .greeting-title {\n font-size: 1.5rem;\n }\n .tips-section {\n padding: 0.5rem 0 0;\n }\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .empty-state-container {\n gap: 0.75rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.5rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1.1rem;\n }\n .greeting-subtitle {\n font-size: 0.75rem;\n padding: 0 0.5rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.5rem;\n }\n .prompt-card {\n padding: 0.5rem;\n flex-direction: column;\n gap: 0.5rem;\n }\n .prompt-icon {\n width: 28px;\n height: 28px;\n font-size: 0.85rem;\n }\n .prompt-title {\n font-size: 0.75rem;\n }\n .prompt-text {\n font-size: 0.7rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.5rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.85rem;\n }\n}\n/* Small Phone adjustments */\n@media (max-width: 480px) {\n .empty-state-container {\n gap: 0.5rem;\n }\n .greeting-section {\n padding: 0.25rem 0;\n }\n .greeting-icon {\n font-size: 1.25rem;\n margin-bottom: 0.25rem;\n }\n .greeting-title {\n font-size: 1rem;\n }\n .greeting-subtitle {\n font-size: 0.7rem;\n padding: 0 0.25rem;\n }\n .prompt-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.4rem;\n }\n .prompt-card {\n padding: 0.4rem;\n flex-direction: column;\n gap: 0.4rem;\n }\n .prompt-icon {\n width: 24px;\n height: 24px;\n font-size: 0.75rem;\n border-radius: 4px;\n }\n .prompt-title {\n font-size: 0.7rem;\n }\n .prompt-text {\n font-size: 0.65rem;\n -webkit-line-clamp: 1;\n }\n .message-input-wrapper {\n margin: 0.4rem 0;\n }\n .tips-section {\n display: none;\n }\n .loading-content {\n padding: 1rem;\n }\n .loading-message {\n font-size: 0.8rem;\n }\n}\n"] }]
518
+ }], () => [], { CurrentUser: [{
519
+ type: Input
520
+ }], currentUser: [{
521
+ type: Input
522
+ }], Disabled: [{
324
523
  type: Input
325
524
  }], disabled: [{
326
525
  type: Input
526
+ }], ShowSidebarToggle: [{
527
+ type: Input
327
528
  }], showSidebarToggle: [{
328
529
  type: Input
530
+ }], EnableAttachments: [{
531
+ type: Input
329
532
  }], enableAttachments: [{
330
533
  type: Input
534
+ }], EnableMentions: [{
535
+ type: Input
331
536
  }], enableMentions: [{
332
537
  type: Input
538
+ }], EnableAgentMentions: [{
539
+ type: Input
333
540
  }], enableAgentMentions: [{
334
541
  type: Input
542
+ }], EnableEntityMentions: [{
543
+ type: Input
335
544
  }], enableEntityMentions: [{
336
545
  type: Input
546
+ }], EnableSkillCommands: [{
547
+ type: Input
337
548
  }], enableSkillCommands: [{
338
549
  type: Input
550
+ }], ShowSuggestedPrompts: [{
551
+ type: Input
339
552
  }], showSuggestedPrompts: [{
340
553
  type: Input
554
+ }], MaxAttachments: [{
555
+ type: Input
341
556
  }], maxAttachments: [{
342
557
  type: Input
558
+ }], MaxAttachmentSizeBytes: [{
559
+ type: Input
343
560
  }], maxAttachmentSizeBytes: [{
344
561
  type: Input
562
+ }], AcceptedFileTypes: [{
563
+ type: Input
345
564
  }], acceptedFileTypes: [{
346
565
  type: Input
566
+ }], Greeting: [{
567
+ type: Input
347
568
  }], greeting: [{
348
569
  type: Input
570
+ }], OverlayMode: [{
571
+ type: Input
349
572
  }], overlayMode: [{
350
573
  type: Input
574
+ }], AllowedAgentIDs: [{
575
+ type: Input
576
+ }], MentionPeople: [{
577
+ type: Input
578
+ }], ComposerExtraTemplate: [{
579
+ type: Input
351
580
  }], messageInput: [{
352
581
  type: ViewChild,
353
582
  args: [MessageInputComponent]
583
+ }], InitialDraft: [{
584
+ type: Input
354
585
  }], initialDraft: [{
355
586
  type: Input
587
+ }], InitialDraftApplied: [{
588
+ type: Output
356
589
  }], initialDraftApplied: [{
357
590
  type: Output
358
591
  }], DraftStateChanged: [{
359
592
  type: Output
360
593
  }], ComposerBlurred: [{
361
594
  type: Output
595
+ }], MessageSent: [{
596
+ type: Output
362
597
  }], messageSent: [{
363
598
  type: Output
599
+ }], SidebarToggleClicked: [{
600
+ type: Output
364
601
  }], sidebarToggleClicked: [{
365
602
  type: Output
366
603
  }] }); })();
367
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationEmptyStateComponent, { className: "ConversationEmptyStateComponent", filePath: "src/lib/components/conversation/conversation-empty-state.component.ts", lineNumber: 12 }); })();
604
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationEmptyStateComponent, { className: "ConversationEmptyStateComponent", filePath: "src/lib/components/conversation/conversation-empty-state.component.ts", lineNumber: 13 }); })();
368
605
  //# sourceMappingURL=conversation-empty-state.component.js.map