@pega/sdk 0.0.5 → 0.0.7

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 (269) hide show
  1. package/README.md +10 -3
  2. package/dist/index.js +828 -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/mcp/claude-code.mcp.json +8 -0
  159. package/templates/react-sdk-reference/.ai-common/mcp/copilot.mcp.json +8 -0
  160. package/templates/react-sdk-reference/.ai-common/mcp/cursor.mcp.json +11 -0
  161. package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +45 -71
  162. package/templates/react-sdk-reference/.ai-common/prompts/component-manifest.json +98 -0
  163. package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +155 -0
  164. package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +67 -237
  165. package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +26 -77
  166. package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +315 -0
  167. package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +31 -80
  168. package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +43 -99
  169. package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +33 -83
  170. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/AlertBanner.md +60 -74
  171. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +64 -84
  172. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +76 -109
  173. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/DetailsFields.md +84 -101
  174. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroup.md +62 -87
  175. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroupList.md +56 -76
  176. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldValueList.md +61 -85
  177. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Operator.md +84 -107
  178. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Pulse.md +36 -44
  179. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +125 -189
  180. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/WssQuickCreate.md +34 -50
  181. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +57 -179
  182. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +130 -0
  183. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +311 -0
  184. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +156 -0
  185. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +476 -0
  186. package/templates/react-sdk-reference/.ai-common/skills/field-components.md +120 -242
  187. package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +71 -212
  188. package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +47 -209
  189. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +90 -259
  190. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +75 -169
  191. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +65 -160
  192. package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +59 -157
  193. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +55 -134
  194. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +61 -185
  195. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +60 -138
  196. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Group.md +40 -99
  197. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +44 -111
  198. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +57 -165
  199. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Multiselect.md +41 -122
  200. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ObjectReference.md +32 -130
  201. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +48 -112
  202. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +43 -153
  203. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +76 -183
  204. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RichText.md +59 -176
  205. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +30 -123
  206. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +47 -178
  207. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SemanticLink.md +31 -117
  208. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +51 -106
  209. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextContent.md +22 -75
  210. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +54 -116
  211. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +46 -100
  212. package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +44 -93
  213. package/templates/react-sdk-reference/.ai-common/skills/field-skills/UserReference.md +40 -167
  214. package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +165 -0
  215. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/ActionButtons.md +122 -0
  216. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/MultiStep.md +178 -0
  217. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/Stages.md +140 -0
  218. package/templates/react-sdk-reference/.ai-common/skills/template-components.md +74 -228
  219. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +66 -167
  220. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +57 -170
  221. package/templates/react-sdk-reference/.ai-common/skills/template-skills/BannerPage.md +41 -76
  222. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +53 -109
  223. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +86 -289
  224. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +60 -185
  225. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +66 -115
  226. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DataReference.md +33 -68
  227. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +53 -133
  228. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultPage.md +39 -82
  229. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Details.md +38 -91
  230. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsSubTabs.md +47 -101
  231. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsThreeColumn.md +27 -34
  232. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsTwoColumn.md +25 -40
  233. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DynamicTabs.md +34 -104
  234. package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +46 -147
  235. package/templates/react-sdk-reference/.ai-common/skills/template-skills/HierarchicalForm.md +139 -100
  236. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboard.md +43 -82
  237. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md +47 -80
  238. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListPage.md +16 -29
  239. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +43 -228
  240. package/templates/react-sdk-reference/.ai-common/skills/template-skills/MultiReferenceReadOnly.md +20 -65
  241. package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +49 -97
  242. package/templates/react-sdk-reference/.ai-common/skills/template-skills/OneColumn.md +37 -71
  243. package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +58 -148
  244. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +82 -107
  245. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SimpleTable.md +21 -60
  246. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +43 -100
  247. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SubTabs.md +36 -76
  248. package/templates/react-sdk-reference/.ai-common/skills/template-skills/TwoColumn.md +41 -90
  249. package/templates/react-sdk-reference/.ai-common/skills/template-skills/WideNarrow.md +36 -43
  250. package/templates/react-sdk-reference/.ai-common/skills/template-skills/WssNavBar.md +25 -115
  251. package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +38 -174
  252. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +30 -57
  253. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +55 -101
  254. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/CaseHistory.md +38 -121
  255. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/FileUtility.md +37 -98
  256. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Followers.md +18 -33
  257. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/QuickCreate.md +26 -91
  258. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/SummaryItem.md +28 -120
  259. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +41 -272
  260. package/templates/react-sdk-reference/package.json +1 -1
  261. package/templates/react-sdk-reference/pega-auth-0.2.44.tgz +0 -0
  262. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  263. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +13 -3
  264. package/templates/react-native-sdk-reference/.github/AGENTS.md +0 -23
  265. package/templates/react-native-sdk-reference/.github/copilot-instructions.md +0 -40
  266. package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +0 -48
  267. package/templates/react-native-sdk-reference/App.tsx +0 -49
  268. package/templates/react-native-sdk-reference/expo-env.d.ts +0 -3
  269. package/templates/react-sdk-reference/pega-auth-0.2.42.tgz +0 -0
@@ -1,57 +1,37 @@
1
1
  # Skill: Design System Extension (DSE) Components
2
2
 
3
- Create or replace Design System Extension components in the react-sdk-reference application. DSE components are display-focused presentational components that render structured data without direct PConnect binding. Some receive `getPConnect`, others receive only display props.
3
+ Create or replace Design System Extension components in the project. DSE components are display-focused presentational components that render structured data without direct PConnect binding. Some receive `getPConnect`, others receive only display inputs.
4
4
 
5
5
  ---
6
6
 
7
7
  ## Architecture Overview
8
8
 
9
- ```
10
- src/components/designSystemExtension/<ComponentName>/
11
- ├── <ComponentName>.tsx # Component implementation
12
- ├── index.tsx # Re-export (if present)
13
- ├── <ComponentName>.css # Styles (optional)
14
- └── config-ext.json # Metadata (optional)
15
- ```
9
+ Each DSE component lives in its own folder under the project's design-system-extension components directory, named after the component. The folder contains:
10
+
11
+ | File | Purpose |
12
+ | ----------------------------- | ------------------------------------------------------- |
13
+ | Component implementation file | The component's logic and markup |
14
+ | Re-export module (if present) | Re-exports the component as the folder's default export |
15
+ | Companion styles (optional) | Styles scoped to the component |
16
+ | Metadata (optional) | Registration metadata (name, label, description, type) |
16
17
 
17
18
  ---
18
19
 
19
- ## Props Interface
20
+ ## Input Contract
20
21
 
21
- DSE components have varying prop patterns:
22
+ DSE components have varying input patterns:
22
23
 
23
24
  ### Pattern A: With PConnect (data-aware display)
24
25
 
25
- ```typescript
26
- import type { PConnProps } from '../../../types/PConnProps';
27
-
28
- interface FieldValueListProps extends PConnProps {
29
- name?: string;
30
- value?: string;
31
- variant?: 'stacked' | 'inline';
32
- }
33
- ```
26
+ The component's input contract extends the project's base component interface, which provides `getPConnect()` — a function returning the PConnect API object — in addition to its own custom inputs. Example: a field-value display component extending the base interface with additional fields like `name`, `value`, and `variant`.
34
27
 
35
28
  ### Pattern B: Without PConnect (pure presentation)
36
29
 
37
- ```typescript
38
- interface AlertBannerProps {
39
- variant: 'urgent' | 'warning' | 'info' | 'success';
40
- heading?: string;
41
- messages: Array<string | { label?: string; description?: string }>;
42
- onClose?: () => void;
43
- }
44
- ```
45
-
46
- ### Pattern C: Extended field props (display-only fields)
30
+ The component's input contract is standalone — it does NOT extend the base component interface. All rendering data arrives via direct inputs. Example: an alert-banner component with fields like `variant`, `heading`, `messages`, and `onClose`.
47
31
 
48
- ```typescript
49
- import type { PConnFieldProps } from '../../../types/PConnProps';
32
+ ### Pattern C: Extended field input contract (display-only fields)
50
33
 
51
- interface RichTextEditorProps extends PConnFieldProps {
52
- content?: string;
53
- }
54
- ```
34
+ The component's input contract extends the project's field input contract, which provides standard field-level inputs (`label`, `value`, `displayMode`, `required`, `disabled`, `readOnly`, `status`, `validatemessage`, `helperText`, `hideLabel`, `placeholder`, `testId`) plus `getPConnect()`. The component adds its own domain-specific inputs on top. Example: a rich-text-editor component extending the field input contract with an additional `content` field.
55
35
 
56
36
  ---
57
37
 
@@ -61,115 +41,38 @@ interface RichTextEditorProps extends PConnFieldProps {
61
41
 
62
42
  Used for: AlertBanner, Banner, Operator
63
43
 
64
- This pattern is design-system agnostic. The variant-mapping logic and message normalisation are always the same. The `// [DS RENDER]` section must be replaced with your design system's alert/notification primitive — see "Design System Adaptation" below.
65
-
66
- ```typescript
67
- // Import your design system alert/notification component:
68
- // e.g. import { Alert } from 'antd';
69
- // e.g. import { Alert } from '@chakra-ui/react';
70
-
71
- interface AlertBannerProps {
72
- variant: 'urgent' | 'warning' | 'info' | 'success';
73
- heading?: string;
74
- messages: Array<string | { label?: string; description?: string }>;
75
- onClose?: () => void;
76
- }
77
-
78
- export default function AlertBanner(props: AlertBannerProps) {
79
- const { variant, heading, messages = [], onClose } = props;
80
-
81
- // Map Pega variant names to your DS equivalent
82
- // e.g. MUI: urgent → 'error' | Ant Design: urgent → 'error' | Chakra: urgent → 'error'
83
- const variantMap: Record<string, string> = {
84
- urgent: 'error',
85
- warning: 'warning',
86
- info: 'info',
87
- success: 'success'
88
- };
89
-
90
- // Normalise messages — Pega may send a plain string or an object
91
- function renderMessage(msg: string | { label?: string; description?: string }) {
92
- if (typeof msg === 'string') return msg;
93
- return `${msg.label ?? ''} ${msg.description ?? ''}`.trim();
94
- }
95
-
96
- // [DS RENDER] — replace with your design system's alert/notification primitive
97
- // The variantMap value above should be passed as the DS severity/type/status prop
98
- return (
99
- <YourDesignSystemAlert
100
- type={variantMap[variant] ?? 'info'}
101
- message={heading}
102
- description={messages.map(renderMessage).join(' ')}
103
- closable={!!onClose}
104
- onClose={onClose}
105
- />
106
- );
107
- }
108
- ```
44
+ This pattern is design-system agnostic. The variant-mapping logic and message normalisation are always the same — only the final rendered output changes based on the chosen design system (see "Design System Adaptation" below).
45
+
46
+ **Structure:**
47
+
48
+ 1. **Use** the design system's alert/notification primitive as the visual foundation.
49
+ 2. **Define the input contract** (Pattern B — no PConnect). Include the Pega-facing inputs: `variant`, `heading`/`messages`, and an optional close/dismiss handler.
50
+ 3. **Define a variant map** at module level — a plain lookup mapping Pega variant strings (`urgent`, `warning`, `info`, `success`) to the design system's equivalent severity/type value. Unknown variants fall back to `info`.
51
+ 4. **Define a message normaliser** — a helper function that accepts either a plain string or an object (`{ label?, description? }`) and returns formatted content. Pega may send either format.
52
+ 5. **Render** using the design system's alert primitive. Pass the mapped severity as the type/severity/status input. Wire the dismiss handler to the design system's close input only if provided. Render message content inside the alert body.
109
53
 
110
54
  ### Field Value Display Component
111
55
 
112
56
  Used for: FieldValueList, CaseSummaryFields, DetailsFields
113
57
 
114
- ```typescript
115
- import type { PConnProps } from '../../../types/PConnProps';
116
-
117
- interface FieldValueListProps extends PConnProps {
118
- name?: string;
119
- value?: string;
120
- variant?: 'stacked' | 'inline';
121
- }
122
-
123
- export default function FieldValueList(props: FieldValueListProps) {
124
- const { name, value, variant = 'inline' } = props;
125
-
126
- if (variant === 'stacked') {
127
- return (
128
- <div className='field-value-stacked'>
129
- <span className='field-label'>{name}</span>
130
- <span className='field-value-large'>{value}</span>
131
- </div>
132
- );
133
- }
134
-
135
- return (
136
- <div className='field-value-inline'>
137
- {name && <span className='field-label'>{name}: </span>}
138
- <span className='field-value'>{value}</span>
139
- </div>
140
- );
141
- }
142
- ```
58
+ **Structure:**
59
+
60
+ 1. **Define the input contract** (Pattern A — extends the project's base component interface) with fields for `name` (optional string), `value` (any), and `variant` (optional — `'stacked'` or `'inline'`, defaulting to `'inline'`).
61
+ 2. **Stacked variant** — when `variant` is `'stacked'`, render the label on its own line above the value. The value should use a larger/emphasized typography style.
62
+ 3. **Inline variant** (default) — render the label and value side by side. The label occupies roughly 1/3 width, value occupies 2/3. If `name` is not provided, render only the value at full width.
63
+ 4. **Empty value handling** — if `value` is undefined or an empty string, display a placeholder (`'---'`).
143
64
 
144
65
  ### Complex Display Component (with PConnect for data)
145
66
 
146
67
  Used for: FieldGroup, FieldGroupList, Pulse
147
68
 
148
- ```typescript
149
- import { createElement } from 'react';
150
- import createPConnectComponent from '../../helpers/react_pconnect';
151
- import type { PConnProps } from '../../../types/PConnProps';
152
-
153
- interface FieldGroupProps extends PConnProps {
154
- label?: string;
155
- showLabel?: boolean;
156
- }
157
-
158
- export default function FieldGroup(props: FieldGroupProps) {
159
- const { getPConnect, label, showLabel = true } = props;
160
- const pConn = getPConnect();
161
- const children = pConn.getChildren();
162
-
163
- return (
164
- <fieldset>
165
- {showLabel && label && <legend>{label}</legend>}
166
- {children.map((child, i) =>
167
- createElement(createPConnectComponent(), { ...child, key: `fg-${i}` })
168
- )}
169
- </fieldset>
170
- );
171
- }
172
- ```
69
+ **Structure:**
70
+
71
+ 1. **Define the input contract** (Pattern A — extends the project's base component interface) with component-specific fields (e.g., `label`, `showLabel`).
72
+ 2. **Obtain the PConnect instance** by calling `getPConnect()` from the component's inputs.
73
+ 3. **Retrieve children** via `pConn.getChildren()` — this returns an array of child component configurations from the Pega engine.
74
+ 4. **Render children dynamically** — iterate over the children array and render each child configuration using the project's PConnect bridge utility, keyed uniquely. This bridges the Pega component tree into the chosen framework's rendering model.
75
+ 5. **Wrap in semantic HTML** — use appropriate semantic elements (e.g., `<fieldset>` with `<legend>` for grouped fields). Conditionally show labels based on the `showLabel` input.
173
76
 
174
77
  ---
175
78
 
@@ -179,33 +82,22 @@ DSE components use one of three approaches depending on the component and design
179
82
 
180
83
  ### CSS File Pattern (DS-agnostic, preferred for Field Value components)
181
84
 
182
- ```css
183
- /* FieldValueList.css */
184
- .field-value-inline {
185
- display: flex;
186
- gap: 0.5rem;
187
- align-items: baseline;
188
- }
189
-
190
- .field-label {
191
- font-weight: 600;
192
- color: var(--text-secondary);
193
- }
85
+ Create a co-located `.css` file named after the component. Typical CSS conventions for DSE components:
194
86
 
195
- .field-value-large {
196
- font-size: 1.25rem;
197
- font-weight: 500;
198
- }
199
- ```
87
+ - **Inline layout** — use `display: flex` with a small gap (`0.5rem`) and `align-items: baseline` for label/value pairs.
88
+ - **Labels** — `font-weight: 600` with a secondary text color (use a CSS custom property like `var(--text-secondary)`).
89
+ - **Large values (stacked variant)** — `font-size: 1.25rem`, `font-weight: 500`.
90
+ - Use CSS custom properties (design tokens) for colors and spacing — never hardcode pixel values for spacing.
91
+ - Class names follow the pattern `.component-name-element` (e.g., `.field-value-inline`, `.field-label`).
200
92
 
201
- ### Design System Style Props (use if your DS provides them)
93
+ ### Design System Style Inputs (use if your DS provides them)
202
94
 
203
- If the chosen design system provides built-in spacing, typography, or layout props, prefer them over plain CSS:
95
+ If the chosen design system provides built-in spacing, typography, or layout inputs, prefer them over plain CSS:
204
96
 
205
- - Use the DS's layout wrapper (e.g., `<Stack>`, `<Flex>`, `<HStack>`) instead of manual flex CSS
206
- - Use DS typography components (e.g., `<Text>`, `<Heading>`) instead of raw `<span>`/`<div>`
97
+ - Use the DS's layout primitives (e.g., a stack, flex, or grid wrapper component) instead of manual flex CSS
98
+ - Use the DS's typography primitives (e.g., a text or heading component) instead of raw `<span>`/`<div>`
207
99
  - Use DS CSS custom properties or tokens for spacing — never hardcode `px` values
208
- - Discover which style props are available from the installed `.d.ts` files before using them
100
+ - Discover which style inputs are available from the design system's type declarations before using them
209
101
 
210
102
  ---
211
103
 
@@ -225,12 +117,7 @@ The component-specific skill file specifies which pattern applies.
225
117
 
226
118
  **2. If the chosen design system is not listed** — use the component purpose and pattern category above to pick the closest DS primitive.
227
119
 
228
- **3. Discover the API from installed packages** — confirm component names and props from `.d.ts` before writing JSX:
229
-
230
- ```bash
231
- find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Alert\|Badge\|Avatar" | head -5
232
- grep -A 30 "interface.*Props" <path-to-file>
233
- ```
120
+ **3. Discover the API from installed packages** — confirm component names and inputs from the design system's type declarations before writing the component's markup. Search the design system package's type declarations for relevant component interfaces (e.g., look for files mentioning `Alert`, `Badge`, or `Avatar` and read the exported input interface to confirm available input names and types).
234
121
 
235
122
  **4. Variant mapping** — always map Pega's variant names to your DS equivalent before passing to DS components:
236
123
 
@@ -245,19 +132,10 @@ grep -A 30 "interface.*Props" <path-to-file>
245
132
 
246
133
  ## Registration
247
134
 
248
- Register DSE components in `src/components/component-map.ts`:
249
-
250
- ```typescript
251
- import AlertBanner from './designSystemExtension/AlertBanner';
252
- import FieldValueList from './designSystemExtension/FieldValueList';
135
+ Register DSE components in the project's component map:
253
136
 
254
- // In getSampleComponentMap():
255
- {
256
- ...sdkComponents,
257
- AlertBanner,
258
- FieldValueList,
259
- }
260
- ```
137
+ 1. **Import** the component's default export from its folder under the design-system-extension components directory.
138
+ 2. **Add the component** to the object returned by the project's component registration function, using the component name as the key (must match the Pega registration key exactly). The component is spread alongside the base component map.
261
139
 
262
140
  ---
263
141
 
@@ -281,11 +159,11 @@ import FieldValueList from './designSystemExtension/FieldValueList';
281
159
 
282
160
  ## Key Conventions
283
161
 
284
- 1. **Default export** — `export default function ComponentName`.
285
- 2. **Flexible messages** — Always handle both `string` and `object` formats for text props (Pega may send either).
162
+ 1. **Default export** — export the component as the module's default export.
163
+ 2. **Flexible messages** — Always handle both `string` and `object` formats for text inputs (Pega may send either).
286
164
  3. **No side effects** — DSE components should be pure renderers. No data fetching or mutations.
287
- 4. **Variant mapping** — Map Pega variant names (urgent, warning, etc.) to your design system's equivalents.
165
+ 4. **Variant mapping** — Map Pega variant names (urgent, warning, etc.) to the design system's equivalents.
288
166
  5. **Display modes** — If a DSE component is also used as a display mode by field components (e.g., FieldValueList), it should be simple and fast to render.
289
- 6. **Graceful fallbacks** — Handle missing/undefined props gracefully with defaults.
290
- 7. **CSS over styled-components** — DSE components in react-sample typically use plain CSS files or MUI `sx` prop, not styled-components.
167
+ 6. **Graceful fallbacks** — Handle missing/undefined inputs gracefully with defaults.
168
+ 7. **Prefer plain CSS or the design system's built-in styling mechanism** over CSS-in-JS libraries, unless the project's conventions dictate otherwise.
291
169
  8. **Accessible markup** — Use semantic HTML (fieldset/legend for groups, proper heading levels, ARIA labels).
@@ -0,0 +1,130 @@
1
+ # Skill: Analyze Customer Repository
2
+
3
+ Scan a customer's application codebase and produce a structured **Design Profile** document that captures their design system, coding conventions, and component patterns. This profile is consumed by the component generation workflow to produce Pega components that blend seamlessly with the customer's existing application.
4
+
5
+ ---
6
+
7
+ ## Purpose
8
+
9
+ When Pega case flows are embedded into a customer's existing application, the generated Pega components must visually and structurally match the host application. This skill extracts the information needed to achieve that match.
10
+
11
+ ---
12
+
13
+ ## What to Extract
14
+
15
+ | Aspect | Discovery approach | Output |
16
+ | -------------------------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
17
+ | **Framework & language** | Read project configuration and dependency manifest | Framework name + version, primary language, module system |
18
+ | **UI component library** | Identify UI/component packages in dependencies | Library name + version (or "custom" if no third-party library) |
19
+ | **Theme & design tokens** | Search for theme configuration files, token/variable definitions, style constants | Token inventory: colors (primary, secondary, error, background, text), spacing scale, typography (font families, sizes, weights), border radii, shadows, breakpoints |
20
+ | **Component structure patterns** | Read 3–5 representative form-like components (text inputs, selects, buttons, checkboxes) | How they define their input interface, internal state, event handling, and output/rendering |
21
+ | **Styling approach** | Detect the styling mechanism used across components | Identifier (utility classes, CSS modules, CSS-in-JS, scoped styles, inline, etc.) + import/usage pattern |
22
+ | **File & folder conventions** | Analyze the project's component directory structure | Naming convention (casing, separators), folder-per-component vs flat, barrel/re-export pattern, test co-location |
23
+ | **Form & state management** | Identify form-handling libraries or patterns in dependencies and source | Library or pattern name + how values, validation, and submission are handled |
24
+ | **Import & module conventions** | Analyze import statements across multiple files | Path aliasing, barrel imports, relative vs absolute, grouping order |
25
+ | **Validation & error display** | Observe how existing components show validation feedback | Pattern: inline message, tooltip, border color change, icon, combination |
26
+
27
+ ---
28
+
29
+ ## Steps
30
+
31
+ ### Step 1 — Identify project fundamentals
32
+
33
+ Read the project's dependency manifest (the file that lists packages and their versions). From it, determine:
34
+
35
+ - The application framework and its version
36
+ - The primary language and its configuration
37
+ - The UI component library (if any) and version
38
+ - Any form-handling, state management, or validation libraries
39
+ - The styling library (if separate from the UI library)
40
+
41
+ ### Step 2 — Locate theme and design token configuration
42
+
43
+ Search the project for theme/token definitions. Look for:
44
+
45
+ - Files with "theme", "tokens", "variables", "palette", "colors", or "design" in their name or path
46
+ - Style variable definition files (custom properties, constants, exported objects)
47
+ - Configuration files for utility-class frameworks (if applicable)
48
+
49
+ Read the discovered files and extract:
50
+
51
+ - **Color palette** — primary, secondary, accent, error/danger, warning, success, neutral/background, text colors
52
+ - **Spacing scale** — the progression of spacing values used
53
+ - **Typography** — font families, size scale, weight scale, line heights
54
+ - **Border radii** — small, medium, large, full/rounded values
55
+ - **Shadows** — elevation levels used
56
+ - **Breakpoints** — responsive design boundaries (if defined)
57
+
58
+ ### Step 3 — Analyze representative components
59
+
60
+ Find 3–5 components that handle user input (text fields, selects/dropdowns, checkboxes, date pickers, buttons). Prioritize components that:
61
+
62
+ - Accept user input and emit value changes
63
+ - Show validation feedback
64
+ - Support disabled/read-only states
65
+
66
+ For each component, note:
67
+
68
+ 1. **Input interface** — how the component defines what it accepts (typed props, attributes, inputs, parameters)
69
+ 2. **Internal state** — how it manages transient state (controlled vs uncontrolled, local vs lifted)
70
+ 3. **Event handling** — how it reports value changes and blur/commit events to the parent
71
+ 4. **Validation display** — how it shows error messages, styling changes, or icons on invalid state
72
+ 5. **Styling mechanism** — how it applies visual styles (class names, style objects, utility classes, scoped selectors)
73
+ 6. **Accessibility** — labels, ARIA attributes, focus management
74
+
75
+ ### Step 4 — Determine file and folder conventions
76
+
77
+ List the project's component directory and observe:
78
+
79
+ - **Folder structure** — flat list, folder-per-component, grouped by type/feature, or nested
80
+ - **Naming convention** — PascalCase, camelCase, kebab-case, snake_case for files and folders
81
+ - **Module boundaries** — barrel files (index re-exports), direct imports, or path-based resolution
82
+ - **Co-located files** — whether tests, styles, and types live alongside the component or separately
83
+
84
+ ### Step 5 — Analyze import conventions
85
+
86
+ Read 5–10 import sections across different files and determine:
87
+
88
+ - **Path resolution** — aliases (e.g., `@/`, `~/`, `#`) vs relative paths
89
+ - **Grouping order** — external packages first, then internal modules, then relative imports (or other order)
90
+ - **Named vs default imports** — which pattern dominates
91
+ - **Style imports** — how stylesheets or style modules are imported
92
+
93
+ ### Step 5.1 — Analyze navigation and presentation surfaces
94
+
95
+ The embedded flow has to appear somewhere, and that surface should be one the application already uses. Capture how this application presents a self-contained task:
96
+
97
+ - **Routing approach** — how routes are declared and navigated (file-based, configuration-based, or a router API), and how a route change is triggered from a control
98
+ - **Overlay primitives** — which of dialog, modal, drawer, sheet or popover the project actually uses, where those primitives come from, and how one is opened and dismissed
99
+ - **Existing task entry points** — find 2–3 places where a control starts a multi-step or form-based task, and record for each: the control's visible label, the file it lives in, and what it does — opens an overlay, navigates to a route, or reveals a region in place
100
+ - **Layout shell** — what wraps a routed page (navigation, header, sidebar), so a flow mounted at a route keeps the surroundings the customer expects
101
+
102
+ This is what makes it possible to offer the user real choices in their own vocabulary instead of a generic list of surfaces, and to infer the right surface when a launch control already has behaviour. Record what exists; do not recommend a surface here.
103
+
104
+ ### Step 6 — Synthesize into Design Profile
105
+
106
+ Produce a structured markdown document with the following sections. Use heading levels for organization and bullet lists for values. Do not include source code — describe patterns in prose and reference file paths for the AI to read during generation.
107
+
108
+ **Section 1: Project Fundamentals** — list the framework name and version, language and configuration, UI library name and version (or "Custom"), styling approach, form handling library or pattern, and module system.
109
+
110
+ **Section 2: Design Tokens** — organize by sub-sections: Colors (primary, secondary, accent, error, warning, success, background, text, border with their semantic names and values), Spacing (scale), Typography (font families, sizes, weights), Borders and Radii (values), Shadows (elevation values), Breakpoints (if defined).
111
+
112
+ **Section 3: Component Patterns** — describe each convention as a sub-section: Input Interface Convention (how components define what they accept), State Management Convention (how local state is handled), Event Handling Convention (how value changes are reported — immediate, on blur, debounced), Validation Display Convention (where errors appear, how error styling is applied), Styling Convention (how styles are applied to elements, how conditional styles work).
113
+
114
+ **Section 4: File Conventions** — list the folder structure type, naming convention (casing), re-export/barrel pattern, test file location, and style file location.
115
+
116
+ **Section 5: Import Conventions** — list path resolution approach (aliases or relative), grouping order, default vs named import preference, and style import pattern.
117
+
118
+ **Section 6: Representative Component Examples** — list the 3–5 components analyzed with their file paths and why each was selected (e.g., "text input with validation", "select with async options"). These serve as reference points the generation workflow can re-read for detailed implementation guidance.
119
+
120
+ **Section 7: Navigation and Surfaces** — list the routing approach and how navigation is triggered, the overlay primitives the project uses and where they come from, the layout shell that wraps a routed page, and a table of existing task entry points giving each control's visible label, its file, and what it does today. The wiring workflow reads this section to decide where the embedded flow renders.
121
+
122
+ Save this document to `pega-components/.design-profile.md` in the customer's project.
123
+
124
+ ---
125
+
126
+ ## Notes
127
+
128
+ - If the project uses no third-party UI library (fully custom components), the "UI Library" field should be "Custom" and the representative component analysis becomes especially important — the generated Pega components will directly replicate the customer's custom primitives.
129
+ - If multiple styling approaches are mixed (e.g., utility classes for layout + component library for inputs), document both and specify which is used where.
130
+ - Do not include actual source code in the Design Profile. Describe patterns in prose. Reference file paths for the AI to read during generation.