@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 +1 @@
1
- {"version":3,"file":"rating-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/rating-dialog.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'mj-rating-dialog',\n template: `\n <div class=\"rating-dialog\">\n @if (message) {\n <p class=\"dialog-message\">{{ message }}</p>\n }\n\n <div\n class=\"rating-scale\"\n role=\"radiogroup\"\n aria-label=\"Rating from 1 to 10\"\n (mouseleave)=\"onScaleMouseLeave()\">\n @for (n of scale; track n) {\n <button\n type=\"button\"\n class=\"rating-pip\"\n [class.filled]=\"isFilled(n)\"\n [class.selected]=\"selectedRating === n\"\n [attr.data-band]=\"bandFor(n)\"\n [attr.aria-checked]=\"selectedRating === n\"\n role=\"radio\"\n (click)=\"selectRating(n)\"\n (mouseenter)=\"hoveredRating = n\"\n (focus)=\"hoveredRating = n\"\n (blur)=\"onPipBlur()\">\n {{ n }}\n </button>\n }\n </div>\n\n <div class=\"rating-meta\">\n <span class=\"legend-edge\">1 — Worst</span>\n <span class=\"selected-caption\" [attr.data-band]=\"effectiveBand\">\n @if (effectiveRating !== null) {\n <strong>{{ effectiveRating }}/10</strong>\n <span class=\"dot\">·</span>\n <span>{{ getDescriptor(effectiveRating) }}</span>\n } @else {\n <span class=\"muted\">Pick a number</span>\n }\n </span>\n <span class=\"legend-edge legend-right\">10 — Best</span>\n </div>\n\n <div class=\"field\">\n <div class=\"field-header\">\n <label class=\"field-label\" for=\"rating-comments\">Tell us more</label>\n <span class=\"field-hint\">Optional</span>\n </div>\n <textarea\n id=\"rating-comments\"\n [(ngModel)]=\"comments\"\n class=\"comment-textarea\"\n placeholder=\"What was good or bad about this response?\"\n rows=\"4\"\n maxlength=\"2000\">\n </textarea>\n </div>\n\n <div class=\"consent-note\" [class.requires-consent]=\"requireConsent\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <div class=\"consent-body\">\n <p class=\"consent-text\">\n By submitting, you authorize the <strong>Integrations</strong> and\n <strong>Developer</strong> teams to view this conversation and the\n rated component so they can improve agent quality.\n </p>\n @if (requireConsent) {\n <label class=\"consent-checkbox\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"consentChecked\"\n aria-label=\"I understand and accept the access authorization above\" />\n <span>I understand and accept this.</span>\n </label>\n @if (!consentChecked) {\n <p class=\"consent-warning\">Required to submit your feedback.</p>\n }\n }\n </div>\n </div>\n </div>\n `,\n styles: [`\n :host {\n display: block;\n --rd-text-primary: var(--mj-text-primary, #18181b);\n --rd-text-secondary: var(--mj-text-secondary, #52525b);\n --rd-text-muted: var(--mj-text-muted, #71717a);\n --rd-text-disabled: var(--mj-text-disabled, #a1a1aa);\n --rd-surface: var(--mj-bg-surface, #ffffff);\n --rd-border: var(--mj-border-default, #e4e4e7);\n --rd-border-strong: var(--mj-border-strong, #d4d4d8);\n --rd-brand: var(--mj-brand-primary, #6366f1);\n --rd-on-brand: var(--mj-text-on-brand, #ffffff);\n\n --rd-low: var(--mj-status-error, #ef4444);\n --rd-mid: var(--mj-status-warning, #f59e0b);\n --rd-high: var(--mj-status-success, #10b981);\n }\n\n .rating-dialog {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 18px;\n padding: 4px 20px 8px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;\n }\n .rating-dialog * { box-sizing: border-box; }\n\n .dialog-message {\n margin: 0;\n color: var(--rd-text-secondary);\n font-size: 14px;\n line-height: 1.5;\n }\n\n /* ─── Pill row ─── */\n .rating-scale {\n display: grid;\n grid-template-columns: repeat(10, minmax(0, 1fr));\n gap: 6px;\n width: 100%;\n }\n .rating-pip {\n appearance: none;\n -webkit-appearance: none;\n width: 100%;\n min-width: 0;\n height: 40px;\n padding: 0;\n background: var(--rd-surface);\n border: 1px solid var(--rd-border);\n border-radius: 8px;\n font-family: inherit;\n font-size: 13px;\n font-weight: 600;\n color: var(--rd-text-secondary);\n cursor: pointer;\n transition: transform 100ms ease, background 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;\n font-variant-numeric: tabular-nums;\n }\n .rating-pip:hover {\n border-color: var(--rd-border-strong);\n color: var(--rd-text-primary);\n }\n .rating-pip:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--rd-brand) 25%, transparent);\n }\n .rating-pip.filled[data-band=\"low\"] { background: var(--rd-low); border-color: var(--rd-low); color: var(--rd-on-brand); }\n .rating-pip.filled[data-band=\"mid\"] { background: var(--rd-mid); border-color: var(--rd-mid); color: var(--rd-on-brand); }\n .rating-pip.filled[data-band=\"high\"] { background: var(--rd-high); border-color: var(--rd-high); color: var(--rd-on-brand); }\n .rating-pip.selected { transform: translateY(-1px); }\n\n /* ─── Meta row: edge legend + center caption ─── */\n .rating-meta {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n align-items: center;\n gap: 8px;\n padding: 0 2px;\n margin-top: -2px;\n font-size: 11px;\n color: var(--rd-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n }\n .legend-edge { font-weight: 500; }\n .legend-right { text-align: right; }\n\n .selected-caption {\n display: inline-flex;\n align-items: baseline;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n text-transform: none;\n letter-spacing: 0;\n color: var(--rd-text-secondary);\n font-variant-numeric: tabular-nums;\n }\n .selected-caption strong { font-weight: 700; font-size: 13px; }\n .selected-caption .dot { color: var(--rd-text-disabled); }\n .selected-caption .muted { color: var(--rd-text-disabled); font-weight: 500; }\n .selected-caption[data-band=\"low\"] { color: var(--rd-low); }\n .selected-caption[data-band=\"mid\"] { color: var(--rd-mid); }\n .selected-caption[data-band=\"high\"] { color: var(--rd-high); }\n\n /* ─── Comment field ─── */\n .field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n .field-header {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n }\n .field-label {\n font-weight: 600;\n font-size: 13px;\n color: var(--rd-text-primary);\n }\n .field-hint {\n font-size: 11px;\n color: var(--rd-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n }\n .comment-textarea {\n width: 100%;\n min-height: 88px;\n padding: 10px 12px;\n border: 1px solid var(--rd-border);\n border-radius: 8px;\n background: var(--rd-surface);\n color: var(--rd-text-primary);\n font-family: inherit;\n font-size: 13.5px;\n line-height: 1.5;\n resize: vertical;\n transition: border-color 140ms ease, box-shadow 140ms ease;\n }\n .comment-textarea::placeholder { color: var(--rd-text-disabled); }\n .comment-textarea:hover { border-color: var(--rd-border-strong); }\n .comment-textarea:focus {\n outline: none;\n border-color: var(--rd-brand);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--rd-brand) 18%, transparent);\n }\n\n /* ─── Consent note ─── */\n .consent-note {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n padding: 12px 14px;\n background: color-mix(in srgb, var(--rd-brand) 6%, var(--rd-surface));\n border: 1px solid color-mix(in srgb, var(--rd-brand) 22%, var(--rd-border));\n border-radius: 8px;\n }\n .consent-note > i {\n color: var(--rd-brand);\n font-size: 14px;\n margin-top: 2px;\n flex-shrink: 0;\n }\n .consent-body { flex: 1; min-width: 0; }\n .consent-text {\n margin: 0;\n font-size: 12.5px;\n line-height: 1.5;\n color: var(--rd-text-secondary);\n }\n .consent-text strong { color: var(--rd-text-primary); font-weight: 600; }\n .consent-checkbox {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 10px;\n font-size: 12.5px;\n color: var(--rd-text-primary);\n font-weight: 500;\n cursor: pointer;\n user-select: none;\n }\n .consent-checkbox input {\n width: 15px;\n height: 15px;\n cursor: pointer;\n accent-color: var(--rd-brand);\n }\n .consent-warning {\n margin: 6px 0 0 23px;\n font-size: 11px;\n color: var(--rd-low);\n font-weight: 500;\n }\n `]\n})\nexport class RatingDialogComponent {\n @Input() message: string = '';\n @Input() initialRating: number | null = null;\n @Input() initialComments: string = '';\n\n /** When true, the user must check the consent box before submitting. */\n @Input() requireConsent: boolean = false;\n\n readonly scale: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n selectedRating: number | null = null;\n hoveredRating: number | null = null;\n comments: string = '';\n consentChecked: boolean = false;\n\n ngOnInit(): void {\n this.selectedRating = this.initialRating;\n this.comments = this.initialComments ?? '';\n }\n\n get effectiveRating(): number | null {\n return this.hoveredRating ?? this.selectedRating;\n }\n\n get effectiveBand(): string | null {\n const r = this.effectiveRating;\n return r === null ? null : this.bandFor(r);\n }\n\n bandFor(n: number): 'low' | 'mid' | 'high' {\n if (n <= 3) return 'low';\n if (n <= 7) return 'mid';\n return 'high';\n }\n\n isFilled(n: number): boolean {\n const r = this.effectiveRating;\n return r !== null && r >= n;\n }\n\n selectRating(n: number): void {\n this.selectedRating = n;\n }\n\n onScaleMouseLeave(): void {\n this.hoveredRating = null;\n }\n\n onPipBlur(): void {\n this.hoveredRating = null;\n }\n\n getDescriptor(n: number): string {\n if (n <= 2) return 'Very Poor';\n if (n <= 4) return 'Needs Improvement';\n if (n <= 6) return 'Okay';\n if (n <= 8) return 'Good';\n return 'Excellent';\n }\n\n getRating(): number | null {\n return this.selectedRating;\n }\n\n getComments(): string {\n return (this.comments ?? '').trim();\n }\n\n /** True if the consent requirement is met (not required, or required and checked). */\n isConsentValid(): boolean {\n return !this.requireConsent || this.consentChecked;\n }\n\n /** True only when the user *just* acknowledged consent in this dialog session. */\n wasConsentNewlyAcknowledged(): boolean {\n return this.requireConsent && this.consentChecked;\n }\n}\n"]}
1
+ {"version":3,"file":"rating-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/rating-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;IAQzC,4BAA0B;IAAA,YAAa;IAAA,iBAAI;;;IAAjB,cAAa;IAAb,oCAAa;;;;IASrC,kCAWuB;IAArB,AADA,AADA,AADA,wMAAS,yBAAe,KAAC,qOACO,2NACL,kKACnB,kBAAW,KAAC;IACpB,YACF;IAAA,iBAAS;;;;IATP,AADA,+CAA4B,4CACW;;IAQvC,cACF;IADE,qCACF;;;IAQE,8BAAQ;IAAA,YAAwB;IAAA,iBAAS;IACzC,gCAAkB;IAAA,sBAAC;IAAA,iBAAO;IAC1B,4BAAM;IAAA,YAAoC;IAAA,iBAAO;;;IAFzC,cAAwB;IAAxB,wDAAwB;IAE1B,eAAoC;IAApC,kEAAoC;;;IAE1C,+BAAoB;IAAA,6BAAa;IAAA,iBAAO;;;IAsCtC,6BAA2B;IAAA,iDAAiC;IAAA,iBAAI;;;;IAPhE,AADF,iCAAgC,gBAI0C;IADtE,0TAA4B;IAF9B,iBAGwE;IACxE,4BAAM;IAAA,6CAA6B;IACrC,AADqC,iBAAO,EACpC;IACR,qGAAuB;;;IAJnB,cAA4B;IAA5B,qDAA4B;IAIhC,eAEC;IAFD,iDAEC;;AA+Mb,MAAM,OAAO,qBAAqB;IACvB,OAAO,GAAW,EAAE,CAAC;IAE9B,uCAAuC;IACvC,IAAa,OAAO,CAAC,KAAa;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,uCAAuC;IACvC,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACQ,aAAa,GAAkB,IAAI,CAAC;IAE7C,6CAA6C;IAC7C,IAAa,aAAa,CAAC,KAAoB;QAC7C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,6CAA6C;IAC7C,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACQ,eAAe,GAAW,EAAE,CAAC;IAEtC,+CAA+C;IAC/C,IAAa,eAAe,CAAC,KAAa;QACxC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,+CAA+C;IAC/C,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,wEAAwE;IAC/D,cAAc,GAAY,KAAK,CAAC;IAEzC,8CAA8C;IAC9C,IAAa,cAAc,CAAC,KAAc;QACxC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,8CAA8C;IAC9C,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEQ,KAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3D,qCAAqC;IACrC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,cAAc,GAAkB,IAAI,CAAC;IAErC,8CAA8C;IAC9C,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,8CAA8C;IAC9C,IAAI,cAAc,CAAC,KAAoB;QACrC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,aAAa,GAAkB,IAAI,CAAC;IAEpC,6CAA6C;IAC7C,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,6CAA6C;IAC7C,IAAI,aAAa,CAAC,KAAoB;QACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,QAAQ,GAAW,EAAE,CAAC;IAEtB,wCAAwC;IACxC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,wCAAwC;IACxC,IAAI,QAAQ,CAAC,KAAa;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,cAAc,GAAY,KAAK,CAAC;IAEhC,8CAA8C;IAC9C,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,8CAA8C;IAC9C,IAAI,cAAc,CAAC,KAAc;QAC/B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;IACnD,CAAC;IAED,+CAA+C;IAC/C,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/B,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,6CAA6C;IAC7C,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,CAAS;QACf,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uCAAuC;IACvC,OAAO,CAAC,CAAS;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,CAAS;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,wCAAwC;IACxC,QAAQ,CAAC,CAAS;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,CAAS;QACpB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,4CAA4C;IAC5C,YAAY,CAAC,CAAS;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,iDAAiD;IACjD,iBAAiB;QACf,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,yCAAyC;IACzC,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,CAAS;QACrB,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,mBAAmB,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,6CAA6C;IAC7C,aAAa,CAAC,CAAS;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,yCAAyC;IACzC,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW;QACT,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,2CAA2C;IAC3C,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,sFAAsF;IACtF,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;IACrD,CAAC;IAED,8CAA8C;IAC9C,cAAc;QACZ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,kFAAkF;IAClF,2BAA2B;QACzB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;IACpD,CAAC;IAED,2DAA2D;IAC3D,2BAA2B;QACzB,OAAO,IAAI,CAAC,2BAA2B,EAAE,CAAC;IAC5C,CAAC;+GApNU,qBAAqB;6DAArB,qBAAqB;YA1R9B,8BAA2B;YACzB,qFAAe;YAIf,8BAIqC;YAAnC,yGAAc,uBAAmB,IAAC;YAClC,6GAeC;YACH,iBAAM;YAGJ,AADF,8BAAyB,cACG;YAAA,8BAAS;YAAA,iBAAO;YAC1C,+BAAgE;YAK5D,AAJF,6EAAgC,oEAIvB;YAGX,iBAAO;YACP,gCAAuC;YAAA,+BAAS;YAClD,AADkD,iBAAO,EACnD;YAIF,AADF,AADF,+BAAmB,eACS,iBACyB;YAAA,6BAAY;YAAA,iBAAQ;YACrE,iCAAyB;YAAA,yBAAQ;YACnC,AADmC,iBAAO,EACpC;YACN,qCAMmB;YAJjB,mNAAsB;YAKxB,yBAAA;YACF,AADE,iBAAW,EACP;YAEN,gCAAoE;YAClE,yBAAyC;YAEvC,AADF,gCAA0B,aACA;YACtB,mDAAiC;YAAA,+BAAQ;YAAA,6BAAY;YAAA,iBAAS;YAAC,sBAC/D;YAAA,+BAAQ;YAAA,0BAAS;YAAA,iBAAS;YAAC,6GAE7B;YAAA,iBAAI;YACJ,+EAAsB;YAc5B,AADE,AADE,iBAAM,EACF,EACF;;YA9EJ,cAEC;YAFD,sCAEC;YAOC,eAeC;YAfD,wBAeC;YAK8B,eAAgC;;YAC7D,cAMC;YAND,uDAMC;YAYD,gBAAsB;YAAtB,4CAAsB;YAQA,eAAyC;YAAzC,sDAAyC;YAQ/D,gBAWC;YAXD,8CAWC;;;iFA8ME,qBAAqB;cA9RjC,SAAS;6BACI,KAAK,YACP,kBAAkB,YAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFT;;kBA2MA,KAAK;;kBAGL,KAAK;;kBAOL,KAAK;;kBAGL,KAAK;;kBAOL,KAAK;;kBAGL,KAAK;;kBASL,KAAK;;kBAGL,KAAK;;kFApCK,qBAAqB","sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'mj-rating-dialog',\n template: `\n <div class=\"rating-dialog\">\n @if (message) {\n <p class=\"dialog-message\">{{ message }}</p>\n }\n\n <div\n class=\"rating-scale\"\n role=\"radiogroup\"\n aria-label=\"Rating from 1 to 10\"\n (mouseleave)=\"onScaleMouseLeave()\">\n @for (n of scale; track n) {\n <button\n type=\"button\"\n class=\"rating-pip\"\n [class.filled]=\"isFilled(n)\"\n [class.selected]=\"selectedRating === n\"\n [attr.data-band]=\"bandFor(n)\"\n [attr.aria-checked]=\"selectedRating === n\"\n role=\"radio\"\n (click)=\"selectRating(n)\"\n (mouseenter)=\"hoveredRating = n\"\n (focus)=\"hoveredRating = n\"\n (blur)=\"onPipBlur()\">\n {{ n }}\n </button>\n }\n </div>\n\n <div class=\"rating-meta\">\n <span class=\"legend-edge\">1 — Worst</span>\n <span class=\"selected-caption\" [attr.data-band]=\"effectiveBand\">\n @if (effectiveRating !== null) {\n <strong>{{ effectiveRating }}/10</strong>\n <span class=\"dot\">·</span>\n <span>{{ getDescriptor(effectiveRating) }}</span>\n } @else {\n <span class=\"muted\">Pick a number</span>\n }\n </span>\n <span class=\"legend-edge legend-right\">10 — Best</span>\n </div>\n\n <div class=\"field\">\n <div class=\"field-header\">\n <label class=\"field-label\" for=\"rating-comments\">Tell us more</label>\n <span class=\"field-hint\">Optional</span>\n </div>\n <textarea\n id=\"rating-comments\"\n [(ngModel)]=\"comments\"\n class=\"comment-textarea\"\n placeholder=\"What was good or bad about this response?\"\n rows=\"4\"\n maxlength=\"2000\">\n </textarea>\n </div>\n\n <div class=\"consent-note\" [class.requires-consent]=\"requireConsent\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <div class=\"consent-body\">\n <p class=\"consent-text\">\n By submitting, you authorize the <strong>Integrations</strong> and\n <strong>Developer</strong> teams to view this conversation and the\n rated component so they can improve agent quality.\n </p>\n @if (requireConsent) {\n <label class=\"consent-checkbox\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"consentChecked\"\n aria-label=\"I understand and accept the access authorization above\" />\n <span>I understand and accept this.</span>\n </label>\n @if (!consentChecked) {\n <p class=\"consent-warning\">Required to submit your feedback.</p>\n }\n }\n </div>\n </div>\n </div>\n `,\n styles: [`\n :host {\n display: block;\n --rd-text-primary: var(--mj-text-primary, #18181b);\n --rd-text-secondary: var(--mj-text-secondary, #52525b);\n --rd-text-muted: var(--mj-text-muted, #71717a);\n --rd-text-disabled: var(--mj-text-disabled, #a1a1aa);\n --rd-surface: var(--mj-bg-surface, #ffffff);\n --rd-border: var(--mj-border-default, #e4e4e7);\n --rd-border-strong: var(--mj-border-strong, #d4d4d8);\n --rd-brand: var(--mj-brand-primary, #6366f1);\n --rd-on-brand: var(--mj-text-on-brand, #ffffff);\n\n --rd-low: var(--mj-status-error, #ef4444);\n --rd-mid: var(--mj-status-warning, #f59e0b);\n --rd-high: var(--mj-status-success, #10b981);\n }\n\n .rating-dialog {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 18px;\n padding: 4px 20px 8px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;\n }\n .rating-dialog * { box-sizing: border-box; }\n\n .dialog-message {\n margin: 0;\n color: var(--rd-text-secondary);\n font-size: 14px;\n line-height: 1.5;\n }\n\n /* ─── Pill row ─── */\n .rating-scale {\n display: grid;\n grid-template-columns: repeat(10, minmax(0, 1fr));\n gap: 6px;\n width: 100%;\n }\n .rating-pip {\n appearance: none;\n -webkit-appearance: none;\n width: 100%;\n min-width: 0;\n height: 40px;\n padding: 0;\n background: var(--rd-surface);\n border: 1px solid var(--rd-border);\n border-radius: 8px;\n font-family: inherit;\n font-size: 13px;\n font-weight: 600;\n color: var(--rd-text-secondary);\n cursor: pointer;\n transition: transform 100ms ease, background 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;\n font-variant-numeric: tabular-nums;\n }\n .rating-pip:hover {\n border-color: var(--rd-border-strong);\n color: var(--rd-text-primary);\n }\n .rating-pip:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--rd-brand) 25%, transparent);\n }\n .rating-pip.filled[data-band=\"low\"] { background: var(--rd-low); border-color: var(--rd-low); color: var(--rd-on-brand); }\n .rating-pip.filled[data-band=\"mid\"] { background: var(--rd-mid); border-color: var(--rd-mid); color: var(--rd-on-brand); }\n .rating-pip.filled[data-band=\"high\"] { background: var(--rd-high); border-color: var(--rd-high); color: var(--rd-on-brand); }\n .rating-pip.selected { transform: translateY(-1px); }\n\n /* ─── Meta row: edge legend + center caption ─── */\n .rating-meta {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n align-items: center;\n gap: 8px;\n padding: 0 2px;\n margin-top: -2px;\n font-size: 11px;\n color: var(--rd-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n }\n .legend-edge { font-weight: 500; }\n .legend-right { text-align: right; }\n\n .selected-caption {\n display: inline-flex;\n align-items: baseline;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n text-transform: none;\n letter-spacing: 0;\n color: var(--rd-text-secondary);\n font-variant-numeric: tabular-nums;\n }\n .selected-caption strong { font-weight: 700; font-size: 13px; }\n .selected-caption .dot { color: var(--rd-text-disabled); }\n .selected-caption .muted { color: var(--rd-text-disabled); font-weight: 500; }\n .selected-caption[data-band=\"low\"] { color: var(--rd-low); }\n .selected-caption[data-band=\"mid\"] { color: var(--rd-mid); }\n .selected-caption[data-band=\"high\"] { color: var(--rd-high); }\n\n /* ─── Comment field ─── */\n .field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n .field-header {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n }\n .field-label {\n font-weight: 600;\n font-size: 13px;\n color: var(--rd-text-primary);\n }\n .field-hint {\n font-size: 11px;\n color: var(--rd-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n }\n .comment-textarea {\n width: 100%;\n min-height: 88px;\n padding: 10px 12px;\n border: 1px solid var(--rd-border);\n border-radius: 8px;\n background: var(--rd-surface);\n color: var(--rd-text-primary);\n font-family: inherit;\n font-size: 13.5px;\n line-height: 1.5;\n resize: vertical;\n transition: border-color 140ms ease, box-shadow 140ms ease;\n }\n .comment-textarea::placeholder { color: var(--rd-text-disabled); }\n .comment-textarea:hover { border-color: var(--rd-border-strong); }\n .comment-textarea:focus {\n outline: none;\n border-color: var(--rd-brand);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--rd-brand) 18%, transparent);\n }\n\n /* ─── Consent note ─── */\n .consent-note {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n padding: 12px 14px;\n background: color-mix(in srgb, var(--rd-brand) 6%, var(--rd-surface));\n border: 1px solid color-mix(in srgb, var(--rd-brand) 22%, var(--rd-border));\n border-radius: 8px;\n }\n .consent-note > i {\n color: var(--rd-brand);\n font-size: 14px;\n margin-top: 2px;\n flex-shrink: 0;\n }\n .consent-body { flex: 1; min-width: 0; }\n .consent-text {\n margin: 0;\n font-size: 12.5px;\n line-height: 1.5;\n color: var(--rd-text-secondary);\n }\n .consent-text strong { color: var(--rd-text-primary); font-weight: 600; }\n .consent-checkbox {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 10px;\n font-size: 12.5px;\n color: var(--rd-text-primary);\n font-weight: 500;\n cursor: pointer;\n user-select: none;\n }\n .consent-checkbox input {\n width: 15px;\n height: 15px;\n cursor: pointer;\n accent-color: var(--rd-brand);\n }\n .consent-warning {\n margin: 6px 0 0 23px;\n font-size: 11px;\n color: var(--rd-low);\n font-weight: 500;\n }\n `]\n})\nexport class RatingDialogComponent {\n @Input() Message: string = '';\n\n /** @deprecated Use {@link Message}. */\n @Input() set message(value: string) {\n this.Message = value;\n }\n /** @deprecated Use {@link Message}. */\n get message(): string {\n return this.Message;\n }\n @Input() InitialRating: number | null = null;\n\n /** @deprecated Use {@link InitialRating}. */\n @Input() set initialRating(value: number | null) {\n this.InitialRating = value;\n }\n /** @deprecated Use {@link InitialRating}. */\n get initialRating(): number | null {\n return this.InitialRating;\n }\n @Input() InitialComments: string = '';\n\n /** @deprecated Use {@link InitialComments}. */\n @Input() set initialComments(value: string) {\n this.InitialComments = value;\n }\n /** @deprecated Use {@link InitialComments}. */\n get initialComments(): string {\n return this.InitialComments;\n }\n\n /** When true, the user must check the consent box before submitting. */\n @Input() RequireConsent: boolean = false;\n\n /** @deprecated Use {@link RequireConsent}. */\n @Input() set requireConsent(value: boolean) {\n this.RequireConsent = value;\n }\n /** @deprecated Use {@link RequireConsent}. */\n get requireConsent(): boolean {\n return this.RequireConsent;\n }\n\n readonly Scale: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n\n /** @deprecated Use {@link Scale}. */\n get scale(): number[] {\n return this.Scale;\n }\n SelectedRating: number | null = null;\n\n /** @deprecated Use {@link SelectedRating}. */\n get selectedRating(): number | null {\n return this.SelectedRating;\n }\n /** @deprecated Use {@link SelectedRating}. */\n set selectedRating(value: number | null) {\n this.SelectedRating = value;\n }\n HoveredRating: number | null = null;\n\n /** @deprecated Use {@link HoveredRating}. */\n get hoveredRating(): number | null {\n return this.HoveredRating;\n }\n /** @deprecated Use {@link HoveredRating}. */\n set hoveredRating(value: number | null) {\n this.HoveredRating = value;\n }\n Comments: string = '';\n\n /** @deprecated Use {@link Comments}. */\n get comments(): string {\n return this.Comments;\n }\n /** @deprecated Use {@link Comments}. */\n set comments(value: string) {\n this.Comments = value;\n }\n ConsentChecked: boolean = false;\n\n /** @deprecated Use {@link ConsentChecked}. */\n get consentChecked(): boolean {\n return this.ConsentChecked;\n }\n /** @deprecated Use {@link ConsentChecked}. */\n set consentChecked(value: boolean) {\n this.ConsentChecked = value;\n }\n\n ngOnInit(): void {\n this.SelectedRating = this.InitialRating;\n this.Comments = this.InitialComments ?? '';\n }\n\n get EffectiveRating(): number | null {\n return this.HoveredRating ?? this.SelectedRating;\n }\n\n /** @deprecated Use {@link EffectiveRating}. */\n get effectiveRating(): number | null {\n return this.EffectiveRating;\n }\n\n get EffectiveBand(): string | null {\n const r = this.EffectiveRating;\n return r === null ? null : this.BandFor(r);\n }\n\n /** @deprecated Use {@link EffectiveBand}. */\n get effectiveBand(): string | null {\n return this.EffectiveBand;\n }\n\n BandFor(n: number): 'low' | 'mid' | 'high' {\n if (n <= 3) return 'low';\n if (n <= 7) return 'mid';\n return 'high';\n }\n\n /** @deprecated Use {@link BandFor}. */\n bandFor(n: number): 'low' | 'mid' | 'high' {\n return this.BandFor(n);\n }\n\n IsFilled(n: number): boolean {\n const r = this.EffectiveRating;\n return r !== null && r >= n;\n }\n\n /** @deprecated Use {@link IsFilled}. */\n isFilled(n: number): boolean {\n return this.IsFilled(n);\n }\n\n SelectRating(n: number): void {\n this.SelectedRating = n;\n }\n\n /** @deprecated Use {@link SelectRating}. */\n selectRating(n: number): void {\n return this.SelectRating(n);\n }\n\n OnScaleMouseLeave(): void {\n this.HoveredRating = null;\n }\n\n /** @deprecated Use {@link OnScaleMouseLeave}. */\n onScaleMouseLeave(): void {\n return this.OnScaleMouseLeave();\n }\n\n OnPipBlur(): void {\n this.HoveredRating = null;\n }\n\n /** @deprecated Use {@link OnPipBlur}. */\n onPipBlur(): void {\n return this.OnPipBlur();\n }\n\n GetDescriptor(n: number): string {\n if (n <= 2) return 'Very Poor';\n if (n <= 4) return 'Needs Improvement';\n if (n <= 6) return 'Okay';\n if (n <= 8) return 'Good';\n return 'Excellent';\n }\n\n /** @deprecated Use {@link GetDescriptor}. */\n getDescriptor(n: number): string {\n return this.GetDescriptor(n);\n }\n\n GetRating(): number | null {\n return this.SelectedRating;\n }\n\n /** @deprecated Use {@link GetRating}. */\n getRating(): number | null {\n return this.GetRating();\n }\n\n GetComments(): string {\n return (this.Comments ?? '').trim();\n }\n\n /** @deprecated Use {@link GetComments}. */\n getComments(): string {\n return this.GetComments();\n }\n\n /** True if the consent requirement is met (not required, or required and checked). */\n IsConsentValid(): boolean {\n return !this.RequireConsent || this.ConsentChecked;\n }\n\n /** @deprecated Use {@link IsConsentValid}. */\n isConsentValid(): boolean {\n return this.IsConsentValid();\n }\n\n /** True only when the user *just* acknowledged consent in this dialog session. */\n WasConsentNewlyAcknowledged(): boolean {\n return this.RequireConsent && this.ConsentChecked;\n }\n\n /** @deprecated Use {@link WasConsentNewlyAcknowledged}. */\n wasConsentNewlyAcknowledged(): boolean {\n return this.WasConsentNewlyAcknowledged();\n }\n}\n"]}
@@ -10,23 +10,73 @@ export declare class ExportModalComponent {
10
10
  private dialogService;
11
11
  private toastService;
12
12
  private _isVisible;
13
- set isVisible(value: boolean);
13
+ set IsVisible(value: boolean);
14
+ get IsVisible(): boolean;
15
+ /** @deprecated Use {@link IsVisible}. */
14
16
  get isVisible(): boolean;
15
- conversation?: MJConversationEntity;
16
- currentUser: UserInfo;
17
+ /** @deprecated Use {@link IsVisible}. */
18
+ set isVisible(value: boolean);
19
+ Conversation?: MJConversationEntity;
20
+ /** @deprecated Use {@link Conversation}. */
21
+ set conversation(value: MJConversationEntity | undefined);
22
+ /** @deprecated Use {@link Conversation}. */
23
+ get conversation(): MJConversationEntity | undefined;
24
+ CurrentUser: UserInfo;
25
+ /** @deprecated Use {@link CurrentUser}. */
26
+ set currentUser(value: UserInfo);
27
+ /** @deprecated Use {@link CurrentUser}. */
28
+ get currentUser(): UserInfo;
17
29
  /**
18
30
  * Host-supplied export branding (theme tokens / logo / title). When set, the
19
31
  * HTML format's "Include branding" checkbox defaults on and the branding is
20
32
  * passed to {@link ExportService} on export. See `ExportBranding`.
21
33
  */
22
- branding: ExportBranding | null;
34
+ Branding: ExportBranding | null;
35
+ /** @deprecated Use {@link Branding}. */
36
+ set branding(value: ExportBranding | null);
37
+ /** @deprecated Use {@link Branding}. */
38
+ get branding(): ExportBranding | null;
39
+ Cancelled: EventEmitter<void>;
40
+ /**
41
+ * @deprecated Use {@link Cancelled}.
42
+ *
43
+ * The same emitter under the old binding name, so a template still binding
44
+ * (cancelled) keeps working. Must stay AFTER Cancelled: class fields
45
+ * initialise in order, and the other way round this captures undefined.
46
+ */
23
47
  cancelled: EventEmitter<void>;
48
+ Exported: EventEmitter<void>;
49
+ /**
50
+ * @deprecated Use {@link Exported}.
51
+ *
52
+ * The same emitter under the old binding name, so a template still binding
53
+ * (exported) keeps working. Must stay AFTER Exported: class fields
54
+ * initialise in order, and the other way round this captures undefined.
55
+ */
24
56
  exported: EventEmitter<void>;
25
- selectedFormat: ExportFormat | null;
26
- isExporting: boolean;
27
- errorMessage: string;
28
- exportOptions: ExportOptions;
57
+ SelectedFormat: ExportFormat | null;
58
+ /** @deprecated Use {@link SelectedFormat}. */
59
+ get selectedFormat(): ExportFormat | null;
60
+ /** @deprecated Use {@link SelectedFormat}. */
61
+ set selectedFormat(value: ExportFormat | null);
62
+ IsExporting: boolean;
63
+ /** @deprecated Use {@link IsExporting}. */
64
+ get isExporting(): boolean;
65
+ /** @deprecated Use {@link IsExporting}. */
66
+ set isExporting(value: boolean);
67
+ ErrorMessage: string;
68
+ /** @deprecated Use {@link ErrorMessage}. */
69
+ get errorMessage(): string;
70
+ /** @deprecated Use {@link ErrorMessage}. */
71
+ set errorMessage(value: string);
72
+ ExportOptions: ExportOptions;
73
+ /** @deprecated Use {@link ExportOptions}. */
74
+ get exportOptions(): ExportOptions;
75
+ /** @deprecated Use {@link ExportOptions}. */
76
+ set exportOptions(value: ExportOptions);
29
77
  /** Format-aware hint under the "Include branding" checkbox. */
78
+ get BrandingHint(): string;
79
+ /** @deprecated Use {@link BrandingHint}. */
30
80
  get brandingHint(): string;
31
81
  /**
32
82
  * The options actually handed to the service. `includeTheme` is the user's INTENT;
@@ -40,20 +90,44 @@ export declare class ExportModalComponent {
40
90
  * format.
41
91
  */
42
92
  private resolveExportOptions;
93
+ get ExportTitle(): string;
94
+ /** @deprecated Use {@link ExportTitle}. */
43
95
  get exportTitle(): string;
96
+ get CanExport(): boolean;
97
+ /** @deprecated Use {@link CanExport}. */
44
98
  get canExport(): boolean;
45
- formats: {
99
+ Formats: {
46
100
  value: ExportFormat;
47
101
  name: string;
48
102
  description: string;
49
103
  icon: string;
50
104
  }[];
105
+ /** @deprecated Use {@link Formats}. */
106
+ get formats(): {
107
+ value: ExportFormat;
108
+ name: string;
109
+ description: string;
110
+ icon: string;
111
+ }[];
112
+ /** @deprecated Use {@link Formats}. */
113
+ set formats(value: {
114
+ value: ExportFormat;
115
+ name: string;
116
+ description: string;
117
+ icon: string;
118
+ }[]);
51
119
  constructor(exportService: ExportService, dialogService: DialogService, toastService: ToastService);
120
+ SelectFormat(format: ExportFormat): void;
121
+ /** @deprecated Use {@link SelectFormat}. */
52
122
  selectFormat(format: ExportFormat): void;
123
+ OnExport(): Promise<void>;
124
+ /** @deprecated Use {@link OnExport}. */
53
125
  onExport(): Promise<void>;
126
+ OnCancel(): void;
127
+ /** @deprecated Use {@link OnCancel}. */
54
128
  onCancel(): void;
55
129
  private resetForm;
56
130
  static ɵfac: i0.ɵɵFactoryDeclaration<ExportModalComponent, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<ExportModalComponent, "mj-export-modal", never, { "isVisible": { "alias": "isVisible"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "branding": { "alias": "branding"; "required": false; }; }, { "cancelled": "cancelled"; "exported": "exported"; }, never, never, false, never>;
131
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExportModalComponent, "mj-export-modal", never, { "IsVisible": { "alias": "IsVisible"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "Conversation": { "alias": "Conversation"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "Branding": { "alias": "Branding"; "required": false; }; "branding": { "alias": "branding"; "required": false; }; }, { "Cancelled": "Cancelled"; "cancelled": "cancelled"; "Exported": "Exported"; "exported": "exported"; }, never, never, false, never>;
58
132
  }
59
133
  //# sourceMappingURL=export-modal.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/export/export-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;;AAE5D,qBA6Ua,oBAAoB;IAmH7B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IApHtB,OAAO,CAAC,UAAU,CAAS;IAC3B,IACI,SAAS,CAAC,KAAK,EAAE,OAAO,EAY3B;IACD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEQ,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,WAAW,EAAG,QAAQ,CAAC;IAChC;;;;OAIG;IACM,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAQ;IACtC,SAAS,qBAA4B;IACrC,QAAQ,qBAA4B;IAE9C,cAAc,EAAE,YAAY,GAAG,IAAI,CAAc;IACjD,WAAW,UAAS;IACpB,YAAY,SAAM;IAElB,aAAa,EAAE,aAAa,CAO1B;IAEF,+DAA+D;IAC/D,IAAI,YAAY,IAAI,MAAM,CASzB;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IAU5B,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,SAAS,IAAI,OAAO,CAIvB;IAED,OAAO;eAEkB,YAAY;;;;QAuBnC;gBAGQ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY;IAGpC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAMlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC/B,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCApKN,oBAAoB;2CAApB,oBAAoB;CAiLhC"}
1
+ {"version":3,"file":"export-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/export/export-modal.component.ts"],"names":[],"mappings":"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"}
@@ -221,7 +221,7 @@ export class ExportModalComponent {
221
221
  dialogService;
222
222
  toastService;
223
223
  _isVisible = false;
224
- set isVisible(value) {
224
+ set IsVisible(value) {
225
225
  const opening = value && !this._isVisible;
226
226
  this._isVisible = value;
227
227
  if (opening) {
@@ -231,26 +231,98 @@ export class ExportModalComponent {
231
231
  // pass must bind [branding] FIRST (Angular sets inputs in template order).
232
232
  // chat-area's template does; a host mounting with isVisible already true and
233
233
  // branding bound after would get the checkbox defaulted off.
234
- this.exportOptions.includeTheme = !!this.branding;
234
+ this.ExportOptions.includeTheme = !!this.Branding;
235
235
  }
236
236
  }
237
- get isVisible() {
237
+ get IsVisible() {
238
238
  return this._isVisible;
239
239
  }
240
- conversation;
241
- currentUser;
240
+ /** @deprecated Use {@link IsVisible}. */
241
+ get isVisible() {
242
+ return this.IsVisible;
243
+ }
244
+ /** @deprecated Use {@link IsVisible}. */
245
+ set isVisible(value) {
246
+ this.IsVisible = value;
247
+ }
248
+ Conversation;
249
+ /** @deprecated Use {@link Conversation}. */
250
+ set conversation(value) {
251
+ this.Conversation = value;
252
+ }
253
+ /** @deprecated Use {@link Conversation}. */
254
+ get conversation() {
255
+ return this.Conversation;
256
+ }
257
+ CurrentUser;
258
+ /** @deprecated Use {@link CurrentUser}. */
259
+ set currentUser(value) {
260
+ this.CurrentUser = value;
261
+ }
262
+ /** @deprecated Use {@link CurrentUser}. */
263
+ get currentUser() {
264
+ return this.CurrentUser;
265
+ }
242
266
  /**
243
267
  * Host-supplied export branding (theme tokens / logo / title). When set, the
244
268
  * HTML format's "Include branding" checkbox defaults on and the branding is
245
269
  * passed to {@link ExportService} on export. See `ExportBranding`.
246
270
  */
247
- branding = null;
248
- cancelled = new EventEmitter();
249
- exported = new EventEmitter();
250
- selectedFormat = 'markdown';
251
- isExporting = false;
252
- errorMessage = '';
253
- exportOptions = {
271
+ Branding = null;
272
+ /** @deprecated Use {@link Branding}. */
273
+ set branding(value) {
274
+ this.Branding = value;
275
+ }
276
+ /** @deprecated Use {@link Branding}. */
277
+ get branding() {
278
+ return this.Branding;
279
+ }
280
+ Cancelled = new EventEmitter();
281
+ /**
282
+ * @deprecated Use {@link Cancelled}.
283
+ *
284
+ * The same emitter under the old binding name, so a template still binding
285
+ * (cancelled) keeps working. Must stay AFTER Cancelled: class fields
286
+ * initialise in order, and the other way round this captures undefined.
287
+ */
288
+ cancelled = this.Cancelled;
289
+ Exported = new EventEmitter();
290
+ /**
291
+ * @deprecated Use {@link Exported}.
292
+ *
293
+ * The same emitter under the old binding name, so a template still binding
294
+ * (exported) keeps working. Must stay AFTER Exported: class fields
295
+ * initialise in order, and the other way round this captures undefined.
296
+ */
297
+ exported = this.Exported;
298
+ SelectedFormat = 'markdown';
299
+ /** @deprecated Use {@link SelectedFormat}. */
300
+ get selectedFormat() {
301
+ return this.SelectedFormat;
302
+ }
303
+ /** @deprecated Use {@link SelectedFormat}. */
304
+ set selectedFormat(value) {
305
+ this.SelectedFormat = value;
306
+ }
307
+ IsExporting = false;
308
+ /** @deprecated Use {@link IsExporting}. */
309
+ get isExporting() {
310
+ return this.IsExporting;
311
+ }
312
+ /** @deprecated Use {@link IsExporting}. */
313
+ set isExporting(value) {
314
+ this.IsExporting = value;
315
+ }
316
+ ErrorMessage = '';
317
+ /** @deprecated Use {@link ErrorMessage}. */
318
+ get errorMessage() {
319
+ return this.ErrorMessage;
320
+ }
321
+ /** @deprecated Use {@link ErrorMessage}. */
322
+ set errorMessage(value) {
323
+ this.ErrorMessage = value;
324
+ }
325
+ ExportOptions = {
254
326
  includeMessages: true,
255
327
  includeMetadata: true,
256
328
  prettyPrint: true,
@@ -258,17 +330,29 @@ export class ExportModalComponent {
258
330
  includeTheme: false,
259
331
  themeMode: 'light'
260
332
  };
333
+ /** @deprecated Use {@link ExportOptions}. */
334
+ get exportOptions() {
335
+ return this.ExportOptions;
336
+ }
337
+ /** @deprecated Use {@link ExportOptions}. */
338
+ set exportOptions(value) {
339
+ this.ExportOptions = value;
340
+ }
261
341
  /** Format-aware hint under the "Include branding" checkbox. */
262
- get brandingHint() {
263
- if (this.selectedFormat === 'html') {
264
- if (!this.exportOptions.includeCSS) {
342
+ get BrandingHint() {
343
+ if (this.SelectedFormat === 'html') {
344
+ if (!this.ExportOptions.includeCSS) {
265
345
  return 'Requires "Include CSS styling"';
266
346
  }
267
- return `Embed the app's theme colors${this.branding?.logoUrl ? ', logo,' : ''} and attribution line`;
347
+ return `Embed the app's theme colors${this.Branding?.logoUrl ? ', logo,' : ''} and attribution line`;
268
348
  }
269
- const logo = this.branding?.logoUrl && this.selectedFormat === 'markdown' ? ', logo,' : '';
349
+ const logo = this.Branding?.logoUrl && this.SelectedFormat === 'markdown' ? ', logo,' : '';
270
350
  return `Add the title${logo} and attribution line`;
271
351
  }
352
+ /** @deprecated Use {@link BrandingHint}. */
353
+ get brandingHint() {
354
+ return this.BrandingHint;
355
+ }
272
356
  /**
273
357
  * The options actually handed to the service. `includeTheme` is the user's INTENT;
274
358
  * this resolves it against the selected format:
@@ -281,23 +365,31 @@ export class ExportModalComponent {
281
365
  * format.
282
366
  */
283
367
  resolveExportOptions() {
284
- const unstyledHtml = this.selectedFormat === 'html' && !this.exportOptions.includeCSS;
285
- const brandingOn = !!this.exportOptions.includeTheme && !unstyledHtml;
368
+ const unstyledHtml = this.SelectedFormat === 'html' && !this.ExportOptions.includeCSS;
369
+ const brandingOn = !!this.ExportOptions.includeTheme && !unstyledHtml;
286
370
  return {
287
- ...this.exportOptions,
371
+ ...this.ExportOptions,
288
372
  includeTheme: brandingOn,
289
- branding: brandingOn ? (this.branding ?? undefined) : undefined
373
+ branding: brandingOn ? (this.Branding ?? undefined) : undefined
290
374
  };
291
375
  }
376
+ get ExportTitle() {
377
+ return `Export: ${this.Conversation?.Name || 'Conversation'}`;
378
+ }
379
+ /** @deprecated Use {@link ExportTitle}. */
292
380
  get exportTitle() {
293
- return `Export: ${this.conversation?.Name || 'Conversation'}`;
381
+ return this.ExportTitle;
294
382
  }
383
+ get CanExport() {
384
+ return !this.IsExporting &&
385
+ !!this.SelectedFormat &&
386
+ (this.ExportOptions.includeMessages === true);
387
+ }
388
+ /** @deprecated Use {@link CanExport}. */
295
389
  get canExport() {
296
- return !this.isExporting &&
297
- !!this.selectedFormat &&
298
- (this.exportOptions.includeMessages === true);
390
+ return this.CanExport;
299
391
  }
300
- formats = [
392
+ Formats = [
301
393
  {
302
394
  value: 'markdown',
303
395
  name: 'Markdown',
@@ -323,60 +415,80 @@ export class ExportModalComponent {
323
415
  icon: 'fa-solid fa-file'
324
416
  }
325
417
  ];
418
+ /** @deprecated Use {@link Formats}. */
419
+ get formats() {
420
+ return this.Formats;
421
+ }
422
+ /** @deprecated Use {@link Formats}. */
423
+ set formats(value) {
424
+ this.Formats = value;
425
+ }
326
426
  constructor(exportService, dialogService, toastService) {
327
427
  this.exportService = exportService;
328
428
  this.dialogService = dialogService;
329
429
  this.toastService = toastService;
330
430
  }
331
- selectFormat(format) {
332
- if (!this.isExporting) {
333
- this.selectedFormat = format;
431
+ SelectFormat(format) {
432
+ if (!this.IsExporting) {
433
+ this.SelectedFormat = format;
334
434
  }
335
435
  }
336
- async onExport() {
337
- if (!this.canExport || !this.conversation) {
436
+ /** @deprecated Use {@link SelectFormat}. */
437
+ selectFormat(format) {
438
+ return this.SelectFormat(format);
439
+ }
440
+ async OnExport() {
441
+ if (!this.CanExport || !this.Conversation) {
338
442
  return;
339
443
  }
340
- if (!this.exportOptions.includeMessages) {
341
- this.errorMessage = 'At least "Include messages" must be selected';
444
+ if (!this.ExportOptions.includeMessages) {
445
+ this.ErrorMessage = 'At least "Include messages" must be selected';
342
446
  return;
343
447
  }
344
- this.isExporting = true;
345
- this.errorMessage = '';
448
+ this.IsExporting = true;
449
+ this.ErrorMessage = '';
346
450
  try {
347
- await this.exportService.exportConversation(this.conversation.ID, this.selectedFormat, this.currentUser, this.resolveExportOptions());
451
+ await this.exportService.exportConversation(this.Conversation.ID, this.SelectedFormat, this.CurrentUser, this.resolveExportOptions());
348
452
  this.toastService.success('Conversation exported successfully');
349
- this.exported.emit();
453
+ this.Exported.emit();
350
454
  this.resetForm();
351
455
  }
352
456
  catch (error) {
353
457
  console.error('Error exporting conversation:', error);
354
- this.errorMessage = error instanceof Error ? error.message : 'Failed to export conversation';
355
- this.toastService.error(this.errorMessage);
458
+ this.ErrorMessage = error instanceof Error ? error.message : 'Failed to export conversation';
459
+ this.toastService.error(this.ErrorMessage);
356
460
  }
357
461
  finally {
358
- this.isExporting = false;
462
+ this.IsExporting = false;
359
463
  }
360
464
  }
361
- onCancel() {
362
- this.cancelled.emit();
465
+ /** @deprecated Use {@link OnExport}. */
466
+ async onExport() {
467
+ return this.OnExport();
468
+ }
469
+ OnCancel() {
470
+ this.Cancelled.emit();
363
471
  this.resetForm();
364
472
  }
473
+ /** @deprecated Use {@link OnCancel}. */
474
+ onCancel() {
475
+ return this.OnCancel();
476
+ }
365
477
  resetForm() {
366
- this.selectedFormat = 'markdown';
367
- this.errorMessage = '';
368
- this.exportOptions = {
478
+ this.SelectedFormat = 'markdown';
479
+ this.ErrorMessage = '';
480
+ this.ExportOptions = {
369
481
  includeMessages: true,
370
482
  includeMetadata: true,
371
483
  prettyPrint: true,
372
484
  includeCSS: true,
373
- includeTheme: !!this.branding,
485
+ includeTheme: !!this.Branding,
374
486
  themeMode: 'light'
375
487
  };
376
- this.isVisible = false;
488
+ this.IsVisible = false;
377
489
  }
378
490
  static ɵfac = function ExportModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ExportModalComponent)(i0.ɵɵdirectiveInject(i1.ExportService), i0.ɵɵdirectiveInject(i2.DialogService), i0.ɵɵdirectiveInject(i3.ToastService)); };
379
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExportModalComponent, selectors: [["mj-export-modal"]], inputs: { isVisible: "isVisible", conversation: "conversation", currentUser: "currentUser", branding: "branding" }, outputs: { cancelled: "cancelled", exported: "exported" }, standalone: false, decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "export-modal-content"], [1, "format-section"], [1, "section-title"], [1, "fa-solid", "fa-file-export"], [1, "section-description"], [1, "format-options"], [1, "format-option", 3, "selected"], [1, "options-section"], [1, "fa-solid", "fa-sliders"], [1, "option-checkboxes"], [1, "checkbox-label"], ["type", "checkbox", 3, "ngModelChange", "ngModel", "disabled"], [1, "format-specific-options"], [1, "error-message"], [1, "loading-indicator"], ["mjButton", "", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-download"], [1, "format-option", 3, "click"], [1, "format-details"], [1, "format-name"], [1, "format-description"], [1, "fa-solid", "fa-check-circle", "check-icon"], [1, "subsection-title"], [1, "mj-input", "theme-mode-select", 3, "ngModelChange", "ngModel", "disabled"], ["value", "light"], ["value", "dark"], [1, "fa-solid", "fa-exclamation-triangle"], ["text", "Exporting conversation...", "size", "small"]], template: function ExportModalComponent_Template(rf, ctx) { if (rf & 1) {
491
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExportModalComponent, selectors: [["mj-export-modal"]], inputs: { IsVisible: "IsVisible", isVisible: "isVisible", Conversation: "Conversation", conversation: "conversation", CurrentUser: "CurrentUser", currentUser: "currentUser", Branding: "Branding", branding: "branding" }, outputs: { Cancelled: "Cancelled", cancelled: "cancelled", Exported: "Exported", exported: "exported" }, standalone: false, decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "export-modal-content"], [1, "format-section"], [1, "section-title"], [1, "fa-solid", "fa-file-export"], [1, "section-description"], [1, "format-options"], [1, "format-option", 3, "selected"], [1, "options-section"], [1, "fa-solid", "fa-sliders"], [1, "option-checkboxes"], [1, "checkbox-label"], ["type", "checkbox", 3, "ngModelChange", "ngModel", "disabled"], [1, "format-specific-options"], [1, "error-message"], [1, "loading-indicator"], ["mjButton", "", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-download"], [1, "format-option", 3, "click"], [1, "format-details"], [1, "format-name"], [1, "format-description"], [1, "fa-solid", "fa-check-circle", "check-icon"], [1, "subsection-title"], [1, "mj-input", "theme-mode-select", 3, "ngModelChange", "ngModel", "disabled"], ["value", "light"], ["value", "dark"], [1, "fa-solid", "fa-exclamation-triangle"], ["text", "Exporting conversation...", "size", "small"]], template: function ExportModalComponent_Template(rf, ctx) { if (rf & 1) {
380
492
  i0.ɵɵconditionalCreate(0, ExportModalComponent_Conditional_0_Template, 40, 15, "mj-dialog", 0);
381
493
  } if (rf & 2) {
382
494
  i0.ɵɵconditional(ctx.isVisible ? 0 : -1);
@@ -524,16 +636,28 @@ export class ExportModalComponent {
524
636
  </mj-dialog>
525
637
  }
526
638
  `, styles: ["\n .export-modal-content {\n padding: 20px;\n max-height: calc(600px - 120px);\n overflow-y: auto;\n }\n\n section {\n margin-bottom: 24px;\n }\n\n .section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 8px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n\n .section-title i {\n color: var(--mj-brand-primary);\n }\n\n .section-description {\n margin: 0 0 16px 0;\n color: var(--mj-text-muted);\n font-size: 14px;\n }\n\n .format-options {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .format-option {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 2px solid var(--mj-border-strong);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n background: var(--mj-bg-surface-card);\n }\n\n .format-option:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n }\n\n .format-option.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface-card));\n }\n\n .format-option > i.fa-solid,\n .format-option > i.fas {\n font-size: 24px;\n color: var(--mj-text-muted);\n width: 32px;\n text-align: center;\n }\n\n .format-option.selected > i.fa-solid,\n .format-option.selected > i.fas {\n color: var(--mj-brand-primary);\n }\n\n .format-details {\n flex: 1;\n }\n\n .format-name {\n font-weight: 500;\n font-size: 14px;\n margin-bottom: 2px;\n }\n\n .format-description {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n\n .check-icon {\n font-size: 20px;\n color: var(--mj-status-success);\n }\n\n .option-checkboxes {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .checkbox-label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: background 0.2s;\n }\n\n .checkbox-label:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .checkbox-label input[type=\"checkbox\"] {\n margin-right: 8px;\n cursor: pointer;\n }\n\n .checkbox-label > span {\n display: inline-flex;\n align-items: center;\n font-size: 14px;\n font-weight: 500;\n }\n\n .checkbox-label input[type=\"checkbox\"]:disabled {\n cursor: not-allowed;\n }\n\n .theme-mode-select {\n margin-left: 8px;\n padding: 2px 6px;\n font-size: 13px;\n }\n\n .checkbox-label small {\n margin-left: 28px;\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n\n .format-specific-options {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .subsection-title {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n }\n\n .error-message {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n margin-top: 15px;\n padding: 10px 12px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border-left: 3px solid var(--mj-status-error);\n border-radius: 4px;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-top: 15px;\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n color: var(--mj-text-muted);\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 15px 20px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n mj-dialog-actions button i {\n margin-right: 6px;\n }\n "] }]
527
- }], () => [{ type: i1.ExportService }, { type: i2.DialogService }, { type: i3.ToastService }], { isVisible: [{
639
+ }], () => [{ type: i1.ExportService }, { type: i2.DialogService }, { type: i3.ToastService }], { IsVisible: [{
640
+ type: Input
641
+ }], isVisible: [{
642
+ type: Input
643
+ }], Conversation: [{
528
644
  type: Input
529
645
  }], conversation: [{
530
646
  type: Input
647
+ }], CurrentUser: [{
648
+ type: Input
531
649
  }], currentUser: [{
532
650
  type: Input
651
+ }], Branding: [{
652
+ type: Input
533
653
  }], branding: [{
534
654
  type: Input
655
+ }], Cancelled: [{
656
+ type: Output
535
657
  }], cancelled: [{
536
658
  type: Output
659
+ }], Exported: [{
660
+ type: Output
537
661
  }], exported: [{
538
662
  type: Output
539
663
  }] }); })();