@pega/sdk 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/README.md +10 -3
  2. package/dist/index.js +977 -92
  3. package/package.json +1 -1
  4. package/templates/angular-sdk-reference/package.json +12 -12
  5. package/templates/angular-sdk-reference/tsconfig.json +1 -1
  6. package/templates/react-native-sdk-reference/.claude/settings.json +5 -0
  7. package/templates/react-native-sdk-reference/.prettierignore +17 -0
  8. package/templates/react-native-sdk-reference/.vscode/extensions.json +1 -0
  9. package/templates/react-native-sdk-reference/.vscode/settings.json +7 -0
  10. package/templates/react-native-sdk-reference/AGENTS.md +3 -0
  11. package/templates/react-native-sdk-reference/CLAUDE.md +1 -0
  12. package/templates/react-native-sdk-reference/README.md +56 -0
  13. package/templates/react-native-sdk-reference/app.json +40 -5
  14. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/expo-symbol 2.svg +3 -0
  15. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/grid.png +0 -0
  16. package/templates/react-native-sdk-reference/assets/expo.icon/icon.json +35 -0
  17. package/templates/react-native-sdk-reference/assets/icons/bell.png +0 -0
  18. package/templates/react-native-sdk-reference/assets/icons/clock.png +0 -0
  19. package/templates/react-native-sdk-reference/assets/icons/cross.png +0 -0
  20. package/templates/react-native-sdk-reference/assets/icons/donut.png +0 -0
  21. package/templates/react-native-sdk-reference/assets/icons/gear.png +0 -0
  22. package/templates/react-native-sdk-reference/assets/icons/globe.png +0 -0
  23. package/templates/react-native-sdk-reference/assets/icons/internet.png +0 -0
  24. package/templates/react-native-sdk-reference/assets/icons/music.png +0 -0
  25. package/templates/react-native-sdk-reference/assets/icons/right-arrow.png +0 -0
  26. package/templates/react-native-sdk-reference/assets/icons/speed.png +0 -0
  27. package/templates/react-native-sdk-reference/assets/images/MediaCo.png +0 -0
  28. package/templates/react-native-sdk-reference/assets/images/adaptive-icon.png +0 -0
  29. package/templates/react-native-sdk-reference/assets/images/android-icon-background.png +0 -0
  30. package/templates/react-native-sdk-reference/assets/images/android-icon-foreground.png +0 -0
  31. package/templates/react-native-sdk-reference/assets/images/android-icon-monochrome.png +0 -0
  32. package/templates/react-native-sdk-reference/assets/images/expo-badge-white.png +0 -0
  33. package/templates/react-native-sdk-reference/assets/images/expo-badge.png +0 -0
  34. package/templates/react-native-sdk-reference/assets/images/expo-logo.png +0 -0
  35. package/templates/react-native-sdk-reference/assets/images/favicon.png +0 -0
  36. package/templates/react-native-sdk-reference/assets/images/icon.png +0 -0
  37. package/templates/react-native-sdk-reference/assets/images/logo-glow.png +0 -0
  38. package/templates/react-native-sdk-reference/assets/images/partial-react-logo.png +0 -0
  39. package/templates/react-native-sdk-reference/assets/images/react-logo.png +0 -0
  40. package/templates/react-native-sdk-reference/assets/images/react-logo@2x.png +0 -0
  41. package/templates/react-native-sdk-reference/assets/images/react-logo@3x.png +0 -0
  42. package/templates/react-native-sdk-reference/assets/images/splash-icon.png +0 -0
  43. package/templates/react-native-sdk-reference/assets/images/tutorial-web.png +0 -0
  44. package/templates/react-native-sdk-reference/eslint.config.mjs +68 -0
  45. package/templates/react-native-sdk-reference/package.json +59 -14
  46. package/templates/react-native-sdk-reference/pega-constellationjs-0.26.3.tgz +0 -0
  47. package/templates/react-native-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  48. package/templates/react-native-sdk-reference/pega-sdk-types-0.1.0.tgz +0 -0
  49. package/templates/react-native-sdk-reference/sdk-config.json +31 -9
  50. package/templates/react-native-sdk-reference/src/app/_layout.tsx +38 -0
  51. package/templates/react-native-sdk-reference/src/app/home/_layout.tsx +39 -0
  52. package/templates/react-native-sdk-reference/src/app/home/contact.tsx +11 -0
  53. package/templates/react-native-sdk-reference/src/app/home/index.tsx +36 -0
  54. package/templates/react-native-sdk-reference/src/app/home/shop.tsx +11 -0
  55. package/templates/react-native-sdk-reference/src/app/home/your-services.tsx +11 -0
  56. package/templates/react-native-sdk-reference/src/app/index.tsx +72 -0
  57. package/templates/react-native-sdk-reference/src/app/workarea.tsx +135 -0
  58. package/templates/react-native-sdk-reference/src/bridge/Context/StoreContext.ts +4 -0
  59. package/templates/react-native-sdk-reference/src/bridge/RootComponent.tsx +12 -0
  60. package/templates/react-native-sdk-reference/src/bridge/react_pconnect.jsx +334 -0
  61. package/templates/react-native-sdk-reference/src/components/common/DisplayField.tsx +29 -0
  62. package/templates/react-native-sdk-reference/src/components/common/FormFieldWrapper.tsx +5 -0
  63. package/templates/react-native-sdk-reference/src/components/common/HelperText.tsx +11 -0
  64. package/templates/react-native-sdk-reference/src/components/common/LabelText.tsx +22 -0
  65. package/templates/react-native-sdk-reference/src/components/common/inputTheme.ts +17 -0
  66. package/templates/react-native-sdk-reference/src/components/design-system/AutoComplete.tsx +126 -0
  67. package/templates/react-native-sdk-reference/src/components/design-system/FieldGroup.tsx +72 -0
  68. package/templates/react-native-sdk-reference/src/components/design-system/Radio.tsx +61 -0
  69. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +196 -0
  70. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
  71. package/templates/react-native-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +89 -0
  72. package/templates/react-native-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
  73. package/templates/react-native-sdk-reference/src/components/field/Currency/Currency.tsx +84 -0
  74. package/templates/react-native-sdk-reference/src/components/field/Currency/index.tsx +1 -0
  75. package/templates/react-native-sdk-reference/src/components/field/Date/Date.tsx +94 -0
  76. package/templates/react-native-sdk-reference/src/components/field/Date/index.tsx +1 -0
  77. package/templates/react-native-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +211 -0
  78. package/templates/react-native-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
  79. package/templates/react-native-sdk-reference/src/components/field/Email/Email.tsx +81 -0
  80. package/templates/react-native-sdk-reference/src/components/field/Email/index.tsx +1 -0
  81. package/templates/react-native-sdk-reference/src/components/field/Group/Group.tsx +47 -0
  82. package/templates/react-native-sdk-reference/src/components/field/Group/index.tsx +1 -0
  83. package/templates/react-native-sdk-reference/src/components/field/Integer/Integer.tsx +84 -0
  84. package/templates/react-native-sdk-reference/src/components/field/Integer/index.tsx +1 -0
  85. package/templates/react-native-sdk-reference/src/components/field/Phone/Phone.tsx +85 -0
  86. package/templates/react-native-sdk-reference/src/components/field/Phone/index.ts +1 -0
  87. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +118 -0
  88. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/index.ts +1 -0
  89. package/templates/react-native-sdk-reference/src/components/field/TextArea/TextArea.tsx +86 -0
  90. package/templates/react-native-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
  91. package/templates/react-native-sdk-reference/src/components/field/TextInput/TextInput.tsx +84 -0
  92. package/templates/react-native-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
  93. package/templates/react-native-sdk-reference/src/components/field/URL/URL.tsx +86 -0
  94. package/templates/react-native-sdk-reference/src/components/field/URL/index.tsx +1 -0
  95. package/templates/react-native-sdk-reference/src/components/helpers/data_page.ts +20 -0
  96. package/templates/react-native-sdk-reference/src/components/helpers/event-utils.ts +20 -0
  97. package/templates/react-native-sdk-reference/src/components/helpers/instructions-utils.ts +57 -0
  98. package/templates/react-native-sdk-reference/src/components/helpers/state-utils.tsx +46 -0
  99. package/templates/react-native-sdk-reference/src/components/helpers/template-utils.ts +75 -0
  100. package/templates/react-native-sdk-reference/src/components/helpers/utils.ts +339 -0
  101. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/ActionButtons.tsx +63 -0
  102. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/index.tsx +1 -0
  103. package/templates/react-native-sdk-reference/src/components/infra/Assignment/Assignment.tsx +348 -0
  104. package/templates/react-native-sdk-reference/src/components/infra/Assignment/index.tsx +1 -0
  105. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/AssignmentCard.tsx +56 -0
  106. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/index.tsx +1 -0
  107. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/FlowContainer.tsx +57 -0
  108. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/helpers.ts +137 -0
  109. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/index.tsx +1 -0
  110. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/RootContainer.tsx +52 -0
  111. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/index.tsx +1 -0
  112. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/helper.ts +128 -0
  113. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/index.tsx +59 -0
  114. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/ViewContainer.tsx +31 -0
  115. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/helper.ts +39 -0
  116. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/index.ts +1 -0
  117. package/templates/react-native-sdk-reference/src/components/infra/Containers/helper.ts +9 -0
  118. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/ErrorBoundary.tsx +53 -0
  119. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/index.tsx +1 -0
  120. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/MultiStep.tsx +24 -0
  121. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/index.ts +1 -0
  122. package/templates/react-native-sdk-reference/src/components/infra/Reference/Reference.tsx +68 -0
  123. package/templates/react-native-sdk-reference/src/components/infra/Reference/index.tsx +1 -0
  124. package/templates/react-native-sdk-reference/src/components/infra/Reference/utils.ts +16 -0
  125. package/templates/react-native-sdk-reference/src/components/infra/Region/Region.tsx +10 -0
  126. package/templates/react-native-sdk-reference/src/components/infra/Region/index.tsx +1 -0
  127. package/templates/react-native-sdk-reference/src/components/infra/View/View.tsx +49 -0
  128. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +38 -0
  129. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
  130. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/utils/index.ts +28 -0
  131. package/templates/react-native-sdk-reference/src/components/template/Details/Details.tsx +82 -0
  132. package/templates/react-native-sdk-reference/src/components/template/Details/index.tsx +1 -0
  133. package/templates/react-native-sdk-reference/src/components/template/OneColumn/OneColumn.tsx +29 -0
  134. package/templates/react-native-sdk-reference/src/components/template/OneColumn/index.tsx +1 -0
  135. package/templates/react-native-sdk-reference/src/context/LoaderContext.tsx +42 -0
  136. package/templates/react-native-sdk-reference/src/mediaco/AdvBanner.tsx +62 -0
  137. package/templates/react-native-sdk-reference/src/mediaco/Header.tsx +60 -0
  138. package/templates/react-native-sdk-reference/src/mediaco/HomeScreen.tsx +78 -0
  139. package/templates/react-native-sdk-reference/src/mediaco/QuickActions.tsx +68 -0
  140. package/templates/react-native-sdk-reference/src/mediaco/ResolutionScreen.tsx +48 -0
  141. package/templates/react-native-sdk-reference/src/mediaco/SafeArea.tsx +11 -0
  142. package/templates/react-native-sdk-reference/src/mediaco/TabBar.tsx +102 -0
  143. package/templates/react-native-sdk-reference/src/mediaco/YourServices.tsx +90 -0
  144. package/templates/react-native-sdk-reference/src/sdk-pega-component-map.ts +64 -0
  145. package/templates/react-native-sdk-reference/src/types/PConnProps.d.ts +41 -0
  146. package/templates/react-native-sdk-reference/src/utils/auth.ts +62 -0
  147. package/templates/react-native-sdk-reference/src/utils/init-pcore.ts +37 -0
  148. package/templates/react-native-sdk-reference/src/utils/pcore-polyfills.ts +66 -0
  149. package/templates/react-native-sdk-reference/tsconfig.json +9 -8
  150. package/templates/react-sdk-reference/.ai-common/agents/embedded-flow-expert.md +171 -0
  151. package/templates/react-sdk-reference/{.github/agents/implementation-expert.agent.md → .ai-common/agents/implementation-expert.md} +44 -48
  152. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions-embedded.md +119 -0
  153. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions.md +192 -0
  154. package/templates/react-sdk-reference/.ai-common/instructions/component-map.md +35 -0
  155. package/templates/react-sdk-reference/.ai-common/instructions/dse-component.md +47 -0
  156. package/templates/react-sdk-reference/.ai-common/instructions/embedded-component.md +134 -0
  157. package/templates/react-sdk-reference/.ai-common/instructions/field-component.md +50 -0
  158. package/templates/react-sdk-reference/.ai-common/instructions/template-component.md +43 -0
  159. package/templates/react-sdk-reference/.ai-common/instructions/widget-component.md +45 -0
  160. package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +193 -0
  161. package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/component-manifest.json +106 -2
  162. package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +155 -0
  163. package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +358 -0
  164. package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +165 -0
  165. package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +315 -0
  166. package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +190 -0
  167. package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +227 -0
  168. package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +172 -0
  169. package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/identify-components.md +4 -0
  170. package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
  171. package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/AlertBanner.md +61 -25
  172. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +176 -0
  173. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +180 -0
  174. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/DetailsFields.md +180 -0
  175. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroup.md +153 -0
  176. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroupList.md +136 -0
  177. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldValueList.md +140 -0
  178. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Operator.md +85 -41
  179. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Pulse.md +97 -0
  180. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +226 -0
  181. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/WssQuickCreate.md +35 -20
  182. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +169 -0
  183. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +130 -0
  184. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +311 -0
  185. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +156 -0
  186. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +476 -0
  187. package/templates/react-sdk-reference/.ai-common/skills/field-components.md +190 -0
  188. package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +157 -0
  189. package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +178 -0
  190. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +189 -0
  191. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +136 -0
  192. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +126 -0
  193. package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +115 -0
  194. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +119 -0
  195. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +136 -0
  196. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +99 -0
  197. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Group.md +88 -0
  198. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +102 -0
  199. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +142 -0
  200. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Multiselect.md +42 -53
  201. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/ObjectReference.md +36 -60
  202. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +113 -0
  203. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +100 -0
  204. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +153 -0
  205. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RichText.md +117 -0
  206. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +95 -0
  207. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +155 -0
  208. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/SemanticLink.md +35 -57
  209. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +109 -0
  210. package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextContent.md +27 -52
  211. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +112 -0
  212. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +102 -0
  213. package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +96 -0
  214. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/UserReference.md +41 -78
  215. package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +165 -0
  216. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/ActionButtons.md +122 -0
  217. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/MultiStep.md +178 -0
  218. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/Stages.md +140 -0
  219. package/templates/react-sdk-reference/.ai-common/skills/template-components.md +198 -0
  220. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +126 -0
  221. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +160 -0
  222. package/templates/react-sdk-reference/.ai-common/skills/template-skills/BannerPage.md +90 -0
  223. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +129 -0
  224. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +196 -0
  225. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +157 -0
  226. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +149 -0
  227. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DataReference.md +46 -31
  228. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +141 -0
  229. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DefaultPage.md +40 -34
  230. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Details.md +96 -0
  231. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsSubTabs.md +103 -0
  232. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsThreeColumn.md +85 -0
  233. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsTwoColumn.md +77 -0
  234. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DynamicTabs.md +103 -0
  235. package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +130 -0
  236. package/templates/react-sdk-reference/.ai-common/skills/template-skills/HierarchicalForm.md +200 -0
  237. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboard.md +110 -0
  238. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md +105 -0
  239. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/ListPage.md +21 -16
  240. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +234 -0
  241. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/MultiReferenceReadOnly.md +18 -23
  242. package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +161 -0
  243. package/templates/react-sdk-reference/.ai-common/skills/template-skills/OneColumn.md +114 -0
  244. package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +132 -0
  245. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +173 -0
  246. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/SimpleTable.md +44 -24
  247. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +103 -0
  248. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SubTabs.md +89 -0
  249. package/templates/react-sdk-reference/.ai-common/skills/template-skills/TwoColumn.md +133 -0
  250. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +36 -43
  251. package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/WssNavBar.md +26 -45
  252. package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +124 -0
  253. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +94 -0
  254. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +163 -0
  255. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/CaseHistory.md +90 -0
  256. package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/FileUtility.md +68 -62
  257. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Followers.md +24 -19
  258. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/QuickCreate.md +27 -44
  259. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/SummaryItem.md +35 -61
  260. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +261 -0
  261. package/templates/react-sdk-reference/package.json +1 -1
  262. package/templates/react-sdk-reference/package.minimal.json +29 -0
  263. package/templates/react-sdk-reference/pega-auth-0.2.44.tgz +0 -0
  264. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  265. package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
  266. package/templates/react-sdk-reference/src/MashupApp.tsx +8 -19
  267. package/templates/react-sdk-reference/src/PortalApp.tsx +6 -17
  268. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +13 -3
  269. package/templates/react-native-sdk-reference/.github/AGENTS.md +0 -23
  270. package/templates/react-native-sdk-reference/.github/copilot-instructions.md +0 -40
  271. package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +0 -48
  272. package/templates/react-native-sdk-reference/App.tsx +0 -49
  273. package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
  274. package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
  275. package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -75
  276. package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -93
  277. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -88
  278. package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -152
  279. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -158
  280. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -140
  281. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -153
  282. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -165
  283. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -138
  284. package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
  285. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
  286. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -137
  287. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +0 -152
  288. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
  289. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +0 -148
  290. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -134
  291. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +0 -113
  292. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -118
  293. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -85
  294. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -232
  295. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -291
  296. package/templates/react-sdk-reference/.claude/skills/field-components.md +0 -295
  297. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -113
  298. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +0 -211
  299. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -175
  300. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -109
  301. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -101
  302. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -106
  303. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +0 -99
  304. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +0 -134
  305. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +0 -109
  306. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +0 -96
  307. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -88
  308. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +0 -145
  309. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -93
  310. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -129
  311. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -167
  312. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -149
  313. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -134
  314. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -231
  315. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +0 -98
  316. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +0 -117
  317. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -107
  318. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -89
  319. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -86
  320. package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -321
  321. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -150
  322. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -124
  323. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +0 -86
  324. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -106
  325. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -137
  326. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -131
  327. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -109
  328. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +0 -104
  329. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +0 -112
  330. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +0 -90
  331. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -97
  332. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +0 -80
  333. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -80
  334. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +0 -106
  335. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +0 -112
  336. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +0 -116
  337. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +0 -108
  338. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +0 -82
  339. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -142
  340. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -82
  341. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +0 -143
  342. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -114
  343. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +0 -130
  344. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +0 -142
  345. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -108
  346. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -82
  347. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +0 -133
  348. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +0 -139
  349. package/templates/react-sdk-reference/.claude/skills/widget-components.md +0 -260
  350. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +0 -84
  351. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +0 -151
  352. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +0 -110
  353. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -206
  354. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -198
  355. package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
  356. package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
  357. package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +0 -74
  358. package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
  359. package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
  360. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +0 -193
  361. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
  362. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
  363. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
  364. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
  365. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
  366. package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
  367. package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
  368. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
  369. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
  370. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
  371. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +0 -149
  372. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +0 -136
  373. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +0 -116
  374. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +0 -120
  375. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +0 -154
  376. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +0 -88
  377. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
  378. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
  379. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +0 -294
  380. package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +0 -299
  381. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
  382. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
  383. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
  384. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
  385. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
  386. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
  387. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
  388. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
  389. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
  390. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +0 -95
  391. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
  392. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
  393. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
  394. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +0 -169
  395. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
  396. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
  397. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
  398. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +0 -143
  399. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
  400. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
  401. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +0 -153
  402. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
  403. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +0 -106
  404. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
  405. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
  406. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
  407. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
  408. package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
  409. package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +0 -327
  410. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
  411. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
  412. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +0 -88
  413. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
  414. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
  415. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
  416. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
  417. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
  418. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
  419. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
  420. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +0 -93
  421. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +0 -100
  422. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +0 -83
  423. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +0 -83
  424. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +0 -106
  425. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
  426. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +0 -118
  427. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +0 -109
  428. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +0 -90
  429. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +0 -73
  430. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
  431. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +0 -85
  432. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
  433. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +0 -114
  434. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
  435. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
  436. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
  437. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
  438. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +0 -84
  439. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +0 -136
  440. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
  441. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
  442. package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +0 -276
  443. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
  444. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
  445. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +0 -112
  446. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
  447. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +0 -104
  448. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +0 -119
  449. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +0 -172
  450. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
  451. package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
  452. package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
  453. package/templates/react-sdk-reference/.github/copilot-instructions.md +0 -243
  454. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +0 -40
  455. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +0 -77
  456. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +0 -77
  457. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +0 -95
  458. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +0 -90
  459. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +0 -192
  460. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -193
  461. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +0 -411
  462. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +0 -205
  463. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +0 -223
  464. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +0 -229
  465. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +0 -208
  466. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
  467. package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
  468. package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
  469. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -152
  470. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
  471. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -148
  472. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +0 -134
  473. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -113
  474. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +0 -118
  475. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -155
  476. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +0 -85
  477. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +0 -232
  478. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +0 -137
  479. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +0 -291
  480. package/templates/react-sdk-reference/.github/skills/field-components.md +0 -295
  481. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -113
  482. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -211
  483. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -175
  484. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -109
  485. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -101
  486. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -106
  487. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -99
  488. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -134
  489. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -109
  490. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -96
  491. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +0 -88
  492. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -145
  493. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +0 -188
  494. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +0 -173
  495. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +0 -93
  496. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +0 -129
  497. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +0 -167
  498. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +0 -149
  499. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +0 -134
  500. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +0 -231
  501. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +0 -155
  502. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -98
  503. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +0 -107
  504. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +0 -89
  505. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +0 -86
  506. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -203
  507. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -70
  508. package/templates/react-sdk-reference/.github/skills/template-components.md +0 -321
  509. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +0 -150
  510. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -124
  511. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -86
  512. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +0 -106
  513. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -137
  514. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -131
  515. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +0 -109
  516. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -124
  517. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -104
  518. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -90
  519. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +0 -97
  520. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -80
  521. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +0 -80
  522. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -106
  523. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -112
  524. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -116
  525. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -108
  526. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -82
  527. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +0 -70
  528. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -142
  529. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -143
  530. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +0 -114
  531. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -130
  532. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -142
  533. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +0 -131
  534. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +0 -108
  535. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +0 -82
  536. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -133
  537. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -152
  538. package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -260
  539. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -84
  540. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -151
  541. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -110
  542. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -103
  543. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +0 -118
  544. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -169
  545. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -198
  546. package/templates/react-sdk-reference/AGENTS.md +0 -246
  547. package/templates/react-sdk-reference/pega-auth-0.2.42.tgz +0 -0
  548. /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/run-and-verify.md +0 -0
@@ -0,0 +1,155 @@
1
+ # Skill: SelectableCard
2
+
3
+ Card-style radio or checkbox selection grid with optional image support.
4
+
5
+ > **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a grid of selectable cards. Each card contains a radio button or checkbox (depending on `type`), a label, optional image, and optional additional fields. Cards are clickable — clicking anywhere on the card triggers the input. Used by `RadioButtons` (variant='card') and `Checkbox` (variant='card').
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Pega Name:** `SelectableCard`
16
+ - **Type / Subtype:** Internal design system extension
17
+ - **Registration key:** `SelectableCard` (in the project's component map)
18
+
19
+ > This component does NOT have a metadata file and does NOT extend the project's field input contract — it's a design system component used internally by `RadioButtons` and `Checkbox`.
20
+
21
+ ## Inputs
22
+
23
+ | Prop | Type | Default | Description |
24
+ | ------------------------ | ----------------------- | ------- | ---------------------------------------------------------------------------------- |
25
+ | `getPConnect` | `function` | — | PConnect accessor |
26
+ | `type` | `'radio' \| 'checkbox'` | — | Selection type |
27
+ | `image` | `object` | — | `{ imagePosition, imageSize, showImageDescription, imageField, imageDescription }` |
28
+ | `dataSource` | `any` | — | Source of card data (in editable mode) |
29
+ | `recordKey` | `string` | `''` | The key field name in each record (e.g., `'pyID'`) |
30
+ | `className` | `string` | — | CSS class for the card |
31
+ | `cardLabel` | `string` | — | The field name to use as card title |
32
+ | `hideFieldLabels` | `boolean` | `false` | Hide field labels inside cards |
33
+ | `readOnly` | `boolean` | — | Read-only mode |
34
+ | `disabled` | `boolean` | — | Disabled state |
35
+ | `readOnlyList` | `any[]` | `[]` | Selected items for read-only display |
36
+ | `displayMode` | `string` | — | Display mode string |
37
+ | `radioBtnValue` | `any` | — | Currently selected value (radio mode) |
38
+ | `onChange` | `function` | — | Change handler |
39
+ | `onBlur` | `function` | — | Blur handler |
40
+ | `onClick` | `function` | — | Click handler |
41
+ | `onKeyDown` | `function` | — | KeyDown handler |
42
+ | `additionalProps` | `any` | — | Spread onto the radio/checkbox input |
43
+ | `testId` | `string` | — | Test identifier |
44
+ | `setIsRadioCardSelected` | `function` | — | Callback to inform parent whether radio selection matched |
45
+ | `showNoValue` | `boolean` | `false` | When true (read-only + no selected items), render "No Value" text |
46
+
47
+ ## Implementation Structure
48
+
49
+ This component does NOT extend the project's field input contract — it defines its own inputs directly.
50
+
51
+ **Module Setup:** The component depends on two local helper functions:
52
+
53
+ 1. **`prepareComponentInCaseSummary(pConnectMeta, getPConnect)`** — creates a display-only component from field metadata. Receives the field's metadata object (containing `config`, `type`, and optional `children`) and a `getPConnect` function. Resolves the field label via `getPConnect().resolveConfigProps({ label: config.label })`, then creates the field component via `getPConnect().createComponent({ type, children, config })`. Sets `displayMode` to `'DISPLAY_ONLY'` and `readOnly` to `true` on the created component's inherited props. Returns `{ name, value }` where `name` is the resolved label string and `value` is the created component (a renderable UI node).
54
+
55
+ 2. **`resolveReferenceFields(item, hideFieldLabels, recordKey, pConnect)`** — resolves additional display fields for a card record using the PConnect presets pattern. Gets `presets` from `pConnect.getRawMetadata().config.presets`, then extracts field definitions from `presets[0].children[0].children` (limiting to a maximum of 5 fields). For each field preset, creates a PConnect configuration with `meta` set to the preset (with `displayMode: 'DISPLAY_ONLY'` and `contextName` from the parent PConnect added to `config`) and `useCustomContext` set to the current data item. Calls `PCore.createPConnect(fieldMeta)` to create a live PConnect instance for that field, retrieves its metadata via `configObj.getPConnect().getMetadata()`, then passes it to `prepareComponentInCaseSummary` to obtain the rendered component. Returns an array of objects: when `hideFieldLabels` is true, each entry is `{ id, value }`; otherwise `{ id, name, value, type }` — where `id` is a unique string combining `item[recordKey]` and the field index, `name` is the resolved label, `value` is the rendered field component, and `type` is the preset's field type string.
56
+
57
+ **Main Component Logic** — steps in order:
58
+
59
+ 1. **Receive all inputs** (`image` is a nested object) — `getPConnect`, `type`; from `image` receive `imagePosition`, `imageSize`, `showImageDescription`, `imageField` (default `''`), `imageDescription` (default `''`); also `dataSource`, `recordKey` (default `''`), `className`, `cardLabel`, `hideFieldLabels` (default `false`), `readOnly`, `disabled`, `readOnlyList` (default `[]`), `displayMode`, `radioBtnValue`, `onChange`, `onBlur`, `onClick`, `onKeyDown`, `additionalProps`, `testId`, `setIsRadioCardSelected`, `showNoValue` (default `false`); also `pConn` via `getPConnect()`.
60
+ 2. **"No Value" guard** — when `showNoValue` is true, return a text element reading "No Value" and stop.
61
+ 3. **Data source selection** — `cardDataSource` is `readOnlyList` (or `[]`) when `readOnly` or `displayMode === 'DISPLAY_ONLY'`, otherwise `dataSource?.source`; `imageDescriptionKey` is `imageDescription` when `showImageDescription` is true, otherwise `undefined`.
62
+ 4. **Card click handler** (`handleCardClick`) — makes the entire card clickable: returns early when `disabled || readOnly`; returns early when the click target is inside a `label` or `input` (native click already handled); otherwise finds the radio/checkbox input inside the current card and programmatically clicks it.
63
+ 5. **Track radio selection state** — a local `radioItemSelected` flag, initialized to `false`.
64
+ 6. **Map cards** — render a container iterating `cardDataSource ?? []`; for each `item`, resolve additional fields via `resolveReferenceFields(item, hideFieldLabels, recordKey, pConn)` (which returns an array of objects with rendered component values), build an image object when `item[imageField]` exists, and branch: in display mode render a simple read-only card (no input); in editable mode render a card containing a `Radio` or `Checkbox` control; render each resolved field's `value` directly (it is a renderable component node, NOT a plain string); while iterating, when `type === 'radio'` and `radioBtnValue === item[recordKey]`, set `radioItemSelected = true`. After the loop, when `type === 'radio'` and `setIsRadioCardSelected` is provided, call `setIsRadioCardSelected(radioItemSelected)`.
65
+
66
+ ## Behavioral Contract
67
+
68
+ ### Data source selection
69
+
70
+ `cardDataSource` is `readOnlyList` (or `[]` if empty) when `readOnly` or `displayMode === 'DISPLAY_ONLY'`; otherwise it is `dataSource?.source`.
71
+
72
+ ### "No Value" guard
73
+
74
+ If `showNoValue`: render a plain text element showing `'No Value'` and return early.
75
+
76
+ ### Card click handler
77
+
78
+ Cards should be clickable anywhere (not just on the checkbox/radio): the handler returns early when `disabled` or `readOnly` is set; it also returns early when the click target is inside a `label` or `input` element (the native click is already handled in that case); otherwise it locates the radio or checkbox input within the current card element and programmatically clicks it.
79
+
80
+ ### Subsection: Display mode (`displayMode === 'DISPLAY_ONLY'`)
81
+
82
+ Render a **simple read-only card** (no radio/checkbox) containing, in a flex-row layout: an optional image, the card title (`item[cardLabel]`), and the additional resolved fields (from `resolveReferenceFields`). Each field's `value` is a rendered component node — render it directly (do NOT stringify it). If `field.name` is present, render it as a label alongside the value.
83
+
84
+ ### Subsection: Editable mode (radio or checkbox)
85
+
86
+ Render a **selectable card** wrapped in a container with top padding, with a pointer cursor, full height, and a column flex direction, and a click handler (`handleCardClick`) on the card itself. Inside, the card content area (styled per the image layout table below) contains: an optional image section (full width, 16:9 aspect ratio, contained) shown for inline positions at roughly 40% width; a content section at roughly 60% width containing either a radio control (`value={item[recordKey]}`, `checked={radioBtnValue === item[recordKey]}`, `onChange`) or a checkbox control (`id={item[recordKey]}`, `checked` computed by checking whether `readOnlyList` contains an entry matching `item[recordKey]`, `onChange`), each labeled with `item[cardLabel]`; and finally the list of additional resolved fields, each rendered with its field name (if present) alongside its value (a rendered component node). Unless the field's `type` is `'TextArea'`, lay out each field entry as a two-column grid (label in one column, rendered component in the other).
87
+
88
+ ### Image layout (inline positions)
89
+
90
+ | `imagePosition` | CardContent style | Image section width | Content section width |
91
+ | ---------------- | ------------------------------------------- | ------------------- | --------------------- |
92
+ | `'inline-start'` | `display: flex` | 40% | 60% |
93
+ | `'inline-end'` | `display: flex, flexDirection: row-reverse` | 40% | 60% |
94
+ | block (default) | default | full width | full width |
95
+
96
+ ### Image element
97
+
98
+ **Visual-only styling notes:** The image spans the full width of its container with a transparent background, a 16:9 aspect ratio, and is constrained to the container's max height/width while using `object-fit: contain` so it scales without distortion.
99
+
100
+ ### Field display layout
101
+
102
+ **Visual-only styling notes:** Each additional field in editable mode uses a small font size and a small margin; unless the field type is `TextArea`, it is laid out as a two-column grid (label in one column, value in the other).
103
+
104
+ ### Radio tracking
105
+
106
+ While iterating cards, if `type === 'radio'` and `radioBtnValue === item[recordKey]` for the current item, set `radioItemSelected = true`. After the loop completes, if `setIsRadioCardSelected` is provided, call it with the final `radioItemSelected` value.
107
+
108
+ ## Display Mode Rendering
109
+
110
+ `displayMode === 'DISPLAY_ONLY'`: renders simple read-only cards (no radio/checkbox inputs). Uses `readOnlyList` as the data source.
111
+
112
+ ## Visual Specifications
113
+
114
+ | Property | Editable card | Display-only card |
115
+ | -------------------- | ------------------------------------------------ | ----------------- |
116
+ | Cursor | `pointer` (unless disabled/readOnly → `default`) | Default |
117
+ | Height | `100%` (fills grid row) | Auto |
118
+ | Layout | Column flex | Row flex |
119
+ | Padding top | 15px wrapper | — |
120
+ | Image (display-only) | 100px fixed width | 100px fixed width |
121
+ | Card border | Default (design-system card elevation) | Default |
122
+ | Disabled | `cursor: default` | — |
123
+
124
+ **Visual-only styling notes:** Each card has a thin light border, small border radius, comfortable padding, a pointer cursor, and a column flex layout that fills the height of its grid row, with a small top margin; on hover the border switches to an accent color. Disabled cards use a default cursor and reduced opacity; read-only cards use a default cursor. The card label text uses the standard body font size and regular weight.
125
+
126
+ ## Edge Cases & Special Logic
127
+
128
+ - **`resolveReferenceFields(item, hideFieldLabels, recordKey, pConn)`** — resolves additional display fields using the PConnect presets pattern. Gets field definitions from `pConnect.getRawMetadata().config.presets[0].children[0].children` (max 5 fields). For each preset, creates a PConnect instance via `PCore.createPConnect({ meta: { ...preset, config: { ...preset.config, displayMode: 'DISPLAY_ONLY', contextName: pConnect.getContextName() } }, useCustomContext: item })`, retrieves its metadata, and passes it to `prepareComponentInCaseSummary` to produce a rendered field component. The returned `value` for each field is a live rendered component (with proper formatting for currency, dates, etc.), NOT a plain string — render it directly in the UI.
129
+ - **`prepareComponentInCaseSummary(pConnectMeta, getPConnect)`** — creates a display-only field component. Resolves the label from config, calls `getPConnect().createComponent({ type, children, config })`, then sets inherited props `displayMode: 'DISPLAY_ONLY'` and `readOnly: true` on the created component. Returns `{ name, value }`.
130
+ - **Do NOT use `Object.keys(item)` to enumerate fields** — this shows raw internal keys, system properties, and unformatted values. Always use the presets-based resolution described above.
131
+ - Checkbox `id={item[recordKey]}` — required for the card click handler to find and click the input by ID.
132
+ - `getPConnect` input on the checkbox control: passed through to support SDK checkbox augmentation.
133
+ - `imageDescriptionKey = showImageDescription ? imageDescription : undefined` — only show alt text when `showImageDescription` is true.
134
+ - **`imageField`** — this value is the last path segment of the image property reference (e.g., if the Pega property path is `.PhoneImage`, the `imageField` passed to this component is `PhoneImage`). The parent component (RadioButtons or Checkbox) is responsible for extracting this segment before passing it.
135
+
136
+ ## Dependencies
137
+
138
+ - Two local helper functions: `prepareComponentInCaseSummary` (creates display-only field components from metadata) and `resolveReferenceFields` (resolves preset fields into rendered components via `PCore.createPConnect`).
139
+ - `PCore.createPConnect` — SDK API for creating PConnect instances from field metadata with custom context.
140
+ - The DS's radio and checkbox components.
141
+ - The DS's card/container component.
142
+ - The DS's text/typography component.
143
+
144
+ ## Design System Mapping
145
+
146
+ **UI control type:** Selectable card grid (radio or multi-select).
147
+
148
+ When implementing in a specific design system, map the following:
149
+
150
+ - **Card container** → use the DS's card component with a pointer cursor and click handler
151
+ - **Radio/Checkbox** → use the DS's radio or checkbox component inside each card
152
+ - **Card label** → use the DS's text/typography component for the card title
153
+ - **Image layout** → configure flex direction based on `imagePosition` (inline-start, inline-end, or block)
154
+ - **Read-only/display mode** → render simple cards without radio/checkbox inputs, using `readOnlyList` as data source
155
+ - **"No Value" guard** → render plain text when no items are selected in read-only mode
@@ -2,21 +2,21 @@
2
2
 
3
3
  Clickable hyperlink that navigates to a referenced Pega case or data object using semantic URL resolution.
4
4
 
5
- > **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, props interface, display modes, event handling, and registration patterns common to ALL field components.
5
+ > **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
6
6
 
7
7
  ---
8
8
 
9
9
  ## Component Purpose
10
10
 
11
- Renders a clickable link (`<a>` or button-style link) that navigates to a Pega case or data object. Resolves the correct semantic URL based on whether the reference is a Case or Data type. Handles Ctrl/Meta+click for opening in a new tab. Shows `'--'` when no text is provided.
11
+ Renders a clickable link that navigates to a Pega case or data object. Resolves the correct semantic URL based on whether the reference is a Case or Data type. Handles Ctrl/Meta+click for opening in a new tab. Shows `'--'` when no text is provided.
12
12
 
13
13
  ## Pega Metadata
14
14
 
15
15
  - **Pega Name:** `SemanticLink`
16
16
  - **Type / Subtype:** `Field` / `Link-SemanticLink`
17
- - **Registration key:** `SemanticLink` (in `component-map.ts`)
17
+ - **Registration key:** `SemanticLink` (in the project's component map)
18
18
 
19
- ## Props (component-specific)
19
+ ## Inputs (component-specific)
20
20
 
21
21
  | Prop | Type | Default | Description |
22
22
  | ------------------------- | ----------------- | ------- | ---------------------------------------------------------------------------------- |
@@ -30,6 +30,22 @@ Renders a clickable link (`<a>` or button-style link) that navigates to a Pega c
30
30
  | `dataRelationshipContext` | `string \| null` | `null` | Context for data relationship resolution |
31
31
  | `contextPage` | `any` | — | Context page with `classID` |
32
32
 
33
+ ## Implementation Structure
34
+
35
+ This component computes a URL and renders a clickable link. Most logic is URL resolution — no form state.
36
+
37
+ **Module Setup:** The component depends on a local utility module (`semanticUtils`) for data reference resolution. Define the input contract as an extension of the project's field input contract, adding `text`, `resourcePayload`, `resourceParams`, `previewKey`, `onClick`, `testId`, `referenceType`, `dataRelationshipContext`, and `contextPage` fields.
38
+
39
+ **Main Component Logic** — steps in order:
40
+
41
+ 1. **Receive inputs** (note: `onClick` is received but NOT used directly) — `text`, `resourcePayload` (default `{}`), `resourceParams` (default `{}`), `getPConnect`, `previewKey`, `onClick`, `testId` (default `''`), `referenceType`, `dataRelationshipContext` (default `null`), `contextPage`, and collect remaining inputs into `restInputs`.
42
+ 2. **Constants** — `ACTION_OPENWORKBYHANDLE` and `ACTION_SHOWDATA` from `PCore.getSemanticUrlUtils().getActions()`; `pConnect` via `getPConnect()`; `DATA` from `PCore.getConstants().RESOURCE_TYPES`, plus `WORKCLASS` and `CASE_INFO_CLASSID` from the same constants object.
43
+ 3. **URL resolution variables** — `linkURL` (default `''`), `payload` (default `{}`), `dataViewName`, and `isData` (default `false`).
44
+ 4. **Determine reference type and resolve the URL** — see the Behavioral Contract "URL Resolution" section.
45
+ 5. **`showDataAction()`** — calls `getPConnect().getActionsApi().showData(...)`; see the Behavioral Contract section below.
46
+ 6. **`openLinkClick(e)`** (click handler) — when neither `metaKey` nor `ctrlKey` is pressed, prevent the default navigation and instead call `showDataAction()` or `openWorkByHandle`; when either modifier key is pressed, let the browser open the `href` in a new tab.
47
+ 7. **Render the link** — a link element with `href` set to `linkURL`, the click handler, a test-id attribute, the remaining inputs spread, and content set to `text || '--'`.
48
+
33
49
  ## Behavioral Contract
34
50
 
35
51
  ### URL Resolution
@@ -41,14 +57,7 @@ Renders a clickable link (`<a>` or button-style link) that navigates to a Pega c
41
57
  - If `contextPage?.classID`: override `resourcePayload.caseClassName = contextPage.classID`
42
58
  - If `resourcePayload.caseClassName === WORKCLASS`: override with actual case class from `pConnect.getValue(CASE_INFO_CLASSID)`
43
59
 
44
- **Step 2a: Data reference (`referenceType === 'DATA'` or `shouldTreatAsDataReference`):**
45
-
46
- ```
47
- const dataRefContext = semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)
48
- dataViewName = dataRefContext.dataContext
49
- payload = dataRefContext.dataContextParameters
50
- isData = true
51
- ```
60
+ **Step 2a: Data reference (`referenceType === 'DATA'` or `shouldTreatAsDataReference`):** call `semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)` to get a `dataRefContext`; set `dataViewName = dataRefContext.dataContext`, `payload = dataRefContext.dataContextParameters`, and `isData = true`.
52
61
 
53
62
  **Step 2b: Resource type DATA (`resourcePayload.resourceType === 'DATA'`):**
54
63
 
@@ -64,19 +73,7 @@ isData = true
64
73
 
65
74
  ### Click Handler (`openLinkClick`)
66
75
 
67
- ```typescript
68
- function openLinkClick(e) {
69
- if (!e.metaKey && !e.ctrlKey) {
70
- e.preventDefault()
71
- if (isData or shouldTreatAsDataReference) {
72
- showDataAction()
73
- } else if (previewKey) {
74
- getPConnect().getActionsApi().openWorkByHandle(previewKey, resourcePayload.caseClassName)
75
- }
76
- }
77
- // If metaKey/ctrlKey: allow default browser behavior (open in new tab)
78
- }
79
- ```
76
+ When neither `e.metaKey` nor `e.ctrlKey` is set: call `e.preventDefault()`, then either call `showDataAction()` (when this is a data reference or `shouldTreatAsDataReference` is true) or, when `previewKey` is set, call `getPConnect().getActionsApi().openWorkByHandle(previewKey, resourcePayload.caseClassName)`. When `e.metaKey` or `e.ctrlKey` is set, do nothing and allow the browser's default behavior (opening the link in a new tab).
80
77
 
81
78
  ### `showDataAction()`
82
79
 
@@ -89,7 +86,7 @@ No explicit `displayMode` handling — `SemanticLink` is always rendered as a li
89
86
 
90
87
  ## Visual Specifications
91
88
 
92
- Derived from `makeStyles` and MUI `Link` props:
89
+ Derived from the reference component's styling:
93
90
 
94
91
  | Property | Value |
95
92
  | ----------- | ---------------------------------------- |
@@ -100,56 +97,37 @@ Derived from `makeStyles` and MUI `Link` props:
100
97
  | Font weight | 400 |
101
98
  | Underline | Default link underline on hover |
102
99
  | Cursor | Pointer |
103
- | Text | `text` prop value, or `'--'` if empty |
104
-
105
- **CSS-only implementation:**
106
-
107
- ```css
108
- .semantic-link {
109
- display: inline-block;
110
- padding: 8px;
111
- margin: 8px;
112
- color: #1976d2;
113
- text-decoration: none;
114
- cursor: pointer;
115
- font-weight: 400;
116
- background: none;
117
- border: none;
118
- font-size: inherit;
119
- }
120
- .semantic-link:hover {
121
- text-decoration: underline;
122
- }
123
- ```
100
+ | Text | `text` input value, or `'--'` if empty |
101
+
102
+ **Visual-only styling notes:** The link renders as an inline block with 8px padding and margin on all sides, using the theme's primary link color with no default text decoration, a pointer cursor, normal font weight (400), transparent background, and no border, inheriting the surrounding font size; on hover the text becomes underlined.
124
103
 
125
104
  ## Edge Cases & Special Logic
126
105
 
127
106
  - **BUG-678282 fix:** When `resourceParams.workID === ''` and `previewKey` is a string, set `resourceParams.objectID = previewKey.split(' ')[1]` to handle cases where workID was not populated.
128
107
  - If `previewKey` is set: also set `resourceParams.id = previewKey`.
129
108
  - `linkURL` is computed synchronously at render — if an error occurs in data reference resolution, it is silently caught (`try/catch`) and `linkURL` remains `''`.
130
- - `onClick` prop from parent is received but NOT used directly — the component has its own `openLinkClick`. Do not call the parent's `onClick` directly.
109
+ - `onClick` input from parent is received but NOT used directly — the component has its own `openLinkClick`. Do not call the parent's `onClick` directly.
131
110
  - **Ctrl/Meta+click**: `e.metaKey || e.ctrlKey` → don't `preventDefault()`, let the browser open the href in a new tab.
132
111
  - `text || '--'` is always rendered — never renders empty.
133
112
 
134
113
  ## Dependencies
135
114
 
136
- - `semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)` from `./utils` (local).
115
+ - Local utility: `semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)`.
137
116
  - `PCore.getSemanticUrlUtils().getResolvedSemanticURL()` — URL resolution.
138
117
  - `PCore.getSemanticUrlUtils().getActions()` — `ACTION_OPENWORKBYHANDLE`, `ACTION_SHOWDATA`.
139
118
  - `PCore.getDataTypeUtils().getLookUpDataPage()`, `getLookUpDataPageInfo()`, `getDataPageKeys()`.
140
119
  - `PCore.getAnnotationUtils().isProperty()`, `getPropertyName()`.
141
120
  - `PCore.getConstants()` — `RESOURCE_TYPES.DATA`, `WORKCLASS`, `CASE_INFO.CASE_INFO_CLASSID`.
142
- - A link/anchor component (e.g., MUI `<Link component='button'>`, or native `<a>`/`<button>`).
121
+ - A link/anchor element (native `<a>` with button-like behavior, or the DS's link component).
143
122
 
144
123
  ## Design System Mapping
145
124
 
146
125
  **UI control type:** Clickable hyperlink (button or anchor with navigation behavior).
147
126
 
148
- Listed design systems are examples only.
127
+ When implementing in a specific design system, map the following:
149
128
 
150
- | Design System | Recommended Component |
151
- | ------------------ | ---------------------------------------------------- |
152
- | Default (CSS only) | `<button class="semantic-link">` with anchor styling |
153
- | MUI | `<Link component='button'>` |
154
- | Ant Design | `<Typography.Link>` or `<Button type="link">` |
155
- | Chakra UI | `<Link as="button">` |
129
+ - **Link element** → use the DS's link or button-link component (renders as an anchor with `href`)
130
+ - **Click handler** → prevent default for normal clicks; allow Ctrl/Meta+click to open in new tab
131
+ - **Empty text** → render `'--'` when `text` is falsy
132
+ - **Padding/margin** → `8px` all sides
133
+ - **Color** → primary link color from the theme
@@ -0,0 +1,109 @@
1
+ # Skill: TextArea
2
+
3
+ Multi-line text input field that binds to a Pega case property.
4
+
5
+ > **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders an editable multi-line text area. Used for long-form text input such as descriptions, notes, or comments. Similar to `TextInput` but allows multiple lines with configurable min/max rows.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Pega Name:** `TextArea`
16
+ - **Type / Subtype:** `Field` / `Text` (multi-line)
17
+ - **Registration key:** `TextArea` (in the project's component map)
18
+
19
+ ## Inputs (component-specific)
20
+
21
+ | Name | Type | Description |
22
+ | --------------- | ---------------- | ---------------------------------------------------------- |
23
+ | `fieldMetadata` | `any` (optional) | Metadata object; used to read `maxLength` for the textarea |
24
+
25
+ All other inputs come from the project's field input contract (see prerequisite skill).
26
+
27
+ ## Implementation Structure
28
+
29
+ Similar to TextInput but multiline with fixed rows. Does NOT delegate to TextInput in read-only mode.
30
+
31
+ **Module Setup:** The component depends on the project's component registry (to resolve `FieldValueList`) and the project's event-commit utility (for committing value changes to the store). Define the input contract as an extension of the project's field input contract, adding an optional `fieldMetadata` field.
32
+
33
+ **Main Component Logic** — steps in order:
34
+
35
+ 1. **Registry lookup** — resolve `FieldValueList` via the project's component registry.
36
+ 2. **Receive inputs** — `getPConnect`, `label`, `required`, `disabled`, `value` (default `''`), `validatemessage`, `status`, `readOnly`, `testId`, `fieldMetadata`, `helperText`, `displayMode`, `hideLabel`, `placeholder`. Compute `helperTextToDisplay = validatemessage || helperText`, set up the PConnect instance, actions API, and bound property name, and derive `maxLength = fieldMetadata?.maxLength`.
37
+ 3. **Local state** — `inputValue` initialized to `''`; declare a read-only configuration object.
38
+ 4. **Sync from store** — a lifecycle effect watching `value` updates `inputValue` whenever it changes.
39
+ 5. **Display mode returns** — `DISPLAY_ONLY` and `STACKED_LARGE_VAL` both return `FieldValueList` using the raw `value`, the latter with a stacked variant.
40
+ 6. **Read-only** — set the read-only configuration to mark the textarea read-only when `readOnly` is true. Unlike TextInput, do NOT delegate to `TextInput` — preserve the multiline rendering even when read-only.
41
+ 7. **Test ID and handlers** — build a test-id attribute from `testId`; the change handler updates `inputValue` from the event's textarea value; the blur handler commits the value via the project's event-commit utility with event type `'changeNblur'`, the property name, and `inputValue`.
42
+ 8. **Render** — a multiline text input configured with: multiline mode enabled, minimum rows `5`, maximum rows `5`, full width, an outlined style when editable or flat/borderless style when read-only, small size, current `inputValue`, the change handler, the blur handler wired only when not read-only, `label`, `helperText: helperTextToDisplay`, `placeholder: placeholder ?? ''`, `required`, `disabled`, an error state when `status === 'error'`, and `maxLength` plus the read-only/test-id attributes applied to the underlying textarea element.
43
+
44
+ ## Behavioral Contract
45
+
46
+ 1. **Local state:** Maintain `inputValue` in local state (string). Initialize to `''`.
47
+ 2. **Sync from store:** A lifecycle effect watching the `value` input updates `inputValue` whenever `value` changes.
48
+ 3. **On change:** Update local `inputValue` state only (do NOT commit to store on every keystroke).
49
+ 4. **On blur:** Commit to store via the project's event-commit utility with event type `'changeNblur'`, the property name, and `inputValue`.
50
+ 5. **Read-only:** Set the read-only attribute on the textarea; use a visually flat/borderless style. Omit the blur handler when read-only.
51
+ 6. **maxLength:** Read from `fieldMetadata?.maxLength`; pass to the textarea's `maxLength` attribute.
52
+ 7. **Row sizing:** Fixed at minimum rows `5` and maximum rows `5` — the textarea does not auto-expand; it shows a scrollbar if content exceeds 5 rows.
53
+
54
+ ## Display Mode Rendering
55
+
56
+ - **`DISPLAY_ONLY`:** Render `FieldValueList` with `name` set to `label` (or empty when `hideLabel` is true) and `value` set to the raw `value`.
57
+ - **`STACKED_LARGE_VAL`:** Render `FieldValueList` the same way, with a stacked layout variant.
58
+ - Both modes short-circuit before interactive rendering.
59
+
60
+ ## Read-Only Rendering
61
+
62
+ Set the read-only attribute on the textarea element (NOT a read-only version via `TextInput` — preserves the multiline appearance). Switch to a flat/borderless visual style. The min/max rows constraint is still applied in read-only.
63
+
64
+ ## Visual Specifications
65
+
66
+ Derived from the reference component's styling:
67
+
68
+ | Property | Standard (editable) | Read-only |
69
+ | ------------- | ---------------------------------------- | ----------------- |
70
+ | Width | 100% | 100% |
71
+ | Min rows | 5 | 5 |
72
+ | Max rows | 5 (scrollable beyond) | 5 |
73
+ | Border | 1px solid (outlined) | None (flat style) |
74
+ | Border radius | 4px | — |
75
+ | Label | Floating label | Floating label |
76
+ | Helper text | Below textarea | Below textarea |
77
+ | Error state | Red border + red helper text | — |
78
+ | Resize | Vertical resize handle (browser default) | Same |
79
+ | Font size | 0.875rem | 0.875rem |
80
+ | Padding | 8px 14px | — |
81
+
82
+ **CSS-only implementation notes:**
83
+
84
+ - `textarea { min-height: calc(5 * 1.4375em + 16px); max-height: calc(5 * 1.4375em + 16px); overflow-y: auto; resize: vertical; }`
85
+ - Error: `border-color: #d32f2f`
86
+ - Read-only: `border: none; background: transparent;`
87
+
88
+ ## Edge Cases & Special Logic
89
+
90
+ - Unlike `TextInput`, do NOT delegate to `TextInput` in read-only mode — render the textarea directly with the read-only attribute set, so the multi-line appearance is preserved.
91
+ - `maxLength` is optional; only apply the attribute if `fieldMetadata?.maxLength` is defined.
92
+
93
+ ## Dependencies
94
+
95
+ - The project's event-commit utility.
96
+ - The project's component registry, resolving `FieldValueList` — for display modes.
97
+ - No third-party UI libraries required.
98
+
99
+ ## Design System Mapping
100
+
101
+ **UI control type:** Multi-line text input (textarea).
102
+
103
+ When implementing in a specific design system, map the following:
104
+
105
+ - **Multiline input** → use the DS's textarea or multi-line text field component
106
+ - **Row sizing** → configure minimum and maximum rows to `5`
107
+ - **Read-only mode** → set the read-only attribute directly on the textarea (do NOT delegate to TextInput)
108
+ - **Error state** → the DS's error/danger visual state
109
+ - **maxLength** → pass to the textarea's `maxLength` attribute
@@ -2,38 +2,41 @@
2
2
 
3
3
  Static text display component that renders formatted text content (paragraph or heading). Non-interactive — no form binding.
4
4
 
5
- > **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, props interface, display modes, event handling, and registration patterns common to ALL field components.
5
+ > **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
6
6
 
7
7
  ---
8
8
 
9
9
  ## Component Purpose
10
10
 
11
- Displays static, read-only text content. Used to embed headings or descriptive paragraph text within forms or views. Not an input field — does NOT bind to a case property value and does NOT use `PConnFieldProps`. It renders purely based on static configuration props.
11
+ Displays static, read-only text content. Used to embed headings or descriptive paragraph text within forms or views. Not an input field — does NOT bind to a case property value and does NOT use the project's field input contract. It renders purely based on static configuration inputs.
12
12
 
13
13
  ## Pega Metadata
14
14
 
15
15
  - **Pega Name:** `TextContent`
16
16
  - **Type / Subtype:** `Field` / `Text`
17
- - **Registration key:** `TextContent` (in `component-map.ts`)
17
+ - **Registration key:** `TextContent` (in the project's component map)
18
18
 
19
- ## Props (component-specific)
19
+ ## Inputs (component-specific)
20
20
 
21
- Extends `PConnProps` (NOT `PConnFieldProps` — there is no form value binding):
21
+ The input contract extends the project's base component interface (NOT the field input contract — there is no form value binding), adding two required fields: `content` and `displayAs`.
22
22
 
23
- ```typescript
24
- import type { PConnProps } from '@pega/sdk-react';
25
-
26
- interface TextContentProps extends PConnProps {
27
- content: string;
28
- displayAs: 'Paragraph' | 'Heading 1' | 'Heading 2' | 'Heading 3' | 'Heading 4';
29
- }
30
- ```
31
-
32
- | Prop | Type | Description |
23
+ | Name | Type | Description |
33
24
  | ----------- | ------------------------------------------------------------------------- | ------------------------------------------------- |
34
25
  | `content` | `string` | The text string to render |
35
26
  | `displayAs` | `'Paragraph' \| 'Heading 1' \| 'Heading 2' \| 'Heading 3' \| 'Heading 4'` | How to render the text — maps to typography level |
36
27
 
28
+ ## Implementation Structure
29
+
30
+ Simplest possible component — no state, no lifecycle effects, just a switch on `displayAs`.
31
+
32
+ **Module Setup:** Define the input contract as an extension of the project's base component interface (not the field input contract) with `content: string` and the `displayAs` union type.
33
+
34
+ **Main Component Logic:**
35
+
36
+ 1. Receive `content` and `displayAs` from inputs.
37
+ 2. Switch on `displayAs` and render the matching element wrapping `content`: `'Paragraph'` → `<p>`, `'Heading 1'` → `<h1>`, `'Heading 2'` → `<h2>`, `'Heading 3'` → `<h3>`, `'Heading 4'` → `<h4>`.
38
+ 3. For any unrecognized `displayAs` value, log an error describing the unexpected value, then fall back to rendering `content` in a `<p>`.
39
+
37
40
  ## Behavioral Contract
38
41
 
39
42
  1. **No state, no effects** — purely presentational. Render `content` using the appropriate typography element for `displayAs`.
@@ -47,7 +50,7 @@ interface TextContentProps extends PConnProps {
47
50
 
48
51
  ## Display Mode Rendering
49
52
 
50
- Not applicable — this component is display-only by nature. It does not accept a `displayMode` prop.
53
+ Not applicable — this component is display-only by nature. It does not accept a `displayMode` input.
51
54
 
52
55
  ## Read-Only Rendering
53
56
 
@@ -65,53 +68,25 @@ Derived from standard HTML typography:
65
68
  | `Heading 3` | `<h3>` | 1.75rem | 400 |
66
69
  | `Heading 4` | `<h4>` | 1.5rem | 400 |
67
70
 
68
- Color inherits from the surrounding text color. No padding, margin, border, or background beyond what the browser/design-system applies to the heading element.
69
-
70
- **CSS-only implementation notes:**
71
-
72
- ```css
73
- .text-content-h1 {
74
- font-size: 2.5rem;
75
- font-weight: 300;
76
- }
77
- .text-content-h2 {
78
- font-size: 2rem;
79
- font-weight: 300;
80
- }
81
- .text-content-h3 {
82
- font-size: 1.75rem;
83
- font-weight: 400;
84
- }
85
- .text-content-h4 {
86
- font-size: 1.5rem;
87
- font-weight: 400;
88
- }
89
- .text-content-body {
90
- font-size: 1rem;
91
- font-weight: 400;
92
- }
93
- ```
71
+ Color inherits from the surrounding text color. No padding, margin, border, or background beyond what the browser/design-system applies to the heading element. Each heading level (and the paragraph/body style) uses only `font-size` and `font-weight` to differentiate visual hierarchy, per the table above — no other styling is applied.
94
72
 
95
73
  ## Edge Cases & Special Logic
96
74
 
97
- - Unrecognized `displayAs` values should trigger a `console.error` and fall back to body text.
98
- - No `handleEvent`, no store interaction, no `useEffect`.
75
+ - Unrecognized `displayAs` values should trigger an error log and fall back to body text.
76
+ - No event-commit utility, no store interaction, no lifecycle effects.
99
77
 
100
78
  ## Dependencies
101
79
 
102
80
  - No event utilities needed
103
81
  - No `FieldValueList` needed
104
- - Only a typography rendering element
82
+ - Only a typography rendering element (native HTML or the DS's typography component)
105
83
 
106
84
  ## Design System Mapping
107
85
 
108
86
  **UI control type:** Static typography / text block.
109
87
 
110
- Listed design systems are examples only.
88
+ When implementing in a specific design system, map the following:
111
89
 
112
- | Design System | Recommended Component |
113
- | ------------------ | -------------------------------------------------------------- |
114
- | Default (CSS only) | Native `<h1>`–`<h4>` or `<p>` |
115
- | MUI | `<Typography variant='h1' \| 'h2' \| 'h3' \| 'h4' \| 'body1'>` |
116
- | Ant Design | `<Typography.Title level={1-4}>` or `<Typography.Text>` |
117
- | Chakra UI | `<Heading as='h1'-'h4'>` or `<Text>` |
90
+ - **Paragraph** → use the DS's body text component or a `<p>` element
91
+ - **Heading 1–4** → use the DS's heading component at the matching level, or native `<h1>`–`<h4>` elements
92
+ - **No interaction** → this component has no event handling, state, or store binding