@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.7

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 (293) hide show
  1. package/README.md +35 -0
  2. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
  3. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  4. package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
  6. package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
  7. package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
  8. package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
  9. package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
  10. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
  11. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
  13. package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
  14. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
  15. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  16. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +21 -13
  17. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  18. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
  19. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
  20. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
  21. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
  22. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
  23. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
  24. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
  25. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
  26. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
  27. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
  28. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
  29. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
  30. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  31. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +210 -57
  32. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  33. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
  34. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
  35. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
  36. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
  37. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  38. package/dist/AI/components/execution-monitoring.component.js +28 -16
  39. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  40. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
  41. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  42. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +32 -8
  43. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  44. package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
  45. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  46. package/dist/AI/components/tags/tags-resource.component.js +18 -9
  47. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  48. package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
  49. package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
  50. package/dist/AI/components/vectors/sensitive-fields.js +39 -14
  51. package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
  52. package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
  53. package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
  54. package/dist/AI/components/vectors/vector-document-rules.js +14 -0
  55. package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
  56. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
  57. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  58. package/dist/AI/components/vectors/vector-management-resource.component.js +134 -51
  59. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  60. package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
  61. package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
  62. package/dist/AI/components/vectors/vector-store-selection.js +57 -0
  63. package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
  64. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  65. package/dist/AI/services/ai-instrumentation.service.js +4 -2
  66. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  67. package/dist/Actions/action-result-code.d.ts +80 -0
  68. package/dist/Actions/action-result-code.d.ts.map +1 -0
  69. package/dist/Actions/action-result-code.js +163 -0
  70. package/dist/Actions/action-result-code.js.map +1 -0
  71. package/dist/Actions/components/actions-overview.component.d.ts +8 -0
  72. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  73. package/dist/Actions/components/actions-overview.component.js +12 -9
  74. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  75. package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
  76. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  77. package/dist/Actions/components/execution-monitoring.component.js +65 -42
  78. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  79. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/action-card.component.js +5 -4
  81. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  82. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +198 -0
  83. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
  84. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +289 -0
  85. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
  86. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
  87. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
  88. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
  89. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
  90. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
  91. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
  92. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
  93. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
  94. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
  95. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
  96. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
  97. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
  98. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
  99. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
  100. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
  101. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
  102. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
  103. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
  104. package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
  105. package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
  106. package/dist/ChiefOfStaff/index.d.ts +6 -0
  107. package/dist/ChiefOfStaff/index.d.ts.map +1 -0
  108. package/dist/ChiefOfStaff/index.js +6 -0
  109. package/dist/ChiefOfStaff/index.js.map +1 -0
  110. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  111. package/dist/Communication/communication-logs-resource.component.js +2 -1
  112. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  113. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  114. package/dist/Communication/communication-monitor-resource.component.js +26 -21
  115. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  116. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  117. package/dist/Communication/communication-runs-resource.component.js +14 -13
  118. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  119. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  120. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  121. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  122. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  123. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
  124. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  125. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  126. package/dist/ComponentStudio/services/component-version.service.js +3 -0
  127. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  128. package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
  129. package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
  130. package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
  131. package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
  132. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +45 -2
  133. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  134. package/dist/DataExplorer/data-explorer-dashboard.component.js +178 -55
  135. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  136. package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
  137. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  138. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  139. package/dist/DevTools/graphql-console.component.js +2 -2
  140. package/dist/DevTools/lazy-module-status.component.js +2 -2
  141. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
  142. package/dist/FormBuilder/form-builder-resource.component.js +5 -0
  143. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
  144. package/dist/Integration/components/connections/connections.component.js +2 -2
  145. package/dist/Integration/services/integration-data.service.d.ts +1 -1
  146. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  147. package/dist/Integration/services/integration-data.service.js +4 -3
  148. package/dist/Integration/services/integration-data.service.js.map +1 -1
  149. package/dist/Lists/components/lists-browse-resource.component.js +1 -1
  150. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  151. package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
  152. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  153. package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
  154. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  155. package/dist/LoginStudio/login-studio-resource.component.js +111 -77
  156. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  157. package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
  158. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  159. package/dist/MCP/mcp-dashboard.component.js +118 -65
  160. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  161. package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
  162. package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
  163. package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
  164. package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
  165. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
  166. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  167. package/dist/PredictiveStudio/components/ps-experiments.component.js +257 -521
  168. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  169. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
  170. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
  171. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +124 -251
  172. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
  173. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
  174. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
  175. package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
  176. package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
  177. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
  178. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  179. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +338 -326
  180. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  181. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
  182. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
  183. package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
  184. package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
  185. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
  186. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  187. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +52 -2
  188. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  189. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
  190. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
  191. package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
  192. package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
  193. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
  194. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
  195. package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
  196. package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
  197. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
  198. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  199. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +186 -103
  200. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  201. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
  202. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
  203. package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
  204. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  205. package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
  206. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  207. package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
  208. package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
  209. package/dist/UserRoutines/user-routines-resource.component.js +22 -4
  210. package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
  211. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  212. package/dist/VersionHistory/components/diff-resource.component.js +1 -0
  213. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  214. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
  215. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
  216. package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
  217. package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
  218. package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
  219. package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
  220. package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
  221. package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
  222. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
  223. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
  224. package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
  225. package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
  226. package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
  227. package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
  228. package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
  229. package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
  230. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
  231. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
  232. package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
  233. package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
  234. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
  235. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
  236. package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
  237. package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
  238. package/dist/VideoStudio/index.d.ts +12 -0
  239. package/dist/VideoStudio/index.d.ts.map +1 -0
  240. package/dist/VideoStudio/index.js +12 -0
  241. package/dist/VideoStudio/index.js.map +1 -0
  242. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
  243. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
  244. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
  245. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
  246. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
  247. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
  248. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
  249. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
  250. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
  251. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
  252. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
  253. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
  254. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
  255. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
  256. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
  257. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
  258. package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
  259. package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
  260. package/dist/VideoStudio/video-studio-agent-context.js +992 -0
  261. package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
  262. package/dist/ai-dashboards.module.d.ts +25 -21
  263. package/dist/ai-dashboards.module.d.ts.map +1 -1
  264. package/dist/ai-dashboards.module.js +25 -3
  265. package/dist/ai-dashboards.module.js.map +1 -1
  266. package/dist/module.d.ts +13 -12
  267. package/dist/module.d.ts.map +1 -1
  268. package/dist/module.js +7 -0
  269. package/dist/module.js.map +1 -1
  270. package/dist/public-api.d.ts +8 -0
  271. package/dist/public-api.d.ts.map +1 -1
  272. package/dist/public-api.js +10 -0
  273. package/dist/public-api.js.map +1 -1
  274. package/dist/shared/action-scheduled-job.d.ts.map +1 -1
  275. package/dist/shared/action-scheduled-job.js +2 -0
  276. package/dist/shared/action-scheduled-job.js.map +1 -1
  277. package/dist/video-studio-dashboards.module.d.ts +40 -0
  278. package/dist/video-studio-dashboards.module.d.ts.map +1 -0
  279. package/dist/video-studio-dashboards.module.js +159 -0
  280. package/dist/video-studio-dashboards.module.js.map +1 -0
  281. package/package.json +77 -71
  282. package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
  283. package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
  284. package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
  285. package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
  286. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
  287. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
  288. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
  289. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
  290. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
  291. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
  292. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
  293. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
@@ -172,6 +172,7 @@ export declare class ModelPromptPriorityMatrixComponent extends BaseAngularCompo
172
172
  ngOnInit(): void;
173
173
  ngOnDestroy(): void;
174
174
  loadData(): Promise<void>;
175
+ private loadMatrixEntities;
175
176
  private loadPrompts;
176
177
  private loadModels;
177
178
  private loadAssociations;
@@ -1 +1 @@
1
- {"version":3,"file":"model-prompt-priority-matrix.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-prompt-priority-matrix.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { RunView, LogError, LogStatus } from '@memberjunction/core';
3
3
  import { Subject, BehaviorSubject } from 'rxjs';
4
+ import { AIEngineBase } from '@memberjunction/ai-engine-base';
4
5
  import { IndexByUUID, NormalizeUUID, UUIDsEqual } from '@memberjunction/global';
5
6
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
6
7
  import * as i0 from "@angular/core";
@@ -638,11 +639,7 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
638
639
  this.isLoading = true;
639
640
  this.error = null;
640
641
  this.LoadingMessage = 'Loading prompts, models, and associations...';
641
- const [prompts, models, associations] = await Promise.all([
642
- this.loadPrompts(),
643
- this.loadModels(),
644
- this.loadAssociations()
645
- ]);
642
+ const [prompts, models, associations] = await this.loadMatrixEntities();
646
643
  this.Prompts = this.SelectedPrompts.length > 0 ? this.SelectedPrompts : prompts;
647
644
  this.Models = this.SelectedModels.length > 0 ? this.SelectedModels : models;
648
645
  this.buildAssociations(associations);
@@ -657,6 +654,33 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
657
654
  this.isLoading = false;
658
655
  }
659
656
  }
657
+ async loadMatrixEntities() {
658
+ await AIEngineBase.Instance.Config(false);
659
+ if (AIEngineBase.Instance.Prompts.length > 0 || AIEngineBase.Instance.Models.length > 0) {
660
+ const prompts = this.SelectedPrompts.length > 0
661
+ ? this.SelectedPrompts
662
+ : AIEngineBase.Instance.Prompts
663
+ .filter(p => p.Status === 'Active')
664
+ .slice()
665
+ .sort((a, b) => (a.Name || '').localeCompare(b.Name || ''));
666
+ const models = this.SelectedModels.length > 0
667
+ ? this.SelectedModels
668
+ : AIEngineBase.Instance.Models
669
+ .filter(m => m.IsActive)
670
+ .slice()
671
+ .sort((a, b) => (a.Name || '').localeCompare(b.Name || ''));
672
+ const associations = AIEngineBase.Instance.PromptModels
673
+ .slice()
674
+ .sort((a, b) => (a.Priority || 0) - (b.Priority || 0));
675
+ return [prompts, models, associations];
676
+ }
677
+ const [prompts, models, associations] = await Promise.all([
678
+ this.loadPrompts(),
679
+ this.loadModels(),
680
+ this.loadAssociations()
681
+ ]);
682
+ return [prompts, models, associations];
683
+ }
660
684
  async loadPrompts() {
661
685
  const rv = RunView.FromMetadataProvider(this.ProviderToUse);
662
686
  const result = await rv.RunView({
@@ -1214,11 +1238,11 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
1214
1238
  i0.ɵɵconditional(ctx.isLoading ? 33 : 34);
1215
1239
  i0.ɵɵadvance(2);
1216
1240
  i0.ɵɵconditional(ctx.error ? 35 : -1);
1217
- } }, dependencies: [i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.CheckboxControlValueAccessor, i3.SelectControlValueAccessor, i3.RadioControlValueAccessor, i3.NgControlStatus, i3.MinValidator, i3.MaxValidator, i3.NgModel, i4.LoadingComponent, i2.MJButtonDirective, i2.MJAlertComponent], styles: [".model-prompt-priority-matrix[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 100px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-info[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] {\n text-align: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] .loading-message[_ngcontent-%COMP%] {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.editing[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] .empty-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] .blocked-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-1[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-2[_ngcontent-%COMP%] {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-3[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-4[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-5[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.inactive[_ngcontent-%COMP%] {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.new[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.modified[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.new[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.modified[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .performance-overlay[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%] {\n margin: 0;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%]:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.inactive[_ngcontent-%COMP%] {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.new[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.modified[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .prompt-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .model-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-secondary[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.new[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.modified[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .error-container[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n}"] });
1241
+ } }, dependencies: [i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.CheckboxControlValueAccessor, i3.SelectControlValueAccessor, i3.RadioControlValueAccessor, i3.NgControlStatus, i3.MinValidator, i3.MaxValidator, i3.NgModel, i4.LoadingComponent, i2.MJButtonDirective, i2.MJAlertComponent], styles: [".model-prompt-priority-matrix[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 100px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-info[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] {\n text-align: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] .loading-message[_ngcontent-%COMP%] {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.editing[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] .empty-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] .blocked-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-1[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-2[_ngcontent-%COMP%] {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-3[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-4[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-5[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.inactive[_ngcontent-%COMP%] {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.new[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.modified[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.new[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.modified[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .performance-overlay[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%] {\n margin: 0;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%]:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.inactive[_ngcontent-%COMP%] {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.new[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.modified[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .prompt-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .model-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-secondary[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.new[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.modified[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .error-container[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n}"] });
1218
1242
  }
1219
1243
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModelPromptPriorityMatrixComponent, [{
1220
1244
  type: Component,
1221
- args: [{ standalone: false, selector: 'app-model-prompt-priority-matrix', template: "<div class=\"model-prompt-priority-matrix\">\n <!-- Header toolbar -->\n <div class=\"matrix-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Model-Prompt Priority Matrix\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group\" role=\"group\">\n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"matrixView\" \n value=\"matrix\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"matrixView\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Matrix\n </label>\n \n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"listView\" \n value=\"list\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"listView\">\n <i class=\"fa-solid fa-list\"></i>\n List\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"matrix-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-link text-primary\"></i>\n {{ getAssociationCount() }} associations\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-star text-warning\"></i>\n {{ getAveragePriority() }} avg priority\n </span>\n @if (hasUnsavedChanges()) {\n <span class=\"stat-item text-warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Unsaved changes\n </span>\n }\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n @if (selectedCells.size > 0) {\n <div class=\"bulk-actions\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n [class.active]=\"bulkEditMode\"\n (click)=\"bulkEditMode = !bulkEditMode\"\n title=\"Bulk edit selected cells\">\n <i class=\"fa-solid fa-edit\"></i>\n Edit ({{ selectedCells.size }})\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"bulkRemoveSelectedCells()\"\n title=\"Remove selected associations\">\n <i class=\"fa-solid fa-trash\"></i>\n Remove\n </button>\n </div>\n }\n \n <div class=\"action-buttons\">\n @if (hasUnsavedChanges()) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"discardChanges()\"\n title=\"Discard changes\">\n <i class=\"fa-solid fa-undo\"></i>\n Discard\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-success\"\n (click)=\"saveChanges()\"\n [disabled]=\"isLoading\"\n title=\"Save changes\">\n <i class=\"fa-solid fa-save\"></i>\n Save\n </button>\n }\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-info\"\n (click)=\"exportMatrix()\"\n title=\"Export matrix\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\n \n <!-- Bulk edit panel -->\n @if (bulkEditMode && selectedCells.size > 0) {\n <div class=\"bulk-edit-panel\">\n <div class=\"bulk-edit-controls\">\n <div class=\"form-group\">\n <label for=\"bulkPriority\" class=\"form-label\">Priority:</label>\n <input \n type=\"number\" \n id=\"bulkPriority\"\n class=\"form-control form-control-sm\"\n [(ngModel)]=\"bulkEditPriority\"\n min=\"1\"\n max=\"10\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"bulkStatus\" class=\"form-label\">Status:</label>\n <select \n id=\"bulkStatus\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"bulkEditStatus\">\n <option value=\"Active\">Active</option>\n <option value=\"Inactive\">Inactive</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-primary\"\n (click)=\"bulkUpdateSelectedCells()\"\n title=\"Apply changes to selected cells\">\n <i class=\"fa-solid fa-check\"></i>\n Apply\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"bulkEditMode = false\"\n title=\"Cancel bulk edit\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n </div>\n </div>\n \n <div class=\"bulk-edit-info\">\n <small class=\"text-muted\">\n Editing {{ selectedCells.size }} selected cell(s). \n Use Ctrl+Click for multi-select, Shift+Click for range select.\n </small>\n </div>\n </div>\n }\n \n <!-- Loading state -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n } @else {\n <!-- Matrix view -->\n @if (viewMode === 'matrix') {\n <div class=\"matrix-container\">\n <div class=\"matrix-scroll\">\n <table class=\"matrix-table\">\n <!-- Header row with model names -->\n <thead>\n <tr>\n <th class=\"prompt-header\">Prompts \\\\ Models</th>\n @for (model of models; track model.ID) {\n <th class=\"model-header\" [title]=\"model.Description || model.Name\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ model.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getModelAssociationCount(model.ID) }}</small>\n </div>\n </div>\n </th>\n }\n </tr>\n </thead>\n \n <!-- Matrix body -->\n <tbody>\n @for (prompt of prompts; track prompt.ID; let promptIndex = $index) {\n <tr class=\"matrix-row\">\n <th class=\"prompt-header\" [title]=\"prompt.Description || prompt.Name\" (click)=\"selectPrompt(prompt)\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ prompt.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getPromptAssociationCount(prompt.ID) }}</small>\n </div>\n </div>\n </th>\n \n @for (model of models; track model.ID; let modelIndex = $index) {\n <td \n [class]=\"getCellClass(matrix[promptIndex][modelIndex])\"\n (click)=\"onCellClick(promptIndex, modelIndex, $event)\"\n (dblclick)=\"onCellDoubleClick(promptIndex, modelIndex)\"\n [title]=\"getCellTooltip(matrix[promptIndex][modelIndex])\">\n \n @if (matrix[promptIndex][modelIndex].association; as assoc) {\n <div class=\"cell-content\">\n <div class=\"priority-badge priority-{{ assoc.priority }}\">\n {{ assoc.priority }}\n </div>\n \n @if (assoc.status === 'Inactive') {\n <div class=\"status-indicator inactive\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n \n @if (assoc.isNew) {\n <div class=\"change-indicator new\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else if (assoc.isModified) {\n <div class=\"change-indicator modified\">\n <i class=\"fa-solid fa-edit\"></i>\n </div>\n }\n \n @if (showPerformanceOverlay && performanceData[assoc.promptId + '_' + assoc.modelId]) {\n <div class=\"performance-overlay\">\n <small>{{ performanceData[assoc.promptId + '_' + assoc.modelId].avgResponseTime }}ms</small>\n </div>\n }\n </div>\n } @else {\n <div class=\"cell-content empty\">\n @if (matrix[promptIndex][modelIndex].canAssign) {\n <div class=\"empty-cell-indicator\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else {\n <div class=\"blocked-cell-indicator\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n </div>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n \n <!-- List view -->\n @if (viewMode === 'list') {\n <div class=\"list-container\">\n <div class=\"list-header\">\n <div class=\"list-controls\">\n <div class=\"sort-controls\">\n <label class=\"form-label\">Sort by:</label>\n <select \n class=\"form-select form-select-sm\"\n [(ngModel)]=\"sortBy\"\n (ngModelChange)=\"sortAssociations()\">\n <option value=\"prompt\">Prompt Name</option>\n <option value=\"model\">Model Name</option>\n <option value=\"priority\">Priority</option>\n </select>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"toggleSortDirection()\"\n [title]=\"'Sort ' + (sortDirection === 'asc' ? 'descending' : 'ascending')\">\n <i class=\"fa-solid\" [class.fa-sort-up]=\"sortDirection === 'asc'\" [class.fa-sort-down]=\"sortDirection === 'desc'\"></i>\n </button>\n </div>\n \n <div class=\"filter-controls\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n id=\"showInactive\"\n [(ngModel)]=\"showInactiveAssociations\">\n <label class=\"form-check-label\" for=\"showInactive\">\n Show inactive\n </label>\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"associations-list\">\n @for (association of associations; track association.promptId + '_' + association.modelId) {\n @if (showInactiveAssociations || association.status === 'Active') {\n <div class=\"association-item\" \n [class.inactive]=\"association.status === 'Inactive'\"\n [class.new]=\"association.isNew\"\n [class.modified]=\"association.isModified\">\n \n <div class=\"association-header\">\n <div class=\"association-names\">\n <strong class=\"prompt-name\">{{ association.promptName }}</strong>\n <i class=\"fa-solid fa-arrow-right text-muted\"></i>\n <strong class=\"model-name\">{{ association.modelName }}</strong>\n </div>\n \n <div class=\"association-actions\">\n @if (!readonly) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n title=\"Edit association\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeAssociation(association.promptId, association.modelId)\"\n title=\"Remove association\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"association-details\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Priority:</span>\n <span class=\"priority-badge priority-{{ association.priority }}\">\n {{ association.priority }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Status:</span>\n <span class=\"status-badge\" [class.badge-success]=\"association.status === 'Active'\" [class.badge-secondary]=\"association.status === 'Inactive'\">\n {{ association.status }}\n </span>\n </div>\n \n @if (association.isNew) {\n <div class=\"detail-item\">\n <span class=\"change-badge new\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </span>\n </div>\n } @else if (association.isModified) {\n <div class=\"detail-item\">\n <span class=\"change-badge modified\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </span>\n </div>\n }\n </div>\n </div>\n }\n }\n \n @if (associations.length === 0) {\n <div class=\"no-associations-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted mb-0\">No prompt-model associations found. Click on matrix cells to create associations.</p>\n </div>\n }\n </div>\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <mj-alert Variant=\"error\">\n {{ error }}\n <button mjButton variant=\"danger\" size=\"sm\" actions (click)=\"loadData()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </mj-alert>\n </div>\n }\n</div>", styles: [".model-prompt-priority-matrix {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title i {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item i {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions .btn,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons .btn {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-label {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-control,\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-select {\n min-width: 100px;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-info {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .loading-container {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content {\n text-align: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content .loading-message {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-name,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-name {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-stats,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-stats {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.editing {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association .empty-cell-indicator {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign .blocked-cell-indicator {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-1 {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-2 {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-3 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-4 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-5 {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.inactive {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.new {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.modified {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator.inactive {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.new {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.modified {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .performance-overlay {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix .list-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix .list-container .list-header {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-label,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-label {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-select,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-select {\n min-width: 120px;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-check,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-check {\n margin: 0;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.inactive {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.new {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.modified {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .prompt-name,\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .model-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names i {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .detail-label {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-success {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-secondary {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.new {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.modified {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message p {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix .error-container {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix .matrix-toolbar {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix .list-container {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .list-header .list-controls {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n"] }]
1245
+ args: [{ standalone: false, selector: 'app-model-prompt-priority-matrix', template: "<div class=\"model-prompt-priority-matrix\">\n <!-- Header toolbar -->\n <div class=\"matrix-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Model-Prompt Priority Matrix\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group\" role=\"group\">\n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"matrixView\" \n value=\"matrix\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"matrixView\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Matrix\n </label>\n \n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"listView\" \n value=\"list\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"listView\">\n <i class=\"fa-solid fa-list\"></i>\n List\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"matrix-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-link text-primary\"></i>\n {{ getAssociationCount() }} associations\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-star text-warning\"></i>\n {{ getAveragePriority() }} avg priority\n </span>\n @if (hasUnsavedChanges()) {\n <span class=\"stat-item text-warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Unsaved changes\n </span>\n }\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n @if (selectedCells.size > 0) {\n <div class=\"bulk-actions\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n [class.active]=\"bulkEditMode\"\n (click)=\"bulkEditMode = !bulkEditMode\"\n title=\"Bulk edit selected cells\">\n <i class=\"fa-solid fa-edit\"></i>\n Edit ({{ selectedCells.size }})\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"bulkRemoveSelectedCells()\"\n title=\"Remove selected associations\">\n <i class=\"fa-solid fa-trash\"></i>\n Remove\n </button>\n </div>\n }\n \n <div class=\"action-buttons\">\n @if (hasUnsavedChanges()) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"discardChanges()\"\n title=\"Discard changes\">\n <i class=\"fa-solid fa-undo\"></i>\n Discard\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-success\"\n (click)=\"saveChanges()\"\n [disabled]=\"isLoading\"\n title=\"Save changes\">\n <i class=\"fa-solid fa-save\"></i>\n Save\n </button>\n }\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-info\"\n (click)=\"exportMatrix()\"\n title=\"Export matrix\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\n \n <!-- Bulk edit panel -->\n @if (bulkEditMode && selectedCells.size > 0) {\n <div class=\"bulk-edit-panel\">\n <div class=\"bulk-edit-controls\">\n <div class=\"form-group\">\n <label for=\"bulkPriority\" class=\"form-label\">Priority:</label>\n <input \n type=\"number\" \n id=\"bulkPriority\"\n class=\"form-control form-control-sm\"\n [(ngModel)]=\"bulkEditPriority\"\n min=\"1\"\n max=\"10\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"bulkStatus\" class=\"form-label\">Status:</label>\n <select \n id=\"bulkStatus\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"bulkEditStatus\">\n <option value=\"Active\">Active</option>\n <option value=\"Inactive\">Inactive</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-primary\"\n (click)=\"bulkUpdateSelectedCells()\"\n title=\"Apply changes to selected cells\">\n <i class=\"fa-solid fa-check\"></i>\n Apply\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"bulkEditMode = false\"\n title=\"Cancel bulk edit\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n </div>\n </div>\n \n <div class=\"bulk-edit-info\">\n <small class=\"text-muted\">\n Editing {{ selectedCells.size }} selected cell(s). \n Use Ctrl+Click for multi-select, Shift+Click for range select.\n </small>\n </div>\n </div>\n }\n \n <!-- Loading state -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n } @else {\n <!-- Matrix view -->\n @if (viewMode === 'matrix') {\n <div class=\"matrix-container\">\n <div class=\"matrix-scroll\">\n <table class=\"matrix-table\">\n <!-- Header row with model names -->\n <thead>\n <tr>\n <th class=\"prompt-header\">Prompts \\\\ Models</th>\n @for (model of models; track model.ID) {\n <th class=\"model-header\" [title]=\"model.Description || model.Name\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ model.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getModelAssociationCount(model.ID) }}</small>\n </div>\n </div>\n </th>\n }\n </tr>\n </thead>\n \n <!-- Matrix body -->\n <tbody>\n @for (prompt of prompts; track prompt.ID; let promptIndex = $index) {\n <tr class=\"matrix-row\">\n <th class=\"prompt-header\" [title]=\"prompt.Description || prompt.Name\" (click)=\"selectPrompt(prompt)\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ prompt.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getPromptAssociationCount(prompt.ID) }}</small>\n </div>\n </div>\n </th>\n \n @for (model of models; track model.ID; let modelIndex = $index) {\n <td \n [class]=\"getCellClass(matrix[promptIndex][modelIndex])\"\n (click)=\"onCellClick(promptIndex, modelIndex, $event)\"\n (dblclick)=\"onCellDoubleClick(promptIndex, modelIndex)\"\n [title]=\"getCellTooltip(matrix[promptIndex][modelIndex])\">\n \n @if (matrix[promptIndex][modelIndex].association; as assoc) {\n <div class=\"cell-content\">\n <div class=\"priority-badge priority-{{ assoc.priority }}\">\n {{ assoc.priority }}\n </div>\n \n @if (assoc.status === 'Inactive') {\n <div class=\"status-indicator inactive\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n \n @if (assoc.isNew) {\n <div class=\"change-indicator new\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else if (assoc.isModified) {\n <div class=\"change-indicator modified\">\n <i class=\"fa-solid fa-edit\"></i>\n </div>\n }\n \n @if (showPerformanceOverlay && performanceData[assoc.promptId + '_' + assoc.modelId]) {\n <div class=\"performance-overlay\">\n <small>{{ performanceData[assoc.promptId + '_' + assoc.modelId].avgResponseTime }}ms</small>\n </div>\n }\n </div>\n } @else {\n <div class=\"cell-content empty\">\n @if (matrix[promptIndex][modelIndex].canAssign) {\n <div class=\"empty-cell-indicator\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else {\n <div class=\"blocked-cell-indicator\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n </div>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n \n <!-- List view -->\n @if (viewMode === 'list') {\n <div class=\"list-container\">\n <div class=\"list-header\">\n <div class=\"list-controls\">\n <div class=\"sort-controls\">\n <label class=\"form-label\">Sort by:</label>\n <select \n class=\"form-select form-select-sm\"\n [(ngModel)]=\"sortBy\"\n (ngModelChange)=\"sortAssociations()\">\n <option value=\"prompt\">Prompt Name</option>\n <option value=\"model\">Model Name</option>\n <option value=\"priority\">Priority</option>\n </select>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"toggleSortDirection()\"\n [title]=\"'Sort ' + (sortDirection === 'asc' ? 'descending' : 'ascending')\">\n <i class=\"fa-solid\" [class.fa-sort-up]=\"sortDirection === 'asc'\" [class.fa-sort-down]=\"sortDirection === 'desc'\"></i>\n </button>\n </div>\n \n <div class=\"filter-controls\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n id=\"showInactive\"\n [(ngModel)]=\"showInactiveAssociations\">\n <label class=\"form-check-label\" for=\"showInactive\">\n Show inactive\n </label>\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"associations-list\">\n @for (association of associations; track association.promptId + '_' + association.modelId) {\n @if (showInactiveAssociations || association.status === 'Active') {\n <div class=\"association-item\" \n [class.inactive]=\"association.status === 'Inactive'\"\n [class.new]=\"association.isNew\"\n [class.modified]=\"association.isModified\">\n \n <div class=\"association-header\">\n <div class=\"association-names\">\n <strong class=\"prompt-name\">{{ association.promptName }}</strong>\n <i class=\"fa-solid fa-arrow-right text-muted\"></i>\n <strong class=\"model-name\">{{ association.modelName }}</strong>\n </div>\n \n <div class=\"association-actions\">\n @if (!readonly) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n title=\"Edit association\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeAssociation(association.promptId, association.modelId)\"\n title=\"Remove association\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"association-details\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Priority:</span>\n <span class=\"priority-badge priority-{{ association.priority }}\">\n {{ association.priority }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Status:</span>\n <span class=\"status-badge\" [class.badge-success]=\"association.status === 'Active'\" [class.badge-secondary]=\"association.status === 'Inactive'\">\n {{ association.status }}\n </span>\n </div>\n \n @if (association.isNew) {\n <div class=\"detail-item\">\n <span class=\"change-badge new\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </span>\n </div>\n } @else if (association.isModified) {\n <div class=\"detail-item\">\n <span class=\"change-badge modified\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </span>\n </div>\n }\n </div>\n </div>\n }\n }\n \n @if (associations.length === 0) {\n <div class=\"no-associations-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted mb-0\">No prompt-model associations found. Click on matrix cells to create associations.</p>\n </div>\n }\n </div>\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <mj-alert Variant=\"error\">\n {{ error }}\n <button mjButton variant=\"danger\" size=\"sm\" actions (click)=\"loadData()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </mj-alert>\n </div>\n }\n</div>", styles: [".model-prompt-priority-matrix {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title i {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item i {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions .btn,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons .btn {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-label {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-control,\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-select {\n min-width: 100px;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-info {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .loading-container {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content {\n text-align: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content .loading-message {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-name,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-name {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-stats,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-stats {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.editing {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association .empty-cell-indicator {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign .blocked-cell-indicator {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-1 {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-2 {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-3 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-4 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-5 {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.inactive {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.new {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.modified {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator.inactive {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.new {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.modified {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .performance-overlay {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix .list-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix .list-container .list-header {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-label,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-label {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-select,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-select {\n min-width: 120px;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-check,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-check {\n margin: 0;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.inactive {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.new {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.modified {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .prompt-name,\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .model-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names i {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .detail-label {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-success {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-secondary {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.new {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.modified {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message p {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix .error-container {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix .matrix-toolbar {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix .list-container {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .list-header .list-controls {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n"] }]
1222
1246
  }], () => [{ type: i1.MJNotificationService }, { type: i2.MJConfirmService }], { SelectedPrompts: [{
1223
1247
  type: Input
1224
1248
  }], selectedPrompts: [{
@@ -1242,5 +1266,5 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
1242
1266
  }], promptSelected: [{
1243
1267
  type: Output
1244
1268
  }] }); })();
1245
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModelPromptPriorityMatrixComponent, { className: "ModelPromptPriorityMatrixComponent", filePath: "src/AI/components/prompts/model-prompt-priority-matrix.component.ts", lineNumber: 36 }); })();
1269
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModelPromptPriorityMatrixComponent, { className: "ModelPromptPriorityMatrixComponent", filePath: "src/AI/components/prompts/model-prompt-priority-matrix.component.ts", lineNumber: 37 }); })();
1246
1270
  //# sourceMappingURL=model-prompt-priority-matrix.component.js.map