@pega/sdk 0.0.4 → 0.0.5

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 (317) hide show
  1. package/dist/index.js +287 -1
  2. package/package.json +1 -1
  3. package/templates/angular-sdk-reference/package.json +12 -12
  4. package/templates/angular-sdk-reference/tsconfig.json +1 -1
  5. package/templates/react-native-sdk-reference/expo-env.d.ts +3 -0
  6. package/templates/react-sdk-reference/{.github/agents/implementation-expert.agent.md → .ai-common/agents/implementation-expert.md} +23 -26
  7. package/templates/react-sdk-reference/{.github/copilot-instructions.md → .ai-common/global/ai-agent-instructions.md} +7 -7
  8. package/templates/react-sdk-reference/{.github/instructions/component-map.instructions.md → .ai-common/instructions/component-map.md} +8 -1
  9. package/templates/react-sdk-reference/{.github/instructions/dse-component.instructions.md → .ai-common/instructions/dse-component.md} +1 -1
  10. package/templates/react-sdk-reference/{.github/instructions/field-component.instructions.md → .ai-common/instructions/field-component.md} +2 -1
  11. package/templates/react-sdk-reference/{.github/instructions/template-component.instructions.md → .ai-common/instructions/template-component.md} +1 -1
  12. package/templates/react-sdk-reference/{.github/instructions/widget-component.instructions.md → .ai-common/instructions/widget-component.md} +1 -1
  13. package/templates/react-sdk-reference/{.github/prompts/add-component.prompt.md → .ai-common/prompts/add-component.md} +45 -18
  14. package/templates/react-sdk-reference/{.cursor/rules → .ai-common}/prompts/component-manifest.json +8 -2
  15. package/templates/react-sdk-reference/{.github/prompts/generate-all-components.prompt.md → .ai-common/prompts/generate-all-components.md} +195 -78
  16. package/templates/react-sdk-reference/{.github/prompts/generate-dse-components.prompt.md → .ai-common/prompts/generate-dse-components.md} +28 -17
  17. package/templates/react-sdk-reference/{.github/prompts/generate-field-components.prompt.md → .ai-common/prompts/generate-field-components.md} +32 -16
  18. package/templates/react-sdk-reference/{.github/prompts/generate-template-components.prompt.md → .ai-common/prompts/generate-template-components.md} +76 -22
  19. package/templates/react-sdk-reference/{.github/prompts/generate-widget-components.prompt.md → .ai-common/prompts/generate-widget-components.md} +44 -30
  20. package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/identify-components.md +4 -0
  21. package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
  22. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/AlertBanner.md +50 -0
  23. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Banner.md +44 -0
  24. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/CaseSummaryFields.md +54 -0
  25. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/DetailsFields.md +49 -0
  26. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/FieldGroup.md +44 -0
  27. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/FieldGroupList.md +43 -0
  28. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/FieldValueList.md +46 -0
  29. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Operator.md +67 -0
  30. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/Pulse.md +20 -0
  31. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/RichTextEditor.md +58 -0
  32. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/WssQuickCreate.md +31 -0
  33. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension.md +1 -1
  34. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-components.md +18 -1
  35. package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +298 -0
  36. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/CancelAlert.md +132 -3
  37. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +358 -0
  38. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +230 -0
  39. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +221 -0
  40. package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +213 -0
  41. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Decimal.md +112 -13
  42. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Dropdown.md +127 -1
  43. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Email.md +68 -0
  44. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Group.md +51 -0
  45. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Integer.md +81 -0
  46. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Location.md +105 -0
  47. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Multiselect.md +70 -0
  48. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/ObjectReference.md +74 -0
  49. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Percentage.md +84 -0
  50. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Phone.md +81 -0
  51. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/RadioButtons.md +93 -0
  52. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/RichText.md +85 -0
  53. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/ScalarList.md +54 -0
  54. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/SelectableCard.md +55 -0
  55. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/SemanticLink.md +64 -0
  56. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/TextArea.md +66 -0
  57. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/TextContent.md +28 -0
  58. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextInput.md +67 -0
  59. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Time.md +67 -0
  60. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/URL.md +59 -0
  61. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/UserReference.md +90 -0
  62. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-components.md +83 -52
  63. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/AdvancedSearch.md +77 -0
  64. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +273 -0
  65. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/BannerPage.md +39 -0
  66. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/CaseSummary.md +79 -0
  67. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +399 -0
  68. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +282 -0
  69. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/Confirmation.md +89 -0
  70. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DataReference.md +50 -0
  71. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DefaultForm.md +117 -0
  72. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DefaultPage.md +49 -0
  73. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/Details.md +59 -0
  74. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DetailsSubTabs.md +60 -0
  75. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DetailsThreeColumn.md +12 -0
  76. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DetailsTwoColumn.md +12 -0
  77. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DynamicTabs.md +67 -0
  78. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/FieldGroupTemplate.md +119 -0
  79. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/HierarchicalForm.md +45 -0
  80. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/InlineDashboard.md +41 -0
  81. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/InlineDashboardPage.md +56 -0
  82. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/ListPage.md +18 -0
  83. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +419 -0
  84. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/MultiReferenceReadOnly.md +40 -0
  85. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/NarrowWide.md +66 -0
  86. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/OneColumn.md +34 -0
  87. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/PromotedFilters.md +92 -0
  88. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/SelfServiceCaseView.md +56 -0
  89. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SimpleTable.md +59 -0
  90. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SingleReferenceReadOnly.md +52 -0
  91. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SubTabs.md +47 -0
  92. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/TwoColumn.md +49 -0
  93. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WssNavBar.md +71 -0
  94. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-components.md +1 -1
  95. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/AppAnnouncement.md +38 -1
  96. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Attachment.md +58 -0
  97. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/CaseHistory.md +63 -0
  98. package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/FileUtility.md +81 -14
  99. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Followers.md +20 -0
  100. package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/QuickCreate.md +48 -0
  101. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/SummaryItem.md +66 -0
  102. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +492 -0
  103. package/templates/react-sdk-reference/package.minimal.json +29 -0
  104. package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
  105. package/templates/react-sdk-reference/src/MashupApp.tsx +8 -19
  106. package/templates/react-sdk-reference/src/PortalApp.tsx +6 -17
  107. package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
  108. package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
  109. package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -75
  110. package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -93
  111. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -88
  112. package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -152
  113. package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +0 -193
  114. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -158
  115. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -140
  116. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -153
  117. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -165
  118. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -138
  119. package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
  120. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
  121. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -137
  122. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -134
  123. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -118
  124. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -85
  125. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -232
  126. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +0 -137
  127. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -291
  128. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -113
  129. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -175
  130. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -109
  131. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -101
  132. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -106
  133. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -88
  134. package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +0 -188
  135. package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +0 -173
  136. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -93
  137. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -129
  138. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -167
  139. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -149
  140. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -134
  141. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -231
  142. package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +0 -155
  143. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -107
  144. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -89
  145. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -86
  146. package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -321
  147. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -150
  148. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -124
  149. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -106
  150. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -137
  151. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -131
  152. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -109
  153. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -97
  154. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -80
  155. package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +0 -70
  156. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -142
  157. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -82
  158. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -114
  159. package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +0 -131
  160. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -108
  161. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -82
  162. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -206
  163. package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +0 -118
  164. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -198
  165. package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
  166. package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
  167. package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +0 -74
  168. package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
  169. package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
  170. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
  171. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
  172. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
  173. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
  174. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
  175. package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
  176. package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
  177. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
  178. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
  179. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
  180. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +0 -149
  181. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +0 -136
  182. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +0 -116
  183. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +0 -120
  184. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +0 -154
  185. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +0 -88
  186. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
  187. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
  188. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +0 -294
  189. package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +0 -299
  190. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
  191. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
  192. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
  193. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
  194. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
  195. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
  196. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
  197. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
  198. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
  199. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +0 -95
  200. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
  201. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
  202. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
  203. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +0 -169
  204. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
  205. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
  206. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
  207. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +0 -143
  208. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
  209. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
  210. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +0 -153
  211. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
  212. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +0 -106
  213. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
  214. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
  215. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
  216. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
  217. package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
  218. package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +0 -327
  219. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
  220. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
  221. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +0 -88
  222. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
  223. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
  224. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
  225. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
  226. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
  227. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
  228. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
  229. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +0 -93
  230. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +0 -100
  231. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +0 -83
  232. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +0 -83
  233. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +0 -106
  234. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
  235. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +0 -118
  236. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +0 -109
  237. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +0 -90
  238. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +0 -73
  239. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
  240. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +0 -85
  241. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
  242. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +0 -114
  243. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
  244. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
  245. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
  246. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
  247. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +0 -84
  248. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +0 -136
  249. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
  250. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
  251. package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +0 -276
  252. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
  253. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
  254. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +0 -112
  255. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
  256. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +0 -104
  257. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +0 -119
  258. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +0 -172
  259. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
  260. package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
  261. package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
  262. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -193
  263. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
  264. package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
  265. package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
  266. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -152
  267. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
  268. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -148
  269. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -113
  270. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -155
  271. package/templates/react-sdk-reference/.github/skills/field-components.md +0 -295
  272. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -113
  273. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -211
  274. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -175
  275. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -109
  276. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -101
  277. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -106
  278. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -99
  279. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -134
  280. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -109
  281. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -96
  282. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -145
  283. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -98
  284. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +0 -117
  285. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -203
  286. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -70
  287. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -124
  288. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -86
  289. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -137
  290. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -131
  291. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -124
  292. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -104
  293. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +0 -112
  294. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -90
  295. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -80
  296. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -106
  297. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -112
  298. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -116
  299. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -108
  300. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -82
  301. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -142
  302. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -143
  303. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -130
  304. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -142
  305. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -133
  306. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -152
  307. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +0 -139
  308. package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -260
  309. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -84
  310. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -151
  311. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -110
  312. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -103
  313. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -169
  314. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -198
  315. package/templates/react-sdk-reference/AGENTS.md +0 -246
  316. /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/run-and-verify.md +0 -0
  317. /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +0 -0
@@ -1,110 +0,0 @@
1
- # Skill: CaseHistory
2
-
3
- Case history widget. Fetches and displays the full audit trail for the current case in a table with Date, Description, and Performer columns.
4
-
5
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- Renders a table of case events sourced from the `D_pyWorkHistory` data page. Shows when each event happened (`pyUpdatedDateTime`), what happened (`pyMessageKey`), and who performed it (`pyPerformer`). Uses `fast-deep-equal` to skip unnecessary re-renders when data has not changed.
12
-
13
- ## Pega Metadata
14
-
15
- - **Registration key:** `CaseHistory` (in `component-map.ts`)
16
- - **Category:** Widget — case data display
17
- - **Extends:** `PConnProps`
18
-
19
- ## Props
20
-
21
- | Prop | Type | Required | Description |
22
- | ------------- | ---------- | -------- | ----------------------------------------------------- |
23
- | `getPConnect` | `function` | Yes | PConnect getter — used to resolve case ID and context |
24
-
25
- No additional custom props. All data is fetched internally.
26
-
27
- ## Behavioral Contract
28
-
29
- ### Data Fetch
30
-
31
- On mount, fetch history from the `D_pyWorkHistory` data page:
32
-
33
- ```
34
- PCore.getDataApiUtils().getData(
35
- 'D_pyWorkHistory',
36
- { pyCaseInsKey: caseKey },
37
- context
38
- )
39
- ```
40
-
41
- - `caseKey` = `pConn.getCaseInfo().getKey()` (the fully-qualified case key).
42
- - `context` = `pConn.getContextName()`.
43
- - Store result in `historyData` state array.
44
- - On error or empty response, `historyData` stays as `[]`.
45
-
46
- ### Re-render Optimization
47
-
48
- Use `fast-deep-equal/react` to compare new `historyData` with previous value — only call `setHistoryData` if the data has actually changed. This prevents unnecessary re-renders caused by reference inequality.
49
-
50
- ### Data Transformation
51
-
52
- For each history row, map:
53
-
54
- - **Date column:** Format `pyUpdatedDateTime` using the SDK date formatter (e.g., `formatDateTime(row.pyUpdatedDateTime)`) or display as-is.
55
- - **Description column:** `row.pyMessageKey` — the localized event description string.
56
- - **Performer column:** `row.pyPerformer` — the operator who performed the action.
57
- - Missing values: display `"---"` for any undefined/null field.
58
-
59
- ## Visual Specifications
60
-
61
- ### Table Layout
62
-
63
- | Column | Field | Width |
64
- | ----------- | ------------------------------- | ----- |
65
- | Date | `pyUpdatedDateTime` (formatted) | ~25% |
66
- | Description | `pyMessageKey` | ~50% |
67
- | Performer | `pyPerformer` | ~25% |
68
-
69
- **CSS-only implementation notes:**
70
-
71
- - Table container: `width: 100%; overflow-x: auto`.
72
- - Table: `border-collapse: collapse; width: 100%`.
73
- - Header cells: `background: var(--table-header-bg); font-weight: 600; padding: 8px 12px; border-bottom: 2px solid var(--divider-color)`.
74
- - Body cells: `padding: 8px 12px; border-bottom: 1px solid var(--divider-color)`.
75
- - Missing value placeholder `"---"`: `color: var(--secondary-text-color)`.
76
- - No pagination in the reference implementation — all rows shown.
77
-
78
- ## Edge Cases & Special Logic
79
-
80
- - `D_pyWorkHistory` may return an empty array for cases with no history events — render an empty table body (or an empty-state message like `"No history available"`).
81
- - `pyUpdatedDateTime` format varies — always run it through the SDK date formatter before display.
82
- - `pyMessageKey` may be a locale key — resolve it via `PCore.getLocaleUtils().getLocaleValue()` if a localized string is required.
83
- - The widget has no pagination — for cases with very long history, the table may become very tall. Consider adding pagination if needed.
84
-
85
- ## Dependencies
86
-
87
- - `PCore.getDataApiUtils().getData()` — fetches `D_pyWorkHistory` data page
88
- - `fast-deep-equal/react` — prevents unnecessary re-renders
89
- - `PCore.getConstants().CASE_INFO.CASE_INFO_ID` — resolves case ID constant
90
- - MUI: `<Table>`, `<TableBody>`, `<TableCell>`, `<TableContainer>`, `<TableHead>`, `<TableRow>`
91
-
92
- ## Design System Mapping
93
-
94
- **UI control type:** Read-only case audit table with 3 columns.
95
-
96
- Listed design systems are examples only.
97
-
98
- | Design System | Table |
99
- | ------------------ | --------------------------------------------------------------------------------- |
100
- | Default (CSS only) | `<table>/<thead>/<tbody>/<tr>/<td>` |
101
- | MUI | `<TableContainer>` + `<Table>` + `<TableHead>/<TableBody>/<TableRow>/<TableCell>` |
102
- | Ant Design | `<Table dataSource={historyData} columns={...}>` |
103
- | Chakra UI | `<Table>` + `<Thead>/<Tbody>/<Tr>/<Th>/<Td>` |
104
- | Shadcn/ui | `<Table>` + `<TableHeader>/<TableBody>/<TableRow>/<TableHead>/<TableCell>` |
105
-
106
- When implementing in a specific design system:
107
-
108
- - `fast-deep-equal` comparison is a performance optimization — include it to avoid redundant renders on re-subscription
109
- - Data page name `D_pyWorkHistory` is fixed — do not make it configurable
110
- - Missing field fallback `"---"` should be consistent across all three columns
@@ -1,103 +0,0 @@
1
- # Skill: Followers
2
-
3
- Followers widget. Displays the list of users following the current case. Currently a stub/placeholder in the reference implementation — renders an "unsupported" message.
4
-
5
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- Intended to display the list of operators following a case, allowing users to follow/unfollow a case and see who else is following it. The reference implementation is a **stub** — it renders a `"Followers - unsupported"` message inside a card. A full implementation would fetch follower data from the Pega data layer and provide follow/unfollow actions.
12
-
13
- ## Pega Metadata
14
-
15
- - **Registration key:** `Followers` (in `component-map.ts`)
16
- - **Category:** Widget — social / collaboration
17
- - **Extends:** `PConnProps`
18
-
19
- ## Props
20
-
21
- | Prop | Type | Required | Description |
22
- | ------------- | ---------- | -------- | --------------- |
23
- | `getPConnect` | `function` | Yes | PConnect getter |
24
-
25
- No additional custom props in the current stub implementation. A full implementation would likely include:
26
-
27
- - `datasource` — data page name for follower list
28
- - `headerText` — widget title (e.g., `"Followers"`)
29
-
30
- ## Behavioral Contract
31
-
32
- ### Current (Stub) Implementation
33
-
34
- 1. Render a `<Card>` with title `"Followers"`.
35
- 2. Show `"Followers - unsupported"` body text.
36
- 3. No data fetching, no actions.
37
-
38
- ### Expected Full Implementation
39
-
40
- 1. **Fetch followers:** Call `PCore.getDataPageUtils().getDataAsync('D_pyCaseFollowers', context, { caseKey })` on mount.
41
- 2. **Display follower list:** Render each follower's avatar (initials) and display name.
42
- 3. **Follow/unfollow toggle:** Button to follow or unfollow the current case:
43
- - Follow: `PCore.getRestClient().invokeCustomRestApi('/api/v1/cases/{caseID}/followers', { method: 'POST', ... })`.
44
- - Unfollow: same endpoint with `DELETE` method.
45
- 4. **Real-time update:** Subscribe to follower change events via pub-sub if available.
46
-
47
- ## Visual Specifications
48
-
49
- ### Stub Rendering
50
-
51
- | Element | Value |
52
- | ---------- | -------------------------------------- |
53
- | Card title | `"Followers"` |
54
- | Card body | `"Followers - unsupported"` plain text |
55
-
56
- ### Expected Full Rendering
57
-
58
- | Element | Description |
59
- | ---------------- | --------------------------------------- |
60
- | Card header | `"Followers"` + count badge |
61
- | Follower avatars | Row of avatar initials circles |
62
- | Follow button | Toggle button `"Follow"` / `"Unfollow"` |
63
-
64
- **CSS-only implementation notes (stub):**
65
-
66
- - Card: standard card layout — `border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,0.12); padding: 1rem`.
67
- - Unsupported message: `color: var(--secondary-text-color); font-size: 0.875rem`.
68
-
69
- **CSS-only implementation notes (full):**
70
-
71
- - Avatar row: `display: flex; flex-wrap: wrap; gap: 4px`.
72
- - Avatar circle: `width: 32px; height: 32px; border-radius: 50%; background: var(--avatar-bg); display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 600`.
73
-
74
- ## Edge Cases & Special Logic
75
-
76
- - If the stub message `"Followers - unsupported"` is shown in production, it means this widget has not been fully implemented yet — that is expected behavior.
77
- - When implementing: guard against empty follower arrays — show a `"No followers yet"` state.
78
- - Follow/unfollow toggle must reflect the current user's follow status — fetch this as part of the initial data load.
79
-
80
- ## Dependencies
81
-
82
- - MUI: `<Card>`, `<CardContent>`, `<CardHeader>`, `<Typography>` (current stub)
83
- - Future full implementation would add: `<Avatar>`, `<Button>`, `<Badge>`, pub-sub subscriptions
84
-
85
- ## Design System Mapping
86
-
87
- **UI control type:** Social widget — follower list with follow/unfollow action.
88
-
89
- Listed design systems are examples only.
90
-
91
- | Design System | Card | Avatar | Toggle Button |
92
- | ------------------ | --------------------- | ------------------------ | ------------------------- |
93
- | Default (CSS only) | `<div>` with border | CSS circle with initials | `<button>` |
94
- | MUI | `<Card>` + `<Avatar>` | `<Avatar>` | `<Button>` variant toggle |
95
- | Ant Design | `<Card>` | `<Avatar>` | `<Button>` |
96
- | Chakra UI | `<Card>` | `<Avatar>` | `<Button>` |
97
- | Shadcn/ui | `<Card>` | Custom avatar | `<Button>` |
98
-
99
- When implementing in a specific design system:
100
-
101
- - The current stub only needs a card with a message — implement the full behavior once the Pega backend supports it
102
- - Follow/unfollow must be scoped to the current case (`caseKey` from `pConn.getCaseInfo().getKey()`)
103
- - Follower count badge in the card header improves scannability
@@ -1,169 +0,0 @@
1
- # Skill: SummaryItem
2
-
3
- Individual item card for displaying an attachment, file, or link with an icon, name, metadata, and an actions menu. Also covers `SummaryList` — the container that renders multiple `SummaryItem` cards.
4
-
5
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- `SummaryItem` renders a single row/card for an attachment or link item. It shows a file-type icon, the item name (as a link for URLs or plain text for files), secondary metadata text, and an action menu. Used by `FileUtility` via the `SummaryList` container.
12
-
13
- `SummaryList` is a thin wrapper that maps an array of item objects to individual `SummaryItem` cards, passing down menu icon overrides for all items.
14
-
15
- ## Pega Metadata
16
-
17
- - **Registration keys:**
18
- - `SummaryItem` — the individual item card
19
- - `SummaryList` — the container/list component
20
- - **Category:** Widget — display / composition
21
- - **Extends:** `PConnProps`
22
-
23
- ---
24
-
25
- ## SummaryItem
26
-
27
- ### Props
28
-
29
- | Prop | Type | Required | Description |
30
- | ------------------------- | ---------- | -------- | --------------------------------------------------------------------------------------- |
31
- | `arItems$` | `object` | Yes | A single item object (see Item Structure below) |
32
- | `menuIconOverride$` | `string` | No | If provided, replaces the standard actions menu with a single direct-action icon button |
33
- | `menuIconOverrideAction$` | `function` | No | Callback invoked when the override icon button is clicked |
34
- | `getPConnect` | `function` | Yes | PConnect getter |
35
-
36
- ### Item Structure (`arItems$`)
37
-
38
- ```typescript
39
- {
40
- id: string;
41
- visual: {
42
- icon: string; // Icon identifier or URL
43
- progress?: number; // Upload progress 0–100 (optional)
44
- };
45
- primary: {
46
- type: 'FILE' | 'URL';
47
- name: string; // Display name of the item
48
- icon: string; // Icon for the primary element
49
- click: () => void; // Download (FILE) or open in new tab (URL)
50
- };
51
- secondary: {
52
- text: string; // Metadata text (e.g., "John Smith · 01/15/2025")
53
- error?: boolean; // If true, render text in error/red color
54
- };
55
- actions: Array<{
56
- id: string;
57
- text: string; // Menu item label
58
- icon: string; // Menu item icon identifier
59
- onClick: () => void; // Action callback
60
- }>;
61
- }
62
- ```
63
-
64
- ### Behavioral Contract
65
-
66
- 1. **Visual area:** Render `visual.icon` (file type icon). If `visual.progress` is defined and between 0–99, overlay a progress indicator.
67
- 2. **Primary element:**
68
- - `type === 'FILE'`: render `primary.name` as plain text (clicking calls `primary.click` which triggers download).
69
- - `type === 'URL'`: render `primary.name` as a link button that calls `primary.click` (opens URL in new tab).
70
- 3. **Secondary text:** Render `secondary.text` below the primary element. If `secondary.error === true`, render in error/red color.
71
- 4. **Actions:**
72
- - **Standard mode (no `menuIconOverride$`):** Render a `<MoreVertIcon>` icon button. On click, open a `<Menu>` with one `<MenuItem>` per `actions` entry.
73
- - **Override mode (`menuIconOverride$` provided):** Render a single direct-action icon button using `menuIconOverride$` as the icon. On click, call `menuIconOverrideAction$()`. No menu rendered.
74
-
75
- ## Visual Specifications
76
-
77
- ### Item Layout
78
-
79
- ```
80
- [File Icon] [Name (link if URL)]
81
- [Secondary metadata text]
82
- [Actions button (⋮ or override)]
83
- ```
84
-
85
- | Element | Description |
86
- | -------------- | --------------------------------------------- |
87
- | File icon | Left side, fixed size (~36px square) |
88
- | Name | Bold, truncated with ellipsis if too long |
89
- | Metadata | Smaller, secondary-color text |
90
- | Actions button | Right side, `<MoreVertIcon>` or override icon |
91
-
92
- **CSS-only implementation notes:**
93
-
94
- - Row: `display: flex; align-items: center; gap: 0.75rem; padding: 8px 0`.
95
- - File icon: `width: 36px; height: 36px; flex-shrink: 0`.
96
- - Content area: `flex: 1; min-width: 0` (prevents text overflow).
97
- - Name: `font-size: 0.875rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap`.
98
- - Metadata: `font-size: 0.75rem; color: var(--secondary-text-color)`.
99
- - Error metadata: `color: var(--error-color)`.
100
- - Actions button: `flex-shrink: 0; margin-left: auto`.
101
- - URL name: `color: var(--link-color); cursor: pointer; text-decoration: underline`.
102
-
103
- ## Edge Cases & Special Logic
104
-
105
- - `visual.progress` — show a progress indicator only when `0 <= progress < 100`. When `progress === 100` (complete) or `progress === undefined`, show only the file icon.
106
- - `secondary.error === true` — the metadata text (e.g., upload error message) must be red, not the normal secondary color.
107
- - `menuIconOverride$` replaces the menu entirely — do not render `<MoreVertIcon>` when an override is provided.
108
- - `actions` may be empty — if empty and no override provided, do not render the actions button at all.
109
-
110
- ---
111
-
112
- ## SummaryList
113
-
114
- ### Props
115
-
116
- | Prop | Type | Required | Description |
117
- | ------------------------- | ---------- | -------- | ---------------------------------------------------------------- |
118
- | `arItems$` | `any[]` | Yes | Array of item objects (same shape as `SummaryItem`'s `arItems$`) |
119
- | `menuIconOverride$` | `string` | No | Passed to every `SummaryItem` |
120
- | `menuIconOverrideAction$` | `any` | No | Passed to every `SummaryItem` |
121
- | `getPConnect` | `function` | Yes | PConnect getter |
122
-
123
- ### Behavioral Contract
124
-
125
- ```tsx
126
- const SummaryItemComp = getComponentFromRegistry('SummaryItem');
127
-
128
- return (
129
- <div>
130
- {arItems$.map((item, i) => (
131
- <SummaryItemComp
132
- key={item.id || i}
133
- arItems$={item}
134
- menuIconOverride$={menuIconOverride$}
135
- menuIconOverrideAction$={menuIconOverrideAction$}
136
- getPConnect={getPConnect}
137
- />
138
- ))}
139
- </div>
140
- );
141
- ```
142
-
143
- No state, no data fetching — purely a mapping wrapper.
144
-
145
- ## Dependencies
146
-
147
- - **SummaryItem:** MUI `<IconButton>`, `<Menu>`, `<MenuItem>`, MUI Icons `<MoreVertIcon>`, utils helper for icon path resolution
148
- - **SummaryList:** `getComponentFromRegistry('SummaryItem')` — resolves the item component dynamically
149
-
150
- ## Design System Mapping
151
-
152
- **UI control type:** File/link item row with icon, name, metadata, and action menu.
153
-
154
- Listed design systems are examples only.
155
-
156
- | Design System | Row Layout | Action Menu |
157
- | ------------------ | -------------------------------------- | ------------------------------------ |
158
- | Default (CSS only) | `<div>` flexbox row | `<button>` + custom dropdown |
159
- | MUI | `<ListItem>` or `<Box display='flex'>` | `<IconButton>` + `<Menu>/<MenuItem>` |
160
- | Ant Design | `<List.Item>` | `<Dropdown menu={{ items }}>` |
161
- | Chakra UI | `<HStack>` | `<Menu>/<MenuButton>/<MenuList>` |
162
- | Shadcn/ui | `<div>` flexbox | `<DropdownMenu>` |
163
-
164
- When implementing in a specific design system:
165
-
166
- - `menuIconOverride$` completely replaces the standard `⋮` menu — check for it before rendering the actions area
167
- - `type === 'URL'` must render the name as a clickable link (not plain text)
168
- - `secondary.error` is a boolean — apply error styling to the `secondary.text` when `true`
169
- - `SummaryList` is purely compositional — no logic beyond mapping items to `SummaryItem`
@@ -1,198 +0,0 @@
1
- # Skill: ToDo
2
-
3
- Assignment worklist widget. Displays the current user's pending assignments with expand/collapse, click-to-open, priority indicators, badge counts, responsive layout, and snackbar error notifications.
4
-
5
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- Renders a compact to-do / worklist panel showing the user's pending assignments. Shows the top 3 items by default with a "Show more" / "Show less" toggle. Supports two modes: `worklist` (personal workbasket) and `todo` (case-level assignments). Clicking an item opens the assignment. A badge in the card header shows the total count.
12
-
13
- ## Pega Metadata
14
-
15
- - **Registration key:** `Todo` (note: lowercase `o` in the key; file is `ToDo.tsx`)
16
- - **Category:** Widget — assignment / action
17
- - **Extends:** `PConnProps`
18
-
19
- ## Props
20
-
21
- | Prop | Type | Required | Description |
22
- | -------------- | ---------- | -------- | -------------------------------------------------------------------------------------------------- |
23
- | `datasource` | `any` | No | Array of assignments passed directly (used in `todo` type). If provided, skips the data page fetch |
24
- | `myWorkList` | `any` | No | Work list config object `{ datapage: string, fields: [...] }` — for `worklist` type |
25
- | `caseInfoID` | `string` | No | Case ID to filter assignments (used in `todo` type) |
26
- | `headerText` | `string` | No | Widget title. Default: `"To do"` |
27
- | `itemKey` | `string` | No | Field key (reserved, currently unused) |
28
- | `showTodoList` | `boolean` | No | Whether to show the assignment list. Default `true` |
29
- | `type` | `string` | No | `'worklist'` (personal work) or `'todo'` (case-level). Default `'worklist'` |
30
- | `context` | `string` | No | Context name for API calls. Falls back to `pConn.getContextName()` |
31
- | `isConfirm` | `boolean` | No | Confirmation mode — adjusts rendering for post-submit confirmation view |
32
- | `getPConnect` | `function` | Yes | PConnect getter |
33
-
34
- ## Behavioral Contract
35
-
36
- ### Data Source Resolution
37
-
38
- **`type === 'todo'` (case-level):**
39
-
40
- - Use `datasource` prop directly (array of assignment objects).
41
- - `caseInfoID` is used to scope the assignments.
42
-
43
- **`type === 'worklist'` (personal work):**
44
-
45
- - Fetch from `myWorkList.datapage` (e.g., `D_WorkList`) via:
46
- ```
47
- PCore.getDataPageUtils().getDataAsync(
48
- myWorkList.datapage,
49
- context,
50
- {},
51
- { pageNumber: 1, pageSize: 50 },
52
- { select: myWorkList.fields },
53
- { invalidateCache: true }
54
- )
55
- ```
56
- - Map the response to assignment objects.
57
-
58
- ### Top 3 + Show More
59
-
60
- - `showCount` state: default `3`.
61
- - Render only `assignments.slice(0, showCount)`.
62
- - If `assignments.length > 3`:
63
- - Show a `"Show more"` button → sets `showCount = assignments.length`.
64
- - When expanded: show `"Show less"` button → sets `showCount = 3`.
65
-
66
- ### Badge Count
67
-
68
- - Render a `<Badge badgeContent={assignments.length}>` on the card header or alongside the title.
69
- - Badge shows the total count of assignments, not the currently-visible count.
70
-
71
- ### Open Assignment
72
-
73
- On item click:
74
-
75
- ```typescript
76
- pConn.getActionsApi().openAssignment(
77
- assignment.pxRefObjectKey, // case key
78
- assignment.pxRefObjectClass, // class name
79
- {
80
- containerName: pConn.getContainerName() || PCore.getConstants().APP.APP,
81
- channelName: '',
82
- },
83
- );
84
- ```
85
-
86
- ### Assignment Item Rendering
87
-
88
- For each assignment, show:
89
-
90
- - **Avatar:** Circle with user initials (derived from `pConn.getContextObject?.().pyLabel` or operator name).
91
- - **Name/title:** `assignment.pyLabel` — the assignment task name.
92
- - **Status badge (worklist only):** `assignment.pyStatusWork` — colored status pill.
93
- - **Priority/urgency:** `assignment.pyUrgencyWork` — urgency level indicator.
94
- - **Child case indicator:** If `assignment.isChild === true`, show an indent or nested indicator.
95
- - **Arrow icon:** Right-pointing arrow (`<ArrowForwardIosOutlinedIcon>`) indicating clickable.
96
-
97
- ### Responsive Layout
98
-
99
- Use `useMediaQuery(theme.breakpoints.down('sm'))` (MUI) to detect mobile:
100
-
101
- - **Desktop:** Show avatar, name, status, priority, and arrow in a horizontal row.
102
- - **Mobile:** Stack or truncate elements for narrow display.
103
-
104
- ### `canPerform` Permission Check
105
-
106
- If an assignment has `canPerform === false`, render it as non-clickable (greyed out, no onClick handler).
107
-
108
- ### Snackbar Error
109
-
110
- - On `openAssignment` failure, catch the error and show a `<Snackbar>` with the error message.
111
- - Auto-hide after 3000ms.
112
- - `<IconButton>` (`<CloseIcon>`) to manually dismiss.
113
-
114
- ### Operator Avatar Initials
115
-
116
- Extract initials from `PCore.getEnvironmentInfo().getOperatorName()`:
117
-
118
- ```typescript
119
- const initials = operatorName
120
- .split(' ')
121
- .map((w) => w[0])
122
- .join('')
123
- .substring(0, 2)
124
- .toUpperCase();
125
- ```
126
-
127
- ## Visual Specifications
128
-
129
- ### Card Layout
130
-
131
- | Element | Description |
132
- | --------------------- | --------------------------------------------------- |
133
- | Card header | `headerText` (default `"To do"`) + badge with count |
134
- | Assignment rows | Up to `showCount` items |
135
- | Show more/less button | Below the last visible item |
136
-
137
- ### Assignment Row
138
-
139
- | Element | Desktop | Mobile |
140
- | ------------------ | --------- | --------------- |
141
- | Avatar circle | Shown | Shown |
142
- | Task name | Full text | Truncated |
143
- | Status badge | Shown | Hidden or small |
144
- | Priority indicator | Shown | Simplified |
145
- | Arrow icon | Shown | Shown |
146
-
147
- **CSS-only implementation notes:**
148
-
149
- - Card: standard card layout.
150
- - Assignment row: `display: flex; align-items: center; gap: 0.75rem; padding: 10px 0; cursor: pointer; border-bottom: 1px solid var(--divider-color)`.
151
- - Avatar: `width: 36px; height: 36px; border-radius: 50%; background: var(--avatar-bg); display: flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 600`.
152
- - Status badge: `padding: 2px 6px; border-radius: 10px; font-size: 0.75rem; background: var(--status-bg-color)`.
153
- - Priority: `font-size: 0.75rem; color: var(--secondary-text-color)`.
154
- - Arrow: `margin-left: auto; color: var(--secondary-text-color)`.
155
- - Non-clickable (canPerform=false): `opacity: 0.5; cursor: not-allowed`.
156
- - Show more button: `width: 100%; text-align: center; padding: 8px; color: var(--app-primary-color)`.
157
-
158
- ## Edge Cases & Special Logic
159
-
160
- - `type` defaults to `'worklist'` — handle the fallback gracefully if `type` is undefined.
161
- - `datasource` prop vs fetch: if `datasource` is provided (non-empty), skip the data page fetch entirely.
162
- - `myWorkList` may be undefined for `todo` type — do not attempt a fetch if it's missing.
163
- - `showTodoList === false` — render only the card header (with badge count) and hide the list body.
164
- - `isConfirm === true` — used in the Confirmation template context; may adjust layout to hide certain elements (e.g., hide status badge, show simpler view).
165
- - Empty assignments — show a `"No tasks"` or `"You're all caught up!"` empty state message.
166
- - `canPerform` check: if `false`, disable click and show cursor `not-allowed`. Do not open the assignment.
167
- - Container name fallback: `pConn.getContainerName() || PCore.getConstants().APP.APP` — always provide a container name to `openAssignment`.
168
-
169
- ## Dependencies
170
-
171
- - `PCore.getDataPageUtils().getDataAsync()` — worklist data page fetch
172
- - `PCore.getEnvironmentInfo()` — operator name for avatar initials
173
- - `PCore.getConstants()` — CASE_INFO, WORK_BASKET, TODO, APP constants
174
- - `PCore.getLocaleUtils()` — assignment label localization
175
- - `pConn.getActionsApi().openAssignment()` — opens the selected assignment
176
- - MUI: `<Card>`, `<CardContent>`, `<CardHeader>`, `<Avatar>`, `<Typography>`, `<Badge>`, `<List>`, `<ListItem>`, `<ListItemText>`, `<Button>`, `<Snackbar>`, `<IconButton>`, `useMediaQuery`, `useTheme`
177
- - MUI Icons: `<CloseIcon>`, `<ArrowForwardIosOutlinedIcon>`
178
-
179
- ## Design System Mapping
180
-
181
- **UI control type:** Assignment worklist widget with expand/collapse, click-to-open, badge count, and error toast.
182
-
183
- Listed design systems are examples only.
184
-
185
- | Design System | Card | List | Badge | Snackbar |
186
- | ------------------ | ------------------------- | ------------------- | ------------------- | ----------------------------- |
187
- | Default (CSS only) | `<div>` card | `<ul>/<li>` | CSS counter badge | Custom toast overlay |
188
- | MUI | `<Card>` + `<CardHeader>` | `<List>/<ListItem>` | `<Badge>` | `<Snackbar>/<Alert>` |
189
- | Ant Design | `<Card>` | `<List>` | `<Badge count={N}>` | `message.error()` |
190
- | Chakra UI | `<Card>` | `<VStack>` | `<Badge>` | `useToast()` |
191
- | Shadcn/ui | `<Card>` | `<ul>/<li>` | Custom badge | `<Toaster>` + `toast.error()` |
192
-
193
- When implementing in a specific design system:
194
-
195
- - Show top 3 items by default — `showCount` state controls slice; "Show more/less" toggles between 3 and full length
196
- - `canPerform === false` must make the row non-clickable — check this before calling `openAssignment`
197
- - `type === 'worklist'` fetches from a data page; `type === 'todo'` uses the `datasource` prop — both paths must be implemented
198
- - Operator initials for the avatar must be derived from `PCore.getEnvironmentInfo().getOperatorName()`