@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,85 @@
1
+ # Skill: DetailsThreeColumn
2
+
3
+ Read-only three-column details template. Renders child fields in DISPLAY_ONLY mode in a 3-column grid inside a FieldGroup, with optional highlighted data.
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
+ Identical to `Details` and `DetailsTwoColumn` in all behavior except children are distributed into a **three-column grid** (one-third width per child). Used in wide details regions where the design calls for three equal columns of fields.
12
+
13
+ > The implementation is nearly identical to `Details`. See `Details.md` for full pattern descriptions. Only the column width differs.
14
+
15
+ ## Pega Metadata
16
+
17
+ - **Registration key:** `DetailsThreeColumn` (in the project's component map)
18
+ - **Category:** Display template
19
+ - **Extends:** the project's base component interface
20
+
21
+ ## Inputs
22
+
23
+ | Name | Type | Required | Description |
24
+ | --------------------- | ---------- | -------- | -------------------------------------------------------------------- |
25
+ | `label` | `string` | Yes | Section heading for the FieldGroup wrapper |
26
+ | `showLabel` | `boolean` | No | Whether to show the section label. Default `true` |
27
+ | `showHighlightedData` | `boolean` | No | Whether to render highlighted fields above children. Default `false` |
28
+ | `getPConnect` | `function` | Yes | PConnect getter |
29
+
30
+ ## Implementation Structure
31
+
32
+ **Module Setup:** Obtain the FieldGroup component from the project's component registry. Access the project's bridge component for rendering child configuration objects as live components.
33
+
34
+ **Main Component Logic** — steps in order:
35
+
36
+ 1. Receive inputs: `label`, `showLabel` (default `true`), `showHighlightedData` (default `false`), and `getPConnect`.
37
+ 2. Merge inherited display settings: `propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() }`.
38
+ 3. Set display mode on the PConnect instance: `getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY')` and `getPConnect().setInheritedProp('readOnly', true)`.
39
+ 4. Re-create children from `getPConnect().getChildren()` — map each config object into a live component via the bridge component, passing a unique key per child.
40
+ 5. If `showHighlightedData` is true, retrieve `highlightedData` from `getPConnect().getRawMetadata().config`, set each field's `displayMode` to `'STACKED_LARGE_VAL'`, mark any field whose value is `'@P .pyStatusWork'` with `type: 'TextInput'` and `displayAsStatus: true`, then call `getPConnect().createComponent(field, '', 0, {})` for each.
41
+ 6. Render: FieldGroup wrapper (showing `propsToUse.label` if `propsToUse.showLabel` is true), optional highlighted data row (3-column grid with bottom padding), then all children in a 3-column grid.
42
+
43
+ ## Behavioral Contract
44
+
45
+ All steps identical to `Details`, except:
46
+
47
+ - **Regular children grid:** Each child renders at one-third width (three per row).
48
+ - **Highlighted data grid:** Each highlighted field also renders at one-third width.
49
+ - All other behaviors (inherited settings merge, `setInheritedProp('displayMode', 'DISPLAY_ONLY')`, `setInheritedProp('readOnly', true)`, FieldGroup wrapper, pyStatusWork handling) are identical to `Details`.
50
+
51
+ ## Visual Specifications
52
+
53
+ ### Column Structure
54
+
55
+ | | Details | DetailsTwoColumn | DetailsThreeColumn |
56
+ | ----------------------- | ---------- | ---------------- | ------------------ |
57
+ | Column width per child | full-width | 1/2 | **1/3** |
58
+ | Columns per row | 1 | 2 | **3** |
59
+ | Highlighted data column | full-width | 1/2 | **1/3** |
60
+
61
+ **CSS-only implementation notes:**
62
+
63
+ - Children grid: `display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px`.
64
+ - Highlighted data row: `display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; padding-bottom: 1rem`.
65
+ - Wrap in FieldGroup (see `FieldGroup.md` DSE skill).
66
+
67
+ ## Edge Cases & Special Logic
68
+
69
+ All edge cases identical to `Details`. See `Details.md`.
70
+
71
+ ## Dependencies
72
+
73
+ - The project's component registry — to resolve the `FieldGroup` component at runtime
74
+ - A bridge component for rendering PConnect child configuration objects as live components
75
+
76
+ ## Design System Mapping
77
+
78
+ **UI control type:** Read-only labeled section with fields in a three-column grid.
79
+
80
+ When implementing in a specific design system, map the following:
81
+
82
+ - 3-column layout — each field takes one-third of the available width
83
+ - Grid container with spacing/gap between items
84
+ - FieldGroup wrapper component for the labeled section (see `FieldGroup.md` DSE skill)
85
+ - All other behaviors inherited from `Details` (DISPLAY_ONLY, readOnly, FieldGroup, highlighted data)
@@ -0,0 +1,77 @@
1
+ # Skill: DetailsTwoColumn
2
+
3
+ Read-only two-column details template. Renders child fields in DISPLAY_ONLY mode in a 2-column grid inside a FieldGroup, with optional highlighted data.
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
+ Identical to `Details` in all behavior except children are distributed into a **two-column grid** (half width per child) instead of single-column. Used in details regions where the design calls for side-by-side field pairs.
12
+
13
+ > The implementation is nearly identical to `Details`. See `Details.md` for full pattern descriptions. Only the column width differs.
14
+
15
+ ## Pega Metadata
16
+
17
+ - **Registration key:** `DetailsTwoColumn` (in the project's component map)
18
+ - **Category:** Display template
19
+ - **Extends:** the project's base component interface
20
+
21
+ ## Inputs
22
+
23
+ | Input | Type | Required | Description |
24
+ | --------------------- | ---------- | -------- | -------------------------------------------------------------------- |
25
+ | `label` | `string` | Yes | Section heading for the FieldGroup wrapper |
26
+ | `showLabel` | `boolean` | No | Whether to show the section label. Default `true` |
27
+ | `showHighlightedData` | `boolean` | No | Whether to render highlighted fields above children. Default `false` |
28
+ | `getPConnect` | `function` | Yes | PConnect getter |
29
+
30
+ ## Implementation Structure
31
+
32
+ Identical to the `Details` implementation structure except grid items use half width (two columns) instead of full width. Both the highlighted-data grid items and the regular-children grid items render at half width (two per row). See `Details.md`'s Implementation Structure for the full pattern description — the ONLY change is full-width → half-width per child.
33
+
34
+ ## Behavioral Contract
35
+
36
+ All steps identical to `Details`, except:
37
+
38
+ - **Regular children grid:** Each child renders at half width (two per row, side by side).
39
+ - **Highlighted data grid:** Each highlighted field also renders at half width.
40
+ - All other behaviors (inherited inputs merge, `setInheritedProp('displayMode', 'DISPLAY_ONLY')`, `setInheritedProp('readOnly', true)`, FieldGroup wrapper, pyStatusWork handling) are identical to `Details`.
41
+
42
+ ## Visual Specifications
43
+
44
+ ### Column Structure
45
+
46
+ | | Details | DetailsTwoColumn |
47
+ | ----------------------- | ---------- | ---------------- |
48
+ | Column width per child | Full width | **Half width** |
49
+ | Columns per row | 1 | **2** |
50
+ | Highlighted data column | Full width | **Half width** |
51
+
52
+ **CSS-only implementation notes:**
53
+
54
+ - Children grid: two equal columns with ~8px gap between items.
55
+ - Highlighted data row: two equal columns with ~8px gap and ~1rem bottom padding.
56
+ - Wrap in FieldGroup (see `FieldGroup.md` DSE skill).
57
+
58
+ ## Edge Cases & Special Logic
59
+
60
+ All edge cases identical to `Details`. See `Details.md`.
61
+
62
+ ## Dependencies
63
+
64
+ - The project's PConnect bridge utility (for rendering child PConnect nodes)
65
+ - The project's component registry (to retrieve `FieldGroup`)
66
+
67
+ ## Design System Mapping
68
+
69
+ **UI control type:** Read-only labeled section with fields in a two-column grid.
70
+
71
+ When implementing in a specific design system, map the following:
72
+
73
+ - The outer wrapper is a labeled group container (same as Details — fieldset/legend, card, or boxed section). Use whatever grouped-section primitive your design system provides.
74
+ - Each child occupies half the container width (two columns per row). Use your design system's grid or multi-column layout primitive with two equal columns and ~8px spacing between items.
75
+ - Highlighted data renders in the same two-column layout with additional bottom padding (~1rem) separating it from regular children.
76
+ - 2-column layout — each field takes half the available width.
77
+ - All other behaviors inherited from `Details` (DISPLAY_ONLY, readOnly, FieldGroup, highlighted data).
@@ -0,0 +1,103 @@
1
+ # Skill: DynamicTabs
2
+
3
+ Data-driven tab template. Renders tabs dynamically from a `referenceList` data source — one tab per row in the list, with tab labels derived from a configurable property.
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
+ Unlike `SubTabs` or `DetailsSubTabs` where tabs are defined statically in metadata, `DynamicTabs` generates tabs at runtime from a reference list. The number and labels of tabs depend on the data in the reference list. Each tab's content is built via `buildView`.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Registration key:** `DynamicTabs` (in the project's component map)
16
+ - **Category:** Navigation template — data-driven
17
+ - **Extends:** the project's base component interface
18
+
19
+ ## Inputs
20
+
21
+ | Input | Type | Required | Description |
22
+ | --------------- | ---------- | -------- | --------------------------------------------------------- |
23
+ | `referenceList` | `string` | Yes | Property path to the reference list (e.g. `'.pxResults'`) |
24
+ | `getPConnect` | `function` | Yes | PConnect getter |
25
+
26
+ ## Implementation Structure
27
+
28
+ **Module Setup:** This component requires the `buildView` helper (from the project's field-group utilities) and the project's base component interface. Define a component input contract extending the base component interface with `showLabel: boolean`, `label: string`, and optional `referenceList?: any[]`.
29
+
30
+ **Main Component Logic** — steps in order:
31
+
32
+ 1. Receive inputs: `referenceList`, `showLabel`, `label`, and `getPConnect`; call `getPConnect()` once into `pConnect`; merge inherited inputs into `inputsToUse = { label, showLabel, ...pConnect.getInheritedProps() }`.
33
+ 2. **Resolve tab label property:** read `tablabel` from `pConnect.getComponentConfig()`, then resolve it to a raw property path via `PCore.getAnnotationUtils().getPropertyName(tablabel)` into `tablabelProp`.
34
+ 3. **Get reference list data:** `referenceListData = pConnect.getValue(referenceList + '.pxResults', '')`.
35
+ 4. **Memoized tab views** (recomputed only when `referenceListData` changes): force display-only mode via `pConnect.setInheritedProp('displayMode', 'DISPLAY_ONLY')` and `pConnect.setInheritedProp('readOnly', true)`; then, if `referenceListData` is present, map each row to a keyed fragment (keyed by `item[tablabelProp]`) wrapping `buildView(pConnect, index, '')`, and normalize the result to an array.
36
+ 5. Declare local state `panelShown` (number, default `0`) with a click handler that parses the clicked tab's id as an integer and updates the state.
37
+ 6. **Build tab items:** map `referenceListData` to `{ name, id }` objects, where `name` is `item[tablabelProp]` or, if missing, the localized fallback `PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic')`, and `id` is the row index; default to an empty array when there's no data.
38
+ 7. Render: an optional heading element (shown when `inputsToUse.label` is set); a tab context (value = `panelShown` as a string) wrapping a scrollable tab bar with auto scroll buttons (one tab item per `tabItems` entry, labeled `tab.name`, valued `tab.id`) and one tab panel per `tabItems` entry (keyed and valued by `tab.id`, `tabIndex` set to the numeric id) showing `memoisedTabViews?.[tab.id]` or a "No content exists" fallback.
39
+
40
+ ## Behavioral Contract
41
+
42
+ ### Tab Label Resolution
43
+
44
+ 1. Get component config: `tablabel = getPConnect().getComponentConfig().tablabel`.
45
+ 2. Get property name: `tablabelProp = PCore.getAnnotationUtils().getPropertyName(tablabel)`.
46
+ 3. For each row `i` in `referenceListData`:
47
+ - Tab label = `pConnect.getValue(referenceList + '[' + i + '].' + tablabelProp)`.
48
+
49
+ ### Reference List Data
50
+
51
+ `referenceListData` is obtained via `pConnect.getValue(referenceList + '.pxResults')` and returns an array of row objects.
52
+
53
+ ### Tab Views
54
+
55
+ For each row index `i`, the tab view is `buildView(pConnect, i, '')`. Memoized computation — recalculate only when `referenceListData` changes.
56
+
57
+ ### State
58
+
59
+ - `currentPanel`: index of active tab (number, default `0`) — managed as local state.
60
+ - `changePanel(index)`: updates the local state to the new index.
61
+
62
+ ### Render
63
+
64
+ - A tab context wrapper with value = `currentPanel` as a string.
65
+ - A scrollable tab bar — one tab item per row, labeled with the resolved tab label and valued with the row index as a string.
66
+ - One tab panel per row containing `tabView[i]`.
67
+
68
+ ## Visual Specifications
69
+
70
+ Identical tab bar appearance to `SubTabs`.
71
+
72
+ **CSS-only implementation notes:**
73
+
74
+ - Same tab bar and panel styles as `SubTabs.md`.
75
+ - Tab count is dynamic — do not hard-code tab widths.
76
+
77
+ ## Edge Cases & Special Logic
78
+
79
+ - `referenceListData` may be undefined on first render — default to empty array, render no tabs.
80
+ - `tablabel` may be a reference annotation like `@[FIELD/.pyLabel]` — `PCore.getAnnotationUtils().getPropertyName()` resolves it to the raw field path.
81
+ - `buildView` is wrapped in a memoized computation keyed on `referenceListData` — if the list changes, tab views must be regenerated.
82
+ - `changePanel` receives the raw index (number) but the tab context value is a string — always convert the index to a string.
83
+ - Empty reference list — show a "No items" empty state instead of an empty tab bar.
84
+
85
+ ## Dependencies
86
+
87
+ - `buildView` from the project's field-group utilities — generates the content view for each tab
88
+ - `PCore.getAnnotationUtils().getPropertyName()` — resolves annotation to property path
89
+ - `PCore.getLocaleUtils().getLocaleValue()` — provides localized fallback label
90
+ - A tab component from your chosen design system — for rendering the tab bar and panels
91
+
92
+ ## Design System Mapping
93
+
94
+ **UI control type:** Data-driven tab navigation — tab count and labels from a reference list.
95
+
96
+ When implementing in a specific design system, map the following:
97
+
98
+ - A tab context/container that tracks the active panel by string value
99
+ - A scrollable tab bar with auto scroll buttons, rendering one tab per data row
100
+ - A tab panel container that shows the content for the active tab
101
+ - `tablabelProp` resolution via `PCore.getAnnotationUtils().getPropertyName()` is required — do not hardcode the label field
102
+ - `buildView(pConnect, rowIndex, '')` generates the content for each tab — the empty string third arg means no specific child config lookup
103
+ - Tab count is entirely data-driven — handle 0, 1, and many tab cases
@@ -0,0 +1,130 @@
1
+ # Skill: FieldGroupTemplate
2
+
3
+ Repeating field group template. Renders a list of field group rows from a reference list, supporting add/delete row actions and a read-only display mode.
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 template manages a repeating list of field groups with add/delete actions. It MUST NOT be reduced to a simple delegation to `FieldGroup` or `FieldGroupList`. The following are MANDATORY:
12
+ >
13
+ > 1. `getReferenceList(pConn)` from the project's field-group utility helpers — resolves the reference list path
14
+ > 2. `buildView(pConn, index, lookForChildInConfig)` from the project's field-group utility helpers — builds each row's view
15
+ > 3. `pConn.setReferenceList(resolvedList)` — sets the reference list on PConnect
16
+ > 4. `pConn.getListActions().initDefaultPageInstructions(resolvedList)` — initializes list instructions
17
+ > 5. A synchronous layout effect for list initialization (must run before paint, not a standard lifecycle effect)
18
+ > 6. Add/delete record handlers using `pConn.getListActions().insert()` and `.deleteEntry()`
19
+ > 7. A memoized computation for `MemoisedChildren` built from referenceList iteration plus `buildView`
20
+ > 8. `allowActions` handling (allowAdd, allowDelete)
21
+ > 9. `isReadonlyMode` check switching between FieldGroupList (edit) and FieldGroup (read-only)
22
+ >
23
+ > **Minimum Implementation Checklist:**
24
+ >
25
+ > - [ ] `getReferenceList` and `buildView` sourced from the project's field-group utility helpers
26
+ > - [ ] `pConn.getListActions()` used for insert/delete
27
+ > - [ ] Synchronous layout effect for `initDefaultPageInstructions`
28
+ > - [ ] `addRecord` and `deleteFieldGroupItem` handlers
29
+ > - [ ] Edit mode renders a FieldGroupList with items, onAdd, and onDelete
30
+ > - [ ] Read-only mode renders FieldGroup instances with `buildView` children
31
+ > - [ ] `allowActions` / `allowTableEdit` inputs respected
32
+
33
+ ---
34
+
35
+ ## Component Purpose
36
+
37
+ Renders a repeating list of field group rows sourced from a PConnect reference list. In edit mode, rows can be added and deleted via list actions. In read-only mode (DISPLAY_ONLY), delegates to a read-only FieldGroup renderer. Each row is built via `buildView`.
38
+
39
+ ## Pega Metadata
40
+
41
+ - **Registration key:** `FieldGroupTemplate` (in the project's component map)
42
+ - **Category:** Form template — repeating
43
+
44
+ ## Inputs
45
+
46
+ | Input | Type | Required | Description |
47
+ | ---------------- | ---------- | -------- | ---------------------------------------------------------------- |
48
+ | `label` | `string` | Yes | Section heading |
49
+ | `showLabel` | `boolean` | No | Whether to show the heading. Default `true` |
50
+ | `fieldHeader` | `string` | No | Property ref for the dynamic row heading. E.g. `'.pyStatusWork'` |
51
+ | `allowTableEdit` | `boolean` | No | Whether to show add/delete row controls. Default `true` |
52
+ | `displayMode` | `string` | No | `'DISPLAY_ONLY'` triggers read-only rendering |
53
+ | `readOnly` | `boolean` | No | Alternative read-only flag |
54
+ | `getPConnect` | `function` | Yes | PConnect getter |
55
+
56
+ Additional inputs accepted: `referenceList` (array, defaults to empty), `contextClass` (string, required), `renderMode` (string, optional), `heading` (string, defaults to empty), `lookForChildInConfig` (boolean, optional), `allowActions` (object, optional).
57
+
58
+ ## Main Component Logic
59
+
60
+ Steps in order:
61
+
62
+ 1. Retrieve FieldGroup and FieldGroupList from the project's component registry.
63
+ 2. Receive inputs: `referenceList` (default empty array), `renderMode`, `contextClass`, `getPConnect`, `lookForChildInConfig`, `heading` (default empty string), `displayMode`, `fieldHeader`, `allowActions`, and `allowTableEdit` (alias `allowAddEdit`).
64
+ 3. Call `getPConnect()` into `pConn`. Resolve the reference list path via `getReferenceList(pConn)` into `resolvedList` and register it via `pConn.setReferenceList(resolvedList)`. Build `pageReference` by concatenating `pConn.getPageReference()` with `resolvedList`. Determine `isReadonlyMode` when `renderMode === 'ReadOnly'` or `displayMode === 'DISPLAY_ONLY'`. Default `HEADING` to `heading` or `'Row'`.
65
+ 4. **Resolve add/delete permissions:** check whether `allowActions` has any keys (`hasAllowActions`). Destructure `allowAdd`/`allowDelete` from it as `actionAdd`/`actionDelete`. Compute final `allowAdd`/`allowDelete` flags — when `hasAllowActions` is true, use `actionAdd ?? true` / `actionDelete ?? true`; otherwise fall back to `allowAddEdit ?? true` for both.
66
+ 5. **Init page instructions on mount** (edit mode only): inside a synchronous layout effect (must run before paint) keyed on `referenceList` length, when not in read-only mode, call `pConn.getListActions().initDefaultPageInstructions(resolvedList)`. This MUST be a synchronous layout effect, not a standard lifecycle effect, to avoid visual flicker during list initialization.
67
+ 6. Define `getDynamicHeaderProp(item, index)`: if `fieldHeader === 'propertyRef'` and `heading` resolves a value on `item` (via `item[heading.substring(1)]`), return that value; otherwise return a default label like "Row N".
68
+ 7. Define `addRecord`: if `PCore.getPCoreVersion()` includes `'8.7'`, call `pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference)`; otherwise call `pConn.getListActions().insert({}, referenceList.length)`. Define `deleteRecord(index)` similarly, calling `pConn.getListActions().deleteEntry(index, pageReference)` on 8.7 or `pConn.getListActions().deleteEntry(index)` otherwise.
69
+ 8. **Edit mode:** if not read-only, auto-add a first row when `referenceList` is empty and `allowAdd` is true. Produce a memoized computation (keyed on `referenceList` length) by mapping `referenceList` to objects of shape `{ id: index, name: <dynamic or default heading>, children: buildView(pConn, index, lookForChildInConfig) }`. Render FieldGroupList with `items`, `onAdd` (when `allowAdd` is true), and `onDelete` (when `allowDelete` is true).
70
+ 9. **Read-only mode:** force `pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY')`. Produce a memoized computation (run once) by mapping `referenceList` to one FieldGroup per row (keyed by `item[heading]` or a fallback row key, named via the dynamic/default heading) containing `buildView(pConn, index, lookForChildInConfig)`. Render the list inside a wrapping container.
71
+
72
+ ## Behavioral Contract
73
+
74
+ ### Read-Only Mode
75
+
76
+ If `displayMode === 'DISPLAY_ONLY'` or `readOnly === true`:
77
+
78
+ 1. Call `pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY')`.
79
+ 2. Render a FieldGroup (from the component registry) per row — the design system component that shows data in a read-only layout.
80
+
81
+ ### Edit Mode
82
+
83
+ 1. **Get reference list:** `resolvedList = getReferenceList(pConn)` — extracts the reference list path string.
84
+ 2. **Set reference list:** `pConn.setReferenceList(resolvedList)` — ensures the pConn has the resolved list registered.
85
+ 3. **Build row views:** For each row index `i`, call `buildView(pConn, i, lookForChildInConfig)` to get the PConnect view for that row.
86
+ 4. **Render FieldGroupList** — the design system component for edit mode, receiving:
87
+ - Memoized items array for row content
88
+ - `onAdd`: calls `pConn.getListActions().insert(...)` with version-appropriate arguments
89
+ - `onDelete(index)`: calls `pConn.getListActions().deleteEntry(...)` with version-appropriate arguments
90
+ - Row headings: dynamic (from `fieldHeader` property ref) or default ("Row N")
91
+
92
+ ### `allowActions` Override
93
+
94
+ If the field group is inside a read-only context (parent has set `readOnly` or `DISPLAY_ONLY`), `allowActions` is forced to `false` regardless of `allowTableEdit`.
95
+
96
+ ## Visual Specifications
97
+
98
+ ### Edit Mode
99
+
100
+ - Section heading (`label`) at top (if `showLabel`).
101
+ - List of row sections, each with:
102
+ - Dynamic heading from `fieldHeader` property value (e.g. `"Active"`, `"Pending"`).
103
+ - Row fields in a grid layout.
104
+ - Delete button (trash icon) per row.
105
+ - Add row button at the bottom (e.g. "+ Add row").
106
+
107
+ ### Read-Only Mode
108
+
109
+ - Section heading at top (if `showLabel`).
110
+ - Flat list of rows — no add/delete controls.
111
+
112
+ Use companion styles to achieve row cards with a border, border-radius, padding, and bottom margin. The add button appears as a text-style button below the last row. The delete button appears as an icon button at the top-right of each row section.
113
+
114
+ ## Edge Cases & Special Logic
115
+
116
+ - `getReferenceList(pConn)` returns `undefined` if the reference list is not yet loaded — guard and render empty list.
117
+ - `buildView(pConn, index, true)` — third argument `lookForChildInConfig=true` — required for embedded field groups.
118
+ - Row index must be passed to `deleteEntry` as a number (not string).
119
+ - `fieldHeader` is a property ref like `'.pyStatusWork'` — evaluate it per-row via `item[heading.substring(1)]` to get the display label for each row heading.
120
+ - FieldGroupList and FieldGroup are design system extension components registered in the project's component registry.
121
+
122
+ ## Dependencies
123
+
124
+ - `getReferenceList`, `buildView` from the project's field-group utility helpers
125
+ - The project's component registry to retrieve FieldGroupList (edit mode) and FieldGroup (read-only mode)
126
+ - The project's base component interface for rendering child PConnect views inside `buildView`
127
+
128
+ ## Design System Mapping
129
+
130
+ Use repeating row cards for the edit mode layout. Each row should be a bordered card containing the fields generated by `buildView`. Provide an add button (text style) below the last row and a delete button (icon style) at the top-right of each row card. The design system's grouping or card primitive is the natural fit for each row. In read-only mode, use a simpler flat list of labelled groups without action controls. Hide add/delete controls when `allowActions` is false. The row heading is dynamic — evaluate the `fieldHeader` property ref per row.
@@ -0,0 +1,200 @@
1
+ # Skill: HierarchicalForm
2
+
3
+ Multi-step tabbed form template. Renders form sections as horizontal tabs with per-tab validation error badges and persisted active tab navigation.
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a multi-step form where each section is a tab. Tabs display error badges when their content has validation errors. The active tab index is persisted to navigation state so it survives renders. Optional instruction HTML is displayed above the tab bar.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Registration key:** `HierarchicalForm` (in the project's component map)
16
+ - **Category:** Form template
17
+ - **Extends:** the project's base component interface
18
+
19
+ ## Inputs
20
+
21
+ | Input | Type | Required | Description |
22
+ | -------------------- | ------------------ | -------- | ------------------------------------------------------------------------------------------------- |
23
+ | `children` | child element list | Yes | One child per tab section |
24
+ | `instructions` | string | No | HTML instruction text shown above the tab bar |
25
+ | `getPConnect` | function | Yes | PConnect getter |
26
+ | `tabsVisibility` | object | No | Record mapping tab index to boolean visibility |
27
+ | `template` | string | No | Template identifier passed to deferred tab loading |
28
+ | `lastUpdateCaseTime` | string or number | No | Timestamp of last case update (falls back to `getPConnect().getValue('caseInfo.lastUpdateTime')`) |
29
+
30
+ ## Implementation Structure
31
+
32
+ **Module Setup:** This component needs the project's base component interface for typing. The tab logic is encapsulated in a separate composable/helper module that handles active-tab persistence, tab-click handling, per-tab error counting, instructions extraction, and tab processing. Additionally, tab utility helpers (`getActiveTabId`, `getFirstVisibleTabId`, `tabClick`) and an instructions helper (`getInstructions`) are needed from the project's shared template utilities.
33
+
34
+ **Main Component Logic** — steps in order:
35
+
36
+ 1. Invoke the extracted tab-logic composable, passing the component's inputs. It returns `currentTabId`, `handleTabClick`, `processedTabs`, and `instructions`.
37
+ 2. Guard: if there is no `currentTabId` (no visible tabs), render nothing.
38
+ 3. Render a flex column containing (if present) the instructions HTML rendered as raw HTML content, followed by a tab context wrapping a scrollable tab bar and tab panels.
39
+ 4. Build each tab bar entry from `processedTabs`: the label is `tab.name || tab.label`; if `tab.errors` is truthy, wrap the label in a tooltip reading "`{label} has errors`" and append a badge showing the error count; otherwise render the plain label.
40
+ 5. Render one tab panel per processed tab (keeping content mounted), showing `tab.content` or a "No content exists" fallback.
41
+
42
+ > **Key implementation note:** All tab logic (active tab persistence, error counting, tab filtering, PubSub subscriptions) is encapsulated in the composable. It uses `PCore.getNavigationUtils()` for tab persistence, `PCore.getContextTreeManager().onViewMutate()` for field-level error tracking, and `PCore.getMessagingServiceManager()` for case refresh subscriptions.
43
+
44
+ ## Behavioral Contract
45
+
46
+ ### Tab Logic Composable
47
+
48
+ The extracted tab-logic composable accepts the component's inputs and returns:
49
+
50
+ - `currentTabId`: currently selected tab index (string, e.g. `'0'`)
51
+ - `handleTabClick`: cached callback for tab selection changes
52
+ - `processedTabs`: array of tab objects augmented with computed `errors` count
53
+ - `instructions`: sanitized HTML string (or empty)
54
+
55
+ Internally it manages:
56
+
57
+ - Local state for `currentTabId` and `tabErrors` (record of per-field errors per tab)
58
+ - Instance references for `tabErrors` and `submitAttempted` (to avoid stale closures)
59
+ - Memoized computation for `navigationKey`, `tabItems` (visible tabs), and `processedTabs`
60
+ - Cached callbacks for `handleTabClick`, `updateTabErrorsOnViewMutate`, `navigateToFirstErrorTab`, and `highlightFirstErrorTab`
61
+
62
+ ### Navigation Key Derivation
63
+
64
+ - `navigationKey` is built from: `{caseInfoId or landingPageViewName}-{metadataName}-HierarchicalForm`
65
+ - `getLandingPageViewName(contextName)`: strips the trailing segment from contextName, then uses `PCore.getContainerUtils().getActiveContainerItemName(target)` and `PCore.getContainerUtils().getContainerItemData(target, activeItemID)` to get `containerItemData.view.config.name`
66
+ - Must be stable across re-renders — derive it once via memoized computation.
67
+
68
+ ### Active Tab Persistence
69
+
70
+ - On initialization, read persisted tab from `PCore.getNavigationUtils().getComponentState(navigationKey)` — extract `activeTab` from the stored state, or fall back to `getFirstVisibleTabId(deferLoadedTabs)`.
71
+ - On tab change, persist via `PCore.getNavigationUtils().setComponentState(navigationKey, { activeTab: currentTabId })`.
72
+ - Also persist an `ActiveTab` key for the CaseView: `{caseInfoId}-CaseView-ActiveTab` → `{ id: currentTabId }`.
73
+ - On cleanup, if the context is a modal (`getContextName()` includes `/modal`), reset the stored tab to `firstTabId`.
74
+
75
+ ### Deferred Tab Loading
76
+
77
+ - The first child is a deferred-loaded tabs container. Set the inherited `template` on it via `deferLoadedTabs.getPConnect().setInheritedProp('template', template)`.
78
+ - `tabsFromChildren` is obtained from `deferLoadedTabs.getPConnect().getChildren()`.
79
+
80
+ ### Tab Visibility
81
+
82
+ - On initialization, iterate the deferred children; for each child whose raw config has a `visibility` property, store `tabsVisibility[index] = rawConfigProps.visibility`.
83
+ - Register additional inputs: `getPConnect().registerAdditionalProps({ tabsVisibility })` and `getPConnect().registerAdditionalProps({ lastUpdateCaseTime: '@P caseInfo.lastUpdateTime' })`.
84
+ - When `tabsVisibility` changes and all values are booleans, serialize them to a string key to trigger tab re-evaluation.
85
+
86
+ ### Case Refresh Subscription
87
+
88
+ - If `fullCaseId` is available: subscribe to case messages via `PCore.getMessagingServiceManager().getCaseSubscription(fullCaseId).subscribe({ caseId: fullCaseId }, handleCaseRefresh)`.
89
+ - `handleCaseRefresh`: if `message.subtype === 'tab'`, call `refreshTabData()`.
90
+ - On cleanup: unsubscribe from the case subscription.
91
+
92
+ ### Tab Data and Active Tab Sync
93
+
94
+ - Use a tab-count helper (from the project's SDK utilities) initialized with `(deferLoadedTabs, 'hierarchical', currentTabId, template)` to get `tabData` and `refreshTabData`.
95
+ - Refresh tab data when `lastUpdateCaseTime` changes.
96
+ - When `tabData` changes or tab visibility changes, re-evaluate the active tab via `getActiveTabId(tabData, currentTabId)` and update if changed.
97
+
98
+ ### Error Tracking
99
+
100
+ - `tabErrors`: a record mapping `tab.id` → `{ fieldName: messages[] }` — tracks per-field validation errors per tab.
101
+ - `updateTabErrorsOnViewMutate(messageObject, tab)`: called by `PCore.getContextTreeManager().onViewMutate()` for each tab's context. If the message type is `MESSAGES_TYPE_ERROR`, adds the field errors; otherwise removes them.
102
+ - Register `onViewMutate` callbacks for each visible tab item, using `tab.getPConnect().getContextName()`, `tab.getPConnect().getPageReference()`, and `tab.getPConnect()._rawConfig.config.name`.
103
+
104
+ ### Error Navigation on Submit
105
+
106
+ - Subscribe to `PCore.getConstants().PUB_SUB_EVENTS.ERROR_ON_FINISH_ASSIGNMENT`: when triggered, call `highlightFirstErrorTab()` which sets `submitAttempted` to true and navigates to the first tab with errors.
107
+ - Subscribe to `PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CURRENT_ASSIGNMENT_UPDATED`: when triggered, reset all tab errors and clear `submitAttempted`.
108
+ - When `tabErrors` changes and `submitAttempted` is true, re-navigate to the first error tab (handles late-arriving validation messages).
109
+
110
+ ### Instructions
111
+
112
+ - Call `getInstructions(getPConnect(), inputs.instructions)` to get sanitized HTML.
113
+ - If non-empty, render as raw HTML content above the tabs.
114
+
115
+ ### Tab Items
116
+
117
+ - `tabItems`: memoized computation filtering `tabData` to only visible tabs (those where `tab.visibility()` returns true).
118
+ - Each tab has `id`, `name`/`label`, `content`, `errors`, and PConnect methods.
119
+
120
+ ### Error Badge
121
+
122
+ - `processedTabs`: memoized computation that augments each visible tab with an `errors` count — the total number of error messages across all fields in `tabErrors[tab.id]`.
123
+ - If `errors` is truthy: wrap the tab label with a tooltip reading "`{label} has errors`" and display a badge with the error count.
124
+ - Else: render the label plain.
125
+
126
+ ### Tab Click
127
+
128
+ - `handleTabClick(event, id)`: cached callback that delegates to `tabClick(id, tabData, currentTabId, setCurrentTabId)` — a shared utility that handles tab selection logic.
129
+
130
+ ### Render
131
+
132
+ 1. Optional instruction block (rendered as raw HTML, above tabs).
133
+ 2. Tab context wrapper with value set to `currentTabId`.
134
+ 3. Scrollable tab bar containing one tab entry per `processedTabs` item (with error badge label if applicable, text-transform disabled).
135
+ 4. Tab panels (kept mounted) per processed tab containing `tab.content` or "No content exists" fallback.
136
+
137
+ ## Visual Specifications
138
+
139
+ ### Tab Bar
140
+
141
+ | Property | Value |
142
+ | ----------- | ----------------------------------------------------------- |
143
+ | Orientation | Horizontal, scrollable |
144
+ | Error badge | Red badge with tooltip showing error count message |
145
+ | Border | Bottom border on the tab bar container (1px, divider color) |
146
+
147
+ **CSS-only implementation notes:**
148
+
149
+ - Tab bar: `display: flex; border-bottom: 1px solid var(--divider)`.
150
+ - Error badge: red circle badge positioned inline next to the tab label text (not overlaid).
151
+ - Error badge and label wrapped in a flex container with `align-items: center; gap: 0.5rem`.
152
+ - Instruction text: rendered with bottom margin (approximately 0.5rem) above the tab bar.
153
+ - Tab panels: no horizontal padding (panel content fills available width).
154
+ - Tab labels: no text-transform applied (preserve original case).
155
+
156
+ ## Edge Cases & Special Logic
157
+
158
+ - The tab-count helper tracks validation errors per tab section and must be refreshed on case updates.
159
+ - `getActiveTabId` / `getFirstVisibleTabId` are shared tab utilities — they handle the case where the persisted tab is no longer visible.
160
+ - `navigationKey` must be stable across re-renders — derive it once via memoized computation from the case ID (or landing page view name), metadata name, and the component name.
161
+ - If no visible tabs, render nothing.
162
+ - When the component is in a modal context, reset persisted tab state on cleanup to avoid stale navigation state.
163
+ - The `_rawConfig` property on PConnect is used to access the raw view config name for `onViewMutate` registration.
164
+ - Error navigation on submit attempts only occurs after `ERROR_ON_FINISH_ASSIGNMENT` fires — it does not proactively validate on tab switch.
165
+ - `CURRENT_ASSIGNMENT_UPDATED` clears all error state, preventing stale error badges from persisting across assignment transitions.
166
+
167
+ ## Dependencies
168
+
169
+ - Tab-logic composable (custom extracted module) — encapsulates all tab state, persistence, and error tracking
170
+ - Tab utility helpers (`getActiveTabId`, `getFirstVisibleTabId`, `tabClick`) — shared tab navigation logic from the project's SubTabs utilities
171
+ - `getInstructions` — shared template utility for sanitizing instruction HTML
172
+ - Tab-count helper from the project's SDK utilities — for computing per-tab validation data
173
+ - `PCore.getNavigationUtils()` — for persisting and retrieving active tab state
174
+ - `PCore.getContextTreeManager().onViewMutate()` — for registering per-field validation error listeners
175
+ - `PCore.getMessagingServiceManager().getCaseSubscription()` — for subscribing to case refresh messages
176
+ - `PCore.getPubSubUtils()` — for subscribing to `ERROR_ON_FINISH_ASSIGNMENT` and `CURRENT_ASSIGNMENT_UPDATED` events
177
+ - `PCore.getContainerUtils()` — for deriving the landing page view name (used in navigation key)
178
+ - `PCore.getConstants()` — for PubSub event keys, message type constants, and case info constants
179
+
180
+ ## Design System Mapping
181
+
182
+ **UI control type:** Multi-step tabbed form with per-tab error indicators and persistent active tab.
183
+
184
+ When implementing in a specific design system, map the following:
185
+
186
+ - **Tab bar container:** Use the design system's horizontal tab strip with scrollable overflow support and a bottom border divider.
187
+ - **Tab entries:** Use the design system's tab trigger component with no text-transform; label text should preserve original case.
188
+ - **Error badge:** Use the design system's inline badge component (red/error color) positioned next to the tab label text within a flex row. Wrap the badge-label group in a tooltip showing "`{label} has errors`".
189
+ - **Tab panels:** Use the design system's tab panel or content container that supports keep-mounted behavior (all panels remain in DOM, only one is visible).
190
+ - **Instruction block:** A block-level element rendering sanitized HTML, positioned above the tab bar with bottom margin spacing.
191
+ - **Layout:** A vertical flex column containing the optional instruction block, the tab bar with bottom border, and the tab panel area.
192
+
193
+ Implementation constraints regardless of design system:
194
+
195
+ - Error badge is mandatory — always show error counts when `processedTabs[i].errors > 0`
196
+ - Active tab must be persisted via `PCore.getNavigationUtils()` for correct navigation behavior
197
+ - Instructions HTML renders above the entire tab bar, not per-tab
198
+ - Tab panels must remain mounted (not destroyed on tab switch) to preserve form state
199
+ - On submit error (`ERROR_ON_FINISH_ASSIGNMENT`), automatically navigate to the first tab with errors
200
+ - On assignment update (`CURRENT_ASSIGNMENT_UPDATED`), clear all error badges