@pega/sdk 0.0.3 → 0.0.4

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 (346) hide show
  1. package/LICENSE +183 -183
  2. package/README.md +6 -6
  3. package/SECURITY.md +2 -1
  4. package/dist/index.js +12 -55
  5. package/package.json +7 -6
  6. package/templates/angular-sdk-reference/package.json +15 -15
  7. package/templates/angular-sdk-reference/tsconfig.json +2 -2
  8. package/templates/react-native-sdk-reference/App.tsx +2 -4
  9. package/templates/react-native-sdk-reference/package.json +6 -6
  10. package/templates/react-native-sdk-reference/tsconfig.json +2 -1
  11. package/templates/react-sdk-reference/.claude/instructions/component-map.md +1 -1
  12. package/templates/react-sdk-reference/.claude/instructions/field-component.md +4 -0
  13. package/templates/react-sdk-reference/.claude/instructions/template-component.md +2 -1
  14. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +1 -0
  15. package/templates/react-sdk-reference/.claude/prompts/add-component.md +18 -10
  16. package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +165 -83
  17. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +26 -17
  18. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +27 -13
  19. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +42 -28
  20. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +48 -34
  21. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +25 -11
  22. package/templates/react-sdk-reference/.claude/prompts/identify-components.md +65 -65
  23. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +99 -99
  24. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +40 -38
  25. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +54 -51
  26. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
  27. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +32 -28
  28. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +38 -35
  29. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +25 -23
  30. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +29 -26
  31. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +32 -26
  32. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +17 -15
  33. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +85 -59
  34. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
  35. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +13 -11
  36. package/templates/react-sdk-reference/.claude/skills/field-components.md +9 -8
  37. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +27 -26
  38. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +30 -22
  39. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +60 -43
  40. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +23 -20
  41. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +19 -17
  42. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +18 -15
  43. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +22 -21
  44. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +50 -30
  45. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +20 -18
  46. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +21 -15
  47. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +17 -16
  48. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +30 -21
  49. package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +66 -42
  50. package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +27 -18
  51. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +22 -21
  52. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +36 -17
  53. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +56 -35
  54. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +23 -12
  55. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +41 -31
  56. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +70 -55
  57. package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +34 -27
  58. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +24 -22
  59. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +38 -22
  60. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +24 -21
  61. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +16 -15
  62. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +16 -15
  63. package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +57 -34
  64. package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +10 -8
  65. package/templates/react-sdk-reference/.claude/skills/template-components.md +7 -8
  66. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +27 -21
  67. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +17 -15
  68. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +19 -16
  69. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +19 -13
  70. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +23 -17
  71. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +34 -29
  72. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +18 -16
  73. package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +36 -32
  74. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +23 -21
  75. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +31 -29
  76. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +19 -17
  77. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +22 -20
  78. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +19 -17
  79. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +19 -17
  80. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +15 -10
  81. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +19 -16
  82. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +18 -15
  83. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +17 -13
  84. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +10 -13
  85. package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +9 -7
  86. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +33 -30
  87. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +13 -11
  88. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +42 -40
  89. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +25 -20
  90. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +25 -19
  91. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +36 -29
  92. package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +31 -27
  93. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +29 -24
  94. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +14 -11
  95. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +34 -32
  96. package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +48 -46
  97. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +23 -19
  98. package/templates/react-sdk-reference/.claude/skills/widget-components.md +11 -22
  99. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +22 -20
  100. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +33 -28
  101. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +18 -15
  102. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +43 -37
  103. package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +23 -19
  104. package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +20 -16
  105. package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +26 -24
  106. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +43 -35
  107. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +165 -83
  108. package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
  109. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +2 -2
  110. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +1 -1
  111. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +5 -1
  112. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +3 -2
  113. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +2 -1
  114. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +58 -15
  115. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
  116. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +322 -65
  117. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +124 -50
  118. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +145 -66
  119. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +146 -73
  120. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +128 -49
  121. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +65 -65
  122. package/templates/react-sdk-reference/.github/skills/component-contracts.md +99 -99
  123. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +40 -38
  124. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +54 -51
  125. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
  126. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +32 -28
  127. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +38 -35
  128. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +25 -23
  129. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +29 -26
  130. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +32 -26
  131. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +17 -15
  132. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +85 -59
  133. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
  134. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +13 -11
  135. package/templates/react-sdk-reference/.github/skills/field-components.md +9 -8
  136. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +27 -26
  137. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +30 -22
  138. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +60 -43
  139. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +23 -20
  140. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +19 -17
  141. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +18 -15
  142. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +22 -21
  143. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +50 -30
  144. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +20 -18
  145. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +21 -15
  146. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +17 -16
  147. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +30 -21
  148. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +66 -42
  149. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +27 -18
  150. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +22 -21
  151. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +36 -17
  152. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +56 -35
  153. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +23 -12
  154. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +41 -31
  155. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +70 -55
  156. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +34 -27
  157. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +24 -22
  158. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +38 -22
  159. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +24 -21
  160. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +16 -15
  161. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +16 -15
  162. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +57 -34
  163. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +10 -8
  164. package/templates/react-sdk-reference/.github/skills/template-components.md +7 -8
  165. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +27 -21
  166. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +17 -15
  167. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +19 -16
  168. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +19 -13
  169. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +23 -17
  170. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +34 -29
  171. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +18 -16
  172. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +36 -32
  173. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +23 -21
  174. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +31 -29
  175. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +19 -17
  176. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +22 -20
  177. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +19 -17
  178. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +19 -17
  179. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +15 -10
  180. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +19 -16
  181. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +18 -15
  182. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +17 -13
  183. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +10 -13
  184. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +9 -7
  185. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +33 -30
  186. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +13 -11
  187. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +42 -40
  188. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +25 -20
  189. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +25 -19
  190. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +36 -29
  191. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +31 -27
  192. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +29 -24
  193. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +14 -11
  194. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +34 -32
  195. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +48 -46
  196. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +23 -19
  197. package/templates/react-sdk-reference/.github/skills/widget-components.md +11 -22
  198. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +22 -20
  199. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +33 -28
  200. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +18 -15
  201. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +43 -37
  202. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +23 -19
  203. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +20 -16
  204. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +26 -24
  205. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +43 -35
  206. package/templates/react-sdk-reference/AGENTS.md +0 -1
  207. package/templates/react-sdk-reference/index.html +1 -4
  208. package/templates/react-sdk-reference/package.json +15 -15
  209. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  210. package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
  211. package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
  212. package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
  213. package/templates/react-sdk-reference/src/MashupApp.tsx +186 -85
  214. package/templates/react-sdk-reference/src/PortalApp.tsx +10 -34
  215. package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
  216. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
  217. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
  218. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
  219. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
  220. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
  221. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
  222. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
  223. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
  224. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
  225. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
  226. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
  227. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
  228. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
  229. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
  230. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
  231. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
  232. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
  233. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
  234. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
  235. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
  236. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
  237. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
  238. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
  239. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
  240. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
  241. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
  242. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
  243. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
  244. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
  245. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
  246. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
  247. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
  248. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
  249. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
  250. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
  251. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
  252. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
  253. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
  254. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
  255. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
  256. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
  257. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
  258. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
  259. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
  260. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
  261. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
  262. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
  263. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
  264. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
  265. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
  266. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
  267. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
  268. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
  269. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
  270. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
  271. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
  272. package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
  273. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
  274. package/templates/react-sdk-reference/src/components/index.ts +1 -4
  275. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
  276. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
  277. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
  278. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
  279. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
  280. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
  281. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
  282. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
  283. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
  284. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
  285. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
  286. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
  287. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
  288. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
  289. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
  290. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
  291. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
  292. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
  293. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
  294. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
  295. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
  296. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
  297. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
  298. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
  299. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
  300. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
  301. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
  302. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
  303. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
  304. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
  305. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
  306. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
  307. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
  308. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
  309. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
  310. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
  311. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
  312. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
  313. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
  314. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
  315. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
  316. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
  317. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
  318. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
  319. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
  320. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
  321. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
  322. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
  323. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
  324. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
  325. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
  326. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
  327. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
  328. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
  329. package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
  330. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
  331. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
  332. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
  333. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
  334. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
  335. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
  336. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
  337. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
  338. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
  339. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
  340. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
  341. package/templates/react-sdk-reference/src/main.tsx +1 -1
  342. package/templates/react-sdk-reference/tsconfig.json +2 -1
  343. package/templates/react-sdk-reference/vite.config.ts +51 -26
  344. package/templates/wc-sdk-reference/package.json +3 -3
  345. package/templates/wc-sdk-reference/src/index.ts +10 -10
  346. package/templates/wc-sdk-reference/tsconfig.json +1 -0
@@ -18,8 +18,8 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
18
18
 
19
19
  ## Props (component-specific)
20
20
 
21
- | Prop | Type | Description |
22
- |------|------|-------------|
21
+ | Prop | Type | Description |
22
+ | ----------------- | ------------------- | --------------------------------------------- |
23
23
  | `additionalProps` | `object` (optional) | Extra props forwarded to the `RichTextEditor` |
24
24
 
25
25
  ## Behavioral Contract
@@ -29,8 +29,8 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
29
29
  3. **Props coercion:** `readOnly`, `required`, `disabled` must be coerced to booleans:
30
30
  ```typescript
31
31
  [readOnly, required, disabled] = [readOnly, required, disabled].map(
32
- prop => prop === true || (typeof prop === 'string' && prop === 'true')
33
- )
32
+ (prop) => prop === true || (typeof prop === 'string' && prop === 'true'),
33
+ );
34
34
  ```
35
35
  4. **Editable mode:**
36
36
  - Track `status` for error state.
@@ -47,6 +47,7 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
47
47
  6. **`RichTextEditor` component:** Resolved via `getComponentFromRegistry('RichTextEditor')`. This is a design-system extension component that wraps the actual WYSIWYG library (e.g., TinyMCE).
48
48
 
49
49
  ### Editable RichTextEditor props
50
+
50
51
  ```
51
52
  label, labelHidden={hideLabel}, info={helperTextToDisplay}, defaultValue={value},
52
53
  placeholder, disabled, required, testId, ref={editorRef},
@@ -54,6 +55,7 @@ error={status === 'error'}, onBlur={handleBlur}, onChange={handleChange}
54
55
  ```
55
56
 
56
57
  ### Read-only RichTextEditor props
58
+
57
59
  ```
58
60
  label, labelHidden={hideLabel}, defaultValue={value}, testId, info={helperTextToDisplay},
59
61
  ref={editorRef}, readOnly
@@ -62,6 +64,7 @@ ref={editorRef}, readOnly
62
64
  ## Display Mode Rendering
63
65
 
64
66
  Display modes pass `isHtml={true}` to render HTML content safely:
67
+
65
68
  - **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : label} value={value} isHtml />`
66
69
  - **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : label} value={value} isHtml variant='stacked' />`
67
70
 
@@ -75,9 +78,15 @@ The visual appearance of the rich text editor depends on the underlying `RichTex
75
78
 
76
79
  ```css
77
80
  /* RichText.css — must be imported */
78
- .tox .tox-toolbar { background-color: var(--app-background-color) !important; }
79
- .tox .tox-toolbar__primary { background-color: var(--app-background-color) !important; }
80
- .tox .tox-toolbar__button { color: var(--app-text-color) !important; }
81
+ .tox .tox-toolbar {
82
+ background-color: var(--app-background-color) !important;
83
+ }
84
+ .tox .tox-toolbar__primary {
85
+ background-color: var(--app-background-color) !important;
86
+ }
87
+ .tox .tox-toolbar__button {
88
+ color: var(--app-text-color) !important;
89
+ }
81
90
  .tox .tox-toolbar__button--enabled {
82
91
  background: var(--app-primary-color) !important;
83
92
  color: #fff !important;
@@ -100,6 +109,7 @@ The visual appearance of the rich text editor depends on the underlying `RichTex
100
109
  **Note:** Import `./RichText.css` in the component file. The CSS variables (`--app-background-color`, `--app-text-color`, etc.) are set by the application theme.
101
110
 
102
111
  When implementing with a different design system:
112
+
103
113
  - Custom CSS for toolbar theming may be needed
104
114
  - The editor container should be full-width
105
115
  - Minimum height: ~200px for a usable editing area
@@ -121,6 +131,7 @@ When implementing with a different design system:
121
131
  - `useRef` from React.
122
132
 
123
133
  **For other rich text editors:**
134
+
124
135
  - Any WYSIWYG editor that exposes `ref.current.getContent()` or equivalent.
125
136
  - Examples: Quill, Draft.js, Slate.js, CKEditor.
126
137
 
@@ -130,9 +141,9 @@ When implementing with a different design system:
130
141
 
131
142
  Listed design systems are examples only.
132
143
 
133
- | Design System | Recommended Component |
134
- |---|---|
144
+ | Design System | Recommended Component |
145
+ | ------------------ | ------------------------------------------------- |
135
146
  | Default (CSS only) | `contenteditable` div + custom toolbar OR TinyMCE |
136
- | MUI | `RichTextEditor` custom extension (TinyMCE) |
137
- | Ant Design | Quill or TinyMCE with Ant styling |
138
- | Chakra UI | Quill or TipTap with Chakra styling |
147
+ | MUI | `RichTextEditor` custom extension (TinyMCE) |
148
+ | Ant Design | Quill or TinyMCE with Ant styling |
149
+ | Chakra UI | Quill or TipTap with Chakra styling |
@@ -24,14 +24,14 @@ Renders a list of scalar (primitive) values by dynamically creating a child comp
24
24
  import type { PConnProps } from '@pega/sdk-react';
25
25
  ```
26
26
 
27
- | Prop | Type | Description |
28
- |------|------|-------------|
29
- | `value` | `any[]` | Array of scalar values to display |
30
- | `componentType` | `string` | The Pega component type to use for each item (e.g., `'TextInput'`, `'Date'`) |
31
- | `label` | `string` | Field label |
32
- | `displayMode` | `string` | Display mode |
33
- | `hideLabel` | `boolean` | Whether to hide the label |
34
- | `displayInModal` | `boolean` | Whether this is displayed in a modal context |
27
+ | Prop | Type | Description |
28
+ | ---------------- | --------- | ---------------------------------------------------------------------------- |
29
+ | `value` | `any[]` | Array of scalar values to display |
30
+ | `componentType` | `string` | The Pega component type to use for each item (e.g., `'TextInput'`, `'Date'`) |
31
+ | `label` | `string` | Field label |
32
+ | `displayMode` | `string` | Display mode |
33
+ | `hideLabel` | `boolean` | Whether to hide the label |
34
+ | `displayInModal` | `boolean` | Whether this is displayed in a modal context |
35
35
 
36
36
  All remaining props (`...restProps`) are forwarded to each child component.
37
37
 
@@ -40,7 +40,7 @@ All remaining props (`...restProps`) are forwarded to each child component.
40
40
  1. **No state, no event handling** — purely display/read-only.
41
41
  2. **Item rendering:** Map each value in `scalarValues` to a component via `getPConnect().createComponent(...)`:
42
42
  ```typescript
43
- const items = scalarValues?.map(scalarValue =>
43
+ const items = scalarValues?.map((scalarValue) =>
44
44
  getPConnect().createComponent(
45
45
  {
46
46
  type: componentType,
@@ -49,14 +49,14 @@ All remaining props (`...restProps`) are forwarded to each child component.
49
49
  displayMode: 'DISPLAY_ONLY',
50
50
  label,
51
51
  ...restProps,
52
- readOnly: 'true'
53
- }
52
+ readOnly: 'true',
53
+ },
54
54
  },
55
- '', // 2nd arg: empty string
56
- '', // 3rd arg: empty string
57
- {} // 4th arg: empty object
58
- )
59
- )
55
+ '', // 2nd arg: empty string
56
+ '', // 3rd arg: empty string
57
+ {}, // 4th arg: empty object
58
+ ),
59
+ );
60
60
  ```
61
61
  3. **`CommaSeparatedList` sub-component:** A local component that renders items as `<span>` elements inside a `<ul>` with no list styling:
62
62
  ```html
@@ -70,31 +70,41 @@ All remaining props (`...restProps`) are forwarded to each child component.
70
70
  ## Display Mode Rendering
71
71
 
72
72
  **`STACKED_LARGE_VAL` or `DISPLAY_ONLY`:**
73
+
73
74
  ```html
74
75
  <div>
75
- <CommaSeparatedList items={items} />
76
+ <CommaSeparatedList items="{items}" />
76
77
  </div>
77
78
  ```
79
+
78
80
  No `FieldValueList` wrapper in these modes — the items are rendered directly.
79
81
 
80
82
  **Default (no display mode):**
83
+
81
84
  ```
82
85
  <FieldValueList name={hideLabel ? '' : label} value={<CommaSeparatedList items={items} />} variant='stacked' />
83
86
  ```
84
87
 
85
88
  ## Visual Specifications
86
89
 
87
- | Property | Value |
88
- |----------|-------|
89
- | List style | No bullets, no padding, no margin on `<ul>` |
90
- | Item display | Each item rendered as `<span>` (inline) |
91
- | Separator | Items are adjacent spans (no comma separator despite the name) |
92
- | Layout | Vertical stack when wrapped in `FieldValueList variant='stacked'` |
90
+ | Property | Value |
91
+ | ------------ | ----------------------------------------------------------------- |
92
+ | List style | No bullets, no padding, no margin on `<ul>` |
93
+ | Item display | Each item rendered as `<span>` (inline) |
94
+ | Separator | Items are adjacent spans (no comma separator despite the name) |
95
+ | Layout | Vertical stack when wrapped in `FieldValueList variant='stacked'` |
93
96
 
94
97
  **CSS-only notes:**
98
+
95
99
  ```css
96
- .scalar-list { list-style: none; padding: 0; margin: 0; }
97
- .scalar-list-item { display: inline; }
100
+ .scalar-list {
101
+ list-style: none;
102
+ padding: 0;
103
+ margin: 0;
104
+ }
105
+ .scalar-list-item {
106
+ display: inline;
107
+ }
98
108
  ```
99
109
 
100
110
  ## Edge Cases & Special Logic
@@ -116,9 +126,9 @@ No `FieldValueList` wrapper in these modes — the items are rendered directly.
116
126
 
117
127
  Listed design systems are examples only.
118
128
 
119
- | Design System | Recommended Component |
120
- |---|---|
121
- | Default (CSS only) | `<ul>` with `<span>` items |
122
- | MUI | `<List>` with `<ListItem>` or just `<Typography>` per item |
123
- | Ant Design | `<List>` items or `<Space>` with `<Tag>` |
124
- | Chakra UI | `<List>` or `<HStack>` with `<Tag>` |
129
+ | Design System | Recommended Component |
130
+ | ------------------ | ---------------------------------------------------------- |
131
+ | Default (CSS only) | `<ul>` with `<span>` items |
132
+ | MUI | `<List>` with `<ListItem>` or just `<Typography>` per item |
133
+ | Ant Design | `<List>` items or `<Space>` with `<Tag>` |
134
+ | Chakra UI | `<List>` or `<HStack>` with `<Tag>` |
@@ -20,29 +20,29 @@ Renders a grid of selectable cards. Each card contains a radio button or checkbo
20
20
 
21
21
  ## Props
22
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 |
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
46
 
47
47
  ## Behavioral Contract
48
48
 
@@ -61,18 +61,20 @@ If `showNoValue`: render a plain text element showing `'No Value'` and return ea
61
61
  ### Card click handler
62
62
 
63
63
  Cards should be clickable anywhere (not just on the checkbox/radio):
64
+
64
65
  ```typescript
65
66
  const handleCardClick = (event) => {
66
- if (disabled || readOnly) return
67
- if (event.target.closest('label, input')) return // native click already handled
68
- const input = event.currentTarget.querySelector('input[type="radio"], input[type="checkbox"]')
69
- if (input) input.click()
70
- }
67
+ if (disabled || readOnly) return;
68
+ if (event.target.closest('label, input')) return; // native click already handled
69
+ const input = event.currentTarget.querySelector('input[type="radio"], input[type="checkbox"]');
70
+ if (input) input.click();
71
+ };
71
72
  ```
72
73
 
73
74
  ### Subsection: Display mode (`displayMode === 'DISPLAY_ONLY'`)
74
75
 
75
76
  Render a **simple read-only card** (no radio/checkbox) with:
77
+
76
78
  - Optional image (`<img>`)
77
79
  - Card title: `item[cardLabel]`
78
80
  - Additional resolved fields (from `resolveReferenceFields`)
@@ -80,7 +82,7 @@ Render a **simple read-only card** (no radio/checkbox) with:
80
82
 
81
83
  ```html
82
84
  <Card style="display: flex">
83
- {image && <img src="..." alt="..." style="width: 100px">}
85
+ {image && <img src="..." alt="..." style="width: 100px" />}
84
86
  <CardContent>
85
87
  <body1>{item[cardLabel]}</body1>
86
88
  {fields.map(field => <body2>{field.value}</body2>)}
@@ -112,11 +114,11 @@ Render a **selectable card** with click handler, containing the appropriate inpu
112
114
 
113
115
  ### Image layout (inline positions)
114
116
 
115
- | `imagePosition` | CardContent style | Image section width | Content section width |
116
- |-----------------|-------------------|--------------------|----------------------|
117
- | `'inline-start'` | `display: flex` | 40% | 60% |
118
- | `'inline-end'` | `display: flex, flexDirection: row-reverse` | 40% | 60% |
119
- | block (default) | default | full width | full width |
117
+ | `imagePosition` | CardContent style | Image section width | Content section width |
118
+ | ---------------- | ------------------------------------------- | ------------------- | --------------------- |
119
+ | `'inline-start'` | `display: flex` | 40% | 60% |
120
+ | `'inline-end'` | `display: flex, flexDirection: row-reverse` | 40% | 60% |
121
+ | block (default) | default | full width | full width |
120
122
 
121
123
  ### Image element
122
124
 
@@ -135,10 +137,11 @@ img {
135
137
  ### Field display layout
136
138
 
137
139
  Each additional field in editable mode:
140
+
138
141
  ```css
139
142
  .card-field {
140
143
  font-size: 0.875rem;
141
- display: grid; /* only if type !== 'TextArea' */
144
+ display: grid; /* only if type !== 'TextArea' */
142
145
  grid-template-columns: 1fr 1fr;
143
146
  margin: 5px;
144
147
  }
@@ -147,6 +150,7 @@ Each additional field in editable mode:
147
150
  ### Radio tracking
148
151
 
149
152
  After iterating cards, if `type === 'radio'` and `setIsRadioCardSelected`:
153
+
150
154
  ```
151
155
  if (radioBtnValue === item[recordKey]) radioItemSelected = true
152
156
  // After loop:
@@ -159,20 +163,21 @@ setIsRadioCardSelected(radioItemSelected)
159
163
 
160
164
  ## Visual Specifications
161
165
 
162
- | Property | Editable card | Display-only card |
163
- |----------|--------------|-------------------|
164
- | Cursor | `pointer` (unless disabled/readOnly → `default`) | Default |
165
- | Height | `100%` (fills grid row) | Auto |
166
- | Layout | Column flex | Row flex |
167
- | Padding top | 15px wrapper | — |
168
- | Image (display-only) | 100px fixed width | 100px fixed width |
169
- | Card border | Default (design-system card elevation) | Default |
170
- | Disabled | `cursor: default` | — |
166
+ | Property | Editable card | Display-only card |
167
+ | -------------------- | ------------------------------------------------ | ----------------- |
168
+ | Cursor | `pointer` (unless disabled/readOnly → `default`) | Default |
169
+ | Height | `100%` (fills grid row) | Auto |
170
+ | Layout | Column flex | Row flex |
171
+ | Padding top | 15px wrapper | — |
172
+ | Image (display-only) | 100px fixed width | 100px fixed width |
173
+ | Card border | Default (design-system card elevation) | Default |
174
+ | Disabled | `cursor: default` | — |
171
175
 
172
176
  **CSS-only card implementation:**
177
+
173
178
  ```css
174
179
  .selectable-card {
175
- border: 1px solid rgba(0,0,0,0.12);
180
+ border: 1px solid rgba(0, 0, 0, 0.12);
176
181
  border-radius: 4px;
177
182
  padding: 16px;
178
183
  cursor: pointer;
@@ -182,10 +187,20 @@ setIsRadioCardSelected(radioItemSelected)
182
187
  margin-top: 15px;
183
188
  transition: border-color 0.2s;
184
189
  }
185
- .selectable-card:hover { border-color: #1976d2; }
186
- .selectable-card.disabled { cursor: default; opacity: 0.7; }
187
- .selectable-card.readonly { cursor: default; }
188
- .selectable-card-label { font-size: 1rem; font-weight: 400; }
190
+ .selectable-card:hover {
191
+ border-color: #1976d2;
192
+ }
193
+ .selectable-card.disabled {
194
+ cursor: default;
195
+ opacity: 0.7;
196
+ }
197
+ .selectable-card.readonly {
198
+ cursor: default;
199
+ }
200
+ .selectable-card-label {
201
+ font-size: 1rem;
202
+ font-weight: 400;
203
+ }
189
204
  ```
190
205
 
191
206
  ## Edge Cases & Special Logic
@@ -208,9 +223,9 @@ setIsRadioCardSelected(radioItemSelected)
208
223
 
209
224
  Listed design systems are examples only.
210
225
 
211
- | Design System | Recommended Component |
212
- |---|---|
213
- | Default (CSS only) | Custom `<div>` cards with `<input type="radio/checkbox">` inside |
214
- | MUI | `<Card>` + `<CardContent>` + `<FormControlLabel>` + `<Radio>`/`<Checkbox>` |
215
- | Ant Design | Custom cards with `<Radio>`/`<Checkbox>` |
216
- | Chakra UI | `<Box>` as card + `<Radio>`/`<Checkbox>` |
226
+ | Design System | Recommended Component |
227
+ | ------------------ | -------------------------------------------------------------------------- |
228
+ | Default (CSS only) | Custom `<div>` cards with `<input type="radio/checkbox">` inside |
229
+ | MUI | `<Card>` + `<CardContent>` + `<FormControlLabel>` + `<Radio>`/`<Checkbox>` |
230
+ | Ant Design | Custom cards with `<Radio>`/`<Checkbox>` |
231
+ | Chakra UI | `<Box>` as card + `<Radio>`/`<Checkbox>` |
@@ -18,29 +18,31 @@ Renders a clickable link (`<a>` or button-style link) that navigates to a Pega c
18
18
 
19
19
  ## Props (component-specific)
20
20
 
21
- | Prop | Type | Default | Description |
22
- |------|------|---------|-------------|
23
- | `text` | `string` | — | The visible link text; renders `'--'` if empty |
24
- | `resourcePayload` | `any` | `{}` | Resource payload containing `caseClassName`, `resourceType`, etc. |
25
- | `resourceParams` | `any` | `{}` | Resource parameters containing `workID` for case navigation |
26
- | `previewKey` | `string \| null` | — | Case preview key for opening work item by handle |
27
- | `onClick` | `(event) => void` | — | External click handler (received but not directly used — link has its own handler) |
28
- | `testId` | `string` | `''` | Test identifier |
29
- | `referenceType` | `string \| null` | — | `'DATA'` or case reference type |
30
- | `dataRelationshipContext` | `string \| null` | `null` | Context for data relationship resolution |
31
- | `contextPage` | `any` | — | Context page with `classID` |
21
+ | Prop | Type | Default | Description |
22
+ | ------------------------- | ----------------- | ------- | ---------------------------------------------------------------------------------- |
23
+ | `text` | `string` | — | The visible link text; renders `'--'` if empty |
24
+ | `resourcePayload` | `any` | `{}` | Resource payload containing `caseClassName`, `resourceType`, etc. |
25
+ | `resourceParams` | `any` | `{}` | Resource parameters containing `workID` for case navigation |
26
+ | `previewKey` | `string \| null` | — | Case preview key for opening work item by handle |
27
+ | `onClick` | `(event) => void` | — | External click handler (received but not directly used — link has its own handler) |
28
+ | `testId` | `string` | `''` | Test identifier |
29
+ | `referenceType` | `string \| null` | — | `'DATA'` or case reference type |
30
+ | `dataRelationshipContext` | `string \| null` | `null` | Context for data relationship resolution |
31
+ | `contextPage` | `any` | — | Context page with `classID` |
32
32
 
33
33
  ## Behavioral Contract
34
34
 
35
35
  ### URL Resolution
36
36
 
37
37
  **Step 1: Determine if this is a data reference:**
38
+
38
39
  - `isData = false`
39
40
  - `shouldTreatAsDataReference = !previewKey && resourcePayload.caseClassName` (non-preview, has class)
40
41
  - If `contextPage?.classID`: override `resourcePayload.caseClassName = contextPage.classID`
41
42
  - If `resourcePayload.caseClassName === WORKCLASS`: override with actual case class from `pConnect.getValue(CASE_INFO_CLASSID)`
42
43
 
43
44
  **Step 2a: Data reference (`referenceType === 'DATA'` or `shouldTreatAsDataReference`):**
45
+
44
46
  ```
45
47
  const dataRefContext = semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)
46
48
  dataViewName = dataRefContext.dataContext
@@ -49,12 +51,14 @@ isData = true
49
51
  ```
50
52
 
51
53
  **Step 2b: Resource type DATA (`resourcePayload.resourceType === 'DATA'`):**
54
+
52
55
  - Look up data page: `dataViewName = PCore.getDataTypeUtils().getLookUpDataPage(resourcePayload.className)`
53
56
  - Look up page info and parameters
54
57
  - Build `payload` from parameters by resolving property annotations
55
58
  - `isData = true`
56
59
 
57
60
  **Step 3: Build `linkURL`:**
61
+
58
62
  - If `isData && dataViewName && payload`: `linkURL = PCore.getSemanticUrlUtils().getResolvedSemanticURL(ACTION_SHOWDATA, { pageName: 'pyDetails', dataViewName }, payload)`
59
63
  - Else (case): fix `resourceParams.objectID` for empty workID edge case, then `linkURL = PCore.getSemanticUrlUtils().getResolvedSemanticURL(ACTION_OPENWORKBYHANDLE, resourcePayload, resourceParams)`
60
64
 
@@ -87,18 +91,19 @@ No explicit `displayMode` handling — `SemanticLink` is always rendered as a li
87
91
 
88
92
  Derived from `makeStyles` and MUI `Link` props:
89
93
 
90
- | Property | Value |
91
- |----------|-------|
92
- | Display | Inline link (button role) |
93
- | Padding | `8px` all sides |
94
- | Margin | `8px` all sides |
95
- | Color | Primary link color (blue, default theme) |
96
- | Font weight | 400 |
97
- | Underline | Default link underline on hover |
98
- | Cursor | Pointer |
99
- | Text | `text` prop value, or `'--'` if empty |
94
+ | Property | Value |
95
+ | ----------- | ---------------------------------------- |
96
+ | Display | Inline link (button role) |
97
+ | Padding | `8px` all sides |
98
+ | Margin | `8px` all sides |
99
+ | Color | Primary link color (blue, default theme) |
100
+ | Font weight | 400 |
101
+ | Underline | Default link underline on hover |
102
+ | Cursor | Pointer |
103
+ | Text | `text` prop value, or `'--'` if empty |
100
104
 
101
105
  **CSS-only implementation:**
106
+
102
107
  ```css
103
108
  .semantic-link {
104
109
  display: inline-block;
@@ -112,7 +117,9 @@ Derived from `makeStyles` and MUI `Link` props:
112
117
  border: none;
113
118
  font-size: inherit;
114
119
  }
115
- .semantic-link:hover { text-decoration: underline; }
120
+ .semantic-link:hover {
121
+ text-decoration: underline;
122
+ }
116
123
  ```
117
124
 
118
125
  ## Edge Cases & Special Logic
@@ -140,9 +147,9 @@ Derived from `makeStyles` and MUI `Link` props:
140
147
 
141
148
  Listed design systems are examples only.
142
149
 
143
- | Design System | Recommended Component |
144
- |---|---|
150
+ | Design System | Recommended Component |
151
+ | ------------------ | ---------------------------------------------------- |
145
152
  | Default (CSS only) | `<button class="semantic-link">` with anchor styling |
146
- | MUI | `<Link component='button'>` |
147
- | Ant Design | `<Typography.Link>` or `<Button type="link">` |
148
- | Chakra UI | `<Link as="button">` |
153
+ | MUI | `<Link component='button'>` |
154
+ | Ant Design | `<Typography.Link>` or `<Button type="link">` |
155
+ | Chakra UI | `<Link as="button">` |
@@ -18,11 +18,12 @@ Renders an editable multi-line text area. Used for long-form text input such as
18
18
 
19
19
  ## Props (component-specific)
20
20
 
21
- | Prop | Type | Description |
22
- |------|------|-------------|
21
+ | Prop | Type | Description |
22
+ | --------------- | ---------------- | ---------------------------------------------------------- |
23
23
  | `fieldMetadata` | `any` (optional) | Metadata object; used to read `maxLength` for the textarea |
24
24
 
25
25
  All other props come from `PConnFieldProps`. Import type as:
26
+
26
27
  ```typescript
27
28
  import type { PConnFieldProps } from '@pega/sdk-react';
28
29
  ```
@@ -51,21 +52,22 @@ Set `readOnly` on the textarea element (NOT a read-only version via `TextInput`
51
52
 
52
53
  Derived from the reference component's MUI props:
53
54
 
54
- | Property | Standard (editable) | Read-only |
55
- |----------|---------------------|-----------|
56
- | Width | 100% | 100% |
57
- | Min rows | 5 | 5 |
58
- | Max rows | 5 (scrollable beyond) | 5 |
59
- | Border | 1px solid (outlined) | None (standard/flat) |
60
- | Border radius | 4px | — |
61
- | Label | Floating label | Floating label |
62
- | Helper text | Below textarea | Below textarea |
63
- | Error state | Red border + red helper text | — |
64
- | Resize | Vertical resize handle (browser default) | Same |
65
- | Font size | 0.875rem | 0.875rem |
66
- | Padding | 8px 14px | — |
55
+ | Property | Standard (editable) | Read-only |
56
+ | ------------- | ---------------------------------------- | -------------------- |
57
+ | Width | 100% | 100% |
58
+ | Min rows | 5 | 5 |
59
+ | Max rows | 5 (scrollable beyond) | 5 |
60
+ | Border | 1px solid (outlined) | None (standard/flat) |
61
+ | Border radius | 4px | — |
62
+ | Label | Floating label | Floating label |
63
+ | Helper text | Below textarea | Below textarea |
64
+ | Error state | Red border + red helper text | — |
65
+ | Resize | Vertical resize handle (browser default) | Same |
66
+ | Font size | 0.875rem | 0.875rem |
67
+ | Padding | 8px 14px | — |
67
68
 
68
69
  **CSS-only implementation notes:**
70
+
69
71
  - `textarea { min-height: calc(5 * 1.4375em + 16px); max-height: calc(5 * 1.4375em + 16px); overflow-y: auto; resize: vertical; }`
70
72
  - Error: `border-color: #d32f2f`
71
73
  - Read-only: `border: none; background: transparent;`
@@ -87,10 +89,10 @@ Derived from the reference component's MUI props:
87
89
 
88
90
  Listed design systems are examples only.
89
91
 
90
- | Design System | Recommended Component |
91
- |---|---|
92
- | Default (CSS only) | `<textarea rows="5">` with floating label |
93
- | MUI | `<TextField multiline minRows={5} maxRows={5} />` |
94
- | Ant Design | `<Input.TextArea rows={5} />` |
95
- | Chakra UI | `<Textarea />` |
96
- | Shadcn/ui | `<Textarea />` |
92
+ | Design System | Recommended Component |
93
+ | ------------------ | ------------------------------------------------- |
94
+ | Default (CSS only) | `<textarea rows="5">` with floating label |
95
+ | MUI | `<TextField multiline minRows={5} maxRows={5} />` |
96
+ | Ant Design | `<Input.TextArea rows={5} />` |
97
+ | Chakra UI | `<Textarea />` |
98
+ | Shadcn/ui | `<Textarea />` |