@pega/sdk 0.0.4 → 0.0.6

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 (548) hide show
  1. package/README.md +10 -3
  2. package/dist/index.js +977 -92
  3. package/package.json +1 -1
  4. package/templates/angular-sdk-reference/package.json +12 -12
  5. package/templates/angular-sdk-reference/tsconfig.json +1 -1
  6. package/templates/react-native-sdk-reference/.claude/settings.json +5 -0
  7. package/templates/react-native-sdk-reference/.prettierignore +17 -0
  8. package/templates/react-native-sdk-reference/.vscode/extensions.json +1 -0
  9. package/templates/react-native-sdk-reference/.vscode/settings.json +7 -0
  10. package/templates/react-native-sdk-reference/AGENTS.md +3 -0
  11. package/templates/react-native-sdk-reference/CLAUDE.md +1 -0
  12. package/templates/react-native-sdk-reference/README.md +56 -0
  13. package/templates/react-native-sdk-reference/app.json +40 -5
  14. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/expo-symbol 2.svg +3 -0
  15. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/grid.png +0 -0
  16. package/templates/react-native-sdk-reference/assets/expo.icon/icon.json +35 -0
  17. package/templates/react-native-sdk-reference/assets/icons/bell.png +0 -0
  18. package/templates/react-native-sdk-reference/assets/icons/clock.png +0 -0
  19. package/templates/react-native-sdk-reference/assets/icons/cross.png +0 -0
  20. package/templates/react-native-sdk-reference/assets/icons/donut.png +0 -0
  21. package/templates/react-native-sdk-reference/assets/icons/gear.png +0 -0
  22. package/templates/react-native-sdk-reference/assets/icons/globe.png +0 -0
  23. package/templates/react-native-sdk-reference/assets/icons/internet.png +0 -0
  24. package/templates/react-native-sdk-reference/assets/icons/music.png +0 -0
  25. package/templates/react-native-sdk-reference/assets/icons/right-arrow.png +0 -0
  26. package/templates/react-native-sdk-reference/assets/icons/speed.png +0 -0
  27. package/templates/react-native-sdk-reference/assets/images/MediaCo.png +0 -0
  28. package/templates/react-native-sdk-reference/assets/images/adaptive-icon.png +0 -0
  29. package/templates/react-native-sdk-reference/assets/images/android-icon-background.png +0 -0
  30. package/templates/react-native-sdk-reference/assets/images/android-icon-foreground.png +0 -0
  31. package/templates/react-native-sdk-reference/assets/images/android-icon-monochrome.png +0 -0
  32. package/templates/react-native-sdk-reference/assets/images/expo-badge-white.png +0 -0
  33. package/templates/react-native-sdk-reference/assets/images/expo-badge.png +0 -0
  34. package/templates/react-native-sdk-reference/assets/images/expo-logo.png +0 -0
  35. package/templates/react-native-sdk-reference/assets/images/favicon.png +0 -0
  36. package/templates/react-native-sdk-reference/assets/images/icon.png +0 -0
  37. package/templates/react-native-sdk-reference/assets/images/logo-glow.png +0 -0
  38. package/templates/react-native-sdk-reference/assets/images/partial-react-logo.png +0 -0
  39. package/templates/react-native-sdk-reference/assets/images/react-logo.png +0 -0
  40. package/templates/react-native-sdk-reference/assets/images/react-logo@2x.png +0 -0
  41. package/templates/react-native-sdk-reference/assets/images/react-logo@3x.png +0 -0
  42. package/templates/react-native-sdk-reference/assets/images/splash-icon.png +0 -0
  43. package/templates/react-native-sdk-reference/assets/images/tutorial-web.png +0 -0
  44. package/templates/react-native-sdk-reference/eslint.config.mjs +68 -0
  45. package/templates/react-native-sdk-reference/package.json +59 -14
  46. package/templates/react-native-sdk-reference/pega-constellationjs-0.26.3.tgz +0 -0
  47. package/templates/react-native-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  48. package/templates/react-native-sdk-reference/pega-sdk-types-0.1.0.tgz +0 -0
  49. package/templates/react-native-sdk-reference/sdk-config.json +31 -9
  50. package/templates/react-native-sdk-reference/src/app/_layout.tsx +38 -0
  51. package/templates/react-native-sdk-reference/src/app/home/_layout.tsx +39 -0
  52. package/templates/react-native-sdk-reference/src/app/home/contact.tsx +11 -0
  53. package/templates/react-native-sdk-reference/src/app/home/index.tsx +36 -0
  54. package/templates/react-native-sdk-reference/src/app/home/shop.tsx +11 -0
  55. package/templates/react-native-sdk-reference/src/app/home/your-services.tsx +11 -0
  56. package/templates/react-native-sdk-reference/src/app/index.tsx +72 -0
  57. package/templates/react-native-sdk-reference/src/app/workarea.tsx +135 -0
  58. package/templates/react-native-sdk-reference/src/bridge/Context/StoreContext.ts +4 -0
  59. package/templates/react-native-sdk-reference/src/bridge/RootComponent.tsx +12 -0
  60. package/templates/react-native-sdk-reference/src/bridge/react_pconnect.jsx +334 -0
  61. package/templates/react-native-sdk-reference/src/components/common/DisplayField.tsx +29 -0
  62. package/templates/react-native-sdk-reference/src/components/common/FormFieldWrapper.tsx +5 -0
  63. package/templates/react-native-sdk-reference/src/components/common/HelperText.tsx +11 -0
  64. package/templates/react-native-sdk-reference/src/components/common/LabelText.tsx +22 -0
  65. package/templates/react-native-sdk-reference/src/components/common/inputTheme.ts +17 -0
  66. package/templates/react-native-sdk-reference/src/components/design-system/AutoComplete.tsx +126 -0
  67. package/templates/react-native-sdk-reference/src/components/design-system/FieldGroup.tsx +72 -0
  68. package/templates/react-native-sdk-reference/src/components/design-system/Radio.tsx +61 -0
  69. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +196 -0
  70. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
  71. package/templates/react-native-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +89 -0
  72. package/templates/react-native-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
  73. package/templates/react-native-sdk-reference/src/components/field/Currency/Currency.tsx +84 -0
  74. package/templates/react-native-sdk-reference/src/components/field/Currency/index.tsx +1 -0
  75. package/templates/react-native-sdk-reference/src/components/field/Date/Date.tsx +94 -0
  76. package/templates/react-native-sdk-reference/src/components/field/Date/index.tsx +1 -0
  77. package/templates/react-native-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +211 -0
  78. package/templates/react-native-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
  79. package/templates/react-native-sdk-reference/src/components/field/Email/Email.tsx +81 -0
  80. package/templates/react-native-sdk-reference/src/components/field/Email/index.tsx +1 -0
  81. package/templates/react-native-sdk-reference/src/components/field/Group/Group.tsx +47 -0
  82. package/templates/react-native-sdk-reference/src/components/field/Group/index.tsx +1 -0
  83. package/templates/react-native-sdk-reference/src/components/field/Integer/Integer.tsx +84 -0
  84. package/templates/react-native-sdk-reference/src/components/field/Integer/index.tsx +1 -0
  85. package/templates/react-native-sdk-reference/src/components/field/Phone/Phone.tsx +85 -0
  86. package/templates/react-native-sdk-reference/src/components/field/Phone/index.ts +1 -0
  87. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +118 -0
  88. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/index.ts +1 -0
  89. package/templates/react-native-sdk-reference/src/components/field/TextArea/TextArea.tsx +86 -0
  90. package/templates/react-native-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
  91. package/templates/react-native-sdk-reference/src/components/field/TextInput/TextInput.tsx +84 -0
  92. package/templates/react-native-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
  93. package/templates/react-native-sdk-reference/src/components/field/URL/URL.tsx +86 -0
  94. package/templates/react-native-sdk-reference/src/components/field/URL/index.tsx +1 -0
  95. package/templates/react-native-sdk-reference/src/components/helpers/data_page.ts +20 -0
  96. package/templates/react-native-sdk-reference/src/components/helpers/event-utils.ts +20 -0
  97. package/templates/react-native-sdk-reference/src/components/helpers/instructions-utils.ts +57 -0
  98. package/templates/react-native-sdk-reference/src/components/helpers/state-utils.tsx +46 -0
  99. package/templates/react-native-sdk-reference/src/components/helpers/template-utils.ts +75 -0
  100. package/templates/react-native-sdk-reference/src/components/helpers/utils.ts +339 -0
  101. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/ActionButtons.tsx +63 -0
  102. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/index.tsx +1 -0
  103. package/templates/react-native-sdk-reference/src/components/infra/Assignment/Assignment.tsx +348 -0
  104. package/templates/react-native-sdk-reference/src/components/infra/Assignment/index.tsx +1 -0
  105. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/AssignmentCard.tsx +56 -0
  106. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/index.tsx +1 -0
  107. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/FlowContainer.tsx +57 -0
  108. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/helpers.ts +137 -0
  109. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/index.tsx +1 -0
  110. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/RootContainer.tsx +52 -0
  111. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/index.tsx +1 -0
  112. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/helper.ts +128 -0
  113. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/index.tsx +59 -0
  114. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/ViewContainer.tsx +31 -0
  115. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/helper.ts +39 -0
  116. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/index.ts +1 -0
  117. package/templates/react-native-sdk-reference/src/components/infra/Containers/helper.ts +9 -0
  118. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/ErrorBoundary.tsx +53 -0
  119. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/index.tsx +1 -0
  120. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/MultiStep.tsx +24 -0
  121. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/index.ts +1 -0
  122. package/templates/react-native-sdk-reference/src/components/infra/Reference/Reference.tsx +68 -0
  123. package/templates/react-native-sdk-reference/src/components/infra/Reference/index.tsx +1 -0
  124. package/templates/react-native-sdk-reference/src/components/infra/Reference/utils.ts +16 -0
  125. package/templates/react-native-sdk-reference/src/components/infra/Region/Region.tsx +10 -0
  126. package/templates/react-native-sdk-reference/src/components/infra/Region/index.tsx +1 -0
  127. package/templates/react-native-sdk-reference/src/components/infra/View/View.tsx +49 -0
  128. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +38 -0
  129. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
  130. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/utils/index.ts +28 -0
  131. package/templates/react-native-sdk-reference/src/components/template/Details/Details.tsx +82 -0
  132. package/templates/react-native-sdk-reference/src/components/template/Details/index.tsx +1 -0
  133. package/templates/react-native-sdk-reference/src/components/template/OneColumn/OneColumn.tsx +29 -0
  134. package/templates/react-native-sdk-reference/src/components/template/OneColumn/index.tsx +1 -0
  135. package/templates/react-native-sdk-reference/src/context/LoaderContext.tsx +42 -0
  136. package/templates/react-native-sdk-reference/src/mediaco/AdvBanner.tsx +62 -0
  137. package/templates/react-native-sdk-reference/src/mediaco/Header.tsx +60 -0
  138. package/templates/react-native-sdk-reference/src/mediaco/HomeScreen.tsx +78 -0
  139. package/templates/react-native-sdk-reference/src/mediaco/QuickActions.tsx +68 -0
  140. package/templates/react-native-sdk-reference/src/mediaco/ResolutionScreen.tsx +48 -0
  141. package/templates/react-native-sdk-reference/src/mediaco/SafeArea.tsx +11 -0
  142. package/templates/react-native-sdk-reference/src/mediaco/TabBar.tsx +102 -0
  143. package/templates/react-native-sdk-reference/src/mediaco/YourServices.tsx +90 -0
  144. package/templates/react-native-sdk-reference/src/sdk-pega-component-map.ts +64 -0
  145. package/templates/react-native-sdk-reference/src/types/PConnProps.d.ts +41 -0
  146. package/templates/react-native-sdk-reference/src/utils/auth.ts +62 -0
  147. package/templates/react-native-sdk-reference/src/utils/init-pcore.ts +37 -0
  148. package/templates/react-native-sdk-reference/src/utils/pcore-polyfills.ts +66 -0
  149. package/templates/react-native-sdk-reference/tsconfig.json +9 -8
  150. package/templates/react-sdk-reference/.ai-common/agents/embedded-flow-expert.md +171 -0
  151. package/templates/react-sdk-reference/{.github/agents/implementation-expert.agent.md → .ai-common/agents/implementation-expert.md} +44 -48
  152. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions-embedded.md +119 -0
  153. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions.md +192 -0
  154. package/templates/react-sdk-reference/.ai-common/instructions/component-map.md +35 -0
  155. package/templates/react-sdk-reference/.ai-common/instructions/dse-component.md +47 -0
  156. package/templates/react-sdk-reference/.ai-common/instructions/embedded-component.md +134 -0
  157. package/templates/react-sdk-reference/.ai-common/instructions/field-component.md +50 -0
  158. package/templates/react-sdk-reference/.ai-common/instructions/template-component.md +43 -0
  159. package/templates/react-sdk-reference/.ai-common/instructions/widget-component.md +45 -0
  160. package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +193 -0
  161. package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/component-manifest.json +106 -2
  162. package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +155 -0
  163. package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +358 -0
  164. package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +165 -0
  165. package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +315 -0
  166. package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +190 -0
  167. package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +227 -0
  168. package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +172 -0
  169. package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/identify-components.md +4 -0
  170. package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
  171. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/AlertBanner.md +61 -25
  172. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +176 -0
  173. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +180 -0
  174. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/DetailsFields.md +180 -0
  175. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroup.md +153 -0
  176. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroupList.md +136 -0
  177. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldValueList.md +140 -0
  178. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Operator.md +85 -41
  179. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Pulse.md +97 -0
  180. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +226 -0
  181. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/WssQuickCreate.md +35 -20
  182. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +169 -0
  183. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +130 -0
  184. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +311 -0
  185. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +156 -0
  186. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +476 -0
  187. package/templates/react-sdk-reference/.ai-common/skills/field-components.md +190 -0
  188. package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +157 -0
  189. package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +178 -0
  190. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +189 -0
  191. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +136 -0
  192. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +126 -0
  193. package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +115 -0
  194. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +119 -0
  195. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +136 -0
  196. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +99 -0
  197. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Group.md +88 -0
  198. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +102 -0
  199. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +142 -0
  200. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Multiselect.md +42 -53
  201. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/ObjectReference.md +36 -60
  202. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +113 -0
  203. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +100 -0
  204. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +153 -0
  205. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RichText.md +117 -0
  206. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +95 -0
  207. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +155 -0
  208. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/SemanticLink.md +35 -57
  209. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +109 -0
  210. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextContent.md +27 -52
  211. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +112 -0
  212. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +102 -0
  213. package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +96 -0
  214. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/UserReference.md +41 -78
  215. package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +165 -0
  216. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/ActionButtons.md +122 -0
  217. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/MultiStep.md +178 -0
  218. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/Stages.md +140 -0
  219. package/templates/react-sdk-reference/.ai-common/skills/template-components.md +198 -0
  220. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +126 -0
  221. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +160 -0
  222. package/templates/react-sdk-reference/.ai-common/skills/template-skills/BannerPage.md +90 -0
  223. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +129 -0
  224. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +196 -0
  225. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +157 -0
  226. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +149 -0
  227. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DataReference.md +46 -31
  228. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +141 -0
  229. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DefaultPage.md +40 -34
  230. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Details.md +96 -0
  231. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsSubTabs.md +103 -0
  232. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsThreeColumn.md +85 -0
  233. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsTwoColumn.md +77 -0
  234. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DynamicTabs.md +103 -0
  235. package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +130 -0
  236. package/templates/react-sdk-reference/.ai-common/skills/template-skills/HierarchicalForm.md +200 -0
  237. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboard.md +110 -0
  238. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md +105 -0
  239. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/ListPage.md +21 -16
  240. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +234 -0
  241. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/MultiReferenceReadOnly.md +18 -23
  242. package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +161 -0
  243. package/templates/react-sdk-reference/.ai-common/skills/template-skills/OneColumn.md +114 -0
  244. package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +132 -0
  245. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +173 -0
  246. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/SimpleTable.md +44 -24
  247. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +103 -0
  248. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SubTabs.md +89 -0
  249. package/templates/react-sdk-reference/.ai-common/skills/template-skills/TwoColumn.md +133 -0
  250. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +36 -43
  251. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/WssNavBar.md +26 -45
  252. package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +124 -0
  253. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +94 -0
  254. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +163 -0
  255. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/CaseHistory.md +90 -0
  256. package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/FileUtility.md +68 -62
  257. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Followers.md +24 -19
  258. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/QuickCreate.md +27 -44
  259. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/SummaryItem.md +35 -61
  260. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +261 -0
  261. package/templates/react-sdk-reference/package.json +1 -1
  262. package/templates/react-sdk-reference/package.minimal.json +29 -0
  263. package/templates/react-sdk-reference/pega-auth-0.2.44.tgz +0 -0
  264. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  265. package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
  266. package/templates/react-sdk-reference/src/MashupApp.tsx +8 -19
  267. package/templates/react-sdk-reference/src/PortalApp.tsx +6 -17
  268. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +13 -3
  269. package/templates/react-native-sdk-reference/.github/AGENTS.md +0 -23
  270. package/templates/react-native-sdk-reference/.github/copilot-instructions.md +0 -40
  271. package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +0 -48
  272. package/templates/react-native-sdk-reference/App.tsx +0 -49
  273. package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
  274. package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
  275. package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -75
  276. package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -93
  277. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -88
  278. package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -152
  279. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -158
  280. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -140
  281. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -153
  282. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -165
  283. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -138
  284. package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
  285. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
  286. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -137
  287. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +0 -152
  288. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
  289. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +0 -148
  290. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -134
  291. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +0 -113
  292. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -118
  293. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -85
  294. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -232
  295. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -291
  296. package/templates/react-sdk-reference/.claude/skills/field-components.md +0 -295
  297. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -113
  298. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +0 -211
  299. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -175
  300. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -109
  301. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -101
  302. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -106
  303. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +0 -99
  304. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +0 -134
  305. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +0 -109
  306. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +0 -96
  307. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -88
  308. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +0 -145
  309. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -93
  310. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -129
  311. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -167
  312. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -149
  313. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -134
  314. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -231
  315. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +0 -98
  316. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +0 -117
  317. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -107
  318. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -89
  319. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -86
  320. package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -321
  321. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -150
  322. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -124
  323. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +0 -86
  324. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -106
  325. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -137
  326. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -131
  327. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -109
  328. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +0 -104
  329. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +0 -112
  330. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +0 -90
  331. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -97
  332. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +0 -80
  333. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -80
  334. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +0 -106
  335. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +0 -112
  336. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +0 -116
  337. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +0 -108
  338. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +0 -82
  339. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -142
  340. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -82
  341. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +0 -143
  342. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -114
  343. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +0 -130
  344. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +0 -142
  345. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -108
  346. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -82
  347. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +0 -133
  348. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +0 -139
  349. package/templates/react-sdk-reference/.claude/skills/widget-components.md +0 -260
  350. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +0 -84
  351. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +0 -151
  352. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +0 -110
  353. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -206
  354. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -198
  355. package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
  356. package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
  357. package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +0 -74
  358. package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
  359. package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
  360. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +0 -193
  361. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
  362. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
  363. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
  364. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
  365. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
  366. package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
  367. package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
  368. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
  369. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
  370. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
  371. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +0 -149
  372. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +0 -136
  373. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +0 -116
  374. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +0 -120
  375. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +0 -154
  376. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +0 -88
  377. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
  378. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
  379. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +0 -294
  380. package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +0 -299
  381. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
  382. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
  383. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
  384. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
  385. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
  386. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
  387. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
  388. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
  389. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
  390. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +0 -95
  391. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
  392. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
  393. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
  394. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +0 -169
  395. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
  396. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
  397. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
  398. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +0 -143
  399. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
  400. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
  401. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +0 -153
  402. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
  403. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +0 -106
  404. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
  405. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
  406. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
  407. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
  408. package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
  409. package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +0 -327
  410. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
  411. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
  412. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +0 -88
  413. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
  414. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
  415. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
  416. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
  417. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
  418. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
  419. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
  420. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +0 -93
  421. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +0 -100
  422. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +0 -83
  423. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +0 -83
  424. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +0 -106
  425. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
  426. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +0 -118
  427. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +0 -109
  428. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +0 -90
  429. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +0 -73
  430. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
  431. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +0 -85
  432. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
  433. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +0 -114
  434. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
  435. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
  436. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
  437. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
  438. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +0 -84
  439. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +0 -136
  440. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
  441. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
  442. package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +0 -276
  443. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
  444. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
  445. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +0 -112
  446. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
  447. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +0 -104
  448. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +0 -119
  449. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +0 -172
  450. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
  451. package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
  452. package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
  453. package/templates/react-sdk-reference/.github/copilot-instructions.md +0 -243
  454. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +0 -40
  455. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +0 -77
  456. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +0 -77
  457. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +0 -95
  458. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +0 -90
  459. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +0 -192
  460. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -193
  461. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +0 -411
  462. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +0 -205
  463. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +0 -223
  464. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +0 -229
  465. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +0 -208
  466. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
  467. package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
  468. package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
  469. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -152
  470. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
  471. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -148
  472. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +0 -134
  473. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -113
  474. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +0 -118
  475. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -155
  476. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +0 -85
  477. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +0 -232
  478. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +0 -137
  479. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +0 -291
  480. package/templates/react-sdk-reference/.github/skills/field-components.md +0 -295
  481. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -113
  482. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -211
  483. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -175
  484. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -109
  485. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -101
  486. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -106
  487. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -99
  488. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -134
  489. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -109
  490. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -96
  491. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +0 -88
  492. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -145
  493. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +0 -188
  494. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +0 -173
  495. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +0 -93
  496. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +0 -129
  497. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +0 -167
  498. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +0 -149
  499. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +0 -134
  500. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +0 -231
  501. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +0 -155
  502. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -98
  503. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +0 -107
  504. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +0 -89
  505. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +0 -86
  506. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -203
  507. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -70
  508. package/templates/react-sdk-reference/.github/skills/template-components.md +0 -321
  509. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +0 -150
  510. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -124
  511. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -86
  512. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +0 -106
  513. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -137
  514. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -131
  515. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +0 -109
  516. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -124
  517. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -104
  518. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -90
  519. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +0 -97
  520. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -80
  521. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +0 -80
  522. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -106
  523. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -112
  524. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -116
  525. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -108
  526. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -82
  527. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +0 -70
  528. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -142
  529. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -143
  530. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +0 -114
  531. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -130
  532. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -142
  533. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +0 -131
  534. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +0 -108
  535. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +0 -82
  536. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -133
  537. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -152
  538. package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -260
  539. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -84
  540. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -151
  541. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -110
  542. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -103
  543. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +0 -118
  544. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -169
  545. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -198
  546. package/templates/react-sdk-reference/AGENTS.md +0 -246
  547. package/templates/react-sdk-reference/pega-auth-0.2.42.tgz +0 -0
  548. /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/run-and-verify.md +0 -0
@@ -0,0 +1,129 @@
1
+ # Skill: CaseSummary
2
+
3
+ Case summary template. Renders a summary panel with primary and secondary case fields, derived from either inputs or child region extraction.
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ > ⚠️ **CRITICAL — Children-based field resolution is MANDATORY**
10
+ >
11
+ > The `arPrimaryFields` and `arSecondaryFields` inputs are almost always EMPTY at runtime. The Pega engine passes field data as region children, not as pre-computed array inputs.
12
+ >
13
+ > You MUST include children-based field extraction: when both `arPrimaryFields` and `arSecondaryFields` are empty, iterate the `children` and for each child, access its PConnect instance via the child element's **passed properties** (the `getPConnect` function is available on the child's properties, not directly on the child element itself). Then call `resolveConfigProps(getRawMetadata())` on that PConnect instance to resolve `@P` property references and `@L` label references into actual values. Check the resolved `name` (case-insensitive) to identify "primary fields" and "secondary fields" regions, and assign their resolved `children` arrays.
14
+ >
15
+ > **Key:** Access `getPConnect` from the child element's **passed properties** (NOT directly on the child). Children passed to page templates are rendered elements — `getPConnect` is available on their properties, not as a top-level method.
16
+ >
17
+ > **DO NOT** use `filterSummaryFields()`, `getSDKCaseUtils()`, or any other shortcut API to obtain summary fields. These APIs return raw unresolved metadata containing `@L` and `@P` tokens that will render as literal text. Only the children-based extraction with `resolveConfigProps(getRawMetadata())` resolves these tokens into actual values.
18
+ >
19
+ > Without this extraction, the summary will render completely empty or show unresolved `@P`/`@L` references.
20
+
21
+ ## Component Purpose
22
+
23
+ Displays a case's key summary data in a structured summary panel. Primary fields are shown prominently; secondary fields are shown with labels. Data is sourced either directly from inputs or by extracting child regions. All field values are localized before display.
24
+
25
+ ## Pega Metadata
26
+
27
+ - **Registration key:** `CaseSummary` (in the project's component map)
28
+ - **Category:** Page template — summary
29
+ - **Extends:** the project's base component interface
30
+
31
+ ## Inputs
32
+
33
+ | Input | Type | Required | Description |
34
+ | ------------------- | ------------------ | -------- | ------------------------------------------------------- |
35
+ | `children` | renderable content | No | Region children when fields come from PConnect metadata |
36
+ | `arPrimaryFields` | `array` | No | Array of primary field objects (direct input) |
37
+ | `arSecondaryFields` | `array` | No | Array of secondary field objects (direct input) |
38
+ | `getPConnect` | `function` | Yes | PConnect getter |
39
+
40
+ ## Implementation Structure
41
+
42
+ **Module Setup:** Obtain the project's base component interface for typing. Obtain the project's component registry for resolving child components at runtime.
43
+
44
+ **Main Component Logic** — steps in order:
45
+
46
+ 1. Retrieve `CaseSummaryFields` from the project's component registry.
47
+ 2. Receive inputs: extract `children`, and `arPrimaryFields`/`arSecondaryFields` (both defaulting to empty arrays) as mutable bindings.
48
+ 3. Set up localization: `localizedVal = PCore.getLocaleUtils().getLocaleValue` and `localeCategory = 'ModalContainer'`.
49
+ 4. Define a helper `prepareComponentInCaseSummary(pConnectMeta, getPConnect)` that creates a component from metadata and returns `{ value: createdComponent }`.
50
+ 5. Define a helper `prepareCaseSummaryData(summaryFieldChildren)` that converts children into a summary data array.
51
+ 6. If both `arPrimaryFields` and `arSecondaryFields` are empty, iterate the `children`: for each child element, access its PConnect instance via the child's **passed properties** (the `getPConnect` function lives on the element's properties, not directly on the element). Call `resolveConfigProps(getRawMetadata())` on that PConnect instance — this resolves `@P` property references and `@L` label references into actual values. Check the resolved object's `name` (case-insensitive): when it equals `'primary fields'`, assign its `children` array to `arPrimaryFields` and localize each field's string `config.value`; when it equals `'secondary fields'`, assign its `children` array to `arSecondaryFields` and localize each field's string `config.value`.
52
+ 7. Render a container element with id `CaseSummary` containing two `CaseSummaryFields` instances — one with `theFields` set to `arPrimaryFields`, the other with `theFields` set to `arSecondaryFields`.
53
+
54
+ ## Behavioral Contract
55
+
56
+ ### Field Sourcing
57
+
58
+ Two modes — prefer direct inputs if provided:
59
+
60
+ **Mode A — Direct inputs:**
61
+
62
+ - `arPrimaryFields` and `arSecondaryFields` are passed directly.
63
+ - Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` to localize values.
64
+
65
+ **Mode B — Children-based extraction:**
66
+
67
+ - Iterate the `children` content-projected elements.
68
+ - For each child, access its PConnect via the child element's **passed properties** (NOT directly on the child element).
69
+ - Call `resolveConfigProps(getRawMetadata())` on the PConnect instance — this resolves `@P` property references and `@L` label references into actual runtime values.
70
+ - Check the resolved `name` (case-insensitive) to identify "primary fields" and "secondary fields" regions.
71
+ - Assign the resolved region's `children` array to the appropriate field list.
72
+ - Localize each field's string `config.value` via `PCore.getLocaleUtils().getLocaleValue(value, localeCategory)`.
73
+
74
+ ### `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)`
75
+
76
+ Helper that:
77
+
78
+ 1. Iterates each field in both arrays.
79
+ 2. Localizes the field value via `PCore.getLocaleUtils().getLocaleValue(value, classID, value)`.
80
+ 3. Returns `{ arPrimaryFields: localizedPrimary, arSecondaryFields: localizedSecondary }`.
81
+
82
+ ### Render
83
+
84
+ Delegates entirely to `CaseSummaryFields` (a DSE component resolved from the project's component registry), passing:
85
+
86
+ - `arPrimaryFields` — array of `{ name, value }` objects for primary display
87
+ - `arSecondaryFields` — array of `{ name, value, displayLabel }` objects for secondary display
88
+
89
+ ## Visual Specifications
90
+
91
+ - `CaseSummaryFields` handles all rendering — see the DSE component skill for details.
92
+ - Primary fields: large text, no label.
93
+ - Secondary fields: label + value pairs.
94
+
95
+ **CSS-only implementation notes (for `CaseSummaryFields` wrapper):**
96
+
97
+ - Container: `display: flex; flex-direction: column; gap: 8px`.
98
+ - Primary field value: `font-size: 1rem; font-weight: 600`.
99
+ - Secondary field row: `display: flex; gap: 4px; font-size: 0.875rem`.
100
+ - Secondary label: `color: var(--secondary-text-color)`.
101
+
102
+ ## Edge Cases & Special Logic
103
+
104
+ - If both `arPrimaryFields` input and children are present, the direct input takes priority.
105
+ - `prepareCaseSummaryData` — guard against undefined/null field values before passing to `getLocaleValue`.
106
+ - `displayLabel` on secondary fields controls whether the field label is shown alongside the value.
107
+ - If `arSecondaryFields` is empty, the secondary section is not rendered.
108
+
109
+ ## Dependencies
110
+
111
+ - `prepareCaseSummaryData` — local helper within this component
112
+ - `CaseSummaryFields` — DSE component resolved from the project's component registry
113
+ - `PCore.getLocaleUtils().getLocaleValue()` — value localization
114
+
115
+ ## Design System Mapping
116
+
117
+ **UI control type:** Read-only case summary panel with primary and secondary field groups.
118
+
119
+ When implementing in a specific design system, map the following:
120
+
121
+ - **Primary fields:** Use a prominent text element (e.g., a heading or bold typography variant) to display values without labels.
122
+ - **Secondary fields:** Use label + value pairs in a description-list style layout (e.g., a vertical list of term/definition pairs, or a compact grid of label-value rows).
123
+ - **Container:** A vertical stack or flexbox column with consistent spacing between field groups.
124
+
125
+ Regardless of design system:
126
+
127
+ - Always localize field values before display — use `PCore.getLocaleUtils().getLocaleValue()`
128
+ - `CaseSummaryFields` is a DSE component — implement it separately and call it from here
129
+ - Primary fields have no labels; secondary fields have labels
@@ -0,0 +1,196 @@
1
+ # Skill: CaseView
2
+
3
+ Case view template. Renders the full case workspace: summary sidebar, stages, to-do region, main content tabs, and utilities column. Also covers `ObjectPage` (which is a re-export of `CaseView`).
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ > ⚠️ **CRITICAL — DO NOT SIMPLIFY THIS COMPONENT**
10
+ >
11
+ > This is the most complex Page template (~260 lines in the reference). It MUST NOT be collapsed into a single-line return. The following are MANDATORY in the generated output:
12
+ >
13
+ > 1. `getChildRegionByName` from `PCore.getSDKUtils().getSDKCaseUtils()` — extract regions by metadata name, NOT by array index, NOT by a custom helper calling `child.getPConnect()`
14
+ > 2. Resolve `VerticalTabs` from the project's component registry — for tab navigation in the sidebar
15
+ > 3. Resolve `DeferLoad` from the project's component registry — for lazy-loading tab content
16
+ > 4. Resolve `CaseViewActionsMenu` from the project's component registry — for case actions
17
+ > 5. Lifecycle effect for `VerticalTabClick` event listener (add + remove on teardown)
18
+ > 6. Lifecycle effect for `hasNewAttachments` → publish `CASE_ATTACHMENTS_UPDATED`
19
+ > 7. `displayOnlyFA` check from the application store context — renders only todo region in focused action mode
20
+ > 8. `activeVertTab` local state for tracking which tab is selected
21
+ > 9. `vertTabInfo` + `deferLoadInfo` obtained from `extractTabsInfo(theTabsRegion)` SDK utility — **`vertTabInfo` MUST be `{ name: string; id: number }[]`, NOT a renderable element**
22
+ > 10. 3-column grid layout: sidebar (3) + main content (6) + utilities (3)
23
+ >
24
+ > **Minimum Implementation Checklist:**
25
+ >
26
+ > - [ ] `getChildRegionByName` and `extractTabsInfo` obtained from `PCore.getSDKUtils().getSDKCaseUtils()`
27
+ > - [ ] All 5 named regions extracted: summary, stages, todo, utilities, tabs
28
+ > - [ ] Regions rendered DIRECTLY in the template — NOT passed through the PConnect bridge component
29
+ > - [ ] **Case header card** rendered at top of sidebar with: title (`header` input), subheader (case ID), action buttons from `availableActions`, CaseViewActionsMenu
30
+ > - [ ] Action buttons rendered **dynamically from `caseInfo.availableActions`** — labels localized via `PCore.getLocaleUtils().getLocaleValue()`
31
+ > - [ ] VerticalTabs component rendered with tab config array
32
+ > - [ ] DeferLoad component rendered with `name={deferLoadInfo[activeTab].config.name}` — **NOT the display label**
33
+ > - [ ] **`vertTabInfo` and `deferLoadInfo` are SEPARATE arrays** — never merged into one
34
+ > - [ ] CaseViewActionsMenu rendered **inside the case header card** (NOT standalone)
35
+ > - [ ] displayOnlyFA check returning only todo region
36
+ > - [ ] Lifecycle effect for VerticalTabClick event
37
+ > - [ ] Lifecycle effect for hasNewAttachments pub/sub
38
+ > - [ ] **Stages region in CENTER column** (main), NOT in sidebar
39
+
40
+ ---
41
+
42
+ ## Component Purpose
43
+
44
+ The primary case workspace template. Extracts named regions from PConnect children by metadata type and name, arranges them in a 3-column responsive grid (3/6/3), handles deferred tab loading, and supports a `displayOnlyFA` mode that shows only the to-do region. Edit actions are triggered via the utilities column.
45
+
46
+ > **Note:** `ObjectPage` is a direct re-export of `CaseView` — the ObjectPage module simply re-exports CaseView's default export. Do not create a separate `ObjectPage` component; register both keys pointing to the same implementation.
47
+
48
+ ## Pega Metadata
49
+
50
+ - **Registration key:** `CaseView` and `ObjectPage` (both point to the same component)
51
+ - **Category:** Page template — case workspace
52
+ - **Extends:** the project's base component interface
53
+
54
+ ## Inputs
55
+
56
+ | Input | Type | Required | Description |
57
+ | -------------------- | ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------- |
58
+ | `children` | renderable content | Yes | Named region children (summary, stages, todo, utilities, tabs) |
59
+ | `displayOnlyFA` | `boolean` | No | If true, renders only the to-do region (focused action mode) |
60
+ | `getPConnect` | `function` | Yes | PConnect getter |
61
+ | `icon` | `string` | No | Icon identifier for case type |
62
+ | `subheader` | `string` | No | Case ID displayed below the header |
63
+ | `header` | `string` | Yes | Case name/title |
64
+ | `showIconInHeader` | `boolean` | No | Whether to show the case type icon in the header card |
65
+ | `caseInfo` | `object` | Yes | Case metadata (availableActions, availableProcesses, hasNewAttachments, caseTypeID, caseTypeName, caseTypeIcon, ID) |
66
+ | `lastUpdateCaseTime` | `any` | No | Last case update timestamp; defaults to `getPConnect().getValue('caseInfo.lastUpdateTime')` |
67
+
68
+ ## Implementation Structure
69
+
70
+ **Module Setup:** Obtain the project's base component interface for typing. Obtain the project's component registry for resolving child components at runtime. Obtain the application store context for reading `displayOnlyFA`. Obtain a static-content URL utility for resolving icon paths.
71
+
72
+ **Main Component Logic** — steps in order:
73
+
74
+ 1. Retrieve `CaseViewActionsMenu`, `VerticalTabs`, and `DeferLoad` from the project's component registry.
75
+ 2. Receive inputs: extract `getPConnect`, `icon` (default `''`), `header`, `subheader`, `children` (default `[]`), and the nested `caseInfo` fields `availableActions` (default `[]`), `availableProcesses` (default `[]`), `hasNewAttachments`, `caseTypeID` (default `''`), `caseTypeName` (default `''`), and `caseTypeIcon`. Default `lastUpdateCaseTime` to `getPConnect().getValue('caseInfo.lastUpdateTime')` when not supplied. Read `currentCaseID` from `caseInfo.ID`; read `displayOnlyFA` from the application store context; call `getPConnect()` once into `thePConn`.
76
+ 3. **Extract named regions using SDK utilities:** Obtain `getChildRegionByName`, `extractTabsInfo`, and `openCaseEditAction` from `PCore.getSDKUtils().getSDKCaseUtils()`. Normalize `children` into an array (`childArr`). Use `getChildRegionByName(childArr, 'summary')` etc. to extract `theSummaryRegion`, `theStagesRegion`, `theTodoRegion`, `theUtilitiesRegion`, and `theTabsRegion`. **Do NOT implement a custom `getChildRegionByName` helper** — the SDK utility handles the internal child format correctly (children passed to page templates are rendered elements that do not expose `.getPConnect()` as a direct method).
77
+ 4. **Build tab info using SDK utility:** Call `extractTabsInfo(theTabsRegion)` to get `{ vertTabInfo, deferLoadInfo }`. Destructure with defaults: `const { vertTabInfo = [], deferLoadInfo = [] } = extractTabsInfo(theTabsRegion) ?? {}`. `vertTabInfo` is a plain array of `{ name: string; id: number }` objects (display labels for `VerticalTabs`). `deferLoadInfo` is a separate array of `{ type: 'DeferLoad', config }` objects (the full config for each tab). `DeferLoad`'s `name` input must always come from `deferLoadInfo[activeTab].config.name` (e.g., `"pyDetailsTabContent"`) — never the display label. **Do NOT manually iterate tab children to build these arrays** — the SDK utility handles the extraction correctly.
78
+ 5. Declare local state `activeVertTab` (number, default `0`). Determine `editAction` by finding the entry in `availableActions` whose `ID === 'pyUpdateCaseDetails'` — this action is data-driven from the network response; the ID is a common Pega convention but may differ per case type, and its label must always be localized rather than hardcoded.
79
+ 6. **`VerticalTabClick` listener:** in a lifecycle effect that runs once on initialization, add a `document` listener for the custom `VerticalTabClick` DOM event (not PubSub) that parses `event?.detail?.additionalData?.itemClicked` (or the event itself) as an integer and updates `activeVertTab` when valid; remove the listener on teardown. Track a mounted flag to avoid updating local state after teardown.
80
+ 7. **Attachment updates:** in a lifecycle effect keyed on `hasNewAttachments`, when it's true, publish `PCore.getPubSubUtils().publish(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true)`.
81
+ 8. Define `_editClick()`: call `openCaseEditAction(thePConn, editAction)` — this SDK utility handles the local action invocation correctly.
82
+ 9. **Render:** when `displayOnlyFA` is true, render only a wrapping container holding `theTodoRegion` directly (NOT through the PConnect bridge component) and stop there. Otherwise, bind `localizedVal = PCore.getLocaleUtils().getLocaleValue` and render a `psdk-case-view` container with three sections. **Regions returned by `getChildRegionByName` are rendered directly in the template** — do NOT pass them through the PConnect bridge component because they are already renderable elements:
83
+ - **Sidebar (column width 3/12):** a hidden element holding `currentCaseID`; a case header card (`psdk-case-view-header`) with a themed background, containing the title (`header`) and subheader/case-ID (`subheader`, when present) in a `psdk-case-view-header-content` block, followed by a `psdk-case-view-header-actions` block holding: an Edit button (rendered with the project's installed design system button component, NOT a plain button element, labeled via `localizedVal('Edit', 'CaseView')`, shown only when `editAction` exists, wired to `_editClick`); and the `CaseViewActionsMenu` (passed `getPConnect`, `availableActions`, `availableProcesses`, `caseTypeID`, `caseTypeName`) rendered inside this header card, not standalone. After the header card, render `theSummaryRegion`, then `VerticalTabs` (with `tabconfig` set to `vertTabInfo`) when there's more than one tab.
84
+ - **Main (column width 6/12):** `theStagesRegion` MUST appear here in the center column (never in the sidebar), followed by `theTodoRegion`, followed by `DeferLoad` (passed `getPConnect`, `name` set to `deferLoadInfo[activeVertTab].config.name`, `isTab`, `lastUpdateCaseTime`) when `deferLoadInfo` has an entry for the active tab.
85
+ - **Utilities (column width 3/12):** `theUtilitiesRegion`.
86
+
87
+ For the Edit button and header card styling, use the project's installed design system: e.g. a ghost/small button for a Carbon-based system, a text-variant button for a Material-based system, a link-type button for an Ant-based system, or a styled plain button when CSS-only; the header background should use a matching light accent token or color for each.
88
+
89
+ > **Note:** `ObjectPage` is a re-export: its module simply re-exports CaseView's default export. Register both keys to the same component.
90
+
91
+ ## Behavioral Contract
92
+
93
+ ### Region Extraction
94
+
95
+ > ⚠️ **CRITICAL:** Use `PCore.getSDKUtils().getSDKCaseUtils().getChildRegionByName(childArr, name)` to extract regions. Do NOT implement a custom helper that calls `child.getPConnect()` — children passed to page templates are rendered elements and do not expose `getPConnect` as a direct method. The SDK utility handles the internal format correctly.
96
+
97
+ Extract the following named regions:
98
+
99
+ - **Summary region:** `getChildRegionByName(childArr, 'summary')`
100
+ - **Stages region:** `getChildRegionByName(childArr, 'stages')`
101
+ - **ToDo region:** `getChildRegionByName(childArr, 'todo')`
102
+ - **Utilities region:** `getChildRegionByName(childArr, 'utilities')`
103
+ - **Tabs region:** `getChildRegionByName(childArr, 'tabs')`
104
+
105
+ Render each extracted region directly in the template — they are already renderable elements.
106
+
107
+ ### Tabs Region — Deferred Load
108
+
109
+ - Call `extractTabsInfo(theTabsRegion)` from `PCore.getSDKUtils().getSDKCaseUtils()` to build `vertTabInfo` (vertical tab definitions) and `deferLoadInfo` (deferred loading metadata).
110
+ - Do NOT manually iterate tab children — the SDK utility handles this correctly.
111
+ - Pass `vertTabInfo` to `VerticalTabs` component as its `tabconfig` prop.
112
+ - Pass `deferLoadInfo[activeVertTab].config.name` to `DeferLoad` as its `name` prop.
113
+
114
+ ### displayOnlyFA Mode
115
+
116
+ If `displayOnlyFA === true`:
117
+
118
+ - Render only the ToDo region, centered.
119
+ - Skip summary, stages, tabs, utilities rendering.
120
+
121
+ ### Attachments Subscription
122
+
123
+ - Subscribe to `PCore.getPubSubUtils().subscribe(CASE_ATTACHMENTS_UPDATED, handleAttachmentUpdate, 'CaseView')`.
124
+ - Track `hasNewAttachments` boolean state — passed to utilities region.
125
+ - Unsubscribe on unmount.
126
+
127
+ ### Edit Action
128
+
129
+ - The utilities region may include an edit action button.
130
+ - On click: call `getPConnect().getActionsApi().openLocalAction(editActionId, { ... })`.
131
+
132
+ ## Visual Specifications
133
+
134
+ ### 3-Column Grid Layout
135
+
136
+ > ⚠️ **CRITICAL LAYOUT RULE:** Stages MUST be in the CENTER column, NOT the sidebar.
137
+ > The sidebar contains: case header card → summary → vertical tabs.
138
+ > The center contains: stages → todo → deferred tab content.
139
+
140
+ Three columns share the row: a 3/12-width sidebar column holding the case header card (title + ID), the Edit and Actions buttons, the summary region, and the vertical tabs; a 6/12-width main column holding the stages region, the to-do/assignment region, and the deferred tab content; and a 3/12-width utilities column holding the utilities region (attachments, etc.).
141
+
142
+ | Column | Width | Contents |
143
+ | ------ | ----- | ----------------------------------------------------------- |
144
+ | Left | 3/12 | Case header card, Summary, VerticalTabs |
145
+ | Center | 6/12 | **Stages**, ToDo/assignment, DeferLoad (active tab content) |
146
+ | Right | 3/12 | Utilities region (attachments, etc.) |
147
+
148
+ **CSS-only implementation notes:**
149
+
150
+ - Outer grid: `display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); gap: 1rem; width: 100%`.
151
+ - Left column: `display: flex; flex-direction: column; gap: 0.5rem`.
152
+ - Center column: `overflow: hidden`.
153
+ - Responsive: on mobile (`max-width: 672px`), stack to single column.
154
+
155
+ **Case header card CSS (MUST be included in companion styles):** the `.psdk-case-view` container is a CSS grid with columns `minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr)`, a `1rem` gap, and full width; its direct children get `min-width: 0`; at `max-width: 672px` it collapses to a single column. The `.psdk-case-view-header` card has a light blue background (`#e3f2fd`), `4px` border radius, `1rem` padding, and `1rem` bottom margin; `.psdk-case-view-header-content` has `0.5rem` bottom margin; `.psdk-case-view-header-title` has no margin, `1.25rem` font size, medium weight, and a blue accent color (`#1565c0`); `.psdk-case-view-header-id` is smaller (`0.875rem`) and gray (`#555`); `.psdk-case-view-header-actions` is a flex row with `0.5rem` gap and centered items; `.psdk-case-view-edit-btn` is an unstyled, borderless, uppercase text button in blue (`#1976d2`, `0.875rem`, medium weight) with a subtle hover background (`rgba(25, 118, 210, 0.04)`).
156
+
157
+ ## Edge Cases & Special Logic
158
+
159
+ - `displayOnlyFA === true` — completely different render tree (only ToDo), no grid layout.
160
+ - Missing regions — guard each region before rendering; a region may not exist for all case types.
161
+ - `DeferLoad` handles progressive loading — do not eagerly render all tab content.
162
+ - `hasNewAttachments` is passed down to the utilities region — it affects attachment icon badge display.
163
+
164
+ ## Dependencies
165
+
166
+ - `DeferLoad` component — resolved from the project's component registry; handles deferred tab content loading
167
+ - `PCore.getPubSubUtils()` — pub/sub for attachment updates
168
+ - The project's PConnect bridge utility — for rendering region children
169
+ - `CASE_ATTACHMENTS_UPDATED` constant from PCore events API
170
+
171
+ ## Sub-Variants
172
+
173
+ ### ObjectPage
174
+
175
+ `ObjectPage` is registered as a direct re-export module whose default export simply re-exports `CaseView`'s default export.
176
+
177
+ - No separate implementation needed.
178
+ - In the project's component map, register `ObjectPage` key pointing to the same component as `CaseView`.
179
+
180
+ ## Design System Mapping
181
+
182
+ **UI control type:** Full case workspace layout — 3-column grid with sidebar, main content, and utilities.
183
+
184
+ When implementing in a specific design system, map the following:
185
+
186
+ - **Grid layout:** Use the design system's grid component with a 3/6/3 column ratio. For CSS-only, use CSS Grid with `grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr)`.
187
+ - **Sidebar container:** Use the design system's card or panel component to wrap the case header, summary, and vertical tabs.
188
+ - **Deferred tabs:** Use the design system's tab component for the vertical tab list, paired with the DeferLoad component for lazy content rendering. The VerticalTabs component handles its own rendering — just pass `tabconfig` as the array of `{ name, id }` objects.
189
+ - **Case header card:** A card with a light accent background, containing the case title, case ID, and action buttons.
190
+ - **Action buttons:** Use the design system's button component (text/ghost variant for Edit, menu component for CaseViewActionsMenu).
191
+
192
+ Regardless of design system:
193
+
194
+ - `displayOnlyFA` must completely bypass the grid — render only ToDo region
195
+ - Region extraction by metadata name is required — do not assume positional ordering
196
+ - Deferred loading is mandatory for performance — tab content must not all load at once
@@ -0,0 +1,157 @@
1
+ # Skill: CaseViewActionsMenu
2
+
3
+ Case actions dropdown menu. Renders an "Actions" button that opens a menu of local actions and process actions for the current case.
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a button that opens a dropdown menu containing all available case actions. Distinguishes between local actions (UI flow) and process actions (server-side), invoking the appropriate API for each. Shows a toast notification on process action error.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Registration key:** `CaseViewActionsMenu` (in the project's component map)
16
+ - **Category:** Page template — action menu
17
+ - **Extends:** the project's base component interface
18
+
19
+ ## Inputs
20
+
21
+ | Name | Type | Required | Description |
22
+ | -------------------- | ---------- | -------- | ---------------------------------------------- |
23
+ | `availableActions` | `array` | No | Array of `{ ID, name }` local action objects |
24
+ | `availableProcesses` | `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
+
29
+ ## Implementation Structure
30
+
31
+ > ⚠️ **CRITICAL — USE THE PROJECT'S DESIGN SYSTEM for the trigger button and menu items.**
32
+ >
33
+ > Check `package.json` for the installed design system. Use its button component (ghost/text variant) for the "Actions…" trigger. Use its menu/dropdown if available, otherwise use a positioned list with CSS.
34
+ >
35
+ > When implementing in a specific design system, map the following: the trigger button should use a text or ghost variant button from the installed library; the menu should use the library's dropdown/menu component if available; the toast notification should use the library's snackbar or toast primitive. When no design system is installed, use plain styled elements with a positioned list dropdown.
36
+ >
37
+ > ❌ **NEVER** use unstyled HTML elements when a design system is installed.
38
+ >
39
+ > The dropdown MUST include click-outside-to-close behavior via an instance reference on the container plus a `mousedown` document listener.
40
+
41
+ **Module Setup:** The component needs local state (for menu open/closed and toast visibility), an instance reference (for click-outside detection), a lifecycle effect (for registering/cleaning up the outside-click listener), the project's base component interface, the installed design system's button component, and companion styles.
42
+
43
+ **Main Component Logic** — steps in order:
44
+
45
+ 1. Receive inputs: `getPConnect`, `availableActions` (default `[]`), `availableProcesses` (default `[]`), `caseTypeID` (default `''`), and `caseTypeName` (default `''`); call `getPConnect()` once into `thePConn`. Declare local state `open` (boolean, default `false`) and an instance reference for the menu container element.
46
+ 2. **Click-outside-to-close (mandatory):** in a lifecycle effect keyed on `open`, register a `mousedown` document listener while `open` is true that closes the menu when the click target falls outside the container reference; clean up the listener on unmount or when `open` changes.
47
+ 3. Define `handleActionClick(action)`: call `thePConn.getActionsApi().openLocalAction(action.ID, { ...action, containerName: 'modal', type: 'express' })`, then close the menu.
48
+ 4. Define `handleProcessClick(process)`: call `thePConn.getActionsApi().openProcessAction(process.ID, { ...process })` as a promise; on rejection show a toast with `"${process.name} Submit failed!"`; then close the menu.
49
+ 5. Compute `hasItems = availableActions.length > 0 || availableProcesses.length > 0`; render nothing when there are no items.
50
+ 6. Render a `psdk-actions-menu` container (attached to the instance reference) containing: the installed design system's button (ghost/text variant) labeled "Actions…", with `aria-haspopup="true"`, `aria-expanded` bound to `open`, and an `onClick` that toggles `open`; and, when `open` is true, a `psdk-actions-menu-dropdown` list (`role="menu"`) listing each `availableActions` entry as a `psdk-actions-menu-item` item (`role="menuitem"`, keyed by `action.ID`, showing the localized `action.name`, wired to `handleActionClick` on click and Enter keydown, with `tabIndex={0}`), followed by a `psdk-actions-menu-divider` separator when both action groups are non-empty, followed by each `availableProcesses` entry rendered the same way but wired to `handleProcessClick`.
51
+
52
+ ### Required companion styles (`CaseViewActionsMenu.css`)
53
+
54
+ Create this file alongside the component with the following rules: `.psdk-actions-menu` is `position: relative; display: inline-block` (no trigger-button CSS needed since the DS button handles its own styling); `.psdk-actions-menu-dropdown` is absolutely positioned below the trigger (`top: 100%; left: 0`), with `z-index: 1000`, `min-width: 160px`, white background, `4px` border radius, a two-layer drop shadow, `0.25rem 0` padding, no margin, and no list bullets; `.psdk-actions-menu-item` has `0.5rem 1rem` padding, `0.875rem` font size, dark text color, and a pointer cursor, with a light-gray hover background and a visible focus outline (`2px solid`, `-2px` offset) on `:focus-visible`; `.psdk-actions-menu-divider` is a thin top border with `0.25rem 0` margin.
55
+
56
+ ## Behavioral Contract
57
+
58
+ ### Button Label
59
+
60
+ - Localized via `PCore.getLocaleUtils().getLocaleValue('Actions...', 'CaseView')`.
61
+ - Rendered as an outlined/secondary button with a dropdown indicator icon.
62
+
63
+ ### Menu Items
64
+
65
+ The menu combines:
66
+
67
+ 1. **Local actions** — each item triggers `getPConnect().getActionsApi().openLocalAction(action.ID, { ...action, containerName: 'modal', type: 'express' })`.
68
+ 2. **Process actions** — each item triggers `getPConnect().getActionsApi().openProcessAction(process.ID, { ...process })`.
69
+
70
+ If both groups exist, render a divider between them.
71
+
72
+ ### Localized Action Labels
73
+
74
+ For localized case type context, build a `localeKey` string as `${caseTypeID}!CASE!${caseTypeName}`.toUpperCase().
75
+
76
+ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, '', localeKey)`.
77
+
78
+ ### Process Action Error Handling
79
+
80
+ 1. On process action click, invoke the API as a promise.
81
+ 2. On rejection: show a toast notification with `"${process.name} Submit failed!"`.
82
+ 3. Toast auto-hides after 3000ms.
83
+ 4. Toast should include a close/dismiss button.
84
+
85
+ ### Menu State
86
+
87
+ - `open` boolean local state controls menu visibility.
88
+ - An instance reference wraps the entire menu container.
89
+ - On `open === true`, add a `mousedown` document listener to detect clicks outside the container reference and close.
90
+ - Remove the listener on cleanup or when `open` becomes false.
91
+ - **DO NOT** use an anchor-element pattern unless the design system provides a dedicated menu component. For CSS-only, use the `open` boolean + absolute positioning.
92
+
93
+ ## Visual Specifications
94
+
95
+ ### Button
96
+
97
+ | Property | Value |
98
+ | -------- | ------------------------------- |
99
+ | Label | Localized `"Actions..."` |
100
+ | Variant | Outlined or secondary |
101
+ | Icon | Dropdown chevron or expand_more |
102
+
103
+ ### Menu
104
+
105
+ | Property | Value |
106
+ | ----------- | --------------------------------------- |
107
+ | Position | Anchored below the button |
108
+ | Divider | Between local and process action groups |
109
+ | Item height | Standard menu item height |
110
+
111
+ **CSS-only implementation notes:**
112
+
113
+ - Button: `padding: 6px 12px; border: 1px solid var(--app-primary-color); border-radius: 4px; cursor: pointer`.
114
+ - 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`.
115
+ - Menu item: `padding: 8px 16px; cursor: pointer`. Hover: `background: var(--hover-bg)`.
116
+ - Divider: `border-top: 1px solid var(--divider-color); margin: 4px 0`.
117
+
118
+ ### Toast Notification
119
+
120
+ | Property | Value |
121
+ | --------- | ----------------------------- |
122
+ | Position | Bottom-center or bottom-right |
123
+ | Auto-hide | 3000ms |
124
+ | Severity | Error (red) |
125
+ | Dismiss | Close button |
126
+
127
+ ## Edge Cases & Special Logic
128
+
129
+ - If both `availableActions` and `availableProcesses` are empty, render nothing (return null).
130
+ - `caseTypeName.toUpperCase()` — guard against `undefined`/`null` values.
131
+ - Process action errors may include HTML — sanitize before displaying in the toast message.
132
+ - Menu should close on any item click (both local and process).
133
+
134
+ ## Dependencies
135
+
136
+ - `PCore.getLocaleUtils().getLocaleValue()` — label localization
137
+ - `getPConnect().getActionsApi()` — local action and process action invocation
138
+ - The project's base component interface
139
+ - The installed design system's button, menu, and toast components (check `package.json`)
140
+
141
+ ## Design System Mapping
142
+
143
+ **UI control type:** Dropdown action menu with button trigger and toast error notification.
144
+
145
+ When implementing in a specific design system, map the following:
146
+
147
+ - **Trigger button:** Use the design system's text or ghost-variant button. The button label is the localized "Actions..." string. It must support `aria-haspopup` and `aria-expanded` attributes.
148
+ - **Menu/Dropdown:** Use the design system's menu or dropdown primitive if available. If none exists, use a positioned list with CSS and manual open/close logic. Items must support click handlers and keyboard activation (Enter key).
149
+ - **Divider:** Use the design system's divider or separator between the local actions group and the process actions group.
150
+ - **Toast notification:** Use the design system's snackbar or toast component to surface process action errors. Must auto-hide after 3000ms and include a dismiss/close button.
151
+ - **Click-outside-to-close:** If the design system's menu handles this natively, rely on that. Otherwise implement manually with an instance reference and a document `mousedown` listener.
152
+
153
+ Key constraints regardless of design system:
154
+
155
+ - Local vs process action distinction must be preserved — they call different APIs
156
+ - Localized labels via `localeKey = ${caseTypeID}!CASE!${caseTypeName}`.toUpperCase()
157
+ - Process action errors must be surfaced via a dismissible toast
@@ -0,0 +1,149 @@
1
+ # Skill: Confirmation
2
+
3
+ Case confirmation template. Renders the post-submission confirmation view with a Done button, optionally showing ToDo assignments that remain after the case is submitted.
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ > ⚠️ **CRITICAL — DO NOT SIMPLIFY THIS COMPONENT**
10
+ >
11
+ > The close event MUST use `PCore.getContainerUtils()` to get the proper container info for the pub/sub payload. Without this, the confirmation view won't close properly and the case won't transition correctly.
12
+ >
13
+ > **Mandatory implementation details:**
14
+ >
15
+ > 1. `PCore.getContainerUtils().getActiveContainerItemName(getPConnect().getTarget())` — gets active container item
16
+ > 2. `PCore.getContainerUtils().getContainerItemData(target, activeItemID)` — gets root info for close event
17
+ > 3. `PCore.getPubSubUtils().publish(CONSTS.PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, rootInfo)` — proper close event with payload
18
+ > 4. Look up the `'Details'` component from the project's component registry — for rendering case details in confirmation
19
+ > 5. `getToDoAssignments(getPConnect())` — from `PCore.getSDKUtils().getSDKContainerUtils()`
20
+ > 6. Check `showDetails` before rendering Details component
21
+ >
22
+ > **Minimum Implementation Checklist:**
23
+ >
24
+ > - [ ] `PCore.getContainerUtils()` used for close event (NOT a simple toggle of local state)
25
+ > - [ ] `rootInfo` passed to `CLOSE_CONFIRM_VIEW` pub/sub event
26
+ > - [ ] Details component rendered when `showDetails` is true
27
+ > - [ ] ToDo component rendered with `getToDoAssignments` when `showTasks` is true
28
+ > - [ ] Two render states: confirmation view (with Done button) and post-close (just ToDo if any)
29
+
30
+ ---
31
+
32
+ ## Component Purpose
33
+
34
+ Displayed after a case or assignment is submitted. Shows the confirmation view (with `Details` region) and a Done button. If outstanding ToDo assignments remain after the user clicks Done, they are displayed. When the user truly finishes, publishes `CLOSE_CONFIRM_VIEW` to close the container.
35
+
36
+ ## Pega Metadata
37
+
38
+ - **Registration key:** `Confirmation` (in the project's component map)
39
+ - **Category:** Page template — confirmation
40
+ - **Extends:** the project's base component interface
41
+
42
+ ## Inputs
43
+
44
+ | Input | Type | Required | Description |
45
+ | ------------- | ------------------ | -------- | ----------------------------------------------------------------------------- |
46
+ | `children` | child element list | Yes | Region children: `[0]` = ToDo region, `[1]` = Details region (when available) |
47
+ | `getPConnect` | function | Yes | PConnect getter |
48
+ | `datasource` | object | No | Shape `{ source: any }` — what's-next data source |
49
+ | `label` | string | No | Confirmation heading text |
50
+ | `showLabel` | boolean | No | Whether to render the heading label |
51
+ | `showTasks` | boolean | No | Whether to render outstanding ToDo assignments |
52
+
53
+ ## Implementation Structure
54
+
55
+ **Module Setup:** This component needs the project's base component interface for typing, the project's component registry for retrieving `ToDo` and `Details` dynamically, and a local state primitive for tracking the confirm-view toggle. Define a companion styles block with padding and margin (1 spacing unit on all sides) applied to the card wrapper.
56
+
57
+ **Main Component Logic** — steps in order:
58
+
59
+ 1. Retrieve `ToDo` from the project's component registry using the key `'Todo'` (note the capitalization — not `'ToDo'`), and `Details` similarly using `'Details'`.
60
+ 2. Set `CONSTS = PCore.getConstants()`; declare local state `showConfirmView` initialized to `true`; receive inputs `showTasks`, `getPConnect`, `showLabel`, and `label`.
61
+ 3. Get the active container and root info: `activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(getPConnect().getTarget() || '')`, then `rootInfo = PCore.getContainerUtils().getContainerItemData(getPConnect().getTarget(), activeContainerItemID)`.
62
+ 4. Get pending ToDo assignments: destructure `getToDoAssignments` from `PCore.getSDKUtils().getSDKContainerUtils()`, then call `toDoList = getToDoAssignments(getPConnect())`.
63
+ 5. Define the Done-button handler `onConfirmViewClose`: set `showConfirmView` to `false`, then publish `PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, rootInfo)`.
64
+ 6. Compute `showDetails` by checking whether the first child's nested PConnect has children: `children?.[0]` → get its `getPConnect()` → call `getChildren()` → check `length > 0`.
65
+ 7. **Render — confirm view:** if `showConfirmView` is true, render a card container (with companion styles) containing: a heading with the label (when `showLabel` is true); the Details component (with `showLabel` set to false) when `showDetails` is true; the ToDo component (with `datasource: { source: toDoList }`, `getPConnect`, `type: CONSTS.TODO`, `headerText: "Open Tasks"`, `isConfirm: true`) when `showTasks` is true and `toDoList` is non-empty; and a primary Done button aligned to the end, wired to `onConfirmViewClose`.
66
+ 8. **Render — post-close:** otherwise, if `toDoList` is non-empty, render a card container containing just the ToDo component (same inputs as above but `headerText: "Tasks"`); if `toDoList` is empty, render nothing.
67
+
68
+ ## Behavioral Contract
69
+
70
+ ### State
71
+
72
+ - `showConfirmView`: boolean local state, initially `true`.
73
+ - `toDoAssignments`: array from `getToDoAssignments(getPConnect())` — pending assignments.
74
+
75
+ ### Done Button Click
76
+
77
+ 1. Set `showConfirmView` local state to `false`.
78
+ 2. Publish `PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, rootInfo)`.
79
+ 3. The `rootInfo` payload is derived from `PCore.getContainerUtils().getContainerItemData(target, activeContainerItemID)` — this is mandatory for correct container closure.
80
+
81
+ ### Show Details
82
+
83
+ - `showDetails`: true when the first child region's PConnect has children (i.e., there is content to display in the Details area).
84
+
85
+ ### Render: Confirm View (showConfirmView is true)
86
+
87
+ 1. Confirmation heading label (when `showLabel` is true).
88
+ 2. If `showDetails`: render the Details component retrieved from the project's component registry with `showLabel` set to false, passing the current component's inputs.
89
+ 3. If `showTasks` and `toDoList` is non-empty: render the ToDo component with `datasource: { source: toDoList }`, `type: CONSTS.TODO`, `headerText: "Open Tasks"`, `isConfirm: true`.
90
+ 4. Done button (primary action) — triggers `onConfirmViewClose`.
91
+
92
+ ### Render: Post-Close View (showConfirmView is false)
93
+
94
+ - If `toDoList` is non-empty: render a card with the ToDo component (`headerText: "Tasks"`, same core inputs).
95
+ - If `toDoList` is empty: render nothing.
96
+
97
+ ## Visual Specifications
98
+
99
+ ### Confirm View
100
+
101
+ | Element | Description |
102
+ | ------------------- | --------------------------------------------- |
103
+ | Confirmation header | Heading text (label) when showLabel is true |
104
+ | Details section | Optional — rendered below confirmation header |
105
+ | Done button | Primary button, aligned to end of the form |
106
+
107
+ **CSS-only implementation notes:**
108
+
109
+ - Card wrapper: padding and margin of 1 spacing unit on all sides.
110
+ - Done button container: `display: flex; justify-content: flex-end`.
111
+ - Confirmation heading: rendered as a level-2 heading element.
112
+
113
+ ### ToDo View
114
+
115
+ - Full-width ToDo region rendered in place of confirmation inside a card wrapper.
116
+ - No additional wrapping — render the region directly.
117
+
118
+ ## Edge Cases & Special Logic
119
+
120
+ - `getToDoAssignments(getPConnect())` — returns empty array if no assignments remain; when empty in post-close state, renders nothing.
121
+ - The first child region may not have Details content — always check `showDetails` before rendering the Details component.
122
+ - `CLOSE_CONFIRM_VIEW` is a PubSub constant — ensure it matches the consuming container's subscription key.
123
+ - The confirmation view should not be navigable backward — Done is the only exit.
124
+ - The ToDo registry key is `'Todo'` (capital T, lowercase odo) — this is the ConstellationJS Engine convention.
125
+
126
+ ## Dependencies
127
+
128
+ - The project's component registry — for retrieving `'Todo'` and `'Details'` components dynamically at runtime
129
+ - `PCore.getSDKUtils().getSDKContainerUtils().getToDoAssignments` — for retrieving pending assignments
130
+ - `PCore.getPubSubUtils().publish()` — for the CLOSE_CONFIRM_VIEW event
131
+ - `PCore.getContainerUtils()` — for container item management (active item name + container item data)
132
+ - `PCore.getConstants()` — for PubSub event keys and TODO type constant
133
+
134
+ ## Design System Mapping
135
+
136
+ **UI control type:** Post-submission confirmation page with done action and optional todo view.
137
+
138
+ When implementing in a specific design system, map the following:
139
+
140
+ - **Card wrapper:** Use the design system's card or surface container component with standard padding/margin.
141
+ - **Done button:** Use the design system's primary action button component.
142
+ - **Heading:** Use a level-2 heading or the design system's title typography component.
143
+ - **Layout:** A vertical flex column layout containing heading, optional details, optional todo list, and the done button at the end.
144
+
145
+ Implementation constraints regardless of design system:
146
+
147
+ - Done button must trigger `onConfirmViewClose` which both toggles local state and publishes the `CLOSE_CONFIRM_VIEW` event with `rootInfo`
148
+ - `showDetails` check must guard Details component rendering
149
+ - ToDo component receives `isConfirm: true` to signal it is rendered within a confirmation context