@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
@@ -5,7 +5,7 @@
5
5
  * Flow:
6
6
  * 1. Auth via AuthClient → @pega/auth
7
7
  * 2. Bootstrap via BootstrapClient.loadMashup()
8
- * 3. Show "Create Case" button
8
+ * 3. Show service portal homepage with quick-link cards
9
9
  * 4. On click → PCore.getMashupApi().createCase()
10
10
  * 5. PConnectComponent renders the case form via registered sample components
11
11
  */
@@ -13,11 +13,7 @@
13
13
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
14
14
 
15
15
  // ── React adapter (includes sdk-core re-exports) ───────────────────────────────────────
16
- import {
17
- PConnectComponent,
18
- PegaStoreContext,
19
- registerComponentCreator,
20
- } from '@pega/sdk-react';
16
+ import { PConnectComponent, PegaStoreContext, registerComponentCreator } from '@pega/sdk-react';
21
17
 
22
18
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
23
19
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
@@ -34,23 +30,57 @@ import { AuthClient } from '@pega/auth';
34
30
  import { styles } from './MashupApp.styles';
35
31
  import { FallbackComponent } from './FallbackComponent';
36
32
 
37
- // ─── Create component registry + register sample components ─────────────────
38
- // const registry =
39
- // createComponentRegistry<React.ComponentType<Record<string, unknown>>>();
40
- // registerSampleComponents(registry);
33
+ // ─── Quick-link card definitions ────────────────────────────────────────────
34
+ const QUICK_LINKS = [
35
+ {
36
+ id: 'new-service',
37
+ icon: '📋',
38
+ title: 'New Service Request',
39
+ desc: 'Submit a new service request and track its progress in real-time.',
40
+ active: true,
41
+ },
42
+ {
43
+ id: 'my-cases',
44
+ icon: '📊',
45
+ title: 'View My Cases',
46
+ desc: 'Check the status of your existing cases and requests.',
47
+ active: false,
48
+ },
49
+ {
50
+ id: 'billing',
51
+ icon: '💳',
52
+ title: 'Billing Inquiry',
53
+ desc: 'Review invoices, payments, and billing history.',
54
+ active: false,
55
+ },
56
+ {
57
+ id: 'support',
58
+ icon: '🔧',
59
+ title: 'Technical Support',
60
+ desc: 'Get help with technical issues and troubleshooting.',
61
+ active: false,
62
+ },
63
+ {
64
+ id: 'contact',
65
+ icon: '📞',
66
+ title: 'Contact Us',
67
+ desc: 'Reach our support team via phone, email, or chat.',
68
+ active: false,
69
+ },
70
+ {
71
+ id: 'tracking',
72
+ icon: '📦',
73
+ title: 'Order Tracking',
74
+ desc: 'Track your orders and deliveries in real-time.',
75
+ active: false,
76
+ },
77
+ ];
41
78
 
42
79
  // ─── Root Component ─────────────────────────────────────────────────────────
43
80
  const muiTheme = createTheme();
44
81
 
45
- function RootComponent({
46
- renderProps,
47
- registry,
48
- }: {
49
- renderProps: Record<string, unknown>;
50
- registry: any;
51
- }) {
82
+ function RootComponent({ renderProps, registry }: { renderProps: Record<string, unknown>; registry: any }) {
52
83
  const contextValue = useMemo(() => ({ store: PCore.getStore() }), []);
53
-
54
84
  const getPConnect = renderProps.getPConnect as () => any;
55
85
 
56
86
  return (
@@ -59,11 +89,7 @@ function RootComponent({
59
89
  <LocalizationProvider dateAdapter={AdapterDayjs}>
60
90
  <PegaStoreContext.Provider value={contextValue}>
61
91
  <div style={styles.root}>
62
- <PConnectComponent
63
- getPConnect={getPConnect}
64
- componentRegistry={registry}
65
- fallback={FallbackComponent}
66
- />
92
+ <PConnectComponent getPConnect={getPConnect} componentRegistry={registry} fallback={FallbackComponent} />
67
93
  </div>
68
94
  </PegaStoreContext.Provider>
69
95
  </LocalizationProvider>
@@ -75,14 +101,11 @@ function RootComponent({
75
101
  // ─── Mashup App ─────────────────────────────────────────────────────────────
76
102
  function MashupApp() {
77
103
  const [isPegaReady, setIsPegaReady] = useState(false);
78
- const [rootProps, setRootProps] = useState<Record<string, unknown> | null>(
79
- null,
80
- );
104
+ const [rootProps, setRootProps] = useState<Record<string, unknown> | null>(null);
81
105
  const [showForm, setShowForm] = useState(false);
82
106
  const [loading, setLoading] = useState(false);
83
107
  const authClientRef = useRef<AuthClient | null>(null);
84
-
85
- let registry;
108
+ const registryRef = useRef<any>(null);
86
109
 
87
110
  // ── 1. Auth + Bootstrap mashup on mount ─────────────────────────────────
88
111
  useEffect(() => {
@@ -106,8 +129,9 @@ function MashupApp() {
106
129
  } = PCore.getInitialiser().getSdkCore();
107
130
 
108
131
  // ─── Create component registry + register sample components ─────────────────
109
- registry = createComponentRegistry();
132
+ const registry = createComponentRegistry();
110
133
  registerSampleComponents(registry);
134
+ registryRef.current = registry;
111
135
 
112
136
  // Register component creator so PCore uses our bridge
113
137
  registerComponentCreator(registry, FallbackComponent);
@@ -149,20 +173,15 @@ function MashupApp() {
149
173
  );
150
174
 
151
175
  PCore.getPubSubUtils().subscribe(
152
- PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS
153
- .END_OF_ASSIGNMENT_PROCESSING,
176
+ PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.END_OF_ASSIGNMENT_PROCESSING,
154
177
  () => setShowForm(false),
155
178
  doneId,
156
179
  );
157
180
 
158
181
  return () => {
182
+ PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, cancelId);
159
183
  PCore.getPubSubUtils().unsubscribe(
160
- PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL,
161
- cancelId,
162
- );
163
- PCore.getPubSubUtils().unsubscribe(
164
- PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS
165
- .END_OF_ASSIGNMENT_PROCESSING,
184
+ PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.END_OF_ASSIGNMENT_PROCESSING,
166
185
  doneId,
167
186
  );
168
187
  };
@@ -177,15 +196,13 @@ function MashupApp() {
177
196
 
178
197
  try {
179
198
  const sdkConfig = await getSdkConfig();
180
- const mashupCaseType = (
181
- sdkConfig as Record<string, Record<string, unknown>>
182
- ).serverConfig.appMashupCaseType as string;
183
-
184
- await PCore.getMashupApi().createCase(
185
- mashupCaseType,
186
- PCore.getConstants().APP.APP,
187
- { pageName: 'pyEmbedAssignment', startingFields: {} },
188
- );
199
+ const mashupCaseType = (sdkConfig as Record<string, Record<string, unknown>>).serverConfig
200
+ .appMashupCaseType as string;
201
+
202
+ await PCore.getMashupApi().createCase(mashupCaseType, PCore.getConstants().APP.APP, {
203
+ pageName: 'pyEmbedAssignment',
204
+ startingFields: {},
205
+ });
189
206
  } catch (err) {
190
207
  console.error('Error creating case:', err);
191
208
  setShowForm(false);
@@ -197,55 +214,139 @@ function MashupApp() {
197
214
  // ── Render ──────────────────────────────────────────────────────────────
198
215
  if (!isPegaReady) {
199
216
  return (
200
- <div className='loading-container'>
201
- <span className='loading-text'>Authenticating and loading Pega...</span>
217
+ <div className="loading-container">
218
+ <span className="loading-text">Authenticating and loading Pega...</span>
202
219
  </div>
203
220
  );
204
221
  }
205
222
 
206
223
  return (
207
- <div id='pega-root' style={styles.app.container}>
208
- {/* Header */}
209
- <div style={styles.app.header}>
210
- <span style={styles.app.headerTitle}>
211
- Pega SDK — React Mashup Sample
212
- </span>
213
- <button
214
- type='button'
215
- onClick={() => authClientRef.current?.logout()}
216
- style={styles.app.logoutButton}
224
+ <div id="pega-root" style={styles.app.container}>
225
+ {/* ── Nav Bar ──────────────────────────────────────────────── */}
226
+ <nav style={styles.app.nav}>
227
+ <div
228
+ style={styles.app.navLogo}
229
+ onClick={() => setShowForm(false)}
230
+ role="button"
231
+ tabIndex={0}
232
+ onKeyDown={(e) => e.key === 'Enter' && setShowForm(false)}
217
233
  >
218
- Logout
234
+ <span style={styles.app.navLogoIcon}>🏠</span>
235
+ <span>Pega Services</span>
236
+ </div>
237
+ <div style={styles.app.navRight}>
238
+ <button type="button" onClick={() => authClientRef.current?.logout()} style={styles.app.logoutButton}>
239
+ Logout
240
+ </button>
241
+ </div>
242
+ </nav>
243
+
244
+ {/* ── Screen: Homepage with Quick Links ────────────────────── */}
245
+ {!showForm && (
246
+ <div style={styles.app.homeContent}>
247
+ <h1 style={styles.app.homeTitle}>Welcome to Pega Services</h1>
248
+ <p style={styles.app.homeSubtitle}>What would you like to do today?</p>
249
+
250
+ <div style={styles.app.cardGrid}>
251
+ {QUICK_LINKS.map((link) =>
252
+ link.active ? (
253
+ <div
254
+ key={link.id}
255
+ style={styles.app.cardActive}
256
+ onClick={handleCreateCase}
257
+ role="button"
258
+ tabIndex={0}
259
+ onKeyDown={(e) => e.key === 'Enter' && handleCreateCase()}
260
+ onMouseEnter={(e) => {
261
+ (e.currentTarget as HTMLElement).style.transform = 'translateY(-4px)';
262
+ (e.currentTarget as HTMLElement).style.boxShadow = '0 12px 24px rgba(0,0,0,0.15)';
263
+ }}
264
+ onMouseLeave={(e) => {
265
+ (e.currentTarget as HTMLElement).style.transform = 'none';
266
+ (e.currentTarget as HTMLElement).style.boxShadow = '0 6px 16px rgba(0,0,0,0.12)';
267
+ }}
268
+ >
269
+ <div style={styles.app.cardIconActive}>
270
+ <span>{link.icon}</span>
271
+ </div>
272
+ <div style={styles.app.cardTitle}>{link.title}</div>
273
+ <div style={styles.app.cardDesc}>{link.desc}</div>
274
+ <div style={styles.app.cardAction}>Start →</div>
275
+ </div>
276
+ ) : (
277
+ <div key={link.id} style={styles.app.cardDisabled}>
278
+ <div style={styles.app.cardIcon}>
279
+ <span>{link.icon}</span>
280
+ </div>
281
+ <div style={styles.app.cardTitle}>{link.title}</div>
282
+ <div style={styles.app.cardDesc}>{link.desc}</div>
283
+ <span style={styles.app.comingSoonBadge}>Coming Soon</span>
284
+ </div>
285
+ ),
286
+ )}
287
+ </div>
288
+
289
+ <div style={styles.app.trustBar}>
290
+ <span style={styles.app.trustItem}>
291
+ <span>🏆</span> Trusted by thousands
292
+ </span>
293
+ <span style={styles.app.trustItem}>
294
+ <span>🕐</span> 24/7 Support
295
+ </span>
296
+ <span style={styles.app.trustItem}>
297
+ <span>🔒</span> Enterprise Grade
298
+ </span>
299
+ </div>
300
+ </div>
301
+ )}
302
+
303
+ {/* ── Form screen — always mounted for PCore, hidden on homepage ── */}
304
+ <div style={showForm ? styles.app.formContent : { display: 'none' }}>
305
+ <button type="button" style={styles.app.backButton} onClick={() => setShowForm(false)}>
306
+ ← Back to Services
219
307
  </button>
220
- </div>
221
308
 
222
- <div style={styles.app.content}>
223
- {!showForm && (
224
- <div style={styles.app.welcome}>
225
- <h2 style={styles.app.welcomeHeading}>Ready to go</h2>
226
- <p style={styles.app.welcomeText}>
227
- Click below to create a new case and see the Pega form components
228
- in action.
229
- </p>
230
- <button
231
- type='button'
232
- onClick={handleCreateCase}
233
- style={styles.app.createButton}
234
- >
235
- Create Case
236
- </button>
309
+ <div style={styles.app.twoCol}>
310
+ {/* Left info panel (40%) */}
311
+ <div style={styles.app.leftPanel}>
312
+ <div style={styles.app.leftPanelInner}>
313
+ <h2 style={styles.app.leftTitle}>📋 New Service Request</h2>
314
+ <p style={styles.app.leftSubtitle}>MediaCo Digital Services</p>
315
+
316
+ <div style={styles.app.leftBadges}>
317
+ <span style={styles.app.heroBadge}>⚡ Fast Processing</span>
318
+ <span style={styles.app.heroBadge}>🔒 Secure</span>
319
+ <span style={styles.app.heroBadge}>📊 Trackable</span>
320
+ </div>
321
+
322
+ <div style={styles.app.leftDivider} />
323
+
324
+ <div style={styles.app.leftChecks}>
325
+ <span style={styles.app.footerItem}>
326
+ <span style={styles.app.footerCheck}>✓</span> Free to submit
327
+ </span>
328
+ <span style={styles.app.footerItem}>
329
+ <span style={styles.app.footerCheck}>✓</span> Cancel anytime
330
+ </span>
331
+ <span style={styles.app.footerItem}>
332
+ <span style={styles.app.footerCheck}>✓</span> 24-hour processing
333
+ </span>
334
+ <span style={styles.app.footerItem}>
335
+ <span style={styles.app.footerCheck}>✓</span> Track your request
336
+ </span>
337
+ </div>
338
+ </div>
339
+ </div>
340
+
341
+ {/* Right form card (60%) */}
342
+ <div style={styles.app.formCard}>
343
+ {loading ? (
344
+ <div style={styles.app.loading}>Loading your form...</div>
345
+ ) : rootProps ? (
346
+ <RootComponent renderProps={rootProps} registry={registryRef.current} />
347
+ ) : null}
237
348
  </div>
238
- )}
239
-
240
- {/* {showForm && ( */}
241
- <div style={styles.app.formArea}>
242
- {loading ? (
243
- <div style={styles.app.loading}>Loading case form...</div>
244
- ) : rootProps ? (
245
- <RootComponent renderProps={rootProps} registry={registry} />
246
- ) : null}
247
349
  </div>
248
- {/* )} */}
249
350
  </div>
250
351
  </div>
251
352
  );
@@ -11,11 +11,7 @@
11
11
  import { useEffect, useMemo, useRef, useState } from 'react';
12
12
  import { useLocation } from 'react-router-dom';
13
13
 
14
- import {
15
- PConnectComponent,
16
- PegaStoreContext,
17
- registerComponentCreator,
18
- } from '@pega/sdk-react';
14
+ import { PConnectComponent, PegaStoreContext, registerComponentCreator } from '@pega/sdk-react';
19
15
 
20
16
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
21
17
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
@@ -31,13 +27,7 @@ import { FallbackComponent } from './FallbackComponent';
31
27
  // ─── Root Component ─────────────────────────────────────────────────────────
32
28
  const muiTheme = createTheme();
33
29
 
34
- function RootComponent({
35
- renderProps,
36
- registry,
37
- }: {
38
- renderProps: Record<string, unknown>;
39
- registry: any;
40
- }) {
30
+ function RootComponent({ renderProps, registry }: { renderProps: Record<string, unknown>; registry: any }) {
41
31
  const contextValue = useMemo(() => ({ store: PCore.getStore() }), []);
42
32
  const getPConnect = renderProps.getPConnect as () => any;
43
33
 
@@ -46,11 +36,7 @@ function RootComponent({
46
36
  <LegacyThemeProvider theme={muiTheme}>
47
37
  <LocalizationProvider dateAdapter={AdapterDayjs}>
48
38
  <PegaStoreContext.Provider value={contextValue}>
49
- <PConnectComponent
50
- getPConnect={getPConnect}
51
- componentRegistry={registry}
52
- fallback={FallbackComponent}
53
- />
39
+ <PConnectComponent getPConnect={getPConnect} componentRegistry={registry} fallback={FallbackComponent} />
54
40
  </PegaStoreContext.Provider>
55
41
  </LocalizationProvider>
56
42
  </LegacyThemeProvider>
@@ -61,9 +47,7 @@ function RootComponent({
61
47
  // ─── Portal App ─────────────────────────────────────────────────────────────
62
48
  function PortalApp() {
63
49
  const [isPegaReady, setIsPegaReady] = useState(false);
64
- const [rootProps, setRootProps] = useState<Record<string, unknown> | null>(
65
- null,
66
- );
50
+ const [rootProps, setRootProps] = useState<Record<string, unknown> | null>(null);
67
51
  const authClientRef = useRef<AuthClient | null>(null);
68
52
  const registryRef = useRef<unknown>(null);
69
53
 
@@ -110,13 +94,9 @@ function PortalApp() {
110
94
  registryRef.current = registry;
111
95
 
112
96
  // Determine which portal to load
113
- const sdkConfig = (await getSdkConfig()) as Record<
114
- string,
115
- Record<string, unknown>
116
- >;
97
+ const sdkConfig = (await getSdkConfig()) as Record<string, Record<string, unknown>>;
117
98
  const appPortal = sdkConfig.serverConfig.appPortal as string;
118
- const excludePortals = (sdkConfig.serverConfig.excludePortals ??
119
- []) as string[];
99
+ const excludePortals = (sdkConfig.serverConfig.excludePortals ?? []) as string[];
120
100
 
121
101
  const queryPortal = sessionStorage.getItem('rsdk_portalName');
122
102
  const portalName = queryPortal || appPortal || undefined;
@@ -130,9 +110,7 @@ function PortalApp() {
130
110
  targetId: 'pega-root',
131
111
  });
132
112
 
133
- console.log(
134
- `Loading portal: ${portalName}, excluding portals: ${excludePortals}`,
135
- );
113
+ console.log(`Loading portal: ${portalName}, excluding portals: ${excludePortals}`);
136
114
  const result = await client.loadPortal({
137
115
  portalName,
138
116
  excludePortals,
@@ -157,16 +135,14 @@ function PortalApp() {
157
135
  // ── Render ──────────────────────────────────────────────────────────────
158
136
  if (!isPegaReady || !rootProps) {
159
137
  return (
160
- <div className='loading-container'>
161
- <span className='loading-text'>
162
- Authenticating and loading portal...
163
- </span>
138
+ <div className="loading-container">
139
+ <span className="loading-text">Authenticating and loading portal...</span>
164
140
  </div>
165
141
  );
166
142
  }
167
143
 
168
144
  return (
169
- <div id='pega-root'>
145
+ <div id="pega-root">
170
146
  <RootComponent renderProps={rootProps} registry={registryRef.current} />
171
147
  </div>
172
148
  );
@@ -119,10 +119,7 @@ import {
119
119
  /**
120
120
  * Returns a map of Pega component names → sample React components.
121
121
  */
122
- function getSampleComponentMap(): Record<
123
- string,
124
- React.ComponentType<Record<string, unknown>>
125
- > {
122
+ function getSampleComponentMap(): Record<string, React.ComponentType<Record<string, unknown>>> {
126
123
  return {
127
124
  // Infrastructure from sdk-react (includes View, Region, Reference,
128
125
  // RootContainer, FlowContainer, ViewContainer, Assignment, AssignmentCard, etc.)
@@ -243,9 +240,7 @@ function getSampleComponentMap(): Record<
243
240
  } as unknown as Record<string, React.ComponentType<Record<string, unknown>>>;
244
241
  }
245
242
 
246
- function registerSampleComponents(
247
- registry: ComponentRegistry<React.ComponentType<Record<string, unknown>>>,
248
- ): void {
243
+ function registerSampleComponents(registry: ComponentRegistry<React.ComponentType<Record<string, unknown>>>): void {
249
244
  const map = getSampleComponentMap();
250
245
  for (const [name, component] of Object.entries(map)) {
251
246
  registry.register(name, component);
@@ -17,9 +17,7 @@ const VARIANT_MAP: Record<string, { severity: string; label: string }> = {
17
17
  info: { severity: 'info', label: 'Info' },
18
18
  };
19
19
 
20
- function renderMessage(
21
- message: string | { label?: string; description?: string },
22
- ) {
20
+ function renderMessage(message: string | { label?: string; description?: string }) {
23
21
  if (typeof message === 'object' && message !== null) {
24
22
  const label = message.label || '';
25
23
  const description = message.description || '';
@@ -42,42 +40,23 @@ function renderMessage(
42
40
  );
43
41
  }
44
42
 
45
- export default function AlertBanner({
46
- id,
47
- variant,
48
- messages,
49
- onDismiss,
50
- }: AlertBannerProps) {
43
+ export default function AlertBanner({ id, variant, messages, onDismiss }: AlertBannerProps) {
51
44
  const { severity, label } = VARIANT_MAP[variant] ?? VARIANT_MAP.info;
52
45
  const isMultiple = messages.length > 1;
53
46
 
54
47
  return (
55
48
  <div id={id}>
56
- <Alert
57
- variant='outlined'
58
- severity={severity as any}
59
- {...(onDismiss && { onClose: onDismiss })}
60
- >
49
+ <Alert variant="outlined" severity={severity as any} {...(onDismiss && { onClose: onDismiss })}>
61
50
  {isMultiple && (
62
- <AlertTitle className='alert-banner-title'>
51
+ <AlertTitle className="alert-banner-title">
63
52
  {label}
64
- <span
65
- className={`alert-banner-badge alert-banner-badge--${variant}`}
66
- >
67
- {messages.length}
68
- </span>
53
+ <span className={`alert-banner-badge alert-banner-badge--${variant}`}>{messages.length}</span>
69
54
  </AlertTitle>
70
55
  )}
71
56
  {isMultiple ? (
72
- <ul className='alert-banner-list'>
57
+ <ul className="alert-banner-list">
73
58
  {messages.map((message, index) => (
74
- <li
75
- key={
76
- typeof message === 'string'
77
- ? message
78
- : `${message.label}-${index}`
79
- }
80
- >
59
+ <li key={typeof message === 'string' ? message : `${message.label}-${index}`}>
81
60
  {renderMessage(message)}
82
61
  </li>
83
62
  ))}
@@ -25,22 +25,27 @@ export default function Banner(props: BannerProps) {
25
25
  const variantMap = {
26
26
  'two-column': [6, 6],
27
27
  'narrow-wide': [4, 8],
28
- 'wide-narrow': [8, 4]
28
+ 'wide-narrow': [8, 4],
29
29
  };
30
30
  return (
31
31
  <div style={{ marginBottom: '2rem' }}>
32
- <div className='background-image-style' style={{ backgroundImage: `url(${backgroundImage})` }}>
33
- <div className='background-style content'>
32
+ <div className="background-image-style" style={{ backgroundImage: `url(${backgroundImage})` }}>
33
+ <div className="background-style content">
34
34
  <div>
35
- <h1 className='title'>{title}</h1>
36
- <p className='message'>{message}</p>
35
+ <h1 className="title">{title}</h1>
36
+ <p className="message">{message}</p>
37
37
  </div>
38
38
  </div>
39
39
  </div>
40
- <Grid container size={12} className='banner-layout' spacing={1}>
40
+ <Grid container size={12} className="banner-layout" spacing={1}>
41
41
  <Grid
42
42
  size={{ xs: variantMap[variant][0] }}
43
- style={{ padding: '1rem', backgroundColor: 'var(--app-form-bg-color)', borderRadius: '16px', height: 'fit-content' }}
43
+ style={{
44
+ padding: '1rem',
45
+ backgroundColor: 'var(--app-form-bg-color)',
46
+ borderRadius: '16px',
47
+ height: 'fit-content',
48
+ }}
44
49
  >
45
50
  {a}
46
51
  </Grid>