@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
@@ -24,6 +24,7 @@ npm run build
24
24
  ```
25
25
 
26
26
  ### What to check:
27
+
27
28
  - Zero TypeScript errors
28
29
  - Zero build warnings related to missing imports
29
30
  - Output bundle is generated
@@ -38,6 +39,7 @@ npm run dev
38
39
  ```
39
40
 
40
41
  ### What to verify:
42
+
41
43
  1. App loads without console errors
42
44
  2. "Create Case" button appears after auth
43
45
  3. Clicking "Create Case" renders the form
@@ -50,14 +52,14 @@ npm run dev
50
52
 
51
53
  ## Common Issues
52
54
 
53
- | Symptom | Cause | Fix |
54
- |---------|-------|-----|
55
- | "X is not registered" console error | Component missing from `component-map.ts` | Add the import + map entry |
56
- | Field value doesn't persist after blur | `handleEvent` not called on blur | Add `onBlur` handler calling `handleEvent(actions, 'changeNblur', propName, value)` |
57
- | Read-only view shows nothing | Missing `displayMode` handling | Add the `DISPLAY_ONLY` / `STACKED_LARGE_VAL` checks |
58
- | TypeScript error on `getPConnect` | Wrong props interface | Extend `PConnFieldProps` or `PConnProps` from `@pega/sdk-react` |
59
- | Build fails on CSS import | Missing CSS loader config | Ensure Vite config handles `.css` imports |
60
- | "Cannot read property of undefined" on theme | Design system provider missing | Wrap app in the design system's ThemeProvider/Provider |
55
+ | Symptom | Cause | Fix |
56
+ | -------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------- |
57
+ | "X is not registered" console error | Component missing from `component-map.ts` | Add the import + map entry |
58
+ | Field value doesn't persist after blur | `handleEvent` not called on blur | Add `onBlur` handler calling `handleEvent(actions, 'changeNblur', propName, value)` |
59
+ | Read-only view shows nothing | Missing `displayMode` handling | Add the `DISPLAY_ONLY` / `STACKED_LARGE_VAL` checks |
60
+ | TypeScript error on `getPConnect` | Wrong props interface | Extend `PConnFieldProps` or `PConnProps` from `@pega/sdk-react` |
61
+ | Build fails on CSS import | Missing CSS loader config | Ensure Vite config handles `.css` imports |
62
+ | "Cannot read property of undefined" on theme | Design system provider missing | Wrap app in the design system's ThemeProvider/Provider |
61
63
 
62
64
  ---
63
65
 
@@ -48,35 +48,73 @@ Templates typically receive children through `getPConnect().getChildren()` rathe
48
48
 
49
49
  Used for: TwoColumn, OneColumn, NarrowWide, WideNarrow
50
50
 
51
+ This pattern is design-system agnostic. The `// [DS GRID]` section must be replaced with your design system's grid or flex layout primitive — see the "Design System Adaptation" section below.
52
+
51
53
  ```typescript
52
54
  import type { PropsWithChildren, ReactElement } from 'react';
53
- import Grid, { type GridSize } from '@mui/material/Grid';
54
- import type { PConnProps } from '../../../types/PConnProps';
55
+ // Import your design system layout primitive here:
56
+ // e.g. import { Grid } from 'antd';
57
+ // e.g. import { SimpleGrid } from '@chakra-ui/react';
58
+ import type { PConnProps } from '@pega/sdk-react';
55
59
 
56
60
  interface TwoColumnProps extends PConnProps {
57
- templateCol?: string; // e.g. "1fr 1fr", "2fr 1fr"
61
+ templateCol?: string; // e.g. '1fr 1fr', '2fr 1fr'
58
62
  }
59
63
 
60
64
  export default function TwoColumn(props: PropsWithChildren<TwoColumnProps>) {
61
65
  const { children, templateCol = '1fr 1fr' } = props;
62
66
  const childrenToRender = children as ReactElement[];
63
67
 
64
- // Parse templateCol to calculate grid sizes
68
+ // Parse templateCol into column width ratios
69
+ // Strip unit suffixes, split on whitespace, convert to numbers
65
70
  const colArray = templateCol.replaceAll(/[a-z]+/g, '').split(/\s/).map(Number);
66
71
  const totalCols = colArray.reduce((v, itm) => itm + v, 0);
67
- const ratio = 12 / totalCols;
68
- const aSize = (ratio * colArray[0]) as GridSize;
69
- const bSize = (ratio * colArray[1]) as GridSize;
72
+ // colArray[0] / totalCols = left column fraction
73
+ // colArray[1] / totalCols = right column fraction
70
74
 
75
+ // [DS GRID] — render two children in a responsive grid using the computed ratios
76
+ // On mobile (narrow viewport): both columns should stack to full width
77
+ // On desktop: apply the computed left/right ratio
71
78
  return (
72
- <Grid container spacing={1}>
73
- <Grid size={{ xs: 12, md: aSize }}>{childrenToRender[0]}</Grid>
74
- <Grid size={{ xs: 12, md: bSize }}>{childrenToRender[1]}</Grid>
75
- </Grid>
79
+ <YourDesignSystemGrid>
80
+ <YourDesignSystemColumn ratio={colArray[0] / totalCols}>
81
+ {childrenToRender[0]}
82
+ </YourDesignSystemColumn>
83
+ <YourDesignSystemColumn ratio={colArray[1] / totalCols}>
84
+ {childrenToRender[1]}
85
+ </YourDesignSystemColumn>
86
+ </YourDesignSystemGrid>
76
87
  );
77
88
  }
78
89
  ```
79
90
 
91
+ ---
92
+
93
+ ## Design System Adaptation (Layout Templates Only)
94
+
95
+ > Form templates and page templates use the PConnect bridge pattern and do **not** use any design system primitives. This section applies only to layout templates: TwoColumn, OneColumn, NarrowWide, WideNarrow, and their sub-variants.
96
+
97
+ **1. Check the component-specific skill file** — `.github/skills/template-skills/<ComponentName>.md` contains a **Design System Mapping** table where available. Use it as a starting point.
98
+
99
+ **2. If the chosen design system is not listed** — use the **component purpose** description to identify the appropriate DS layout primitive (grid, flex, columns).
100
+
101
+ **3. Discover the API from installed packages** — confirm layout component names and props from `.d.ts` before writing JSX:
102
+
103
+ ```bash
104
+ find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Grid\|Columns\|Flex" | head -5
105
+ grep -A 30 "interface.*Props" <path-to-file>
106
+ ```
107
+
108
+ **4. Column ratio mapping** — the `templateCol` prop (e.g., `'2fr 1fr'`) gives you fractional widths. Map to your DS's column system:
109
+
110
+ | `templateCol` | Fraction | MUI 12-col | CSS `grid-template-columns` |
111
+ | ------------- | --------- | ---------- | --------------------------- |
112
+ | `'1fr 1fr'` | 50% / 50% | 6 / 6 | `1fr 1fr` |
113
+ | `'2fr 1fr'` | 67% / 33% | 8 / 4 | `2fr 1fr` |
114
+ | `'1fr 2fr'` | 33% / 67% | 4 / 8 | `1fr 2fr` |
115
+
116
+ **5. Responsive behavior** — on mobile, both columns must stack to full width. Use your DS's responsive breakpoint props or a CSS media query.
117
+
80
118
  ### Form Template (renders children via PConnect bridge)
81
119
 
82
120
  Used for: DefaultForm, HierarchicalForm
@@ -161,9 +199,7 @@ import createPConnectComponent from '../../helpers/react_pconnect';
161
199
  const children = getPConnect().getChildren();
162
200
 
163
201
  // Render each child through the PConnect bridge
164
- children.map((child, i) =>
165
- createElement(createPConnectComponent(), { ...child, key: `child-${i}` }),
166
- );
202
+ children.map((child, i) => createElement(createPConnectComponent(), { ...child, key: `child-${i}` }));
167
203
  ```
168
204
 
169
205
  ### 3. State-connected children (DefaultForm pattern)
@@ -18,11 +18,11 @@ Renders a multi-section advanced search form where search fields are organized i
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `dataPageName` | `string` | Yes | Data page for search results |
24
- | `parameters` | `object` | No | Parameters passed to the data page |
25
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | -------------- | ---------- | -------- | ---------------------------------- |
23
+ | `dataPageName` | `string` | Yes | Data page for search results |
24
+ | `parameters` | `object` | No | Parameters passed to the data page |
25
+ | `getPConnect` | `function` | Yes | PConnect getter |
26
26
 
27
27
  ## Behavioral Contract
28
28
 
@@ -42,9 +42,12 @@ Renders a multi-section advanced search form where search fields are organized i
42
42
  ### Context (`DataReferenceAdvancedSearchContext`)
43
43
 
44
44
  Provides shared config to `SearchGroups`:
45
+
45
46
  ```tsx
46
47
  <DataReferenceAdvancedSearchContext.Provider value={{ dataPageName, parameters, getPConnect }}>
47
- {searchGroups.map((group) => <SearchGroups key={group.label} group={group} />)}
48
+ {searchGroups.map((group) => (
49
+ <SearchGroups key={group.label} group={group} />
50
+ ))}
48
51
  </DataReferenceAdvancedSearchContext.Provider>
49
52
  ```
50
53
 
@@ -66,13 +69,14 @@ Renders a single search group section: a heading + a list of editable search fie
66
69
 
67
70
  ### Props
68
71
 
69
- | Prop | Type | Description |
70
- |------|------|-------------|
72
+ | Prop | Type | Description |
73
+ | ------- | -------- | ---------------------------------- |
71
74
  | `group` | `object` | `{ label: string, fields: array }` |
72
75
 
73
76
  ### Behavioral Contract
74
77
 
75
78
  For each field in `group.fields`:
79
+
76
80
  1. Get `firstChildPConnect = getPConnect().getChildren()[0]`.
77
81
  2. Create an editable field component: `firstChildPConnect.createComponent({ type: field.type, config: { ...field.config } })`.
78
82
  3. Render the created component alongside a `<SearchGroups>` label row.
@@ -94,18 +98,19 @@ For each field in `group.fields`:
94
98
 
95
99
  ### AdvancedSearch Container
96
100
 
97
- | Element | Description |
98
- |---------|-------------|
101
+ | Element | Description |
102
+ | --------------- | --------------------------------------- |
99
103
  | Outer container | Vertical stack of search group sections |
100
104
 
101
105
  ### SearchGroups Section
102
106
 
103
- | Element | Description |
104
- |---------|-------------|
105
- | Group heading | `<h4>` with group label |
106
- | Field rows | Each field rendered as a form control |
107
+ | Element | Description |
108
+ | ------------- | ------------------------------------- |
109
+ | Group heading | `<h4>` with group label |
110
+ | Field rows | Each field rendered as a form control |
107
111
 
108
112
  **CSS-only implementation notes:**
113
+
109
114
  - Outer container: `display: flex; flex-direction: column; gap: 1.5rem`.
110
115
  - Group section: `display: flex; flex-direction: column; gap: 0.75rem`.
111
116
  - Group heading: `font-size: 1rem; font-weight: 600; margin-bottom: 0.25rem`.
@@ -130,15 +135,16 @@ For each field in `group.fields`:
130
135
 
131
136
  Listed design systems are examples only.
132
137
 
133
- | Design System | Group Heading | Field Layout |
134
- |---|---|---|
135
- | Default (CSS only) | `<h4>` | CSS grid 2-col (label + input) |
136
- | MUI | `<Typography variant='h6'>` | `<Grid container>` |
137
- | Ant Design | `<Typography.Title level={5}>` | `<Form.Item>` |
138
- | Chakra UI | `<Heading size='sm'>` | `<FormControl>` rows |
139
- | Shadcn/ui | `<h4>` or `<Label>` | Tailwind grid |
138
+ | Design System | Group Heading | Field Layout |
139
+ | ------------------ | ------------------------------ | ------------------------------ |
140
+ | Default (CSS only) | `<h4>` | CSS grid 2-col (label + input) |
141
+ | MUI | `<Typography variant='h6'>` | `<Grid container>` |
142
+ | Ant Design | `<Typography.Title level={5}>` | `<Form.Item>` |
143
+ | Chakra UI | `<Heading size='sm'>` | `<FormControl>` rows |
144
+ | Shadcn/ui | `<h4>` or `<Label>` | Tailwind grid |
140
145
 
141
146
  When implementing in a specific design system:
147
+
142
148
  - `DataReferenceAdvancedSearchContext` must be provided — `SearchGroups` consumes it via `useContext`
143
149
  - Field deduplication by `field.value` must happen before rendering
144
150
  - `createComponent` creates live editable fields — render via `createElement(PConnectComponent, fieldConfig)`
@@ -18,14 +18,14 @@ The outermost container for the Pega SDK React app. Determines whether the app i
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `pages` | `array` | Yes | Array of portal page objects `{ name, pyLabel, linkUrl }` |
24
- | `caseTypes` | `array` | No | Fallback case types (overridden by data page fetch if empty) |
25
- | `portalName` | `string` | Yes | Portal identifier — determines WSS vs standard rendering |
26
- | `displayName` | `string` | No | Operator display name for avatar |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
28
- | `children` | `ReactNode` | Yes | Main content area |
21
+ | Prop | Type | Required | Description |
22
+ | ------------- | ----------- | -------- | ------------------------------------------------------------ |
23
+ | `pages` | `array` | Yes | Array of portal page objects `{ name, pyLabel, linkUrl }` |
24
+ | `caseTypes` | `array` | No | Fallback case types (overridden by data page fetch if empty) |
25
+ | `portalName` | `string` | Yes | Portal identifier — determines WSS vs standard rendering |
26
+ | `displayName` | `string` | No | Operator display name for avatar |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
+ | `children` | `ReactNode` | Yes | Main content area |
29
29
 
30
30
  ## Behavioral Contract
31
31
 
@@ -80,6 +80,7 @@ The outermost container for the Pega SDK React app. Determines whether the app i
80
80
  ## Visual Specifications
81
81
 
82
82
  **CSS-only implementation notes:**
83
+
83
84
  - Shell wrapper: `display: flex; flex-direction: column; height: 100vh`.
84
85
  - Nav bar: `flex: 0 0 auto` (fixed height).
85
86
  - Alert banner: `flex: 0 0 auto` (shown below nav, pushes content down).
@@ -108,15 +109,16 @@ The outermost container for the Pega SDK React app. Determines whether the app i
108
109
 
109
110
  Listed design systems are examples only.
110
111
 
111
- | Design System | Nav Bar | Alert Banner | Shell Layout |
112
- |---|---|---|---|
113
- | Default (CSS only) | `<header>` + custom nav | `<div role='alert'>` | CSS flexbox column |
114
- | MUI | `<AppBar>` + `<Toolbar>` | `<Alert>` | `<Box display='flex' flexDirection='column'>` |
115
- | Ant Design | `<Layout.Header>` | `<Alert>` | `<Layout>` |
116
- | Chakra UI | `<Box as='header'>` | `<Alert>` | `<Flex direction='column'>` |
117
- | Shadcn/ui | Custom header | `<Alert>` | Tailwind `flex flex-col h-screen` |
112
+ | Design System | Nav Bar | Alert Banner | Shell Layout |
113
+ | ------------------ | ------------------------ | -------------------- | --------------------------------------------- |
114
+ | Default (CSS only) | `<header>` + custom nav | `<div role='alert'>` | CSS flexbox column |
115
+ | MUI | `<AppBar>` + `<Toolbar>` | `<Alert>` | `<Box display='flex' flexDirection='column'>` |
116
+ | Ant Design | `<Layout.Header>` | `<Alert>` | `<Layout>` |
117
+ | Chakra UI | `<Box as='header'>` | `<Alert>` | `<Flex direction='column'>` |
118
+ | Shadcn/ui | Custom header | `<Alert>` | Tailwind `flex flex-col h-screen` |
118
119
 
119
120
  When implementing in a specific design system:
121
+
120
122
  - WSS vs portal detection must remain — the nav bar component differs for each
121
123
  - Logo URL must be loaded asynchronously from `PCore.getAssetLoader()`
122
124
  - `NavContext.Provider` must wrap children so descendant nav-aware components can access links
@@ -18,16 +18,16 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `children` | `ReactNode[]` | Yes | At least 2 children — `[0]` → left (`a`) slot, `[1]` → right (`b`) slot |
24
- | `layout` | `string` | No | Column layout variant for `Banner`: `'two-column'` (default), `'narrow-wide'`, `'wide-narrow'` |
25
- | `heading` | `string` | No | Hero section heading text. Default `''` |
26
- | `message` | `string` | No | Hero section message/subtitle. Default `''` |
27
- | `imageTheme` | `string` | No | Banner image theme (e.g., `'light'`). Default `'light'` |
28
- | `backgroundImage` | `string` | No | URL of the background image for the hero. Default `''` |
29
- | `backgroundColor` | `string` | No | Background color for the hero. Default `''` |
30
- | `tintImage` | `boolean` | No | Whether to tint the background image. Default `false` |
21
+ | Prop | Type | Required | Description |
22
+ | ----------------- | ------------- | -------- | ---------------------------------------------------------------------------------------------- |
23
+ | `children` | `ReactNode[]` | Yes | At least 2 children — `[0]` → left (`a`) slot, `[1]` → right (`b`) slot |
24
+ | `layout` | `string` | No | Column layout variant for `Banner`: `'two-column'` (default), `'narrow-wide'`, `'wide-narrow'` |
25
+ | `heading` | `string` | No | Hero section heading text. Default `''` |
26
+ | `message` | `string` | No | Hero section message/subtitle. Default `''` |
27
+ | `imageTheme` | `string` | No | Banner image theme (e.g., `'light'`). Default `'light'` |
28
+ | `backgroundImage` | `string` | No | URL of the background image for the hero. Default `''` |
29
+ | `backgroundColor` | `string` | No | Background color for the hero. Default `''` |
30
+ | `tintImage` | `boolean` | No | Whether to tint the background image. Default `false` |
31
31
 
32
32
  ## Behavioral Contract
33
33
 
@@ -45,10 +45,12 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
45
45
  This component has no independent visual output — all visual behavior is defined by the `Banner` DSE component. See [`design-system-extension-skills/Banner.md`](../design-system-extension-skills/Banner.md) for full visual specs.
46
46
 
47
47
  Key visual behaviors inherited from `Banner`:
48
+
48
49
  - Hero: full-width background image section, height `19rem`, centered title and message overlay
49
50
  - Content area: two-column grid below the hero, column widths driven by `variant`/`layout`
50
51
 
51
52
  **CSS-only implementation notes:**
53
+
52
54
  - This template creates no CSS of its own — implement it as a pure pass-through to `Banner`.
53
55
  - The `layout` prop maps directly to `Banner`'s `variant` prop.
54
56
  - `heading` → `Banner.banner.title`, `message` → `Banner.banner.message`.
@@ -70,14 +72,15 @@ Key visual behaviors inherited from `Banner`:
70
72
 
71
73
  Listed design systems are examples only.
72
74
 
73
- | Design System | Recommended Component |
74
- |---|---|
75
+ | Design System | Recommended Component |
76
+ | ------------------ | -------------------------------------------------------------------- |
75
77
  | Default (CSS only) | Pass-through to `Banner` — implement Banner's CSS hero + grid layout |
76
- | MUI | Pass-through to `Banner` (MUI-based) |
77
- | Ant Design | Pass-through to `Banner` (Ant-based) |
78
- | Chakra UI | Pass-through to `Banner` (Chakra-based) |
79
- | Shadcn/ui | Pass-through to `Banner` (Shadcn-based) |
78
+ | MUI | Pass-through to `Banner` (MUI-based) |
79
+ | Ant Design | Pass-through to `Banner` (Ant-based) |
80
+ | Chakra UI | Pass-through to `Banner` (Chakra-based) |
81
+ | Shadcn/ui | Pass-through to `Banner` (Shadcn-based) |
80
82
 
81
83
  When implementing in a specific design system:
84
+
82
85
  - `BannerPage` is always a thin wrapper — implement `Banner` first, then `BannerPage` simply delegates to it
83
86
  - Prop mapping: `layout` → `variant`, `heading` → `banner.title`, `message` → `banner.message`, `backgroundImage` → `banner.backgroundImage`
@@ -18,12 +18,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `children` | `ReactNode[]` | No | Region children when fields come from PConnect metadata |
24
- | `arPrimaryFields` | `array` | No | Array of primary field objects (direct prop) |
25
- | `arSecondaryFields` | `array` | No | Array of secondary field objects (direct prop) |
26
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ------------------- | ------------- | -------- | ------------------------------------------------------- |
23
+ | `children` | `ReactNode[]` | No | Region children when fields come from PConnect metadata |
24
+ | `arPrimaryFields` | `array` | No | Array of primary field objects (direct prop) |
25
+ | `arSecondaryFields` | `array` | No | Array of secondary field objects (direct prop) |
26
+ | `getPConnect` | `function` | Yes | PConnect getter |
27
27
 
28
28
  ## Behavioral Contract
29
29
 
@@ -32,10 +32,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
32
32
  Two modes — prefer direct props if provided:
33
33
 
34
34
  **Mode A — Direct props:**
35
+
35
36
  - `arPrimaryFields` and `arSecondaryFields` are passed directly.
36
37
  - Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` to localize values.
37
38
 
38
39
  **Mode B — Child extraction:**
40
+
39
41
  - Extract primary and secondary regions from `children` by type/name matching.
40
42
  - Primary region: first region child (or `type === 'Region' && name === 'Primary'`).
41
43
  - Secondary region: second region child (or `type === 'Region' && name === 'Secondary'`).
@@ -45,6 +47,7 @@ Two modes — prefer direct props if provided:
45
47
  ### `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)`
46
48
 
47
49
  Helper that:
50
+
48
51
  1. Iterates each field in both arrays.
49
52
  2. Localizes the field value via `PCore.getLocaleUtils().getLocaleValue(value, classID, value)`.
50
53
  3. Returns `{ arPrimaryFields: localizedPrimary, arSecondaryFields: localizedSecondary }`.
@@ -52,6 +55,7 @@ Helper that:
52
55
  ### Render
53
56
 
54
57
  Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
58
+
55
59
  - `arPrimaryFields` — array of `{ name, value }` objects for primary display
56
60
  - `arSecondaryFields` — array of `{ name, value, displayLabel }` objects for secondary display
57
61
 
@@ -62,6 +66,7 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
62
66
  - Secondary fields: label + value pairs.
63
67
 
64
68
  **CSS-only implementation notes (for `CaseSummaryFields` wrapper):**
69
+
65
70
  - Container: `display: flex; flex-direction: column; gap: 8px`.
66
71
  - Primary field value: `font-size: 1rem; font-weight: 600`.
67
72
  - Secondary field row: `display: flex; gap: 4px; font-size: 0.875rem`.
@@ -86,15 +91,16 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
86
91
 
87
92
  Listed design systems are examples only.
88
93
 
89
- | Design System | Recommended Approach |
90
- |---|---|
91
- | Default (CSS only) | Flexbox column with CSS-styled field rows |
92
- | MUI | `<Typography>` variants for primary/secondary text |
93
- | Ant Design | `<Descriptions>` with `bordered={false}` |
94
- | Chakra UI | `<VStack>` with `<Text>` variants |
95
- | Shadcn/ui | Custom `<dl>/<dt>/<dd>` or card |
94
+ | Design System | Recommended Approach |
95
+ | ------------------ | -------------------------------------------------- |
96
+ | Default (CSS only) | Flexbox column with CSS-styled field rows |
97
+ | MUI | `<Typography>` variants for primary/secondary text |
98
+ | Ant Design | `<Descriptions>` with `bordered={false}` |
99
+ | Chakra UI | `<VStack>` with `<Text>` variants |
100
+ | Shadcn/ui | Custom `<dl>/<dt>/<dd>` or card |
96
101
 
97
102
  When implementing in a specific design system:
103
+
98
104
  - Always localize field values before display — use `PCore.getLocaleUtils().getLocaleValue()`
99
105
  - `CaseSummaryFields` is a DSE component — implement it separately and call it from here
100
106
  - Primary fields have no labels; secondary fields have labels
@@ -20,17 +20,18 @@ The primary case workspace template. Extracts named regions from PConnect childr
20
20
 
21
21
  ## Props
22
22
 
23
- | Prop | Type | Required | Description |
24
- |------|------|----------|-------------|
25
- | `children` | `ReactNode[]` | Yes | Named region children (summary, stages, todo, utilities, tabs) |
26
- | `displayOnlyFA` | `boolean` | No | If true, renders only the to-do region (focused action mode) |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
23
+ | Prop | Type | Required | Description |
24
+ | --------------- | ------------- | -------- | -------------------------------------------------------------- |
25
+ | `children` | `ReactNode[]` | Yes | Named region children (summary, stages, todo, utilities, tabs) |
26
+ | `displayOnlyFA` | `boolean` | No | If true, renders only the to-do region (focused action mode) |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
28
 
29
29
  ## Behavioral Contract
30
30
 
31
31
  ### Region Extraction
32
32
 
33
33
  Use `getRawMetadata()` to access `children` with `type` and `name` metadata. Extract by:
34
+
34
35
  - **Summary region:** `type === 'Region' && name === 'Summary'`
35
36
  - **Stages region:** `type === 'Region' && name === 'Stages'`
36
37
  - **ToDo region:** `type === 'Region' && name === 'ToDo'`
@@ -48,6 +49,7 @@ Render each region as a React child element using `createElement(PConnectCompone
48
49
  ### displayOnlyFA Mode
49
50
 
50
51
  If `displayOnlyFA === true`:
52
+
51
53
  - Render only the ToDo region, centered.
52
54
  - Skip summary, stages, tabs, utilities rendering.
53
55
 
@@ -73,13 +75,14 @@ If `displayOnlyFA === true`:
73
75
  ToDo
74
76
  ```
75
77
 
76
- | Column | xs | Contents |
77
- |--------|----|----------|
78
- | Left | 3 | Summary, Stages, ToDo regions |
79
- | Center | 6 | Tabs region (deferred content) |
80
- | Right | 3 | Utilities region |
78
+ | Column | xs | Contents |
79
+ | ------ | --- | ------------------------------ |
80
+ | Left | 3 | Summary, Stages, ToDo regions |
81
+ | Center | 6 | Tabs region (deferred content) |
82
+ | Right | 3 | Utilities region |
81
83
 
82
84
  **CSS-only implementation notes:**
85
+
83
86
  - Outer grid: `display: grid; grid-template-columns: 25% 50% 25%; gap: 1rem`.
84
87
  - Left column: `display: flex; flex-direction: column; gap: 0.5rem`.
85
88
  - Center column: `overflow: hidden`.
@@ -104,10 +107,12 @@ If `displayOnlyFA === true`:
104
107
  ### ObjectPage
105
108
 
106
109
  `ObjectPage` is registered as:
110
+
107
111
  ```tsx
108
112
  // packages/sdk-react/src/components/template/ObjectPage/index.tsx
109
113
  export { default } from '../CaseView';
110
114
  ```
115
+
111
116
  - No separate implementation needed.
112
117
  - In `component-map.ts`, register `ObjectPage` key pointing to the same component as `CaseView`.
113
118
 
@@ -117,15 +122,16 @@ export { default } from '../CaseView';
117
122
 
118
123
  Listed design systems are examples only.
119
124
 
120
- | Design System | Grid | Sidebar | Deferred Tabs |
121
- |---|---|---|---|
122
- | Default (CSS only) | CSS Grid 25/50/25 | `<aside>` | Intersection Observer lazy load |
123
- | MUI | `<Grid container>` with `<Grid size={{ xs: 3/6/3 }}>` | `<Box>` | MUI `<Tabs>` + DeferLoad |
124
- | Ant Design | `<Row><Col span={6/12/6}>` | `<Sider>` | `<Tabs>` lazy |
125
- | Chakra UI | `<Grid templateColumns='1fr 2fr 1fr'>` | `<Box>` | Custom lazy tabs |
126
- | Shadcn/ui | Tailwind `grid grid-cols-[1fr_2fr_1fr]` | `<aside>` | Custom |
125
+ | Design System | Grid | Sidebar | Deferred Tabs |
126
+ | ------------------ | ----------------------------------------------------- | --------- | ------------------------------- |
127
+ | Default (CSS only) | CSS Grid 25/50/25 | `<aside>` | Intersection Observer lazy load |
128
+ | MUI | `<Grid container>` with `<Grid size={{ xs: 3/6/3 }}>` | `<Box>` | MUI `<Tabs>` + DeferLoad |
129
+ | Ant Design | `<Row><Col span={6/12/6}>` | `<Sider>` | `<Tabs>` lazy |
130
+ | Chakra UI | `<Grid templateColumns='1fr 2fr 1fr'>` | `<Box>` | Custom lazy tabs |
131
+ | Shadcn/ui | Tailwind `grid grid-cols-[1fr_2fr_1fr]` | `<aside>` | Custom |
127
132
 
128
133
  When implementing in a specific design system:
134
+
129
135
  - `displayOnlyFA` must completely bypass the grid — render only ToDo region
130
136
  - Region extraction by metadata name is required — do not assume positional ordering
131
137
  - Deferred loading is mandatory for performance — tab content must not all load at once
@@ -18,13 +18,13 @@ Renders a button that opens a dropdown menu containing all available case action
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `localActions` | `array` | No | Array of `{ ID, name }` local action objects |
24
- | `processActions` | `array` | No | Array of `{ ID, name }` process action objects |
25
- | `caseTypeID` | `string` | Yes | Case type identifier for label localization |
26
- | `caseTypeName` | `string` | Yes | Case type display name for label localization |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ---------------- | ---------- | -------- | ---------------------------------------------- |
23
+ | `localActions` | `array` | No | Array of `{ ID, name }` local action objects |
24
+ | `processActions` | `array` | No | Array of `{ ID, name }` process action objects |
25
+ | `caseTypeID` | `string` | Yes | Case type identifier for label localization |
26
+ | `caseTypeName` | `string` | Yes | Case type display name for label localization |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
28
 
29
29
  ## Behavioral Contract
30
30
 
@@ -36,6 +36,7 @@ Renders a button that opens a dropdown menu containing all available case action
36
36
  ### Menu Items
37
37
 
38
38
  The menu combines:
39
+
39
40
  1. **Local actions** — each item triggers `getPConnect().getActionsApi().openLocalAction(action.ID, { caseID: getPConnect().getCaseInfo().getID() })`.
40
41
  2. **Process actions** — each item triggers `getPConnect().getActionsApi().openProcessAction(action.ID, { ... })`.
41
42
 
@@ -44,9 +45,11 @@ If both groups exist, render a divider between them.
44
45
  ### Localized Action Labels
45
46
 
46
47
  For localized case type context:
48
+
47
49
  ```
48
50
  localeKey = `${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
49
51
  ```
52
+
50
53
  Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, localeKey, action.name)`.
51
54
 
52
55
  ### Process Action Error Handling
@@ -65,21 +68,22 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
65
68
 
66
69
  ### Button
67
70
 
68
- | Property | Value |
69
- |----------|-------|
70
- | Label | Localized `"Actions"` |
71
- | Variant | Outlined or secondary |
72
- | Icon | Dropdown chevron or expand_more |
71
+ | Property | Value |
72
+ | -------- | ------------------------------- |
73
+ | Label | Localized `"Actions"` |
74
+ | Variant | Outlined or secondary |
75
+ | Icon | Dropdown chevron or expand_more |
73
76
 
74
77
  ### Menu
75
78
 
76
- | Property | Value |
77
- |----------|-------|
78
- | Position | Anchored below the button |
79
- | Divider | Between local and process action groups |
80
- | Item height | Standard menu item height |
79
+ | Property | Value |
80
+ | ----------- | --------------------------------------- |
81
+ | Position | Anchored below the button |
82
+ | Divider | Between local and process action groups |
83
+ | Item height | Standard menu item height |
81
84
 
82
85
  **CSS-only implementation notes:**
86
+
83
87
  - Button: `padding: 6px 12px; border: 1px solid var(--app-primary-color); border-radius: 4px; cursor: pointer`.
84
88
  - Dropdown menu: `position: absolute; background: white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); border-radius: 4px; min-width: 160px; z-index: 1000`.
85
89
  - Menu item: `padding: 8px 16px; cursor: pointer`. Hover: `background: var(--hover-bg)`.
@@ -87,11 +91,11 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
87
91
 
88
92
  ### Snackbar Toast
89
93
 
90
- | Property | Value |
91
- |----------|-------|
92
- | Position | Bottom-center or bottom-right |
93
- | Auto-hide | 3000ms |
94
- | Severity | Error (red) |
94
+ | Property | Value |
95
+ | --------- | ----------------------------- |
96
+ | Position | Bottom-center or bottom-right |
97
+ | Auto-hide | 3000ms |
98
+ | Severity | Error (red) |
95
99
 
96
100
  ## Edge Cases & Special Logic
97
101
 
@@ -112,15 +116,16 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
112
116
 
113
117
  Listed design systems are examples only.
114
118
 
115
- | Design System | Button | Menu | Toast |
116
- |---|---|---|---|
117
- | Default (CSS only) | `<button>` + custom dropdown | `<ul>/<li>` with CSS | Custom toast overlay |
118
- | MUI | `<Button>` + `<Menu>/<MenuItem>` | MUI Menu | `<Snackbar>/<Alert>` |
119
- | Ant Design | `<Dropdown menu={{ items }}>` | Ant Dropdown | `message.error()` |
120
- | Chakra UI | `<Menu>/<MenuButton>/<MenuList>` | Chakra Menu | `useToast()` |
121
- | Shadcn/ui | `<DropdownMenu>/<DropdownMenuTrigger>` | Shadcn DropdownMenu | `<Toaster>` + `toast.error()` |
119
+ | Design System | Button | Menu | Toast |
120
+ | ------------------ | -------------------------------------- | -------------------- | ----------------------------- |
121
+ | Default (CSS only) | `<button>` + custom dropdown | `<ul>/<li>` with CSS | Custom toast overlay |
122
+ | MUI | `<Button>` + `<Menu>/<MenuItem>` | MUI Menu | `<Snackbar>/<Alert>` |
123
+ | Ant Design | `<Dropdown menu={{ items }}>` | Ant Dropdown | `message.error()` |
124
+ | Chakra UI | `<Menu>/<MenuButton>/<MenuList>` | Chakra Menu | `useToast()` |
125
+ | Shadcn/ui | `<DropdownMenu>/<DropdownMenuTrigger>` | Shadcn DropdownMenu | `<Toaster>` + `toast.error()` |
122
126
 
123
127
  When implementing in a specific design system:
128
+
124
129
  - Local vs process action distinction must be preserved — they call different APIs
125
130
  - Localized labels via `localeKey = ${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
126
131
  - Process action errors must be surfaced via a dismissible toast