@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
@@ -520,22 +520,94 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
520
520
  toastService;
521
521
  permissionService;
522
522
  cdr;
523
- isOpen = false;
524
- environmentId;
525
- currentUser;
523
+ IsOpen = false;
524
+ /** @deprecated Use {@link IsOpen}. */
525
+ set isOpen(value) {
526
+ this.IsOpen = value;
527
+ }
528
+ /** @deprecated Use {@link IsOpen}. */
529
+ get isOpen() {
530
+ return this.IsOpen;
531
+ }
532
+ EnvironmentId;
533
+ /** @deprecated Use {@link EnvironmentId}. */
534
+ set environmentId(value) {
535
+ this.EnvironmentId = value;
536
+ }
537
+ /** @deprecated Use {@link EnvironmentId}. */
538
+ get environmentId() {
539
+ return this.EnvironmentId;
540
+ }
541
+ CurrentUser;
542
+ /** @deprecated Use {@link CurrentUser}. */
543
+ set currentUser(value) {
544
+ this.CurrentUser = value;
545
+ }
546
+ /** @deprecated Use {@link CurrentUser}. */
547
+ get currentUser() {
548
+ return this.CurrentUser;
549
+ }
526
550
  /** Collections that already contain the *current version* — rendered with a green check and locked. */
527
- excludeCollectionIds = [];
551
+ ExcludeCollectionIds = [];
552
+ /** @deprecated Use {@link ExcludeCollectionIds}. */
553
+ set excludeCollectionIds(value) {
554
+ this.ExcludeCollectionIds = value;
555
+ }
556
+ /** @deprecated Use {@link ExcludeCollectionIds}. */
557
+ get excludeCollectionIds() {
558
+ return this.ExcludeCollectionIds;
559
+ }
528
560
  /** ID of the artifact version being saved. Required for writes. */
529
- artifactVersionId = null;
561
+ ArtifactVersionId = null;
562
+ /** @deprecated Use {@link ArtifactVersionId}. */
563
+ set artifactVersionId(value) {
564
+ this.ArtifactVersionId = value;
565
+ }
566
+ /** @deprecated Use {@link ArtifactVersionId}. */
567
+ get artifactVersionId() {
568
+ return this.ArtifactVersionId;
569
+ }
530
570
  /** Display-only: artifact name shown in the preview pane. */
531
- artifactName = '';
571
+ ArtifactName = '';
572
+ /** @deprecated Use {@link ArtifactName}. */
573
+ set artifactName(value) {
574
+ this.ArtifactName = value;
575
+ }
576
+ /** @deprecated Use {@link ArtifactName}. */
577
+ get artifactName() {
578
+ return this.ArtifactName;
579
+ }
532
580
  /** Display-only: version number shown in the preview pane. */
533
- artifactVersionNumber = null;
581
+ ArtifactVersionNumber = null;
582
+ /** @deprecated Use {@link ArtifactVersionNumber}. */
583
+ set artifactVersionNumber(value) {
584
+ this.ArtifactVersionNumber = value;
585
+ }
586
+ /** @deprecated Use {@link ArtifactVersionNumber}. */
587
+ get artifactVersionNumber() {
588
+ return this.ArtifactVersionNumber;
589
+ }
534
590
  /** Fired when the save flow finishes (fully successful, or user acknowledged partial result). */
535
591
  completed = new EventEmitter();
536
592
  cancelled = new EventEmitter();
537
- searchInputRef;
538
- newNameInputRef;
593
+ SearchInputRef;
594
+ /** @deprecated Use {@link SearchInputRef}. */
595
+ get searchInputRef() {
596
+ return this.SearchInputRef;
597
+ }
598
+ /** @deprecated Use {@link SearchInputRef}. */
599
+ set searchInputRef(value) {
600
+ this.SearchInputRef = value;
601
+ }
602
+ NewNameInputRef;
603
+ /** @deprecated Use {@link NewNameInputRef}. */
604
+ get newNameInputRef() {
605
+ return this.NewNameInputRef;
606
+ }
607
+ /** @deprecated Use {@link NewNameInputRef}. */
608
+ set newNameInputRef(value) {
609
+ this.NewNameInputRef = value;
610
+ }
539
611
  // Data
540
612
  allCollections = [];
541
613
  editableCollections = [];
@@ -543,21 +615,93 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
543
615
  collectionById = new Map();
544
616
  expandedIds = new Set();
545
617
  // Selection (normalized UUIDs so SQL Server vs Postgres casing doesn't bite us)
546
- selectedIds = new Set();
618
+ SelectedIds = new Set();
619
+ /** @deprecated Use {@link SelectedIds}. */
620
+ get selectedIds() {
621
+ return this.SelectedIds;
622
+ }
623
+ /** @deprecated Use {@link SelectedIds}. */
624
+ set selectedIds(value) {
625
+ this.SelectedIds = value;
626
+ }
547
627
  // Filter / search
548
- searchQuery = '';
549
- filterMode = 'editable';
628
+ SearchQuery = '';
629
+ /** @deprecated Use {@link SearchQuery}. */
630
+ get searchQuery() {
631
+ return this.SearchQuery;
632
+ }
633
+ /** @deprecated Use {@link SearchQuery}. */
634
+ set searchQuery(value) {
635
+ this.SearchQuery = value;
636
+ }
637
+ FilterMode = 'editable';
638
+ /** @deprecated Use {@link FilterMode}. */
639
+ get filterMode() {
640
+ return this.FilterMode;
641
+ }
642
+ /** @deprecated Use {@link FilterMode}. */
643
+ set filterMode(value) {
644
+ this.FilterMode = value;
645
+ }
550
646
  // Render output
551
- visibleNodes = [];
647
+ VisibleNodes = [];
648
+ /** @deprecated Use {@link VisibleNodes}. */
649
+ get visibleNodes() {
650
+ return this.VisibleNodes;
651
+ }
652
+ /** @deprecated Use {@link VisibleNodes}. */
653
+ set visibleNodes(value) {
654
+ this.VisibleNodes = value;
655
+ }
552
656
  // States
553
657
  isLoading = false;
554
- isSaving = false;
658
+ IsSaving = false;
659
+ /** @deprecated Use {@link IsSaving}. */
660
+ get isSaving() {
661
+ return this.IsSaving;
662
+ }
663
+ /** @deprecated Use {@link IsSaving}. */
664
+ set isSaving(value) {
665
+ this.IsSaving = value;
666
+ }
555
667
  errorMessage = '';
556
- showCreateForm = false;
557
- newCollectionName = '';
558
- isCreatingCollection = false;
668
+ ShowCreateForm = false;
669
+ /** @deprecated Use {@link ShowCreateForm}. */
670
+ get showCreateForm() {
671
+ return this.ShowCreateForm;
672
+ }
673
+ /** @deprecated Use {@link ShowCreateForm}. */
674
+ set showCreateForm(value) {
675
+ this.ShowCreateForm = value;
676
+ }
677
+ NewCollectionName = '';
678
+ /** @deprecated Use {@link NewCollectionName}. */
679
+ get newCollectionName() {
680
+ return this.NewCollectionName;
681
+ }
682
+ /** @deprecated Use {@link NewCollectionName}. */
683
+ set newCollectionName(value) {
684
+ this.NewCollectionName = value;
685
+ }
686
+ IsCreatingCollection = false;
687
+ /** @deprecated Use {@link IsCreatingCollection}. */
688
+ get isCreatingCollection() {
689
+ return this.IsCreatingCollection;
690
+ }
691
+ /** @deprecated Use {@link IsCreatingCollection}. */
692
+ set isCreatingCollection(value) {
693
+ this.IsCreatingCollection = value;
694
+ }
559
695
  // Per-collection save outcomes
560
- saveResults = new Map();
696
+ SaveResults = new Map();
697
+ /** @deprecated Use {@link SaveResults}. */
698
+ get saveResults() {
699
+ return this.SaveResults;
700
+ }
701
+ /** @deprecated Use {@link SaveResults}. */
702
+ set saveResults(value) {
703
+ this.SaveResults = value;
704
+ }
561
705
  constructor(toastService, permissionService, cdr) {
562
706
  super();
563
707
  this.toastService = toastService;
@@ -569,57 +713,77 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
569
713
  // ============================================================
570
714
  async ngOnInit() {
571
715
  this.permissionService.Provider = this.ProviderToUse;
572
- if (this.isOpen) {
716
+ if (this.IsOpen) {
573
717
  await this.loadCollections();
574
718
  }
575
719
  }
576
720
  async ngOnChanges(changes) {
577
721
  if (changes['isOpen']) {
578
- if (this.isOpen) {
722
+ if (this.IsOpen) {
579
723
  this.resetState();
580
724
  await this.loadCollections();
581
725
  // Autofocus search on next tick
582
- Promise.resolve().then(() => this.searchInputRef?.nativeElement?.focus());
726
+ Promise.resolve().then(() => this.SearchInputRef?.nativeElement?.focus());
583
727
  }
584
728
  }
585
729
  }
586
730
  ngAfterViewInit() {
587
- if (this.isOpen) {
588
- this.searchInputRef?.nativeElement?.focus();
731
+ if (this.IsOpen) {
732
+ this.SearchInputRef?.nativeElement?.focus();
589
733
  }
590
734
  }
591
735
  // ============================================================
592
736
  // Selection helpers (normalized UUIDs)
593
737
  // ============================================================
738
+ IsSelected(id) {
739
+ return this.SelectedIds.has(NormalizeUUID(id));
740
+ }
741
+ /** @deprecated Use {@link IsSelected}. */
594
742
  isSelected(id) {
595
- return this.selectedIds.has(NormalizeUUID(id));
743
+ return this.IsSelected(id);
596
744
  }
597
- get selectedCollections() {
745
+ get SelectedCollections() {
598
746
  const list = [];
599
- for (const id of this.selectedIds) {
747
+ for (const id of this.SelectedIds) {
600
748
  const c = this.collectionById.get(id);
601
749
  if (c)
602
750
  list.push(c);
603
751
  }
604
752
  return list;
605
753
  }
754
+ /** @deprecated Use {@link SelectedCollections}. */
755
+ get selectedCollections() {
756
+ return this.SelectedCollections;
757
+ }
758
+ get ResultsList() {
759
+ return Array.from(this.SaveResults.values());
760
+ }
761
+ /** @deprecated Use {@link ResultsList}. */
606
762
  get resultsList() {
607
- return Array.from(this.saveResults.values());
763
+ return this.ResultsList;
608
764
  }
609
- get successCount() {
765
+ get SuccessCount() {
610
766
  let n = 0;
611
- for (const r of this.saveResults.values())
767
+ for (const r of this.SaveResults.values())
612
768
  if (r.status === 'success')
613
769
  n++;
614
770
  return n;
615
771
  }
616
- get failedCount() {
772
+ /** @deprecated Use {@link SuccessCount}. */
773
+ get successCount() {
774
+ return this.SuccessCount;
775
+ }
776
+ get FailedCount() {
617
777
  let n = 0;
618
- for (const r of this.saveResults.values())
778
+ for (const r of this.SaveResults.values())
619
779
  if (r.status === 'error')
620
780
  n++;
621
781
  return n;
622
782
  }
783
+ /** @deprecated Use {@link FailedCount}. */
784
+ get failedCount() {
785
+ return this.FailedCount;
786
+ }
623
787
  // ============================================================
624
788
  // Load + tree build
625
789
  // ============================================================
@@ -629,16 +793,16 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
629
793
  this.userPermissions.clear();
630
794
  this.collectionById.clear();
631
795
  this.expandedIds.clear();
632
- this.selectedIds.clear();
633
- this.visibleNodes = [];
634
- this.searchQuery = '';
635
- this.filterMode = 'editable';
796
+ this.SelectedIds.clear();
797
+ this.VisibleNodes = [];
798
+ this.SearchQuery = '';
799
+ this.FilterMode = 'editable';
636
800
  this.errorMessage = '';
637
- this.showCreateForm = false;
638
- this.newCollectionName = '';
639
- this.saveResults.clear();
640
- this.isSaving = false;
641
- this.isCreatingCollection = false;
801
+ this.ShowCreateForm = false;
802
+ this.NewCollectionName = '';
803
+ this.SaveResults.clear();
804
+ this.IsSaving = false;
805
+ this.IsCreatingCollection = false;
642
806
  }
643
807
  async loadCollections() {
644
808
  try {
@@ -647,10 +811,10 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
647
811
  const rv = RunView.FromMetadataProvider(this.ProviderToUse);
648
812
  const result = await rv.RunView({
649
813
  EntityName: 'MJ: Collections',
650
- ExtraFilter: `EnvironmentID='${this.environmentId}'`,
814
+ ExtraFilter: `EnvironmentID='${this.EnvironmentId}'`,
651
815
  OrderBy: 'Name ASC',
652
816
  ResultType: 'entity_object'
653
- }, this.currentUser);
817
+ }, this.CurrentUser);
654
818
  if (!result.Success) {
655
819
  this.errorMessage = result.ErrorMessage || 'Failed to load collections';
656
820
  return;
@@ -674,15 +838,15 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
674
838
  }
675
839
  }
676
840
  async loadUserPermissions() {
677
- const nonOwned = this.allCollections.filter(c => c.OwnerID && !UUIDsEqual(c.OwnerID, this.currentUser.ID));
841
+ const nonOwned = this.allCollections.filter(c => c.OwnerID && !UUIDsEqual(c.OwnerID, this.CurrentUser.ID));
678
842
  if (nonOwned.length === 0)
679
843
  return;
680
844
  const ids = nonOwned.map(c => c.ID);
681
- const permissions = await this.permissionService.checkBulkPermissions(ids, this.currentUser.ID, this.currentUser);
845
+ const permissions = await this.permissionService.checkBulkPermissions(ids, this.CurrentUser.ID, this.CurrentUser);
682
846
  permissions.forEach((permission, id) => this.userPermissions.set(id, permission));
683
847
  }
684
848
  canEdit(c) {
685
- if (!c.OwnerID || UUIDsEqual(c.OwnerID, this.currentUser.ID))
849
+ if (!c.OwnerID || UUIDsEqual(c.OwnerID, this.CurrentUser.ID))
686
850
  return true;
687
851
  return this.userPermissions.get(c.ID)?.canEdit || false;
688
852
  }
@@ -690,12 +854,12 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
690
854
  // Tree rendering — flat list of CollectionNode, ordered DFS
691
855
  // ============================================================
692
856
  rebuildVisibleNodes() {
693
- const q = this.searchQuery.trim().toLowerCase();
857
+ const q = this.SearchQuery.trim().toLowerCase();
694
858
  if (q) {
695
- this.visibleNodes = this.buildSearchNodes(q);
859
+ this.VisibleNodes = this.buildSearchNodes(q);
696
860
  }
697
861
  else {
698
- this.visibleNodes = this.buildTreeNodes();
862
+ this.VisibleNodes = this.buildTreeNodes();
699
863
  }
700
864
  }
701
865
  buildTreeNodes() {
@@ -754,33 +918,45 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
754
918
  return names.join(' / ');
755
919
  }
756
920
  isAlreadyAdded(id) {
757
- return this.excludeCollectionIds.some(eid => UUIDsEqual(eid, id));
921
+ return this.ExcludeCollectionIds.some(eid => UUIDsEqual(eid, id));
758
922
  }
759
923
  // ============================================================
760
924
  // Tree interactions
761
925
  // ============================================================
762
- onRowClick(node) {
763
- if (this.isSaving)
926
+ OnRowClick(node) {
927
+ if (this.IsSaving)
764
928
  return;
765
929
  if (node.alreadyContainsArtifact)
766
930
  return;
767
- this.toggleSelection(node.collection);
931
+ this.ToggleSelection(node.collection);
768
932
  }
769
- toggleSelection(c) {
933
+ /** @deprecated Use {@link OnRowClick}. */
934
+ onRowClick(node) {
935
+ return this.OnRowClick(node);
936
+ }
937
+ ToggleSelection(c) {
770
938
  const id = NormalizeUUID(c.ID);
771
- if (this.selectedIds.has(id)) {
772
- this.selectedIds.delete(id);
939
+ if (this.SelectedIds.has(id)) {
940
+ this.SelectedIds.delete(id);
773
941
  }
774
942
  else {
775
- this.selectedIds.add(id);
943
+ this.SelectedIds.add(id);
776
944
  }
777
945
  }
778
- deselect(id) {
779
- if (this.isSaving)
946
+ /** @deprecated Use {@link ToggleSelection}. */
947
+ toggleSelection(c) {
948
+ return this.ToggleSelection(c);
949
+ }
950
+ Deselect(id) {
951
+ if (this.IsSaving)
780
952
  return;
781
- this.selectedIds.delete(NormalizeUUID(id));
953
+ this.SelectedIds.delete(NormalizeUUID(id));
782
954
  }
783
- toggleExpand(node) {
955
+ /** @deprecated Use {@link Deselect}. */
956
+ deselect(id) {
957
+ return this.Deselect(id);
958
+ }
959
+ ToggleExpand(node) {
784
960
  if (!node.hasChildren)
785
961
  return;
786
962
  const id = NormalizeUUID(node.collection.ID);
@@ -792,48 +968,72 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
792
968
  }
793
969
  this.rebuildVisibleNodes();
794
970
  }
971
+ /** @deprecated Use {@link ToggleExpand}. */
972
+ toggleExpand(node) {
973
+ return this.ToggleExpand(node);
974
+ }
975
+ OnSearchChange() {
976
+ this.rebuildVisibleNodes();
977
+ }
978
+ /** @deprecated Use {@link OnSearchChange}. */
795
979
  onSearchChange() {
980
+ return this.OnSearchChange();
981
+ }
982
+ ClearSearch() {
983
+ this.SearchQuery = '';
796
984
  this.rebuildVisibleNodes();
985
+ this.SearchInputRef?.nativeElement?.focus();
797
986
  }
987
+ /** @deprecated Use {@link ClearSearch}. */
798
988
  clearSearch() {
799
- this.searchQuery = '';
800
- this.rebuildVisibleNodes();
801
- this.searchInputRef?.nativeElement?.focus();
989
+ return this.ClearSearch();
802
990
  }
803
- setFilter(mode) {
804
- this.filterMode = mode;
991
+ SetFilter(mode) {
992
+ this.FilterMode = mode;
805
993
  // 'recent' filter is a placeholder for now — same data, future sort change.
806
994
  // Keeping the chip wired so the UI is honest and a future PR can flip the sort.
807
995
  this.rebuildVisibleNodes();
808
996
  }
997
+ /** @deprecated Use {@link SetFilter}. */
998
+ setFilter(mode) {
999
+ return this.SetFilter(mode);
1000
+ }
809
1001
  // ============================================================
810
1002
  // Create new collection (root-level only — keeps the picker simple)
811
1003
  // ============================================================
812
- openCreateForm() {
813
- this.showCreateForm = true;
1004
+ OpenCreateForm() {
1005
+ this.ShowCreateForm = true;
814
1006
  // Force the @if branch to render now, then focus the input it created.
815
1007
  // A microtask alone isn't enough — Angular hasn't run change detection by then,
816
1008
  // so the @ViewChild ref is still undefined.
817
1009
  this.cdr.detectChanges();
818
- this.newNameInputRef?.nativeElement?.focus();
1010
+ this.NewNameInputRef?.nativeElement?.focus();
1011
+ }
1012
+ /** @deprecated Use {@link OpenCreateForm}. */
1013
+ openCreateForm() {
1014
+ return this.OpenCreateForm();
819
1015
  }
1016
+ CancelCreate() {
1017
+ this.ShowCreateForm = false;
1018
+ this.NewCollectionName = '';
1019
+ }
1020
+ /** @deprecated Use {@link CancelCreate}. */
820
1021
  cancelCreate() {
821
- this.showCreateForm = false;
822
- this.newCollectionName = '';
1022
+ return this.CancelCreate();
823
1023
  }
824
- async createCollection() {
825
- const name = this.newCollectionName.trim();
1024
+ async CreateCollection() {
1025
+ const name = this.NewCollectionName.trim();
826
1026
  if (!name) {
827
1027
  this.toastService.warning('Please enter a collection name');
828
1028
  return;
829
1029
  }
830
1030
  try {
831
- this.isCreatingCollection = true;
1031
+ this.IsCreatingCollection = true;
832
1032
  const p = this.ProviderToUse;
833
- const collection = await p.GetEntityObject('MJ: Collections', this.currentUser);
1033
+ const collection = await p.GetEntityObject('MJ: Collections', this.CurrentUser);
834
1034
  collection.Name = name;
835
- collection.EnvironmentID = this.environmentId;
836
- collection.OwnerID = this.currentUser.ID;
1035
+ collection.EnvironmentID = this.EnvironmentId;
1036
+ collection.OwnerID = this.CurrentUser.ID;
837
1037
  const saved = await collection.Save();
838
1038
  if (!saved) {
839
1039
  this.toastService.error(collection.LatestResult?.CompleteMessage || 'Failed to create collection');
@@ -843,7 +1043,7 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
843
1043
  // OwnerID as an implicit full-access grant. Writing a self-share row was both redundant
844
1044
  // and triggering a server-side auth failure on freshly-created collections.
845
1045
  this.toastService.success('Collection created');
846
- this.cancelCreate();
1046
+ this.CancelCreate();
847
1047
  // Splice the new collection into local state directly. Re-running loadCollections() here
848
1048
  // races with the server's cache-invalidation propagation and intermittently returns the
849
1049
  // pre-create result; we already own the freshly-saved entity, so just use it.
@@ -851,7 +1051,7 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
851
1051
  this.editableCollections = [...this.editableCollections, collection];
852
1052
  this.collectionById.set(NormalizeUUID(collection.ID), collection);
853
1053
  // Auto-select the new one
854
- this.selectedIds.add(NormalizeUUID(collection.ID));
1054
+ this.SelectedIds.add(NormalizeUUID(collection.ID));
855
1055
  this.rebuildVisibleNodes();
856
1056
  }
857
1057
  catch (error) {
@@ -859,53 +1059,61 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
859
1059
  this.toastService.error('Failed to create collection');
860
1060
  }
861
1061
  finally {
862
- this.isCreatingCollection = false;
1062
+ this.IsCreatingCollection = false;
863
1063
  this.cdr.detectChanges();
864
1064
  }
865
1065
  }
1066
+ /** @deprecated Use {@link CreateCollection}. */
1067
+ async createCollection() {
1068
+ return this.CreateCollection();
1069
+ }
866
1070
  // ============================================================
867
1071
  // Save flow (writes happen here, dialog stays open until done)
868
1072
  // ============================================================
869
- async onSave() {
870
- if (this.isSaving)
1073
+ async OnSave() {
1074
+ if (this.IsSaving)
871
1075
  return;
872
- if (this.selectedIds.size === 0) {
1076
+ if (this.SelectedIds.size === 0) {
873
1077
  this.toastService.warning('Pick at least one collection');
874
1078
  return;
875
1079
  }
876
- if (!this.artifactVersionId) {
1080
+ if (!this.ArtifactVersionId) {
877
1081
  this.toastService.error('No version selected to save');
878
1082
  return;
879
1083
  }
880
- this.isSaving = true;
881
- this.saveResults.clear();
1084
+ this.IsSaving = true;
1085
+ this.SaveResults.clear();
882
1086
  // Seed each result as pending so they render in order
883
- for (const c of this.selectedCollections) {
884
- this.saveResults.set(NormalizeUUID(c.ID), {
1087
+ for (const c of this.SelectedCollections) {
1088
+ this.SaveResults.set(NormalizeUUID(c.ID), {
885
1089
  collectionId: c.ID,
886
1090
  collectionName: c.Name,
887
1091
  status: 'pending'
888
1092
  });
889
1093
  }
890
1094
  this.cdr.detectChanges();
891
- for (const c of this.selectedCollections) {
1095
+ for (const c of this.SelectedCollections) {
892
1096
  await this.saveOne(c);
893
1097
  }
894
- this.isSaving = false;
1098
+ this.IsSaving = false;
895
1099
  // Auto-close on full success
896
- if (this.failedCount === 0) {
1100
+ if (this.FailedCount === 0) {
897
1101
  this.emitCompleted();
898
1102
  }
899
1103
  else {
900
- this.toastService.warning(`Saved to ${this.successCount} of ${this.saveResults.size} collections`);
1104
+ this.toastService.warning(`Saved to ${this.SuccessCount} of ${this.SaveResults.size} collections`);
901
1105
  this.cdr.detectChanges();
902
1106
  }
903
1107
  }
904
- async retryFailed() {
905
- if (this.isSaving)
1108
+ /** @deprecated Use {@link OnSave}. */
1109
+ async onSave() {
1110
+ return this.OnSave();
1111
+ }
1112
+ async RetryFailed() {
1113
+ if (this.IsSaving)
906
1114
  return;
907
1115
  const toRetry = [];
908
- for (const r of this.saveResults.values()) {
1116
+ for (const r of this.SaveResults.values()) {
909
1117
  if (r.status === 'error') {
910
1118
  const c = this.collectionById.get(NormalizeUUID(r.collectionId));
911
1119
  if (c)
@@ -914,46 +1122,54 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
914
1122
  }
915
1123
  if (toRetry.length === 0)
916
1124
  return;
917
- this.isSaving = true;
1125
+ this.IsSaving = true;
918
1126
  this.cdr.detectChanges();
919
1127
  for (const c of toRetry) {
920
1128
  await this.saveOne(c);
921
1129
  }
922
- this.isSaving = false;
923
- if (this.failedCount === 0) {
1130
+ this.IsSaving = false;
1131
+ if (this.FailedCount === 0) {
924
1132
  this.emitCompleted();
925
1133
  }
926
1134
  else {
927
1135
  this.cdr.detectChanges();
928
1136
  }
929
1137
  }
930
- async retryOne(collectionId) {
931
- if (this.isSaving)
1138
+ /** @deprecated Use {@link RetryFailed}. */
1139
+ async retryFailed() {
1140
+ return this.RetryFailed();
1141
+ }
1142
+ async RetryOne(collectionId) {
1143
+ if (this.IsSaving)
932
1144
  return;
933
1145
  const c = this.collectionById.get(NormalizeUUID(collectionId));
934
1146
  if (!c)
935
1147
  return;
936
- this.isSaving = true;
1148
+ this.IsSaving = true;
937
1149
  this.cdr.detectChanges();
938
1150
  await this.saveOne(c);
939
- this.isSaving = false;
940
- if (this.failedCount === 0 && this.successCount === this.saveResults.size) {
1151
+ this.IsSaving = false;
1152
+ if (this.FailedCount === 0 && this.SuccessCount === this.SaveResults.size) {
941
1153
  this.emitCompleted();
942
1154
  }
943
1155
  else {
944
1156
  this.cdr.detectChanges();
945
1157
  }
946
1158
  }
1159
+ /** @deprecated Use {@link RetryOne}. */
1160
+ async retryOne(collectionId) {
1161
+ return this.RetryOne(collectionId);
1162
+ }
947
1163
  async saveOne(collection) {
948
1164
  const key = NormalizeUUID(collection.ID);
949
- const r = this.saveResults.get(key);
1165
+ const r = this.SaveResults.get(key);
950
1166
  if (!r)
951
1167
  return;
952
1168
  r.status = 'saving';
953
1169
  r.errorMessage = undefined;
954
1170
  this.cdr.detectChanges();
955
1171
  try {
956
- const versionId = this.artifactVersionId;
1172
+ const versionId = this.ArtifactVersionId;
957
1173
  if (!versionId) {
958
1174
  r.status = 'error';
959
1175
  r.errorMessage = 'No artifact version selected';
@@ -968,12 +1184,12 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
968
1184
  ExtraFilter: `CollectionID='${collection.ID}' AND ArtifactVersionID='${versionId}'`,
969
1185
  ResultType: 'simple',
970
1186
  Fields: ['ID']
971
- }, this.currentUser);
1187
+ }, this.CurrentUser);
972
1188
  if (existing.Success && (existing.Results?.length ?? 0) > 0) {
973
1189
  r.status = 'success';
974
1190
  return;
975
1191
  }
976
- const junction = await p.GetEntityObject('MJ: Collection Artifacts', this.currentUser);
1192
+ const junction = await p.GetEntityObject('MJ: Collection Artifacts', this.CurrentUser);
977
1193
  junction.CollectionID = collection.ID;
978
1194
  junction.ArtifactVersionID = versionId;
979
1195
  junction.Sequence = 0;
@@ -996,23 +1212,27 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
996
1212
  // Close paths
997
1213
  // ============================================================
998
1214
  onCancel() {
999
- if (this.isSaving)
1215
+ if (this.IsSaving)
1000
1216
  return; // can't close while writes are in flight
1001
1217
  // If any saves completed before cancel, treat it as completion so the viewer reloads
1002
- if (this.successCount > 0) {
1218
+ if (this.SuccessCount > 0) {
1003
1219
  this.emitCompleted();
1004
1220
  }
1005
1221
  else {
1006
1222
  this.cancelled.emit();
1007
1223
  }
1008
1224
  }
1009
- onAcknowledgeAndClose() {
1225
+ OnAcknowledgeAndClose() {
1010
1226
  this.emitCompleted();
1011
1227
  }
1228
+ /** @deprecated Use {@link OnAcknowledgeAndClose}. */
1229
+ onAcknowledgeAndClose() {
1230
+ return this.OnAcknowledgeAndClose();
1231
+ }
1012
1232
  emitCompleted() {
1013
1233
  const successIds = [];
1014
1234
  const failedIds = [];
1015
- for (const r of this.saveResults.values()) {
1235
+ for (const r of this.SaveResults.values()) {
1016
1236
  if (r.status === 'success')
1017
1237
  successIds.push(r.collectionId);
1018
1238
  else if (r.status === 'error')
@@ -1025,9 +1245,9 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
1025
1245
  i0.ɵɵviewQuery(_c0, 5)(_c1, 5);
1026
1246
  } if (rf & 2) {
1027
1247
  let _t;
1028
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchInputRef = _t.first);
1029
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.newNameInputRef = _t.first);
1030
- } }, inputs: { isOpen: "isOpen", environmentId: "environmentId", currentUser: "currentUser", excludeCollectionIds: "excludeCollectionIds", artifactVersionId: "artifactVersionId", artifactName: "artifactName", artifactVersionNumber: "artifactVersionNumber" }, outputs: { completed: "completed", cancelled: "cancelled" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["searchInput", ""], ["newNameInput", ""], ["Title", "Save to Collection", 3, "Visible", "Width", "MinWidth"], ["Title", "Save to Collection", 3, "Close", "Visible", "Width", "MinWidth"], [1, "picker-shell"], [1, "pane", "pane-left"], [1, "toolbar"], [1, "search"], [1, "fa-solid", "fa-magnifying-glass"], ["type", "text", "placeholder", "Search collections\u2026", 3, "ngModelChange", "ngModel", "disabled"], ["title", "Clear", 1, "search-clear"], [1, "chip-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-user-pen"], [1, "fa-solid", "fa-clock"], [1, "tree-wrap"], [1, "state-block"], [1, "state-block", "error"], [1, "state-block", "muted"], ["role", "tree", 1, "tree"], [1, "pane", "pane-right"], [1, "preview-block"], [1, "block-label"], [1, "preview-card"], [1, "preview-thumb"], [1, "fa-solid", "fa-file-lines"], [1, "preview-meta"], [1, "preview-name", 3, "title"], [1, "badge", "neutral"], [1, "chips-block"], [1, "chips"], [1, "chips-empty"], [1, "footnote"], [1, "fa-solid", "fa-shield-halved"], ["mjButton", "", "variant", "primary"], ["title", "Clear", 1, "search-clear", 3, "click"], [1, "fa-solid", "fa-xmark"], ["text", "Loading collections\u2026", "size", "medium"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "link-btn", 3, "click"], [1, "fa-solid", "fa-folder-open"], [1, "empty-create-form"], ["type", "text", "placeholder", "Collection name", 1, "create-input", 3, "ngModelChange", "keydown.enter", "keydown.escape", "ngModel", "disabled"], [1, "empty-create-actions"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["mjButton", "", "size", "sm", 3, "click", "disabled"], [1, "hint"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["role", "treeitem", 1, "row", 3, "selected", "already", "padding-left"], [1, "row", "create-row"], [1, "row", "create-form-row"], ["role", "treeitem", 1, "row", 3, "click"], [1, "caret", 3, "click"], [1, "fa-solid", 3, "fa-chevron-down", "fa-chevron-right"], [1, "check"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-folder", "folder-icon"], [1, "row-title"], [1, "row-ancestry"], [1, "row-tag", "success"], [1, "fa-solid"], [1, "row", "create-row", 3, "click"], [1, "caret"], [1, "check", "dashed"], [1, "block-count"], [1, "chip", "result", 3, "success", "error", "saving"], [1, "chip", "result"], [1, "chip-status"], [1, "fa-solid", "fa-circle"], [1, "chip-body"], [1, "chip-name"], [1, "chip-error"], ["title", "Retry", 1, "chip-action"], ["title", "Retry", 1, "chip-action", 3, "click"], [1, "fa-solid", "fa-rotate-right"], [1, "chip"], ["title", "Remove", 1, "chip-action", 3, "click", "disabled"], [1, "fa-solid", "fa-hand-pointer"], ["mjButton", "", "variant", "primary", 3, "click"], ["mjButton", "", 3, "click"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], ["mjButton", "", 3, "click", "disabled"], [1, "fa-solid", "fa-bookmark"]], template: function ArtifactCollectionPickerModalComponent_Template(rf, ctx) { if (rf & 1) {
1248
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.SearchInputRef = _t.first);
1249
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.NewNameInputRef = _t.first);
1250
+ } }, inputs: { IsOpen: "IsOpen", isOpen: "isOpen", EnvironmentId: "EnvironmentId", environmentId: "environmentId", CurrentUser: "CurrentUser", currentUser: "currentUser", ExcludeCollectionIds: "ExcludeCollectionIds", excludeCollectionIds: "excludeCollectionIds", ArtifactVersionId: "ArtifactVersionId", artifactVersionId: "artifactVersionId", ArtifactName: "ArtifactName", artifactName: "artifactName", ArtifactVersionNumber: "ArtifactVersionNumber", artifactVersionNumber: "artifactVersionNumber" }, outputs: { completed: "completed", cancelled: "cancelled" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["searchInput", ""], ["newNameInput", ""], ["Title", "Save to Collection", 3, "Visible", "Width", "MinWidth"], ["Title", "Save to Collection", 3, "Close", "Visible", "Width", "MinWidth"], [1, "picker-shell"], [1, "pane", "pane-left"], [1, "toolbar"], [1, "search"], [1, "fa-solid", "fa-magnifying-glass"], ["type", "text", "placeholder", "Search collections\u2026", 3, "ngModelChange", "ngModel", "disabled"], ["title", "Clear", 1, "search-clear"], [1, "chip-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-user-pen"], [1, "fa-solid", "fa-clock"], [1, "tree-wrap"], [1, "state-block"], [1, "state-block", "error"], [1, "state-block", "muted"], ["role", "tree", 1, "tree"], [1, "pane", "pane-right"], [1, "preview-block"], [1, "block-label"], [1, "preview-card"], [1, "preview-thumb"], [1, "fa-solid", "fa-file-lines"], [1, "preview-meta"], [1, "preview-name", 3, "title"], [1, "badge", "neutral"], [1, "chips-block"], [1, "chips"], [1, "chips-empty"], [1, "footnote"], [1, "fa-solid", "fa-shield-halved"], ["mjButton", "", "variant", "primary"], ["title", "Clear", 1, "search-clear", 3, "click"], [1, "fa-solid", "fa-xmark"], ["text", "Loading collections\u2026", "size", "medium"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "link-btn", 3, "click"], [1, "fa-solid", "fa-folder-open"], [1, "empty-create-form"], ["type", "text", "placeholder", "Collection name", 1, "create-input", 3, "ngModelChange", "keydown.enter", "keydown.escape", "ngModel", "disabled"], [1, "empty-create-actions"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["mjButton", "", "size", "sm", 3, "click", "disabled"], [1, "hint"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["role", "treeitem", 1, "row", 3, "selected", "already", "padding-left"], [1, "row", "create-row"], [1, "row", "create-form-row"], ["role", "treeitem", 1, "row", 3, "click"], [1, "caret", 3, "click"], [1, "fa-solid", 3, "fa-chevron-down", "fa-chevron-right"], [1, "check"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-folder", "folder-icon"], [1, "row-title"], [1, "row-ancestry"], [1, "row-tag", "success"], [1, "fa-solid"], [1, "row", "create-row", 3, "click"], [1, "caret"], [1, "check", "dashed"], [1, "block-count"], [1, "chip", "result", 3, "success", "error", "saving"], [1, "chip", "result"], [1, "chip-status"], [1, "fa-solid", "fa-circle"], [1, "chip-body"], [1, "chip-name"], [1, "chip-error"], ["title", "Retry", 1, "chip-action"], ["title", "Retry", 1, "chip-action", 3, "click"], [1, "fa-solid", "fa-rotate-right"], [1, "chip"], ["title", "Remove", 1, "chip-action", 3, "click", "disabled"], [1, "fa-solid", "fa-hand-pointer"], ["mjButton", "", "variant", "primary", 3, "click"], ["mjButton", "", 3, "click"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], ["mjButton", "", 3, "click", "disabled"], [1, "fa-solid", "fa-bookmark"]], template: function ArtifactCollectionPickerModalComponent_Template(rf, ctx) { if (rf & 1) {
1031
1251
  i0.ɵɵconditionalCreate(0, ArtifactCollectionPickerModalComponent_Conditional_0_Template, 45, 19, "mj-dialog", 2);
1032
1252
  } if (rf & 2) {
1033
1253
  i0.ɵɵconditional(ctx.isOpen ? 0 : -1);
@@ -1328,28 +1548,42 @@ export class ArtifactCollectionPickerModalComponent extends BaseAngularComponent
1328
1548
  </mj-dialog>
1329
1549
  }
1330
1550
  `, styles: ["\n /* ===== Shell ===== */\n .picker-shell {\n display: grid;\n grid-template-columns: 1fr 300px;\n min-height: 460px;\n max-height: 70vh;\n gap: 0;\n margin: -8px -4px 0;\n }\n .pane { display:flex; flex-direction:column; min-height: 0; }\n .pane-left { border-right: 1px solid var(--mj-border-subtle); }\n .pane-right { background: var(--mj-bg-surface-card); }\n\n /* ===== Toolbar / search / chip filters ===== */\n .toolbar {\n display:flex; gap: 8px; padding: 10px 12px;\n border-bottom: 1px solid var(--mj-border-subtle);\n flex-wrap: wrap;\n }\n .search {\n flex: 1; min-width: 200px;\n display:flex; align-items:center; gap: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 8px;\n transition: all .15s ease;\n }\n .search:focus-within {\n background: var(--mj-bg-surface);\n border-color: var(--mj-border-focus);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 18%, transparent);\n }\n .search i { color: var(--mj-text-muted); font-size: 13px; }\n .search input {\n flex: 1; border: 0; outline: 0; background: transparent;\n font-size: 13.5px; color: var(--mj-text-primary);\n min-width: 0;\n }\n .search input::placeholder { color: var(--mj-text-disabled); }\n .search-clear {\n background: transparent; border: 0; cursor: pointer;\n color: var(--mj-text-muted); padding: 2px 4px; border-radius: 4px;\n }\n .search-clear:hover { color: var(--mj-text-primary); background: var(--mj-bg-surface-hover); }\n\n .chip-btn {\n display:inline-flex; align-items:center; gap: 6px;\n padding: 7px 11px; border-radius: 8px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 12.5px; font-weight: 600; cursor: pointer;\n transition: all .15s ease;\n }\n .chip-btn:hover:not(:disabled) { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n .chip-btn.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n .chip-btn:disabled { opacity: .55; cursor: not-allowed; }\n\n /* ===== Tree ===== */\n .tree-wrap { flex: 1; overflow-y: auto; padding: 8px 8px 16px; }\n .tree { display:flex; flex-direction: column; gap: 1px; }\n .row {\n display:flex; align-items:center; gap: 10px;\n padding: 7px 12px; border-radius: 8px; cursor: pointer;\n user-select: none;\n border: 1px solid transparent;\n background: transparent;\n text-align: left;\n transition: background .12s ease;\n min-height: 36px;\n }\n .row:hover { background: var(--mj-bg-surface-hover); }\n .row.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 9%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n .row.already { cursor: default; }\n .row.already:hover { background: transparent; }\n .row.already .row-title { color: var(--mj-text-secondary); }\n\n .caret {\n width: 16px; flex-shrink: 0; text-align: center;\n color: var(--mj-text-muted); font-size: 10px;\n cursor: pointer;\n }\n .caret:hover { color: var(--mj-text-primary); }\n\n .check {\n width: 18px; height: 18px; border-radius: 5px;\n border: 1.5px solid var(--mj-border-strong);\n background: var(--mj-bg-surface);\n display:flex; align-items:center; justify-content:center;\n color: transparent; font-size: 10px; flex-shrink: 0;\n transition: all .12s ease;\n }\n .check.checked {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: #fff;\n }\n .check.locked {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n color: #fff;\n }\n .check.dashed {\n border-style: dashed;\n color: var(--mj-text-muted);\n }\n\n .folder-icon { font-size: 14px; flex-shrink: 0; }\n\n .row-title {\n flex: 1; font-size: 13.5px; font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .row-ancestry {\n font-weight: 500; color: var(--mj-text-muted); font-size: 12px;\n margin-left: 2px;\n }\n .row-tag {\n font-size: 11px; font-weight: 600; padding: 2px 8px;\n border-radius: 999px; flex-shrink: 0;\n }\n .row-tag.success {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 35%, transparent);\n }\n\n .create-row {\n width: 100%;\n border: 1.5px dashed var(--mj-border-strong);\n color: var(--mj-text-secondary);\n margin-top: 8px;\n background: transparent;\n }\n .create-row .row-title { color: var(--mj-text-secondary); font-weight: 600; }\n .create-row:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n }\n .create-row:hover .row-title { color: var(--mj-brand-primary); }\n\n .create-form-row {\n margin-top: 8px;\n border: 1.5px solid var(--mj-border-focus);\n background: var(--mj-bg-surface);\n cursor: default;\n gap: 8px;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n }\n .create-input {\n flex: 1; min-width: 0;\n padding: 7px 10px;\n font-size: 13.5px; color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n border: 1.5px solid var(--mj-border-strong);\n border-radius: 6px;\n outline: 0;\n transition: all .12s ease;\n }\n .create-input::placeholder {\n color: var(--mj-text-muted);\n }\n .create-input:focus {\n border-color: var(--mj-border-focus);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n }\n\n /* ===== State blocks ===== */\n .state-block {\n display:flex; flex-direction:column; align-items:center; justify-content:center;\n padding: 48px 24px; gap: 8px; color: var(--mj-text-muted);\n text-align: center;\n }\n .state-block i { font-size: 28px; opacity: .6; }\n .state-block.error { color: var(--mj-status-error-text); }\n .state-block .hint { font-size: 12.5px; color: var(--mj-text-disabled); margin: 0; }\n .state-block .link-btn {\n background: transparent; border: 0; color: var(--mj-text-link);\n font-weight: 600; cursor: pointer; font-size: 13px; padding: 6px 12px;\n }\n .state-block .link-btn:hover { color: var(--mj-text-link-hover); text-decoration: underline; }\n .state-block p { margin: 0; font-size: 13.5px; }\n /* Buttons inside state blocks: keep their icons at button scale, not the 28px empty-state glyph size */\n .state-block button i { font-size: inherit; opacity: 1; }\n .empty-create-form {\n display: flex; flex-direction: column; gap: 8px;\n width: 100%; max-width: 280px; margin-top: 4px;\n }\n .empty-create-actions { display: flex; gap: 8px; justify-content: center; }\n\n /* ===== Right pane ===== */\n .preview-block { padding: 16px 18px; border-bottom: 1px solid var(--mj-border-subtle); }\n .block-label {\n font-size: 11px; text-transform: uppercase; letter-spacing: .08em;\n font-weight: 700; color: var(--mj-text-muted); margin-bottom: 8px;\n display:flex; justify-content:space-between; align-items:center;\n }\n .block-count {\n color: var(--mj-brand-primary); font-size: 12px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n padding: 2px 8px; border-radius: 999px;\n }\n .preview-card {\n display:flex; gap: 12px; align-items:center;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-radius: 10px; padding: 12px;\n box-shadow: 0 1px 2px rgba(15,23,42,.04);\n }\n .preview-thumb {\n width: 38px; height: 38px; border-radius: 9px; flex-shrink: 0;\n background: linear-gradient(135deg, var(--mj-color-accent-400), var(--mj-brand-primary));\n color: #fff; display:flex; align-items:center; justify-content:center;\n font-size: 14px;\n }\n .preview-meta { flex: 1; min-width: 0; display:flex; flex-direction: column; gap: 4px; }\n .preview-name {\n font-weight: 700; font-size: 13.5px; color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .badge {\n display:inline-flex; align-items:center; gap: 4px;\n padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600;\n width: fit-content;\n }\n .badge.neutral {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n }\n\n .chips-block { flex: 1; min-height: 0; display:flex; flex-direction: column;\n padding: 16px 18px 8px; overflow-y: auto; }\n .chips { display:flex; flex-direction: column; gap: 6px; }\n .chip {\n display:flex; align-items:center; gap: 10px; padding: 8px 10px;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n }\n .chip-body { flex: 1; min-width: 0; }\n .chip-name {\n font-weight: 600; font-size: 13px; color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .chip-error {\n font-size: 11.5px; color: var(--mj-status-error-text); margin-top: 2px;\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .chip-action {\n width: 24px; height: 24px; border-radius: 6px;\n background: transparent; border: 0; cursor: pointer;\n color: var(--mj-text-muted); font-size: 11px;\n display:flex; align-items:center; justify-content:center;\n }\n .chip-action:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover); color: var(--mj-text-primary);\n }\n .chip-action:disabled { opacity: .4; cursor: not-allowed; }\n .chip-status {\n width: 20px; flex-shrink: 0; text-align: center; font-size: 12px;\n }\n .chip.result.success { border-color: color-mix(in srgb, var(--mj-status-success) 35%, transparent);\n background: var(--mj-status-success-bg); }\n .chip.result.success .chip-status { color: var(--mj-status-success-text); }\n .chip.result.error { border-color: color-mix(in srgb, var(--mj-status-error) 35%, transparent);\n background: var(--mj-status-error-bg); }\n .chip.result.error .chip-status { color: var(--mj-status-error-text); }\n .chip.result.saving .chip-status { color: var(--mj-brand-primary); }\n\n .chips-empty {\n flex: 1; display:flex; flex-direction: column; align-items: center; justify-content: center;\n padding: 32px 16px; text-align: center; color: var(--mj-text-muted);\n border: 1.5px dashed var(--mj-border-default); border-radius: 10px;\n }\n .chips-empty i { font-size: 22px; margin-bottom: 8px; opacity: .55; }\n .chips-empty p { margin: 0; font-size: 12.5px; }\n\n .footnote {\n padding: 12px 18px;\n font-size: 11.5px; color: var(--mj-text-muted);\n display:flex; align-items:center; gap: 6px;\n border-top: 1px solid var(--mj-border-subtle);\n }\n .footnote i { font-size: 11px; }\n\n /* Tighten dialog content padding so panes meet edges cleanly */\n :host ::ng-deep mj-dialog .k-window-content,\n :host ::ng-deep mj-dialog .mj-dialog-content {\n padding: 0 !important;\n }\n "] }]
1331
- }], () => [{ type: i1.ToastService }, { type: i2.CollectionPermissionService }, { type: i0.ChangeDetectorRef }], { isOpen: [{
1551
+ }], () => [{ type: i1.ToastService }, { type: i2.CollectionPermissionService }, { type: i0.ChangeDetectorRef }], { IsOpen: [{
1552
+ type: Input
1553
+ }], isOpen: [{
1554
+ type: Input
1555
+ }], EnvironmentId: [{
1332
1556
  type: Input
1333
1557
  }], environmentId: [{
1334
1558
  type: Input
1559
+ }], CurrentUser: [{
1560
+ type: Input
1335
1561
  }], currentUser: [{
1336
1562
  type: Input
1563
+ }], ExcludeCollectionIds: [{
1564
+ type: Input
1337
1565
  }], excludeCollectionIds: [{
1338
1566
  type: Input
1567
+ }], ArtifactVersionId: [{
1568
+ type: Input
1339
1569
  }], artifactVersionId: [{
1340
1570
  type: Input
1571
+ }], ArtifactName: [{
1572
+ type: Input
1341
1573
  }], artifactName: [{
1342
1574
  type: Input
1575
+ }], ArtifactVersionNumber: [{
1576
+ type: Input
1343
1577
  }], artifactVersionNumber: [{
1344
1578
  type: Input
1345
1579
  }], completed: [{
1346
1580
  type: Output
1347
1581
  }], cancelled: [{
1348
1582
  type: Output
1349
- }], searchInputRef: [{
1583
+ }], SearchInputRef: [{
1350
1584
  type: ViewChild,
1351
1585
  args: ['searchInput']
1352
- }], newNameInputRef: [{
1586
+ }], NewNameInputRef: [{
1353
1587
  type: ViewChild,
1354
1588
  args: ['newNameInput']
1355
1589
  }] }); })();