@pega/sdk 0.0.2 → 0.0.4

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 (455) hide show
  1. package/LICENSE +183 -183
  2. package/README.md +6 -6
  3. package/SECURITY.md +2 -1
  4. package/dist/index.js +14 -57
  5. package/package.json +7 -6
  6. package/templates/angular-sdk-reference/package.json +15 -15
  7. package/templates/angular-sdk-reference/tsconfig.json +2 -2
  8. package/templates/react-native-sdk-reference/App.tsx +2 -4
  9. package/templates/react-native-sdk-reference/package.json +6 -6
  10. package/templates/react-native-sdk-reference/tsconfig.json +2 -1
  11. package/templates/react-sdk-reference/.claude/instructions/component-map.md +38 -0
  12. package/templates/react-sdk-reference/.claude/instructions/dse-component.md +75 -0
  13. package/templates/react-sdk-reference/.claude/instructions/field-component.md +75 -0
  14. package/templates/react-sdk-reference/.claude/instructions/template-component.md +93 -0
  15. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +88 -0
  16. package/templates/react-sdk-reference/.claude/prompts/add-component.md +152 -0
  17. package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +193 -0
  18. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +158 -0
  19. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +140 -0
  20. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +153 -0
  21. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +165 -0
  22. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +138 -0
  23. package/templates/react-sdk-reference/.claude/prompts/identify-components.md +105 -0
  24. package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +519 -0
  25. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +140 -0
  26. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +137 -0
  27. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +152 -0
  28. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +159 -0
  29. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +148 -0
  30. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +134 -0
  31. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +113 -0
  32. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +118 -0
  33. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +155 -0
  34. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +85 -0
  35. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +232 -0
  36. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +137 -0
  37. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +291 -0
  38. package/templates/react-sdk-reference/.claude/skills/field-components.md +295 -0
  39. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +113 -0
  40. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +211 -0
  41. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +175 -0
  42. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +109 -0
  43. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +101 -0
  44. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +106 -0
  45. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +99 -0
  46. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +134 -0
  47. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +109 -0
  48. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +96 -0
  49. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +88 -0
  50. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +145 -0
  51. package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +188 -0
  52. package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +173 -0
  53. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +93 -0
  54. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +129 -0
  55. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +167 -0
  56. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +149 -0
  57. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +134 -0
  58. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +231 -0
  59. package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +155 -0
  60. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +98 -0
  61. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +117 -0
  62. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +107 -0
  63. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +89 -0
  64. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +86 -0
  65. package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +203 -0
  66. package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +70 -0
  67. package/templates/react-sdk-reference/.claude/skills/template-components.md +321 -0
  68. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +150 -0
  69. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +124 -0
  70. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +86 -0
  71. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +106 -0
  72. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +137 -0
  73. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +131 -0
  74. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +109 -0
  75. package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +124 -0
  76. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +104 -0
  77. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +112 -0
  78. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +90 -0
  79. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +97 -0
  80. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +80 -0
  81. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +80 -0
  82. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +106 -0
  83. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +112 -0
  84. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +116 -0
  85. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +108 -0
  86. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +82 -0
  87. package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +70 -0
  88. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +142 -0
  89. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +82 -0
  90. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +143 -0
  91. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +114 -0
  92. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +130 -0
  93. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +142 -0
  94. package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +131 -0
  95. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +108 -0
  96. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +82 -0
  97. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +133 -0
  98. package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +152 -0
  99. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +139 -0
  100. package/templates/react-sdk-reference/.claude/skills/widget-components.md +260 -0
  101. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +84 -0
  102. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +151 -0
  103. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +110 -0
  104. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +206 -0
  105. package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +103 -0
  106. package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +118 -0
  107. package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +169 -0
  108. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +198 -0
  109. package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +41 -0
  110. package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +78 -0
  111. package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +74 -0
  112. package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +247 -0
  113. package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +149 -0
  114. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +193 -0
  115. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +154 -0
  116. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +131 -0
  117. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +144 -0
  118. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +156 -0
  119. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +129 -0
  120. package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +110 -0
  121. package/templates/react-sdk-reference/.cursor/rules/prompts/replace-design-system.mdrules +524 -0
  122. package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +145 -0
  123. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +140 -0
  124. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +154 -0
  125. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +159 -0
  126. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +149 -0
  127. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +136 -0
  128. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +116 -0
  129. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +120 -0
  130. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +154 -0
  131. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +88 -0
  132. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +211 -0
  133. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +140 -0
  134. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +294 -0
  135. package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +299 -0
  136. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +117 -0
  137. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +208 -0
  138. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +163 -0
  139. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +111 -0
  140. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +104 -0
  141. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +108 -0
  142. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +103 -0
  143. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +119 -0
  144. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +112 -0
  145. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +95 -0
  146. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +92 -0
  147. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +141 -0
  148. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +169 -0
  149. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +169 -0
  150. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +97 -0
  151. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +115 -0
  152. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +151 -0
  153. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +143 -0
  154. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +129 -0
  155. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +221 -0
  156. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +153 -0
  157. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +101 -0
  158. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +106 -0
  159. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +109 -0
  160. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +93 -0
  161. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +90 -0
  162. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +185 -0
  163. package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +73 -0
  164. package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +327 -0
  165. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +149 -0
  166. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +127 -0
  167. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +88 -0
  168. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +105 -0
  169. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +136 -0
  170. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +131 -0
  171. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +112 -0
  172. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +125 -0
  173. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +107 -0
  174. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +115 -0
  175. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +93 -0
  176. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +100 -0
  177. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +83 -0
  178. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +83 -0
  179. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +106 -0
  180. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +114 -0
  181. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +118 -0
  182. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +109 -0
  183. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +90 -0
  184. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +73 -0
  185. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +144 -0
  186. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +85 -0
  187. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +146 -0
  188. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +114 -0
  189. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +129 -0
  190. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +140 -0
  191. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +132 -0
  192. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +108 -0
  193. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +84 -0
  194. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +136 -0
  195. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +155 -0
  196. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +140 -0
  197. package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +276 -0
  198. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +87 -0
  199. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +151 -0
  200. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +112 -0
  201. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +205 -0
  202. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +104 -0
  203. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +119 -0
  204. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +172 -0
  205. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +195 -0
  206. package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +95 -0
  207. package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +90 -0
  208. package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
  209. package/templates/react-sdk-reference/.github/copilot-instructions.md +58 -0
  210. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +2 -2
  211. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +1 -1
  212. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +5 -1
  213. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +3 -2
  214. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +2 -1
  215. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +187 -16
  216. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
  217. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +411 -0
  218. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +205 -0
  219. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +223 -0
  220. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +229 -0
  221. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +208 -0
  222. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +65 -65
  223. package/templates/react-sdk-reference/.github/skills/component-contracts.md +99 -99
  224. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +40 -38
  225. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +54 -51
  226. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
  227. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +32 -28
  228. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +38 -35
  229. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +25 -23
  230. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +29 -26
  231. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +32 -26
  232. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +17 -15
  233. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +85 -59
  234. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
  235. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +60 -18
  236. package/templates/react-sdk-reference/.github/skills/field-components.md +56 -23
  237. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +27 -26
  238. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +30 -22
  239. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +60 -43
  240. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +23 -20
  241. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +19 -17
  242. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +18 -15
  243. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +22 -21
  244. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +50 -30
  245. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +20 -18
  246. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +21 -15
  247. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +17 -16
  248. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +30 -21
  249. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +66 -42
  250. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +27 -18
  251. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +22 -21
  252. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +36 -17
  253. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +56 -35
  254. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +23 -12
  255. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +41 -31
  256. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +70 -55
  257. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +34 -27
  258. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +24 -22
  259. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +38 -22
  260. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +24 -21
  261. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +16 -15
  262. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +16 -15
  263. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +57 -34
  264. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +10 -8
  265. package/templates/react-sdk-reference/.github/skills/template-components.md +50 -14
  266. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +27 -21
  267. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +17 -15
  268. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +19 -16
  269. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +19 -13
  270. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +23 -17
  271. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +34 -29
  272. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +18 -16
  273. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +36 -32
  274. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +23 -21
  275. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +31 -29
  276. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +19 -17
  277. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +22 -20
  278. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +19 -17
  279. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +19 -17
  280. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +15 -10
  281. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +19 -16
  282. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +18 -15
  283. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +17 -13
  284. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +10 -13
  285. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +9 -7
  286. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +33 -30
  287. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +13 -11
  288. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +42 -40
  289. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +25 -20
  290. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +25 -19
  291. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +36 -29
  292. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +31 -27
  293. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +29 -24
  294. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +14 -11
  295. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +34 -32
  296. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +48 -46
  297. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +23 -19
  298. package/templates/react-sdk-reference/.github/skills/widget-components.md +52 -26
  299. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +22 -20
  300. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +33 -28
  301. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +18 -15
  302. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +43 -37
  303. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +23 -19
  304. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +20 -16
  305. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +26 -24
  306. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +43 -35
  307. package/templates/react-sdk-reference/AGENTS.md +216 -29
  308. package/templates/react-sdk-reference/index.html +1 -4
  309. package/templates/react-sdk-reference/package.json +16 -16
  310. package/templates/react-sdk-reference/pega-constellationjs-0.26.3-local.tgz +0 -0
  311. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  312. package/templates/react-sdk-reference/sdk-config.json +1 -1
  313. package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
  314. package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
  315. package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
  316. package/templates/react-sdk-reference/src/MashupApp.tsx +186 -85
  317. package/templates/react-sdk-reference/src/PortalApp.tsx +10 -34
  318. package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
  319. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
  320. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
  321. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
  322. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
  323. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
  324. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
  325. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
  326. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
  327. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
  328. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
  329. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
  330. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
  331. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
  332. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
  333. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
  334. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
  335. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
  336. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
  337. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
  338. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
  339. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
  340. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
  341. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
  342. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
  343. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
  344. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
  345. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
  346. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
  347. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
  348. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
  349. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
  350. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
  351. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
  352. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
  353. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
  354. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
  355. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
  356. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
  357. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
  358. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
  359. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
  360. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
  361. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
  362. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
  363. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
  364. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
  365. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
  366. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
  367. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
  368. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
  369. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
  370. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
  371. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
  372. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
  373. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
  374. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
  375. package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
  376. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
  377. package/templates/react-sdk-reference/src/components/index.ts +1 -4
  378. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
  379. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
  380. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
  381. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
  382. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
  383. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
  384. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
  385. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
  386. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
  387. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
  388. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
  389. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
  390. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
  391. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
  392. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
  393. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
  394. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
  395. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
  396. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
  397. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
  398. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
  399. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
  400. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
  401. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
  402. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
  403. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
  404. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
  405. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
  406. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
  407. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
  408. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
  409. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
  410. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
  411. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
  412. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
  413. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
  414. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
  415. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
  416. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
  417. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
  418. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
  419. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
  420. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
  421. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
  422. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
  423. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
  424. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
  425. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
  426. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
  427. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
  428. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
  429. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
  430. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
  431. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
  432. package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
  433. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
  434. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
  435. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
  436. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
  437. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
  438. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
  439. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
  440. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
  441. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
  442. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
  443. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
  444. package/templates/react-sdk-reference/src/main.tsx +1 -1
  445. package/templates/react-sdk-reference/tsconfig.json +2 -1
  446. package/templates/react-sdk-reference/vite.config.ts +52 -27
  447. package/templates/wc-sdk-reference/package.json +3 -3
  448. package/templates/wc-sdk-reference/src/index.ts +10 -10
  449. package/templates/wc-sdk-reference/tsconfig.json +1 -0
  450. package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +0 -48
  451. package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +0 -81
  452. package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +0 -41
  453. package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +0 -49
  454. package/templates/react-sdk-reference/.github/skills/swap-design-system.md +0 -105
  455. package/templates/react-sdk-reference/pega-constellationjs-0.26.2.tgz +0 -0
@@ -16,20 +16,20 @@ Renders two child components side by side in a responsive grid. Column widths ar
16
16
 
17
17
  ## Pega Metadata
18
18
 
19
- | Variant | Registration Key |
20
- |---------|-----------------|
21
- | TwoColumn | `TwoColumn` |
22
- | TwoColumnPage | `TwoColumnPage` |
23
- | TwoColumnTab | `TwoColumnTab` |
19
+ | Variant | Registration Key |
20
+ | ------------- | ---------------- |
21
+ | TwoColumn | `TwoColumn` |
22
+ | TwoColumnPage | `TwoColumnPage` |
23
+ | TwoColumnTab | `TwoColumnTab` |
24
24
 
25
25
  All three extend `PConnProps`. Children are received as React `children` (not via `getPConnect().getChildren()`).
26
26
 
27
27
  ## Props
28
28
 
29
- | Prop | Type | Required | Description |
30
- |------|------|----------|-------------|
31
- | `children` | `ReactNode[]` | Yes | Exactly 2 children (left column, right column) |
32
- | `templateCol` | `string` | No | Column width ratio string, e.g., `'1fr 1fr'`, `'2fr 1fr'`. Default `'1fr 1fr'` |
29
+ | Prop | Type | Required | Description |
30
+ | ------------- | ------------- | -------- | ------------------------------------------------------------------------------ |
31
+ | `children` | `ReactNode[]` | Yes | Exactly 2 children (left column, right column) |
32
+ | `templateCol` | `string` | No | Column width ratio string, e.g., `'1fr 1fr'`, `'2fr 1fr'`. Default `'1fr 1fr'` |
33
33
 
34
34
  ## Sub-Variants
35
35
 
@@ -66,35 +66,36 @@ Derived from `TwoColumn.tsx` and `TwoColumnTab.tsx` makeStyles:
66
66
 
67
67
  ### Column Style
68
68
 
69
- | Property | Value |
70
- |----------|-------|
71
- | Display | grid |
72
- | Gap | 1rem |
69
+ | Property | Value |
70
+ | ------------- | ------------------------------------- |
71
+ | Display | grid |
72
+ | Gap | 1rem |
73
73
  | Align content | baseline (children stack top-aligned) |
74
74
 
75
75
  ### Grid Spacing
76
76
 
77
- | Property | Value |
78
- |----------|-------|
77
+ | Property | Value |
78
+ | ----------------- | ------------------------- |
79
79
  | Container spacing | 1 (≈ 8px between columns) |
80
80
 
81
81
  ### Responsive Behavior
82
82
 
83
- | Breakpoint | Column A | Column B |
84
- |-----------|----------|----------|
85
- | xs (mobile) | 12/12 (full width) | 12/12 (full width, stacks below) |
86
- | md+ (desktop) | `aSize`/12 | `bSize`/12 |
83
+ | Breakpoint | Column A | Column B |
84
+ | ------------- | ------------------ | -------------------------------- |
85
+ | xs (mobile) | 12/12 (full width) | 12/12 (full width, stacks below) |
86
+ | md+ (desktop) | `aSize`/12 | `bSize`/12 |
87
87
 
88
88
  **Column ratio examples:**
89
89
 
90
- | `templateCol` | Column A | Column B |
91
- |--------------|----------|----------|
92
- | `'1fr 1fr'` | 6/12 (50%) | 6/12 (50%) |
93
- | `'2fr 1fr'` | 8/12 (67%) | 4/12 (33%) |
94
- | `'1fr 2fr'` | 4/12 (33%) | 8/12 (67%) |
95
- | `'3fr 1fr'` | 9/12 (75%) | 3/12 (25%) |
90
+ | `templateCol` | Column A | Column B |
91
+ | ------------- | ---------- | ---------- |
92
+ | `'1fr 1fr'` | 6/12 (50%) | 6/12 (50%) |
93
+ | `'2fr 1fr'` | 8/12 (67%) | 4/12 (33%) |
94
+ | `'1fr 2fr'` | 4/12 (33%) | 8/12 (67%) |
95
+ | `'3fr 1fr'` | 9/12 (75%) | 3/12 (25%) |
96
96
 
97
97
  **CSS-only implementation notes:**
98
+
98
99
  - Column container: `display: grid; gap: 1rem; align-content: start`.
99
100
  - Outer grid: `display: grid; grid-template-columns: <aFraction>fr <bFraction>fr; gap: 8px`.
100
101
  - Mobile: `grid-template-columns: 1fr` (single column stack).
@@ -117,15 +118,16 @@ Derived from `TwoColumn.tsx` and `TwoColumnTab.tsx` makeStyles:
117
118
 
118
119
  Listed design systems are examples only.
119
120
 
120
- | Design System | Recommended Component |
121
- |---|---|
122
- | Default (CSS only) | CSS Grid with `grid-template-columns: <a>fr <b>fr; gap: 8px` |
123
- | MUI | `<Grid container spacing={1}><Grid size={{ xs: 12, md: N }}>` |
124
- | Ant Design | `<Row gutter={8}><Col xs={24} md={N * 2}>` (Ant uses 24-column grid) |
125
- | Chakra UI | `<SimpleGrid columns={{ base: 1, md: 2 }} spacing={2}>` |
126
- | Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[<a>fr_<b>fr] gap-2` |
121
+ | Design System | Recommended Component |
122
+ | ------------------ | -------------------------------------------------------------------- |
123
+ | Default (CSS only) | CSS Grid with `grid-template-columns: <a>fr <b>fr; gap: 8px` |
124
+ | MUI | `<Grid container spacing={1}><Grid size={{ xs: 12, md: N }}>` |
125
+ | Ant Design | `<Row gutter={8}><Col xs={24} md={N * 2}>` (Ant uses 24-column grid) |
126
+ | Chakra UI | `<SimpleGrid columns={{ base: 1, md: 2 }} spacing={2}>` |
127
+ | Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[<a>fr_<b>fr] gap-2` |
127
128
 
128
129
  When implementing in a specific design system:
130
+
129
131
  - Parse `templateCol` using the same ratio algorithm (strip units, divide 12 by total)
130
132
  - Apply `align-content: baseline` so children within each column stack top-aligned
131
133
  - Collapse to single column on mobile breakpoint
@@ -19,11 +19,11 @@ Renders two children side by side with the left column wider than the right. Typ
19
19
 
20
20
  ## Pega Metadata
21
21
 
22
- | Variant | Registration Key |
23
- |---------|-----------------|
24
- | WideNarrow | `WideNarrow` |
25
- | WideNarrowPage | `WideNarrowPage` |
26
- | WideNarrowForm | `WideNarrowForm` |
22
+ | Variant | Registration Key |
23
+ | ----------------- | ------------------- |
24
+ | WideNarrow | `WideNarrow` |
25
+ | WideNarrowPage | `WideNarrowPage` |
26
+ | WideNarrowForm | `WideNarrowForm` |
27
27
  | WideNarrowDetails | `WideNarrowDetails` |
28
28
 
29
29
  All extend `PConnProps`.
@@ -32,38 +32,38 @@ All extend `PConnProps`.
32
32
 
33
33
  ### WideNarrow
34
34
 
35
- | Prop | Type | Required | Description |
36
- |------|------|----------|-------------|
37
- | `children` | `ReactNode[]` | No | Two children — `[0]` → wide (left), `[1]` → narrow (right) |
38
- | `a` | `any` | No | Wide (left) column content |
39
- | `b` | `any` | No | Narrow (right) column content |
40
- | `title` | `string` | No | Optional title (not rendered) |
41
- | `cols` | `string` | No | Column template (not rendered) |
42
- | `icon` | `string` | No | Icon name (not rendered) |
35
+ | Prop | Type | Required | Description |
36
+ | ---------- | ------------- | -------- | ---------------------------------------------------------- |
37
+ | `children` | `ReactNode[]` | No | Two children — `[0]` → wide (left), `[1]` → narrow (right) |
38
+ | `a` | `any` | No | Wide (left) column content |
39
+ | `b` | `any` | No | Narrow (right) column content |
40
+ | `title` | `string` | No | Optional title (not rendered) |
41
+ | `cols` | `string` | No | Column template (not rendered) |
42
+ | `icon` | `string` | No | Icon name (not rendered) |
43
43
 
44
44
  ### WideNarrowPage
45
45
 
46
- | Prop | Type | Required | Description |
47
- |------|------|----------|-------------|
48
- | `children` | `ReactNode[]` | Yes | Two children — `[0]` → wide slot, `[1]` → narrow slot |
49
- | `title` | `string` | Yes | Page title (passed to WideNarrow) |
50
- | `templateCol` | `string` | No | Column ratio (default `'1fr 1fr'`) |
51
- | `icon` | `string` | No | Icon name (strips `'pi pi-'` prefix) |
46
+ | Prop | Type | Required | Description |
47
+ | ------------- | ------------- | -------- | ----------------------------------------------------- |
48
+ | `children` | `ReactNode[]` | Yes | Two children — `[0]` → wide slot, `[1]` → narrow slot |
49
+ | `title` | `string` | Yes | Page title (passed to WideNarrow) |
50
+ | `templateCol` | `string` | No | Column ratio (default `'1fr 1fr'`) |
51
+ | `icon` | `string` | No | Icon name (strips `'pi pi-'` prefix) |
52
52
 
53
53
  ### WideNarrowForm
54
54
 
55
- | Prop | Type | Required | Description |
56
- |------|------|----------|-------------|
57
- | `children` | `ReactNode[]` | Yes | Two children rendered in wide/narrow slots |
55
+ | Prop | Type | Required | Description |
56
+ | ---------- | ------------- | -------- | ------------------------------------------ |
57
+ | `children` | `ReactNode[]` | Yes | Two children rendered in wide/narrow slots |
58
58
 
59
59
  ### WideNarrowDetails
60
60
 
61
- | Prop | Type | Required | Description |
62
- |------|------|----------|-------------|
63
- | `label` | `string` | No | Section label for FieldGroup |
64
- | `showLabel` | `boolean` | No | Whether to show the label. Default `true` |
65
- | `showHighlightedData` | `boolean` | No | Whether to render highlighted data fields. Default `false` |
66
- | `getPConnect` | `function` | Yes | PConnect getter |
61
+ | Prop | Type | Required | Description |
62
+ | --------------------- | ---------- | -------- | ---------------------------------------------------------- |
63
+ | `label` | `string` | No | Section label for FieldGroup |
64
+ | `showLabel` | `boolean` | No | Whether to show the label. Default `true` |
65
+ | `showHighlightedData` | `boolean` | No | Whether to render highlighted data fields. Default `false` |
66
+ | `getPConnect` | `function` | Yes | PConnect getter |
67
67
 
68
68
  ## Behavioral Contract
69
69
 
@@ -98,13 +98,14 @@ Derived from `WideNarrow.css`:
98
98
 
99
99
  ### Container
100
100
 
101
- | CSS Class | Property | Value |
102
- |-----------|----------|-------|
103
- | `.psdk-wide-narrow-column` | Display | two-column row layout |
104
- | `.psdk-wide-column-column` | Width | ~67% (2 of 3 parts) — LEFT column |
105
- | `.psdk-narrow-column-column` | Width | ~33% (1 of 3 parts) — RIGHT column |
101
+ | CSS Class | Property | Value |
102
+ | ---------------------------- | -------- | ---------------------------------- |
103
+ | `.psdk-wide-narrow-column` | Display | two-column row layout |
104
+ | `.psdk-wide-column-column` | Width | ~67% (2 of 3 parts) — LEFT column |
105
+ | `.psdk-narrow-column-column` | Width | ~33% (1 of 3 parts) — RIGHT column |
106
106
 
107
107
  **CSS-only implementation notes:**
108
+
108
109
  - `.psdk-wide-narrow-column`: `display: grid; grid-template-columns: 2fr 1fr; gap: 1rem`.
109
110
  - Wide column (left): `2fr` — takes the first grid column.
110
111
  - Narrow column (right): `1fr` — takes the second grid column.
@@ -112,12 +113,12 @@ Derived from `WideNarrow.css`:
112
113
 
113
114
  ### Key Difference from NarrowWide
114
115
 
115
- | | NarrowWide | WideNarrow |
116
- |---|---|---|
117
- | Left column | Narrow (~33%) | Wide (~67%) |
118
- | Right column | Wide (~67%) | Narrow (~33%) |
119
- | CSS container class | `.psdk-narrow-wide-column` | `.psdk-wide-narrow-column` |
120
- | `COLUMN_WIDTHS` (Details) | `[4, 8]` | `[8, 4]` |
116
+ | | NarrowWide | WideNarrow |
117
+ | ------------------------- | -------------------------- | -------------------------- |
118
+ | Left column | Narrow (~33%) | Wide (~67%) |
119
+ | Right column | Wide (~67%) | Narrow (~33%) |
120
+ | CSS container class | `.psdk-narrow-wide-column` | `.psdk-wide-narrow-column` |
121
+ | `COLUMN_WIDTHS` (Details) | `[4, 8]` | `[8, 4]` |
121
122
 
122
123
  ## Edge Cases & Special Logic
123
124
 
@@ -136,15 +137,16 @@ Derived from `WideNarrow.css`:
136
137
 
137
138
  Listed design systems are examples only.
138
139
 
139
- | Design System | Recommended Component |
140
- |---|---|
141
- | Default (CSS only) | CSS Grid `grid-template-columns: 2fr 1fr; gap: 1rem` |
142
- | MUI | `<Grid container><Grid size={{ xs: 12, md: 8 }}><Grid size={{ xs: 12, md: 4 }}>` |
143
- | Ant Design | `<Row gutter={16}><Col xs={24} md={16}><Col xs={24} md={8}>` |
144
- | Chakra UI | `<Grid templateColumns={{ base: '1fr', md: '2fr 1fr' }} gap={4}>` |
145
- | Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[2fr_1fr] gap-4` |
140
+ | Design System | Recommended Component |
141
+ | ------------------ | -------------------------------------------------------------------------------- |
142
+ | Default (CSS only) | CSS Grid `grid-template-columns: 2fr 1fr; gap: 1rem` |
143
+ | MUI | `<Grid container><Grid size={{ xs: 12, md: 8 }}><Grid size={{ xs: 12, md: 4 }}>` |
144
+ | Ant Design | `<Row gutter={16}><Col xs={24} md={16}><Col xs={24} md={8}>` |
145
+ | Chakra UI | `<Grid templateColumns={{ base: '1fr', md: '2fr 1fr' }} gap={4}>` |
146
+ | Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[2fr_1fr] gap-4` |
146
147
 
147
148
  When implementing in a specific design system:
149
+
148
150
  - Wide column ≈ 67% width (left side)
149
151
  - Narrow column ≈ 33% width (right side)
150
152
  - `WideNarrowDetails` forces DISPLAY_ONLY + readOnly on all children
@@ -18,13 +18,13 @@ Provides the top navigation bar for WSS (Web Self-Service) portals. Responsive:
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `links` | `array` | Yes | Array of `{ label, url, id }` navigation link objects |
24
- | `navDisplayOptions` | `object` | No | `{ alignment: 'left'|'right'|'center', position: 'inline'|'below' }` |
25
- | `portalLogoUrl` | `string` | No | URL for the portal logo image |
26
- | `operatorInfo` | `object` | No | `{ displayName: string }` — for avatar initials |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ------------------- | ---------- | -------- | ----------------------------------------------------- |
23
+ | `links` | `array` | Yes | Array of `{ label, url, id }` navigation link objects |
24
+ | `navDisplayOptions` | `object` | No | `{ alignment: 'left' | 'right' | 'center', position: 'inline' | 'below' }` |
25
+ | `portalLogoUrl` | `string` | No | URL for the portal logo image |
26
+ | `operatorInfo` | `object` | No | `{ displayName: string }` — for avatar initials |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
28
 
29
29
  ## Behavioral Contract
30
30
 
@@ -38,12 +38,14 @@ Provides the top navigation bar for WSS (Web Self-Service) portals. Responsive:
38
38
  ### Navigation Position
39
39
 
40
40
  From `navDisplayOptions.position`:
41
+
41
42
  - `'inline'` — nav links appear in the same row as the logo.
42
43
  - `'below'` — nav links appear in a second row below the logo/title row.
43
44
 
44
45
  ### Navigation Alignment
45
46
 
46
47
  From `navDisplayOptions.alignment`:
48
+
47
49
  - `'left'` — links flush left.
48
50
  - `'right'` — links pushed to the right (flex with `ml: 'auto'`).
49
51
  - `'center'` — links centered.
@@ -87,14 +89,15 @@ From `navDisplayOptions.alignment`:
87
89
 
88
90
  ## Visual Specifications
89
91
 
90
- | Element | Mobile | Desktop |
91
- |---------|--------|---------|
92
- | Logo | Shown | Shown |
92
+ | Element | Mobile | Desktop |
93
+ | --------- | ----------------------- | --------------------- |
94
+ | Logo | Shown | Shown |
93
95
  | Nav links | Hidden (hamburger menu) | Shown inline or below |
94
- | Avatar | Shown | Shown |
95
- | Hamburger | Shown | Hidden |
96
+ | Avatar | Shown | Shown |
97
+ | Hamburger | Shown | Hidden |
96
98
 
97
99
  **CSS-only implementation notes:**
100
+
98
101
  - App bar: `background: var(--app-primary-color); color: white`.
99
102
  - Toolbar: `display: flex; align-items: center; gap: 1rem; padding: 0 1rem`.
100
103
  - Hamburger: `display: none`. At mobile breakpoint: `display: flex`.
@@ -121,15 +124,16 @@ From `navDisplayOptions.alignment`:
121
124
 
122
125
  Listed design systems are examples only.
123
126
 
124
- | Design System | App Bar | Avatar | Mobile Menu |
125
- |---|---|---|---|
126
- | Default (CSS only) | `<header>` + CSS | `<div class='avatar'>` | CSS hamburger + dropdown |
127
- | MUI | `<AppBar>` + `<Toolbar>` | `<Avatar>` | `<Drawer>` or `<Menu>` |
128
- | Ant Design | `<Layout.Header>` | `<Avatar>` | `<Drawer>` |
129
- | Chakra UI | `<Box as='header'>` | `<Avatar>` | `<Drawer>` |
130
- | Shadcn/ui | Custom `<header>` | Custom initials avatar | `<Sheet>` (drawer) |
127
+ | Design System | App Bar | Avatar | Mobile Menu |
128
+ | ------------------ | ------------------------ | ---------------------- | ------------------------ |
129
+ | Default (CSS only) | `<header>` + CSS | `<div class='avatar'>` | CSS hamburger + dropdown |
130
+ | MUI | `<AppBar>` + `<Toolbar>` | `<Avatar>` | `<Drawer>` or `<Menu>` |
131
+ | Ant Design | `<Layout.Header>` | `<Avatar>` | `<Drawer>` |
132
+ | Chakra UI | `<Box as='header'>` | `<Avatar>` | `<Drawer>` |
133
+ | Shadcn/ui | Custom `<header>` | Custom initials avatar | `<Sheet>` (drawer) |
131
134
 
132
135
  When implementing in a specific design system:
136
+
133
137
  - `logout` from `@pega/auth/lib/sdk-auth-manager` is mandatory — always call the SDK logout, not a custom one
134
138
  - Responsive breakpoints for hamburger/nav visibility must be implemented
135
139
  - `navDisplayOptions.alignment` and `.position` must be respected
@@ -51,12 +51,14 @@ interface AttachmentProps extends Omit<PConnFieldProps, 'value'> {
51
51
 
52
52
  ### Data-Fetching Widget
53
53
 
54
- Widgets typically fetch data from Pega data pages on mount:
54
+ Widgets typically fetch data from Pega data pages on mount. This pattern is design-system agnostic. The `// [DS RENDER]` section must be replaced with your design system's presentation primitives (card, list, table, etc.) — see "Design System Adaptation" below.
55
55
 
56
56
  ```typescript
57
57
  import { useState, useEffect } from 'react';
58
- import { Card, CardHeader, CardContent, List, ListItem } from '@mui/material';
59
- import type { PConnProps } from '../../../types/PConnProps';
58
+ // Import your design system components here:
59
+ // e.g. import { Card, List } from 'antd';
60
+ // e.g. import { Card, UnorderedList } from '@chakra-ui/react';
61
+ import type { PConnProps } from '@pega/sdk-react';
60
62
 
61
63
  interface MyWidgetProps extends PConnProps {
62
64
  datasource?: any;
@@ -70,8 +72,9 @@ export default function MyWidget(props: MyWidgetProps) {
70
72
  const [data, setData] = useState<any[]>([]);
71
73
  const [loading, setLoading] = useState(true);
72
74
 
75
+ // 1. Fetch data from a Pega data page on mount
76
+ // This block is always the same regardless of design system
73
77
  useEffect(() => {
74
- // Fetch data from a Pega data page
75
78
  const context = pConn.getContextName();
76
79
  PCore.getDataPageUtils()
77
80
  .getDataAsync(
@@ -89,23 +92,58 @@ export default function MyWidget(props: MyWidgetProps) {
89
92
  .catch(() => setLoading(false));
90
93
  }, []);
91
94
 
95
+ // 2. Loading state — replace with your DS loading indicator if available
92
96
  if (loading) return <div>Loading...</div>;
93
97
 
98
+ // 3. [DS RENDER] — replace with your design system's card/list/table primitives
99
+ // See "Design System Adaptation" section below for guidance
94
100
  return (
95
- <Card>
96
- <CardHeader title={headerText} />
97
- <CardContent>
98
- <List>
101
+ <YourDesignSystemCard>
102
+ <YourDesignSystemCardHeader title={headerText} />
103
+ <YourDesignSystemCardContent>
104
+ <YourDesignSystemList>
99
105
  {data.map((item, i) => (
100
- <ListItem key={i}>{item.pyLabel}</ListItem>
106
+ <YourDesignSystemListItem key={i}>{item.pyLabel}</YourDesignSystemListItem>
101
107
  ))}
102
- </List>
103
- </CardContent>
104
- </Card>
108
+ </YourDesignSystemList>
109
+ </YourDesignSystemCardContent>
110
+ </YourDesignSystemCard>
105
111
  );
106
112
  }
107
113
  ```
108
114
 
115
+ ---
116
+
117
+ ## Design System Adaptation
118
+
119
+ The PCore data-fetching logic (all `PCore.*` calls) is always identical regardless of design system. Only the `// [DS RENDER]` section changes.
120
+
121
+ **1. Check the component-specific skill file** — `.github/skills/widget-skills/<ComponentName>.md` contains a **Design System Mapping** table where available. Use it as a starting point.
122
+
123
+ **2. If the chosen design system is not listed** — use the component purpose description to identify the appropriate DS primitives (card, list, table, button, badge, etc.).
124
+
125
+ **3. Discover the API from installed packages** — confirm component names and props from `.d.ts` before writing JSX:
126
+
127
+ ```bash
128
+ find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Card\|List\|Table" | head -5
129
+ grep -A 30 "interface.*Props" <path-to-file>
130
+ ```
131
+
132
+ **4. Common widget UI primitive mapping:**
133
+
134
+ | Widget pattern | Typical DS equivalent |
135
+ | -------------------- | ----------------------------------------------- |
136
+ | Container with title | `Card` + header/title prop, or `Panel`, `Box` |
137
+ | Item list | `List`, `UnorderedList`, or `Table` rows |
138
+ | Loading indicator | `Spinner`, `Skeleton`, `Loading` |
139
+ | Action button | `Button` with `onClick` |
140
+ | Status badge | `Badge`, `Tag`, `Chip` |
141
+ | Empty state | DS empty/placeholder component or plain `<div>` |
142
+
143
+ **5. Icons** — if the DS has a companion icon package, read its exports before using any icon name. Never guess icon names.
144
+
145
+ ---
146
+
109
147
  ### Action Widget (opens assignments/cases)
110
148
 
111
149
  ```typescript
@@ -130,14 +168,7 @@ function createCase(caseType) {
130
168
 
131
169
  ```typescript
132
170
  // Fetch list data
133
- PCore.getDataPageUtils().getDataAsync(
134
- dataPageName,
135
- context,
136
- params,
137
- paging,
138
- query,
139
- options,
140
- );
171
+ PCore.getDataPageUtils().getDataAsync(dataPageName, context, params, paging, query, options);
141
172
 
142
173
  // Get page data (single record)
143
174
  PCore.getDataPageUtils().getPageDataAsync(dataPageName, context, params);
@@ -156,12 +187,7 @@ const caseName = pConn.getCaseInfo().getName();
156
187
 
157
188
  ```typescript
158
189
  PCore.getAttachmentUtils().prepareAttachmentData(value);
159
- PCore.getAttachmentUtils().uploadAttachment(
160
- file,
161
- onProgress,
162
- errorHandler,
163
- context,
164
- );
190
+ PCore.getAttachmentUtils().uploadAttachment(file, onProgress, errorHandler, context);
165
191
  PCore.getAttachmentUtils().downloadAttachment(attachmentID, context);
166
192
  ```
167
193
 
@@ -18,13 +18,13 @@ Renders an announcement card with a heading, description text, optional bullet l
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `header` | `string` | No | Announcement card title |
24
- | `description` | `string` | No | Announcement body text |
25
- | `datasource` | `object` | No | Data source object — `datasource.source` is an array of item objects |
26
- | `whatsnewlink` | `string` | No | URL for the "See what's new" button; if absent, button is not rendered |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | -------------- | ---------- | -------- | ---------------------------------------------------------------------- |
23
+ | `header` | `string` | No | Announcement card title |
24
+ | `description` | `string` | No | Announcement body text |
25
+ | `datasource` | `object` | No | Data source object — `datasource.source` is an array of item objects |
26
+ | `whatsnewlink` | `string` | No | URL for the "See what's new" button; if absent, button is not rendered |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
28
 
29
29
  ## Behavioral Contract
30
30
 
@@ -37,14 +37,15 @@ Renders an announcement card with a heading, description text, optional bullet l
37
37
 
38
38
  ### Card Layout
39
39
 
40
- | Element | Position |
41
- |---------|----------|
42
- | Left accent border | 6px solid, primary light color |
43
- | Card header | `header` prop as title |
44
- | Card content | Description text + optional bullet list |
45
- | "See what's new" button | Below description / bullet list |
40
+ | Element | Position |
41
+ | ----------------------- | --------------------------------------- |
42
+ | Left accent border | 6px solid, primary light color |
43
+ | Card header | `header` prop as title |
44
+ | Card content | Description text + optional bullet list |
45
+ | "See what's new" button | Below description / bullet list |
46
46
 
47
47
  **CSS-only implementation notes:**
48
+
48
49
  - Card: `border-left: 6px solid var(--app-primary-light-color); border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,0.12)`.
49
50
  - Card header: `padding: 12px 16px; font-weight: 600`.
50
51
  - Card content: `padding: 0 16px 16px`.
@@ -68,15 +69,16 @@ Renders an announcement card with a heading, description text, optional bullet l
68
69
 
69
70
  Listed design systems are examples only.
70
71
 
71
- | Design System | Card | Bullet List | Button |
72
- |---|---|---|---|
73
- | Default (CSS only) | `<div>` with left border + box-shadow | `<ul>/<li>` | `<button>` opening new tab |
74
- | MUI | `<Card>` + `<CardHeader>` + `<CardContent>` | `<List>/<ListItem>` or `<ul>` | `<Button>` |
75
- | Ant Design | `<Card>` with `title` prop | `<ul>/<li>` | `<Button>` |
76
- | Chakra UI | `<Card>` + `<CardHeader>` + `<CardBody>` | `<UnorderedList>/<ListItem>` | `<Button>` |
77
- | Shadcn/ui | `<Card>` + `<CardHeader>` + `<CardContent>` | `<ul>/<li>` | `<Button>` |
72
+ | Design System | Card | Bullet List | Button |
73
+ | ------------------ | ------------------------------------------- | ----------------------------- | -------------------------- |
74
+ | Default (CSS only) | `<div>` with left border + box-shadow | `<ul>/<li>` | `<button>` opening new tab |
75
+ | MUI | `<Card>` + `<CardHeader>` + `<CardContent>` | `<List>/<ListItem>` or `<ul>` | `<Button>` |
76
+ | Ant Design | `<Card>` with `title` prop | `<ul>/<li>` | `<Button>` |
77
+ | Chakra UI | `<Card>` + `<CardHeader>` + `<CardBody>` | `<UnorderedList>/<ListItem>` | `<Button>` |
78
+ | Shadcn/ui | `<Card>` + `<CardHeader>` + `<CardContent>` | `<ul>/<li>` | `<Button>` |
78
79
 
79
80
  When implementing in a specific design system:
81
+
80
82
  - Left accent border is a key visual identifier — implement it via CSS or the design system's border utilities
81
83
  - "See what's new" must open in a new tab (`target='_blank'` + `rel='noopener noreferrer'`)
82
84
  - The widget is entirely prop-driven — no data fetching needed
@@ -18,20 +18,20 @@ Renders a file attachment control within a Pega form. Users can upload one or mu
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `value` | `any` | Yes | Attachment list or single attachment object (from Pega property) |
24
- | `allowMultiple` | `boolean \| string` | No | Whether multiple files can be attached. Default `false` |
25
- | `extensions` | `string` | No | Comma-separated list of allowed file extensions (e.g., `".pdf,.doc,.jpg"`) |
26
- | `editMode` | `string` | No | `"tableRows"` for inline table edit mode (special multi-attachment handling) |
27
- | `isTableFormatter` | `boolean` | No | Whether this widget is used inside a table formatter |
28
- | `label` | `string` | Yes (from PConnFieldProps) | Field label |
29
- | `required` | `boolean` | No | Whether a file is required |
30
- | `disabled` | `boolean` | No | Whether the control is disabled |
31
- | `displayMode` | `string` | No | `"DISPLAY_ONLY"` for read-only rendering |
32
- | `validatemessage` | `string` | No | Validation error message to display |
33
- | `helperText` | `string` | No | Helper text shown below the control |
34
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ------------------ | ------------------- | -------------------------- | ---------------------------------------------------------------------------- |
23
+ | `value` | `any` | Yes | Attachment list or single attachment object (from Pega property) |
24
+ | `allowMultiple` | `boolean \| string` | No | Whether multiple files can be attached. Default `false` |
25
+ | `extensions` | `string` | No | Comma-separated list of allowed file extensions (e.g., `".pdf,.doc,.jpg"`) |
26
+ | `editMode` | `string` | No | `"tableRows"` for inline table edit mode (special multi-attachment handling) |
27
+ | `isTableFormatter` | `boolean` | No | Whether this widget is used inside a table formatter |
28
+ | `label` | `string` | Yes (from PConnFieldProps) | Field label |
29
+ | `required` | `boolean` | No | Whether a file is required |
30
+ | `disabled` | `boolean` | No | Whether the control is disabled |
31
+ | `displayMode` | `string` | No | `"DISPLAY_ONLY"` for read-only rendering |
32
+ | `validatemessage` | `string` | No | Validation error message to display |
33
+ | `helperText` | `string` | No | Helper text shown below the control |
34
+ | `getPConnect` | `function` | Yes | PConnect getter |
35
35
 
36
36
  ## Behavioral Contract
37
37
 
@@ -40,11 +40,13 @@ Renders a file attachment control within a Pega form. Users can upload one or mu
40
40
  Pega has two attachment data formats — detect which one is in use:
41
41
 
42
42
  **Old format (annotation-based):**
43
+
43
44
  ```typescript
44
45
  value = { pxResults: [...], pyAttachCount: N }
45
46
  ```
46
47
 
47
48
  **New standard format:**
49
+
48
50
  ```typescript
49
51
  value = [{ ID, name, mimeType, category, ... }] // array
50
52
  ```
@@ -54,6 +56,7 @@ Call `PCore.getAttachmentUtils().prepareAttachmentData(value)` to normalize both
54
56
  ### File Validation
55
57
 
56
58
  On file selection (via `<input type='file'>`):
59
+
57
60
  1. **Extension check:** Compare selected file's extension against `extensions` prop (split by comma). If not allowed, add an error to the file and do not upload.
58
61
  2. **Size check:** Compare file size against `PCore.getEnvironmentInfo().getMaxAttachmentSize()` (in bytes). If too large, add a size error.
59
62
  3. Valid files proceed to upload.
@@ -89,15 +92,16 @@ Compressed display for use inside a table cell. Show attachment count and a smal
89
92
 
90
93
  ## Visual Specifications
91
94
 
92
- | Element | Description |
93
- |---------|-------------|
94
- | Label | Standard field label above the control |
95
- | Drop zone / Upload button | Clickable area to select files; optionally supports drag-and-drop |
96
- | File list | Each uploaded file: icon + name + size + progress bar (during upload) + delete button |
97
- | Error state | Red error text below the control for invalid files or upload failures |
98
- | Helper text | Secondary text below the control |
95
+ | Element | Description |
96
+ | ------------------------- | ------------------------------------------------------------------------------------- |
97
+ | Label | Standard field label above the control |
98
+ | Drop zone / Upload button | Clickable area to select files; optionally supports drag-and-drop |
99
+ | File list | Each uploaded file: icon + name + size + progress bar (during upload) + delete button |
100
+ | Error state | Red error text below the control for invalid files or upload failures |
101
+ | Helper text | Secondary text below the control |
99
102
 
100
103
  **CSS-only implementation notes:**
104
+
101
105
  - Drop zone: `border: 2px dashed var(--border-color); border-radius: 4px; padding: 1rem; text-align: center; cursor: pointer`.
102
106
  - Drop zone hover: `border-color: var(--app-primary-color); background: var(--hover-bg)`.
103
107
  - File row: `display: flex; align-items: center; gap: 0.5rem; padding: 4px 0`.
@@ -131,15 +135,16 @@ Compressed display for use inside a table cell. Show attachment count and a smal
131
135
 
132
136
  Listed design systems are examples only.
133
137
 
134
- | Design System | File Input | Progress | File List |
135
- |---|---|---|---|
136
- | Default (CSS only) | `<input type='file'>` + custom styled drop zone | `<progress>` element or CSS bar | `<ul>/<li>` rows |
137
- | MUI | Custom styled `<Box>` drop zone + hidden `<input>` | `<LinearProgress>` | `<List>/<ListItem>` |
138
- | Ant Design | `<Upload dragger>` | `<Progress>` | Built-in upload file list |
139
- | Chakra UI | Custom `<Box>` with `useDropzone` | `<Progress>` | `<VStack>` rows |
140
- | Shadcn/ui | Custom drop zone | Custom CSS progress bar | `<ul>/<li>` rows |
138
+ | Design System | File Input | Progress | File List |
139
+ | ------------------ | -------------------------------------------------- | ------------------------------- | ------------------------- |
140
+ | Default (CSS only) | `<input type='file'>` + custom styled drop zone | `<progress>` element or CSS bar | `<ul>/<li>` rows |
141
+ | MUI | Custom styled `<Box>` drop zone + hidden `<input>` | `<LinearProgress>` | `<List>/<ListItem>` |
142
+ | Ant Design | `<Upload dragger>` | `<Progress>` | Built-in upload file list |
143
+ | Chakra UI | Custom `<Box>` with `useDropzone` | `<Progress>` | `<VStack>` rows |
144
+ | Shadcn/ui | Custom drop zone | Custom CSS progress bar | `<ul>/<li>` rows |
141
145
 
142
146
  When implementing in a specific design system:
147
+
143
148
  - Action sequencer blocking (`addAction`/`removeAction`) is mandatory — do not skip it; form submission must be blocked during uploads
144
149
  - Detect and normalize both old and new attachment formats via `prepareAttachmentData`
145
150
  - `allowMultiple` coercion (string vs boolean) is required