@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,116 +0,0 @@
1
- # Skill: HierarchicalForm
2
-
3
- Multi-step tabbed form template. Renders form sections as horizontal tabs with per-tab validation error badges and persisted active tab navigation.
4
-
5
- > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- Renders a multi-step form where each section is a tab. Tabs display error badges when their content has validation errors. The active tab index is persisted to navigation state so it survives renders. Optional instruction HTML is displayed above the tab bar.
12
-
13
- ## Pega Metadata
14
-
15
- - **Registration key:** `HierarchicalForm` (in `component-map.ts`)
16
- - **Category:** Form template
17
- - **Extends:** `PConnProps`
18
-
19
- ## Props
20
-
21
- | Prop | Type | Required | Description |
22
- | -------------- | ------------- | -------- | --------------------------------------------- |
23
- | `children` | `ReactNode[]` | Yes | One child per tab section |
24
- | `instructions` | `string` | No | HTML instruction text shown above the tab bar |
25
- | `getPConnect` | `function` | Yes | PConnect getter |
26
-
27
- ## Behavioral Contract
28
-
29
- ### Hook: `useHierarchicalForm`
30
-
31
- `useHierarchicalForm(getPConnect, numTabs)` returns:
32
-
33
- - `activeTabId`: currently selected tab index (string, e.g. `'0'`)
34
- - `setActiveTabId`: setter for `activeTabId`
35
- - `tabErrorCounts`: `Record<string, number>` — error count per tab index key
36
-
37
- Internally it calls `useGetTabsCount(getPConnect)` to compute `tabErrorCounts`.
38
-
39
- ### Active Tab Persistence
40
-
41
- - On mount, read persisted tab from `PCore.getNavigationUtils().getComponentState(navigationKey)` — use `getActiveTabId(componentState)` to extract the stored tab index, or fall back to `getFirstVisibleTabId(tabItems)`.
42
- - On tab change, persist via `PCore.getNavigationUtils().setComponentState(navigationKey, { activeTabId: newId })`.
43
- - `navigationKey` is derived from the component's fully-qualified context path.
44
-
45
- ### Instructions
46
-
47
- - Call `getInstructions(getPConnect(), props.instructions)` to get sanitized HTML.
48
- - If non-empty, render `<div className='psdk-default-form-instruction-text' dangerouslySetInnerHTML={{ __html: instructions }} />` above the tabs.
49
-
50
- ### Tab Items
51
-
52
- - Build `tabItems` from `children` — each entry has `{ id: index.toString(), name: child.label }`.
53
- - Filter to visible tabs via `getFirstVisibleTabId(tabItems)`.
54
-
55
- ### Error Badge
56
-
57
- - For each tab, read `tabErrorCounts[tabIndex]`.
58
- - If `> 0`: wrap the tab label with `<Tooltip title={errorCountMsg}><Badge badgeContent={count} color='error'>{label}</Badge></Tooltip>`.
59
- - Else: render the label plain.
60
-
61
- ### Render
62
-
63
- 1. Optional instruction block (above tabs).
64
- 2. `<TabContext value={activeTabId}>` wrapper.
65
- 3. `<Tabs onChange={handleTabChange} value={activeTabId}>` containing `<Tab>` per visible tab (with error badge label if applicable).
66
- 4. `<TabPanel value={tabId}>` per tab containing the corresponding child.
67
-
68
- ## Visual Specifications
69
-
70
- ### Tab Bar
71
-
72
- | Property | Value |
73
- | ----------- | ------------------------------------------------------ |
74
- | Orientation | Horizontal |
75
- | Error badge | Red MUI Badge with tooltip showing error count message |
76
-
77
- **CSS-only implementation notes:**
78
-
79
- - Tab bar: same as `DetailsSubTabs` — `display: flex; border-bottom: 2px solid var(--divider)`.
80
- - Error badge: red circle badge overlaid top-right of the tab label text.
81
- - Instruction text: `padding: 0.5rem 0; margin-bottom: 0.5rem; font-size: 0.875rem`.
82
-
83
- ## Edge Cases & Special Logic
84
-
85
- - `useGetTabsCount` is a custom hook specific to `HierarchicalForm` — it tracks validation errors per tab section.
86
- - `getActiveTabId` / `getFirstVisibleTabId` are helpers from `tabUtils` — they handle the case where the persisted tab is no longer visible.
87
- - `navigationKey` must be stable across re-renders — derive it once in `useMemo` from `getPConnect().getStateProps()` or equivalent.
88
- - If no visible tabs, render nothing (null).
89
-
90
- ## Dependencies
91
-
92
- - `useHierarchicalForm`, `useGetTabsCount` from `./hooks`
93
- - `getActiveTabId`, `getFirstVisibleTabId`, `tabClick` from `../SubTabs/tabUtils`
94
- - `getInstructions` from `../../helpers/template-utils`
95
- - `TabContext`, `TabPanel` from `@mui/lab`
96
- - `Tab`, `Tabs`, `Badge`, `Tooltip` from `@mui/material`
97
-
98
- ## Design System Mapping
99
-
100
- **UI control type:** Multi-step tabbed form with per-tab error indicators and persistent active tab.
101
-
102
- Listed design systems are examples only.
103
-
104
- | Design System | Recommended Component |
105
- | ------------------ | -------------------------------------------------------------- |
106
- | Default (CSS only) | Custom tab bar + CSS badge (red circle via pseudo-element) |
107
- | MUI | `<Tabs>` + `<Badge>` + `<Tooltip>` + `<TabContext>/<TabPanel>` |
108
- | Ant Design | `<Tabs>` with custom `tabBarExtraContent` for error badges |
109
- | Chakra UI | `<Tabs>` + `<Badge colorScheme='red'>` inside tab label |
110
- | Shadcn/ui | `<Tabs>` + custom badge overlay on tab trigger |
111
-
112
- When implementing in a specific design system:
113
-
114
- - Error badge is mandatory — always show error counts when `tabErrorCounts[id] > 0`
115
- - Active tab must be persisted via `PCore.getNavigationUtils()` for correct navigation behavior
116
- - Instructions HTML renders above the entire tab bar, not per-tab
@@ -1,108 +0,0 @@
1
- # Skill: InlineDashboard
2
-
3
- Inline dashboard template. Renders a dashboard with a title, a main content area, and an optional filter panel whose position is configurable.
4
-
5
- > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- Renders an inline dashboard layout consisting of a title heading, a main content panel, and an optional filter panel. The filter panel position is configurable: `block-start` places filters above the content in a stacked layout; any other position places filters to the side using a 9/3 column split.
12
-
13
- ## Pega Metadata
14
-
15
- - **Registration key:** `InlineDashboard` (in `component-map.ts`)
16
- - **Category:** Page template — dashboard
17
- - **Extends:** `PConnProps`
18
-
19
- ## Props
20
-
21
- | Prop | Type | Required | Description |
22
- | ---------------- | ------------- | -------- | ----------------------------------------------------------------------------- |
23
- | `title` | `string` | No | Dashboard title displayed above the content area |
24
- | `filterPosition` | `string` | No | Filter panel position: `'block-start'` (above) or other (side). Default: side |
25
- | `children` | `ReactNode[]` | Yes | `children[0]` = main content, `children[1]` = filter panel |
26
- | `getPConnect` | `function` | Yes | PConnect getter |
27
-
28
- ## Behavioral Contract
29
-
30
- ### Title
31
-
32
- - If `title` is non-empty, render `<Typography variant='h4'>{title}</Typography>` above the grid.
33
-
34
- ### Filter Position: `'block-start'`
35
-
36
- Stacked layout — filter panel above main content:
37
-
38
- - `<Grid container direction='column-reverse'>` (reverse so filter renders visually above content).
39
- - Filter panel: `<Grid id='filters' size={{ xs: 12 }}>`.
40
- - Main content: `<Grid size={{ xs: 12 }}>`.
41
-
42
- ### Filter Position: Other (side)
43
-
44
- Side-by-side layout — main content left, filters right:
45
-
46
- - `<Grid container direction={...}>` (optionally `row-reverse` based on position value).
47
- - Main content: `<Grid size={{ xs: 9 }}>`.
48
- - Filter panel: `<Grid id='filters' size={{ xs: 3 }}>`.
49
-
50
- ### Children Assignment
51
-
52
- - `children[0]` = main content panel.
53
- - `children[1]` = filter panel (may be absent if no filters configured).
54
-
55
- ## Visual Specifications
56
-
57
- ### Block-Start Layout (filter above content)
58
-
59
- ```
60
- [Filter panel — xs:12]
61
- [Main content — xs:12]
62
- ```
63
-
64
- ### Side Layout (filter to side)
65
-
66
- ```
67
- [Main content — xs:9] [Filters — xs:3]
68
- ```
69
-
70
- **CSS-only implementation notes:**
71
-
72
- - Title: `font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem`.
73
- - Block-start: `display: flex; flex-direction: column; gap: 1rem` (filter div first in DOM but ordered last visually with `order: -1`).
74
- - Side: `display: grid; grid-template-columns: 3fr 1fr; gap: 1rem`.
75
- - Filter panel: `id='filters'` — required for accessibility/selector targeting.
76
- - Responsive: collapse side layout to stacked on mobile.
77
-
78
- ## Edge Cases & Special Logic
79
-
80
- - If `children[1]` is absent (no filters), render only the main content without the grid.
81
- - `direction='column-reverse'` in block-start mode — this is the MUI Grid direction prop; in plain CSS, use flexbox `column` direction with `order` property.
82
- - `title` is optional — if absent, skip the `<Typography h4>` entirely (no empty heading).
83
- - Filter grid always gets `id='filters'` — this is used by `PromotedFilters` for integration.
84
-
85
- ## Dependencies
86
-
87
- - MUI: `<Typography variant='h4'>`, `<Grid container>`, `<Grid>` (child)
88
- - `PConnectComponent` from `@pega/sdk-react`
89
-
90
- ## Design System Mapping
91
-
92
- **UI control type:** Dashboard layout with configurable title and filter panel position.
93
-
94
- Listed design systems are examples only.
95
-
96
- | Design System | Title | Content/Filter Grid |
97
- | ------------------ | ------------------------------ | ---------------------- |
98
- | Default (CSS only) | `<h2>` | CSS grid or flexbox |
99
- | MUI | `<Typography variant='h4'>` | `<Grid container>` |
100
- | Ant Design | `<Typography.Title level={2}>` | `<Row>/<Col>` |
101
- | Chakra UI | `<Heading>` | `<Grid>` or `<HStack>` |
102
- | Shadcn/ui | `<h2>` | Tailwind grid |
103
-
104
- When implementing in a specific design system:
105
-
106
- - `filterPosition === 'block-start'` requires stacked layout (12/12) — not side layout (9/3)
107
- - Filter panel must always have `id='filters'`
108
- - Title heading (`h4` level) is optional — only render when `title` is provided
@@ -1,82 +0,0 @@
1
- # Skill: InlineDashboardPage
2
-
3
- Inline dashboard page template. Builds filter components from promoted filters metadata and delegates rendering to `InlineDashboard`.
4
-
5
- > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- Page-level wrapper for the inline dashboard. Extracts promoted filter definitions from the PConnect metadata, builds React filter components from them, and passes them to `InlineDashboard` as the second child (filter panel). The first child (main content) is passed through unchanged.
12
-
13
- > See `InlineDashboard.md` for the layout and rendering behavior. This component only handles filter component construction.
14
-
15
- ## Pega Metadata
16
-
17
- - **Registration key:** `InlineDashboardPage` (in `component-map.ts`)
18
- - **Category:** Page template — dashboard page
19
- - **Extends:** `PConnProps`
20
-
21
- ## Props
22
-
23
- | Prop | Type | Required | Description |
24
- | ---------------- | ------------- | -------- | ----------------------------------------------- |
25
- | `children` | `ReactNode[]` | Yes | Main content children passed to InlineDashboard |
26
- | `title` | `string` | No | Dashboard title |
27
- | `filterPosition` | `string` | No | Filter position: `'block-start'` or side |
28
- | `getPConnect` | `function` | Yes | PConnect getter |
29
-
30
- ## Behavioral Contract
31
-
32
- ### Filter Component Construction
33
-
34
- In `useEffect([])` (on mount):
35
-
36
- 1. Get promoted filters: `allFilters = getPConnect().getRawMetadata().config.promotedFilters || []`.
37
- 2. Call `buildFilterComponents(getPConnect, allFilters)`:
38
- - For each filter in `allFilters`, creates a PConnect-based filter field component.
39
- - Returns an array of React elements ready to render.
40
- 3. Store result in `filterComponents` state.
41
-
42
- ### Render
43
-
44
- ```tsx
45
- <InlineDashboard title={title} filterPosition={filterPosition} getPConnect={getPConnect}>
46
- {children[0]} {/* main content */}
47
- {filterComponents} {/* built filter components */}
48
- </InlineDashboard>
49
- ```
50
-
51
- - `children[0]` = main content region.
52
- - `filterComponents` = built filter elements (replaces raw `children[1]`).
53
-
54
- ## Visual Specifications
55
-
56
- Identical to `InlineDashboard` — see `InlineDashboard.md`. The only difference is that the filter panel children are programmatically built, not passed directly.
57
-
58
- ## Edge Cases & Special Logic
59
-
60
- - `allFilters` may be empty — if no promoted filters exist, `filterComponents` is an empty array, and `InlineDashboard` renders without a filter panel.
61
- - `buildFilterComponents` is async in some implementations — show a loading state if needed until filters are ready.
62
- - `children[0]` is always the main content — index is stable.
63
- - `filterComponents` replaces `children[1]` entirely — do not render both.
64
-
65
- ## Dependencies
66
-
67
- - `buildFilterComponents` from `./utils` — constructs filter field components from promoted filter config
68
- - `InlineDashboard` — the layout template this component wraps
69
-
70
- ## Design System Mapping
71
-
72
- **UI control type:** Dashboard page — programmatic filter construction + InlineDashboard delegation.
73
-
74
- Listed design systems are examples only.
75
-
76
- This component is a thin orchestration layer. All visual implementation is in `InlineDashboard`. The only implementation detail is `buildFilterComponents` — which creates filter field components from metadata definitions.
77
-
78
- When implementing in a specific design system:
79
-
80
- - `buildFilterComponents` must create proper PConnect-backed filter field components
81
- - If `promotedFilters` is empty, skip the filter panel entirely
82
- - All layout and styling is delegated to `InlineDashboard`
@@ -1,142 +0,0 @@
1
- # Skill: ListView
2
-
3
- Full-featured list view template. Renders a data table with sorting, pagination, global search, single/multi selection, column menu, and filter dialog.
4
-
5
- > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- The primary data table component. Renders a sortable, paginated, filterable, and selectable table from a PConnect data source. Supports both standalone page use (`bInForm: false`) and embedded form use (`bInForm: true`). Columns are configurable, and the table supports row-level selection with callback.
12
-
13
- ## Pega Metadata
14
-
15
- - **Registration key:** `ListView` (in `component-map.ts`)
16
- - **Category:** Data display template
17
- - **Extends:** `PConnProps`
18
-
19
- ## Props
20
-
21
- | Prop | Type | Required | Description |
22
- | ----------------------- | ---------- | -------- | ----------------------------------------------------------------------------- |
23
- | `bInForm` | `boolean` | No | Whether rendered inside a form (affects toolbar and padding). Default `false` |
24
- | `selectionMode` | `string` | No | `'single'` (radio) or `'multi'` (checkbox) or absent (no selection) |
25
- | `dataPageName` | `string` | No | Name of data page to fetch records from |
26
- | `referenceList` | `array` | No | In-memory data array (used when data is already available) |
27
- | `compositeKeys` | `object` | No | Key fields for unique row identification |
28
- | `columns` | `array` | No | Column definition objects `{ fieldName, label, sortable, filterable }` |
29
- | `additionalTableConfig` | `object` | No | Extra config merged with column/sort/filter settings |
30
- | `isSearchable` | `boolean` | No | Whether global search input is shown |
31
- | `payload` | `object` | No | Query payload for data page requests |
32
- | `getPConnect` | `function` | Yes | PConnect getter |
33
-
34
- ## Behavioral Contract
35
-
36
- ### Initialization
37
-
38
- `useInit(getPConnect, columns, dataPageName, payload)` hook:
39
-
40
- 1. Calls `initializeColumns(getPConnect, columns)` to build `configFields`.
41
- 2. Calls `buildFieldsForTable(configFields)` to produce display column definitions.
42
- 3. Calls `getConfigFields(configFields)` for sort/filter metadata.
43
- 4. Fetches initial data via `PCore.getDataApiUtils().getDataAsync(dataPageName, payload)`.
44
- 5. Returns `{ tableDataRows, configFields, totalCount }`.
45
-
46
- ### Sorting
47
-
48
- - `<TableSortLabel>` in each sortable column header.
49
- - On click: call `PCore.getDataApiUtils().getDataAsync(dataPageName, { ...payload, sortBy, sortOrder })`.
50
- - `sortBy` = column field name, `sortOrder` = `'ASC'` or `'DESC'`.
51
-
52
- ### Pagination
53
-
54
- - `<TablePagination>` component below the table.
55
- - `rowsPerPageOptions`: `[5, 10, 25]`.
56
- - On page/rows change: re-fetch with `startIndex` and `maxResults` params.
57
-
58
- ### Global Search
59
-
60
- - Shown when `isSearchable === true`.
61
- - `<TextField>` input above the table (toolbar area).
62
- - On submit/debounce: re-fetch with `searchText` param.
63
-
64
- ### Selection
65
-
66
- | `selectionMode` | Control per row | Callback |
67
- | --------------- | --------------- | ---------------------------- |
68
- | `'single'` | `<Radio>` | `onRowSelect(rowData)` |
69
- | `'multi'` | `<Checkbox>` | `onRowsSelect(selectedRows)` |
70
- | absent | None | None |
71
-
72
- - Select-all checkbox in the header for multi-selection.
73
- - Selected rows highlighted with `selected` row class.
74
-
75
- ### Column Menu
76
-
77
- - `<MoreVertIcon>` button in each column header.
78
- - Opens `<Menu>` with options: Show/Hide column, Pin column.
79
- - Column visibility stored in local state `columnVisibility`.
80
-
81
- ### Filter Dialog
82
-
83
- - Filter icon in toolbar or column header.
84
- - Opens `<Dialog>` with filter form fields for each filterable column.
85
- - On apply: re-fetch with filter params.
86
- - `filterData(filters, configFields)` formats filter objects for the API.
87
-
88
- ### Snackbar Toast
89
-
90
- - Shown on fetch errors or action feedback.
91
- - Auto-hides after 3000ms.
92
-
93
- ## Visual Specifications
94
-
95
- | Element | Description |
96
- | -------------- | -------------------------------------------------------- |
97
- | Toolbar | Search input + filter button + (optional) action buttons |
98
- | Table head | Sticky header with sort labels and column menu |
99
- | Table body | Striped rows, hover state, selected state |
100
- | Pagination bar | Below table, page size selector + page nav |
101
-
102
- **CSS-only implementation notes:**
103
-
104
- - Table container: `overflow-x: auto`.
105
- - Header row: `background: var(--table-header-bg); font-weight: 600`.
106
- - Selected row: `background: var(--selection-highlight-bg)`.
107
- - Hover row: `background: var(--hover-bg)`.
108
- - Sticky header: `position: sticky; top: 0; z-index: 1`.
109
-
110
- ## Edge Cases & Special Logic
111
-
112
- - `bInForm: true` — remove outer padding, hide some toolbar elements.
113
- - Empty result set — show empty state message `"No records found"`.
114
- - `compositeKeys` — used for unique row key generation when no single ID field exists.
115
- - Column visibility changes are local state only — not persisted by default.
116
- - Large datasets — pagination is mandatory; do not load all rows at once.
117
-
118
- ## Dependencies
119
-
120
- - `useInit`, `filterData`, `buildFieldsForTable`, `getConfigFields`, `initializeColumns` from `./utils`
121
- - `PCore.getDataApiUtils().getDataAsync()` — data fetching
122
- - MUI: `<Table>`, `<TableHead>`, `<TableBody>`, `<TableRow>`, `<TableCell>`, `<TableSortLabel>`, `<TablePagination>`, `<Checkbox>`, `<Radio>`, `<Dialog>`, `<TextField>`, `<Menu>`, `<MenuItem>`, `<Snackbar>`
123
-
124
- ## Design System Mapping
125
-
126
- **UI control type:** Full-featured data table with sorting, pagination, search, selection, and filtering.
127
-
128
- Listed design systems are examples only.
129
-
130
- | Design System | Table | Pagination | Dialog |
131
- | ------------------ | -------------------------- | -------------------------- | ------------------ |
132
- | Default (CSS only) | `<table>/<thead>/<tbody>` | Custom pagination controls | `<dialog>` element |
133
- | MUI | `<Table>` + sub-components | `<TablePagination>` | `<Dialog>` |
134
- | Ant Design | `<Table>` | Built-in pagination prop | `<Modal>` |
135
- | Chakra UI | `<Table>` | Custom or `react-table` | `<Modal>` |
136
- | Shadcn/ui | `<Table>` + TanStack Table | Custom pagination | `<Dialog>` |
137
-
138
- When implementing in a specific design system:
139
-
140
- - `bInForm` prop affects layout — tighten spacing and remove outer chrome when `true`
141
- - Sorting, pagination, and search all trigger data re-fetches — do not filter client-side for server-paged data
142
- - Selection mode (`single`/`multi`) requires different controls and callbacks
@@ -1,143 +0,0 @@
1
- # Skill: NarrowWide
2
-
3
- Asymmetric two-column layout with a narrow left column (~33%) and a wide right column (~67%). Includes four sub-variants for different contexts.
4
-
5
- > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
-
7
- ---
8
-
9
- ## Component Purpose
10
-
11
- Renders two children side by side with the left column narrower than the right. Used for case layouts where a sidebar panel sits beside a main content area. Four sub-variants:
12
-
13
- - **`NarrowWide`** — core CSS-based layout, accepts either `a`/`b` slot props or React `children[0]`/`children[1]`
14
- - **`NarrowWidePage`** — wrapper that passes React children as `a` and `b` slot props to `NarrowWide`
15
- - **`NarrowWideForm`** — simplified wrapper using only `children` (no `a`/`b` slots, no title/icon)
16
- - **`NarrowWideDetails`** — details read-only variant; sets children to DISPLAY_ONLY mode and supports highlighted data
17
-
18
- ## Pega Metadata
19
-
20
- | Variant | Registration Key |
21
- | ----------------- | ------------------- |
22
- | NarrowWide | `NarrowWide` |
23
- | NarrowWidePage | `NarrowWidePage` |
24
- | NarrowWideForm | `NarrowWideForm` |
25
- | NarrowWideDetails | `NarrowWideDetails` |
26
-
27
- All extend `PConnProps`.
28
-
29
- ## Props
30
-
31
- ### NarrowWide
32
-
33
- | Prop | Type | Required | Description |
34
- | ---------- | ------------- | -------- | ---------------------------------------------------------- |
35
- | `children` | `ReactNode[]` | No | Two children rendered in narrow/wide slots |
36
- | `a` | `any` | No | Narrow (left) column content |
37
- | `b` | `any` | No | Wide (right) column content |
38
- | `title` | `string` | No | Optional title (not rendered in reference implementation) |
39
- | `cols` | `string` | No | Column template (not rendered in reference implementation) |
40
- | `icon` | `string` | No | Optional icon (not rendered in reference implementation) |
41
-
42
- ### NarrowWidePage
43
-
44
- | Prop | Type | Required | Description |
45
- | ------------- | ------------- | -------- | ----------------------------------------------------- |
46
- | `children` | `ReactNode[]` | Yes | Two children — `[0]` → narrow slot, `[1]` → wide slot |
47
- | `title` | `string` | Yes | Page title (passed to NarrowWide) |
48
- | `templateCol` | `string` | No | Column ratio (default `'1fr 1fr'`) |
49
- | `icon` | `string` | No | Icon name (strips `'pi pi-'` prefix) |
50
-
51
- ### NarrowWideForm
52
-
53
- | Prop | Type | Required | Description |
54
- | ---------- | ------------- | -------- | ----------------------------------------------------- |
55
- | `children` | `ReactNode[]` | Yes | Two children — `[0]` → narrow slot, `[1]` → wide slot |
56
-
57
- ### NarrowWideDetails
58
-
59
- | Prop | Type | Required | Description |
60
- | --------------------- | ---------- | -------- | ------------------------------------------------------------------------- |
61
- | `label` | `string` | Yes | Section label for FieldGroup |
62
- | `showLabel` | `boolean` | No | Whether to show the label. Default `true` |
63
- | `showHighlightedData` | `boolean` | No | Whether to render highlighted data fields above children. Default `false` |
64
- | `getPConnect` | `function` | Yes | PConnect getter |
65
-
66
- ## Behavioral Contract
67
-
68
- ### NarrowWide
69
-
70
- 1. If `children` is provided and has exactly 2 items, render `children[0]` in `.psdk-narrow-column-column` and `children[1]` in `.psdk-wide-column-column` (both wrapped in `.psdk-narrow-wide-column`).
71
- 2. If `a` and `b` are provided (and children is empty/not 2 items), render `a` in the narrow slot and `b` in the wide slot.
72
- 3. The two render paths are independent — priority is `children` if length === 2, otherwise `a`/`b`.
73
-
74
- ### NarrowWidePage
75
-
76
- 1. Extract `childrenToRender = children as ReactElement[]`.
77
- 2. Retrieve `NarrowWide` from the component registry.
78
- 3. Render `<NarrowWide a={childrenToRender[0]} b={childrenToRender[1]} title={title} cols={templateCol} icon={icon?.replace('pi pi-', '')} />`.
79
-
80
- ### NarrowWideForm
81
-
82
- 1. Render exactly as `NarrowWide` with `children` path — checks `children.length === 2`, renders narrow/wide slots.
83
- 2. Does not support `a`/`b` props.
84
-
85
- ### NarrowWideDetails
86
-
87
- 1. Call `getPConnect().getInheritedProps()` and merge with `{ label, showLabel }` for `propsToUse`.
88
- 2. Set `getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY')` and `setInheritedProp('readOnly', true)`.
89
- 3. Map `getPConnect().getChildren()` → `createElement(PConnectComponent, { ...configObject, key: index })`.
90
- 4. If `showHighlightedData` is true, read `getRawMetadata().config.highlightedData`, set each field's `displayMode = 'STACKED_LARGE_VAL'`, mark `pyStatusWork` fields as `type='TextInput', displayAsStatus=true`, and create components via `getPConnect().createComponent(field, '', 0, {})`.
91
- 5. Wrap everything in `<FieldGroup name={theName}>` where `theName = propsToUse.showLabel && propsToUse.label ? propsToUse.label : ''`.
92
- 6. Layout: highlighted data in `Grid size={{ xs: COLUMN_WIDTHS[i] }}` where `COLUMN_WIDTHS = [4, 8]`, then children in `Grid size={{ xs: 12 }}` rows.
93
-
94
- ## Visual Specifications
95
-
96
- Derived from `NarrowWide.css`:
97
-
98
- ### Container
99
-
100
- | CSS Class | Property | Value |
101
- | ---------------------------- | -------- | ----------------------------- |
102
- | `.psdk-narrow-wide-column` | Display | flex or grid (two-column row) |
103
- | `.psdk-narrow-column-column` | Width | ~33% (1 of 3 parts) |
104
- | `.psdk-wide-column-column` | Width | ~67% (2 of 3 parts) |
105
-
106
- **CSS-only implementation notes:**
107
-
108
- - `.psdk-narrow-wide-column`: `display: grid; grid-template-columns: 1fr 2fr; gap: 1rem`.
109
- - `.psdk-narrow-column-column`: takes the first (narrower) grid column.
110
- - `.psdk-wide-column-column`: takes the second (wider) grid column.
111
- - On mobile: `grid-template-columns: 1fr` (stacks vertically).
112
-
113
- ## Edge Cases & Special Logic
114
-
115
- - `NarrowWide` supports both `children` and `a`/`b` slot patterns — check `children` length first.
116
- - `NarrowWideDetails` highlighted data grid uses `[4, 8]` column widths (narrow left, wide right for STACKED_LARGE_VAL fields).
117
- - `NarrowWideDetails` reads `theName` from `propsToUse` (which merges inherited props) — the `label` prop alone may be overridden by inherited props.
118
- - Icon cleanup in `NarrowWidePage`: strip `'pi pi-'` prefix from the icon string before passing to `NarrowWide`.
119
-
120
- ## Dependencies
121
-
122
- - `NarrowWidePage`: `getComponentFromRegistry` from `@pega/sdk-react`
123
- - `NarrowWideDetails`: `getComponentFromRegistry('FieldGroup')`, `PConnectComponent` from `@pega/sdk-react`
124
-
125
- ## Design System Mapping
126
-
127
- **UI control type:** Asymmetric two-column layout (sidebar + main content).
128
-
129
- Listed design systems are examples only.
130
-
131
- | Design System | Recommended Component |
132
- | ------------------ | -------------------------------------------------------------------------------- |
133
- | Default (CSS only) | CSS Grid `grid-template-columns: 1fr 2fr; gap: 1rem` |
134
- | MUI | `<Grid container><Grid size={{ xs: 12, md: 4 }}><Grid size={{ xs: 12, md: 8 }}>` |
135
- | Ant Design | `<Row gutter={16}><Col xs={24} md={8}><Col xs={24} md={16}>` |
136
- | Chakra UI | `<Grid templateColumns={{ base: '1fr', md: '1fr 2fr' }} gap={4}>` |
137
- | Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[1fr_2fr] gap-4` |
138
-
139
- When implementing in a specific design system:
140
-
141
- - Narrow column ≈ 33% width (1fr of 3fr total)
142
- - Wide column ≈ 67% width (2fr of 3fr total)
143
- - `NarrowWideDetails` always forces DISPLAY_ONLY + readOnly on children