@pega/sdk 0.0.2 → 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 (455) hide show
  1. package/LICENSE +183 -183
  2. package/README.md +6 -6
  3. package/SECURITY.md +2 -1
  4. package/dist/index.js +14 -57
  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 +38 -0
  12. package/templates/react-sdk-reference/.claude/instructions/dse-component.md +75 -0
  13. package/templates/react-sdk-reference/.claude/instructions/field-component.md +75 -0
  14. package/templates/react-sdk-reference/.claude/instructions/template-component.md +93 -0
  15. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +88 -0
  16. package/templates/react-sdk-reference/.claude/prompts/add-component.md +152 -0
  17. package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +193 -0
  18. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +158 -0
  19. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +140 -0
  20. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +153 -0
  21. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +165 -0
  22. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +138 -0
  23. package/templates/react-sdk-reference/.claude/prompts/identify-components.md +105 -0
  24. package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +519 -0
  25. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +140 -0
  26. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +137 -0
  27. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +152 -0
  28. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +159 -0
  29. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +148 -0
  30. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +134 -0
  31. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +113 -0
  32. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +118 -0
  33. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +155 -0
  34. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +85 -0
  35. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +232 -0
  36. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +137 -0
  37. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +291 -0
  38. package/templates/react-sdk-reference/.claude/skills/field-components.md +295 -0
  39. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +113 -0
  40. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +211 -0
  41. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +175 -0
  42. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +109 -0
  43. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +101 -0
  44. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +106 -0
  45. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +99 -0
  46. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +134 -0
  47. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +109 -0
  48. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +96 -0
  49. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +88 -0
  50. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +145 -0
  51. package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +188 -0
  52. package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +173 -0
  53. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +93 -0
  54. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +129 -0
  55. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +167 -0
  56. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +149 -0
  57. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +134 -0
  58. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +231 -0
  59. package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +155 -0
  60. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +98 -0
  61. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +117 -0
  62. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +107 -0
  63. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +89 -0
  64. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +86 -0
  65. package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +203 -0
  66. package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +70 -0
  67. package/templates/react-sdk-reference/.claude/skills/template-components.md +321 -0
  68. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +150 -0
  69. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +124 -0
  70. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +86 -0
  71. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +106 -0
  72. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +137 -0
  73. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +131 -0
  74. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +109 -0
  75. package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +124 -0
  76. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +104 -0
  77. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +112 -0
  78. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +90 -0
  79. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +97 -0
  80. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +80 -0
  81. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +80 -0
  82. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +106 -0
  83. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +112 -0
  84. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +116 -0
  85. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +108 -0
  86. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +82 -0
  87. package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +70 -0
  88. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +142 -0
  89. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +82 -0
  90. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +143 -0
  91. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +114 -0
  92. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +130 -0
  93. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +142 -0
  94. package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +131 -0
  95. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +108 -0
  96. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +82 -0
  97. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +133 -0
  98. package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +152 -0
  99. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +139 -0
  100. package/templates/react-sdk-reference/.claude/skills/widget-components.md +260 -0
  101. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +84 -0
  102. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +151 -0
  103. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +110 -0
  104. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +206 -0
  105. package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +103 -0
  106. package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +118 -0
  107. package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +169 -0
  108. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +198 -0
  109. package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +41 -0
  110. package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +78 -0
  111. package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +74 -0
  112. package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +247 -0
  113. package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +149 -0
  114. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +193 -0
  115. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +154 -0
  116. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +131 -0
  117. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +144 -0
  118. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +156 -0
  119. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +129 -0
  120. package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +110 -0
  121. package/templates/react-sdk-reference/.cursor/rules/prompts/replace-design-system.mdrules +524 -0
  122. package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +145 -0
  123. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +140 -0
  124. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +154 -0
  125. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +159 -0
  126. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +149 -0
  127. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +136 -0
  128. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +116 -0
  129. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +120 -0
  130. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +154 -0
  131. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +88 -0
  132. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +211 -0
  133. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +140 -0
  134. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +294 -0
  135. package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +299 -0
  136. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +117 -0
  137. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +208 -0
  138. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +163 -0
  139. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +111 -0
  140. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +104 -0
  141. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +108 -0
  142. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +103 -0
  143. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +119 -0
  144. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +112 -0
  145. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +95 -0
  146. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +92 -0
  147. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +141 -0
  148. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +169 -0
  149. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +169 -0
  150. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +97 -0
  151. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +115 -0
  152. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +151 -0
  153. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +143 -0
  154. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +129 -0
  155. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +221 -0
  156. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +153 -0
  157. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +101 -0
  158. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +106 -0
  159. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +109 -0
  160. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +93 -0
  161. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +90 -0
  162. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +185 -0
  163. package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +73 -0
  164. package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +327 -0
  165. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +149 -0
  166. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +127 -0
  167. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +88 -0
  168. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +105 -0
  169. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +136 -0
  170. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +131 -0
  171. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +112 -0
  172. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +125 -0
  173. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +107 -0
  174. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +115 -0
  175. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +93 -0
  176. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +100 -0
  177. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +83 -0
  178. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +83 -0
  179. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +106 -0
  180. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +114 -0
  181. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +118 -0
  182. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +109 -0
  183. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +90 -0
  184. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +73 -0
  185. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +144 -0
  186. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +85 -0
  187. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +146 -0
  188. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +114 -0
  189. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +129 -0
  190. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +140 -0
  191. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +132 -0
  192. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +108 -0
  193. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +84 -0
  194. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +136 -0
  195. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +155 -0
  196. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +140 -0
  197. package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +276 -0
  198. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +87 -0
  199. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +151 -0
  200. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +112 -0
  201. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +205 -0
  202. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +104 -0
  203. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +119 -0
  204. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +172 -0
  205. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +195 -0
  206. package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +95 -0
  207. package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +90 -0
  208. package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
  209. package/templates/react-sdk-reference/.github/copilot-instructions.md +58 -0
  210. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +2 -2
  211. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +1 -1
  212. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +5 -1
  213. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +3 -2
  214. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +2 -1
  215. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +187 -16
  216. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
  217. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +411 -0
  218. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +205 -0
  219. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +223 -0
  220. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +229 -0
  221. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +208 -0
  222. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +65 -65
  223. package/templates/react-sdk-reference/.github/skills/component-contracts.md +99 -99
  224. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +40 -38
  225. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +54 -51
  226. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
  227. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +32 -28
  228. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +38 -35
  229. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +25 -23
  230. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +29 -26
  231. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +32 -26
  232. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +17 -15
  233. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +85 -59
  234. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
  235. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +60 -18
  236. package/templates/react-sdk-reference/.github/skills/field-components.md +56 -23
  237. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +27 -26
  238. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +30 -22
  239. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +60 -43
  240. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +23 -20
  241. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +19 -17
  242. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +18 -15
  243. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +22 -21
  244. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +50 -30
  245. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +20 -18
  246. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +21 -15
  247. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +17 -16
  248. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +30 -21
  249. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +66 -42
  250. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +27 -18
  251. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +22 -21
  252. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +36 -17
  253. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +56 -35
  254. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +23 -12
  255. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +41 -31
  256. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +70 -55
  257. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +34 -27
  258. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +24 -22
  259. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +38 -22
  260. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +24 -21
  261. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +16 -15
  262. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +16 -15
  263. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +57 -34
  264. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +10 -8
  265. package/templates/react-sdk-reference/.github/skills/template-components.md +50 -14
  266. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +27 -21
  267. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +17 -15
  268. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +19 -16
  269. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +19 -13
  270. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +23 -17
  271. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +34 -29
  272. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +18 -16
  273. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +36 -32
  274. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +23 -21
  275. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +31 -29
  276. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +19 -17
  277. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +22 -20
  278. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +19 -17
  279. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +19 -17
  280. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +15 -10
  281. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +19 -16
  282. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +18 -15
  283. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +17 -13
  284. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +10 -13
  285. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +9 -7
  286. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +33 -30
  287. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +13 -11
  288. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +42 -40
  289. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +25 -20
  290. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +25 -19
  291. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +36 -29
  292. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +31 -27
  293. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +29 -24
  294. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +14 -11
  295. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +34 -32
  296. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +48 -46
  297. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +23 -19
  298. package/templates/react-sdk-reference/.github/skills/widget-components.md +52 -26
  299. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +22 -20
  300. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +33 -28
  301. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +18 -15
  302. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +43 -37
  303. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +23 -19
  304. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +20 -16
  305. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +26 -24
  306. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +43 -35
  307. package/templates/react-sdk-reference/AGENTS.md +216 -29
  308. package/templates/react-sdk-reference/index.html +1 -4
  309. package/templates/react-sdk-reference/package.json +16 -16
  310. package/templates/react-sdk-reference/pega-constellationjs-0.26.3-local.tgz +0 -0
  311. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  312. package/templates/react-sdk-reference/sdk-config.json +1 -1
  313. package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
  314. package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
  315. package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
  316. package/templates/react-sdk-reference/src/MashupApp.tsx +186 -85
  317. package/templates/react-sdk-reference/src/PortalApp.tsx +10 -34
  318. package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
  319. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
  320. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
  321. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
  322. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
  323. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
  324. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
  325. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
  326. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
  327. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
  328. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
  329. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
  330. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
  331. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
  332. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
  333. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
  334. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
  335. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
  336. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
  337. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
  338. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
  339. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
  340. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
  341. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
  342. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
  343. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
  344. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
  345. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
  346. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
  347. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
  348. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
  349. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
  350. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
  351. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
  352. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
  353. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
  354. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
  355. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
  356. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
  357. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
  358. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
  359. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
  360. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
  361. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
  362. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
  363. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
  364. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
  365. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
  366. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
  367. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
  368. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
  369. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
  370. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
  371. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
  372. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
  373. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
  374. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
  375. package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
  376. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
  377. package/templates/react-sdk-reference/src/components/index.ts +1 -4
  378. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
  379. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
  380. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
  381. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
  382. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
  383. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
  384. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
  385. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
  386. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
  387. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
  388. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
  389. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
  390. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
  391. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
  392. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
  393. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
  394. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
  395. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
  396. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
  397. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
  398. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
  399. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
  400. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
  401. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
  402. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
  403. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
  404. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
  405. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
  406. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
  407. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
  408. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
  409. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
  410. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
  411. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
  412. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
  413. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
  414. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
  415. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
  416. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
  417. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
  418. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
  419. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
  420. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
  421. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
  422. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
  423. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
  424. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
  425. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
  426. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
  427. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
  428. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
  429. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
  430. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
  431. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
  432. package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
  433. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
  434. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
  435. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
  436. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
  437. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
  438. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
  439. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
  440. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
  441. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
  442. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
  443. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
  444. package/templates/react-sdk-reference/src/main.tsx +1 -1
  445. package/templates/react-sdk-reference/tsconfig.json +2 -1
  446. package/templates/react-sdk-reference/vite.config.ts +52 -27
  447. package/templates/wc-sdk-reference/package.json +3 -3
  448. package/templates/wc-sdk-reference/src/index.ts +10 -10
  449. package/templates/wc-sdk-reference/tsconfig.json +1 -0
  450. package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +0 -48
  451. package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +0 -81
  452. package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +0 -41
  453. package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +0 -49
  454. package/templates/react-sdk-reference/.github/skills/swap-design-system.md +0 -105
  455. package/templates/react-sdk-reference/pega-constellationjs-0.26.2.tgz +0 -0
@@ -61,9 +61,12 @@ interface RichTextEditorProps extends PConnFieldProps {
61
61
 
62
62
  Used for: AlertBanner, Banner, Operator
63
63
 
64
+ This pattern is design-system agnostic. The variant-mapping logic and message normalisation are always the same. The `// [DS RENDER]` section must be replaced with your design system's alert/notification primitive — see "Design System Adaptation" below.
65
+
64
66
  ```typescript
65
- import Alert from '@mui/material/Alert';
66
- import AlertTitle from '@mui/material/AlertTitle';
67
+ // Import your design system alert/notification component:
68
+ // e.g. import { Alert } from 'antd';
69
+ // e.g. import { Alert } from '@chakra-ui/react';
67
70
 
68
71
  interface AlertBannerProps {
69
72
  variant: 'urgent' | 'warning' | 'info' | 'success';
@@ -75,26 +78,31 @@ interface AlertBannerProps {
75
78
  export default function AlertBanner(props: AlertBannerProps) {
76
79
  const { variant, heading, messages = [], onClose } = props;
77
80
 
78
- // Map Pega variant names to MUI severity
79
- const severityMap: Record<string, 'error' | 'warning' | 'info' | 'success'> = {
81
+ // Map Pega variant names to your DS equivalent
82
+ // e.g. MUI: urgent → 'error' | Ant Design: urgent → 'error' | Chakra: urgent → 'error'
83
+ const variantMap: Record<string, string> = {
80
84
  urgent: 'error',
81
85
  warning: 'warning',
82
86
  info: 'info',
83
87
  success: 'success'
84
88
  };
85
89
 
90
+ // Normalise messages — Pega may send a plain string or an object
86
91
  function renderMessage(msg: string | { label?: string; description?: string }) {
87
92
  if (typeof msg === 'string') return msg;
88
93
  return `${msg.label ?? ''} ${msg.description ?? ''}`.trim();
89
94
  }
90
95
 
96
+ // [DS RENDER] — replace with your design system's alert/notification primitive
97
+ // The variantMap value above should be passed as the DS severity/type/status prop
91
98
  return (
92
- <Alert severity={severityMap[variant] ?? 'info'} onClose={onClose}>
93
- {heading && <AlertTitle>{heading}</AlertTitle>}
94
- {messages.map((msg, i) => (
95
- <div key={i}>{renderMessage(msg)}</div>
96
- ))}
97
- </Alert>
99
+ <YourDesignSystemAlert
100
+ type={variantMap[variant] ?? 'info'}
101
+ message={heading}
102
+ description={messages.map(renderMessage).join(' ')}
103
+ closable={!!onClose}
104
+ onClose={onClose}
105
+ />
98
106
  );
99
107
  }
100
108
  ```
@@ -167,9 +175,9 @@ export default function FieldGroup(props: FieldGroupProps) {
167
175
 
168
176
  ## Styling Patterns
169
177
 
170
- DSE components use either CSS files or MUI's `sx` prop:
178
+ DSE components use one of three approaches depending on the component and design system:
171
179
 
172
- ### CSS File Pattern
180
+ ### CSS File Pattern (DS-agnostic, preferred for Field Value components)
173
181
 
174
182
  ```css
175
183
  /* FieldValueList.css */
@@ -190,15 +198,49 @@ DSE components use either CSS files or MUI's `sx` prop:
190
198
  }
191
199
  ```
192
200
 
193
- ### MUI sx Prop Pattern
201
+ ### Design System Style Props (use if your DS provides them)
194
202
 
195
- ```typescript
196
- <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>
197
- <Typography variant='body2' color='text.secondary'>{name}</Typography>
198
- <Typography variant='body1'>{value}</Typography>
199
- </Box>
203
+ If the chosen design system provides built-in spacing, typography, or layout props, prefer them over plain CSS:
204
+
205
+ - Use the DS's layout wrapper (e.g., `<Stack>`, `<Flex>`, `<HStack>`) instead of manual flex CSS
206
+ - Use DS typography components (e.g., `<Text>`, `<Heading>`) instead of raw `<span>`/`<div>`
207
+ - Use DS CSS custom properties or tokens for spacing — never hardcode `px` values
208
+ - Discover which style props are available from the installed `.d.ts` files before using them
209
+
210
+ ---
211
+
212
+ ## Design System Adaptation
213
+
214
+ DSE components fall into three patterns with different DS dependencies:
215
+
216
+ | Pattern | Examples | DS needed? |
217
+ | ----------------------------------------- | ------------------------------------------------ | -------------------------------------------------- |
218
+ | **B — Pure display** (no PConnect) | AlertBanner, Banner, Operator, WssQuickCreate | Yes — DS provides alert/card/avatar primitives |
219
+ | **A — PConnect display** | CaseSummaryFields, DetailsFields, FieldValueList | Minimal — CSS-based layout; DS typography optional |
220
+ | **C — Complex display** (PConnect bridge) | FieldGroup, FieldGroupList, Pulse | No — PConnect bridge is DS-agnostic; semantic HTML |
221
+
222
+ The component-specific skill file specifies which pattern applies.
223
+
224
+ **1. Check the component-specific skill file** — `.github/skills/design-system-extension-skills/<ComponentName>.md` contains a **Design System Mapping** table where available.
225
+
226
+ **2. If the chosen design system is not listed** — use the component purpose and pattern category above to pick the closest DS primitive.
227
+
228
+ **3. Discover the API from installed packages** — confirm component names and props from `.d.ts` before writing JSX:
229
+
230
+ ```bash
231
+ find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Alert\|Badge\|Avatar" | head -5
232
+ grep -A 30 "interface.*Props" <path-to-file>
200
233
  ```
201
234
 
235
+ **4. Variant mapping** — always map Pega's variant names to your DS equivalent before passing to DS components:
236
+
237
+ | Pega variant | Meaning | Typical DS equivalent |
238
+ | ------------ | ---------------- | ----------------------------- |
239
+ | `urgent` | Critical / error | `error`, `danger`, `critical` |
240
+ | `warning` | Warning | `warning` |
241
+ | `info` | Informational | `info` |
242
+ | `success` | Success | `success` |
243
+
202
244
  ---
203
245
 
204
246
  ## Registration
@@ -59,18 +59,22 @@ interface MyFieldProps extends PConnFieldProps {
59
59
 
60
60
  ## Implementation Pattern
61
61
 
62
- ### Minimal Field Component Template
62
+ ### Abstract Field Component Template
63
+
64
+ This template is design-system agnostic. It defines the **behavioral skeleton** every field component must follow. Replace the `// [DS RENDER]` section with your design system's input primitive — see the "Design System Adaptation" section below for guidance.
63
65
 
64
66
  ```typescript
65
67
  import { useState, useEffect } from 'react';
66
- import { TextField } from '@mui/material'; // or your design system
68
+ // Import your design system component here:
69
+ // e.g. import { Input } from 'antd';
70
+ // e.g. import { Input } from '@chakra-ui/react';
67
71
 
68
72
  import handleEvent from '../../helpers/event-utils';
69
73
  import { getComponentFromRegistry } from '@pega/sdk-react';
70
- import type { PConnFieldProps } from '../../../types/PConnProps';
74
+ import type { PConnFieldProps } from '@pega/sdk-react';
71
75
 
72
76
  interface MyFieldProps extends PConnFieldProps {
73
- // Component-specific props
77
+ // Add component-specific props here
74
78
  }
75
79
 
76
80
  export default function MyField(props: MyFieldProps) {
@@ -97,13 +101,15 @@ export default function MyField(props: MyFieldProps) {
97
101
  const propName = (pConn.getStateProps() as any).value;
98
102
  const helperTextToDisplay = validatemessage || helperText;
99
103
 
104
+ // 1. Track input value locally — do NOT commit on every keystroke
100
105
  const [inputValue, setInputValue] = useState(value);
101
106
 
107
+ // 2. Sync local state when the store value changes
102
108
  useEffect(() => {
103
109
  setInputValue(value);
104
110
  }, [value]);
105
111
 
106
- // --- Display modes (read-only rendering) ---
112
+ // 3. Display modes — must short-circuit before any interactive rendering
107
113
  if (displayMode === 'DISPLAY_ONLY') {
108
114
  return <FieldValueList name={hideLabel ? '' : label} value={value} />;
109
115
  }
@@ -112,33 +118,30 @@ export default function MyField(props: MyFieldProps) {
112
118
  return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
113
119
  }
114
120
 
115
- // --- Event handlers ---
116
- function handleChange(event) {
117
- setInputValue(event?.target?.value);
121
+ // 4. Event handlers
122
+ function handleChange(newValue: string) {
123
+ setInputValue(newValue); // update local state only
118
124
  }
119
125
 
120
126
  function handleBlur() {
121
- handleEvent(actions, 'changeNblur', propName, inputValue);
127
+ handleEvent(actions, 'changeNblur', propName, inputValue); // commit to Pega store
122
128
  }
123
129
 
124
- // --- Render ---
130
+ // 5. [DS RENDER] — replace with your design system's input primitive
131
+ // Refer to "Design System Adaptation" below for prop mapping guidance
125
132
  return (
126
- <TextField
127
- fullWidth
128
- variant={readOnly ? 'standard' : 'outlined'}
129
- helperText={helperTextToDisplay}
130
- placeholder={placeholder ?? ''}
131
- size='small'
132
- required={required}
133
- disabled={disabled}
133
+ <YourDesignSystemInput
134
+ value={inputValue}
134
135
  onChange={handleChange}
135
136
  onBlur={!readOnly ? handleBlur : undefined}
136
- error={status === 'error'}
137
+ disabled={disabled}
138
+ readOnly={readOnly}
139
+ required={required}
140
+ placeholder={placeholder}
137
141
  label={label}
138
- value={inputValue}
139
- slotProps={{
140
- input: { readOnly, inputProps: { 'data-test-id': testId } }
141
- }}
142
+ helperText={helperTextToDisplay}
143
+ isInvalid={status === 'error'}
144
+ data-test-id={testId}
142
145
  />
143
146
  );
144
147
  }
@@ -146,6 +149,36 @@ export default function MyField(props: MyFieldProps) {
146
149
 
147
150
  ---
148
151
 
152
+ ## Design System Adaptation
153
+
154
+ When filling in the `// [DS RENDER]` section with a specific design system:
155
+
156
+ **1. Check the component-specific skill file** — `.github/skills/field-skills/<ComponentName>.md` contains a **Design System Mapping** table that lists the recommended DS component for common design systems. Use it as a starting point.
157
+
158
+ **2. If the chosen design system is not in the mapping table** — use the **UI control type** field in the same skill file (e.g., `"Combobox / typeahead autocomplete input"`) to identify the closest DS primitive.
159
+
160
+ **3. Discover the API from installed packages** — before writing any render JSX, confirm all prop names from `.d.ts` files. Never rely on training-knowledge of a DS API:
161
+
162
+ ```bash
163
+ find node_modules/<ds-package> -name "ComponentName.d.ts" | head -3
164
+ grep -A 40 "interface.*Props" <path-to-file>
165
+ ```
166
+
167
+ **4. Prop mapping conventions** — adapt these Pega/SDK props to whatever your DS component calls them:
168
+
169
+ | Pega/SDK prop | Meaning | Typical DS equivalent |
170
+ | --------------------------------- | ----------------------------- | -------------------------------------------------- |
171
+ | `status === 'error'` | Validation error state | `error`, `status="error"`, `invalid`, `isInvalid` |
172
+ | `validatemessage \|\| helperText` | Helper/error text below field | `helperText`, `description`, `hint`, `extra` |
173
+ | `readOnly` | Non-editable, still visible | `readOnly`, `isReadOnly`, `variant="borderless"` |
174
+ | `testId` | Automation selector | `data-test-id` on the underlying `<input>` element |
175
+ | `required` | Required field marker | `required`, `isRequired` |
176
+ | `hideLabel` | Suppress label display | Pass empty string `''` as label |
177
+
178
+ **5. Use a form layout wrapper** — if the DS provides a wrapper that combines label + input + helper text (e.g., `<Form.Item>` in Ant Design, `<FormControl>` in Chakra UI), use it rather than composing them manually.
179
+
180
+ ---
181
+
149
182
  ## Event Handling
150
183
 
151
184
  Use `src/components/helpers/event-utils.ts` to commit values to the Pega store:
@@ -18,16 +18,16 @@ Renders a typeahead input that shows a dropdown of matching options as the user
18
18
 
19
19
  ## Props (component-specific)
20
20
 
21
- | Prop | Type | Description |
22
- |------|------|-------------|
23
- | `listType` | `string` | `'associated'` or `'datapage'` |
24
- | `datasource` | `any` | Datasource (array for associated, string name for datapage) |
25
- | `columns` | `any[]` | Column config for extracting key/value from datasource records |
26
- | `parameters` | `any` (optional) | Query parameters for data page calls |
27
- | `deferDatasource` | `boolean` (optional) | If true, transform `datasourceMetadata` into datapage config |
28
- | `datasourceMetadata` | `any` (optional) | Metadata for deferred datasource |
29
- | `onRecordChange` | `any` (optional) | Callback fired on selection change |
30
- | `additionalProps` | `object` (optional) | Extra props passed through to the autocomplete |
21
+ | Prop | Type | Description |
22
+ | -------------------- | -------------------- | -------------------------------------------------------------- |
23
+ | `listType` | `string` | `'associated'` or `'datapage'` |
24
+ | `datasource` | `any` | Datasource (array for associated, string name for datapage) |
25
+ | `columns` | `any[]` | Column config for extracting key/value from datasource records |
26
+ | `parameters` | `any` (optional) | Query parameters for data page calls |
27
+ | `deferDatasource` | `boolean` (optional) | If true, transform `datasourceMetadata` into datapage config |
28
+ | `datasourceMetadata` | `any` (optional) | Metadata for deferred datasource |
29
+ | `onRecordChange` | `any` (optional) | Callback fired on selection change |
30
+ | `additionalProps` | `object` (optional) | Extra props passed through to the autocomplete |
31
31
 
32
32
  ## Behavioral Contract
33
33
 
@@ -64,18 +64,19 @@ Resolve the display label from options and delegate: `return <TextInput {...prop
64
64
 
65
65
  ## Visual Specifications
66
66
 
67
- | Property | Value |
68
- |----------|-------|
69
- | Width | 100% |
70
- | Size | Small |
71
- | Variant | Outlined |
72
- | Dropdown popup | Opens below input, shows filtered options |
73
- | Input | Combobox pattern — types to filter, click arrow to open all |
74
- | Error state | Red border + red helper text |
75
- | Label | Floating label |
76
- | Placeholder | From `placeholder` prop |
67
+ | Property | Value |
68
+ | -------------- | ----------------------------------------------------------- |
69
+ | Width | 100% |
70
+ | Size | Small |
71
+ | Variant | Outlined |
72
+ | Dropdown popup | Opens below input, shows filtered options |
73
+ | Input | Combobox pattern — types to filter, click arrow to open all |
74
+ | Error state | Red border + red helper text |
75
+ | Label | Floating label |
76
+ | Placeholder | From `placeholder` prop |
77
77
 
78
78
  **Autocomplete behavior:**
79
+
79
80
  - The controlled `value` is the selected option object (or `selectedValue` string).
80
81
  - The controlled `inputValue` is the typed text.
81
82
  - `getOptionLabel` returns `option.value` (the display label).
@@ -104,9 +105,9 @@ Resolve the display label from options and delegate: `return <TextInput {...prop
104
105
 
105
106
  Listed design systems are examples only.
106
107
 
107
- | Design System | Recommended Component |
108
- |---|---|
109
- | Default (CSS only) | `<input>` + custom dropdown list with filtering |
110
- | MUI | `<Autocomplete>` with `renderInput` using `<TextField>` |
111
- | Ant Design | `<AutoComplete>` or `<Select showSearch>` |
112
- | Chakra UI | `<Combobox>` (Downshift) or third-party |
108
+ | Design System | Recommended Component |
109
+ | ------------------ | ------------------------------------------------------- |
110
+ | Default (CSS only) | `<input>` + custom dropdown list with filtering |
111
+ | MUI | `<Autocomplete>` with `renderInput` using `<TextField>` |
112
+ | Ant Design | `<AutoComplete>` or `<Select showSearch>` |
113
+ | Chakra UI | `<Combobox>` (Downshift) or third-party |
@@ -18,26 +18,26 @@ Renders a full-screen modal overlay with a confirmation dialog. Presents two act
18
18
 
19
19
  ## Props (component-specific)
20
20
 
21
- | Prop | Type | Description |
22
- |------|------|-------------|
23
- | `heading` | `string` | Modal dialog heading text |
24
- | `content` | `string` | Modal dialog body/description text |
25
- | `itemKey` | `string` | The container item ID for the case being cancelled (aliased as `containerItemID`) |
26
- | `hideDelete` | `boolean` | Whether to hide/disable the delete option |
27
- | `isDataObject` | `boolean` | Whether this is cancelling a data object (not a work item) |
28
- | `skipReleaseLockRequest` | `any` | Whether to skip lock release when removing container item |
29
- | `dismiss` | `Function` | Callback to close/dismiss this dialog (called with `true` to indicate confirmed dismiss) |
21
+ | Prop | Type | Description |
22
+ | ------------------------ | ---------- | ---------------------------------------------------------------------------------------- |
23
+ | `heading` | `string` | Modal dialog heading text |
24
+ | `content` | `string` | Modal dialog body/description text |
25
+ | `itemKey` | `string` | The container item ID for the case being cancelled (aliased as `containerItemID`) |
26
+ | `hideDelete` | `boolean` | Whether to hide/disable the delete option |
27
+ | `isDataObject` | `boolean` | Whether this is cancelling a data object (not a work item) |
28
+ | `skipReleaseLockRequest` | `any` | Whether to skip lock release when removing container item |
29
+ | `dismiss` | `Function` | Callback to close/dismiss this dialog (called with `true` to indicate confirmed dismiss) |
30
30
 
31
31
  ## Behavioral Contract
32
32
 
33
33
  ### Setup
34
34
 
35
35
  ```typescript
36
- const actionsAPI = getPConnect().getActionsApi()
37
- const containerManagerAPI = getPConnect().getContainerManager()
38
- const isLocalAction = getPConnect().getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION)
39
- const isBulkAction = getPConnect()?.options?.isBulkAction
40
- const isReverseCoexistence = PCore.getCoexistenceManager().getBroadcastUtils().isReverseCoexistenceCaseLoaded()
36
+ const actionsAPI = getPConnect().getActionsApi();
37
+ const containerManagerAPI = getPConnect().getContainerManager();
38
+ const isLocalAction = getPConnect().getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION);
39
+ const isBulkAction = getPConnect()?.options?.isBulkAction;
40
+ const isReverseCoexistence = PCore.getCoexistenceManager().getBroadcastUtils().isReverseCoexistenceCaseLoaded();
41
41
  ```
42
42
 
43
43
  ### State
@@ -49,6 +49,7 @@ const isReverseCoexistence = PCore.getCoexistenceManager().getBroadcastUtils().i
49
49
  ### "Go back" button (`leftButton`)
50
50
 
51
51
  Always calls `dismiss()` (no argument = don't confirm). If `isReverseCoexistence`:
52
+
52
53
  ```
53
54
  broadCastUtils.setCallBackFunction(null)
54
55
  broadCastUtils.setIsDirtyDialogActive(false)
@@ -59,6 +60,7 @@ broadCastUtils.setIsDirtyDialogActive(false)
59
60
  Decision tree (evaluated in order):
60
61
 
61
62
  1. **Reverse coexistence:**
63
+
62
64
  ```
63
65
  dismiss(true)
64
66
  PCore.getPubSubUtils().publish(REVERSE_COEXISTENCE_EVENTS.HANDLE_DISCARD)
@@ -72,12 +74,14 @@ Decision tree (evaluated in order):
72
74
  - `.finally()`: re-enable delete button, call `dismiss(true)`
73
75
 
74
76
  3. **Local action** (`isLocalAction`):
77
+
75
78
  ```
76
79
  dismiss(true)
77
80
  actionsAPI.cancelAssignment(containerItemID, false)
78
81
  ```
79
82
 
80
83
  4. **Bulk action** (`isBulkAction`):
84
+
81
85
  ```
82
86
  dismiss(true)
83
87
  actionsAPI.cancelBulkAction(containerItemID)
@@ -96,6 +100,7 @@ Decision tree (evaluated in order):
96
100
  ### Localization
97
101
 
98
102
  All visible text is localized via `PCore.getLocaleUtils().getLocaleValue(key, 'ModalContainer')`:
103
+
99
104
  - `'Go back'`
100
105
  - `'Discard'`
101
106
  - `heading` prop value
@@ -107,6 +112,7 @@ All visible text is localized via `PCore.getLocaleUtils().getLocaleValue(key, 'M
107
112
  Derived from `CancelAlert.css`:
108
113
 
109
114
  ### Full-screen overlay (`.cancel-alert-background`)
115
+
110
116
  ```css
111
117
  .cancel-alert-background {
112
118
  display: flex;
@@ -124,6 +130,7 @@ Derived from `CancelAlert.css`:
124
130
  ```
125
131
 
126
132
  ### Dialog box (`.cancel-alert-top`)
133
+
127
134
  ```css
128
135
  .cancel-alert-top {
129
136
  display: table;
@@ -153,10 +160,10 @@ Derived from `CancelAlert.css`:
153
160
 
154
161
  ### Button styles
155
162
 
156
- | Button | Style | Color |
157
- |--------|-------|-------|
163
+ | Button | Style | Color |
164
+ | ------- | --------- | --------- |
158
165
  | Go back | Contained | Secondary |
159
- | Discard | Contained | Primary |
166
+ | Discard | Contained | Primary |
160
167
 
161
168
  ### Snackbar
162
169
 
@@ -165,6 +172,7 @@ Derived from `CancelAlert.css`:
165
172
  - Close icon button to dismiss manually
166
173
 
167
174
  **CSS variables used:**
175
+
168
176
  - `--modal-background-color`: semi-transparent overlay (e.g., `rgba(0,0,0,0.5)`)
169
177
  - `--modal-top-color`: dialog background (e.g., white or app background)
170
178
  - `--modal-border-color`: dialog border
@@ -195,9 +203,9 @@ Derived from `CancelAlert.css`:
195
203
 
196
204
  Listed design systems are examples only.
197
205
 
198
- | Design System | Recommended Component |
199
- |---|---|
206
+ | Design System | Recommended Component |
207
+ | ------------------ | ------------------------------------------------------------------------------------------- |
200
208
  | Default (CSS only) | `<div class="cancel-alert-background">` + `<div class="cancel-alert-top">` + CSS from above |
201
- | MUI | `<Button>`, `<Grid>`, `<Snackbar>`, `<IconButton>`, fixed overlay `<div>` |
202
- | Ant Design | `<Modal>` or custom overlay |
203
- | Chakra UI | `<Modal>` or `<AlertDialog>` |
209
+ | MUI | `<Button>`, `<Grid>`, `<Snackbar>`, `<IconButton>`, fixed overlay `<div>` |
210
+ | Ant Design | `<Modal>` or custom overlay |
211
+ | Chakra UI | `<Modal>` or `<AlertDialog>` |
@@ -19,31 +19,32 @@ Renders one or more checkboxes. Supports three usage modes: (1) a single boolean
19
19
  ## Props (component-specific)
20
20
 
21
21
  > Note: `Checkbox` uses `Omit<PConnFieldProps, 'value'>` with its own `value?: boolean`. Import type as:
22
+ >
22
23
  > ```typescript
23
24
  > import type { PConnFieldProps } from '@pega/sdk-react';
24
25
  > ```
25
26
 
26
- | Prop | Type | Description |
27
- |------|------|-------------|
28
- | `value` | `boolean` (optional) | Checked state for single-mode checkbox |
29
- | `caption` | `string` (optional) | Label shown next to the single checkbox (not the group label) |
30
- | `trueLabel` | `string` (optional) | Display text when `value` is `true` (used in display modes) |
31
- | `falseLabel` | `string` (optional) | Display text when `value` is `false` (used in display modes) |
32
- | `selectionMode` | `string` (optional) | `'multi'` — enables multi-selection mode from a datasource list |
33
- | `datasource` | `any` (optional) | Options source for multi/card modes |
34
- | `selectionKey` | `string` (optional) | The property path used as the key in selection list |
35
- | `selectionList` | `any` (optional) | Property path for the reference list (multi mode) |
36
- | `primaryField` | `string` | Primary display field for multi/card mode |
37
- | `readonlyContextList` | `any` | Array of currently selected items (for multi/card read-only display) |
38
- | `referenceList` | `string` | Reference list property path |
39
- | `variant` | `string` (optional) | `'card'` — renders options as selectable card grid |
40
- | `hideFieldLabels` | `boolean` | Hide field labels inside card variant |
41
- | `additionalProps` | `any` | Extra props passed to card or checkbox |
42
- | `imagePosition` | `string` | Card image position |
43
- | `imageSize` | `string` | Card image size |
44
- | `showImageDescription` | `string` | Whether to show image description |
45
- | `renderMode` | `string` | `'ReadOnly'` — sets read-only mode alongside `readOnly` prop |
46
- | `image` | `string` | Image field path for card variant |
27
+ | Prop | Type | Description |
28
+ | ---------------------- | -------------------- | -------------------------------------------------------------------- |
29
+ | `value` | `boolean` (optional) | Checked state for single-mode checkbox |
30
+ | `caption` | `string` (optional) | Label shown next to the single checkbox (not the group label) |
31
+ | `trueLabel` | `string` (optional) | Display text when `value` is `true` (used in display modes) |
32
+ | `falseLabel` | `string` (optional) | Display text when `value` is `false` (used in display modes) |
33
+ | `selectionMode` | `string` (optional) | `'multi'` — enables multi-selection mode from a datasource list |
34
+ | `datasource` | `any` (optional) | Options source for multi/card modes |
35
+ | `selectionKey` | `string` (optional) | The property path used as the key in selection list |
36
+ | `selectionList` | `any` (optional) | Property path for the reference list (multi mode) |
37
+ | `primaryField` | `string` | Primary display field for multi/card mode |
38
+ | `readonlyContextList` | `any` | Array of currently selected items (for multi/card read-only display) |
39
+ | `referenceList` | `string` | Reference list property path |
40
+ | `variant` | `string` (optional) | `'card'` — renders options as selectable card grid |
41
+ | `hideFieldLabels` | `boolean` | Hide field labels inside card variant |
42
+ | `additionalProps` | `any` | Extra props passed to card or checkbox |
43
+ | `imagePosition` | `string` | Card image position |
44
+ | `imageSize` | `string` | Card image size |
45
+ | `showImageDescription` | `string` | Whether to show image description |
46
+ | `renderMode` | `string` | `'ReadOnly'` — sets read-only mode alongside `readOnly` prop |
47
+ | `image` | `string` | Image field path for card variant |
47
48
 
48
49
  ## Behavioral Contract
49
50
 
@@ -56,6 +57,7 @@ Renders one or more checkboxes. Supports three usage modes: (1) a single boolean
56
57
  ### Variant: Single checkbox (default)
57
58
 
58
59
  Render a single checkbox with:
60
+
59
61
  - `checked={checked}`
60
62
  - `onChange={!readOnly ? handleChange : undefined}`
61
63
  - `onBlur={!readOnly ? handleBlur : undefined}`
@@ -67,6 +69,7 @@ Render a single checkbox with:
67
69
  ### Variant: Multi-select (`selectionMode === 'multi'`)
68
70
 
69
71
  Render a list of checkboxes from `datasource.source`:
72
+
70
73
  - Each option: `key` from `selectionKey` extraction, `text`/`value` as label.
71
74
  - `checked` per option: `selectedvalues.some(data => data[dataField] === element.key)` where `dataField = selectionKey.split('.')[1]`.
72
75
  - **On change per checkbox:**
@@ -78,6 +81,7 @@ Render a list of checkboxes from `datasource.source`:
78
81
  ### Variant: Card (`variant === 'card'`)
79
82
 
80
83
  Render a heading (`<h4>`) + CSS Grid + `SelectableCard` component:
84
+
81
85
  - Grid: `repeat(auto-fit, minmax(min(100%, 40ch), 1fr))`, `gridAutoRows: '1fr'`, `gap: '0.5rem'`.
82
86
  - `SelectableCard` props:
83
87
  - `type='checkbox'`
@@ -94,6 +98,7 @@ Render a heading (`<h4>`) + CSS Grid + `SelectableCard` component:
94
98
  ## Display Mode Rendering
95
99
 
96
100
  Display mode uses `caption` (not `label`) and shows true/false label:
101
+
97
102
  - **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />`
98
103
  - **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} variant='stacked' />`
99
104
 
@@ -106,29 +111,41 @@ Multi/Card mode: `readOnlyMode` flag prevents `insertInstruction`/`deleteInstruc
106
111
 
107
112
  ### Standard / Multi-select
108
113
 
109
- | Property | Value |
110
- |----------|-------|
111
- | Checkbox size | Default (24px) |
112
- | Label placement | End (right of checkbox) |
113
- | Group label | `<legend>` above group, hidden if `hideLabel` |
114
- | Layout | Single: single row. Multi: vertical column |
115
- | Helper text | Below group |
116
- | Error state | Red text/border on helper |
117
- | Disabled/readOnly | Greyed out, pointer-events none |
114
+ | Property | Value |
115
+ | ----------------- | --------------------------------------------- |
116
+ | Checkbox size | Default (24px) |
117
+ | Label placement | End (right of checkbox) |
118
+ | Group label | `<legend>` above group, hidden if `hideLabel` |
119
+ | Layout | Single: single row. Multi: vertical column |
120
+ | Helper text | Below group |
121
+ | Error state | Red text/border on helper |
122
+ | Disabled/readOnly | Greyed out, pointer-events none |
118
123
 
119
124
  **CSS-only:**
125
+
120
126
  ```css
121
- .checkbox-group { display: flex; flex-direction: column; gap: 4px; }
122
- .checkbox-label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
123
- input[type="checkbox"]:disabled { opacity: 0.38; }
127
+ .checkbox-group {
128
+ display: flex;
129
+ flex-direction: column;
130
+ gap: 4px;
131
+ }
132
+ .checkbox-label {
133
+ display: flex;
134
+ align-items: center;
135
+ gap: 8px;
136
+ cursor: pointer;
137
+ }
138
+ input[type='checkbox']:disabled {
139
+ opacity: 0.38;
140
+ }
124
141
  ```
125
142
 
126
143
  ### Card Variant
127
144
 
128
- | Property | Value |
129
- |----------|-------|
130
- | Layout | CSS Grid `repeat(auto-fit, minmax(min(100%, 40ch), 1fr))`, row height equal (`1fr`), gap `0.5rem` |
131
- | Heading | `<h4>` with `marginTop: 0, marginBottom: 0` |
145
+ | Property | Value |
146
+ | -------- | ------------------------------------------------------------------------------------------------- |
147
+ | Layout | CSS Grid `repeat(auto-fit, minmax(min(100%, 40ch), 1fr))`, row height equal (`1fr`), gap `0.5rem` |
148
+ | Heading | `<h4>` with `marginTop: 0, marginBottom: 0` |
132
149
 
133
150
  ## Edge Cases & Special Logic
134
151
 
@@ -150,9 +167,9 @@ input[type="checkbox"]:disabled { opacity: 0.38; }
150
167
 
151
168
  Listed design systems are examples only.
152
169
 
153
- | Design System | Recommended Component |
154
- |---|---|
155
- | Default (CSS only) | `<input type="checkbox">` with `<label>` |
156
- | MUI | `<Checkbox>` in `<FormControlLabel>`, `<FormGroup>` |
157
- | Ant Design | `<Checkbox>` / `<Checkbox.Group>` |
158
- | Chakra UI | `<Checkbox>` / `<CheckboxGroup>` |
170
+ | Design System | Recommended Component |
171
+ | ------------------ | --------------------------------------------------- |
172
+ | Default (CSS only) | `<input type="checkbox">` with `<label>` |
173
+ | MUI | `<Checkbox>` in `<FormControlLabel>`, `<FormGroup>` |
174
+ | Ant Design | `<Checkbox>` / `<Checkbox.Group>` |
175
+ | Chakra UI | `<Checkbox>` / `<CheckboxGroup>` |