@pega/cosmos-react-work 9.0.0-build.9.9 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/lib/components/AppAnnouncement/AppAnnouncement.d.ts +2 -1
  2. package/lib/components/AppAnnouncement/AppAnnouncement.d.ts.map +1 -1
  3. package/lib/components/AppAnnouncement/AppAnnouncement.js +36 -21
  4. package/lib/components/AppAnnouncement/AppAnnouncement.js.map +1 -1
  5. package/lib/components/Article/ArticleRating.d.ts +1 -1
  6. package/lib/components/Article/ArticleRating.d.ts.map +1 -1
  7. package/lib/components/ArticleList/AIArticleSummary.d.ts +3 -1
  8. package/lib/components/ArticleList/AIArticleSummary.d.ts.map +1 -1
  9. package/lib/components/ArticleList/ArticleBuddy.d.ts +1 -1
  10. package/lib/components/ArticleList/ArticleBuddy.d.ts.map +1 -1
  11. package/lib/components/ArticleList/ArticleBuddy.js +5 -1
  12. package/lib/components/ArticleList/ArticleBuddy.js.map +1 -1
  13. package/lib/components/ArticleList/ArticleBuddyList.d.ts +1 -1
  14. package/lib/components/ArticleList/ArticleBuddyList.d.ts.map +1 -1
  15. package/lib/components/ArticleList/ArticleBuddyResponse.d.ts +189 -3
  16. package/lib/components/ArticleList/ArticleBuddyResponse.d.ts.map +1 -1
  17. package/lib/components/ArticleList/ArticleBuddyResponse.js +1 -1
  18. package/lib/components/ArticleList/ArticleBuddyResponse.js.map +1 -1
  19. package/lib/components/ArticleList/ArticleFeedback.d.ts +3 -1
  20. package/lib/components/ArticleList/ArticleFeedback.d.ts.map +1 -1
  21. package/lib/components/ArticleList/ArticleList.d.ts +2 -2
  22. package/lib/components/ArticleList/ArticleList.d.ts.map +1 -1
  23. package/lib/components/ArticleList/ArticleList.js +6 -0
  24. package/lib/components/ArticleList/ArticleList.js.map +1 -1
  25. package/lib/components/ArticleList/ArticleList.types.d.ts +17 -2
  26. package/lib/components/ArticleList/ArticleList.types.d.ts.map +1 -1
  27. package/lib/components/ArticleList/ArticleList.types.js.map +1 -1
  28. package/lib/components/ArticleList/ArticleListHeader.d.ts +183 -1
  29. package/lib/components/ArticleList/ArticleListHeader.d.ts.map +1 -1
  30. package/lib/components/ArticleList/ArticleSummary.styles.d.ts +2 -2
  31. package/lib/components/ArticleList/ArticleSummary.styles.d.ts.map +1 -1
  32. package/lib/components/ArticleList/ArticleSummaryHeader.d.ts.map +1 -1
  33. package/lib/components/ArticleList/ArticleSummaryHeader.js +3 -1
  34. package/lib/components/ArticleList/ArticleSummaryHeader.js.map +1 -1
  35. package/lib/components/ArticleList/QuestionList.d.ts +5 -3
  36. package/lib/components/ArticleList/QuestionList.d.ts.map +1 -1
  37. package/lib/components/ArticleList/RelatedQuestions.d.ts +4 -2
  38. package/lib/components/ArticleList/RelatedQuestions.d.ts.map +1 -1
  39. package/lib/components/Assignments/Assignments.d.ts +2 -2
  40. package/lib/components/Assignments/Assignments.d.ts.map +1 -1
  41. package/lib/components/Assignments/Assignments.js +1 -1
  42. package/lib/components/Assignments/Assignments.js.map +1 -1
  43. package/lib/components/Assignments/Assignments.styles.d.ts +7 -3
  44. package/lib/components/Assignments/Assignments.styles.d.ts.map +1 -1
  45. package/lib/components/CaseHierarchy/CaseHierarchy.d.ts +2 -2
  46. package/lib/components/CaseHierarchy/CaseHierarchy.d.ts.map +1 -1
  47. package/lib/components/CaseHierarchy/CaseHierarchy.js +4 -3
  48. package/lib/components/CaseHierarchy/CaseHierarchy.js.map +1 -1
  49. package/lib/components/CaseHierarchy/CaseHierarchy.styles.d.ts +7 -3
  50. package/lib/components/CaseHierarchy/CaseHierarchy.styles.d.ts.map +1 -1
  51. package/lib/components/CaseHierarchy/CaseHierarchy.styles.js +9 -7
  52. package/lib/components/CaseHierarchy/CaseHierarchy.styles.js.map +1 -1
  53. package/lib/components/CaseHierarchy/CaseHierarchy.test-ids.d.ts +1 -1
  54. package/lib/components/CaseHierarchy/CaseHierarchy.test-ids.d.ts.map +1 -1
  55. package/lib/components/CaseHierarchy/CaseHierarchy.test-ids.js +2 -1
  56. package/lib/components/CaseHierarchy/CaseHierarchy.test-ids.js.map +1 -1
  57. package/lib/components/CaseHierarchy/CaseHierarchy.types.d.ts +7 -1
  58. package/lib/components/CaseHierarchy/CaseHierarchy.types.d.ts.map +1 -1
  59. package/lib/components/CaseHierarchy/CaseHierarchy.types.js.map +1 -1
  60. package/lib/components/CasePreview/CasePreview.d.ts +1 -1
  61. package/lib/components/CasePreview/CasePreview.d.ts.map +1 -1
  62. package/lib/components/CasePreview/CasePreview.js +83 -115
  63. package/lib/components/CasePreview/CasePreview.js.map +1 -1
  64. package/lib/components/CaseView/CaseHeader/CaseHeader.d.ts.map +1 -1
  65. package/lib/components/CaseView/CaseHeader/CaseHeader.js +97 -27
  66. package/lib/components/CaseView/CaseHeader/CaseHeader.js.map +1 -1
  67. package/lib/components/CaseView/CaseHeader/Summary.d.ts.map +1 -1
  68. package/lib/components/CaseView/CaseHeader/Summary.js +8 -1
  69. package/lib/components/CaseView/CaseHeader/Summary.js.map +1 -1
  70. package/lib/components/CaseView/CaseSummaryFields.js +1 -1
  71. package/lib/components/CaseView/CaseSummaryFields.js.map +1 -1
  72. package/lib/components/CaseView/CaseView.d.ts.map +1 -1
  73. package/lib/components/CaseView/CaseView.js +49 -20
  74. package/lib/components/CaseView/CaseView.js.map +1 -1
  75. package/lib/components/CaseView/CaseView.styles.d.ts +83 -47
  76. package/lib/components/CaseView/CaseView.styles.d.ts.map +1 -1
  77. package/lib/components/CaseView/CaseView.styles.js +329 -122
  78. package/lib/components/CaseView/CaseView.styles.js.map +1 -1
  79. package/lib/components/CaseView/CaseView.types.d.ts +24 -8
  80. package/lib/components/CaseView/CaseView.types.d.ts.map +1 -1
  81. package/lib/components/CaseView/CaseView.types.js.map +1 -1
  82. package/lib/components/CaseView/UtilitiesSummary.d.ts +1 -1
  83. package/lib/components/CaseView/UtilitiesSummary.d.ts.map +1 -1
  84. package/lib/components/CaseView/UtilitiesSummary.js +14 -4
  85. package/lib/components/CaseView/UtilitiesSummary.js.map +1 -1
  86. package/lib/components/CaseView/UtilitySummaryItemDialog.d.ts.map +1 -1
  87. package/lib/components/CaseView/UtilitySummaryItemDialog.js +10 -4
  88. package/lib/components/CaseView/UtilitySummaryItemDialog.js.map +1 -1
  89. package/lib/components/ConfigurableLayout/LayoutCell.d.ts.map +1 -1
  90. package/lib/components/ConfigurableLayout/LayoutCell.js +25 -25
  91. package/lib/components/ConfigurableLayout/LayoutCell.js.map +1 -1
  92. package/lib/components/Confirmation/Confirmation.d.ts +10 -0
  93. package/lib/components/Confirmation/Confirmation.d.ts.map +1 -1
  94. package/lib/components/Confirmation/Confirmation.js +2 -2
  95. package/lib/components/Confirmation/Confirmation.js.map +1 -1
  96. package/lib/components/Confirmation/index.d.ts +1 -1
  97. package/lib/components/Confirmation/index.d.ts.map +1 -1
  98. package/lib/components/Confirmation/index.js.map +1 -1
  99. package/lib/components/Details/Details.d.ts +3 -2
  100. package/lib/components/Details/Details.d.ts.map +1 -1
  101. package/lib/components/Details/Details.js +6 -5
  102. package/lib/components/Details/Details.js.map +1 -1
  103. package/lib/components/Details/Details.styles.d.ts +17 -15
  104. package/lib/components/Details/Details.styles.d.ts.map +1 -1
  105. package/lib/components/Details/Details.styles.js +28 -15
  106. package/lib/components/Details/Details.styles.js.map +1 -1
  107. package/lib/components/Details/Details.test-ids.d.ts +1 -1
  108. package/lib/components/Details/Details.test-ids.d.ts.map +1 -1
  109. package/lib/components/Details/Details.test-ids.js +2 -1
  110. package/lib/components/Details/Details.test-ids.js.map +1 -1
  111. package/lib/components/Details/DetailsList.d.ts.map +1 -1
  112. package/lib/components/Details/DetailsList.js +1 -5
  113. package/lib/components/Details/DetailsList.js.map +1 -1
  114. package/lib/components/GenAICoach/ActiveCases.d.ts +5 -0
  115. package/lib/components/GenAICoach/ActiveCases.d.ts.map +1 -0
  116. package/lib/components/GenAICoach/ActiveCases.js +50 -0
  117. package/lib/components/GenAICoach/ActiveCases.js.map +1 -0
  118. package/lib/components/GenAICoach/CaseWorkflow.d.ts +5 -0
  119. package/lib/components/GenAICoach/CaseWorkflow.d.ts.map +1 -0
  120. package/lib/components/GenAICoach/CaseWorkflow.js +111 -0
  121. package/lib/components/GenAICoach/CaseWorkflow.js.map +1 -0
  122. package/lib/components/GenAICoach/ConversationHistory.d.ts.map +1 -1
  123. package/lib/components/GenAICoach/ConversationHistory.js +11 -13
  124. package/lib/components/GenAICoach/ConversationHistory.js.map +1 -1
  125. package/lib/components/GenAICoach/GenAICoach.d.ts +4 -3
  126. package/lib/components/GenAICoach/GenAICoach.d.ts.map +1 -1
  127. package/lib/components/GenAICoach/GenAICoach.js +721 -141
  128. package/lib/components/GenAICoach/GenAICoach.js.map +1 -1
  129. package/lib/components/GenAICoach/GenAICoach.styles.d.ts +1639 -35
  130. package/lib/components/GenAICoach/GenAICoach.styles.d.ts.map +1 -1
  131. package/lib/components/GenAICoach/GenAICoach.styles.js +867 -82
  132. package/lib/components/GenAICoach/GenAICoach.styles.js.map +1 -1
  133. package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts +3 -2
  134. package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts.map +1 -1
  135. package/lib/components/GenAICoach/GenAICoach.test-ids.js +6 -1
  136. package/lib/components/GenAICoach/GenAICoach.test-ids.js.map +1 -1
  137. package/lib/components/GenAICoach/GenAICoach.types.d.ts +215 -9
  138. package/lib/components/GenAICoach/GenAICoach.types.d.ts.map +1 -1
  139. package/lib/components/GenAICoach/GenAICoach.types.js.map +1 -1
  140. package/lib/components/GenAICoach/GenAIMessage.d.ts +6 -0
  141. package/lib/components/GenAICoach/GenAIMessage.d.ts.map +1 -1
  142. package/lib/components/GenAICoach/GenAIMessage.js +101 -52
  143. package/lib/components/GenAICoach/GenAIMessage.js.map +1 -1
  144. package/lib/components/GenAICoach/GenAIMessageFeedback.d.ts +4 -0
  145. package/lib/components/GenAICoach/GenAIMessageFeedback.d.ts.map +1 -0
  146. package/lib/components/GenAICoach/GenAIMessageFeedback.js +95 -0
  147. package/lib/components/GenAICoach/GenAIMessageFeedback.js.map +1 -0
  148. package/lib/components/GenAICoach/GenAIMessageProgress.d.ts +4 -1
  149. package/lib/components/GenAICoach/GenAIMessageProgress.d.ts.map +1 -1
  150. package/lib/components/GenAICoach/GenAIMessageProgress.js +11 -35
  151. package/lib/components/GenAICoach/GenAIMessageProgress.js.map +1 -1
  152. package/lib/components/GenAICoach/InitialSuggestedMessage.d.ts.map +1 -1
  153. package/lib/components/GenAICoach/InitialSuggestedMessage.js +5 -6
  154. package/lib/components/GenAICoach/InitialSuggestedMessage.js.map +1 -1
  155. package/lib/components/GenAICoach/PortalAgentSplitView.d.ts +6 -0
  156. package/lib/components/GenAICoach/PortalAgentSplitView.d.ts.map +1 -0
  157. package/lib/components/GenAICoach/PortalAgentSplitView.js +75 -0
  158. package/lib/components/GenAICoach/PortalAgentSplitView.js.map +1 -0
  159. package/lib/components/GenAICoach/Questionnaire.d.ts +4 -0
  160. package/lib/components/GenAICoach/Questionnaire.d.ts.map +1 -0
  161. package/lib/components/GenAICoach/Questionnaire.js +155 -0
  162. package/lib/components/GenAICoach/Questionnaire.js.map +1 -0
  163. package/lib/components/GenAICoach/ToolCandidates.d.ts +4 -0
  164. package/lib/components/GenAICoach/ToolCandidates.d.ts.map +1 -0
  165. package/lib/components/GenAICoach/ToolCandidates.js +19 -0
  166. package/lib/components/GenAICoach/ToolCandidates.js.map +1 -0
  167. package/lib/components/GenAICoach/ToolConfirmationMessage.d.ts +4 -0
  168. package/lib/components/GenAICoach/ToolConfirmationMessage.d.ts.map +1 -0
  169. package/lib/components/GenAICoach/ToolConfirmationMessage.js +20 -0
  170. package/lib/components/GenAICoach/ToolConfirmationMessage.js.map +1 -0
  171. package/lib/components/GenAICoach/ToolDetails.d.ts +5 -0
  172. package/lib/components/GenAICoach/ToolDetails.d.ts.map +1 -0
  173. package/lib/components/GenAICoach/ToolDetails.js +99 -0
  174. package/lib/components/GenAICoach/ToolDetails.js.map +1 -0
  175. package/lib/components/GenAICoach/index.d.ts +5 -3
  176. package/lib/components/GenAICoach/index.d.ts.map +1 -1
  177. package/lib/components/GenAICoach/index.js +4 -2
  178. package/lib/components/GenAICoach/index.js.map +1 -1
  179. package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts +55 -34
  180. package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts.map +1 -1
  181. package/lib/components/HierarchicalAssignments/Assignments.styles.js +41 -11
  182. package/lib/components/HierarchicalAssignments/Assignments.styles.js.map +1 -1
  183. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.d.ts +2 -0
  184. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.d.ts.map +1 -1
  185. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.js.map +1 -1
  186. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.d.ts +1 -1
  187. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.d.ts.map +1 -1
  188. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.js +7 -4
  189. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.js.map +1 -1
  190. package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.d.ts.map +1 -1
  191. package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.js +2 -2
  192. package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.js.map +1 -1
  193. package/lib/components/IntelligentGuidance/IntelligentGuidance.d.ts.map +1 -1
  194. package/lib/components/IntelligentGuidance/IntelligentGuidance.js +1 -1
  195. package/lib/components/IntelligentGuidance/IntelligentGuidance.js.map +1 -1
  196. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts +9 -5
  197. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts.map +1 -1
  198. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js +17 -3
  199. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js.map +1 -1
  200. package/lib/components/InteractionNotification/InteractionNotification.d.ts +31 -8
  201. package/lib/components/InteractionNotification/InteractionNotification.d.ts.map +1 -1
  202. package/lib/components/InteractionNotification/InteractionNotification.js +17 -10
  203. package/lib/components/InteractionNotification/InteractionNotification.js.map +1 -1
  204. package/lib/components/Predictions/Predictions.d.ts.map +1 -1
  205. package/lib/components/Predictions/Predictions.js +11 -2
  206. package/lib/components/Predictions/Predictions.js.map +1 -1
  207. package/lib/components/SearchResults/ActiveFilter.d.ts +1 -1
  208. package/lib/components/SearchResults/ActiveFilter.d.ts.map +1 -1
  209. package/lib/components/SearchResults/Filter.d.ts.map +1 -1
  210. package/lib/components/SearchResults/Filter.js +1 -1
  211. package/lib/components/SearchResults/Filter.js.map +1 -1
  212. package/lib/components/SearchResults/SearchResult.d.ts.map +1 -1
  213. package/lib/components/SearchResults/SearchResult.js +14 -6
  214. package/lib/components/SearchResults/SearchResult.js.map +1 -1
  215. package/lib/components/SearchResults/SearchResults.d.ts.map +1 -1
  216. package/lib/components/SearchResults/SearchResults.js +18 -3
  217. package/lib/components/SearchResults/SearchResults.js.map +1 -1
  218. package/lib/components/SearchResults/SearchResults.styles.d.ts +12 -10
  219. package/lib/components/SearchResults/SearchResults.styles.d.ts.map +1 -1
  220. package/lib/components/Shortcuts/Shortcuts.d.ts +7 -0
  221. package/lib/components/Shortcuts/Shortcuts.d.ts.map +1 -0
  222. package/lib/components/Shortcuts/Shortcuts.js +47 -0
  223. package/lib/components/Shortcuts/Shortcuts.js.map +1 -0
  224. package/lib/components/Shortcuts/Shortcuts.styles.d.ts +22 -0
  225. package/lib/components/Shortcuts/Shortcuts.styles.d.ts.map +1 -0
  226. package/lib/components/Shortcuts/Shortcuts.styles.js +114 -0
  227. package/lib/components/Shortcuts/Shortcuts.styles.js.map +1 -0
  228. package/lib/components/Shortcuts/Shortcuts.test-ids.d.ts +2 -0
  229. package/lib/components/Shortcuts/Shortcuts.test-ids.d.ts.map +1 -0
  230. package/lib/components/Shortcuts/Shortcuts.test-ids.js +8 -0
  231. package/lib/components/Shortcuts/Shortcuts.test-ids.js.map +1 -0
  232. package/lib/components/Shortcuts/Shortcuts.types.d.ts +64 -0
  233. package/lib/components/Shortcuts/Shortcuts.types.d.ts.map +1 -0
  234. package/lib/components/Shortcuts/Shortcuts.types.js +2 -0
  235. package/lib/components/Shortcuts/Shortcuts.types.js.map +1 -0
  236. package/lib/components/Shortcuts/index.d.ts +3 -0
  237. package/lib/components/Shortcuts/index.d.ts.map +1 -0
  238. package/lib/components/Shortcuts/index.js +2 -0
  239. package/lib/components/Shortcuts/index.js.map +1 -0
  240. package/lib/components/Stages/Stages.d.ts.map +1 -1
  241. package/lib/components/Stages/Stages.js +37 -12
  242. package/lib/components/Stages/Stages.js.map +1 -1
  243. package/lib/components/Stages/Stages.styles.d.ts +22 -15
  244. package/lib/components/Stages/Stages.styles.d.ts.map +1 -1
  245. package/lib/components/Stages/Stages.styles.js +285 -119
  246. package/lib/components/Stages/Stages.styles.js.map +1 -1
  247. package/lib/components/Stages/Stages.types.d.ts +5 -0
  248. package/lib/components/Stages/Stages.types.d.ts.map +1 -1
  249. package/lib/components/Stages/Stages.types.js.map +1 -1
  250. package/lib/components/Stakeholders/Stakeholders.d.ts.map +1 -1
  251. package/lib/components/Stakeholders/Stakeholders.js +109 -145
  252. package/lib/components/Stakeholders/Stakeholders.js.map +1 -1
  253. package/lib/components/Tags/Tags.d.ts +2 -2
  254. package/lib/components/Tags/Tags.d.ts.map +1 -1
  255. package/lib/components/Tags/Tags.js +12 -2
  256. package/lib/components/Tags/Tags.js.map +1 -1
  257. package/lib/components/Tasks/TaskList.d.ts +10 -3
  258. package/lib/components/Tasks/TaskList.d.ts.map +1 -1
  259. package/lib/components/Tasks/TaskList.js +59 -5
  260. package/lib/components/Tasks/TaskList.js.map +1 -1
  261. package/lib/components/Tasks/Tasks.d.ts +10 -3
  262. package/lib/components/Tasks/Tasks.d.ts.map +1 -1
  263. package/lib/components/Tasks/Tasks.js +29 -5
  264. package/lib/components/Tasks/Tasks.js.map +1 -1
  265. package/lib/components/UtilitiesLayout/UtilitiesLayout.d.ts.map +1 -1
  266. package/lib/components/UtilitiesLayout/UtilitiesLayout.js +3 -2
  267. package/lib/components/UtilitiesLayout/UtilitiesLayout.js.map +1 -1
  268. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.d.ts +2 -2
  269. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.d.ts.map +1 -1
  270. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.js +3 -2
  271. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.js.map +1 -1
  272. package/lib/index.d.ts +2 -0
  273. package/lib/index.d.ts.map +1 -1
  274. package/lib/index.js +2 -0
  275. package/lib/index.js.map +1 -1
  276. package/package.json +6 -7
@@ -1,2 +1,2 @@
1
- export declare const getDetailsTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["heading", "description", "highlighted-data", "data", "expand-collapse"]>;
1
+ export declare const getDetailsTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["heading", "description", "highlighted-data", "data", "expand-collapse", "banner"]>;
2
2
  //# sourceMappingURL=Details.test-ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Details.test-ids.d.ts","sourceRoot":"","sources":["../../../src/components/Details/Details.test-ids.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,8MAMnB,CAAC"}
1
+ {"version":3,"file":"Details.test-ids.d.ts","sourceRoot":"","sources":["../../../src/components/Details/Details.test-ids.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,wNAOnB,CAAC"}
@@ -4,6 +4,7 @@ export const getDetailsTestIds = createTestIds('details', [
4
4
  'description',
5
5
  'highlighted-data',
6
6
  'data',
7
- 'expand-collapse'
7
+ 'expand-collapse',
8
+ 'banner'
8
9
  ]);
9
10
  //# sourceMappingURL=Details.test-ids.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Details.test-ids.js","sourceRoot":"","sources":["../../../src/components/Details/Details.test-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC,SAAS,EAAE;IACxD,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,MAAM;IACN,iBAAiB;CACT,CAAC,CAAC","sourcesContent":["import { createTestIds } from '@pega/cosmos-react-core';\n\nexport const getDetailsTestIds = createTestIds('details', [\n 'heading',\n 'description',\n 'highlighted-data',\n 'data',\n 'expand-collapse'\n] as const);\n"]}
1
+ {"version":3,"file":"Details.test-ids.js","sourceRoot":"","sources":["../../../src/components/Details/Details.test-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC,SAAS,EAAE;IACxD,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,MAAM;IACN,iBAAiB;IACjB,QAAQ;CACA,CAAC,CAAC","sourcesContent":["import { createTestIds } from '@pega/cosmos-react-core';\n\nexport const getDetailsTestIds = createTestIds('details', [\n 'heading',\n 'description',\n 'highlighted-data',\n 'data',\n 'expand-collapse',\n 'banner'\n] as const);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsList.d.ts","sourceRoot":"","sources":["../../../src/components/Details/DetailsList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,GAAG,EAAE,MAAM,OAAO,CAAC;AAS/C,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EAEd,cAAc,EACf,MAAM,yBAAyB,CAAC;AAKjC,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAC3C,IAAI,EACJ,cAAc,GAAG;IACf,6BAA6B;IAC7B,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B,CACF,CAAC;AAEF,QAAA,MAAM,WAAW,4HAyDhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"DetailsList.d.ts","sourceRoot":"","sources":["../../../src/components/Details/DetailsList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,GAAG,EAAE,MAAM,OAAO,CAAC;AAS/C,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EAEd,cAAc,EACf,MAAM,yBAAyB,CAAC;AAKjC,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAC3C,IAAI,EACJ,cAAc,GAAG;IACf,6BAA6B;IAC7B,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B,CACF,CAAC;AAEF,QAAA,MAAM,WAAW,4HAqDhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -12,13 +12,9 @@ const DetailsList = forwardRef(function DetailsList({ items, valueComparison = f
12
12
  breakpointRef: containerRef,
13
13
  themeProp: 'content-width'
14
14
  });
15
- const isMdContentWidthOrAbove = useBreakpoint('md', {
16
- breakpointRef: containerRef,
17
- themeProp: 'content-width'
18
- });
19
15
  const labelLength = Math.max(14, Math.min(longestLabelLength ?? 16, 40));
20
16
  const applyMobileView = inMobileView || !isSmallOrAbove || !isSmContentWidthOrAbove;
21
- return items.length > 0 ? (_jsx(StyledDetailsList, { ref: containerRef, labelLength: labelLength, stacked: applyMobileView, variant: valueComparison && !applyMobileView ? 'value-comparison' : undefined, narrow: !isMdContentWidthOrAbove, children: items.map(({ id, name, value, variant: fieldVariant, testId }) => {
17
+ return items.length > 0 ? (_jsx(StyledDetailsList, { ref: containerRef, labelLength: labelLength, stacked: applyMobileView, variant: valueComparison && !applyMobileView ? 'value-comparison' : undefined, role: 'none', children: items.map(({ id, name, value, variant: fieldVariant, testId }) => {
22
18
  const isStacked = applyMobileView ||
23
19
  fieldVariant === 'stacked' ||
24
20
  (fieldLabelPosition === 'stacked' && !valueComparison);
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsList.js","sourceRoot":"","sources":["../../../src/components/Details/DetailsList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,EACL,cAAc,EACd,IAAI,EACJ,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAQjC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAejF,MAAM,WAAW,GAAG,UAAU,CAC5B,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,EAAE,GAAG;IAC1D,MAAM,EACJ,UAAU,EAAE,EACV,OAAO,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAC/C,EACF,GAAG,QAAQ,EAAE,CAAC;IACf,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,EAAE;QAClD,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IACH,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,EAAE;QAClD,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,YAAY,IAAI,CAAC,cAAc,IAAI,CAAC,uBAAuB,CAAC;IAEpF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxB,KAAC,iBAAiB,IAChB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,eAAe,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAC7E,MAAM,EAAE,CAAC,uBAAuB,YAE/B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;YAChE,MAAM,SAAS,GACb,eAAe;gBACf,YAAY,KAAK,SAAS;gBAC1B,CAAC,kBAAkB,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,CAAC;YAEzD,MAAM,IAAI,GAAG,CACX,KAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IACpC,EAAE,IAAI,IAAI,CACf,CACH,CAAC;YAEF,OAAO,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CACpC,IAAI,CACL,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,EAAE,EAAE,0BAA0B,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAC7E,IAAI,GACA,CACR,CAAC;QACJ,CAAC,CAAC,GACgB,CACrB,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import { forwardRef, useContext } from 'react';\nimport type { PropsWithRef, Ref } from 'react';\n\nimport {\n FieldValueItem,\n Grid,\n useBreakpoint,\n useConsolidatedRef,\n useTheme\n} from '@pega/cosmos-react-core';\nimport type {\n FieldValueListItemProps,\n NoChildrenProp,\n RefElement,\n WithAttributes\n} from '@pega/cosmos-react-core';\n\nimport DetailsContext from './DetailsContext';\nimport { StyledDetailsList, StyledInlineFieldValueItem } from './Details.styles';\n\nexport type DetailsListProps = WithAttributes<\n 'dl',\n NoChildrenProp & {\n /** Field value list items */\n items: FieldValueListItemProps[];\n /** Whether to apply `value-comparison` styles to list items\n * @default false\n */\n valueComparison?: boolean;\n ref?: Ref<HTMLDListElement>;\n }\n>;\n\nconst DetailsList = forwardRef<RefElement<DetailsListProps>, PropsWithRef<DetailsListProps>>(\n function DetailsList({ items, valueComparison = false }, ref) {\n const {\n components: {\n details: { 'field-label': fieldLabelPosition }\n }\n } = useTheme();\n const { longestLabelLength, mobileView: inMobileView } = useContext(DetailsContext);\n const containerRef = useConsolidatedRef(ref);\n const isSmallOrAbove = useBreakpoint('sm');\n const isSmContentWidthOrAbove = useBreakpoint('sm', {\n breakpointRef: containerRef,\n themeProp: 'content-width'\n });\n const isMdContentWidthOrAbove = useBreakpoint('md', {\n breakpointRef: containerRef,\n themeProp: 'content-width'\n });\n\n const labelLength = Math.max(14, Math.min(longestLabelLength ?? 16, 40));\n const applyMobileView = inMobileView || !isSmallOrAbove || !isSmContentWidthOrAbove;\n\n return items.length > 0 ? (\n <StyledDetailsList\n ref={containerRef}\n labelLength={labelLength}\n stacked={applyMobileView}\n variant={valueComparison && !applyMobileView ? 'value-comparison' : undefined}\n narrow={!isMdContentWidthOrAbove}\n >\n {items.map(({ id, name, value, variant: fieldVariant, testId }) => {\n const isStacked =\n applyMobileView ||\n fieldVariant === 'stacked' ||\n (fieldLabelPosition === 'stacked' && !valueComparison);\n\n const item = (\n <FieldValueItem\n testId={testId}\n name={name}\n value={value}\n variant={isStacked ? 'stacked' : 'inline'}\n key={id ?? name}\n />\n );\n\n return isStacked || valueComparison ? (\n item\n ) : (\n <Grid as={StyledInlineFieldValueItem} container={{ cols: '16ch minmax(0, 1fr)' }}>\n {item}\n </Grid>\n );\n })}\n </StyledDetailsList>\n ) : null;\n }\n);\n\nexport default DetailsList;\n"]}
1
+ {"version":3,"file":"DetailsList.js","sourceRoot":"","sources":["../../../src/components/Details/DetailsList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,EACL,cAAc,EACd,IAAI,EACJ,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAQjC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAejF,MAAM,WAAW,GAAG,UAAU,CAC5B,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,EAAE,GAAG;IAC1D,MAAM,EACJ,UAAU,EAAE,EACV,OAAO,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAC/C,EACF,GAAG,QAAQ,EAAE,CAAC;IACf,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,EAAE;QAClD,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,YAAY,IAAI,CAAC,cAAc,IAAI,CAAC,uBAAuB,CAAC;IAEpF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxB,KAAC,iBAAiB,IAChB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,eAAe,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAC7E,IAAI,EAAC,MAAM,YAEV,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;YAChE,MAAM,SAAS,GACb,eAAe;gBACf,YAAY,KAAK,SAAS;gBAC1B,CAAC,kBAAkB,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,CAAC;YAEzD,MAAM,IAAI,GAAG,CACX,KAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IACpC,EAAE,IAAI,IAAI,CACf,CACH,CAAC;YAEF,OAAO,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CACpC,IAAI,CACL,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,EAAE,EAAE,0BAA0B,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAC7E,IAAI,GACA,CACR,CAAC;QACJ,CAAC,CAAC,GACgB,CACrB,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import { forwardRef, useContext } from 'react';\nimport type { PropsWithRef, Ref } from 'react';\n\nimport {\n FieldValueItem,\n Grid,\n useBreakpoint,\n useConsolidatedRef,\n useTheme\n} from '@pega/cosmos-react-core';\nimport type {\n FieldValueListItemProps,\n NoChildrenProp,\n RefElement,\n WithAttributes\n} from '@pega/cosmos-react-core';\n\nimport DetailsContext from './DetailsContext';\nimport { StyledDetailsList, StyledInlineFieldValueItem } from './Details.styles';\n\nexport type DetailsListProps = WithAttributes<\n 'dl',\n NoChildrenProp & {\n /** Field value list items */\n items: FieldValueListItemProps[];\n /** Whether to apply `value-comparison` styles to list items\n * @default false\n */\n valueComparison?: boolean;\n ref?: Ref<HTMLDListElement>;\n }\n>;\n\nconst DetailsList = forwardRef<RefElement<DetailsListProps>, PropsWithRef<DetailsListProps>>(\n function DetailsList({ items, valueComparison = false }, ref) {\n const {\n components: {\n details: { 'field-label': fieldLabelPosition }\n }\n } = useTheme();\n const { longestLabelLength, mobileView: inMobileView } = useContext(DetailsContext);\n const containerRef = useConsolidatedRef(ref);\n const isSmallOrAbove = useBreakpoint('sm');\n const isSmContentWidthOrAbove = useBreakpoint('sm', {\n breakpointRef: containerRef,\n themeProp: 'content-width'\n });\n\n const labelLength = Math.max(14, Math.min(longestLabelLength ?? 16, 40));\n const applyMobileView = inMobileView || !isSmallOrAbove || !isSmContentWidthOrAbove;\n\n return items.length > 0 ? (\n <StyledDetailsList\n ref={containerRef}\n labelLength={labelLength}\n stacked={applyMobileView}\n variant={valueComparison && !applyMobileView ? 'value-comparison' : undefined}\n role='none'\n >\n {items.map(({ id, name, value, variant: fieldVariant, testId }) => {\n const isStacked =\n applyMobileView ||\n fieldVariant === 'stacked' ||\n (fieldLabelPosition === 'stacked' && !valueComparison);\n\n const item = (\n <FieldValueItem\n testId={testId}\n name={name}\n value={value}\n variant={isStacked ? 'stacked' : 'inline'}\n key={id ?? name}\n />\n );\n\n return isStacked || valueComparison ? (\n item\n ) : (\n <Grid as={StyledInlineFieldValueItem} container={{ cols: '16ch minmax(0, 1fr)' }}>\n {item}\n </Grid>\n );\n })}\n </StyledDetailsList>\n ) : null;\n }\n);\n\nexport default DetailsList;\n"]}
@@ -0,0 +1,5 @@
1
+ import type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';
2
+ import type { ActiveCasesProps } from './GenAICoach.types';
3
+ declare const ActiveCases: ForwardRefForwardPropsComponent<ActiveCasesProps>;
4
+ export default ActiveCases;
5
+ //# sourceMappingURL=ActiveCases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActiveCases.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/ActiveCases.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AAoC3E,QAAA,MAAM,WAAW,EAAE,+BAA+B,CAAC,gBAAgB,CAwElE,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useCallback, forwardRef } from 'react';
3
+ import { Icon, Count, Flex, InfoDialog, useI18n, useElement, useConsolidatedRef, registerIcon } from '@pega/cosmos-react-core';
4
+ import * as caseIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/case.icon';
5
+ import Stages from '../Stages';
6
+ import { StyledActiveCaseButton, StyledActiveCasesList, StyledActiveCaseName, StyledActiveCaseStages } from './GenAICoach.styles';
7
+ registerIcon(caseIcon);
8
+ const toStageProps = (bannerStages) => bannerStages.map(s => ({
9
+ id: s.id,
10
+ name: s.name,
11
+ completed: s.completed ?? false,
12
+ steps: s.steps?.map((step) => ({
13
+ id: step.id,
14
+ name: step.name,
15
+ completed: step.completed ?? false
16
+ }))
17
+ }));
18
+ const findCurrentStageId = (bannerStages) => {
19
+ const explicitCurrent = bannerStages.find(s => s.current);
20
+ if (explicitCurrent)
21
+ return explicitCurrent.id;
22
+ if (bannerStages.length > 0 && bannerStages.every(s => s.completed)) {
23
+ return bannerStages[bannerStages.length - 1].id;
24
+ }
25
+ return bannerStages[0]?.id ?? '';
26
+ };
27
+ const ActiveCases = forwardRef(function ActiveCases({ activeCases, ...restProps }, ref) {
28
+ const t = useI18n();
29
+ const [isOpen, setIsOpen] = useState(false);
30
+ const [triggerEl, setTriggerEl] = useElement();
31
+ const triggerRef = useConsolidatedRef(ref, setTriggerEl);
32
+ const label = t('active_cases');
33
+ const toggleDialog = useCallback(() => {
34
+ setIsOpen(prev => !prev);
35
+ }, []);
36
+ const dismissDialog = useCallback(() => {
37
+ setIsOpen(false);
38
+ }, []);
39
+ return (_jsxs(_Fragment, { children: [_jsxs(Flex, { container: { alignItems: 'center', gap: 1 }, as: StyledActiveCaseButton, ...restProps, ref: triggerRef, type: 'button', onClick: toggleDialog, "aria-expanded": isOpen, "aria-label": t('active_cases_trigger', [activeCases.length]), children: [_jsx(Icon, { name: 'case' }), label, _jsx(Count, { children: activeCases.length })] }), isOpen && triggerEl && (_jsx(InfoDialog, { heading: label, target: triggerEl, onDismiss: dismissDialog, children: _jsx(StyledActiveCasesList, { container: { direction: 'column', gap: 4 }, children: activeCases.map(caseItem => {
40
+ const stageProps = toStageProps(caseItem.stages);
41
+ const currentId = findCurrentStageId(caseItem.stages);
42
+ const handleCaseClick = e => {
43
+ dismissDialog();
44
+ caseItem.onHeadingClick?.(e);
45
+ };
46
+ return (_jsxs(Flex, { container: { direction: 'column', gap: 1 }, children: [_jsx(StyledActiveCaseName, { variant: 'link', onClick: handleCaseClick, children: caseItem.heading }), _jsx(StyledActiveCaseStages, { children: _jsx(Stages, { stages: stageProps, current: currentId, readOnly: true }) })] }, caseItem.id));
47
+ }) }) }))] }));
48
+ });
49
+ export default ActiveCases;
50
+ //# sourceMappingURL=ActiveCases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActiveCases.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/ActiveCases.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, forwardRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n Icon,\n Count,\n Flex,\n InfoDialog,\n useI18n,\n useElement,\n useConsolidatedRef,\n registerIcon\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\nimport * as caseIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/case.icon';\n\nimport Stages from '../Stages';\nimport type { StageProps, StepProps } from '../Stages/Stages.types';\n\nimport type { ActiveCasesProps, ActiveCaseItem } from './GenAICoach.types';\nimport {\n StyledActiveCaseButton,\n StyledActiveCasesList,\n StyledActiveCaseName,\n StyledActiveCaseStages\n} from './GenAICoach.styles';\n\nregisterIcon(caseIcon);\n\nconst toStageProps = (bannerStages: ActiveCaseItem['stages']): StageProps[] =>\n bannerStages.map(s => ({\n id: s.id,\n name: s.name,\n completed: s.completed ?? false,\n steps: s.steps?.map(\n (step): StepProps => ({\n id: step.id,\n name: step.name,\n completed: step.completed ?? false\n })\n )\n }));\n\nconst findCurrentStageId = (bannerStages: ActiveCaseItem['stages']): string => {\n const explicitCurrent = bannerStages.find(s => s.current);\n\n if (explicitCurrent) return explicitCurrent.id;\n\n if (bannerStages.length > 0 && bannerStages.every(s => s.completed)) {\n return bannerStages[bannerStages.length - 1].id;\n }\n\n return bannerStages[0]?.id ?? '';\n};\n\nconst ActiveCases: ForwardRefForwardPropsComponent<ActiveCasesProps> = forwardRef(\n function ActiveCases(\n { activeCases, ...restProps }: PropsWithoutRef<ActiveCasesProps>,\n ref: ActiveCasesProps['ref']\n ) {\n const t = useI18n();\n\n const [isOpen, setIsOpen] = useState(false);\n\n const [triggerEl, setTriggerEl] = useElement<HTMLButtonElement>();\n\n const triggerRef = useConsolidatedRef<HTMLButtonElement>(ref, setTriggerEl);\n\n const label = t('active_cases');\n\n const toggleDialog = useCallback(() => {\n setIsOpen(prev => !prev);\n }, []);\n\n const dismissDialog = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n return (\n <>\n <Flex\n container={{ alignItems: 'center', gap: 1 }}\n as={StyledActiveCaseButton}\n {...restProps}\n ref={triggerRef}\n type='button'\n onClick={toggleDialog}\n aria-expanded={isOpen}\n aria-label={t('active_cases_trigger', [activeCases.length])}\n >\n <Icon name='case' />\n\n {label}\n\n <Count>{activeCases.length}</Count>\n </Flex>\n\n {isOpen && triggerEl && (\n <InfoDialog heading={label} target={triggerEl} onDismiss={dismissDialog}>\n <StyledActiveCasesList container={{ direction: 'column', gap: 4 }}>\n {activeCases.map(caseItem => {\n const stageProps = toStageProps(caseItem.stages);\n const currentId = findCurrentStageId(caseItem.stages);\n\n const handleCaseClick: ActiveCaseItem['onHeadingClick'] = e => {\n dismissDialog();\n caseItem.onHeadingClick?.(e);\n };\n\n return (\n <Flex key={caseItem.id} container={{ direction: 'column', gap: 1 }}>\n <StyledActiveCaseName variant='link' onClick={handleCaseClick}>\n {caseItem.heading}\n </StyledActiveCaseName>\n\n <StyledActiveCaseStages>\n <Stages stages={stageProps} current={currentId} readOnly />\n </StyledActiveCaseStages>\n </Flex>\n );\n })}\n </StyledActiveCasesList>\n </InfoDialog>\n )}\n </>\n );\n }\n);\n\nexport default ActiveCases;\n"]}
@@ -0,0 +1,5 @@
1
+ import type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';
2
+ import type { CaseWorkflowProps } from './GenAICoach.types';
3
+ declare const CaseWorkflow: ForwardRefForwardPropsComponent<CaseWorkflowProps>;
4
+ export default CaseWorkflow;
5
+ //# sourceMappingURL=CaseWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaseWorkflow.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/CaseWorkflow.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,oBAAoB,CAAC;AAyCpF,QAAA,MAAM,YAAY,EAAE,+BAA+B,CAAC,iBAAiB,CA6MpE,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useCallback, forwardRef, useMemo, useEffect, useRef } from 'react';
3
+ import { parseToHsl } from 'polished';
4
+ import { Icon, Button, Tooltip, ExpandCollapse, useConsolidatedRef, useElement, useI18n, useTheme, tryCatch, StyledIconShape, registerIcon } from '@pega/cosmos-react-core';
5
+ import * as chevronIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/chevron.icon';
6
+ import * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';
7
+ import * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';
8
+ import VerticalFormProgress from '@pega/cosmos-react-core/lib/components/MultiStepForm/VerticalFormProgress';
9
+ import { StyledCaseWorkflowBanner, StyledCaseLaunchButton, StyledCaseIconWrapper, StyledCaseTitleText, StyledProgressLabel, StyledWorkflowInfoDialog, StyledStageList, StyledStageButton, StyledStepsContainer, StyledCaseViewIcon, StyledCaseViewImage } from './GenAICoach.styles';
10
+ registerIcon(chevronIcon, timesIcon, caretDownIcon);
11
+ const getEffectiveCurrentStepId = (stage) => {
12
+ const { steps } = stage;
13
+ if (!steps || steps.length === 0)
14
+ return undefined;
15
+ if (stage.current && stage.currentStepId)
16
+ return stage.currentStepId;
17
+ if (stage.completed)
18
+ return steps[steps.length - 1].id;
19
+ return steps[0].id;
20
+ };
21
+ const getCurrentStageAndStep = (stages) => {
22
+ const stage = stages.find(s => s.current);
23
+ if (!stage)
24
+ return undefined;
25
+ const step = stage.currentStepId
26
+ ? stage.steps?.find(s => s.id === stage.currentStepId)
27
+ : undefined;
28
+ return { stageName: stage.name, stepName: step?.name };
29
+ };
30
+ const CaseWorkflow = forwardRef(function CaseWorkflow({ heading, icon, stages, onHeadingClick, ...restProps }, ref) {
31
+ const t = useI18n();
32
+ const theme = useTheme();
33
+ const rootRef = useConsolidatedRef(ref);
34
+ const [workflowBtnEl, setWorkflowBtnEl] = useElement();
35
+ const [headingEl, setHeadingEl] = useElement();
36
+ const [stageStepEl, setStageStepEl] = useElement();
37
+ const [isOpen, setIsOpen] = useState(false);
38
+ const [hasBrokenImage, setHasBrokenImage] = useState();
39
+ const currentStageId = stages.find(s => s.current)?.id;
40
+ const currentStageIdRef = useRef(currentStageId);
41
+ currentStageIdRef.current = currentStageId;
42
+ const [expandedStages, setExpandedStages] = useState(() => {
43
+ const initial = new Set();
44
+ if (currentStageId)
45
+ initial.add(currentStageId);
46
+ return initial;
47
+ });
48
+ const toggleStage = useCallback((stageId) => {
49
+ setExpandedStages(prev => {
50
+ const next = new Set(prev);
51
+ if (next.has(stageId)) {
52
+ next.delete(stageId);
53
+ }
54
+ else {
55
+ next.add(stageId);
56
+ }
57
+ return next;
58
+ });
59
+ }, []);
60
+ const toggleDialog = useCallback(() => {
61
+ setIsOpen(prev => !prev);
62
+ }, []);
63
+ const closeDialog = useCallback(() => {
64
+ setIsOpen(false);
65
+ }, []);
66
+ const iconForeground = theme.components['case-view'].icon.color !== 'auto'
67
+ ? theme.components['case-view'].icon.color
68
+ : theme.components['case-view'].header['foreground-color'];
69
+ const iconBackground = useMemo(() => {
70
+ if (theme.components['case-view'].icon.background !== 'auto') {
71
+ return theme.components['case-view'].icon.background;
72
+ }
73
+ return tryCatch(() => {
74
+ const { lightness } = parseToHsl(theme.components['case-view'].header['background-color']);
75
+ return lightness > 0.35 ? 'rgba(0, 0, 0, 0.2)' : 'rgba(255, 255, 255, 0.2)';
76
+ }, () => 'transparent');
77
+ }, [theme]);
78
+ const showIcon = !!icon && !hasBrokenImage;
79
+ const currentInfo = getCurrentStageAndStep(stages);
80
+ const stageStepLabel = currentInfo
81
+ ? `${currentInfo.stageName}${currentInfo.stepName ? `: ${currentInfo.stepName}` : ''}`
82
+ : undefined;
83
+ useEffect(() => {
84
+ setHasBrokenImage(undefined);
85
+ }, [typeof icon === 'string' ? icon : icon?.href]);
86
+ useEffect(() => {
87
+ if (isOpen) {
88
+ const initial = new Set();
89
+ if (currentStageIdRef.current)
90
+ initial.add(currentStageIdRef.current);
91
+ setExpandedStages(initial);
92
+ }
93
+ }, [isOpen]);
94
+ return (_jsxs(_Fragment, { children: [_jsxs(StyledCaseWorkflowBanner, { container: { alignItems: 'center', justify: 'between', gap: 0 }, ...restProps, ref: rootRef, children: [_jsxs(StyledCaseLaunchButton, { variant: 'simple', onClick: onHeadingClick, "aria-label": t('open_noun', [heading]), children: [showIcon && (_jsx(StyledCaseIconWrapper, { children: typeof icon === 'string' ? (_jsx(StyledCaseViewIcon, { name: icon, foreground: iconForeground, background: iconBackground, size: 's' })) : (_jsx(StyledIconShape, { background: iconBackground, children: _jsx(StyledCaseViewImage, { src: icon?.href, alt: t('case_image'), onLoad: () => {
95
+ setHasBrokenImage(false);
96
+ }, onError: () => {
97
+ setHasBrokenImage(true);
98
+ } }) })) })), _jsx(StyledCaseTitleText, { ref: setHeadingEl, children: heading }), stageStepLabel && (_jsx(StyledProgressLabel, { ref: setStageStepEl, children: stageStepLabel }))] }), _jsx(Button, { ref: setWorkflowBtnEl, icon: true, variant: 'simple', onClick: toggleDialog, "aria-expanded": isOpen, label: t('workflow'), "aria-label": t('open_noun', [t('workflow')]), children: _jsx(Icon, { name: 'chevron' }) }), isOpen && workflowBtnEl && (_jsx(StyledWorkflowInfoDialog, { heading: heading, target: workflowBtnEl, onDismiss: closeDialog, children: _jsx(StyledStageList, { children: stages.map(stage => {
99
+ const isExpanded = expandedStages.has(stage.id);
100
+ const hasSteps = Array.isArray(stage.steps) && stage.steps.length > 0;
101
+ const effectiveStepId = getEffectiveCurrentStepId(stage);
102
+ let stageStatus = 'not-started';
103
+ if (stage.completed)
104
+ stageStatus = 'completed';
105
+ else if (stage.current)
106
+ stageStatus = 'active';
107
+ return (_jsxs("li", { children: [_jsxs(StyledStageButton, { onClick: () => toggleStage(stage.id), "aria-expanded": isExpanded, expanded: isExpanded, variant: 'simple', children: [_jsx(Icon, { name: 'caret-down' }), stage.name] }), hasSteps && effectiveStepId && (_jsx(ExpandCollapse, { collapsed: !isExpanded, nullWhenCollapsed: true, children: _jsx(StyledStepsContainer, { stageStatus: stageStatus, children: _jsx(VerticalFormProgress, { steps: stage.steps ?? [], currentStepId: effectiveStepId }) }) }))] }, stage.id));
108
+ }) }) }))] }), headingEl && (_jsx(Tooltip, { target: headingEl, smart: true, showDelay: 'none', hideDelay: 'none', children: heading })), stageStepEl && stageStepLabel && (_jsx(Tooltip, { target: stageStepEl, smart: true, showDelay: 'none', hideDelay: 'none', children: stageStepLabel }))] }));
109
+ });
110
+ export default CaseWorkflow;
111
+ //# sourceMappingURL=CaseWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaseWorkflow.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/CaseWorkflow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, forwardRef, useMemo, useEffect, useRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\nimport { parseToHsl } from 'polished';\n\nimport {\n Icon,\n Button,\n Tooltip,\n ExpandCollapse,\n useConsolidatedRef,\n useElement,\n useI18n,\n useTheme,\n tryCatch,\n StyledIconShape,\n registerIcon\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\nimport * as chevronIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/chevron.icon';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport VerticalFormProgress from '@pega/cosmos-react-core/lib/components/MultiStepForm/VerticalFormProgress';\n\nimport type { CaseWorkflowProps, CaseWorkflowStageProps } from './GenAICoach.types';\nimport {\n StyledCaseWorkflowBanner,\n StyledCaseLaunchButton,\n StyledCaseIconWrapper,\n StyledCaseTitleText,\n StyledProgressLabel,\n StyledWorkflowInfoDialog,\n StyledStageList,\n StyledStageButton,\n StyledStepsContainer,\n StyledCaseViewIcon,\n StyledCaseViewImage\n} from './GenAICoach.styles';\n\nregisterIcon(chevronIcon, timesIcon, caretDownIcon);\n\nconst getEffectiveCurrentStepId = (stage: CaseWorkflowStageProps): string | undefined => {\n const { steps } = stage;\n\n if (!steps || steps.length === 0) return undefined;\n\n if (stage.current && stage.currentStepId) return stage.currentStepId;\n\n if (stage.completed) return steps[steps.length - 1].id;\n\n return steps[0].id;\n};\n\nconst getCurrentStageAndStep = (stages: CaseWorkflowStageProps[]) => {\n const stage = stages.find(s => s.current);\n\n if (!stage) return undefined;\n\n const step = stage.currentStepId\n ? stage.steps?.find(s => s.id === stage.currentStepId)\n : undefined;\n\n return { stageName: stage.name, stepName: step?.name };\n};\n\nconst CaseWorkflow: ForwardRefForwardPropsComponent<CaseWorkflowProps> = forwardRef(\n function CaseWorkflow(\n { heading, icon, stages, onHeadingClick, ...restProps }: PropsWithoutRef<CaseWorkflowProps>,\n ref: CaseWorkflowProps['ref']\n ) {\n const t = useI18n();\n const theme = useTheme();\n\n const rootRef = useConsolidatedRef(ref);\n\n const [workflowBtnEl, setWorkflowBtnEl] = useElement<HTMLButtonElement>();\n const [headingEl, setHeadingEl] = useElement<HTMLSpanElement>();\n const [stageStepEl, setStageStepEl] = useElement<HTMLSpanElement>();\n\n const [isOpen, setIsOpen] = useState(false);\n const [hasBrokenImage, setHasBrokenImage] = useState<boolean | undefined>();\n\n const currentStageId = stages.find(s => s.current)?.id;\n const currentStageIdRef = useRef(currentStageId);\n currentStageIdRef.current = currentStageId;\n\n const [expandedStages, setExpandedStages] = useState<Set<string>>(() => {\n const initial = new Set<string>();\n if (currentStageId) initial.add(currentStageId);\n return initial;\n });\n\n const toggleStage = useCallback((stageId: string) => {\n setExpandedStages(prev => {\n const next = new Set(prev);\n if (next.has(stageId)) {\n next.delete(stageId);\n } else {\n next.add(stageId);\n }\n return next;\n });\n }, []);\n\n const toggleDialog = useCallback(() => {\n setIsOpen(prev => !prev);\n }, []);\n\n const closeDialog = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const iconForeground =\n theme.components['case-view'].icon.color !== 'auto'\n ? theme.components['case-view'].icon.color\n : theme.components['case-view'].header['foreground-color'];\n\n const iconBackground = useMemo(() => {\n if (theme.components['case-view'].icon.background !== 'auto') {\n return theme.components['case-view'].icon.background;\n }\n return tryCatch(\n () => {\n const { lightness } = parseToHsl(\n theme.components['case-view'].header['background-color']\n );\n return lightness > 0.35 ? 'rgba(0, 0, 0, 0.2)' : 'rgba(255, 255, 255, 0.2)';\n },\n () => 'transparent'\n );\n }, [theme]);\n\n const showIcon = !!icon && !hasBrokenImage;\n\n const currentInfo = getCurrentStageAndStep(stages);\n\n const stageStepLabel = currentInfo\n ? `${currentInfo.stageName}${currentInfo.stepName ? `: ${currentInfo.stepName}` : ''}`\n : undefined;\n\n useEffect(() => {\n setHasBrokenImage(undefined);\n }, [typeof icon === 'string' ? icon : icon?.href]);\n\n useEffect(() => {\n if (isOpen) {\n const initial = new Set<string>();\n if (currentStageIdRef.current) initial.add(currentStageIdRef.current);\n setExpandedStages(initial);\n }\n }, [isOpen]);\n\n return (\n <>\n <StyledCaseWorkflowBanner\n container={{ alignItems: 'center', justify: 'between', gap: 0 }}\n {...restProps}\n ref={rootRef}\n >\n <StyledCaseLaunchButton\n variant='simple'\n onClick={onHeadingClick}\n aria-label={t('open_noun', [heading])}\n >\n {showIcon && (\n <StyledCaseIconWrapper>\n {typeof icon === 'string' ? (\n <StyledCaseViewIcon\n name={icon}\n foreground={iconForeground}\n background={iconBackground}\n size='s'\n />\n ) : (\n <StyledIconShape background={iconBackground}>\n <StyledCaseViewImage\n src={icon?.href}\n alt={t('case_image')}\n onLoad={() => {\n setHasBrokenImage(false);\n }}\n onError={() => {\n setHasBrokenImage(true);\n }}\n />\n </StyledIconShape>\n )}\n </StyledCaseIconWrapper>\n )}\n\n <StyledCaseTitleText ref={setHeadingEl}>{heading}</StyledCaseTitleText>\n\n {stageStepLabel && (\n <StyledProgressLabel ref={setStageStepEl}>{stageStepLabel}</StyledProgressLabel>\n )}\n </StyledCaseLaunchButton>\n\n <Button\n ref={setWorkflowBtnEl}\n icon\n variant='simple'\n onClick={toggleDialog}\n aria-expanded={isOpen}\n label={t('workflow')}\n aria-label={t('open_noun', [t('workflow')])}\n >\n <Icon name='chevron' />\n </Button>\n\n {isOpen && workflowBtnEl && (\n <StyledWorkflowInfoDialog\n heading={heading}\n target={workflowBtnEl}\n onDismiss={closeDialog}\n >\n <StyledStageList>\n {stages.map(stage => {\n const isExpanded = expandedStages.has(stage.id);\n const hasSteps = Array.isArray(stage.steps) && stage.steps.length > 0;\n const effectiveStepId = getEffectiveCurrentStepId(stage);\n\n let stageStatus: 'active' | 'completed' | 'not-started' = 'not-started';\n if (stage.completed) stageStatus = 'completed';\n else if (stage.current) stageStatus = 'active';\n\n return (\n <li key={stage.id}>\n <StyledStageButton\n onClick={() => toggleStage(stage.id)}\n aria-expanded={isExpanded}\n expanded={isExpanded}\n variant='simple'\n >\n <Icon name='caret-down' />\n\n {stage.name}\n </StyledStageButton>\n\n {hasSteps && effectiveStepId && (\n <ExpandCollapse collapsed={!isExpanded} nullWhenCollapsed>\n <StyledStepsContainer stageStatus={stageStatus}>\n <VerticalFormProgress\n steps={stage.steps ?? []}\n currentStepId={effectiveStepId}\n />\n </StyledStepsContainer>\n </ExpandCollapse>\n )}\n </li>\n );\n })}\n </StyledStageList>\n </StyledWorkflowInfoDialog>\n )}\n </StyledCaseWorkflowBanner>\n\n {headingEl && (\n <Tooltip target={headingEl} smart showDelay='none' hideDelay='none'>\n {heading}\n </Tooltip>\n )}\n\n {stageStepEl && stageStepLabel && (\n <Tooltip target={stageStepEl} smart showDelay='none' hideDelay='none'>\n {stageStepLabel}\n </Tooltip>\n )}\n </>\n );\n }\n);\n\nexport default CaseWorkflow;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationHistory.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/ConversationHistory.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAW/E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAKnE,QAAA,MAAM,mBAAmB,EAAE,+BAA+B,CAAC,wBAAwB,CA2KlF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"ConversationHistory.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/ConversationHistory.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAW/E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAKnE,QAAA,MAAM,mBAAmB,EAAE,+BAA+B,CAAC,wBAAwB,CA0KlF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,18 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef, useEffect, useRef } from 'react';
3
- import { Button, EmptyState, ErrorState, Flex, getFocusables, Icon, Progress, registerIcon, Text, useArrows, useDirection, useI18n, useItemIntersection, useOuterEvent, useTestIds } from '@pega/cosmos-react-core';
4
- import * as ArrowLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-left.icon';
5
- import * as ArrowRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-right.icon';
6
- import { StyledHistoryContainer, StyledList, StyledLoadingItem, StyledHistorySummaryListItem, StyledGroupHeader } from './GenAICoach.styles';
3
+ import { Button, EmptyState, ErrorState, Flex, getFocusables, Icon, Progress, registerIcon, Text, useArrows, useI18n, useItemIntersection, useOuterEvent, useTestIds } from '@pega/cosmos-react-core';
4
+ import * as TimesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';
5
+ import { StyledHistoryContainer, StyledList, StyledInnerList, StyledLoadingItem, StyledHistorySummaryListItem, StyledGroupHeader } from './GenAICoach.styles';
7
6
  import { getConversationHistoryTestIds } from './GenAICoach.test-ids';
8
- registerIcon(ArrowLeftIcon, ArrowRightIcon);
7
+ registerIcon(TimesIcon);
9
8
  const ConversationHistory = forwardRef(function ConversationHistory({ testId, data = [], onDismiss, loading = false, loadMore, inFullPage = false, onItemClick, selectedItemId, error, ...restProps }, ref) {
10
9
  const testIds = useTestIds(testId, getConversationHistoryTestIds);
11
10
  const t = useI18n();
12
- const { rtl } = useDirection();
13
11
  const focusInMessageListRef = useRef(false);
14
12
  const ulRef = useRef(null);
15
- const backButtonRef = useRef(null);
13
+ const closeButtonRef = useRef(null);
16
14
  const selector = ':scope > li > ul > li';
17
15
  const totalConversations = data.reduce((sum, section) => sum + section.conversations.length, 0);
18
16
  useArrows(ulRef, {
@@ -26,8 +24,8 @@ const ConversationHistory = forwardRef(function ConversationHistory({ testId, da
26
24
  focusInMessageListRef.current = false;
27
25
  });
28
26
  useEffect(() => {
29
- if (backButtonRef.current)
30
- backButtonRef.current.focus();
27
+ if (closeButtonRef.current)
28
+ closeButtonRef.current.focus();
31
29
  }, []);
32
30
  const loadingOrEmptyElement = loading ? (_jsx(Progress, { placement: 'block', liveConfig: { contextualLabel: t('conversation') } })) : (_jsx(EmptyState, { message: t('no_conversations_found') }));
33
31
  const renderComponent = data.length > 0 ? (_jsxs(StyledList, { container: { direction: 'column', pad: [undefined, undefined, 1], gap: 1 }, forwardedAs: 'ul', "aria-label": `${t('history')} ${t('view')}`, onFocus: () => {
@@ -50,7 +48,7 @@ const ConversationHistory = forwardRef(function ConversationHistory({ testId, da
50
48
  }
51
49
  }
52
50
  }, item: { grow: 1 }, ref: ulRef, children: [data.map(item => {
53
- return (_jsxs(Flex, { "data-testid": testIds.historyGroup, container: { direction: 'column' }, as: 'li', role: 'presentation', children: [_jsx(Flex, { container: { alignItems: 'center', pad: [0.5, 1] }, as: StyledGroupHeader, id: item.id, children: item.section }), _jsx("ul", { "aria-labelledby": item.id, children: item.conversations.map(conversation => {
51
+ return (_jsxs(Flex, { "data-testid": testIds.historyGroup, container: { direction: 'column' }, as: 'li', role: 'presentation', children: [_jsx(Flex, { container: { alignItems: 'center', pad: [0.5, 1] }, as: StyledGroupHeader, id: item.id, children: item.section }), _jsx(StyledInnerList, { "aria-labelledby": item.id, children: item.conversations.map(conversation => {
54
52
  const activeElement = selectedItemId === conversation.id;
55
53
  return (_jsx(StyledHistorySummaryListItem, { id: conversation.id, forwardedAs: 'li', "aria-selected": activeElement, primary: _jsx(Text, { children: conversation.title }), onClick: () => {
56
54
  onItemClick?.(conversation.id);
@@ -63,11 +61,11 @@ const ConversationHistory = forwardRef(function ConversationHistory({ testId, da
63
61
  }) })] }, item.id));
64
62
  }), loading && _jsx(StyledLoadingItem, { children: loadingOrEmptyElement })] })) : (loadingOrEmptyElement);
65
63
  return (_jsxs(StyledHistoryContainer, { ...restProps, "data-testid": testIds.root, container: { direction: 'column' }, inFullPage: inFullPage, item: { grow: 1 }, ref: ref, children: [_jsxs(Flex, { container: {
66
- pad: 1,
64
+ pad: [1, 2],
67
65
  gap: 2,
68
- justify: 'start',
66
+ justify: 'between',
69
67
  alignItems: 'center'
70
- }, children: [_jsx(Button, { "data-testid": testIds.back, label: t('back'), icon: true, variant: 'simple', onClick: onDismiss, ref: backButtonRef, children: _jsx(Icon, { name: rtl ? 'arrow-right' : 'arrow-left' }) }), _jsx(Text, { variant: 'h2', children: t('history') })] }), error ? _jsx(ErrorState, { message: error }) : renderComponent] }));
68
+ }, children: [_jsx(Text, { variant: 'h2', children: t('your_chats') }), _jsx(Button, { "data-testid": testIds.close, label: t('close'), icon: true, variant: 'simple', onClick: onDismiss, ref: closeButtonRef, children: _jsx(Icon, { name: 'times' }) })] }), error ? _jsx(ErrorState, { message: error }) : renderComponent] }));
71
69
  });
72
70
  export default ConversationHistory;
73
71
  //# sourceMappingURL=ConversationHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationHistory.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/ConversationHistory.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n Button,\n EmptyState,\n ErrorState,\n Flex,\n getFocusables,\n Icon,\n Progress,\n registerIcon,\n Text,\n useArrows,\n useDirection,\n useI18n,\n useItemIntersection,\n useOuterEvent,\n useTestIds\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\nimport * as ArrowLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-left.icon';\nimport * as ArrowRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-right.icon';\n\nimport {\n StyledHistoryContainer,\n StyledList,\n StyledLoadingItem,\n StyledHistorySummaryListItem,\n StyledGroupHeader\n} from './GenAICoach.styles';\nimport type { ConversationHistoryProps } from './GenAICoach.types';\nimport { getConversationHistoryTestIds } from './GenAICoach.test-ids';\n\nregisterIcon(ArrowLeftIcon, ArrowRightIcon);\n\nconst ConversationHistory: ForwardRefForwardPropsComponent<ConversationHistoryProps> = forwardRef(\n function ConversationHistory(\n {\n testId,\n data = [],\n onDismiss,\n loading = false,\n loadMore,\n inFullPage = false,\n onItemClick,\n selectedItemId,\n error,\n ...restProps\n }: PropsWithoutRef<ConversationHistoryProps>,\n ref: ConversationHistoryProps['ref']\n ) {\n const testIds = useTestIds(testId, getConversationHistoryTestIds);\n const t = useI18n();\n const { rtl } = useDirection();\n const focusInMessageListRef = useRef(false);\n const ulRef = useRef<HTMLUListElement>(null);\n const backButtonRef = useRef<HTMLButtonElement>(null);\n const selector = ':scope > li > ul > li';\n const totalConversations = data.reduce((sum, section) => sum + section.conversations.length, 0);\n\n useArrows(\n ulRef,\n {\n selector\n },\n [totalConversations, data[0]?.conversations.length]\n );\n\n useItemIntersection(\n ulRef,\n totalConversations - 1,\n () => {\n if (!loading) loadMore?.();\n },\n selector\n );\n\n useOuterEvent('mousedown', [ulRef.current], () => {\n focusInMessageListRef.current = false;\n });\n\n useEffect(() => {\n if (backButtonRef.current) backButtonRef.current.focus();\n }, []);\n\n const loadingOrEmptyElement = loading ? (\n <Progress placement='block' liveConfig={{ contextualLabel: t('conversation') }} />\n ) : (\n <EmptyState message={t('no_conversations_found')} />\n );\n\n const renderComponent =\n data.length > 0 ? (\n <StyledList\n container={{ direction: 'column', pad: [undefined, undefined, 1], gap: 1 }}\n forwardedAs='ul'\n aria-label={`${t('history')} ${t('view')}`}\n onFocus={() => {\n if (selectedItemId && !focusInMessageListRef.current) {\n focusInMessageListRef.current = true;\n ulRef.current?.querySelector<HTMLLIElement>(`li[id=\"${selectedItemId}\"]`)?.focus();\n }\n }}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n focusInMessageListRef.current = false;\n if (e.shiftKey) {\n const prevElement = ulRef.current?.previousElementSibling;\n if (prevElement) {\n const focusables = getFocusables(prevElement);\n if (focusables.length) {\n e.preventDefault();\n focusables[focusables.length - 1].focus();\n }\n }\n }\n }\n }}\n item={{ grow: 1 }}\n ref={ulRef}\n >\n {data.map(item => {\n return (\n <Flex\n data-testid={testIds.historyGroup}\n container={{ direction: 'column' }}\n as='li'\n role='presentation'\n key={item.id}\n >\n <Flex\n container={{ alignItems: 'center', pad: [0.5, 1] }}\n as={StyledGroupHeader}\n id={item.id}\n >\n {item.section}\n </Flex>\n\n <ul aria-labelledby={item.id}>\n {item.conversations.map(conversation => {\n const activeElement = selectedItemId === conversation.id;\n return (\n <StyledHistorySummaryListItem\n key={conversation.id}\n id={conversation.id}\n forwardedAs='li'\n aria-selected={activeElement}\n primary={<Text>{conversation.title}</Text>}\n onClick={() => {\n onItemClick?.(conversation.id);\n }}\n aria-label={conversation.title}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n onItemClick?.(conversation.id);\n e.preventDefault();\n }\n }}\n />\n );\n })}\n </ul>\n </Flex>\n );\n })}\n {loading && <StyledLoadingItem>{loadingOrEmptyElement}</StyledLoadingItem>}\n </StyledList>\n ) : (\n loadingOrEmptyElement\n );\n\n return (\n <StyledHistoryContainer\n {...restProps}\n data-testid={testIds.root}\n container={{ direction: 'column' }}\n inFullPage={inFullPage}\n item={{ grow: 1 }}\n ref={ref}\n >\n <Flex\n container={{\n pad: 1,\n gap: 2,\n justify: 'start',\n alignItems: 'center'\n }}\n >\n <Button\n data-testid={testIds.back}\n label={t('back')}\n icon\n variant='simple'\n onClick={onDismiss}\n ref={backButtonRef}\n >\n <Icon name={rtl ? 'arrow-right' : 'arrow-left'} />\n </Button>\n\n <Text variant='h2'>{t('history')}</Text>\n </Flex>\n\n {error ? <ErrorState message={error} /> : renderComponent}\n </StyledHistoryContainer>\n );\n }\n);\n\nexport default ConversationHistory;\n"]}
1
+ {"version":3,"file":"ConversationHistory.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/ConversationHistory.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n Button,\n EmptyState,\n ErrorState,\n Flex,\n getFocusables,\n Icon,\n Progress,\n registerIcon,\n Text,\n useArrows,\n useI18n,\n useItemIntersection,\n useOuterEvent,\n useTestIds\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\nimport * as TimesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\n\nimport {\n StyledHistoryContainer,\n StyledList,\n StyledInnerList,\n StyledLoadingItem,\n StyledHistorySummaryListItem,\n StyledGroupHeader\n} from './GenAICoach.styles';\nimport type { ConversationHistoryProps } from './GenAICoach.types';\nimport { getConversationHistoryTestIds } from './GenAICoach.test-ids';\n\nregisterIcon(TimesIcon);\n\nconst ConversationHistory: ForwardRefForwardPropsComponent<ConversationHistoryProps> = forwardRef(\n function ConversationHistory(\n {\n testId,\n data = [],\n onDismiss,\n loading = false,\n loadMore,\n inFullPage = false,\n onItemClick,\n selectedItemId,\n error,\n ...restProps\n }: PropsWithoutRef<ConversationHistoryProps>,\n ref: ConversationHistoryProps['ref']\n ) {\n const testIds = useTestIds(testId, getConversationHistoryTestIds);\n const t = useI18n();\n\n const focusInMessageListRef = useRef(false);\n const ulRef = useRef<HTMLUListElement>(null);\n const closeButtonRef = useRef<HTMLButtonElement>(null);\n const selector = ':scope > li > ul > li';\n const totalConversations = data.reduce((sum, section) => sum + section.conversations.length, 0);\n\n useArrows(\n ulRef,\n {\n selector\n },\n [totalConversations, data[0]?.conversations.length]\n );\n\n useItemIntersection(\n ulRef,\n totalConversations - 1,\n () => {\n if (!loading) loadMore?.();\n },\n selector\n );\n\n useOuterEvent('mousedown', [ulRef.current], () => {\n focusInMessageListRef.current = false;\n });\n\n useEffect(() => {\n if (closeButtonRef.current) closeButtonRef.current.focus();\n }, []);\n\n const loadingOrEmptyElement = loading ? (\n <Progress placement='block' liveConfig={{ contextualLabel: t('conversation') }} />\n ) : (\n <EmptyState message={t('no_conversations_found')} />\n );\n\n const renderComponent =\n data.length > 0 ? (\n <StyledList\n container={{ direction: 'column', pad: [undefined, undefined, 1], gap: 1 }}\n forwardedAs='ul'\n aria-label={`${t('history')} ${t('view')}`}\n onFocus={() => {\n if (selectedItemId && !focusInMessageListRef.current) {\n focusInMessageListRef.current = true;\n ulRef.current?.querySelector<HTMLLIElement>(`li[id=\"${selectedItemId}\"]`)?.focus();\n }\n }}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n focusInMessageListRef.current = false;\n if (e.shiftKey) {\n const prevElement = ulRef.current?.previousElementSibling;\n if (prevElement) {\n const focusables = getFocusables(prevElement);\n if (focusables.length) {\n e.preventDefault();\n focusables[focusables.length - 1].focus();\n }\n }\n }\n }\n }}\n item={{ grow: 1 }}\n ref={ulRef}\n >\n {data.map(item => {\n return (\n <Flex\n data-testid={testIds.historyGroup}\n container={{ direction: 'column' }}\n as='li'\n role='presentation'\n key={item.id}\n >\n <Flex\n container={{ alignItems: 'center', pad: [0.5, 1] }}\n as={StyledGroupHeader}\n id={item.id}\n >\n {item.section}\n </Flex>\n\n <StyledInnerList aria-labelledby={item.id}>\n {item.conversations.map(conversation => {\n const activeElement = selectedItemId === conversation.id;\n return (\n <StyledHistorySummaryListItem\n key={conversation.id}\n id={conversation.id}\n forwardedAs='li'\n aria-selected={activeElement}\n primary={<Text>{conversation.title}</Text>}\n onClick={() => {\n onItemClick?.(conversation.id);\n }}\n aria-label={conversation.title}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n onItemClick?.(conversation.id);\n e.preventDefault();\n }\n }}\n />\n );\n })}\n </StyledInnerList>\n </Flex>\n );\n })}\n {loading && <StyledLoadingItem>{loadingOrEmptyElement}</StyledLoadingItem>}\n </StyledList>\n ) : (\n loadingOrEmptyElement\n );\n\n return (\n <StyledHistoryContainer\n {...restProps}\n data-testid={testIds.root}\n container={{ direction: 'column' }}\n inFullPage={inFullPage}\n item={{ grow: 1 }}\n ref={ref}\n >\n <Flex\n container={{\n pad: [1, 2],\n gap: 2,\n justify: 'between',\n alignItems: 'center'\n }}\n >\n <Text variant='h2'>{t('your_chats')}</Text>\n <Button\n data-testid={testIds.close}\n label={t('close')}\n icon\n variant='simple'\n onClick={onDismiss}\n ref={closeButtonRef}\n >\n <Icon name='times' />\n </Button>\n </Flex>\n\n {error ? <ErrorState message={error} /> : renderComponent}\n </StyledHistoryContainer>\n );\n }\n);\n\nexport default ConversationHistory;\n"]}
@@ -1,7 +1,8 @@
1
- import type { FunctionComponent } from 'react';
2
1
  import { type GenAICoachProps } from '.';
3
- declare const _default: FunctionComponent<GenAICoachProps> & {
4
- getTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["user-message", "coach-message", "actions", "attachments"]>;
2
+ export declare const AgentIcon: () => import("react/jsx-runtime").JSX.Element;
3
+ export declare const AISuggestedBadge: () => import("react/jsx-runtime").JSX.Element;
4
+ declare const _default: ((props: GenAICoachProps) => import("react/jsx-runtime").JSX.Element) & {
5
+ getTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["user-message", "coach-message", "system-message", "actions", "attachments"]>;
5
6
  };
6
7
  export default _default;
7
8
  //# sourceMappingURL=GenAICoach.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenAICoach.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAkE5D,OAAO,EAAyC,KAAK,eAAe,EAAE,MAAM,GAAG,CAAC;;;;AA4xBhF,wBAA6D"}
1
+ {"version":3,"file":"GenAICoach.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.tsx"],"names":[],"mappings":"AAuGA,OAAO,EAAyC,KAAK,eAAe,EAAE,MAAM,GAAG,CAAC;AAmBhF,eAAO,MAAM,SAAS,+CA2GrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAQ5B,CAAC;iCAipDyB,eAAe;;;AAQ1C,wBAA6D"}