@pega/cosmos-react-work 8.0.0-build.3.2 → 8.0.0-build.30.1

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 (291) hide show
  1. package/lib/components/AppAnnouncement/AppAnnouncement.d.ts +8 -4
  2. package/lib/components/AppAnnouncement/AppAnnouncement.d.ts.map +1 -1
  3. package/lib/components/AppAnnouncement/AppAnnouncement.js +6 -4
  4. package/lib/components/AppAnnouncement/AppAnnouncement.js.map +1 -1
  5. package/lib/components/Article/Article.d.ts +2 -6
  6. package/lib/components/Article/Article.d.ts.map +1 -1
  7. package/lib/components/Article/Article.js +2 -7
  8. package/lib/components/Article/Article.js.map +1 -1
  9. package/lib/components/Article/ArticleMeta.js.map +1 -1
  10. package/lib/components/ArticleList/AIArticleSummary.d.ts +1 -2
  11. package/lib/components/ArticleList/AIArticleSummary.d.ts.map +1 -1
  12. package/lib/components/ArticleList/ArticleBuddy.d.ts.map +1 -1
  13. package/lib/components/ArticleList/ArticleBuddy.js +6 -2
  14. package/lib/components/ArticleList/ArticleBuddy.js.map +1 -1
  15. package/lib/components/ArticleList/ArticleBuddyList.d.ts +0 -1
  16. package/lib/components/ArticleList/ArticleBuddyList.d.ts.map +1 -1
  17. package/lib/components/ArticleList/ArticleBuddyResponse.d.ts +3 -3
  18. package/lib/components/ArticleList/ArticleBuddyResponse.d.ts.map +1 -1
  19. package/lib/components/ArticleList/ArticleBuddyResponse.js +7 -8
  20. package/lib/components/ArticleList/ArticleBuddyResponse.js.map +1 -1
  21. package/lib/components/ArticleList/ArticleFeedback.d.ts +1 -2
  22. package/lib/components/ArticleList/ArticleFeedback.d.ts.map +1 -1
  23. package/lib/components/ArticleList/ArticleFeedback.js.map +1 -1
  24. package/lib/components/ArticleList/ArticleList.d.ts.map +1 -1
  25. package/lib/components/ArticleList/ArticleList.js +1 -1
  26. package/lib/components/ArticleList/ArticleList.js.map +1 -1
  27. package/lib/components/ArticleList/ArticleList.types.d.ts +9 -5
  28. package/lib/components/ArticleList/ArticleList.types.d.ts.map +1 -1
  29. package/lib/components/ArticleList/ArticleList.types.js.map +1 -1
  30. package/lib/components/ArticleList/ArticleListFilter.js.map +1 -1
  31. package/lib/components/ArticleList/ArticleListHeader.d.ts +1 -1
  32. package/lib/components/ArticleList/ArticleListHeader.d.ts.map +1 -1
  33. package/lib/components/ArticleList/ArticleListHeader.js +9 -6
  34. package/lib/components/ArticleList/ArticleListHeader.js.map +1 -1
  35. package/lib/components/ArticleList/ArticleSemanticSearch.d.ts +0 -1
  36. package/lib/components/ArticleList/ArticleSemanticSearch.d.ts.map +1 -1
  37. package/lib/components/ArticleList/ArticleSemanticSearch.js +11 -4
  38. package/lib/components/ArticleList/ArticleSemanticSearch.js.map +1 -1
  39. package/lib/components/ArticleList/ArticleSummaryHeader.js +1 -1
  40. package/lib/components/ArticleList/ArticleSummaryHeader.js.map +1 -1
  41. package/lib/components/ArticleList/ArticleTag.d.ts +0 -1
  42. package/lib/components/ArticleList/ArticleTag.d.ts.map +1 -1
  43. package/lib/components/ArticleList/ArticleTag.js +3 -3
  44. package/lib/components/ArticleList/ArticleTag.js.map +1 -1
  45. package/lib/components/ArticleList/QuestionList.d.ts +1 -2
  46. package/lib/components/ArticleList/QuestionList.d.ts.map +1 -1
  47. package/lib/components/ArticleList/QuestionList.js +1 -1
  48. package/lib/components/ArticleList/QuestionList.js.map +1 -1
  49. package/lib/components/ArticleList/RelatedQuestions.d.ts +19 -0
  50. package/lib/components/ArticleList/RelatedQuestions.d.ts.map +1 -0
  51. package/lib/components/ArticleList/RelatedQuestions.js +40 -0
  52. package/lib/components/ArticleList/RelatedQuestions.js.map +1 -0
  53. package/lib/components/Assignments/Assignments.js +2 -2
  54. package/lib/components/Assignments/Assignments.js.map +1 -1
  55. package/lib/components/Assignments/Assignments.styles.d.ts +3 -4
  56. package/lib/components/Assignments/Assignments.styles.d.ts.map +1 -1
  57. package/lib/components/CasePreview/CasePreview.d.ts +4 -4
  58. package/lib/components/CasePreview/CasePreview.d.ts.map +1 -1
  59. package/lib/components/CasePreview/CasePreview.js +7 -6
  60. package/lib/components/CasePreview/CasePreview.js.map +1 -1
  61. package/lib/components/CasePreview/CasePreview.test-ids.d.ts +1 -1
  62. package/lib/components/CasePreview/CasePreview.test-ids.d.ts.map +1 -1
  63. package/lib/components/CaseView/CaseHeader/CaseHeader.d.ts.map +1 -1
  64. package/lib/components/CaseView/CaseHeader/CaseHeader.js +4 -3
  65. package/lib/components/CaseView/CaseHeader/CaseHeader.js.map +1 -1
  66. package/lib/components/CaseView/CaseHeader/Summary.d.ts +1 -1
  67. package/lib/components/CaseView/CaseHeader/Summary.d.ts.map +1 -1
  68. package/lib/components/CaseView/CaseHeader/Summary.js.map +1 -1
  69. package/lib/components/CaseView/CaseView.context.d.ts +0 -1
  70. package/lib/components/CaseView/CaseView.context.d.ts.map +1 -1
  71. package/lib/components/CaseView/CaseView.d.ts +1 -1
  72. package/lib/components/CaseView/CaseView.d.ts.map +1 -1
  73. package/lib/components/CaseView/CaseView.js +15 -15
  74. package/lib/components/CaseView/CaseView.js.map +1 -1
  75. package/lib/components/CaseView/CaseView.styles.d.ts +14 -14
  76. package/lib/components/CaseView/CaseView.styles.d.ts.map +1 -1
  77. package/lib/components/CaseView/CaseView.styles.js +224 -100
  78. package/lib/components/CaseView/CaseView.styles.js.map +1 -1
  79. package/lib/components/CaseView/CaseView.test-ids.d.ts +1 -1
  80. package/lib/components/CaseView/CaseView.test-ids.d.ts.map +1 -1
  81. package/lib/components/CaseView/CaseView.types.d.ts +8 -2
  82. package/lib/components/CaseView/CaseView.types.d.ts.map +1 -1
  83. package/lib/components/CaseView/CaseView.types.js.map +1 -1
  84. package/lib/components/CaseView/UtilitiesSummary.d.ts +1 -0
  85. package/lib/components/CaseView/UtilitiesSummary.d.ts.map +1 -1
  86. package/lib/components/CaseView/UtilitiesSummary.js +61 -5
  87. package/lib/components/CaseView/UtilitiesSummary.js.map +1 -1
  88. package/lib/components/CaseView/UtilitySummaryItemDialog.d.ts +0 -1
  89. package/lib/components/CaseView/UtilitySummaryItemDialog.d.ts.map +1 -1
  90. package/lib/components/CaseView/UtilitySummaryItemDialog.js +1 -1
  91. package/lib/components/CaseView/UtilitySummaryItemDialog.js.map +1 -1
  92. package/lib/components/CaseView/index.d.ts +1 -1
  93. package/lib/components/CaseView/index.d.ts.map +1 -1
  94. package/lib/components/CaseView/index.js.map +1 -1
  95. package/lib/components/ConfigurableLayout/ConfigurableLayout.d.ts +0 -1
  96. package/lib/components/ConfigurableLayout/ConfigurableLayout.d.ts.map +1 -1
  97. package/lib/components/ConfigurableLayout/ConfigurableLayout.js.map +1 -1
  98. package/lib/components/ConfigurableLayout/ConfigurableLayout.types.d.ts +0 -1
  99. package/lib/components/ConfigurableLayout/ConfigurableLayout.types.d.ts.map +1 -1
  100. package/lib/components/ConfigurableLayout/LayoutCell.d.ts +1 -2
  101. package/lib/components/ConfigurableLayout/LayoutCell.d.ts.map +1 -1
  102. package/lib/components/ConfigurableLayout/LayoutCell.js.map +1 -1
  103. package/lib/components/ConfigurableLayout/useTrackWrappedRegions.d.ts.map +1 -1
  104. package/lib/components/ConfigurableLayout/useTrackWrappedRegions.js.map +1 -1
  105. package/lib/components/Confirmation/Confirmation.d.ts +3 -3
  106. package/lib/components/Confirmation/Confirmation.d.ts.map +1 -1
  107. package/lib/components/Confirmation/Confirmation.js.map +1 -1
  108. package/lib/components/Details/Details.d.ts +4 -4
  109. package/lib/components/Details/Details.d.ts.map +1 -1
  110. package/lib/components/Details/Details.js +2 -2
  111. package/lib/components/Details/Details.js.map +1 -1
  112. package/lib/components/Details/Details.styles.d.ts +1 -1
  113. package/lib/components/Details/Details.styles.d.ts.map +1 -1
  114. package/lib/components/Details/Details.styles.js +17 -4
  115. package/lib/components/Details/Details.styles.js.map +1 -1
  116. package/lib/components/Details/Details.test-ids.d.ts +1 -1
  117. package/lib/components/Details/Details.test-ids.d.ts.map +1 -1
  118. package/lib/components/Details/DetailsContext.d.ts +0 -1
  119. package/lib/components/Details/DetailsContext.d.ts.map +1 -1
  120. package/lib/components/GenAICoach/GenAICoach.d.ts +1 -1
  121. package/lib/components/GenAICoach/GenAICoach.d.ts.map +1 -1
  122. package/lib/components/GenAICoach/GenAICoach.js +35 -45
  123. package/lib/components/GenAICoach/GenAICoach.js.map +1 -1
  124. package/lib/components/GenAICoach/GenAICoach.styles.d.ts +9 -14
  125. package/lib/components/GenAICoach/GenAICoach.styles.d.ts.map +1 -1
  126. package/lib/components/GenAICoach/GenAICoach.styles.js +18 -44
  127. package/lib/components/GenAICoach/GenAICoach.styles.js.map +1 -1
  128. package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts +1 -1
  129. package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts.map +1 -1
  130. package/lib/components/GenAICoach/GenAICoach.test-ids.js +4 -1
  131. package/lib/components/GenAICoach/GenAICoach.test-ids.js.map +1 -1
  132. package/lib/components/GenAICoach/GenAICoach.types.d.ts +14 -6
  133. package/lib/components/GenAICoach/GenAICoach.types.d.ts.map +1 -1
  134. package/lib/components/GenAICoach/GenAICoach.types.js.map +1 -1
  135. package/lib/components/GenAICoach/GenAICoach.utils.d.ts +1 -1
  136. package/lib/components/GenAICoach/GenAICoach.utils.d.ts.map +1 -1
  137. package/lib/components/GenAICoach/GenAIMessage.d.ts.map +1 -1
  138. package/lib/components/GenAICoach/GenAIMessage.js +77 -13
  139. package/lib/components/GenAICoach/GenAIMessage.js.map +1 -1
  140. package/lib/components/GenAICoach/InitialSuggestedMessage.js +1 -1
  141. package/lib/components/GenAICoach/InitialSuggestedMessage.js.map +1 -1
  142. package/lib/components/GenAICoach/index.d.ts +1 -1
  143. package/lib/components/GenAICoach/index.d.ts.map +1 -1
  144. package/lib/components/GenAICoach/index.js.map +1 -1
  145. package/lib/components/Glimpse/Glimpse.d.ts +3 -3
  146. package/lib/components/Glimpse/Glimpse.d.ts.map +1 -1
  147. package/lib/components/Glimpse/Glimpse.js.map +1 -1
  148. package/lib/components/HierarchicalAssignments/AssignmentContext.d.ts +22 -0
  149. package/lib/components/HierarchicalAssignments/AssignmentContext.d.ts.map +1 -0
  150. package/lib/components/HierarchicalAssignments/AssignmentContext.js +12 -0
  151. package/lib/components/HierarchicalAssignments/AssignmentContext.js.map +1 -0
  152. package/lib/components/HierarchicalAssignments/AssignmentDetail.d.ts +4 -2
  153. package/lib/components/HierarchicalAssignments/AssignmentDetail.d.ts.map +1 -1
  154. package/lib/components/HierarchicalAssignments/AssignmentDetail.js +2 -2
  155. package/lib/components/HierarchicalAssignments/AssignmentDetail.js.map +1 -1
  156. package/lib/components/HierarchicalAssignments/AssignmentNode.d.ts +15 -0
  157. package/lib/components/HierarchicalAssignments/AssignmentNode.d.ts.map +1 -0
  158. package/lib/components/HierarchicalAssignments/AssignmentNode.js +28 -0
  159. package/lib/components/HierarchicalAssignments/AssignmentNode.js.map +1 -0
  160. package/lib/components/HierarchicalAssignments/AssignmentTree.d.ts +15 -0
  161. package/lib/components/HierarchicalAssignments/AssignmentTree.d.ts.map +1 -0
  162. package/lib/components/HierarchicalAssignments/AssignmentTree.js +15 -0
  163. package/lib/components/HierarchicalAssignments/AssignmentTree.js.map +1 -0
  164. package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts +32 -31
  165. package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts.map +1 -1
  166. package/lib/components/HierarchicalAssignments/Assignments.styles.js +93 -69
  167. package/lib/components/HierarchicalAssignments/Assignments.styles.js.map +1 -1
  168. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.d.ts +2 -3
  169. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.d.ts.map +1 -1
  170. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.js +90 -8
  171. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.js.map +1 -1
  172. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.test-ids.d.ts +3 -3
  173. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.test-ids.d.ts.map +1 -1
  174. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.test-ids.js +2 -1
  175. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.test-ids.js.map +1 -1
  176. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.d.ts +12 -12
  177. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.d.ts.map +1 -1
  178. package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.js.map +1 -1
  179. package/lib/components/HierarchicalAssignments/helpers.d.ts +20 -0
  180. package/lib/components/HierarchicalAssignments/helpers.d.ts.map +1 -0
  181. package/lib/components/HierarchicalAssignments/helpers.js +164 -0
  182. package/lib/components/HierarchicalAssignments/helpers.js.map +1 -0
  183. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.d.ts +14 -0
  184. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.d.ts.map +1 -0
  185. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.js +86 -0
  186. package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.js.map +1 -0
  187. package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.d.ts +23 -0
  188. package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.d.ts.map +1 -0
  189. package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.js +108 -0
  190. package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.js.map +1 -0
  191. package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.d.ts +24 -0
  192. package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.d.ts.map +1 -0
  193. package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.js +54 -0
  194. package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.js.map +1 -0
  195. package/lib/components/IntelligentGuidance/IntelligentGuidance.d.ts +2 -3
  196. package/lib/components/IntelligentGuidance/IntelligentGuidance.d.ts.map +1 -1
  197. package/lib/components/IntelligentGuidance/IntelligentGuidance.js +5 -2
  198. package/lib/components/IntelligentGuidance/IntelligentGuidance.js.map +1 -1
  199. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts +2 -3
  200. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts.map +1 -1
  201. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js +32 -21
  202. package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js.map +1 -1
  203. package/lib/components/InteractionNotification/CountdownButton.d.ts +3 -3
  204. package/lib/components/InteractionNotification/CountdownButton.d.ts.map +1 -1
  205. package/lib/components/InteractionNotification/CountdownButton.js +1 -1
  206. package/lib/components/InteractionNotification/CountdownButton.js.map +1 -1
  207. package/lib/components/InteractionNotification/InteractionNotification.d.ts +3 -3
  208. package/lib/components/InteractionNotification/InteractionNotification.d.ts.map +1 -1
  209. package/lib/components/InteractionNotification/InteractionNotification.js +1 -1
  210. package/lib/components/InteractionNotification/InteractionNotification.js.map +1 -1
  211. package/lib/components/Predictions/Predictions.d.ts +2 -3
  212. package/lib/components/Predictions/Predictions.d.ts.map +1 -1
  213. package/lib/components/Predictions/Predictions.js +1 -0
  214. package/lib/components/Predictions/Predictions.js.map +1 -1
  215. package/lib/components/SearchResults/ActiveFilter.d.ts +1 -2
  216. package/lib/components/SearchResults/ActiveFilter.d.ts.map +1 -1
  217. package/lib/components/SearchResults/Filter.d.ts.map +1 -1
  218. package/lib/components/SearchResults/Filter.js.map +1 -1
  219. package/lib/components/SearchResults/SearchResult.d.ts.map +1 -1
  220. package/lib/components/SearchResults/SearchResults.d.ts +2 -3
  221. package/lib/components/SearchResults/SearchResults.d.ts.map +1 -1
  222. package/lib/components/SearchResults/SearchResults.js +1 -2
  223. package/lib/components/SearchResults/SearchResults.js.map +1 -1
  224. package/lib/components/SearchResults/SearchResults.styles.d.ts +1 -2
  225. package/lib/components/SearchResults/SearchResults.styles.d.ts.map +1 -1
  226. package/lib/components/Stages/StageGlimpse.js +1 -1
  227. package/lib/components/Stages/StageGlimpse.js.map +1 -1
  228. package/lib/components/Stages/Stages.d.ts +2 -3
  229. package/lib/components/Stages/Stages.d.ts.map +1 -1
  230. package/lib/components/Stages/Stages.js +4 -1
  231. package/lib/components/Stages/Stages.js.map +1 -1
  232. package/lib/components/Stages/Stages.styles.d.ts +7 -6
  233. package/lib/components/Stages/Stages.styles.d.ts.map +1 -1
  234. package/lib/components/Stages/Stages.styles.js +7 -5
  235. package/lib/components/Stages/Stages.styles.js.map +1 -1
  236. package/lib/components/Stakeholders/StakeholderForm.d.ts +1 -2
  237. package/lib/components/Stakeholders/StakeholderForm.d.ts.map +1 -1
  238. package/lib/components/Stakeholders/StakeholderForm.js.map +1 -1
  239. package/lib/components/Stakeholders/Stakeholders.d.ts +2 -3
  240. package/lib/components/Stakeholders/Stakeholders.d.ts.map +1 -1
  241. package/lib/components/Stakeholders/Stakeholders.js +37 -26
  242. package/lib/components/Stakeholders/Stakeholders.js.map +1 -1
  243. package/lib/components/Tags/Tags.d.ts +5 -5
  244. package/lib/components/Tags/Tags.d.ts.map +1 -1
  245. package/lib/components/Tags/Tags.js.map +1 -1
  246. package/lib/components/Tasks/TaskList.d.ts +13 -8
  247. package/lib/components/Tasks/TaskList.d.ts.map +1 -1
  248. package/lib/components/Tasks/TaskList.js +15 -7
  249. package/lib/components/Tasks/TaskList.js.map +1 -1
  250. package/lib/components/Tasks/Tasks.d.ts +8 -3
  251. package/lib/components/Tasks/Tasks.d.ts.map +1 -1
  252. package/lib/components/Tasks/Tasks.js +14 -4
  253. package/lib/components/Tasks/Tasks.js.map +1 -1
  254. package/lib/components/Tasks/Tasks.test-ids.d.ts +3 -3
  255. package/lib/components/Tasks/Tasks.test-ids.d.ts.map +1 -1
  256. package/lib/components/Timeline/Timeline.d.ts +3 -3
  257. package/lib/components/Timeline/Timeline.d.ts.map +1 -1
  258. package/lib/components/Timeline/Timeline.js +9 -2
  259. package/lib/components/Timeline/Timeline.js.map +1 -1
  260. package/lib/components/Timeline/Timeline.styles.d.ts +5 -6
  261. package/lib/components/Timeline/Timeline.styles.d.ts.map +1 -1
  262. package/lib/components/Timeline/Timeline.styles.js +8 -3
  263. package/lib/components/Timeline/Timeline.styles.js.map +1 -1
  264. package/lib/components/Timeline/Timeline.types.d.ts +11 -1
  265. package/lib/components/Timeline/Timeline.types.d.ts.map +1 -1
  266. package/lib/components/Timeline/Timeline.types.js.map +1 -1
  267. package/lib/components/Timeline/TimelineItem.d.ts +1 -2
  268. package/lib/components/Timeline/TimelineItem.d.ts.map +1 -1
  269. package/lib/components/Timeline/TimelineItem.js +10 -9
  270. package/lib/components/Timeline/TimelineItem.js.map +1 -1
  271. package/lib/components/Timeline/TimelineToolbar.d.ts +2 -3
  272. package/lib/components/Timeline/TimelineToolbar.d.ts.map +1 -1
  273. package/lib/components/Timeline/TimelineToolbar.js.map +1 -1
  274. package/lib/components/Timeline/utils.js.map +1 -1
  275. package/lib/components/UtilitiesLayout/UtilitiesLayout.d.ts +5 -0
  276. package/lib/components/UtilitiesLayout/UtilitiesLayout.d.ts.map +1 -1
  277. package/lib/components/UtilitiesLayout/UtilitiesLayout.js +3 -3
  278. package/lib/components/UtilitiesLayout/UtilitiesLayout.js.map +1 -1
  279. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.d.ts +2 -4
  280. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.d.ts.map +1 -1
  281. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.js +2 -5
  282. package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.js.map +1 -1
  283. package/package.json +10 -9
  284. package/lib/components/HierarchicalAssignments/AssignmentContainer.d.ts +0 -33
  285. package/lib/components/HierarchicalAssignments/AssignmentContainer.d.ts.map +0 -1
  286. package/lib/components/HierarchicalAssignments/AssignmentContainer.js +0 -46
  287. package/lib/components/HierarchicalAssignments/AssignmentContainer.js.map +0 -1
  288. package/lib/components/HierarchicalAssignments/AssignmentItem.d.ts +0 -11
  289. package/lib/components/HierarchicalAssignments/AssignmentItem.d.ts.map +0 -1
  290. package/lib/components/HierarchicalAssignments/AssignmentItem.js +0 -22
  291. package/lib/components/HierarchicalAssignments/AssignmentItem.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssignmentItem.js","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/AssignmentItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRef, useContext, useCallback } from 'react';\nimport type { MouseEvent, KeyboardEvent, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport {\n Grid,\n Flex,\n Button,\n useI18n,\n withTestIds,\n useTestIds,\n cap,\n useDirection,\n Text,\n VisuallyHiddenText,\n useElement,\n Tooltip\n} from '@pega/cosmos-react-core';\n\nimport {\n StyledAssignmentItem,\n StyledProcessContainer,\n StyledActionContainer,\n StyledAssigneeContainer,\n StyledLabelContainer,\n StyledNode,\n StyledAssigneeText,\n StyledAssignmentItemMetaList\n} from '../Assignments.styles';\nimport type { AssignmentProps } from '../HierarchicalAssignments.types';\nimport { getAssignmentTestIds } from '../HierarchicalAssignments.test-ids';\nimport AssignmentTreeContext from '../AssignmentContext';\nimport AssignmentDetails from '../AssignmentDetail';\n\nimport useNodeFocus from './useNodeFocus';\n\ninterface AssignmentItemProps extends AssignmentProps {\n /** Property defines the node's level */\n depth: number;\n}\n\nconst StyledHiddenText = styled(VisuallyHiddenText)`\n width: 0;\n`;\n\nexport const PauseTextNode = ({ children }: { children: ReactNode }) => {\n return (\n <>\n {children}\n <StyledHiddenText>, </StyledHiddenText>\n </>\n );\n};\n\nconst AssignmentItem = ({\n name,\n processName,\n assigneeName,\n urgency,\n sla,\n depth,\n id,\n assigneeId,\n onOpen,\n onAssigneeClick\n}: AssignmentItemProps) => {\n const {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n changeFocusHandler,\n caseIdExpandList,\n isMediumOrAbove,\n parentRef\n } = useContext(AssignmentTreeContext);\n const assignmentRef = useRef<HTMLLIElement>(null);\n\n const {\n parentNodeTabIndex,\n childElementsTabIndex,\n isNodeInternalFocus,\n lastNode,\n setIsNodeInternalFocus,\n escapeNodeHandler\n } = useNodeFocus(id, assignmentRef, parentRef, {\n firstNodeId,\n focusedNodeId,\n lastNodeId\n });\n\n const { start } = useDirection();\n\n const t = useI18n();\n const [assigneeEl, setAssigneeElement] = useElement<HTMLElement>();\n const testIds = useTestIds('', getAssignmentTestIds);\n\n const navigationHandler = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) e.preventDefault();\n switch (e.key) {\n case 'ArrowUp':\n changeFocusHandler(id, 'up', caseIdExpandList);\n break;\n case 'ArrowDown':\n changeFocusHandler(id, 'down', caseIdExpandList);\n break;\n case `Arrow${cap(start)}`:\n if (depth > 0) {\n changeFocusHandler(id, 'left', caseIdExpandList);\n }\n break;\n case 'Home':\n if (firstNodeId) changeFocusHandler(firstNodeId);\n break;\n case 'End':\n if (lastNodeId) changeFocusHandler(lastNodeId);\n break;\n default:\n }\n },\n [id, firstNodeId, lastNodeId, depth, caseIdExpandList]\n );\n\n return (\n <StyledNode\n data-testid={testIds.root}\n role='treeitem'\n aria-selected={isNodeInternalFocus ? false : parentNodeTabIndex === 0}\n aria-labelledby={id}\n ref={assignmentRef}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === 'Enter' && !isNodeInternalFocus) {\n setIsNodeInternalFocus?.(true);\n return;\n }\n\n if (e.key === 'Escape' && isNodeInternalFocus) {\n changeFocusHandler(id);\n setIsNodeInternalFocus?.(false);\n escapeNodeHandler();\n return;\n }\n\n if (!isNodeInternalFocus) {\n navigationHandler(e);\n }\n }}\n onClick={(e: MouseEvent<HTMLLIElement>) => {\n e.stopPropagation();\n changeFocusHandler(id);\n }}\n tabIndex={isNodeInternalFocus ? -1 : parentNodeTabIndex}\n isNodeInternalFocus={isNodeInternalFocus}\n isFocus={isNodeInternalFocus ? false : parentNodeTabIndex === 0}\n lastNode={lastNode}\n depth={depth}\n >\n <Grid\n container={{\n alignItems: 'center',\n cols: isMediumOrAbove ? '2fr 2fr auto' : '2fr 0.5fr',\n colGap: isMediumOrAbove ? 3 : 0,\n rows: isMediumOrAbove ? 'repeat(1, auto)' : 'repeat(2, auto)'\n }}\n as={StyledAssignmentItem}\n >\n <VisuallyHiddenText>{`${t('assignment_announcement_label')}`}</VisuallyHiddenText>\n <Flex\n data-testid={testIds.label}\n container={{ alignItems: 'center' }}\n as={StyledProcessContainer}\n depth={depth}\n >\n <PauseTextNode>\n <AssignmentDetails processName={processName} name={name} />\n </PauseTextNode>\n </Flex>\n <Flex\n data-testid={testIds.assignee}\n container={{ justify: isMediumOrAbove ? 'end' : 'start' }}\n as={StyledAssigneeContainer}\n depth={depth}\n variant='secondary'\n >\n <StyledAssignmentItemMetaList\n wrapItems\n items={[\n <>\n <StyledAssigneeText\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n onAssigneeClick(assigneeId, e);\n }}\n variant='link'\n ref={setAssigneeElement}\n data-testid={testIds.assignee}\n tabIndex={childElementsTabIndex}\n >\n <PauseTextNode>{assigneeName}</PauseTextNode>\n </StyledAssigneeText>\n <Tooltip target={assigneeEl} smart>\n {assigneeName}\n </Tooltip>\n </>,\n sla && (\n <Text variant='secondary' data-testid={testIds.sla}>\n <PauseTextNode>{sla}</PauseTextNode>\n </Text>\n ),\n <>\n <Text variant='secondary' as={StyledLabelContainer} data-testid={testIds.urgency}>\n {t('assignment_item_urgency')}\n </Text>\n <Text variant='secondary'>\n <PauseTextNode>{urgency}</PauseTextNode>\n </Text>\n </>\n ]}\n />\n </Flex>\n <Flex\n as={StyledActionContainer}\n container={{ justify: 'end' }}\n isMediumOrAbove={isMediumOrAbove}\n >\n {onOpen && (\n <Button\n data-testid={testIds.action}\n compact\n variant='primary'\n onClick={(e: MouseEvent<HTMLButtonElement>) => onOpen(id, e)}\n tabIndex={childElementsTabIndex}\n >\n {t('go')}\n </Button>\n )}\n </Flex>\n </Grid>\n </StyledNode>\n );\n};\n\nexport default withTestIds(AssignmentItem, getAssignmentTestIds);\n"]}
@@ -0,0 +1,23 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { CaseListProps } from '../HierarchicalAssignments.types';
3
+ interface CaseDetailsProps extends Omit<CaseListProps, 'children'> {
4
+ /** Property defines the node's depth level */
5
+ depth: number;
6
+ /** Boolean that refers the current case has children or not */
7
+ hasChildren: boolean;
8
+ /** Callback to trigger on case Expand button */
9
+ onExpandButtonClickHandler?: () => void;
10
+ /** Boolean that refers current case expanded state */
11
+ open: boolean;
12
+ /** Number that refers no of assignments */
13
+ assignmentsCount?: number;
14
+ /** Number that refers no of childcases */
15
+ childCasesCount?: number;
16
+ /** Renders of Children of Case, List of Assignments or Child Case */
17
+ children?: ReactNode;
18
+ }
19
+ declare const _default: (({ hasChildren, depth, id, open, onExpandButtonClickHandler, link, name, status, assignmentsCount, childCasesCount, children }: CaseDetailsProps) => import("react/jsx-runtime").JSX.Element) & {
20
+ getTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["toggle-action", "label", "id", "status"]>;
21
+ };
22
+ export default _default;
23
+ //# sourceMappingURL=CaseDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaseDetail.d.ts","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/CaseDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAiBlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAgBtE,UAAU,gBAAiB,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IAChE,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,sDAAsD;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;yJAsCE,gBAAgB;;;AAmMnB,wBAAuD"}
@@ -0,0 +1,108 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext, useRef, useCallback, useMemo } from 'react';
3
+ import { Flex, Icon, Text, Link, Status, withTestIds, useTestIds, cap, useDirection, VisuallyHiddenText, useI18n } from '@pega/cosmos-react-core';
4
+ import { getCaseTestIds } from '../HierarchicalAssignments.test-ids';
5
+ import { StyledExpandButton, StyledHeaderContainer, StyledLinkContainer, StyledMetaListContainer, StyledMetaIdStatusContainer, StyledSummaryItem, StyledNode } from '../Assignments.styles';
6
+ import AssignmentTreeContext from '../AssignmentContext';
7
+ import useNodeFocus from './useNodeFocus';
8
+ import { PauseTextNode } from './AssignmentItem';
9
+ const getChildrenMessage = (t, assignmentsCount, childCasesCount) => {
10
+ const assignmentText = t('assignments_count', [assignmentsCount ?? 0], {
11
+ count: assignmentsCount
12
+ });
13
+ const childCaseText = t('child_case_count', [childCasesCount ?? 0], {
14
+ count: childCasesCount
15
+ });
16
+ if (assignmentsCount && childCasesCount) {
17
+ return t('combined_children_message', [assignmentText, childCaseText]);
18
+ }
19
+ if (assignmentsCount) {
20
+ return t('children_message', [assignmentText]);
21
+ }
22
+ if (childCasesCount) {
23
+ return t('children_message', [childCaseText]);
24
+ }
25
+ return '';
26
+ };
27
+ const CaseDetail = ({ hasChildren, depth, id, open, onExpandButtonClickHandler, link, name, status, assignmentsCount, childCasesCount, children }) => {
28
+ const { variant, text } = status || {};
29
+ const { firstNodeId, focusedNodeId, lastNodeId, changeFocusHandler, caseIdExpandList, isMediumOrAbove, parentRef } = useContext(AssignmentTreeContext);
30
+ const testIds = useTestIds('', getCaseTestIds);
31
+ const { start, end } = useDirection();
32
+ const caseHeaderRef = useRef(null);
33
+ const indent = depth !== 1 && !hasChildren;
34
+ const { parentNodeTabIndex, childElementsTabIndex, isNodeInternalFocus, lastNode, setIsNodeInternalFocus, escapeNodeHandler } = useNodeFocus(id, caseHeaderRef, parentRef, {
35
+ firstNodeId,
36
+ focusedNodeId,
37
+ lastNodeId
38
+ });
39
+ const t = useI18n();
40
+ const navigationHandler = useCallback((e) => {
41
+ if (['ArrowUp', 'ArrowDown'].includes(e.key))
42
+ e.preventDefault();
43
+ switch (e.key) {
44
+ case 'ArrowUp':
45
+ changeFocusHandler(id, 'up', caseIdExpandList);
46
+ break;
47
+ case 'ArrowDown':
48
+ changeFocusHandler(id, 'down', caseIdExpandList);
49
+ break;
50
+ case `Arrow${cap(start)}`:
51
+ if (open) {
52
+ onExpandButtonClickHandler?.();
53
+ }
54
+ else {
55
+ changeFocusHandler(id, 'left', caseIdExpandList);
56
+ }
57
+ break;
58
+ case `Arrow${cap(end)}`:
59
+ if (hasChildren) {
60
+ if (!open) {
61
+ onExpandButtonClickHandler?.();
62
+ }
63
+ else {
64
+ changeFocusHandler(id, 'right', caseIdExpandList);
65
+ }
66
+ }
67
+ break;
68
+ case 'Home':
69
+ if (firstNodeId)
70
+ changeFocusHandler(firstNodeId);
71
+ break;
72
+ case 'End':
73
+ if (lastNodeId)
74
+ changeFocusHandler(lastNodeId);
75
+ break;
76
+ default:
77
+ }
78
+ }, [id, firstNodeId, lastNodeId, depth, open, hasChildren, caseIdExpandList]);
79
+ const childrenMessage = getChildrenMessage(t, assignmentsCount, childCasesCount);
80
+ const caseDescriptionContainer = useMemo(() => (_jsx(PauseTextNode, { children: _jsx(StyledLinkContainer, { isMediumOrAbove: isMediumOrAbove, children: _jsx(Link, { "data-testid": testIds.label, href: link.href, previewable: true, onPreview: link.onPreview, target: link?.target, icon: true, tabIndex: childElementsTabIndex, children: name }) }, `${id}-caseName`) })), [isMediumOrAbove, name, id, link, testIds, childElementsTabIndex]);
81
+ const caseIdStatusContainer = useMemo(() => (_jsx(StyledMetaIdStatusContainer, { wrapItems: false, items: [
82
+ _jsx(PauseTextNode, { children: _jsx(Text, { "data-testid": testIds.id, variant: 'secondary', children: id }) }, `${id}-id`),
83
+ _jsx(PauseTextNode, { children: _jsx(Status, { "data-testid": testIds.status, variant: variant ?? 'info', children: text }) }, `${id}-status`)
84
+ ] }, `${id}-id-status`)), [id, variant, text, testIds]);
85
+ const metaList = useMemo(() => [caseDescriptionContainer, caseIdStatusContainer], [caseDescriptionContainer, caseIdStatusContainer]);
86
+ return (_jsxs(StyledNode, { "data-testid": testIds.root, role: 'treeitem', "aria-selected": isNodeInternalFocus ? false : parentNodeTabIndex === 0, "aria-expanded": hasChildren && !isNodeInternalFocus ? open : undefined, tabIndex: isNodeInternalFocus ? -1 : parentNodeTabIndex, "aria-labelledby": id, "aria-owns": hasChildren ? `${id}-subtree` : undefined, ref: caseHeaderRef, onKeyDown: (e) => {
87
+ e.stopPropagation();
88
+ if (e.key === 'Enter' && !isNodeInternalFocus) {
89
+ e.preventDefault();
90
+ setIsNodeInternalFocus?.(true);
91
+ return;
92
+ }
93
+ if (e.key === 'Escape' && isNodeInternalFocus) {
94
+ changeFocusHandler(id);
95
+ setIsNodeInternalFocus?.(false);
96
+ escapeNodeHandler();
97
+ return;
98
+ }
99
+ if (!isNodeInternalFocus) {
100
+ navigationHandler(e);
101
+ }
102
+ }, onClick: (e) => {
103
+ e.stopPropagation();
104
+ changeFocusHandler(id);
105
+ }, isNodeInternalFocus: isNodeInternalFocus, isFocus: isNodeInternalFocus ? false : parentNodeTabIndex === 0, lastNode: lastNode, isChild: true, depth: depth, children: [_jsxs(Flex, { as: StyledHeaderContainer, container: { alignItems: 'center', gap: 1 }, depth: depth, children: [hasChildren ? (_jsxs(_Fragment, { children: [_jsx(StyledExpandButton, { "data-testid": testIds.toggleAction, type: 'button', variant: 'text', "aria-expanded": open, onClick: () => onExpandButtonClickHandler?.(), tabIndex: childElementsTabIndex, "aria-label": t('case'), children: _jsx(Icon, { name: 'caret-right' }) }), _jsx(VisuallyHiddenText, { children: ":" })] })) : (_jsx(VisuallyHiddenText, { children: `${t('case_announcement_label')}` })), isMediumOrAbove ? (_jsx(StyledMetaListContainer, { role: 'none', isMediumOrAbove: isMediumOrAbove, indent: indent, wrapItems: true, items: metaList })) : (_jsx(StyledSummaryItem, { indent: indent, primary: metaList[0], secondary: metaList[1] })), hasChildren && _jsx(VisuallyHiddenText, { children: childrenMessage })] }), children || null] }));
106
+ };
107
+ export default withTestIds(CaseDetail, getCaseTestIds);
108
+ //# sourceMappingURL=CaseDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaseDetail.js","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/CaseDetail.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useRef, useCallback, useMemo } from 'react';\nimport type { KeyboardEvent, MouseEvent, ReactNode } from 'react';\n\nimport {\n Flex,\n Icon,\n Text,\n Link,\n Status,\n withTestIds,\n useTestIds,\n cap,\n useDirection,\n VisuallyHiddenText,\n useI18n\n} from '@pega/cosmos-react-core';\nimport type { TranslationPack, TranslationFunction } from '@pega/cosmos-react-core';\n\nimport type { CaseListProps } from '../HierarchicalAssignments.types';\nimport { getCaseTestIds } from '../HierarchicalAssignments.test-ids';\nimport {\n StyledExpandButton,\n StyledHeaderContainer,\n StyledLinkContainer,\n StyledMetaListContainer,\n StyledMetaIdStatusContainer,\n StyledSummaryItem,\n StyledNode\n} from '../Assignments.styles';\nimport AssignmentTreeContext from '../AssignmentContext';\n\nimport useNodeFocus from './useNodeFocus';\nimport { PauseTextNode } from './AssignmentItem';\n\ninterface CaseDetailsProps extends Omit<CaseListProps, 'children'> {\n /** Property defines the node's depth level */\n depth: number;\n /** Boolean that refers the current case has children or not */\n hasChildren: boolean;\n /** Callback to trigger on case Expand button */\n onExpandButtonClickHandler?: () => void;\n /** Boolean that refers current case expanded state */\n open: boolean;\n /** Number that refers no of assignments */\n assignmentsCount?: number;\n /** Number that refers no of childcases */\n childCasesCount?: number;\n /** Renders of Children of Case, List of Assignments or Child Case */\n children?: ReactNode;\n}\n\nconst getChildrenMessage = (\n t: TranslationFunction<TranslationPack>,\n assignmentsCount?: CaseDetailsProps['assignmentsCount'],\n childCasesCount?: CaseDetailsProps['childCasesCount']\n) => {\n const assignmentText = t('assignments_count', [assignmentsCount ?? 0], {\n count: assignmentsCount\n });\n const childCaseText = t('child_case_count', [childCasesCount ?? 0], {\n count: childCasesCount\n });\n\n if (assignmentsCount && childCasesCount) {\n return t('combined_children_message', [assignmentText, childCaseText]);\n }\n if (assignmentsCount) {\n return t('children_message', [assignmentText]);\n }\n if (childCasesCount) {\n return t('children_message', [childCaseText]);\n }\n return '';\n};\n\nconst CaseDetail = ({\n hasChildren,\n depth,\n id,\n open,\n onExpandButtonClickHandler,\n link,\n name,\n status,\n assignmentsCount,\n childCasesCount,\n children\n}: CaseDetailsProps) => {\n const { variant, text } = status || {};\n const {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n changeFocusHandler,\n caseIdExpandList,\n isMediumOrAbove,\n parentRef\n } = useContext(AssignmentTreeContext);\n const testIds = useTestIds('', getCaseTestIds);\n const { start, end } = useDirection();\n const caseHeaderRef = useRef<HTMLLIElement>(null);\n const indent = depth !== 1 && !hasChildren;\n\n const {\n parentNodeTabIndex,\n childElementsTabIndex,\n isNodeInternalFocus,\n lastNode,\n setIsNodeInternalFocus,\n escapeNodeHandler\n } = useNodeFocus(id, caseHeaderRef, parentRef, {\n firstNodeId,\n focusedNodeId,\n lastNodeId\n });\n\n const t = useI18n();\n\n const navigationHandler = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) e.preventDefault();\n switch (e.key) {\n case 'ArrowUp':\n changeFocusHandler(id, 'up', caseIdExpandList);\n break;\n case 'ArrowDown':\n changeFocusHandler(id, 'down', caseIdExpandList);\n break;\n case `Arrow${cap(start)}`:\n if (open) {\n onExpandButtonClickHandler?.();\n } else {\n changeFocusHandler(id, 'left', caseIdExpandList);\n }\n break;\n case `Arrow${cap(end)}`:\n if (hasChildren) {\n if (!open) {\n onExpandButtonClickHandler?.();\n } else {\n changeFocusHandler(id, 'right', caseIdExpandList);\n }\n }\n break;\n case 'Home':\n if (firstNodeId) changeFocusHandler(firstNodeId);\n break;\n case 'End':\n if (lastNodeId) changeFocusHandler(lastNodeId);\n break;\n default:\n }\n },\n [id, firstNodeId, lastNodeId, depth, open, hasChildren, caseIdExpandList]\n );\n\n const childrenMessage = getChildrenMessage(t, assignmentsCount, childCasesCount);\n\n const caseDescriptionContainer = useMemo(\n () => (\n <PauseTextNode>\n <StyledLinkContainer isMediumOrAbove={isMediumOrAbove} key={`${id}-caseName`}>\n <Link\n data-testid={testIds.label}\n href={link.href}\n previewable\n onPreview={link.onPreview}\n target={link?.target}\n icon\n tabIndex={childElementsTabIndex}\n >\n {name}\n </Link>\n </StyledLinkContainer>\n </PauseTextNode>\n ),\n [isMediumOrAbove, name, id, link, testIds, childElementsTabIndex]\n );\n\n const caseIdStatusContainer = useMemo(\n () => (\n <StyledMetaIdStatusContainer\n key={`${id}-id-status`}\n wrapItems={false}\n items={[\n <PauseTextNode key={`${id}-id`}>\n <Text data-testid={testIds.id} variant='secondary'>\n {id}\n </Text>\n </PauseTextNode>,\n <PauseTextNode key={`${id}-status`}>\n <Status data-testid={testIds.status} variant={variant ?? 'info'}>\n {text}\n </Status>\n </PauseTextNode>\n ]}\n />\n ),\n [id, variant, text, testIds]\n );\n\n const metaList = useMemo(\n () => [caseDescriptionContainer, caseIdStatusContainer],\n [caseDescriptionContainer, caseIdStatusContainer]\n );\n\n return (\n <StyledNode\n data-testid={testIds.root}\n role='treeitem'\n aria-selected={isNodeInternalFocus ? false : parentNodeTabIndex === 0}\n aria-expanded={hasChildren && !isNodeInternalFocus ? open : undefined}\n tabIndex={isNodeInternalFocus ? -1 : parentNodeTabIndex}\n aria-labelledby={id}\n aria-owns={hasChildren ? `${id}-subtree` : undefined}\n ref={caseHeaderRef}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === 'Enter' && !isNodeInternalFocus) {\n e.preventDefault();\n setIsNodeInternalFocus?.(true);\n return;\n }\n\n if (e.key === 'Escape' && isNodeInternalFocus) {\n changeFocusHandler(id);\n setIsNodeInternalFocus?.(false);\n escapeNodeHandler();\n return;\n }\n\n if (!isNodeInternalFocus) {\n navigationHandler(e);\n }\n }}\n onClick={(e: MouseEvent<HTMLLIElement>) => {\n e.stopPropagation();\n changeFocusHandler(id);\n }}\n isNodeInternalFocus={isNodeInternalFocus}\n isFocus={isNodeInternalFocus ? false : parentNodeTabIndex === 0}\n lastNode={lastNode}\n isChild\n depth={depth}\n >\n <Flex as={StyledHeaderContainer} container={{ alignItems: 'center', gap: 1 }} depth={depth}>\n {hasChildren ? (\n <>\n <StyledExpandButton\n data-testid={testIds.toggleAction}\n type='button'\n variant='text'\n aria-expanded={open}\n onClick={() => onExpandButtonClickHandler?.()}\n tabIndex={childElementsTabIndex}\n aria-label={t('case')}\n >\n <Icon name='caret-right' />\n </StyledExpandButton>\n <VisuallyHiddenText>:</VisuallyHiddenText>\n </>\n ) : (\n <VisuallyHiddenText>{`${t('case_announcement_label')}`}</VisuallyHiddenText>\n )}\n {isMediumOrAbove ? (\n <StyledMetaListContainer\n role='none'\n isMediumOrAbove={isMediumOrAbove}\n indent={indent}\n wrapItems\n items={metaList}\n />\n ) : (\n <StyledSummaryItem indent={indent} primary={metaList[0]} secondary={metaList[1]} />\n )}\n {hasChildren && <VisuallyHiddenText>{childrenMessage}</VisuallyHiddenText>}\n </Flex>\n {children || null}\n </StyledNode>\n );\n};\n\nexport default withTestIds(CaseDetail, getCaseTestIds);\n"]}
@@ -0,0 +1,24 @@
1
+ import type { RefObject } from 'react';
2
+ import { type OmitStrict } from '@pega/cosmos-react-core';
3
+ import type { AssignmentProps, CaseListProps } from '../HierarchicalAssignments.types';
4
+ type Id = AssignmentProps['id'] | CaseListProps['id'];
5
+ interface NodeFocusProps {
6
+ elementRef: RefObject<HTMLLIElement>;
7
+ id: Id;
8
+ firstNodeId?: Id;
9
+ focusedNodeId?: Id;
10
+ lastNodeId?: Id;
11
+ parentRef?: RefObject<HTMLUListElement>;
12
+ }
13
+ declare const useNodeFocus: (id: NodeFocusProps["id"], elementRef: NodeFocusProps["elementRef"], parentRef?: NodeFocusProps["parentRef"], { firstNodeId, focusedNodeId, lastNodeId }?: OmitStrict<NodeFocusProps, "elementRef" | "parentRef" | "id">) => {
14
+ focusedNode: boolean;
15
+ firstNode: boolean;
16
+ lastNode: boolean;
17
+ parentNodeTabIndex: number;
18
+ isNodeInternalFocus: boolean;
19
+ childElementsTabIndex: number;
20
+ setIsNodeInternalFocus: import("react").Dispatch<import("react").SetStateAction<boolean>>;
21
+ escapeNodeHandler: () => void;
22
+ };
23
+ export default useNodeFocus;
24
+ //# sourceMappingURL=useNodeFocus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeFocus.d.ts","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/useNodeFocus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGvF,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAEtD,UAAU,cAAc;IACtB,UAAU,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACrC,EAAE,EAAE,EAAE,CAAC;IACP,WAAW,CAAC,EAAE,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;CACzC;AAED,QAAA,MAAM,YAAY,OACZ,cAAc,CAAC,IAAI,CAAC,cACZ,cAAc,CAAC,YAAY,CAAC,cAC5B,cAAc,CAAC,WAAW,CAAC,+CAKpC,UAAU,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC;;;;;;;;;CAyDjE,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { useState, useMemo, useEffect } from 'react';
2
+ import { useFocusTrap, getFocusables } from '@pega/cosmos-react-core';
3
+ import { scrollChildIntoView } from '../helpers';
4
+ const useNodeFocus = (id, elementRef, parentRef, { firstNodeId, focusedNodeId, lastNodeId } = {}) => {
5
+ const [isNodeInternalFocus, setIsNodeInternalFocus] = useState(false);
6
+ const focusedNode = focusedNodeId === id;
7
+ const firstNode = firstNodeId === id;
8
+ const lastNode = lastNodeId === id;
9
+ const childElementsTabIndex = isNodeInternalFocus ? 0 : -1;
10
+ const focusTrapRef = isNodeInternalFocus ? elementRef || null : null;
11
+ useFocusTrap(focusTrapRef, false, [isNodeInternalFocus]);
12
+ const parentNodeTabIndex = useMemo(() => {
13
+ let index = -1;
14
+ if (focusedNodeId) {
15
+ index = focusedNode ? 0 : -1;
16
+ }
17
+ else {
18
+ index = firstNode ? 0 : -1;
19
+ }
20
+ return index;
21
+ }, [focusedNodeId, focusedNode]);
22
+ const escapeNodeHandler = () => {
23
+ elementRef.current?.focus();
24
+ };
25
+ useEffect(() => {
26
+ if (isNodeInternalFocus) {
27
+ const focusables = getFocusables(elementRef);
28
+ focusables[0]?.focus();
29
+ }
30
+ }, [isNodeInternalFocus]);
31
+ useEffect(() => {
32
+ if (focusedNode && !isNodeInternalFocus) {
33
+ elementRef.current?.focus();
34
+ scrollChildIntoView(parentRef, elementRef);
35
+ }
36
+ }, [focusedNode, isNodeInternalFocus]);
37
+ useEffect(() => {
38
+ if (parentNodeTabIndex === -1) {
39
+ setIsNodeInternalFocus(false);
40
+ }
41
+ }, [parentNodeTabIndex]);
42
+ return {
43
+ focusedNode,
44
+ firstNode,
45
+ lastNode,
46
+ parentNodeTabIndex,
47
+ isNodeInternalFocus,
48
+ childElementsTabIndex,
49
+ setIsNodeInternalFocus,
50
+ escapeNodeHandler
51
+ };
52
+ };
53
+ export default useNodeFocus;
54
+ //# sourceMappingURL=useNodeFocus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeFocus.js","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/useNodeFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,yBAAyB,CAAC;AAGvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAajD,MAAM,YAAY,GAAG,CACnB,EAAwB,EACxB,UAAwC,EACxC,SAAuC,EACvC,EACE,WAAW,EACX,aAAa,EACb,UAAU,KACuD,EAAE,EACrE,EAAE;IACF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,aAAa,KAAK,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,WAAW,KAAK,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,UAAU,KAAK,EAAE,CAAC;IAEnC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEzD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjC,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9B,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,OAAO;QACL,WAAW;QACX,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,mBAAmB;QACnB,qBAAqB;QACrB,sBAAsB;QACtB,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import { useState, useMemo, useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nimport { useFocusTrap, getFocusables, type OmitStrict } from '@pega/cosmos-react-core';\n\nimport type { AssignmentProps, CaseListProps } from '../HierarchicalAssignments.types';\nimport { scrollChildIntoView } from '../helpers';\n\ntype Id = AssignmentProps['id'] | CaseListProps['id'];\n\ninterface NodeFocusProps {\n elementRef: RefObject<HTMLLIElement>;\n id: Id;\n firstNodeId?: Id;\n focusedNodeId?: Id;\n lastNodeId?: Id;\n parentRef?: RefObject<HTMLUListElement>;\n}\n\nconst useNodeFocus = (\n id: NodeFocusProps['id'],\n elementRef: NodeFocusProps['elementRef'],\n parentRef?: NodeFocusProps['parentRef'],\n {\n firstNodeId,\n focusedNodeId,\n lastNodeId\n }: OmitStrict<NodeFocusProps, 'elementRef' | 'parentRef' | 'id'> = {}\n) => {\n const [isNodeInternalFocus, setIsNodeInternalFocus] = useState(false);\n\n const focusedNode = focusedNodeId === id;\n const firstNode = firstNodeId === id;\n const lastNode = lastNodeId === id;\n\n const childElementsTabIndex = isNodeInternalFocus ? 0 : -1;\n\n const focusTrapRef = isNodeInternalFocus ? elementRef || null : null;\n useFocusTrap(focusTrapRef, false, [isNodeInternalFocus]);\n\n const parentNodeTabIndex = useMemo(() => {\n let index = -1;\n if (focusedNodeId) {\n index = focusedNode ? 0 : -1;\n } else {\n index = firstNode ? 0 : -1;\n }\n return index;\n }, [focusedNodeId, focusedNode]);\n\n const escapeNodeHandler = () => {\n elementRef.current?.focus();\n };\n\n useEffect(() => {\n if (isNodeInternalFocus) {\n const focusables = getFocusables(elementRef);\n focusables[0]?.focus();\n }\n }, [isNodeInternalFocus]);\n\n useEffect(() => {\n if (focusedNode && !isNodeInternalFocus) {\n elementRef.current?.focus();\n scrollChildIntoView(parentRef, elementRef);\n }\n }, [focusedNode, isNodeInternalFocus]);\n\n useEffect(() => {\n if (parentNodeTabIndex === -1) {\n setIsNodeInternalFocus(false);\n }\n }, [parentNodeTabIndex]);\n\n return {\n focusedNode,\n firstNode,\n lastNode,\n parentNodeTabIndex,\n isNodeInternalFocus,\n childElementsTabIndex,\n setIsNodeInternalFocus,\n escapeNodeHandler\n };\n};\n\nexport default useNodeFocus;\n"]}
@@ -1,6 +1,5 @@
1
- import type { FunctionComponent } from 'react';
2
- import type { ForwardProps } from '@pega/cosmos-react-core';
1
+ import type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';
3
2
  import type IntelligentGuidanceProps from './IntelligentGuidance.types';
4
- declare const IntelligentGuidance: FunctionComponent<IntelligentGuidanceProps & ForwardProps>;
3
+ declare const IntelligentGuidance: ForwardRefForwardPropsComponent<IntelligentGuidanceProps>;
5
4
  export default IntelligentGuidance;
6
5
  //# sourceMappingURL=IntelligentGuidance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IntelligentGuidance.d.ts","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,iBAAiB,EAAkC,MAAM,OAAO,CAAC;AAgB9F,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,yBAAyB,CAAC;AAQ7E,OAAO,KAAK,wBAAwB,MAAM,6BAA6B,CAAC;AAExE,QAAA,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,wBAAwB,GAAG,YAAY,CAuKnF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"IntelligentGuidance.d.ts","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,+BAA+B,EAAmB,MAAM,yBAAyB,CAAC;AAQhG,OAAO,KAAK,wBAAwB,MAAM,6BAA6B,CAAC;AAExE,QAAA,MAAM,mBAAmB,EAAE,+BAA+B,CAAC,wBAAwB,CA4KlF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef, useEffect, useLayoutEffect, useRef, useState } from 'react';
3
- import { Icon, useI18n, useAfterInitialEffect, Text, Tabs, CardHeader, TabPanel, Flex, Count, Actions, useLiveLog, usePrevious } from '@pega/cosmos-react-core';
3
+ import { Icon, useI18n, useAfterInitialEffect, Text, Tabs, CardHeader, TabPanel, Flex, Count, Actions, useLiveLog, usePrevious, useTheme } from '@pega/cosmos-react-core';
4
4
  import { StyledIntelligentGuidanceList, StyledIntelligentGuidance, StyledNew, StyledBorderLine } from './IntelligentGuidance.styles';
5
5
  const IntelligentGuidance = forwardRef(function IntelligentGuidance({ items, previousItems, heading, isCollapsed, onExpandCollapse, ...restProps }, ref) {
6
6
  const t = useI18n();
7
+ const theme = useTheme();
7
8
  const headerRef = useRef(null);
8
9
  const toggleButtonRef = useRef(null);
9
10
  const tabsRef = useRef(null);
@@ -70,7 +71,9 @@ const IntelligentGuidance = forwardRef(function IntelligentGuidance({ items, pre
70
71
  }, [items, previousItems]);
71
72
  // FIXME: This is a hack to get the Tooltip to reset its position when the list is toggled.
72
73
  useAfterInitialEffect(() => {
73
- if (toggleButtonRef.current && toggleButtonRef.current === document.activeElement) {
74
+ if (toggleButtonRef.current &&
75
+ window.matchMedia(`(min-height: ${theme.base.breakpoints.sm})`).matches &&
76
+ toggleButtonRef.current === document.activeElement) {
74
77
  toggleButtonRef.current.blur();
75
78
  setTimeout(() => {
76
79
  toggleButtonRef.current?.focus();
@@ -1 +1 @@
1
- {"version":3,"file":"IntelligentGuidance.js","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport type { CSSProperties, FunctionComponent, KeyboardEvent, PropsWithoutRef } from 'react';\n\nimport {\n Icon,\n useI18n,\n useAfterInitialEffect,\n Text,\n Tabs,\n CardHeader,\n TabPanel,\n Flex,\n Count,\n Actions,\n useLiveLog,\n usePrevious\n} from '@pega/cosmos-react-core';\nimport type { ForwardProps, SummaryListItem } from '@pega/cosmos-react-core';\n\nimport {\n StyledIntelligentGuidanceList,\n StyledIntelligentGuidance,\n StyledNew,\n StyledBorderLine\n} from './IntelligentGuidance.styles';\nimport type IntelligentGuidanceProps from './IntelligentGuidance.types';\n\nconst IntelligentGuidance: FunctionComponent<IntelligentGuidanceProps & ForwardProps> = forwardRef(\n function IntelligentGuidance(\n {\n items,\n previousItems,\n heading,\n isCollapsed,\n onExpandCollapse,\n ...restProps\n }: PropsWithoutRef<IntelligentGuidanceProps>,\n ref: IntelligentGuidanceProps['ref']\n ) {\n const t = useI18n();\n const headerRef = useRef<HTMLDivElement>(null);\n const toggleButtonRef = useRef<HTMLButtonElement>(null);\n const tabsRef = useRef<HTMLElement>(null);\n const [currentTab, setCurrentTab] = useState('current');\n const { announcePolite } = useLiveLog();\n const oldItems = usePrevious(items);\n const oldPreviousItems = usePrevious(previousItems);\n\n const listItems: SummaryListItem[] = (\n currentTab === 'current' ? items : previousItems ?? []\n ).map(item => {\n return {\n id: item.id,\n visual: <Icon name={item.icon} />,\n primary: (\n <>\n {item.label}\n {item.new && (\n <>\n <StyledNew>{t('new')}</StyledNew>\n {/* Can remove StyledBorderLine when Firefox supports :has selector. */}\n <StyledBorderLine />\n </>\n )}\n </>\n ),\n secondary: <Text variant='secondary'>{item.type}</Text>,\n contextualLabel: item.label,\n actions: item.onDismiss\n ? [\n {\n text: t('dismiss'),\n id: item.id,\n icon: 'times',\n onClick: (id, e) => {\n e.stopPropagation();\n item.onDismiss?.(id, e);\n }\n }\n ]\n : undefined,\n container: { colGap: 1 },\n role: 'button',\n tabIndex: 0,\n 'aria-label': t('continue_label_a11y', [item.label]),\n onClick: item.onClick,\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n item.onClick(e);\n }\n }\n };\n });\n\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useLayoutEffect(() => {\n if (headerRef.current) {\n setHeaderHeight(headerRef.current?.offsetHeight || 0);\n }\n }, [headerRef.current]);\n\n useEffect(() => {\n announcePolite({ message: `${heading} ${items.length + (previousItems?.length ?? 0)}` });\n if (oldItems) {\n const oldItemsIds = oldItems.map(i => i.id);\n const itemsToAnnounce = items.filter(i => !oldItemsIds.includes(i.id));\n if (itemsToAnnounce.length) {\n announcePolite({ message: t('items_added_to_current_list') });\n itemsToAnnounce.forEach(i => announcePolite({ message: `${i.label} ${i.type}` }));\n }\n }\n if (oldPreviousItems) {\n const oldItemsIds = oldPreviousItems.map(i => i.id);\n const itemsToAnnounce = items.filter(i => !oldItemsIds.includes(i.id));\n if (itemsToAnnounce) {\n announcePolite({ message: t('items_added_to_previous_list') });\n itemsToAnnounce.forEach(i => announcePolite({ message: `${i.label} ${i.type}` }));\n }\n }\n }, [items, previousItems]);\n\n // FIXME: This is a hack to get the Tooltip to reset its position when the list is toggled.\n useAfterInitialEffect(() => {\n if (toggleButtonRef.current && toggleButtonRef.current === document.activeElement) {\n toggleButtonRef.current.blur();\n setTimeout(() => {\n toggleButtonRef.current?.focus();\n }, 1000);\n }\n }, [isCollapsed]);\n\n const intelligentGuidanceList = (\n <StyledIntelligentGuidanceList items={listItems} noItemsText={t('no_recommendations')} />\n );\n\n return (\n <StyledIntelligentGuidance\n {...restProps}\n ref={ref}\n role='region'\n isCollapsed={isCollapsed}\n hasItems={!!items.length}\n style={{ '--headerHeight': `${headerHeight}px` } as CSSProperties}\n >\n <CardHeader ref={headerRef}>\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text variant='h2'>{heading}</Text>\n <Count>{items.length + (previousItems?.length ?? 0)}</Count>\n </Flex>\n <Actions\n items={[\n {\n text: t(isCollapsed ? 'expand' : 'collapse'),\n id: 'IntelligentGuidanceButton',\n icon: 'caret-down',\n 'aria-label': isCollapsed\n ? t('expand_noun', [heading])\n : t('collapse_noun', [heading]),\n onClick: onExpandCollapse,\n ref: toggleButtonRef\n }\n ]}\n />\n </CardHeader>\n {previousItems ? (\n <>\n <Tabs\n tabs={[\n {\n id: 'current',\n name: t('current'),\n count: items.filter(item => item.new).length || undefined\n },\n {\n id: 'previous',\n name: t('previous'),\n count: previousItems.filter(item => item.new).length || undefined\n }\n ]}\n currentTabId={currentTab}\n onTabClick={setCurrentTab}\n ref={tabsRef}\n />\n <TabPanel tabId={currentTab} tablistRef={tabsRef}>\n {intelligentGuidanceList}\n </TabPanel>\n </>\n ) : (\n intelligentGuidanceList\n )}\n </StyledIntelligentGuidance>\n );\n }\n);\n\nexport default IntelligentGuidance;\n"]}
1
+ {"version":3,"file":"IntelligentGuidance.js","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport type { CSSProperties, KeyboardEvent, PropsWithoutRef } from 'react';\n\nimport {\n Icon,\n useI18n,\n useAfterInitialEffect,\n Text,\n Tabs,\n CardHeader,\n TabPanel,\n Flex,\n Count,\n Actions,\n useLiveLog,\n usePrevious,\n useTheme\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent, SummaryListItem } from '@pega/cosmos-react-core';\n\nimport {\n StyledIntelligentGuidanceList,\n StyledIntelligentGuidance,\n StyledNew,\n StyledBorderLine\n} from './IntelligentGuidance.styles';\nimport type IntelligentGuidanceProps from './IntelligentGuidance.types';\n\nconst IntelligentGuidance: ForwardRefForwardPropsComponent<IntelligentGuidanceProps> = forwardRef(\n function IntelligentGuidance(\n {\n items,\n previousItems,\n heading,\n isCollapsed,\n onExpandCollapse,\n ...restProps\n }: PropsWithoutRef<IntelligentGuidanceProps>,\n ref: IntelligentGuidanceProps['ref']\n ) {\n const t = useI18n();\n const theme = useTheme();\n const headerRef = useRef<HTMLDivElement>(null);\n const toggleButtonRef = useRef<HTMLButtonElement>(null);\n const tabsRef = useRef<HTMLElement>(null);\n const [currentTab, setCurrentTab] = useState('current');\n const { announcePolite } = useLiveLog();\n const oldItems = usePrevious(items);\n const oldPreviousItems = usePrevious(previousItems);\n\n const listItems: SummaryListItem[] = (\n currentTab === 'current' ? items : previousItems ?? []\n ).map(item => {\n return {\n id: item.id,\n visual: <Icon name={item.icon} />,\n primary: (\n <>\n {item.label}\n {item.new && (\n <>\n <StyledNew>{t('new')}</StyledNew>\n {/* Can remove StyledBorderLine when Firefox supports :has selector. */}\n <StyledBorderLine />\n </>\n )}\n </>\n ),\n secondary: <Text variant='secondary'>{item.type}</Text>,\n contextualLabel: item.label,\n actions: item.onDismiss\n ? [\n {\n text: t('dismiss'),\n id: item.id,\n icon: 'times',\n onClick: (id, e) => {\n e.stopPropagation();\n item.onDismiss?.(id, e);\n }\n }\n ]\n : undefined,\n container: { colGap: 1 },\n role: 'button',\n tabIndex: 0,\n 'aria-label': t('continue_label_a11y', [item.label]),\n onClick: item.onClick,\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n item.onClick(e);\n }\n }\n };\n });\n\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useLayoutEffect(() => {\n if (headerRef.current) {\n setHeaderHeight(headerRef.current?.offsetHeight || 0);\n }\n }, [headerRef.current]);\n\n useEffect(() => {\n announcePolite({ message: `${heading} ${items.length + (previousItems?.length ?? 0)}` });\n if (oldItems) {\n const oldItemsIds = oldItems.map(i => i.id);\n const itemsToAnnounce = items.filter(i => !oldItemsIds.includes(i.id));\n if (itemsToAnnounce.length) {\n announcePolite({ message: t('items_added_to_current_list') });\n itemsToAnnounce.forEach(i => announcePolite({ message: `${i.label} ${i.type}` }));\n }\n }\n if (oldPreviousItems) {\n const oldItemsIds = oldPreviousItems.map(i => i.id);\n const itemsToAnnounce = items.filter(i => !oldItemsIds.includes(i.id));\n if (itemsToAnnounce) {\n announcePolite({ message: t('items_added_to_previous_list') });\n itemsToAnnounce.forEach(i => announcePolite({ message: `${i.label} ${i.type}` }));\n }\n }\n }, [items, previousItems]);\n\n // FIXME: This is a hack to get the Tooltip to reset its position when the list is toggled.\n useAfterInitialEffect(() => {\n if (\n toggleButtonRef.current &&\n window.matchMedia(`(min-height: ${theme.base.breakpoints.sm})`).matches &&\n toggleButtonRef.current === document.activeElement\n ) {\n toggleButtonRef.current.blur();\n setTimeout(() => {\n toggleButtonRef.current?.focus();\n }, 1000);\n }\n }, [isCollapsed]);\n\n const intelligentGuidanceList = (\n <StyledIntelligentGuidanceList items={listItems} noItemsText={t('no_recommendations')} />\n );\n\n return (\n <StyledIntelligentGuidance\n {...restProps}\n ref={ref}\n role='region'\n isCollapsed={isCollapsed}\n hasItems={!!items.length}\n style={{ '--headerHeight': `${headerHeight}px` } as CSSProperties}\n >\n <CardHeader ref={headerRef}>\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text variant='h2'>{heading}</Text>\n <Count>{items.length + (previousItems?.length ?? 0)}</Count>\n </Flex>\n <Actions\n items={[\n {\n text: t(isCollapsed ? 'expand' : 'collapse'),\n id: 'IntelligentGuidanceButton',\n icon: 'caret-down',\n 'aria-label': isCollapsed\n ? t('expand_noun', [heading])\n : t('collapse_noun', [heading]),\n onClick: onExpandCollapse,\n ref: toggleButtonRef\n }\n ]}\n />\n </CardHeader>\n {previousItems ? (\n <>\n <Tabs\n tabs={[\n {\n id: 'current',\n name: t('current'),\n count: items.filter(item => item.new).length || undefined\n },\n {\n id: 'previous',\n name: t('previous'),\n count: previousItems.filter(item => item.new).length || undefined\n }\n ]}\n currentTabId={currentTab}\n onTabClick={setCurrentTab}\n ref={tabsRef}\n />\n <TabPanel tabId={currentTab} tablistRef={tabsRef}>\n {intelligentGuidanceList}\n </TabPanel>\n </>\n ) : (\n intelligentGuidanceList\n )}\n </StyledIntelligentGuidance>\n );\n }\n);\n\nexport default IntelligentGuidance;\n"]}
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
- export declare const StyledNew: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").TextProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
1
+ export declare const StyledNew: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").TextProps>, import("styled-components").DefaultTheme, {}, never>;
3
2
  export declare const StyledBorderLine: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
4
- export declare const StyledIntelligentGuidanceList: import("styled-components").StyledComponent<import("react").FC<import("@pega/cosmos-react-core").SummaryListProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
3
+ export declare const StyledIntelligentGuidanceList: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").SummaryListProps>, import("styled-components").DefaultTheme, {}, never>;
5
4
  export interface StyledIntelligentGuidanceProps {
6
5
  isCollapsed: boolean;
7
6
  hasItems: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"IntelligentGuidance.styles.d.ts","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.styles.ts"],"names":[],"mappings":";AA4BA,eAAO,MAAM,SAAS,mOAmBpB,CAAC;AAIH,eAAO,MAAM,gBAAgB,0GAe3B,CAAC;AAIH,eAAO,MAAM,6BAA6B,2NAkExC,CAAC;AAIH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,yBAAyB,gMA0FpC,CAAC"}
1
+ {"version":3,"file":"IntelligentGuidance.styles.d.ts","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.styles.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,SAAS,kNAmBpB,CAAC;AAIH,eAAO,MAAM,gBAAgB,0GAe3B,CAAC;AAIH,eAAO,MAAM,6BAA6B,yNAyDxC,CAAC;AAIH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,yBAAyB,gMA0GpC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import styled, { css } from 'styled-components';
2
2
  import { lighten, rgba, transparentize } from 'polished';
3
- import { defaultThemeProp, StyledButton, StyledCard, StyledFlex, StyledIcon, StyledEmptyState, SummaryList, StyledText, tryCatch, StyledSummaryItem, StyledVisual, readableColor, readableHue, Text, calculateFontSize, StyledSecondary } from '@pega/cosmos-react-core';
3
+ import { defaultThemeProp, StyledButton, StyledCard, StyledFlex, StyledIcon, StyledEmptyState, SummaryList, StyledText, tryCatch, StyledSummaryItem, StyledVisual, readableColor, readableHue, Text, calculateFontSize, StyledSecondary, calculateBackgroundAndContrastColor, calculateForegroundColor } from '@pega/cosmos-react-core';
4
4
  import { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';
5
5
  import { StyledTab } from '@pega/cosmos-react-core/lib/components/Tabs/Tab';
6
6
  import { StyledCount } from '@pega/cosmos-react-core/lib/components/Badges/Count';
@@ -37,23 +37,16 @@ export const StyledBorderLine = styled.span(({ theme }) => {
37
37
  });
38
38
  StyledBorderLine.defaultProps = defaultThemeProp;
39
39
  export const StyledIntelligentGuidanceList = styled(SummaryList)(({ theme }) => {
40
- const color = theme.base.palette.light;
41
- const borderColor = tryCatch(() => lighten(0.1, theme.components['app-shell'].nav['background-color']));
42
- const hoverColor = tryCatch(() => lighten(0.05, theme.components['app-shell'].nav['background-color']));
43
- const secondaryColor = tryCatch(() => rgba(color, theme.base.transparency['transparent-2']));
44
- const scrollbarColor = tryCatch(() => rgba(color, theme.base.transparency['transparent-3']));
40
+ const navBg = theme.components['app-shell'].nav.background;
41
+ const navFgColor = theme.components['app-shell'].nav['foreground-color'];
42
+ const computedFgColor = calculateForegroundColor(navBg, navFgColor);
43
+ const { contrastColor } = calculateBackgroundAndContrastColor(navBg, navFgColor);
44
+ const borderColor = tryCatch(() => lighten(0.1, contrastColor));
45
+ const secondaryColor = tryCatch(() => rgba(computedFgColor, theme.base.transparency['transparent-2']));
45
46
  return css `
46
47
  max-height: min(calc(100vh - var(--headerHeight) - 4ch), 21ch);
47
48
  overflow: auto;
48
49
 
49
- ::-webkit-scrollbar-thumb {
50
- box-shadow: inset 0 0 0.125rem 0.25rem ${scrollbarColor};
51
- }
52
-
53
- ::-webkit-scrollbar-thumb:hover {
54
- box-shadow: inset 0 0 0.125rem 0.25rem ${secondaryColor};
55
- }
56
-
57
50
  ${theme.base.animation.timing.ease};
58
51
 
59
52
  ${StyledSummaryItem} {
@@ -80,7 +73,7 @@ export const StyledIntelligentGuidanceList = styled(SummaryList)(({ theme }) =>
80
73
  }
81
74
 
82
75
  &:hover {
83
- background-color: ${hoverColor};
76
+ background-color: ${contrastColor};
84
77
  cursor: pointer;
85
78
  }
86
79
 
@@ -93,15 +86,18 @@ export const StyledIntelligentGuidanceList = styled(SummaryList)(({ theme }) =>
93
86
  ${StyledEmptyState} {
94
87
  padding-block: ${theme.base.spacing};
95
88
  ${StyledIcon}, ${StyledText} {
96
- color: ${color};
89
+ color: ${computedFgColor};
97
90
  }
98
91
  }
99
92
  `;
100
93
  });
101
94
  StyledIntelligentGuidanceList.defaultProps = defaultThemeProp;
102
95
  export const StyledIntelligentGuidance = styled(StyledCard)(({ theme, isCollapsed }) => {
103
- const color = theme.base.palette.light;
104
- const borderColor = tryCatch(() => lighten(0.1, theme.components['app-shell'].nav['background-color']));
96
+ const navBg = theme.components['app-shell'].nav.background;
97
+ const navFgColor = theme.components['app-shell'].nav['foreground-color'];
98
+ const computedFgColor = calculateForegroundColor(navBg, navFgColor);
99
+ const { contrastColor } = calculateBackgroundAndContrastColor(navBg, navFgColor);
100
+ const borderColor = tryCatch(() => lighten(0.1, contrastColor));
105
101
  const tabPrimaryColor = theme.base.colors.blue.light;
106
102
  const lightenedTabColor = tryCatch(() => transparentize(0.3, tabPrimaryColor)) ?? '';
107
103
  return css `
@@ -114,10 +110,25 @@ export const StyledIntelligentGuidance = styled(StyledCard)(({ theme, isCollapse
114
110
  z-index: ${theme.base['z-index'].popover};
115
111
  min-width: 20rem;
116
112
  max-width: 20rem;
117
- color: ${color};
113
+ color: ${computedFgColor};
118
114
  overflow: hidden;
119
115
  box-shadow: ${theme.base.shadow.low};
120
116
 
117
+ @media (height <= ${theme.base.breakpoints.sm}) {
118
+ position: absolute;
119
+ transition: none;
120
+ inset-inline-start: calc(2 * ${theme.base.spacing});
121
+ min-inline-size: calc(100% - (4 * ${theme.base.spacing}));
122
+ min-block-size: 3rem;
123
+
124
+ ${isCollapsed &&
125
+ css `
126
+ ${StyledCardHeader} ~ * {
127
+ display: none;
128
+ }
129
+ `}
130
+ }
131
+
121
132
  @media (min-width: ${theme.base.breakpoints.lg}) {
122
133
  min-width: 23rem;
123
134
  max-width: 23rem;
@@ -129,7 +140,7 @@ export const StyledIntelligentGuidance = styled(StyledCard)(({ theme, isCollapse
129
140
  `}
130
141
 
131
142
  &:not(& &) {
132
- background-color: ${theme.components['app-shell'].nav['background-color']};
143
+ background: ${navBg};
133
144
  border-bottom-left-radius: 0;
134
145
  border-bottom-right-radius: 0;
135
146
  }
@@ -163,7 +174,7 @@ export const StyledIntelligentGuidance = styled(StyledCard)(({ theme, isCollapse
163
174
  background-color: ${theme.base.palette.urgent};
164
175
  }
165
176
  span {
166
- color: ${color};
177
+ color: ${computedFgColor};
167
178
  }
168
179
  ::after {
169
180
  background-color: ${lightenedTabColor};
@@ -1 +1 @@
1
- {"version":3,"file":"IntelligentGuidance.styles.js","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport { lighten, rgba, transparentize } from 'polished';\n\nimport {\n defaultThemeProp,\n StyledButton,\n StyledCard,\n StyledFlex,\n StyledIcon,\n StyledEmptyState,\n SummaryList,\n StyledText,\n tryCatch,\n StyledSummaryItem,\n StyledVisual,\n readableColor,\n readableHue,\n Text,\n calculateFontSize,\n StyledSecondary\n} from '@pega/cosmos-react-core';\nimport { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';\nimport { StyledTab } from '@pega/cosmos-react-core/lib/components/Tabs/Tab';\nimport { StyledCount } from '@pega/cosmos-react-core/lib/components/Badges/Count';\nimport { StyledTabs } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.styles';\n\nconst itemIconSize = '2rem';\n\nexport const StyledNew = styled(Text)(({ theme }) => {\n const readableBackground = readableHue(\n theme.base.palette['brand-primary'],\n theme.base.palette['primary-background']\n );\n const readableTextColor = readableColor(readableBackground);\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n text-transform: uppercase;\n background-color: ${readableBackground};\n color: ${readableTextColor};\n padding-inline: calc(0.75 * ${theme.base.spacing});\n font-size: ${fontSize.xxs};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n `;\n});\n\nStyledNew.defaultProps = defaultThemeProp;\n\nexport const StyledBorderLine = styled.span(({ theme }) => {\n const readableBackground = readableHue(\n theme.base.palette['brand-primary'],\n theme.base.palette['primary-background']\n );\n\n return css`\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n content: '';\n background-color: ${readableBackground};\n height: 100%;\n width: 0.125rem;\n `;\n});\n\nStyledBorderLine.defaultProps = defaultThemeProp;\n\nexport const StyledIntelligentGuidanceList = styled(SummaryList)(({ theme }) => {\n const color = theme.base.palette.light;\n const borderColor = tryCatch(() =>\n lighten(0.1, theme.components['app-shell'].nav['background-color'])\n );\n const hoverColor = tryCatch(() =>\n lighten(0.05, theme.components['app-shell'].nav['background-color'])\n );\n const secondaryColor = tryCatch(() => rgba(color, theme.base.transparency['transparent-2']));\n const scrollbarColor = tryCatch(() => rgba(color, theme.base.transparency['transparent-3']));\n\n return css`\n max-height: min(calc(100vh - var(--headerHeight) - 4ch), 21ch);\n overflow: auto;\n\n ::-webkit-scrollbar-thumb {\n box-shadow: inset 0 0 0.125rem 0.25rem ${scrollbarColor};\n }\n\n ::-webkit-scrollbar-thumb:hover {\n box-shadow: inset 0 0 0.125rem 0.25rem ${secondaryColor};\n }\n\n ${theme.base.animation.timing.ease};\n\n ${StyledSummaryItem} {\n position: relative;\n padding: ${theme.base.spacing};\n outline: none;\n\n &:not(:first-of-type) {\n border-top: ${theme.components.button['border-width']} solid ${borderColor};\n }\n\n ${StyledVisual} ${StyledIcon} {\n width: ${itemIconSize};\n height: ${itemIconSize};\n padding: calc(0.75 * ${theme.base.spacing});\n }\n\n ${StyledSecondary} ${StyledText} {\n color: ${secondaryColor};\n }\n\n &:not(:last-child) {\n border-bottom: none;\n }\n\n &:hover {\n background-color: ${hoverColor};\n cursor: pointer;\n }\n\n &:enabled:focus,\n &:not([disabled]):focus {\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n }\n\n ${StyledEmptyState} {\n padding-block: ${theme.base.spacing};\n ${StyledIcon}, ${StyledText} {\n color: ${color};\n }\n }\n `;\n});\n\nStyledIntelligentGuidanceList.defaultProps = defaultThemeProp;\n\nexport interface StyledIntelligentGuidanceProps {\n isCollapsed: boolean;\n hasItems: boolean;\n}\n\nexport const StyledIntelligentGuidance = styled(StyledCard)<StyledIntelligentGuidanceProps>(({\n theme,\n isCollapsed\n}) => {\n const color = theme.base.palette.light;\n const borderColor = tryCatch(() =>\n lighten(0.1, theme.components['app-shell'].nav['background-color'])\n );\n const tabPrimaryColor = theme.base.colors.blue.light;\n const lightenedTabColor = tryCatch(() => transparentize(0.3, tabPrimaryColor)) ?? '';\n\n return css`\n position: fixed;\n inset-inline-start: calc(2 * ${theme.base.spacing} + var(--appshell-horizontal-offset, 0rem));\n transition:\n inset-inline-start ${theme.base.animation.speed} ${theme.base.animation.timing.ease},\n transform calc(4 * ${theme.base.animation.speed}) ${theme.base.animation.timing.ease};\n bottom: 0;\n z-index: ${theme.base['z-index'].popover};\n min-width: 20rem;\n max-width: 20rem;\n color: ${color};\n overflow: hidden;\n box-shadow: ${theme.base.shadow.low};\n\n @media (min-width: ${theme.base.breakpoints.lg}) {\n min-width: 23rem;\n max-width: 23rem;\n }\n\n ${isCollapsed &&\n css`\n transform: translateY(calc(100% - var(--headerHeight)));\n `}\n\n &:not(& &) {\n background-color: ${theme.components['app-shell'].nav['background-color']};\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n ${StyledCardHeader} {\n & ${StyledButton} {\n transition: transform calc(2 * ${theme.base.animation.speed})\n ${theme.base.animation.timing.ease};\n transform: ${isCollapsed ? 'rotate(-180deg)' : 'rotate(0)'};\n }\n\n &:not(${StyledCard} ${StyledCard} > &) {\n padding: ${theme.base.spacing};\n }\n\n ${StyledFlex} > ${StyledIcon} {\n width: ${itemIconSize};\n height: ${itemIconSize};\n padding: calc(0.75 * ${theme.base.spacing});\n border-radius: calc(3 * ${theme.base['border-radius']});\n background-color: ${theme.base.palette.success};\n }\n }\n\n ${StyledTabs} {\n padding-inline: ${theme.base.spacing};\n border-block: 0.0625rem solid ${borderColor};\n ${StyledTab} {\n flex: 1;\n justify-content: center;\n ${StyledCount} {\n background-color: ${theme.base.palette.urgent};\n }\n span {\n color: ${color};\n }\n ::after {\n background-color: ${lightenedTabColor};\n }\n &[aria-selected='true'] {\n span:not(${StyledCount}) {\n color: ${tabPrimaryColor};\n }\n ::after {\n background-color: ${tabPrimaryColor};\n }\n }\n }\n }\n\n ${StyledButton}:enabled:focus {\n box-shadow: ${theme.base.shadow.focus};\n }\n `;\n});\n\nStyledIntelligentGuidance.defaultProps = defaultThemeProp;\n"]}
1
+ {"version":3,"file":"IntelligentGuidance.styles.js","sourceRoot":"","sources":["../../../src/components/IntelligentGuidance/IntelligentGuidance.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport { lighten, rgba, transparentize } from 'polished';\n\nimport {\n defaultThemeProp,\n StyledButton,\n StyledCard,\n StyledFlex,\n StyledIcon,\n StyledEmptyState,\n SummaryList,\n StyledText,\n tryCatch,\n StyledSummaryItem,\n StyledVisual,\n readableColor,\n readableHue,\n Text,\n calculateFontSize,\n StyledSecondary,\n calculateBackgroundAndContrastColor,\n calculateForegroundColor\n} from '@pega/cosmos-react-core';\nimport { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';\nimport { StyledTab } from '@pega/cosmos-react-core/lib/components/Tabs/Tab';\nimport { StyledCount } from '@pega/cosmos-react-core/lib/components/Badges/Count';\nimport { StyledTabs } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.styles';\n\nconst itemIconSize = '2rem';\n\nexport const StyledNew = styled(Text)(({ theme }) => {\n const readableBackground = readableHue(\n theme.base.palette['brand-primary'],\n theme.base.palette['primary-background']\n );\n const readableTextColor = readableColor(readableBackground);\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n text-transform: uppercase;\n background-color: ${readableBackground};\n color: ${readableTextColor};\n padding-inline: calc(0.75 * ${theme.base.spacing});\n font-size: ${fontSize.xxs};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n `;\n});\n\nStyledNew.defaultProps = defaultThemeProp;\n\nexport const StyledBorderLine = styled.span(({ theme }) => {\n const readableBackground = readableHue(\n theme.base.palette['brand-primary'],\n theme.base.palette['primary-background']\n );\n\n return css`\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n content: '';\n background-color: ${readableBackground};\n height: 100%;\n width: 0.125rem;\n `;\n});\n\nStyledBorderLine.defaultProps = defaultThemeProp;\n\nexport const StyledIntelligentGuidanceList = styled(SummaryList)(({ theme }) => {\n const navBg = theme.components['app-shell'].nav.background;\n const navFgColor = theme.components['app-shell'].nav['foreground-color'];\n const computedFgColor = calculateForegroundColor(navBg, navFgColor);\n const { contrastColor } = calculateBackgroundAndContrastColor(navBg, navFgColor);\n const borderColor = tryCatch(() => lighten(0.1, contrastColor));\n const secondaryColor = tryCatch(() =>\n rgba(computedFgColor, theme.base.transparency['transparent-2'])\n );\n\n return css`\n max-height: min(calc(100vh - var(--headerHeight) - 4ch), 21ch);\n overflow: auto;\n\n ${theme.base.animation.timing.ease};\n\n ${StyledSummaryItem} {\n position: relative;\n padding: ${theme.base.spacing};\n outline: none;\n\n &:not(:first-of-type) {\n border-top: ${theme.components.button['border-width']} solid ${borderColor};\n }\n\n ${StyledVisual} ${StyledIcon} {\n width: ${itemIconSize};\n height: ${itemIconSize};\n padding: calc(0.75 * ${theme.base.spacing});\n }\n\n ${StyledSecondary} ${StyledText} {\n color: ${secondaryColor};\n }\n\n &:not(:last-child) {\n border-bottom: none;\n }\n\n &:hover {\n background-color: ${contrastColor};\n cursor: pointer;\n }\n\n &:enabled:focus,\n &:not([disabled]):focus {\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n }\n\n ${StyledEmptyState} {\n padding-block: ${theme.base.spacing};\n ${StyledIcon}, ${StyledText} {\n color: ${computedFgColor};\n }\n }\n `;\n});\n\nStyledIntelligentGuidanceList.defaultProps = defaultThemeProp;\n\nexport interface StyledIntelligentGuidanceProps {\n isCollapsed: boolean;\n hasItems: boolean;\n}\n\nexport const StyledIntelligentGuidance = styled(StyledCard)<StyledIntelligentGuidanceProps>(({\n theme,\n isCollapsed\n}) => {\n const navBg = theme.components['app-shell'].nav.background;\n const navFgColor = theme.components['app-shell'].nav['foreground-color'];\n const computedFgColor = calculateForegroundColor(navBg, navFgColor);\n const { contrastColor } = calculateBackgroundAndContrastColor(navBg, navFgColor);\n const borderColor = tryCatch(() => lighten(0.1, contrastColor));\n const tabPrimaryColor = theme.base.colors.blue.light;\n const lightenedTabColor = tryCatch(() => transparentize(0.3, tabPrimaryColor)) ?? '';\n\n return css`\n position: fixed;\n inset-inline-start: calc(2 * ${theme.base.spacing} + var(--appshell-horizontal-offset, 0rem));\n transition:\n inset-inline-start ${theme.base.animation.speed} ${theme.base.animation.timing.ease},\n transform calc(4 * ${theme.base.animation.speed}) ${theme.base.animation.timing.ease};\n bottom: 0;\n z-index: ${theme.base['z-index'].popover};\n min-width: 20rem;\n max-width: 20rem;\n color: ${computedFgColor};\n overflow: hidden;\n box-shadow: ${theme.base.shadow.low};\n\n @media (height <= ${theme.base.breakpoints.sm}) {\n position: absolute;\n transition: none;\n inset-inline-start: calc(2 * ${theme.base.spacing});\n min-inline-size: calc(100% - (4 * ${theme.base.spacing}));\n min-block-size: 3rem;\n\n ${isCollapsed &&\n css`\n ${StyledCardHeader} ~ * {\n display: none;\n }\n `}\n }\n\n @media (min-width: ${theme.base.breakpoints.lg}) {\n min-width: 23rem;\n max-width: 23rem;\n }\n\n ${isCollapsed &&\n css`\n transform: translateY(calc(100% - var(--headerHeight)));\n `}\n\n &:not(& &) {\n background: ${navBg};\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n ${StyledCardHeader} {\n & ${StyledButton} {\n transition: transform calc(2 * ${theme.base.animation.speed})\n ${theme.base.animation.timing.ease};\n transform: ${isCollapsed ? 'rotate(-180deg)' : 'rotate(0)'};\n }\n\n &:not(${StyledCard} ${StyledCard} > &) {\n padding: ${theme.base.spacing};\n }\n\n ${StyledFlex} > ${StyledIcon} {\n width: ${itemIconSize};\n height: ${itemIconSize};\n padding: calc(0.75 * ${theme.base.spacing});\n border-radius: calc(3 * ${theme.base['border-radius']});\n background-color: ${theme.base.palette.success};\n }\n }\n\n ${StyledTabs} {\n padding-inline: ${theme.base.spacing};\n border-block: 0.0625rem solid ${borderColor};\n ${StyledTab} {\n flex: 1;\n justify-content: center;\n ${StyledCount} {\n background-color: ${theme.base.palette.urgent};\n }\n span {\n color: ${computedFgColor};\n }\n ::after {\n background-color: ${lightenedTabColor};\n }\n &[aria-selected='true'] {\n span:not(${StyledCount}) {\n color: ${tabPrimaryColor};\n }\n ::after {\n background-color: ${tabPrimaryColor};\n }\n }\n }\n }\n\n ${StyledButton}:enabled:focus {\n box-shadow: ${theme.base.shadow.focus};\n }\n `;\n});\n\nStyledIntelligentGuidance.defaultProps = defaultThemeProp;\n"]}
@@ -1,5 +1,5 @@
1
- import type { FunctionComponent, ReactNode } from 'react';
2
- import type { ButtonProps, ForwardProps } from '@pega/cosmos-react-core';
1
+ import type { ReactNode } from 'react';
2
+ import type { ButtonProps, ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';
3
3
  export interface CountdownButtonProps extends ButtonProps {
4
4
  /** Text or content for the Button. */
5
5
  children: ReactNode;
@@ -10,6 +10,6 @@ export interface CountdownButtonProps extends ButtonProps {
10
10
  /** Callback invoked when timeout ends. */
11
11
  onTimerEnd?: () => void;
12
12
  }
13
- declare const CountdownButton: FunctionComponent<CountdownButtonProps & ForwardProps>;
13
+ declare const CountdownButton: ForwardRefForwardPropsComponent<CountdownButtonProps>;
14
14
  export default CountdownButton;
15
15
  //# sourceMappingURL=CountdownButton.d.ts.map