@pega/sdk 0.0.3 → 0.0.5

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 (508) hide show
  1. package/LICENSE +183 -183
  2. package/README.md +6 -6
  3. package/SECURITY.md +2 -1
  4. package/dist/index.js +299 -56
  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/expo-env.d.ts +3 -0
  10. package/templates/react-native-sdk-reference/package.json +6 -6
  11. package/templates/react-native-sdk-reference/tsconfig.json +2 -1
  12. package/templates/react-sdk-reference/.ai-common/agents/implementation-expert.md +132 -0
  13. package/templates/react-sdk-reference/{.github/copilot-instructions.md → .ai-common/global/ai-agent-instructions.md} +7 -7
  14. package/templates/react-sdk-reference/{.github/instructions/component-map.instructions.md → .ai-common/instructions/component-map.md} +9 -2
  15. package/templates/react-sdk-reference/{.github/instructions/dse-component.instructions.md → .ai-common/instructions/dse-component.md} +1 -1
  16. package/templates/react-sdk-reference/{.cursor/rules/field-component.mdrules → .ai-common/instructions/field-component.md} +6 -2
  17. package/templates/react-sdk-reference/{.github/instructions/template-component.instructions.md → .ai-common/instructions/template-component.md} +3 -2
  18. package/templates/react-sdk-reference/{.github/instructions/widget-component.instructions.md → .ai-common/instructions/widget-component.md} +2 -1
  19. package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +219 -0
  20. package/templates/react-sdk-reference/.ai-common/prompts/component-manifest.json +199 -0
  21. package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +528 -0
  22. package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +216 -0
  23. package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +239 -0
  24. package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +283 -0
  25. package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +222 -0
  26. package/templates/react-sdk-reference/.ai-common/prompts/identify-components.md +109 -0
  27. package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
  28. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/AlertBanner.md +187 -0
  29. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +196 -0
  30. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +213 -0
  31. package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules → .ai-common/skills/design-system-extension-skills/DetailsFields.md} +81 -33
  32. package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules → .ai-common/skills/design-system-extension-skills/FieldGroup.md} +82 -40
  33. package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules → .ai-common/skills/design-system-extension-skills/FieldGroupList.md} +68 -28
  34. package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules → .ai-common/skills/design-system-extension-skills/FieldValueList.md} +75 -31
  35. package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/Operator.mdrules → .ai-common/skills/design-system-extension-skills/Operator.md} +99 -31
  36. package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules → .ai-common/skills/design-system-extension-skills/Pulse.md} +37 -20
  37. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +290 -0
  38. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/WssQuickCreate.md +168 -0
  39. package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension.mdrules → .ai-common/skills/design-system-extension.md} +14 -17
  40. package/templates/react-sdk-reference/{.cursor/rules/skills/field-components.mdrules → .ai-common/skills/field-components.md} +27 -14
  41. package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +298 -0
  42. package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +340 -0
  43. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +358 -0
  44. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +230 -0
  45. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +221 -0
  46. package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +213 -0
  47. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +198 -0
  48. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +260 -0
  49. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +177 -0
  50. package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/Group.mdrules → .ai-common/skills/field-skills/Group.md} +72 -20
  51. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +169 -0
  52. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +250 -0
  53. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Multiselect.md +258 -0
  54. package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/ObjectReference.mdrules → .ai-common/skills/field-skills/ObjectReference.md} +101 -23
  55. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +177 -0
  56. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +210 -0
  57. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +260 -0
  58. package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/RichText.mdrules → .ai-common/skills/field-skills/RichText.md} +108 -17
  59. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +188 -0
  60. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +286 -0
  61. package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/SemanticLink.mdrules → .ai-common/skills/field-skills/SemanticLink.md} +98 -32
  62. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +164 -0
  63. package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/TextContent.mdrules → .ai-common/skills/field-skills/TextContent.md} +66 -27
  64. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +174 -0
  65. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +156 -0
  66. package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +145 -0
  67. package/templates/react-sdk-reference/.ai-common/skills/field-skills/UserReference.md +293 -0
  68. package/templates/react-sdk-reference/.ai-common/skills/run-and-verify.md +70 -0
  69. package/templates/react-sdk-reference/{.cursor/rules/skills/template-components.mdrules → .ai-common/skills/template-components.md} +89 -64
  70. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +227 -0
  71. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +273 -0
  72. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/BannerPage.mdrules → .ai-common/skills/template-skills/BannerPage.md} +58 -21
  73. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +185 -0
  74. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +399 -0
  75. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +282 -0
  76. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +198 -0
  77. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DataReference.md +174 -0
  78. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +221 -0
  79. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultPage.md +161 -0
  80. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/Details.mdrules → .ai-common/skills/template-skills/Details.md} +78 -22
  81. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules → .ai-common/skills/template-skills/DetailsSubTabs.md} +82 -25
  82. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules → .ai-common/skills/template-skills/DetailsThreeColumn.md} +31 -22
  83. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules → .ai-common/skills/template-skills/DetailsTwoColumn.md} +31 -22
  84. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DynamicTabs.mdrules → .ai-common/skills/template-skills/DynamicTabs.md} +82 -15
  85. package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +231 -0
  86. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/HierarchicalForm.mdrules → .ai-common/skills/template-skills/HierarchicalForm.md} +63 -20
  87. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/InlineDashboard.mdrules → .ai-common/skills/template-skills/InlineDashboard.md} +58 -18
  88. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules → .ai-common/skills/template-skills/InlineDashboardPage.md} +66 -18
  89. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/ListPage.mdrules → .ai-common/skills/template-skills/ListPage.md} +27 -12
  90. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +419 -0
  91. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules → .ai-common/skills/template-skills/MultiReferenceReadOnly.md} +53 -16
  92. package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +209 -0
  93. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/OneColumn.mdrules → .ai-common/skills/template-skills/OneColumn.md} +59 -25
  94. package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +222 -0
  95. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +198 -0
  96. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SimpleTable.md +190 -0
  97. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +160 -0
  98. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/SubTabs.mdrules → .ai-common/skills/template-skills/SubTabs.md} +61 -16
  99. package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/TwoColumn.mdrules → .ai-common/skills/template-skills/TwoColumn.md} +83 -37
  100. package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +48 -46
  101. package/templates/react-sdk-reference/.ai-common/skills/template-skills/WssNavBar.md +210 -0
  102. package/templates/react-sdk-reference/{.cursor/rules/skills/widget-components.mdrules → .ai-common/skills/widget-components.md} +12 -28
  103. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +121 -0
  104. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +209 -0
  105. package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/CaseHistory.mdrules → .ai-common/skills/widget-skills/CaseHistory.md} +81 -20
  106. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/FileUtility.md +273 -0
  107. package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/Followers.mdrules → .ai-common/skills/widget-skills/Followers.md} +43 -24
  108. package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/QuickCreate.mdrules → .ai-common/skills/widget-skills/QuickCreate.md} +68 -21
  109. package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/SummaryItem.mdrules → .ai-common/skills/widget-skills/SummaryItem.md} +92 -29
  110. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +492 -0
  111. package/templates/react-sdk-reference/index.html +1 -4
  112. package/templates/react-sdk-reference/package.json +15 -15
  113. package/templates/react-sdk-reference/package.minimal.json +29 -0
  114. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  115. package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
  116. package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
  117. package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
  118. package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
  119. package/templates/react-sdk-reference/src/MashupApp.tsx +194 -104
  120. package/templates/react-sdk-reference/src/PortalApp.tsx +15 -50
  121. package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
  122. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
  123. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
  124. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
  125. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
  126. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
  127. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
  128. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
  129. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
  130. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
  131. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
  132. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
  133. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
  134. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
  135. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
  136. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
  137. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
  138. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
  139. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
  140. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
  141. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
  142. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
  143. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
  144. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
  145. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
  146. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
  147. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
  148. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
  149. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
  150. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
  151. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
  152. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
  153. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
  154. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
  155. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
  156. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
  157. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
  158. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
  159. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
  160. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
  161. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
  162. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
  163. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
  164. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
  165. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
  166. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
  167. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
  168. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
  169. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
  170. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
  171. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
  172. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
  173. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
  174. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
  175. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
  176. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
  177. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
  178. package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
  179. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
  180. package/templates/react-sdk-reference/src/components/index.ts +1 -4
  181. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
  182. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
  183. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
  184. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
  185. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
  186. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
  187. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
  188. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
  189. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
  190. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
  191. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
  192. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
  193. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
  194. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
  195. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
  196. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
  197. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
  198. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
  199. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
  200. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
  201. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
  202. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
  203. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
  204. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
  205. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
  206. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
  207. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
  208. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
  209. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
  210. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
  211. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
  212. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
  213. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
  214. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
  215. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
  216. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
  217. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
  218. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
  219. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
  220. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
  221. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
  222. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
  223. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
  224. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
  225. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
  226. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
  227. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
  228. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
  229. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
  230. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
  231. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
  232. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
  233. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
  234. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
  235. package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
  236. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
  237. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
  238. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
  239. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
  240. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
  241. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
  242. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
  243. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
  244. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
  245. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
  246. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
  247. package/templates/react-sdk-reference/src/main.tsx +1 -1
  248. package/templates/react-sdk-reference/tsconfig.json +2 -1
  249. package/templates/react-sdk-reference/vite.config.ts +51 -26
  250. package/templates/wc-sdk-reference/package.json +3 -3
  251. package/templates/wc-sdk-reference/src/index.ts +10 -10
  252. package/templates/wc-sdk-reference/tsconfig.json +1 -0
  253. package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
  254. package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
  255. package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -71
  256. package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -92
  257. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -87
  258. package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -144
  259. package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +0 -111
  260. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -149
  261. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -126
  262. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -139
  263. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -151
  264. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -124
  265. package/templates/react-sdk-reference/.claude/prompts/identify-components.md +0 -105
  266. package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
  267. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
  268. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -135
  269. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +0 -149
  270. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +0 -154
  271. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +0 -144
  272. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -131
  273. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +0 -111
  274. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -115
  275. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +0 -149
  276. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -83
  277. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -206
  278. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +0 -135
  279. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -289
  280. package/templates/react-sdk-reference/.claude/skills/field-components.md +0 -294
  281. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -112
  282. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +0 -203
  283. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -158
  284. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -106
  285. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -99
  286. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -103
  287. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +0 -98
  288. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +0 -114
  289. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +0 -107
  290. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +0 -90
  291. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -87
  292. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +0 -136
  293. package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +0 -164
  294. package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +0 -164
  295. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -92
  296. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -110
  297. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -146
  298. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -138
  299. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -124
  300. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -216
  301. package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +0 -148
  302. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +0 -96
  303. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +0 -101
  304. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -104
  305. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -88
  306. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -85
  307. package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +0 -180
  308. package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +0 -68
  309. package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -322
  310. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -144
  311. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -122
  312. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +0 -83
  313. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -100
  314. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -131
  315. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -126
  316. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -107
  317. package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +0 -120
  318. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +0 -102
  319. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +0 -110
  320. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +0 -88
  321. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -95
  322. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +0 -78
  323. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -78
  324. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +0 -101
  325. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +0 -109
  326. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +0 -113
  327. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +0 -104
  328. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +0 -85
  329. package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +0 -68
  330. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -139
  331. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -80
  332. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +0 -141
  333. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -109
  334. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +0 -124
  335. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +0 -135
  336. package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +0 -127
  337. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -103
  338. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -79
  339. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +0 -131
  340. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +0 -135
  341. package/templates/react-sdk-reference/.claude/skills/widget-components.md +0 -271
  342. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +0 -82
  343. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +0 -146
  344. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +0 -107
  345. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -200
  346. package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +0 -99
  347. package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +0 -114
  348. package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +0 -167
  349. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -190
  350. package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
  351. package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
  352. package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
  353. package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
  354. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +0 -111
  355. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
  356. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
  357. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
  358. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
  359. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
  360. package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
  361. package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
  362. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
  363. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
  364. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
  365. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
  366. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
  367. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
  368. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
  369. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
  370. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
  371. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
  372. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
  373. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
  374. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
  375. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
  376. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
  377. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
  378. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
  379. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
  380. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
  381. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
  382. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
  383. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
  384. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
  385. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
  386. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
  387. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
  388. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
  389. package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
  390. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
  391. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
  392. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
  393. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
  394. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
  395. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
  396. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
  397. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
  398. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
  399. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
  400. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
  401. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
  402. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
  403. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
  404. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
  405. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
  406. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
  407. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
  408. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
  409. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
  410. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
  411. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
  412. package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
  413. package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
  414. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +0 -73
  415. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +0 -149
  416. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -111
  417. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +0 -154
  418. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +0 -131
  419. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +0 -144
  420. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +0 -156
  421. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +0 -129
  422. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
  423. package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
  424. package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
  425. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +0 -135
  426. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -149
  427. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -154
  428. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -144
  429. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +0 -131
  430. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -111
  431. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +0 -115
  432. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -149
  433. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +0 -83
  434. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +0 -206
  435. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +0 -135
  436. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +0 -289
  437. package/templates/react-sdk-reference/.github/skills/field-components.md +0 -294
  438. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -112
  439. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -203
  440. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -158
  441. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -106
  442. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -99
  443. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -103
  444. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -98
  445. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -114
  446. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -107
  447. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -90
  448. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +0 -87
  449. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -136
  450. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +0 -164
  451. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +0 -164
  452. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +0 -92
  453. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +0 -110
  454. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +0 -146
  455. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +0 -138
  456. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +0 -124
  457. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +0 -216
  458. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +0 -148
  459. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -96
  460. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +0 -101
  461. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +0 -104
  462. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +0 -88
  463. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +0 -85
  464. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -180
  465. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -68
  466. package/templates/react-sdk-reference/.github/skills/template-components.md +0 -322
  467. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +0 -144
  468. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -122
  469. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -83
  470. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +0 -100
  471. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -131
  472. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -126
  473. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +0 -107
  474. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -120
  475. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -102
  476. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +0 -110
  477. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -88
  478. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +0 -95
  479. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -78
  480. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +0 -78
  481. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -101
  482. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -109
  483. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -113
  484. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -104
  485. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -85
  486. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +0 -68
  487. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -139
  488. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +0 -80
  489. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -141
  490. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +0 -109
  491. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -124
  492. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -135
  493. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +0 -127
  494. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +0 -103
  495. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +0 -79
  496. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -131
  497. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -150
  498. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +0 -135
  499. package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -271
  500. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -82
  501. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -146
  502. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -107
  503. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +0 -200
  504. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -99
  505. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +0 -114
  506. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -167
  507. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -190
  508. package/templates/react-sdk-reference/AGENTS.md +0 -247
@@ -0,0 +1,340 @@
1
+ # Skill: CancelAlert
2
+
3
+ Cancel confirmation dialog that offers the user a choice between going back or discarding/deleting the current case/action.
4
+
5
+ > **Note:** This component extends `PConnFieldProps` for registry compatibility but does **not** use standard field patterns (no `displayMode`, no `handleEvent`, no value binding). It is an internal modal dialog.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a full-screen modal overlay with a confirmation dialog. Presents two actions: "Go back" (continue working) and "Discard" (cancel/delete). Handles different cancellation scenarios: standard case creation stage, local action, bulk action, data object, and reverse coexistence. Shows a snackbar notification on delete failure.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Pega Name:** `CancelAlert`
16
+ - **Type / Subtype:** Internal modal/alert
17
+ - **Registration key:** `CancelAlert` (in `component-map.ts`)
18
+
19
+ ## Props (component-specific)
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) |
30
+
31
+ ## Component Skeleton
32
+
33
+ Follow this exact structure when implementing. Replace modal/button/snackbar components with equivalents from your chosen design system.
34
+
35
+ ```typescript
36
+ import { useState } from 'react';
37
+ import type { PConnFieldProps } from '@pega/sdk-react';
38
+ import './CancelAlert.css';
39
+
40
+ // ── Props interface ──────────────────────────────────────────
41
+ interface CancelAlertProps extends PConnFieldProps {
42
+ heading: string;
43
+ content: string;
44
+ itemKey: string;
45
+ hideDelete: boolean;
46
+ isDataObject: boolean;
47
+ skipReleaseLockRequest: any;
48
+ dismiss: Function;
49
+ }
50
+
51
+ // ── Component ────────────────────────────────────────────────
52
+ export default function CancelAlert(props: CancelAlertProps) {
53
+ // 1. Destructure props (note: itemKey aliased to containerItemID)
54
+ const {
55
+ heading, content, getPConnect,
56
+ itemKey: containerItemID,
57
+ hideDelete, isDataObject, skipReleaseLockRequest, dismiss,
58
+ } = props;
59
+
60
+ // 2. PConnect APIs
61
+ const actionsAPI = getPConnect().getActionsApi();
62
+ const containerManagerAPI = getPConnect().getContainerManager();
63
+ const isLocalAction = getPConnect().getValue(
64
+ PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION
65
+ );
66
+ // @ts-ignore - Property 'options' is private
67
+ const isBulkAction = getPConnect()?.options?.isBulkAction;
68
+
69
+ // 3. Localization setup
70
+ const localizedVal = PCore.getLocaleUtils().getLocaleValue;
71
+ const localeCategory = 'ModalContainer';
72
+
73
+ // 4. Coexistence setup
74
+ const broadCastUtils: any = PCore.getCoexistenceManager().getBroadcastUtils();
75
+ const isReverseCoexistence = broadCastUtils.isReverseCoexistenceCaseLoaded();
76
+
77
+ // 5. Button ID constants
78
+ const btnIds = {
79
+ SAVE_AND_CLOSE: 'saveAndClose',
80
+ CONTINUE_WORKING: 'continueWorking',
81
+ DELETE: 'delete',
82
+ };
83
+
84
+ // 6. State
85
+ const [buttonsState, setButtonsState] = useState({
86
+ [btnIds.SAVE_AND_CLOSE]: false,
87
+ [btnIds.DELETE]: false,
88
+ });
89
+ const [showSnackbar, setShowSnackbar] = useState(false);
90
+ const [snackbarMessage, setSnackbarMessage] = useState('');
91
+
92
+ // 7. Button enable/disable helpers
93
+ function disableButton(id) {
94
+ setButtonsState(prev => ({ ...prev, [id]: true }));
95
+ }
96
+ function enableButton(id) {
97
+ setButtonsState(prev => ({ ...prev, [id]: false }));
98
+ }
99
+
100
+ // 8. cancelHandler — see Behavioral Contract "Discard" section
101
+ function cancelHandler() { /* decision tree */ }
102
+
103
+ // 9. handleSnackbarClose — see Behavioral Contract
104
+ function handleSnackbarClose(event, reason?) {
105
+ if (reason === 'clickaway') return;
106
+ setShowSnackbar(false);
107
+ }
108
+
109
+ // 10. Build leftButton ("Go back") and rightButton ("Discard") JSX
110
+ // leftButton: onClick → dismiss(), plus reverse coexistence cleanup
111
+ // rightButton: onClick → cancelHandler(), disabled={buttonsState[btnIds.DELETE]}
112
+ // All button text wrapped in localizedVal(text, localeCategory)
113
+
114
+ // 11. Return: overlay div + dialog box + snackbar
115
+ // See Visual Specifications for layout and CSS classes
116
+ return (
117
+ <>
118
+ <div className="cancel-alert-background">
119
+ <div className="cancel-alert-top">
120
+ <h3>{localizedVal(heading, localeCategory)}</h3>
121
+ <div><p>{localizedVal(content, localeCategory)}</p></div>
122
+ <div className="action-controls">
123
+ {/* Two buttons: Go back (secondary) | Discard (primary) */}
124
+ </div>
125
+ </div>
126
+ </div>
127
+ {/* Snackbar: open={showSnackbar}, autoHideDuration=3000, message={snackbarMessage} */}
128
+ </>
129
+ );
130
+ }
131
+ ```
132
+
133
+ ## Behavioral Contract
134
+
135
+ ### Setup
136
+
137
+ ```typescript
138
+ // PConnect APIs
139
+ const actionsAPI = getPConnect().getActionsApi();
140
+ const containerManagerAPI = getPConnect().getContainerManager();
141
+ const isLocalAction = getPConnect().getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION);
142
+ // @ts-ignore - Property 'options' is private and only accessible within class 'C11nEnv'
143
+ const isBulkAction = getPConnect()?.options?.isBulkAction;
144
+
145
+ // Localization
146
+ const localizedVal = PCore.getLocaleUtils().getLocaleValue;
147
+ const localeCategory = 'ModalContainer';
148
+
149
+ // Coexistence (store broadCastUtils — reused in Go back handler)
150
+ const broadCastUtils: any = PCore.getCoexistenceManager().getBroadcastUtils();
151
+ const isReverseCoexistence = broadCastUtils.isReverseCoexistenceCaseLoaded();
152
+
153
+ // Button IDs (used as keys in buttonsState)
154
+ const btnIds = {
155
+ SAVE_AND_CLOSE: 'saveAndClose',
156
+ CONTINUE_WORKING: 'continueWorking',
157
+ DELETE: 'delete',
158
+ };
159
+ ```
160
+
161
+ ### State
162
+
163
+ - `buttonsState`: tracks disabled state per button: `{ [btnIds.SAVE_AND_CLOSE]: false, [btnIds.DELETE]: false }`
164
+ - `showSnackbar`: boolean — whether to show the failure snackbar
165
+ - `snackbarMessage`: string — error message text
166
+
167
+ ### Helper Functions
168
+
169
+ ```typescript
170
+ function disableButton(id) {
171
+ setButtonsState((prev) => ({ ...prev, [id]: true }));
172
+ }
173
+ function enableButton(id) {
174
+ setButtonsState((prev) => ({ ...prev, [id]: false }));
175
+ }
176
+ ```
177
+
178
+ ### "Go back" button (`leftButton`)
179
+
180
+ Always calls `dismiss()` (no argument = don't confirm). If `isReverseCoexistence`:
181
+
182
+ ```
183
+ broadCastUtils.setCallBackFunction(null)
184
+ broadCastUtils.setIsDirtyDialogActive(false)
185
+ ```
186
+
187
+ ### "Discard" button (`rightButton`) — `cancelHandler()`
188
+
189
+ Decision tree (evaluated in order):
190
+
191
+ 1. **Reverse coexistence:**
192
+
193
+ ```
194
+ dismiss(true)
195
+ PCore.getPubSubUtils().publish(REVERSE_COEXISTENCE_EVENTS.HANDLE_DISCARD)
196
+ ```
197
+
198
+ 2. **Standard case in create stage** (`!isDataObject && !isLocalAction && !isBulkAction`):
199
+ - Disable delete button
200
+ - Call `actionsAPI.deleteCaseInCreateStage(containerItemID, hideDelete)`
201
+ - `.then()`: publish `EVENT_CANCEL`
202
+ - `.catch()`: show snackbar with `'Delete failed.'`
203
+ - `.finally()`: re-enable delete button, call `dismiss(true)`
204
+
205
+ 3. **Local action** (`isLocalAction`):
206
+
207
+ ```
208
+ dismiss(true)
209
+ actionsAPI.cancelAssignment(containerItemID, false)
210
+ ```
211
+
212
+ 4. **Bulk action** (`isBulkAction`):
213
+
214
+ ```
215
+ dismiss(true)
216
+ actionsAPI.cancelBulkAction(containerItemID)
217
+ ```
218
+
219
+ 5. **Data object or other** (default):
220
+ ```
221
+ dismiss(true)
222
+ containerManagerAPI.removeContainerItem({ containerItemID, skipReleaseLockRequest })
223
+ ```
224
+
225
+ ### Snackbar dismissal
226
+
227
+ `handleSnackbarClose`: if `reason === 'clickaway'`, return (do not close). Otherwise `setShowSnackbar(false)`.
228
+
229
+ ### Localization
230
+
231
+ All visible text is localized via `PCore.getLocaleUtils().getLocaleValue(key, 'ModalContainer')`:
232
+
233
+ - `'Go back'`
234
+ - `'Discard'`
235
+ - `heading` prop value
236
+ - `content` prop value
237
+ - `'Delete failed.'`
238
+
239
+ ## Visual Specifications
240
+
241
+ Derived from `CancelAlert.css`:
242
+
243
+ ### Full-screen overlay (`.cancel-alert-background`)
244
+
245
+ ```css
246
+ .cancel-alert-background {
247
+ display: flex;
248
+ flex-direction: column;
249
+ justify-content: center;
250
+ align-items: center;
251
+ height: 100%;
252
+ width: 100%;
253
+ background-color: var(--modal-background-color);
254
+ position: fixed;
255
+ z-index: 9999;
256
+ top: 0;
257
+ left: 0;
258
+ }
259
+ ```
260
+
261
+ ### Dialog box (`.cancel-alert-top`)
262
+
263
+ ```css
264
+ .cancel-alert-top {
265
+ display: table;
266
+ margin: auto;
267
+ min-width: 550px;
268
+ background-color: var(--modal-top-color);
269
+ border: 1px solid var(--modal-border-color);
270
+ border-radius: 10px;
271
+ padding: 20px;
272
+ box-shadow: 0 0 10px 3px var(--modal-box-shadow-color);
273
+ }
274
+ ```
275
+
276
+ ### Content layout
277
+
278
+ ```
279
+ .cancel-alert-top
280
+ <h3>{heading}</h3>
281
+ <div>
282
+ <p>{content}</p>
283
+ </div>
284
+ <div class="action-controls">
285
+ Grid container spacing=4, justifyContent='space-between'
286
+ Grid → leftButton ("Go back", secondary/outlined)
287
+ Grid → rightButton ("Discard", primary/contained, can be disabled)
288
+ ```
289
+
290
+ ### Button styles
291
+
292
+ | Button | Style | Color |
293
+ | ------- | --------- | --------- |
294
+ | Go back | Contained | Secondary |
295
+ | Discard | Contained | Primary |
296
+
297
+ ### Snackbar
298
+
299
+ - `autoHideDuration: 3000ms`
300
+ - Shows `snackbarMessage` (e.g., `'Delete failed.'`)
301
+ - Close icon button to dismiss manually
302
+
303
+ **CSS variables used:**
304
+
305
+ - `--modal-background-color`: semi-transparent overlay (e.g., `rgba(0,0,0,0.5)`)
306
+ - `--modal-top-color`: dialog background (e.g., white or app background)
307
+ - `--modal-border-color`: dialog border
308
+ - `--modal-box-shadow-color`: dialog shadow color
309
+
310
+ **CSS companion file required:** Import `./CancelAlert.css`.
311
+
312
+ ## Edge Cases & Special Logic
313
+
314
+ - **`buttonsState`** tracks loading state to prevent double-clicks during async delete.
315
+ - `dismiss(true)` vs `dismiss()`: passing `true` signals confirmed cancellation; no arg means the user chose to continue.
316
+ - `isBulkAction` is accessed via `getPConnect()?.options?.isBulkAction` — a private property, marked with `@ts-ignore`.
317
+ - All action handling is async — the UI must show loading/disabled state during `deleteCaseInCreateStage`.
318
+
319
+ ## Dependencies
320
+
321
+ - `PCore.getLocaleUtils().getLocaleValue()` — for text localization.
322
+ - `PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION`, `PUB_SUB_EVENTS.EVENT_CANCEL`, etc.
323
+ - `PCore.getPubSubUtils().publish()` — for pub/sub events.
324
+ - `PCore.getCoexistenceManager().getBroadcastUtils()` — for reverse coexistence handling.
325
+ - Button, Grid, IconButton, Snackbar components.
326
+ - Close icon.
327
+ - `./CancelAlert.css` — must be imported.
328
+
329
+ ## Design System Mapping
330
+
331
+ **UI control type:** Full-screen modal confirmation dialog.
332
+
333
+ Listed design systems are examples only.
334
+
335
+ | Design System | Recommended Component |
336
+ | ------------------ | ------------------------------------------------------------------------------------------- |
337
+ | Default (CSS only) | `<div class="cancel-alert-background">` + `<div class="cancel-alert-top">` + CSS from above |
338
+ | MUI | `<Button>`, `<Grid>`, `<Snackbar>`, `<IconButton>`, fixed overlay `<div>` |
339
+ | Ant Design | `<Modal>` or custom overlay |
340
+ | Chakra UI | `<Modal>` or `<AlertDialog>` |
@@ -0,0 +1,358 @@
1
+ # Skill: Checkbox
2
+
3
+ Checkbox field supporting single boolean toggle, multi-selection mode, and optional card-style variant.
4
+
5
+ > **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, props interface, display modes, event handling, and registration patterns common to ALL field components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders one or more checkboxes. Supports three usage modes: (1) a single boolean checkbox, (2) a multi-select list of checkboxes bound to a reference list, and (3) a card-style selectable grid. Display mode shows the true/false label rather than the raw boolean.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Pega Name:** `Checkbox`
16
+ - **Type / Subtype:** `Field` / `Boolean`
17
+ - **Registration key:** `Checkbox` (mapped to `CheckboxComponent` import in `component-map.ts`)
18
+
19
+ ## Props (component-specific)
20
+
21
+ > Note: `Checkbox` uses `Omit<PConnFieldProps, 'value'>` with its own `value?: boolean`. Import type as:
22
+ >
23
+ > ```typescript
24
+ > import type { PConnFieldProps } from '@pega/sdk-react';
25
+ > ```
26
+
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 |
48
+
49
+ ## Component Skeleton
50
+
51
+ Follow this exact structure. The export name is **`CheckboxComponent`** (not `Checkbox`) to avoid collision with the design system's Checkbox widget.
52
+
53
+ ```typescript
54
+ import { useState, useEffect } from 'react';
55
+ import handleEvent from '../../helpers/event-utils';
56
+ import { getComponentFromRegistry } from '@pega/sdk-react';
57
+ import {
58
+ insertInstruction,
59
+ deleteInstruction,
60
+ updateNewInstuctions,
61
+ } from '../../helpers/instructions-utils';
62
+ import type { PConnFieldProps } from '@pega/sdk-react';
63
+
64
+ // ── Props interface ──────────────────────────────────────────
65
+ // Note: Omit 'value' from PConnFieldProps — Checkbox uses boolean, not string
66
+ interface CheckboxProps extends Omit<PConnFieldProps, 'value'> {
67
+ value?: boolean;
68
+ caption?: string;
69
+ trueLabel?: string;
70
+ falseLabel?: string;
71
+ selectionMode?: string;
72
+ datasource?: any;
73
+ selectionKey?: string;
74
+ selectionList?: any;
75
+ primaryField: string;
76
+ readonlyContextList: any;
77
+ referenceList: string;
78
+ variant?: string;
79
+ hideFieldLabels: boolean;
80
+ additionalProps: any;
81
+ imagePosition: string;
82
+ imageSize: string;
83
+ showImageDescription: string;
84
+ renderMode: string;
85
+ image: string;
86
+ }
87
+
88
+ // ── Styles (design-system agnostic) ──────────────────────────
89
+ // .checkbox-column → display: flex, flexDirection: column
90
+ // .selectable-card-grid → display: grid, gridTemplateColumns: repeat(auto-fit, minmax(min(100%, 40ch), 1fr)),
91
+ // gridAutoRows: 1fr, gap: 0.5rem
92
+
93
+ // ── Component ────────────────────────────────────────────────
94
+ export default function CheckboxComponent(props: CheckboxProps) {
95
+ // 1. Registry lookups
96
+ const FieldValueList = getComponentFromRegistry('FieldValueList');
97
+ const SelectableCard = getComponentFromRegistry('SelectableCard');
98
+
99
+ // 2. Destructure props — note alias: readonlyContextList → selectedvalues
100
+ const {
101
+ getPConnect, label, caption, value, readOnly, testId,
102
+ required, disabled, status, helperText, validatemessage,
103
+ displayMode, hideLabel, trueLabel, falseLabel,
104
+ selectionMode, datasource, selectionKey, selectionList,
105
+ primaryField, referenceList,
106
+ readonlyContextList: selectedvalues,
107
+ variant, hideFieldLabels, additionalProps,
108
+ imagePosition, imageSize, showImageDescription, renderMode, image,
109
+ } = props;
110
+
111
+ // 3. Derived flags
112
+ const readOnlyMode = renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY' || readOnly;
113
+ const helperTextToDisplay = validatemessage || helperText;
114
+
115
+ // 4. PConnect setup
116
+ const thePConn = getPConnect();
117
+ const actionsApi = thePConn.getActionsApi();
118
+ const propName = (thePConn.getStateProps() as any).value;
119
+
120
+ // 5. State
121
+ const [checked, setChecked] = useState<any>(false);
122
+
123
+ // 6. useEffect: sync checked state from value prop — deps: [value]
124
+ useEffect(() => { setChecked(value); }, [value]);
125
+
126
+ // 7. useEffect: init reference list on mount — deps: [thePConn]
127
+ // Guard: referenceList?.length > 0 && !readOnlyMode
128
+ // Calls: thePConn.setReferenceList(selectionList)
129
+ // updateNewInstuctions(thePConn, selectionList)
130
+
131
+ // 8. Display mode returns (uses caption, not label!)
132
+ if (displayMode === 'DISPLAY_ONLY') {
133
+ return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />;
134
+ }
135
+ if (displayMode === 'STACKED_LARGE_VAL') {
136
+ return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} variant="stacked" />;
137
+ }
138
+
139
+ // 9. Event handlers — see Behavioral Contract for each variant
140
+
141
+ // 10. Branch: card variant (variant === 'card')
142
+ // → see Behavioral Contract "Card" section
143
+ // Return early with heading + grid + SelectableCard
144
+
145
+ // 11. Branch: multi-select (selectionMode === 'multi')
146
+ // → see Behavioral Contract "Multi-select" section
147
+ // Build list of checkbox controls from datasource.source
148
+
149
+ // 12. Branch: single checkbox (default)
150
+ // → see Behavioral Contract "Single checkbox" section
151
+ // Single FormControlLabel with checked={checked}
152
+
153
+ // 13. Main return: wrapper with group label + checkbox(es) + helper text
154
+ // Error state: status === 'error'
155
+ // Group label: {label}, hidden if hideLabel
156
+ // Helper text: helperTextToDisplay
157
+ return (
158
+ <FormWrapper required={required} error={status === 'error'}>
159
+ {!hideLabel && <GroupLabel>{label}</GroupLabel>}
160
+ <CheckboxGroup>{/* theCheckbox from step 11 or 12 */}</CheckboxGroup>
161
+ <HelperText>{helperTextToDisplay}</HelperText>
162
+ </FormWrapper>
163
+ );
164
+ }
165
+ ```
166
+
167
+ ## Behavioral Contract
168
+
169
+ ### Common
170
+
171
+ 1. **Read-only determination:** `readOnlyMode = renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY' || readOnly`.
172
+ 2. **Helper text:** `helperTextToDisplay = validatemessage || helperText`.
173
+ 3. **Local state:** Maintain `checked` (boolean) initialized to `false`. `useEffect` watching `[value]` → `setChecked(value)`.
174
+ 4. **Reference list init:** `useEffect` watching `[thePConn]` — if `referenceList?.length > 0 && !readOnlyMode`, call `thePConn.setReferenceList(selectionList)` and `updateNewInstuctions(thePConn, selectionList)`.
175
+ 5. **`handleCheckboxChange(event, item)`** — shared by card and internally:
176
+ ```
177
+ if (event.target.checked) {
178
+ insertInstruction(thePConn, selectionList, selectionKey, primaryField, item);
179
+ } else {
180
+ deleteInstruction(thePConn, selectionList, selectionKey, item);
181
+ }
182
+ thePConn.clearErrorMessages({ property: selectionList });
183
+ ```
184
+
185
+ ### Variant: Single checkbox (default)
186
+
187
+ Render a single checkbox with:
188
+
189
+ - `checked={checked}`
190
+ - `onChange={!readOnly ? handleChange : undefined}`
191
+ - `onBlur={!readOnly ? handleBlur : undefined}`
192
+ - Label = `caption` (next to checkbox)
193
+ - Group label = `label` (above, hidden if `hideLabel`)
194
+ - **On change:** `handleEvent(actionsApi, 'changeNblur', propName, event.target.checked)` — passes boolean.
195
+ - **On blur:** `pConn.getValidationApi().validate(event.target.checked)`.
196
+
197
+ ### Variant: Multi-select (`selectionMode === 'multi'`)
198
+
199
+ Render a list of checkboxes from `datasource.source`:
200
+
201
+ - Extract `dataField`: `selectionKey?.split?.('.')[1]`.
202
+ - For each `element` in `datasource.source`:
203
+ - `checked`: `selectedvalues?.some?.(data => data[dataField] === element.key)`
204
+ - Label: `element.text ?? element.value`
205
+ - **On change:** `handleChangeMultiMode(event, element)`:
206
+ ```
207
+ if (event.target.checked) {
208
+ insertInstruction(thePConn, selectionList, selectionKey, primaryField, {
209
+ id: element.key,
210
+ primary: element.text ?? element.value,
211
+ });
212
+ } else {
213
+ deleteInstruction(thePConn, selectionList, selectionKey, {
214
+ id: element.key,
215
+ primary: element.text ?? element.value,
216
+ });
217
+ }
218
+ thePConn.clearErrorMessages({ property: selectionList, category: '', context: '' });
219
+ ```
220
+ - **On blur:** `thePConn.getValidationApi().validate(selectedvalues, selectionList)`
221
+ - `data-testid`: `${testId}:${element.value}`
222
+ - Layout: vertical column (`display: flex, flexDirection: column`).
223
+
224
+ ### Variant: Card (`variant === 'card'`)
225
+
226
+ Return early (before multi/single logic) with heading + CSS Grid + `SelectableCard`:
227
+
228
+ - Build `commonProps`:
229
+ ```
230
+ const actions = thePConn.getActionsApi();
231
+ const commonProps = {
232
+ ...additionalProps,
233
+ className: 'standard',
234
+ disabled,
235
+ readOnly,
236
+ onClick: (actions as any).onClick,
237
+ };
238
+ ```
239
+ - Grid: `repeat(auto-fit, minmax(min(100%, 40ch), 1fr))`, `gridAutoRows: '1fr'`, `gap: '0.5rem'`.
240
+ - `SelectableCard` props:
241
+ - `{...commonProps}`, `testId`, `displayMode`, `getPConnect`
242
+ - `type='checkbox'`
243
+ - `dataSource={datasource}`
244
+ - `readOnly={renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY' || readOnly}`
245
+ - `recordKey={selectionKey?.split('.').pop()}`
246
+ - `cardLabel={primaryField.split('.').pop()}`
247
+ - `readOnlyList={selectedvalues}`
248
+ - `hideFieldLabels={hideFieldLabels}`
249
+ - `showNoValue={(readOnlyMode) && selectedvalues.length === 0}`
250
+ - `image` config object:
251
+ ```
252
+ image={{
253
+ imagePosition,
254
+ imageSize,
255
+ showImageDescription,
256
+ imageField: image?.split('.').pop(),
257
+ imageDescription: (thePConn?.getRawMetadata()?.config as any)
258
+ .imageDescription?.split('.').pop(),
259
+ }}
260
+ ```
261
+ - `onChange`: stop propagation, find item from `datasource.source` by matching `item[recordKey] === e.target.id`, call `handleCheckboxChange`:
262
+ ```
263
+ onChange={(e) => {
264
+ e.stopPropagation();
265
+ const recordKey = selectionKey?.split('.').pop();
266
+ const selectedItem = datasource?.source?.find(
267
+ item => item[recordKey] === e.target.id
268
+ ) ?? {};
269
+ handleCheckboxChange(e, {
270
+ id: selectedItem[recordKey],
271
+ primary: selectedItem[recordKey],
272
+ });
273
+ }}
274
+ ```
275
+ - `onBlur`: `() => thePConn.getValidationApi().validate(selectedvalues, selectionList)`
276
+
277
+ ## Display Mode Rendering
278
+
279
+ Display mode uses `caption` (not `label`) and shows true/false label:
280
+
281
+ - **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />`
282
+ - **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} variant='stacked' />`
283
+
284
+ ## Read-Only Rendering
285
+
286
+ Single mode: Set `readOnly` on checkbox element; disable `onChange`/`onBlur`.
287
+ Multi/Card mode: `readOnlyMode` flag prevents `insertInstruction`/`deleteInstruction`; cards show `readOnlyList`.
288
+
289
+ ## Visual Specifications
290
+
291
+ ### Standard / Multi-select
292
+
293
+ | Property | Value |
294
+ | ----------------- | --------------------------------------------- |
295
+ | Checkbox size | Default (24px) |
296
+ | Label placement | End (right of checkbox) |
297
+ | Group label | `<legend>` above group, hidden if `hideLabel` |
298
+ | Layout | Single: single row. Multi: vertical column |
299
+ | Helper text | Below group |
300
+ | Error state | Red text/border on helper |
301
+ | Disabled/readOnly | Greyed out, pointer-events none |
302
+
303
+ **CSS-only:**
304
+
305
+ ```css
306
+ .checkbox-group {
307
+ display: flex;
308
+ flex-direction: column;
309
+ gap: 4px;
310
+ }
311
+ .checkbox-label {
312
+ display: flex;
313
+ align-items: center;
314
+ gap: 8px;
315
+ cursor: pointer;
316
+ }
317
+ input[type='checkbox']:disabled {
318
+ opacity: 0.38;
319
+ }
320
+ ```
321
+
322
+ ### Card Variant
323
+
324
+ | Property | Value |
325
+ | -------- | ------------------------------------------------------------------------------------------------- |
326
+ | Layout | CSS Grid `repeat(auto-fit, minmax(min(100%, 40ch), 1fr))`, row height equal (`1fr`), gap `0.5rem` |
327
+ | Heading | `<h4>` with `marginTop: 0, marginBottom: 0` |
328
+
329
+ ## Edge Cases & Special Logic
330
+
331
+ - **Export name is `CheckboxComponent`** (not `Checkbox`) to avoid collision with the design system's checkbox widget import.
332
+ - **Display mode uses `caption`** (not `label`) for the field name. This is unique to Checkbox.
333
+ - **`readonlyContextList`** is destructured with alias `selectedvalues` — use `selectedvalues` everywhere in the component body.
334
+ - **`handleCheckboxChange`** (card mode): Calls `e.stopPropagation()` before processing. Finds the selected item from `datasource.source` by matching `item[recordKey] === e.target.id`.
335
+ - `updateNewInstuctions` is called on mount to sync reference list state.
336
+ - `clearErrorMessages` is called after every multi-select change.
337
+ - Card variant returns early (before multi/single branch logic).
338
+ - Multi-select `onBlur` validates with both `selectedvalues` and `selectionList` as arguments.
339
+
340
+ ## Dependencies
341
+
342
+ - `insertInstruction`, `deleteInstruction`, `updateNewInstuctions` from `../../helpers/instructions-utils` — for multi-selection reference list management.
343
+ - `handleEvent` from `../../helpers/event-utils`.
344
+ - `getComponentFromRegistry('FieldValueList')` for display modes.
345
+ - `getComponentFromRegistry('SelectableCard')` for card variant.
346
+
347
+ ## Design System Mapping
348
+
349
+ **UI control type:** Single or multi-select checkbox (boolean or list).
350
+
351
+ Listed design systems are examples only.
352
+
353
+ | Design System | Recommended Component |
354
+ | ------------------ | --------------------------------------------------- |
355
+ | Default (CSS only) | `<input type="checkbox">` with `<label>` |
356
+ | MUI | `<Checkbox>` in `<FormControlLabel>`, `<FormGroup>` |
357
+ | Ant Design | `<Checkbox>` / `<Checkbox.Group>` |
358
+ | Chakra UI | `<Checkbox>` / `<CheckboxGroup>` |