@pega/sdk 0.0.5 → 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 (266) hide show
  1. package/README.md +10 -3
  2. package/dist/index.js +764 -165
  3. package/package.json +1 -1
  4. package/templates/react-native-sdk-reference/.claude/settings.json +5 -0
  5. package/templates/react-native-sdk-reference/.prettierignore +17 -0
  6. package/templates/react-native-sdk-reference/.vscode/extensions.json +1 -0
  7. package/templates/react-native-sdk-reference/.vscode/settings.json +7 -0
  8. package/templates/react-native-sdk-reference/AGENTS.md +3 -0
  9. package/templates/react-native-sdk-reference/CLAUDE.md +1 -0
  10. package/templates/react-native-sdk-reference/README.md +56 -0
  11. package/templates/react-native-sdk-reference/app.json +40 -5
  12. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/expo-symbol 2.svg +3 -0
  13. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/grid.png +0 -0
  14. package/templates/react-native-sdk-reference/assets/expo.icon/icon.json +35 -0
  15. package/templates/react-native-sdk-reference/assets/icons/bell.png +0 -0
  16. package/templates/react-native-sdk-reference/assets/icons/clock.png +0 -0
  17. package/templates/react-native-sdk-reference/assets/icons/cross.png +0 -0
  18. package/templates/react-native-sdk-reference/assets/icons/donut.png +0 -0
  19. package/templates/react-native-sdk-reference/assets/icons/gear.png +0 -0
  20. package/templates/react-native-sdk-reference/assets/icons/globe.png +0 -0
  21. package/templates/react-native-sdk-reference/assets/icons/internet.png +0 -0
  22. package/templates/react-native-sdk-reference/assets/icons/music.png +0 -0
  23. package/templates/react-native-sdk-reference/assets/icons/right-arrow.png +0 -0
  24. package/templates/react-native-sdk-reference/assets/icons/speed.png +0 -0
  25. package/templates/react-native-sdk-reference/assets/images/MediaCo.png +0 -0
  26. package/templates/react-native-sdk-reference/assets/images/adaptive-icon.png +0 -0
  27. package/templates/react-native-sdk-reference/assets/images/android-icon-background.png +0 -0
  28. package/templates/react-native-sdk-reference/assets/images/android-icon-foreground.png +0 -0
  29. package/templates/react-native-sdk-reference/assets/images/android-icon-monochrome.png +0 -0
  30. package/templates/react-native-sdk-reference/assets/images/expo-badge-white.png +0 -0
  31. package/templates/react-native-sdk-reference/assets/images/expo-badge.png +0 -0
  32. package/templates/react-native-sdk-reference/assets/images/expo-logo.png +0 -0
  33. package/templates/react-native-sdk-reference/assets/images/favicon.png +0 -0
  34. package/templates/react-native-sdk-reference/assets/images/icon.png +0 -0
  35. package/templates/react-native-sdk-reference/assets/images/logo-glow.png +0 -0
  36. package/templates/react-native-sdk-reference/assets/images/partial-react-logo.png +0 -0
  37. package/templates/react-native-sdk-reference/assets/images/react-logo.png +0 -0
  38. package/templates/react-native-sdk-reference/assets/images/react-logo@2x.png +0 -0
  39. package/templates/react-native-sdk-reference/assets/images/react-logo@3x.png +0 -0
  40. package/templates/react-native-sdk-reference/assets/images/splash-icon.png +0 -0
  41. package/templates/react-native-sdk-reference/assets/images/tutorial-web.png +0 -0
  42. package/templates/react-native-sdk-reference/eslint.config.mjs +68 -0
  43. package/templates/react-native-sdk-reference/package.json +59 -14
  44. package/templates/react-native-sdk-reference/pega-constellationjs-0.26.3.tgz +0 -0
  45. package/templates/react-native-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  46. package/templates/react-native-sdk-reference/pega-sdk-types-0.1.0.tgz +0 -0
  47. package/templates/react-native-sdk-reference/sdk-config.json +31 -9
  48. package/templates/react-native-sdk-reference/src/app/_layout.tsx +38 -0
  49. package/templates/react-native-sdk-reference/src/app/home/_layout.tsx +39 -0
  50. package/templates/react-native-sdk-reference/src/app/home/contact.tsx +11 -0
  51. package/templates/react-native-sdk-reference/src/app/home/index.tsx +36 -0
  52. package/templates/react-native-sdk-reference/src/app/home/shop.tsx +11 -0
  53. package/templates/react-native-sdk-reference/src/app/home/your-services.tsx +11 -0
  54. package/templates/react-native-sdk-reference/src/app/index.tsx +72 -0
  55. package/templates/react-native-sdk-reference/src/app/workarea.tsx +135 -0
  56. package/templates/react-native-sdk-reference/src/bridge/Context/StoreContext.ts +4 -0
  57. package/templates/react-native-sdk-reference/src/bridge/RootComponent.tsx +12 -0
  58. package/templates/react-native-sdk-reference/src/bridge/react_pconnect.jsx +334 -0
  59. package/templates/react-native-sdk-reference/src/components/common/DisplayField.tsx +29 -0
  60. package/templates/react-native-sdk-reference/src/components/common/FormFieldWrapper.tsx +5 -0
  61. package/templates/react-native-sdk-reference/src/components/common/HelperText.tsx +11 -0
  62. package/templates/react-native-sdk-reference/src/components/common/LabelText.tsx +22 -0
  63. package/templates/react-native-sdk-reference/src/components/common/inputTheme.ts +17 -0
  64. package/templates/react-native-sdk-reference/src/components/design-system/AutoComplete.tsx +126 -0
  65. package/templates/react-native-sdk-reference/src/components/design-system/FieldGroup.tsx +72 -0
  66. package/templates/react-native-sdk-reference/src/components/design-system/Radio.tsx +61 -0
  67. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +196 -0
  68. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
  69. package/templates/react-native-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +89 -0
  70. package/templates/react-native-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
  71. package/templates/react-native-sdk-reference/src/components/field/Currency/Currency.tsx +84 -0
  72. package/templates/react-native-sdk-reference/src/components/field/Currency/index.tsx +1 -0
  73. package/templates/react-native-sdk-reference/src/components/field/Date/Date.tsx +94 -0
  74. package/templates/react-native-sdk-reference/src/components/field/Date/index.tsx +1 -0
  75. package/templates/react-native-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +211 -0
  76. package/templates/react-native-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
  77. package/templates/react-native-sdk-reference/src/components/field/Email/Email.tsx +81 -0
  78. package/templates/react-native-sdk-reference/src/components/field/Email/index.tsx +1 -0
  79. package/templates/react-native-sdk-reference/src/components/field/Group/Group.tsx +47 -0
  80. package/templates/react-native-sdk-reference/src/components/field/Group/index.tsx +1 -0
  81. package/templates/react-native-sdk-reference/src/components/field/Integer/Integer.tsx +84 -0
  82. package/templates/react-native-sdk-reference/src/components/field/Integer/index.tsx +1 -0
  83. package/templates/react-native-sdk-reference/src/components/field/Phone/Phone.tsx +85 -0
  84. package/templates/react-native-sdk-reference/src/components/field/Phone/index.ts +1 -0
  85. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +118 -0
  86. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/index.ts +1 -0
  87. package/templates/react-native-sdk-reference/src/components/field/TextArea/TextArea.tsx +86 -0
  88. package/templates/react-native-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
  89. package/templates/react-native-sdk-reference/src/components/field/TextInput/TextInput.tsx +84 -0
  90. package/templates/react-native-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
  91. package/templates/react-native-sdk-reference/src/components/field/URL/URL.tsx +86 -0
  92. package/templates/react-native-sdk-reference/src/components/field/URL/index.tsx +1 -0
  93. package/templates/react-native-sdk-reference/src/components/helpers/data_page.ts +20 -0
  94. package/templates/react-native-sdk-reference/src/components/helpers/event-utils.ts +20 -0
  95. package/templates/react-native-sdk-reference/src/components/helpers/instructions-utils.ts +57 -0
  96. package/templates/react-native-sdk-reference/src/components/helpers/state-utils.tsx +46 -0
  97. package/templates/react-native-sdk-reference/src/components/helpers/template-utils.ts +75 -0
  98. package/templates/react-native-sdk-reference/src/components/helpers/utils.ts +339 -0
  99. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/ActionButtons.tsx +63 -0
  100. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/index.tsx +1 -0
  101. package/templates/react-native-sdk-reference/src/components/infra/Assignment/Assignment.tsx +348 -0
  102. package/templates/react-native-sdk-reference/src/components/infra/Assignment/index.tsx +1 -0
  103. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/AssignmentCard.tsx +56 -0
  104. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/index.tsx +1 -0
  105. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/FlowContainer.tsx +57 -0
  106. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/helpers.ts +137 -0
  107. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/index.tsx +1 -0
  108. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/RootContainer.tsx +52 -0
  109. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/index.tsx +1 -0
  110. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/helper.ts +128 -0
  111. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/index.tsx +59 -0
  112. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/ViewContainer.tsx +31 -0
  113. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/helper.ts +39 -0
  114. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/index.ts +1 -0
  115. package/templates/react-native-sdk-reference/src/components/infra/Containers/helper.ts +9 -0
  116. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/ErrorBoundary.tsx +53 -0
  117. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/index.tsx +1 -0
  118. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/MultiStep.tsx +24 -0
  119. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/index.ts +1 -0
  120. package/templates/react-native-sdk-reference/src/components/infra/Reference/Reference.tsx +68 -0
  121. package/templates/react-native-sdk-reference/src/components/infra/Reference/index.tsx +1 -0
  122. package/templates/react-native-sdk-reference/src/components/infra/Reference/utils.ts +16 -0
  123. package/templates/react-native-sdk-reference/src/components/infra/Region/Region.tsx +10 -0
  124. package/templates/react-native-sdk-reference/src/components/infra/Region/index.tsx +1 -0
  125. package/templates/react-native-sdk-reference/src/components/infra/View/View.tsx +49 -0
  126. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +38 -0
  127. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
  128. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/utils/index.ts +28 -0
  129. package/templates/react-native-sdk-reference/src/components/template/Details/Details.tsx +82 -0
  130. package/templates/react-native-sdk-reference/src/components/template/Details/index.tsx +1 -0
  131. package/templates/react-native-sdk-reference/src/components/template/OneColumn/OneColumn.tsx +29 -0
  132. package/templates/react-native-sdk-reference/src/components/template/OneColumn/index.tsx +1 -0
  133. package/templates/react-native-sdk-reference/src/context/LoaderContext.tsx +42 -0
  134. package/templates/react-native-sdk-reference/src/mediaco/AdvBanner.tsx +62 -0
  135. package/templates/react-native-sdk-reference/src/mediaco/Header.tsx +60 -0
  136. package/templates/react-native-sdk-reference/src/mediaco/HomeScreen.tsx +78 -0
  137. package/templates/react-native-sdk-reference/src/mediaco/QuickActions.tsx +68 -0
  138. package/templates/react-native-sdk-reference/src/mediaco/ResolutionScreen.tsx +48 -0
  139. package/templates/react-native-sdk-reference/src/mediaco/SafeArea.tsx +11 -0
  140. package/templates/react-native-sdk-reference/src/mediaco/TabBar.tsx +102 -0
  141. package/templates/react-native-sdk-reference/src/mediaco/YourServices.tsx +90 -0
  142. package/templates/react-native-sdk-reference/src/sdk-pega-component-map.ts +64 -0
  143. package/templates/react-native-sdk-reference/src/types/PConnProps.d.ts +41 -0
  144. package/templates/react-native-sdk-reference/src/utils/auth.ts +62 -0
  145. package/templates/react-native-sdk-reference/src/utils/init-pcore.ts +37 -0
  146. package/templates/react-native-sdk-reference/src/utils/pcore-polyfills.ts +66 -0
  147. package/templates/react-native-sdk-reference/tsconfig.json +9 -8
  148. package/templates/react-sdk-reference/.ai-common/agents/embedded-flow-expert.md +171 -0
  149. package/templates/react-sdk-reference/.ai-common/agents/implementation-expert.md +25 -26
  150. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions-embedded.md +119 -0
  151. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions.md +70 -121
  152. package/templates/react-sdk-reference/.ai-common/instructions/component-map.md +7 -19
  153. package/templates/react-sdk-reference/.ai-common/instructions/dse-component.md +10 -40
  154. package/templates/react-sdk-reference/.ai-common/instructions/embedded-component.md +134 -0
  155. package/templates/react-sdk-reference/.ai-common/instructions/field-component.md +15 -43
  156. package/templates/react-sdk-reference/.ai-common/instructions/template-component.md +11 -63
  157. package/templates/react-sdk-reference/.ai-common/instructions/widget-component.md +12 -57
  158. package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +45 -71
  159. package/templates/react-sdk-reference/.ai-common/prompts/component-manifest.json +98 -0
  160. package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +155 -0
  161. package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +67 -237
  162. package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +26 -77
  163. package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +315 -0
  164. package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +31 -80
  165. package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +43 -99
  166. package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +33 -83
  167. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/AlertBanner.md +60 -74
  168. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +64 -84
  169. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +76 -109
  170. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/DetailsFields.md +84 -101
  171. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroup.md +62 -87
  172. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroupList.md +56 -76
  173. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldValueList.md +61 -85
  174. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Operator.md +84 -107
  175. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Pulse.md +36 -44
  176. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +125 -189
  177. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/WssQuickCreate.md +34 -50
  178. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +57 -179
  179. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +130 -0
  180. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +311 -0
  181. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +156 -0
  182. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +476 -0
  183. package/templates/react-sdk-reference/.ai-common/skills/field-components.md +120 -242
  184. package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +71 -212
  185. package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +47 -209
  186. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +90 -259
  187. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +75 -169
  188. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +65 -160
  189. package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +59 -157
  190. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +55 -134
  191. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +61 -185
  192. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +60 -138
  193. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Group.md +40 -99
  194. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +44 -111
  195. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +57 -165
  196. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Multiselect.md +41 -122
  197. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ObjectReference.md +32 -130
  198. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +48 -112
  199. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +43 -153
  200. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +76 -183
  201. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RichText.md +59 -176
  202. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +30 -123
  203. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +47 -178
  204. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SemanticLink.md +31 -117
  205. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +51 -106
  206. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextContent.md +22 -75
  207. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +54 -116
  208. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +46 -100
  209. package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +44 -93
  210. package/templates/react-sdk-reference/.ai-common/skills/field-skills/UserReference.md +40 -167
  211. package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +165 -0
  212. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/ActionButtons.md +122 -0
  213. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/MultiStep.md +178 -0
  214. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/Stages.md +140 -0
  215. package/templates/react-sdk-reference/.ai-common/skills/template-components.md +74 -228
  216. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +66 -167
  217. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +57 -170
  218. package/templates/react-sdk-reference/.ai-common/skills/template-skills/BannerPage.md +41 -76
  219. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +53 -109
  220. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +86 -289
  221. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +60 -185
  222. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +66 -115
  223. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DataReference.md +33 -68
  224. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +53 -133
  225. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultPage.md +39 -82
  226. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Details.md +38 -91
  227. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsSubTabs.md +47 -101
  228. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsThreeColumn.md +27 -34
  229. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsTwoColumn.md +25 -40
  230. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DynamicTabs.md +34 -104
  231. package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +46 -147
  232. package/templates/react-sdk-reference/.ai-common/skills/template-skills/HierarchicalForm.md +139 -100
  233. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboard.md +43 -82
  234. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md +47 -80
  235. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListPage.md +16 -29
  236. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +43 -228
  237. package/templates/react-sdk-reference/.ai-common/skills/template-skills/MultiReferenceReadOnly.md +20 -65
  238. package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +49 -97
  239. package/templates/react-sdk-reference/.ai-common/skills/template-skills/OneColumn.md +37 -71
  240. package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +58 -148
  241. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +82 -107
  242. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SimpleTable.md +21 -60
  243. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +43 -100
  244. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SubTabs.md +36 -76
  245. package/templates/react-sdk-reference/.ai-common/skills/template-skills/TwoColumn.md +41 -90
  246. package/templates/react-sdk-reference/.ai-common/skills/template-skills/WideNarrow.md +36 -43
  247. package/templates/react-sdk-reference/.ai-common/skills/template-skills/WssNavBar.md +25 -115
  248. package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +38 -174
  249. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +30 -57
  250. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +55 -101
  251. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/CaseHistory.md +38 -121
  252. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/FileUtility.md +37 -98
  253. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Followers.md +18 -33
  254. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/QuickCreate.md +26 -91
  255. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/SummaryItem.md +28 -120
  256. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +41 -272
  257. package/templates/react-sdk-reference/package.json +1 -1
  258. package/templates/react-sdk-reference/pega-auth-0.2.44.tgz +0 -0
  259. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  260. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +13 -3
  261. package/templates/react-native-sdk-reference/.github/AGENTS.md +0 -23
  262. package/templates/react-native-sdk-reference/.github/copilot-instructions.md +0 -40
  263. package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +0 -48
  264. package/templates/react-native-sdk-reference/App.tsx +0 -49
  265. package/templates/react-native-sdk-reference/expo-env.d.ts +0 -3
  266. package/templates/react-sdk-reference/pega-auth-0.2.42.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  ---
2
- ai-globs: src/components/template/**/*.tsx
2
+ ai-globs: **/template/**/*
3
3
  ---
4
4
 
5
5
  # Template Component Rules
@@ -8,75 +8,23 @@ When creating or modifying template/layout components, follow these rules:
8
8
 
9
9
  ## Required Structure
10
10
 
11
- 1. **Import types from `@pega/sdk-react`**:
11
+ 1. **Extend the base template props interface** — the project's standard props type — when defining the component's prop interface.
12
12
 
13
- ```typescript
14
- import type { PConnProps } from '@pega/sdk-react';
15
- ```
16
-
17
- 2. **Export as default function component**:
18
- ```typescript
19
- export default function MyTemplate(props: MyTemplateProps) { ... }
20
- ```
13
+ 2. **Export the component** using the project's standard export convention.
21
14
 
22
15
  ## Template Categories
23
16
 
24
17
  ### Layout Templates (TwoColumn, OneColumn, NarrowWide, WideNarrow)
25
18
 
26
- Receive React `children` directly:
27
-
28
- ```typescript
29
- import type { PropsWithChildren, ReactElement } from 'react';
30
-
31
- interface TwoColumnProps extends PConnProps {
32
- templateCol?: string; // e.g. "1fr 1fr", "2fr 1fr"
33
- }
34
-
35
- export default function TwoColumn(props: PropsWithChildren<TwoColumnProps>) {
36
- const { children, templateCol = '1fr 1fr' } = props;
37
- const childrenToRender = children as ReactElement[];
38
- // Render childrenToRender[0], childrenToRender[1], etc. in grid columns
39
- }
40
- ```
19
+ Receive child components directly via the props. Parse the `templateCol` prop (e.g. `"1fr 1fr"`, `"2fr 1fr"`) to compute column ratios, then render each child in its corresponding column.
41
20
 
42
21
  ### Form/View Templates (DefaultForm, Details, CaseView)
43
22
 
44
- Render children via `getPConnect().getChildren()`:
45
-
46
- ```typescript
47
- export default function DefaultForm(props: DefaultFormProps) {
48
- const { getPConnect } = props;
49
- const pConn = getPConnect();
50
- const children = pConn.getChildren() as any[];
51
-
52
- return (
53
- <div>
54
- {children.map((child, i) => (
55
- <PConnectComponent key={i} getPConnect={() => child.getPConnect()} />
56
- ))}
57
- </div>
58
- );
59
- }
60
- ```
23
+ Render children by retrieving them from the PConnect accessor (`getPConnect().getChildren()`) and rendering each child through the project's PConnect-bridge component.
61
24
 
62
25
  ### Page Templates (OneColumnPage, TwoColumnPage)
63
26
 
64
- Wrap a layout with page-level chrome (title, actions):
65
-
66
- ```typescript
67
- export default function OneColumnPage(props: PageProps) {
68
- const { getPConnect, children } = props;
69
- const pConn = getPConnect();
70
- const title = pConn.getDataObject('')?.caseInfo?.name;
71
-
72
- return (
73
- <div>
74
- <h1>{title}</h1>
75
- {children}
76
- </div>
77
- );
78
- }
79
- ```
27
+ Wrap a layout with page-level chrome (title, actions) — retrieve case/page metadata from the PConnect accessor and render it alongside the layout's children.
80
28
 
81
29
  ## Visual Preservation
82
30
 
@@ -84,12 +32,12 @@ The replacement must look the same as the original component:
84
32
 
85
33
  1. **Read any `.css` file in the directory first.** Note every class's visual intent (spacing, sizing, colors, layout).
86
34
  2. Replicate those styles via inline `style` props, the new design system's layout props, or by keeping the CSS import — whichever produces the closest match.
87
- 3. Do NOT silently drop `makeStyles` classes — map each one to an equivalent style.
35
+ 3. Do NOT silently drop legacy layout utility classes — map each one to an equivalent style.
88
36
 
89
37
  ## Key Rules
90
38
 
91
- - Use `PConnectComponent` from `@pega/sdk-react` to render PConnect children
92
- - Grid proportions come from `templateCol` prop — parse it to calculate column ratios
93
- - Templates must not call `handleEvent` or interact with field state
39
+ - Use the project's PConnect-bridge component to render PConnect children
40
+ - Grid proportions come from the `templateCol` prop — parse it to calculate column ratios
41
+ - Templates must not call the event handling helper or interact with field state
94
42
  - Templates are layout-only — they arrange, not edit
95
- - Do NOT drop column gap, padding, or alignment styles when removing MUI `Grid` — replicate them in the replacement layout
43
+ - Do NOT drop column gap, padding, or alignment styles when removing legacy layout primitives — replicate them in the replacement layout
@@ -1,5 +1,5 @@
1
1
  ---
2
- ai-globs: src/components/widget/**/*.tsx
2
+ ai-globs: **/widget/**/*
3
3
  ---
4
4
 
5
5
  # Widget Component Rules
@@ -8,68 +8,23 @@ When creating or modifying widget components, follow these rules:
8
8
 
9
9
  ## Required Structure
10
10
 
11
- 1. **Import types from `@pega/sdk-react`**:
11
+ 1. **Extend the base widget props interface** — the project's standard props type, or the field props type if the widget behaves like a field (e.g. Attachment) — when defining the component's prop interface.
12
12
 
13
- ```typescript
14
- import type { PConnProps } from '@pega/sdk-react';
15
- // or PConnFieldProps if the widget behaves like a field (e.g., Attachment)
16
- ```
17
-
18
- 2. **Export as default function component**:
19
- ```typescript
20
- export default function MyWidget(props: MyWidgetProps) { ... }
21
- ```
13
+ 2. **Export the component** using the project's standard export convention.
22
14
 
23
15
  ## Widget Patterns
24
16
 
25
17
  ### Data-Fetching Widget (ToDo, CaseHistory, Followers)
26
18
 
27
- Fetches data from Pega data pages on mount:
28
-
29
- ```typescript
30
- export default function MyWidget(props: MyWidgetProps) {
31
- const { getPConnect, datasource, headerText } = props;
32
- const pConn = getPConnect();
33
- const [data, setData] = useState<any[]>([]);
34
-
35
- useEffect(() => {
36
- const context = pConn.getContextName();
37
- PCore.getDataPageUtils()
38
- .getDataAsync(datasource?.source, context, {})
39
- .then((response: any) => {
40
- setData(response.data || []);
41
- });
42
- }, []);
43
-
44
- return (
45
- <Card>
46
- <CardHeader title={headerText} />
47
- <CardContent>{/* render data */}</CardContent>
48
- </Card>
49
- );
50
- }
51
- ```
19
+ Fetches data from the platform's data pages on mount. Obtain the current context from the PConnect accessor, request the datasource via the platform's data page utility, and store the result in local state. Render the fetched data inside the widget's card/list presentation.
52
20
 
53
21
  ### Action Widget (ToDo)
54
22
 
55
- Triggers case actions:
56
-
57
- ```typescript
58
- // Get assignments and trigger actions
59
- import { getToDoAssignments } from '@pega/sdk-react';
60
-
61
- const assignments = getToDoAssignments(getPConnect);
62
- // Each assignment has: onClick callback, urgency, name, etc.
63
- ```
23
+ Triggers case actions. Retrieve the list of assignments using the platform's assignment helper (passing the PConnect accessor). Each assignment provides an `onClick` callback, urgency, name, and other display metadata.
64
24
 
65
25
  ### File Widget (Attachment, FileUtility)
66
26
 
67
- Handles file upload/download via PCore attachment APIs:
68
-
69
- ```typescript
70
- PCore.getAttachmentUtils().uploadAttachment(file, onUploadProgress, errorHandler, context);
71
- PCore.getAttachmentUtils().downloadAttachment(attachmentId, context);
72
- ```
27
+ Handles file upload/download via the platform's attachment utility APIs — upload with progress/error callbacks and context, download by attachment id and context.
73
28
 
74
29
  ## Visual Preservation
75
30
 
@@ -77,14 +32,14 @@ The replacement must look the same as the original component:
77
32
 
78
33
  1. **Read any `.css` file in the directory first.** Note every class's visual intent (spacing, sizing, colors, layout).
79
34
  2. Replicate those styles via inline `style` props, the new design system's component props/variants, or by keeping the CSS import — whichever produces the closest match.
80
- 3. Do NOT silently drop `makeStyles` classes — map each one to an equivalent style.
35
+ 3. Do NOT silently drop legacy styling utility classes — map each one to an equivalent style.
81
36
 
82
37
  ## Key Rules
83
38
 
84
39
  - Widgets are self-contained — they manage their own data fetching
85
- - Use `PCore.getDataPageUtils()` for data page access
86
- - Use `PCore.getAttachmentUtils()` for file operations
40
+ - Use the platform's data page utility for data page access
41
+ - Use the platform's attachment utility for file operations
87
42
  - Always handle loading and error states
88
- - Widgets may use `PCore.getPubSubUtils()` to subscribe to events
89
- - Clean up subscriptions in `useEffect` return function
90
- - Do NOT drop card padding, list item spacing, or avatar sizing when removing MUI components — replicate them in the replacement
43
+ - Widgets may subscribe to platform events via the platform's pub/sub utility
44
+ - Clean up subscriptions when the component unmounts
45
+ - Do NOT drop card padding, list item spacing, or avatar sizing when removing legacy presentation components — replicate them in the replacement
@@ -7,7 +7,7 @@ ai-description: Add a new component type to the registry
7
7
  Read the user's message carefully. Extract:
8
8
 
9
9
  - **Component name** — the exact name (e.g. `AutoComplete`, `DatePicker`)
10
- - **Component type** — one of: `field` | `template` | `widget` | `designSystemExtension`
10
+ - **Component type** — one of: `field` | `template` | `widget` | `designSystemExtension` | `infra`
11
11
  - **Design system** — the UI library to use (e.g. `Ant Design`, `Chakra UI`, `Carbon`, `Radix UI`)
12
12
  - **Output path** — the exact or relative path where the component should be generated (e.g. `src/components/field/AutoComplete`)
13
13
 
@@ -19,12 +19,12 @@ Example questions to ask (only ask the ones that are actually missing):
19
19
 
20
20
  1. Which design system should I use? (e.g. Ant Design, Chakra UI, Carbon, Radix UI)
21
21
  2. What is the exact component name?
22
- 3. What type of component is this? (field / template / widget / designSystemExtension)
22
+ 3. What type of component is this? (field / template / widget / designSystemExtension / infra)
23
23
  4. What is the exact or relative path where the component should be generated? (e.g. `src/components/field/AutoComplete`)
24
24
 
25
25
  ### Case-insensitive component name matching
26
26
 
27
- The user may enter the component name in any casing (e.g. `autocomplete`, `Autocomplete`, `autoComplete`). It is your responsibility to match it to the correct canonical name by checking the skill files in `{{SKILL_DIR}}/field-skills/`, `{{SKILL_DIR}}/template-skills/`, `{{SKILL_DIR}}/widget-skills/`, and `{{SKILL_DIR}}/design-system-extension-skills/`. For example, if the user types `autocomplete`, match it to `AutoComplete`.
27
+ The user may enter the component name in any casing (e.g. `autocomplete`, `Autocomplete`, `autoComplete`). It is your responsibility to match it to the correct canonical name by checking the skill files in `{{SKILL_DIR}}/field-skills/`, `{{SKILL_DIR}}/template-skills/`, `{{SKILL_DIR}}/widget-skills/`, `{{SKILL_DIR}}/design-system-extension-skills/`, and `{{SKILL_DIR}}/infra-skills/`. For example, if the user types `autocomplete`, match it to `AutoComplete`.
28
28
 
29
29
  Once all four are known, continue to Step 1.
30
30
 
@@ -34,7 +34,7 @@ Once all four are known, continue to Step 1.
34
34
 
35
35
  Before generating, check if a component already exists at the resolved output path:
36
36
 
37
- 1. Check if `<outputPath>/<ComponentName>.tsx` (or the directory) already exists.
37
+ 1. Check if the component file or directory already exists at the resolved output path.
38
38
  2. If it **does exist**, ask the user: _"A component named `<ComponentName>` already exists at `<outputPath>`. Do you want to overwrite it with the new implementation?"_
39
39
  - If the user says **yes**, proceed to overwrite.
40
40
  - If the user says **no**, stop and skip generation.
@@ -52,6 +52,9 @@ Always read the **general type skill** for the component type:
52
52
  | `template` | `{{SKILL_DIR}}/template-components.md` |
53
53
  | `widget` | `{{SKILL_DIR}}/widget-components.md` |
54
54
  | `designSystemExtension` | `{{SKILL_DIR}}/design-system-extension.md` |
55
+ | `infra` | `{{SKILL_DIR}}/infra-components.md` |
56
+
57
+ Only three `infra` components may be added — `ActionButtons`, `Stages`, and `MultiStep`. Every other infrastructure component is SDK-provided; if the user names one, stop and tell them it is not generated.
55
58
 
56
59
  Then look for a **component-specific skill** based on the component type:
57
60
 
@@ -61,6 +64,7 @@ Then look for a **component-specific skill** based on the component type:
61
64
  | `template` | `{{SKILL_DIR}}/template-skills/<ComponentName>.md` |
62
65
  | `widget` | `{{SKILL_DIR}}/widget-skills/<ComponentName>.md` |
63
66
  | `designSystemExtension` | `{{SKILL_DIR}}/design-system-extension-skills/<ComponentName>.md` |
67
+ | `infra` | `{{SKILL_DIR}}/infra-skills/<ComponentName>.md` |
64
68
 
65
69
  If the component-specific skill file exists, read it fully. Pay special attention to:
66
70
 
@@ -75,6 +79,7 @@ Examples:
75
79
  - `AdvancedSearch` (template) → read `template-components.md` + `template-skills/AdvancedSearch.md`
76
80
  - `AppAnnouncement` (widget) → read `widget-components.md` + `widget-skills/AppAnnouncement.md`
77
81
  - `AlertBanner` (designSystemExtension) → read `design-system-extension.md` + `design-system-extension-skills/AlertBanner.md`
82
+ - `ActionButtons` (infra) → read `infra-components.md` + `infra-skills/ActionButtons.md`
78
83
 
79
84
  If no component-specific skill file exists, continue using the general pattern from the type skill.
80
85
 
@@ -82,27 +87,31 @@ If no component-specific skill file exists, continue using the general pattern f
82
87
 
83
88
  ## Step 3 — Check and install dependencies
84
89
 
85
- Run:
90
+ Check the project's dependency manifest to determine whether the design system package is already installed. If it is **not** listed in the project's dependencies, install it using the project's package manager. Report what was installed.
86
91
 
87
- ```
88
- cat package.json | grep "<design-system-package>"
89
- ```
92
+ **Immediately after installation**, read `node_modules/<designSystem>/README.md` in full. From it, note the correct import paths, usage patterns, version-specific guidance, global CSS/styles import path, provider wrapper component name, and any peer dependency requirements. Store this information in your memory and use it for all subsequent steps — do not re-read the README later. If the README lists peer dependencies that are not already installed in the project, install them now — the design system will not function correctly without them.
90
93
 
91
- If the design system package is **not** listed in `dependencies` or `devDependencies`, install it:
94
+ You MUST also thoroughly inspect the installed design system package:
92
95
 
93
- ```
94
- npm install <design-system-package>
95
- ```
96
+ 1. **Discover all available components** — browse the installed package's directory tree under `node_modules/<designSystem>/` to find every component it exports. Do not assume a specific folder structure (e.g. `dist/`) — packages vary widely in how they organize source, types, and entry points. Navigate through the package's folders, read its entry-point files and type definitions, and build a complete list of every component the package actually provides. Store all discovered component names and their import paths in your memory for reference during code generation.
97
+ 2. **Map the requested component to the best available DS component** — the component name provided by the user (e.g. `AutoComplete`) may not have an exact name match in the installed design system. Using the complete component list you just discovered, identify which DS component best serves the same purpose. For example, `@carbon/react` does not export an `AutoComplete` component — but it does export `ComboBox`, which provides equivalent autocomplete/typeahead functionality. If no single DS component is a close match, compose the requested behavior from multiple available DS primitives. Never fabricate a component import that does not exist in the installed package.
98
+ 3. **Read the props interface of every component you plan to use** — for each component you intend to use, locate and read its TypeScript type definitions (`.d.ts` files or inline types) to understand the exact prop names, types, required vs. optional status, and any relevant enums or union types. Store this information in your memory alongside the component names.
99
+ 4. **Use ONLY confirmed component names and prop names** — when generating code, you must exclusively use the component names and prop names you discovered from the installed package. Do not rely on training knowledge of the design system's API, as it may be outdated, inaccurate, or refer to components/props that do not exist in the installed version.
96
100
 
97
- Also install any peer dependencies documented in the package's README. Report what was installed.
101
+ Also check:
102
+
103
+ - Whether the design system has a **form layout wrapper** (label + input + helper text) — use it instead of manual margins
104
+ - Whether it has **size/density/variant conventions** — use built-in props rather than custom padding
105
+ - Whether it has a **companion icons package** — read its exports before using any icon name; never guess icon names
106
+ - Whether it has a **tokens or CSS directory** — use design system CSS custom properties for spacing; never hardcode `px` values
98
107
 
99
108
  ### 3.1 — Install the DS styles package and configure global CSS (MANDATORY)
100
109
 
101
110
  Design systems require their global stylesheet — without it, components render unstyled.
102
111
 
103
- #### Known DS style requirements (examples — verify from README for exact paths):
112
+ #### Known DS style requirements (examples — verify against the README you already read):
104
113
 
105
- | Design System | Styles Package (example) | CSS Import in `src/main.tsx` (example) | Provider Wrapper (example) |
114
+ | Design System | Styles Package (example) | CSS Import (example) | Provider Wrapper (example) |
106
115
  | ------------- | ------------------------ | ---------------------------------------- | -------------------------- |
107
116
  | Carbon | `@carbon/styles` | `import '@carbon/react/css/styles.css';` | `<Theme>` |
108
117
  | Ant Design | (included) | `import 'antd/dist/reset.css';` | `<ConfigProvider>` |
@@ -111,29 +120,16 @@ Design systems require their global stylesheet — without it, components render
111
120
  | Shadcn/ui | (Tailwind) | `import './globals.css';` | None |
112
121
  | MUI | (included) | (none — CSS-in-JS) | `<ThemeProvider>` |
113
122
 
114
- These are **examples** based on common versions. Always verify the exact import path and provider name from the installed package's README (`node_modules/<ds>/README.md`).
115
-
116
- If in table and not already configured: install styles package (if separate), add CSS import as **first import** in `src/main.tsx`, add Provider in `src/AppProviders.tsx`.
117
- If not in table: check README and `find node_modules/<ds> -name "*.css" -path "*/dist/*" | head -5`.
118
-
119
- Verification: `grep -n "import.*css\|import.*styles" src/main.tsx` — if already present, report "already configured" and continue.
120
-
121
- Report what was installed/configured (or "already configured").
123
+ Above mentioned are **examples** based on common versions. Use the import path and provider name you noted from the README — they take precedence over this table.
122
124
 
123
- Before writing any code, inspect the installed package:
125
+ If in table and not already configured: install styles package (if separate), add the global CSS import as the **first import** in the application's entry file, and add the Provider wrapper in the application's providers file.
126
+ If not in table: browse the installed design system's folder in `node_modules` for a `styles/` or `dist/` directory containing CSS files, and use what you find there.
124
127
 
125
- 1. `cat node_modules/<designSystem>/README.md` — note the correct import path and usage patterns for the installed version.
126
- 2. `grep "^export" node_modules/<designSystem>/dist/index.d.ts 2>/dev/null || grep -rl "^export" node_modules/<designSystem> --include="index.d.ts" | head -3 | xargs grep "^export"` — lists every component actually exported by the installed version.
127
- 3. For every component you plan to use, read its TypeScript prop interface from the installed `.d.ts`:
128
- `find node_modules/<designSystem> -name "ComponentName.d.ts" | head -3`, then `grep -A 40 "interface.*Props"` on the result.
129
- 4. Only use component names and prop names confirmed in those files. Do not rely on training knowledge of the API.
128
+ Since you have already read the design system's README, install the styles package it specifies (if any). If you have already installed it, skip this step. If the README did not provide enough detail about design-system-specific styles, browse the `styles/` folder within the installed design system package to locate the correct stylesheet and understand how it should be applied. Ensure these design system styles are applied globally so that all generated components render correctly.
130
129
 
131
- Also check:
130
+ Before implementing any component, verify whether design-system-specific styles are already configured in the existing codebase — check the application's entry file for a matching CSS import. If the styles are already imported and configured, skip this step and report "already configured".
132
131
 
133
- - Whether the design system has a **form layout wrapper** (label + input + helper text) — use it instead of manual margins
134
- - Whether it has **size/density/variant conventions** — use built-in props rather than custom padding
135
- - Whether it has a **companion icons package** — read its exports before using any icon name; never guess icon names
136
- - Whether it has a **tokens or CSS directory** — use design system CSS custom properties for spacing; never hardcode `px` values
132
+ Report what was installed/configured (or "already configured").
137
133
 
138
134
  ---
139
135
 
@@ -141,60 +137,42 @@ Also check:
141
137
 
142
138
  Create the component directory at the resolved output path (from Step 0).
143
139
 
144
- Create `<ComponentName>.tsx` using the pattern for the component type:
140
+ Create the component's main implementation file using the file naming convention and extension appropriate to the project's framework (determine this by examining existing components in the project).
145
141
 
146
142
  ### field
147
143
 
148
- Use this structure from `field-components.md` (read in Step 2):
144
+ Follow the implementation structure described in `field-components.md` (read in Step 2). That file specifies the exact imports, interface, props destructuring, display mode guards, event handling, and render approach for this project's framework. Use the DS component you identified in Step 3 as the primary input element.
149
145
 
150
- 1. Imports: React hooks + `handleEvent` from `../../helpers/event-utils` + `getComponentFromRegistry` from `@pega/sdk-react` + `PConnFieldProps` + DS input from Step 4
151
- 2. Interface extending `PConnFieldProps` with any extra props from the component skill file
152
- 3. Destructure: `getPConnect`, `label`, `required`, `disabled`, `value`, `validatemessage`, `status`, `readOnly`, `testId`, `helperText`, `displayMode`, `hideLabel`, `placeholder`
153
- 4. Display mode guards: if `DISPLAY_ONLY` or `STACKED_LARGE_VAL` → return `FieldValueList` (via `getComponentFromRegistry('FieldValueList')`)
154
- 5. Return → DS form input from Step 4, with `onBlur` calling `handleEvent(actions, 'changeNblur', propName, inputValue)`. Show `validatemessage` when `status === 'error'`. Pass `data-test-id={testId}` on the interactive element.
146
+ If a component-specific skill file exists, also incorporate its Behavioral Contract (validation rules, option loading, event sequences, edge cases).
155
147
 
156
148
  ### template
157
149
 
158
- Use this structure from `template-components.md` (read in Step 2):
159
-
160
- - **Layout**: `PropsWithChildren` + `templateCol` parsing + DS grid from Step 4 rendering children in column ratios. Mobile: stack to full width.
161
- - **Form**: `createElement(createPConnectComponent(), ...)` for each child from `getPConnect().getChildren()[0].getPConnect().getChildren()`. No DS primitives.
162
- - **Page**: `createElement(createPConnectComponent(), ...)` for each region from `getPConnect().getChildren()`. No DS primitives.
150
+ Follow the implementation structure described in `template-components.md` (read in Step 2). That file specifies the layout, form, and page patterns — including how to render child components — for this project's framework.
163
151
 
164
152
  ### widget
165
153
 
166
- Use this structure from `widget-components.md` (read in Step 2):
154
+ Follow the implementation structure described in `widget-components.md` (read in Step 2). That file specifies the imports, interface, data-fetching lifecycle, and render approach for this project's framework. Use the DS components you identified in Step 3 for presentation.
167
155
 
168
- 1. Imports: React hooks + DS components from Step 4 + `PConnProps` from `@pega/sdk-react`
169
- 2. Interface extending `PConnProps` with props from the component skill file
170
- 3. Component function: destructure `getPConnect`, call `getPConnect()` to get `pConn`
171
- 4. `useEffect` → data fetch using exact PCore API from skill file's Behavioral Contract
172
- 5. Return → DS Card/List/Table from Step 4, rendering fetched data
156
+ If a component-specific skill file exists, follow its Behavioral Contract for data-fetching logic, state management, and interaction handling.
173
157
 
174
158
  ### designSystemExtension
175
159
 
176
- Use this structure from `design-system-extension.md` (read in Step 2):
177
-
178
- - **Pattern B** (Pure display): variant mapping (urgent→error, etc.) + DS Alert/Card/Avatar from Step 4. No `getPConnect`.
179
- - **Pattern A** (PConnect display): CSS classes + optional DS typography. No DS primitives.
180
- - **Pattern C** (Complex display): `createElement(createPConnectComponent(), ...)` for PConnect children. No DS primitives.
160
+ Follow the implementation structure described in `design-system-extension.md` (read in Step 2). That file specifies the pattern variants (pure display, PConnect display, complex display) for this project's framework.
181
161
 
182
162
  ---
183
163
 
184
- Create `index.tsx`:
185
-
186
- ```typescript
187
- export { default } from './<ComponentName>';
188
- ```
164
+ If the project uses barrel/re-export files (check existing component directories for the convention), create one in the same directory following the same pattern.
189
165
 
190
166
  ---
191
167
 
192
168
  ## Step 6 — Register in component-map.ts
193
169
 
194
- Edit `src/components/component-map.ts`:
170
+ Open the project's component map file (the file that maps component names to their implementations) and:
195
171
 
196
- 1. Add the import at the top of the file, in the correct section (Fields / Templates / Widgets / Design System Extension)
197
- 2. Add an entry in `getSampleComponentMap()` under the matching category comment
172
+ 1. Add the import at the top of the file, in the correct section (Fields / Templates / Widgets / Design System Extension / Infra)
173
+ 2. Add an entry in the component map object under the matching category comment
174
+
175
+ An `infra` entry is an override of a component the SDK already contributes, so it must be listed **after** the SDK's built-in component spread. Listed before it, the spread replaces it and the override silently does nothing.
198
176
 
199
177
  ⚠️ **Key name exceptions** — verify after registration:
200
178
 
@@ -210,10 +188,6 @@ Do not restructure or reorder any existing entries.
210
188
 
211
189
  ## Step 7 — Verify the build
212
190
 
213
- Run:
214
-
215
- ```
216
- npm run build
217
- ```
191
+ Run the project's build process to confirm everything compiles without errors.
218
192
 
219
- If build errors occur, fix them before reporting completion. Report what files were created and what was added to `component-map.ts`.
193
+ If build errors occur, diagnose and fix them before reporting completion. Report what files were created and what was registered in the component map.
@@ -148,6 +148,7 @@
148
148
  "path": "src/components/infra/DashboardFilter"
149
149
  },
150
150
  { "name": "DeferLoad", "path": "src/components/infra/DeferLoad" },
151
+ { "name": "MultiStep", "path": "src/components/infra/MultiStep" },
151
152
  { "name": "NavBar", "path": "src/components/infra/NavBar" },
152
153
  { "name": "Stages", "path": "src/components/infra/Stages" },
153
154
  { "name": "VerticalTabs", "path": "src/components/infra/VerticalTabs" }
@@ -195,5 +196,102 @@
195
196
  "path": "src/components/designSystemExtension/WssQuickCreate"
196
197
  }
197
198
  ]
199
+ },
200
+ "aliases": {
201
+ "Combobox": "AutoComplete",
202
+ "ComboBox": "AutoComplete",
203
+ "Typeahead": "AutoComplete",
204
+ "Autosuggest": "AutoComplete",
205
+ "SearchSelect": "AutoComplete",
206
+ "Select": "Dropdown",
207
+ "Picklist": "Dropdown",
208
+ "SingleSelect": "Dropdown",
209
+ "Radio": "RadioButtons",
210
+ "RadioGroup": "RadioButtons",
211
+ "OptionGroup": "RadioButtons",
212
+ "Switch": "Checkbox",
213
+ "Toggle": "Checkbox",
214
+ "Boolean": "Checkbox",
215
+ "Textbox": "TextInput",
216
+ "StringInput": "TextInput",
217
+ "SingleLineText": "TextInput",
218
+ "Memo": "TextArea",
219
+ "MultilineText": "TextArea",
220
+ "Notes": "TextArea",
221
+ "WYSIWYG": "RichText",
222
+ "HtmlEditor": "RichText",
223
+ "FormattedText": "RichText",
224
+ "DatePicker": "Date",
225
+ "Calendar": "Date",
226
+ "TimePicker": "Time",
227
+ "DateTimePicker": "DateTime",
228
+ "Timestamp": "DateTime",
229
+ "Money": "Currency",
230
+ "Amount": "Currency",
231
+ "Percent": "Percentage",
232
+ "Ratio": "Percentage",
233
+ "Tags": "Multiselect",
234
+ "Chips": "Multiselect",
235
+ "TokenInput": "Multiselect",
236
+ "MultiSelectList": "Multiselect",
237
+ "Hyperlink": "SemanticLink",
238
+ "Anchor": "SemanticLink",
239
+ "FileUpload": "Attachment",
240
+ "Dropzone": "Attachment",
241
+ "Attachments": "Attachment",
242
+ "Grid": "SimpleTable",
243
+ "Table": "SimpleTable",
244
+ "DataTable": "SimpleTable",
245
+ "Repeater": "SimpleTable",
246
+ "Card": "SelectableCard",
247
+ "Tile": "SelectableCard",
248
+ "Address": "Location",
249
+ "Map": "Location",
250
+ "GeoPoint": "Location",
251
+ "Person": "UserReference",
252
+ "Assignee": "UserReference",
253
+ "Label": "TextContent",
254
+ "StaticText": "TextContent",
255
+ "Paragraph": "TextContent"
256
+ },
257
+ "behaviorClasses": {
258
+ "free text entry": ["TextInput"],
259
+ "long or multi-line text entry": ["TextArea"],
260
+ "text entry with suggestion list": ["AutoComplete"],
261
+ "single choice from a list": ["Dropdown"],
262
+ "single choice with all options visible": ["RadioButtons"],
263
+ "multiple choice from a list": ["Multiselect"],
264
+ "on/off value": ["Checkbox"],
265
+ "date value": ["Date"],
266
+ "time value": ["Time"],
267
+ "date and time value": ["DateTime"],
268
+ "whole number": ["Integer"],
269
+ "fractional number": ["Decimal"],
270
+ "monetary amount": ["Currency"],
271
+ "percentage": ["Percentage"],
272
+ "email address": ["Email"],
273
+ "phone number": ["Phone"],
274
+ "web address": ["URL"],
275
+ "formatted rich text entry": ["RichText", "RichTextEditor"],
276
+ "list of simple values": ["ScalarList"],
277
+ "reference to another record": ["ObjectReference"],
278
+ "reference to a person": ["UserReference", "Operator"],
279
+ "geographic location": ["Location"],
280
+ "file handling": ["Attachment", "FileUtility"],
281
+ "read-only text display": ["TextContent"],
282
+ "link display": ["SemanticLink"],
283
+ "grouped set of fields": ["Group", "FieldGroup", "FieldGroupList"],
284
+ "confirmation or alert message": ["CancelAlert", "AlertBanner", "Banner"],
285
+ "layout container": ["DefaultForm", "OneColumn", "TwoColumn", "NarrowWide", "WideNarrow"],
286
+ "tabular list": ["SimpleTable", "ListView"],
287
+ "selectable card": ["SelectableCard"],
288
+ "summary or display block": ["SummaryItem", "SummaryList", "Details", "DetailsFields", "CaseSummary"],
289
+ "label and value pair list": ["FieldValueList", "CaseSummaryFields"],
290
+ "task or work item list": ["ToDo"],
291
+ "activity or history feed": ["CaseHistory", "Pulse"],
292
+ "announcement or promotional block": ["AppAnnouncement"],
293
+ "record creation shortcut": ["QuickCreate", "WssQuickCreate"],
294
+ "people following a record": ["Followers"],
295
+ "search input form": ["SearchForm", "AdvancedSearch", "PromotedFilters"]
198
296
  }
199
297
  }