@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,198 @@
1
+ # Skill: SelfServiceCaseView
2
+
3
+ Self-service portal case view template. Renders a case workspace optimized for self-service channels, with a compact summary sidebar, main content area, and optional utilities panel.
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ A case view variant designed for self-service portal channels. Uses a horizontal flex layout (25% summary / flex:1 main / 25% utilities) instead of the 3-column grid of `CaseView`. Filters case summary data to only include fields available in the self-service channel, and filters utilities to self-service-appropriate actions.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Registration key:** `SelfServiceCaseView` (in `component-map.ts`)
16
+ - **Category:** Page template — self-service case workspace
17
+ - **Extends:** `PConnProps`
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Required | Description |
22
+ | -------------- | ------------- | -------- | --------------------------------------------------------------- |
23
+ | `children` | `ReactNode[]` | Yes | Region children (variable count based on `isObjectType`) |
24
+ | `isObjectType` | `boolean` | No | Whether the case is an object-type (affects child region count) |
25
+ | `getPConnect` | `function` | Yes | PConnect getter |
26
+
27
+ ## Component Skeleton
28
+
29
+ ```typescript
30
+ import { getComponentFromRegistry } from '@pega/sdk-react';
31
+ import { prepareCaseSummaryData, filterUtilities } from '../utils';
32
+ import { Utils } from '../../helpers/utils';
33
+
34
+ export default function SelfServiceCaseView(props) {
35
+ const CaseViewActionsMenu = getComponentFromRegistry('CaseViewActionsMenu');
36
+ const CaseSummary = getComponentFromRegistry('CaseSummary');
37
+ const {
38
+ icon = '', getPConnect, header, subheader,
39
+ showCaseLifecycle = true, showSummaryRegion = true,
40
+ showUtilitiesRegion = true, showCaseActions = true,
41
+ children, caseClass,
42
+ caseInfo: { availableActions = [], availableProcesses = [], caseTypeID = '', caseTypeName = '' },
43
+ } = props;
44
+ const pConnect = getPConnect();
45
+
46
+ // 1. Boolean coercion (props may be strings)
47
+ const [bShowCaseLifecycle, bShowSummaryRegion, bShowUtilitiesRegion, bShowCaseActions] =
48
+ [showCaseLifecycle, showSummaryRegion, showUtilitiesRegion, showCaseActions]
49
+ .map(p => p === true || p === 'true');
50
+
51
+ // 2. Object type check — affects child indexing
52
+ const isObjectType = (PCore.getCaseUtils() as any).isObjectCaseType(caseClass);
53
+
54
+ // 3. Region assignment by child index
55
+ const renderedRegions = isObjectType
56
+ ? { caseSummary: children[0], utilities: filterUtilities(children[2]) }
57
+ : { caseSummary: children[0], stages: children[1], todo: children[2], utilities: filterUtilities(children[4]) };
58
+
59
+ // 4. Filter summary fields for self-service channel
60
+ const { primarySummaryFields, secondarySummaryFields } = prepareCaseSummaryData(
61
+ renderedRegions.caseSummary,
62
+ (config) => config?.availableInChannel?.selfService === true
63
+ );
64
+
65
+ // 5. Utilities visibility check
66
+ const showUtilities = bShowUtilitiesRegion && isUtilitiesRegionNotEmpty();
67
+ const showSummary = bShowSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0);
68
+
69
+ // 6. Render: header bar + flex row (summary 25% | main flex:1 | utilities 25%)
70
+ return (
71
+ <div>
72
+ <HeaderBar>{header} {bShowCaseActions && <CaseViewActionsMenu ... />}</HeaderBar>
73
+ <div style={{ display: 'flex', flexDirection: 'row' }}>
74
+ {showSummary && <div style={{ flex: '0 0 25%' }}><CaseSummary ... /></div>}
75
+ <div style={{ flex: 1 }}>{bShowCaseLifecycle && renderedRegions.stages}{renderedRegions.todo}</div>
76
+ {showUtilities && <div style={{ flex: '0 0 25%' }}>{renderedRegions.utilities}</div>}
77
+ </div>
78
+ </div>
79
+ );
80
+ }
81
+ ```
82
+
83
+ ## Behavioral Contract
84
+
85
+ ### Region Assignment by Child Index
86
+
87
+ Child indexing depends on `isObjectType`:
88
+
89
+ **`isObjectType === false` (5 children):**
90
+
91
+ | Index | Region |
92
+ | ----- | --------------- |
93
+ | 0 | Summary |
94
+ | 1 | (Header/Stages) |
95
+ | 2 | Main content |
96
+ | 3 | Utilities |
97
+ | 4 | (Additional) |
98
+
99
+ **`isObjectType === true` (3 children):**
100
+
101
+ | Index | Region |
102
+ | ----- | ------------ |
103
+ | 0 | Summary |
104
+ | 1 | Main content |
105
+ | 2 | Utilities |
106
+
107
+ Show/hide individual regions based on:
108
+
109
+ - `showSummary`: always show summary region.
110
+ - `showMain`: always show main content region.
111
+ - `showUtilities`: show utilities only if the region has content.
112
+
113
+ ### `selfServiceCaseViewHeader`
114
+
115
+ Renders a slim header bar above the main flex layout showing:
116
+
117
+ - Case ID / case type name
118
+ - Case status badge
119
+
120
+ ### Case Summary Data
121
+
122
+ Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` with a filter:
123
+
124
+ - Only include fields where `availableInChannel.selfService === true`.
125
+
126
+ ### Utilities Filter
127
+
128
+ Call `filterUtilities(utilitiesChildren, getPConnect)` to remove utilities not appropriate for self-service channels.
129
+
130
+ ### Render Structure
131
+
132
+ ```
133
+ <div className="psdk-ss-case-view">
134
+ <selfServiceCaseViewHeader />
135
+ <div className="psdk-ss-case-view-body" style="display:flex; flex-direction:row">
136
+ <div style="flex: 0 0 25%"> {/* Summary */}
137
+ {showSummary && summaryRegion}
138
+ </div>
139
+ <div style="flex: 1"> {/* Main content */}
140
+ {showMain && mainRegion}
141
+ </div>
142
+ <div style="flex: 0 0 25%"> {/* Utilities */}
143
+ {showUtilities && utilitiesRegion}
144
+ </div>
145
+ </div>
146
+ </div>
147
+ ```
148
+
149
+ ## Visual Specifications
150
+
151
+ | Column | Width | Contents |
152
+ | --------- | ----------- | ------------------------------------------- |
153
+ | Summary | 25% (fixed) | Case summary fields (self-service filtered) |
154
+ | Main | flex: 1 | Main case content / assignment form |
155
+ | Utilities | 25% (fixed) | Filtered utilities |
156
+
157
+ **CSS-only implementation notes:**
158
+
159
+ - Body layout: `display: flex; flex-direction: row; gap: 1rem`.
160
+ - Summary column: `flex: 0 0 25%; min-width: 0`.
161
+ - Main column: `flex: 1 1 auto; min-width: 0`.
162
+ - Utilities column: `flex: 0 0 25%; min-width: 0`.
163
+ - Header bar: `display: flex; align-items: center; gap: 1rem; padding: 0.5rem 0; margin-bottom: 1rem`.
164
+ - Responsive: collapse to single column on mobile.
165
+
166
+ ## Edge Cases & Special Logic
167
+
168
+ - `isObjectType` changes the number of `children` — always derive regions by index based on this flag.
169
+ - `filterUtilities` may return empty array — `showUtilities` should be `false` in that case (hide the column entirely).
170
+ - Summary fields filtered by `availableInChannel.selfService` — if all fields are filtered out, the summary column may be empty.
171
+ - The self-service header differs from the standard case header — it is a separate sub-component, not the full `CaseView` header.
172
+
173
+ ## Dependencies
174
+
175
+ - `prepareCaseSummaryData` from `./utils` — with self-service channel filter applied
176
+ - `filterUtilities` from `./utils` — removes non-self-service utilities
177
+ - `selfServiceCaseViewHeader` — inline sub-component or imported header
178
+ - `PConnectComponent` from `@pega/sdk-react`
179
+
180
+ ## Design System Mapping
181
+
182
+ **UI control type:** Self-service portal case workspace — horizontal 3-panel flex layout.
183
+
184
+ Listed design systems are examples only.
185
+
186
+ | Design System | Layout | Header Bar |
187
+ | ------------------ | ---------------------------------------------------------------------- | --------------------------- |
188
+ | Default (CSS only) | CSS `display:flex` with percentage widths | Custom `<header>` |
189
+ | MUI | `<Box display='flex' flexDirection='row'>` with `<Box flex='0 0 25%'>` | `<Box>` with `<Typography>` |
190
+ | Ant Design | `<Layout>` with `<Sider>` + `<Content>` | `<PageHeader>` |
191
+ | Chakra UI | `<HStack align='stretch'>` with width constraints | `<Flex>` |
192
+ | Shadcn/ui | Tailwind `flex flex-row` | Custom header |
193
+
194
+ When implementing in a specific design system:
195
+
196
+ - `isObjectType` determines child count — do not assume fixed child order without checking this flag
197
+ - Self-service channel filter on summary data is mandatory — `availableInChannel.selfService === true`
198
+ - `filterUtilities` result controls utilities column visibility
@@ -0,0 +1,190 @@
1
+ # Skill: SimpleTable
2
+
3
+ Simple table template. Routes to FieldGroupTemplate, ListView (read-only), or the manual editable table based on configuration. Also covers `SimpleTableManual`, `SimpleTableSelect`, and `SimpleTableSelectReadonly` sub-variants.
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Entry-point template for embedded table data in a form or detail view. Routes to the appropriate sub-component based on `multiRecordDisplayAs`, `fieldMetadata.dataRetrievalType`, and `readOnly`/`displayMode` flags. Sub-variants handle selection, read-only display, and full manual editing.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Registration keys:** `SimpleTable`, `SimpleTableManual`, `SimpleTableSelect`, `SimpleTableSelectReadonly` (all in `component-map.ts`)
16
+ - **Category:** Data display / Form template — embedded table
17
+ - **Extends:** `PConnProps`
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Required | Description |
22
+ | ---------------------- | ---------- | -------- | ----------------------------------------------------------------------------------------- |
23
+ | `multiRecordDisplayAs` | `string` | No | `'fieldGroup'` delegates to FieldGroupTemplate; else table |
24
+ | `fieldMetadata` | `object` | No | Field-level metadata including `dataRetrievalType` |
25
+ | `referenceList` | `string` | No | Property path to the reference list |
26
+ | `displayAs` | `string` | No | For SimpleTableSelectReadonly: `'readonlyMulti'`, `'combobox'`, `'checkboxgroup'` routing |
27
+ | `selectionMode` | `string` | No | `'single'` or `'multi'` (for SimpleTableSelect) |
28
+ | `displayMode` | `string` | No | `'DISPLAY_ONLY'` triggers read-only sub-variant |
29
+ | `readOnly` | `boolean` | No | Alternative read-only flag |
30
+ | `getPConnect` | `function` | Yes | PConnect getter |
31
+
32
+ ## Component Skeleton
33
+
34
+ ### SimpleTable (router)
35
+
36
+ ```typescript
37
+ import { getComponentFromRegistry } from '@pega/sdk-react';
38
+ import { buildMetaForListView, getContext } from '../../../helpers/simpleTableHelpers';
39
+
40
+ export default function SimpleTable(props: SimpleTableProps) {
41
+ const ListView = getComponentFromRegistry('ListView');
42
+ const FieldGroupTemplate = getComponentFromRegistry('FieldGroupTemplate');
43
+ const SimpleTableManual = getComponentFromRegistry('SimpleTableManual');
44
+ const { getPConnect, multiRecordDisplayAs, allowTableEdit, fieldMetadata, displayMode, ... } = props;
45
+
46
+ // 1. Route: fieldGroup
47
+ if (multiRecordDisplayAs === 'fieldGroup') {
48
+ return <FieldGroupTemplate {...props} contextClass={contextClass} />;
49
+ }
50
+
51
+ // 2. Route: reference list (read-only ListView)
52
+ if (fieldMetadata?.type === 'Page List' && fieldMetadata?.dataRetrievalType === 'refer') {
53
+ const metaForListView = buildMetaForListView(...);
54
+ return <ListView {...listViewProps} bInForm={true} displayMode={displayMode} />;
55
+ }
56
+
57
+ // 3. Route: editable table
58
+ return <SimpleTableManual {...props} contextClass={contextClass} />;
59
+ }
60
+ ```
61
+
62
+ ### SimpleTableManual (editable table — ~600+ lines)
63
+
64
+ Key structural outline:
65
+
66
+ - `getReferenceList(pConn)` + `setReferenceList`
67
+ - `buildElementsForTable()` — creates PConnect views per cell
68
+ - `generateRowsData()` — for read-only/modal mode
69
+ - `addRecord()` / `deleteRecord()` / `editRecord()` with modal support
70
+ - Sort/filter/column menu (same pattern as ListView)
71
+ - Render: Table with header sort + body rows + add/delete controls
72
+
73
+ ### SimpleTableSelect (selection wrapper)
74
+
75
+ ```typescript
76
+ const ListView = getComponentFromRegistry('ListView');
77
+ const PromotedFilters = getComponentFromRegistry('PromotedFilters');
78
+ // Build additionalTableConfig with selectionMode, compositeKeys
79
+ // If promoted filters exist: <PromotedFilters ... />
80
+ // Else: <ListView {...listViewProps} />
81
+ ```
82
+
83
+ ### SimpleTableSelectReadonly (link + modal)
84
+
85
+ ```typescript
86
+ // Renders SemanticLink per selected item (comma-separated)
87
+ // If list > 5 items: show "(N Total)" link that opens modal
88
+ // Modal: <Dialog><SimpleTableManual readOnly ... /></Dialog>
89
+ ```
90
+
91
+ ## Behavioral Contract
92
+
93
+ ### SimpleTable — Routing Logic
94
+
95
+ ```
96
+ if multiRecordDisplayAs === 'fieldGroup':
97
+ → render FieldGroupTemplate
98
+ else if fieldMetadata.dataRetrievalType === 'refer':
99
+ → render ListView (read-only, bInForm: true)
100
+ else:
101
+ → render SimpleTableManual (editable table)
102
+ ```
103
+
104
+ ### SimpleTableManual — Full Editable Table
105
+
106
+ Full MUI table with add/delete rows, inline editing, sort, filter, and column customization (~600+ lines).
107
+
108
+ Key behaviors:
109
+
110
+ 1. **Row data source:** `referenceList` property path via `pConn.getValue(referenceList + '.pxResults')`.
111
+ 2. **Add row:** `pConn.getListActions().insert({})`.
112
+ 3. **Delete row:** `pConn.getListActions().deleteEntry(index)`.
113
+ 4. **Inline field editing:** Each cell renders the field's registered edit component via `buildView(pConn, rowIndex, colFieldName)`.
114
+ 5. **Sort:** Client-side sort on loaded data.
115
+ 6. **Column customization:** Visibility toggles per column via a settings popover.
116
+ 7. **Filter dialog:** Same filter pattern as ListView.
117
+
118
+ ### SimpleTableSelect — Selection Mode
119
+
120
+ Wraps `ListView` with additional selection configuration:
121
+
122
+ - Passes `additionalTableConfig` with `selectionMode: 'single'` or `'multi'`.
123
+ - On selection: calls `pConn.getListActions().setSelectedRow(selectedData)`.
124
+ - Used when `DataReference` routes to table-based selection.
125
+
126
+ ### SimpleTableSelectReadonly — Read-Only with Modal
127
+
128
+ 1. Renders a link/chip showing the current selection count.
129
+ 2. On click: opens a `<Dialog>` containing a `<SimpleTableManual>` in read-only mode.
130
+ 3. Props: same as `SimpleTableManual` but all fields locked (no add/delete/edit).
131
+
132
+ ## Visual Specifications
133
+
134
+ ### SimpleTableManual
135
+
136
+ | Element | Description |
137
+ | --------------- | ------------------------------------------------------ |
138
+ | Toolbar | Column settings button, filter button, optional search |
139
+ | Table | Full-width, alternating row colors |
140
+ | Add row | `"+ Add row"` button below the table |
141
+ | Delete row | Trash icon per row (rightmost column) |
142
+ | Column settings | Popover with checkboxes for visibility toggles |
143
+
144
+ **CSS-only implementation notes:**
145
+
146
+ - Table: `width: 100%; border-collapse: collapse`.
147
+ - Add row button: `margin-top: 0.5rem; text-align: left`.
148
+ - Delete cell: `width: 40px; text-align: center`.
149
+ - Read-only mode: hide add/delete controls; cells show plain text.
150
+
151
+ ### SimpleTableSelectReadonly
152
+
153
+ | Element | Description |
154
+ | ----------- | -------------------------------------------------- |
155
+ | Trigger | Link or chip showing selection count |
156
+ | Modal | Full-screen or large dialog with SimpleTableManual |
157
+ | Modal close | `X` button in modal header |
158
+
159
+ ## Edge Cases & Special Logic
160
+
161
+ - `multiRecordDisplayAs === 'fieldGroup'` — completely bypasses table; delegates to `FieldGroupTemplate`.
162
+ - `dataRetrievalType === 'refer'` — data comes from a reference list, not a full data page; use `ListView` in read-only mode.
163
+ - `SimpleTableManual` with 600+ lines — break into sub-hooks if re-implementing.
164
+ - Row keys must be unique — use composite keys from `compositeKeys` config if available.
165
+ - Column customization state is local — not persisted across navigation.
166
+
167
+ ## Dependencies
168
+
169
+ - `FieldGroupTemplate` (for `multiRecordDisplayAs === 'fieldGroup'` routing)
170
+ - `ListView` (for `dataRetrievalType === 'refer'` routing)
171
+ - `buildView` from `../../helpers/field-group-utils` (for inline cell rendering in SimpleTableManual)
172
+ - MUI: `<Table>`, `<Dialog>`, `<Popover>`, `<IconButton>`, `<Button>`, `<Checkbox>`
173
+
174
+ ## Design System Mapping
175
+
176
+ **UI control type:** Embedded data table with routing to field group, read-only list, or fully editable table.
177
+
178
+ Listed design systems are examples only.
179
+
180
+ | Sub-variant | Default (CSS only) | MUI |
181
+ | ------------------------- | ----------------------------- | -------------------- |
182
+ | SimpleTableManual | `<table>` + custom controls | MUI `<Table>` |
183
+ | SimpleTableSelect | Custom table + radio/checkbox | `<ListView>` wrapper |
184
+ | SimpleTableSelectReadonly | Link + `<dialog>` | Chip + `<Dialog>` |
185
+
186
+ When implementing in a specific design system:
187
+
188
+ - Always check `multiRecordDisplayAs === 'fieldGroup'` first — this bypasses the table entirely
189
+ - `SimpleTableManual` add/delete row controls must be hidden when `readOnly === true` or `displayMode === 'DISPLAY_ONLY'`
190
+ - `SimpleTableSelect` uses the same `ListView` but adds selection callbacks
@@ -0,0 +1,160 @@
1
+ # Skill: SingleReferenceReadOnly
2
+
3
+ Single reference read-only template. Renders a read-only reference field as a semantic link for editable field types, or as a plain label otherwise.
4
+
5
+ > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a single data reference field in read-only mode. For fields that were displayed as editable selection controls (autocomplete, table select, dropdown), renders a `SemanticLink` component so the reference value is clickable/navigable. For other display types, renders a plain read-only label.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Registration key:** `SingleReferenceReadOnly` (in `component-map.ts`)
16
+ - **Category:** Display template — read-only reference
17
+ - **Extends:** `PConnProps`
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Required | Description |
22
+ | ----------------- | ---------- | -------- | --------------------------------------------------------- |
23
+ | `label` | `string` | Yes | Field label |
24
+ | `displayAs` | `string` | Yes | The edit-mode display type this field was configured with |
25
+ | `value` | `string` | No | Current field value (display text) |
26
+ | `caseClass` | `string` | No | Class identifier for the referenced case |
27
+ | `text` | `string` | No | Display text for the semantic link |
28
+ | `caseID` | `string` | No | Case ID for the semantic link |
29
+ | `contextPage` | `string` | No | Context page identifier |
30
+ | `resourceParams` | `object` | No | Parameters for the referenced resource |
31
+ | `resourcePayload` | `object` | No | Payload for resource navigation |
32
+ | `getPConnect` | `function` | Yes | PConnect getter |
33
+
34
+ ## Component Skeleton
35
+
36
+ ```typescript
37
+ import type { PConnProps } from '@pega/sdk-react';
38
+
39
+ interface SingleReferenceReadOnlyProps extends PConnProps {
40
+ config: any;
41
+ displayAs?: string;
42
+ ruleClass?: string;
43
+ label?: string;
44
+ displayMode?: string;
45
+ type: string;
46
+ referenceType?: string;
47
+ hideLabel?: boolean;
48
+ dataRelationshipContext?: string;
49
+ }
50
+
51
+ export default function SingleReferenceReadOnly(props: SingleReferenceReadOnlyProps) {
52
+ const {
53
+ getPConnect, displayAs = '', ruleClass = '', label = '',
54
+ type = '', displayMode = '', referenceType = '',
55
+ hideLabel = false, dataRelationshipContext = null, config,
56
+ } = props;
57
+
58
+ const editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown'];
59
+
60
+ // 1. For editable field types: build SemanticLink config
61
+ if (editableComponents.includes(type)) {
62
+ config.caseClass = ruleClass;
63
+ config.text = config.primaryField;
64
+ config.caseID = config.value;
65
+ config.contextPage = `@P .${dataRelationshipContext}`;
66
+ config.resourceParams = { workID: displayAs === 'table' ? config.selectionKey : config.value };
67
+ config.resourcePayload = { caseClassName: ruleClass };
68
+ }
69
+
70
+ // 2. Create SemanticLink component
71
+ const component = getPConnect().createComponent(
72
+ { type: 'SemanticLink', config: { ...config, label, displayMode, referenceType, hideLabel, dataRelationshipContext } },
73
+ '', 0, {},
74
+ );
75
+
76
+ // 3. Render: label + semantic link in row layout
77
+ return (
78
+ <FormRow>
79
+ <Label>{label}</Label>
80
+ {component}
81
+ </FormRow>
82
+ );
83
+ }
84
+ ```
85
+
86
+ ## Behavioral Contract
87
+
88
+ ### Editable Component Check
89
+
90
+ ```
91
+ editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown']
92
+ ```
93
+
94
+ If `displayAs` is in `editableComponents`:
95
+
96
+ 1. Build config with: `caseClass`, `text`, `caseID`, `contextPage`, `resourceParams`, `resourcePayload`.
97
+ 2. Create: `createComponent({ type: 'SemanticLink', config: { ...builtConfig } })`.
98
+ 3. Render the created `SemanticLink` component.
99
+
100
+ Else:
101
+
102
+ - Render a plain read-only display using `<FormControl variant='standard'>` + `<FormLabel>` + value text.
103
+
104
+ ### Layout
105
+
106
+ For both variants, wrap with:
107
+
108
+ ```tsx
109
+ <FormControl variant="standard" sx={{ flexDirection: 'row' }}>
110
+ <FormLabel sx={{ marginRight: '2rem' }}>{label}</FormLabel>
111
+ {semanLinkOrValue}
112
+ </FormControl>
113
+ ```
114
+
115
+ ## Visual Specifications
116
+
117
+ | Variant | Layout |
118
+ | --------------- | ------------------------------------- |
119
+ | SemanticLink | Label (left) + clickable link (right) |
120
+ | Plain read-only | Label (left) + plain text (right) |
121
+
122
+ **CSS-only implementation notes:**
123
+
124
+ - Wrapper: `display: flex; flex-direction: row; align-items: baseline; gap: 1rem`.
125
+ - Label: `font-size: 0.875rem; color: var(--secondary-text-color); min-width: 120px`.
126
+ - Semantic link: `color: var(--link-color); text-decoration: underline; cursor: pointer`.
127
+ - Plain value: `font-size: 0.875rem; color: var(--primary-text-color)`.
128
+
129
+ ## Edge Cases & Special Logic
130
+
131
+ - `displayAs` check is case-sensitive — values are `'AutoComplete'`, `'SimpleTableSelect'`, `'Dropdown'` (exact match).
132
+ - `createComponent` returns a PConnect config — render via `createElement(PConnectComponent, { ...createdConfig })`.
133
+ - If `text` is empty/undefined, the semantic link shows the `caseID` as fallback text.
134
+ - `SemanticLink` navigation requires `caseClass` and `caseID` — if either is missing, fall back to plain read-only display.
135
+
136
+ ## Dependencies
137
+
138
+ - `PConnectComponent` from `@pega/sdk-react` — for rendering the `SemanticLink`
139
+ - `getPConnect().createComponent()` — creates the SemanticLink component config
140
+ - MUI: `<FormControl>`, `<FormLabel>`
141
+
142
+ ## Design System Mapping
143
+
144
+ **UI control type:** Read-only reference field — semantic link for navigable references, plain label otherwise.
145
+
146
+ Listed design systems are examples only.
147
+
148
+ | Design System | Semantic Link | Plain Read-Only |
149
+ | ------------------ | --------------------------------------------- | ------------------- |
150
+ | Default (CSS only) | `<a>` with case navigation | `<span>` |
151
+ | MUI | `SemanticLink` rendered via `createComponent` | `<Typography>` |
152
+ | Ant Design | `<Typography.Link>` | `<Typography.Text>` |
153
+ | Chakra UI | `<Link>` | `<Text>` |
154
+ | Shadcn/ui | Custom link | `<span>` |
155
+
156
+ When implementing in a specific design system:
157
+
158
+ - The `editableComponents` list (`'AutoComplete'`, `'SimpleTableSelect'`, `'Dropdown'`) controls semantic link vs plain display
159
+ - `SemanticLink` must be rendered via `createComponent` — do not implement the link logic directly in this component
160
+ - Horizontal label + value layout (row direction) is required
@@ -1,8 +1,3 @@
1
- ---
2
- description: Template component skill: SubTabs
3
- alwaysApply: false
4
- ---
5
-
6
1
  # Skill: SubTabs
7
2
 
8
3
  Sub-tabs navigation template. Renders a tab container for case view sections using shared tab utilities with deferred content loading.
@@ -23,10 +18,57 @@ Renders a horizontal tab bar for navigating between case view sections. Uses sha
23
18
 
24
19
  ## Props
25
20
 
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `children` | `ReactNode[]` | Yes | `children[0]` is the deferred-loaded tabs container |
29
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ------------- | ------------- | -------- | --------------------------------------------------- |
23
+ | `children` | `ReactNode[]` | Yes | `children[0]` is the deferred-loaded tabs container |
24
+ | `getPConnect` | `function` | Yes | PConnect getter |
25
+
26
+ ## Component Skeleton
27
+
28
+ ```typescript
29
+ import { Children, type PropsWithChildren, useEffect, useState } from 'react';
30
+ import { getTransientTabs, getVisibleTabs, tabClick } from './tabUtils';
31
+ import type { PConnProps } from '@pega/sdk-react';
32
+
33
+ export default function SubTabs(props: PropsWithChildren<PConnProps>) {
34
+ const { children = [] } = props;
35
+
36
+ // 1. Extract deferred tabs
37
+ const deferLoadedTabs = Children.toArray(children)[0];
38
+ const availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');
39
+
40
+ // 2. State
41
+ const [currentTabId, setCurrentTabId] = useState('0');
42
+ const [tabItems, setTabitem] = useState<any[]>([]);
43
+
44
+ // 3. Update tab items when currentTabId changes
45
+ useEffect(() => {
46
+ setTabitem(getTransientTabs(availableTabs, currentTabId, tabItems));
47
+ }, [currentTabId]);
48
+
49
+ // 4. Tab click
50
+ const handleTabClick = (id, index: string) => {
51
+ setCurrentTabId(index);
52
+ tabClick(index, availableTabs, currentTabId, setCurrentTabId, tabItems);
53
+ };
54
+
55
+ // 5. Render: TabContext + Tabs (scrollable) + TabPanels (no heading)
56
+ return (
57
+ <TabContext value={currentTabId.toString()}>
58
+ <TabBar onChange={handleTabClick} value={currentTabId} variant="scrollable">
59
+ {tabItems.map(tab => <Tab key={tab.id} label={tab.name} value={tab.id} />)}
60
+ </TabBar>
61
+ {tabItems.map(tab => (
62
+ <TabPanel key={tab.id} value={tab.id} tabIndex={+tab.id}>
63
+ {tab.content || 'No content exists'}
64
+ </TabPanel>
65
+ ))}
66
+ </TabContext>
67
+ );
68
+ }
69
+ ```
70
+
71
+ > **Key difference from `DetailsSubTabs`:** No heading, uses `'tabsSubs'` identifier, `getVisibleTabs` called directly (not in useEffect).
30
72
 
31
73
  ## Behavioral Contract
32
74
 
@@ -48,6 +90,7 @@ Renders a horizontal tab bar for navigating between case view sections. Uses sha
48
90
  Identical to `DetailsSubTabs` except no heading above the tab bar.
49
91
 
50
92
  **CSS-only implementation notes:**
93
+
51
94
  - Tab bar: `display: flex; border-bottom: 2px solid var(--divider)`.
52
95
  - Each tab: `padding: 8px 16px; cursor: pointer; border-bottom: 2px solid transparent`.
53
96
  - Active tab: `border-bottom-color: var(--app-primary-color); font-weight: 600`.
@@ -56,6 +99,7 @@ Identical to `DetailsSubTabs` except no heading above the tab bar.
56
99
  ## Edge Cases & Special Logic
57
100
 
58
101
  See `DetailsSubTabs.md` for shared edge cases. Additional:
102
+
59
103
  - `tabUtils` identifier string `'tabsSubs'` must match exactly — it is used internally by `getVisibleTabs` for scoping.
60
104
 
61
105
  ## Dependencies
@@ -70,15 +114,16 @@ See `DetailsSubTabs.md` for shared edge cases. Additional:
70
114
 
71
115
  Listed design systems are examples only.
72
116
 
73
- | Design System | Recommended Component |
74
- |---|---|
75
- | Default (CSS only) | Custom tab bar with CSS underline indicator |
76
- | MUI | `<TabContext>` + `<Tabs>` + `<TabPanel>` from `@mui/lab` |
77
- | Ant Design | `<Tabs>` with `items` array |
78
- | Chakra UI | `<Tabs>` + `<TabList>` + `<TabPanels>` |
79
- | Shadcn/ui | `<Tabs>` + `<TabsList>` + `<TabsContent>` |
117
+ | Design System | Recommended Component |
118
+ | ------------------ | -------------------------------------------------------- |
119
+ | Default (CSS only) | Custom tab bar with CSS underline indicator |
120
+ | MUI | `<TabContext>` + `<Tabs>` + `<TabPanel>` from `@mui/lab` |
121
+ | Ant Design | `<Tabs>` with `items` array |
122
+ | Chakra UI | `<Tabs>` + `<TabList>` + `<TabPanels>` |
123
+ | Shadcn/ui | `<Tabs>` + `<TabsList>` + `<TabsContent>` |
80
124
 
81
125
  When implementing in a specific design system:
126
+
82
127
  - Use `getVisibleTabs(tabs, 'tabsSubs')` — the identifier string must be `'tabsSubs'`
83
128
  - No heading above the tab bar (unlike `DetailsSubTabs`)
84
129
  - Deferred loading: content populates lazily via `getTransientTabs`