@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
@@ -1,8 +1,3 @@
1
- ---
2
- description: Template component skill: DynamicTabs
3
- alwaysApply: false
4
- ---
5
-
6
1
  # Skill: DynamicTabs
7
2
 
8
3
  Data-driven tab template. Renders tabs dynamically from a `referenceList` data source — one tab per row in the list, with tab labels derived from a configurable property.
@@ -23,10 +18,77 @@ Unlike `SubTabs` or `DetailsSubTabs` where tabs are defined statically in metada
23
18
 
24
19
  ## Props
25
20
 
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `referenceList` | `string` | Yes | Property path to the reference list (e.g. `'.pxResults'`) |
29
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | --------------- | ---------- | -------- | --------------------------------------------------------- |
23
+ | `referenceList` | `string` | Yes | Property path to the reference list (e.g. `'.pxResults'`) |
24
+ | `getPConnect` | `function` | Yes | PConnect getter |
25
+
26
+ ## Component Skeleton
27
+
28
+ ```typescript
29
+ import React, { Children, useMemo, useState } from 'react';
30
+ import { buildView } from '../../../helpers/field-group-utils';
31
+ import type { PConnProps } from '@pega/sdk-react';
32
+
33
+ interface DynamicTabsProps extends PConnProps {
34
+ showLabel: boolean;
35
+ label: string;
36
+ referenceList?: any[];
37
+ }
38
+
39
+ export default function DynamicTabs(props: DynamicTabsProps) {
40
+ const { referenceList, showLabel, label, getPConnect } = props;
41
+ const pConnect = getPConnect();
42
+ const propsToUse = { label, showLabel, ...pConnect.getInheritedProps() };
43
+
44
+ // 1. Resolve tab label property from annotation
45
+ const { tablabel } = pConnect.getComponentConfig();
46
+ const tablabelProp = PCore.getAnnotationUtils().getPropertyName(tablabel);
47
+
48
+ // 2. Get reference list data
49
+ const referenceListData: any = pConnect.getValue(`${referenceList}.pxResults`, '');
50
+
51
+ // 3. Memoized tab views — set display-only mode, build views
52
+ const memoisedTabViews = useMemo(() => {
53
+ pConnect.setInheritedProp('displayMode', 'DISPLAY_ONLY');
54
+ pConnect.setInheritedProp('readOnly', true);
55
+ return referenceListData && Children.toArray(
56
+ referenceListData.map((item, index) => (
57
+ <React.Fragment key={item[tablabelProp]}>
58
+ {buildView(pConnect, index, '')}
59
+ </React.Fragment>
60
+ ))
61
+ );
62
+ }, [referenceListData]);
63
+
64
+ // 4. Tab state
65
+ const [panelShown, changePanel] = useState(0);
66
+ const handleTabClick = (e, id) => changePanel(parseInt(id, 10));
67
+
68
+ // 5. Build tab items from reference list data
69
+ const tabItems = referenceListData?.map((item, i) => ({
70
+ name: item[tablabelProp] || PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic'),
71
+ id: i,
72
+ })) || [];
73
+
74
+ // 6. Render: optional heading + TabContext + scrollable Tabs + TabPanels
75
+ return (
76
+ <>
77
+ {propsToUse.label && <h3>{propsToUse.label}</h3>}
78
+ <TabContext value={panelShown.toString()}>
79
+ <TabBar onChange={handleTabClick} value={panelShown} variant="scrollable" scrollButtons="auto">
80
+ {tabItems.map(tab => <Tab key={tab.id} label={tab.name} value={tab.id} />)}
81
+ </TabBar>
82
+ {tabItems.map(tab => (
83
+ <TabPanel key={tab.id} value={tab.id.toString()} tabIndex={+tab.id}>
84
+ {memoisedTabViews?.[tab.id] || 'No content exists'}
85
+ </TabPanel>
86
+ ))}
87
+ </TabContext>
88
+ </>
89
+ );
90
+ }
91
+ ```
30
92
 
31
93
  ## Behavioral Contract
32
94
 
@@ -42,14 +104,17 @@ Unlike `SubTabs` or `DetailsSubTabs` where tabs are defined statically in metada
42
104
  ```
43
105
  referenceListData = pConnect.getValue(referenceList + '.pxResults')
44
106
  ```
107
+
45
108
  Returns an array of row objects.
46
109
 
47
110
  ### Tab Views
48
111
 
49
112
  For each row index `i`:
113
+
50
114
  ```
51
115
  tabView = buildView(pConnect, i, '')
52
116
  ```
117
+
53
118
  Memoized — recalculate only when `referenceListData` changes.
54
119
 
55
120
  ### State
@@ -68,6 +133,7 @@ Memoized — recalculate only when `referenceListData` changes.
68
133
  Identical tab bar appearance to `SubTabs`.
69
134
 
70
135
  **CSS-only implementation notes:**
136
+
71
137
  - Same tab bar and panel styles as `SubTabs.md`.
72
138
  - Tab count is dynamic — do not hard-code tab widths.
73
139
 
@@ -92,15 +158,16 @@ Identical tab bar appearance to `SubTabs`.
92
158
 
93
159
  Listed design systems are examples only.
94
160
 
95
- | Design System | Recommended Component |
96
- |---|---|
161
+ | Design System | Recommended Component |
162
+ | ------------------ | ------------------------------------------------ |
97
163
  | Default (CSS only) | Custom tab bar, dynamically generated from array |
98
- | MUI | `<TabContext>` + `<Tabs>` + `<TabPanel>` |
99
- | Ant Design | `<Tabs items={dynamicItems}>` |
100
- | Chakra UI | `<Tabs>` with dynamic `<TabList>/<TabPanels>` |
101
- | Shadcn/ui | `<Tabs>` with mapped triggers and content |
164
+ | MUI | `<TabContext>` + `<Tabs>` + `<TabPanel>` |
165
+ | Ant Design | `<Tabs items={dynamicItems}>` |
166
+ | Chakra UI | `<Tabs>` with dynamic `<TabList>/<TabPanels>` |
167
+ | Shadcn/ui | `<Tabs>` with mapped triggers and content |
102
168
 
103
169
  When implementing in a specific design system:
170
+
104
171
  - `tablabelProp` resolution via `PCore.getAnnotationUtils().getPropertyName()` is required — do not hardcode the label field
105
172
  - `buildView(pConnect, rowIndex, '')` generates the content for each tab — the empty string third arg means no specific child config lookup
106
173
  - Tab count is entirely data-driven — handle 0, 1, and many tab cases
@@ -0,0 +1,231 @@
1
+ # Skill: FieldGroupTemplate
2
+
3
+ Repeating field group template. Renders a list of field group rows from a reference list, supporting add/delete row actions and a read-only display mode.
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
+ > ⚠️ **CRITICAL — DO NOT SIMPLIFY THIS COMPONENT**
10
+ >
11
+ > This template manages a repeating list of field groups with add/delete actions. It MUST NOT be reduced to a simple delegation to `FieldGroup` or `FieldGroupList`. The following are MANDATORY:
12
+ >
13
+ > 1. `getReferenceList(pConn)` from `../../helpers/field-group-utils` — resolves the reference list path
14
+ > 2. `buildView(pConn, index, lookForChildInConfig)` from `../../helpers/field-group-utils` — builds each row's view
15
+ > 3. `pConn.setReferenceList(resolvedList)` — sets the reference list on PConnect
16
+ > 4. `pConn.getListActions().initDefaultPageInstructions(resolvedList)` — initializes list instructions
17
+ > 5. `useLayoutEffect` for list initialization (not useEffect)
18
+ > 6. Add/delete record handlers using `pConn.getListActions().insert()` and `.deleteEntry()`
19
+ > 7. `useMemo` for `MemoisedChildren` built from `referenceList.map(...)` + `buildView`
20
+ > 8. `allowActions` handling (allowAdd, allowDelete)
21
+ > 9. `isReadonlyMode` check switching between FieldGroupList (edit) and FieldGroup (read-only)
22
+ >
23
+ > **Minimum Implementation Checklist:**
24
+ >
25
+ > - [ ] `getReferenceList` and `buildView` imported from `../../helpers/field-group-utils`
26
+ > - [ ] `pConn.getListActions()` used for insert/delete
27
+ > - [ ] `useLayoutEffect` for `initDefaultPageInstructions`
28
+ > - [ ] `addRecord` and `deleteFieldGroupItem` handlers
29
+ > - [ ] Edit mode → `<FieldGroupList items={...} onAdd={...} onDelete={...} />`
30
+ > - [ ] Read-only mode → `<FieldGroup>` with `buildView` children
31
+ > - [ ] `allowActions` / `allowTableEdit` props respected
32
+
33
+ ---
34
+
35
+ ## Component Purpose
36
+
37
+ Renders a repeating list of field group rows sourced from a PConnect reference list. In edit mode, rows can be added and deleted via list actions. In read-only mode (DISPLAY_ONLY), delegates to a read-only `FieldGroup` renderer. Each row is built via `buildView`.
38
+
39
+ ## Pega Metadata
40
+
41
+ - **Registration key:** `FieldGroupTemplate` (in `component-map.ts`)
42
+ - **Category:** Form template — repeating
43
+ - **Extends:** `PConnProps`
44
+
45
+ ## Props
46
+
47
+ | Prop | Type | Required | Description |
48
+ | ---------------- | ---------- | -------- | ---------------------------------------------------------------- |
49
+ | `label` | `string` | Yes | Section heading |
50
+ | `showLabel` | `boolean` | No | Whether to show the heading. Default `true` |
51
+ | `fieldHeader` | `string` | No | Property ref for the dynamic row heading. E.g. `'.pyStatusWork'` |
52
+ | `allowTableEdit` | `boolean` | No | Whether to show add/delete row controls. Default `true` |
53
+ | `displayMode` | `string` | No | `'DISPLAY_ONLY'` triggers read-only rendering |
54
+ | `readOnly` | `boolean` | No | Alternative read-only flag |
55
+ | `getPConnect` | `function` | Yes | PConnect getter |
56
+
57
+ ## Component Skeleton
58
+
59
+ ```typescript
60
+ import { useLayoutEffect, useMemo } from 'react';
61
+ import { getReferenceList, buildView } from '../../helpers/field-group-utils';
62
+ import { getComponentFromRegistry } from '@pega/sdk-react';
63
+ import type { PConnProps } from '@pega/sdk-react';
64
+
65
+ interface FieldGroupTemplateProps extends PConnProps {
66
+ referenceList?: any[];
67
+ contextClass: string;
68
+ renderMode?: string;
69
+ heading?: string;
70
+ lookForChildInConfig?: boolean;
71
+ displayMode?: string;
72
+ fieldHeader?: string;
73
+ allowTableEdit: boolean;
74
+ allowActions?: any;
75
+ }
76
+
77
+ export default function FieldGroupTemplate(props: FieldGroupTemplateProps) {
78
+ const FieldGroup = getComponentFromRegistry('FieldGroup');
79
+ const FieldGroupList = getComponentFromRegistry('FieldGroupList');
80
+
81
+ const {
82
+ referenceList = [], renderMode, contextClass, getPConnect,
83
+ lookForChildInConfig, heading = '', displayMode, fieldHeader,
84
+ allowActions, allowTableEdit: allowAddEdit,
85
+ } = props;
86
+ const pConn = getPConnect();
87
+ const resolvedList = getReferenceList(pConn);
88
+ pConn.setReferenceList(resolvedList);
89
+ const pageReference = `${pConn.getPageReference()}${resolvedList}`;
90
+ const isReadonlyMode = renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY';
91
+ const HEADING = heading ?? 'Row';
92
+
93
+ // 1. Resolve allowAdd/allowDelete from allowActions or allowTableEdit
94
+ const hasAllowActions = Object.keys(allowActions ?? {}).length > 0;
95
+ const { allowAdd: actionAdd, allowDelete: actionDelete } = allowActions ?? {};
96
+ const allowAdd = hasAllowActions ? (actionAdd ?? true) : (allowAddEdit ?? true);
97
+ const allowDelete = hasAllowActions ? (actionDelete ?? true) : (allowAddEdit ?? true);
98
+
99
+ // 2. Init page instructions on mount (edit mode only)
100
+ useLayoutEffect(() => {
101
+ if (!isReadonlyMode) {
102
+ pConn.getListActions().initDefaultPageInstructions(resolvedList);
103
+ }
104
+ }, [referenceList?.length]);
105
+
106
+ // 3. Dynamic header per row
107
+ const getDynamicHeaderProp = (item, index) => {
108
+ if (fieldHeader === 'propertyRef' && heading && item[heading.substring(1)])
109
+ return item[heading.substring(1)];
110
+ return `Row ${index + 1}`;
111
+ };
112
+
113
+ // 4. Add/delete handlers
114
+ const addRecord = () => {
115
+ if (PCore.getPCoreVersion()?.includes('8.7'))
116
+ pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);
117
+ else pConn.getListActions().insert({}, referenceList.length);
118
+ };
119
+ const deleteRecord = (index) => {
120
+ if (PCore.getPCoreVersion()?.includes('8.7'))
121
+ pConn.getListActions().deleteEntry(index, pageReference);
122
+ else pConn.getListActions().deleteEntry(index);
123
+ };
124
+
125
+ // 5. Edit mode: auto-add first row if empty, render FieldGroupList
126
+ if (!isReadonlyMode) {
127
+ if (referenceList.length === 0 && allowAdd) addRecord();
128
+ const items = useMemo(() => referenceList.map((item, index) => ({
129
+ id: index,
130
+ name: fieldHeader === 'propertyRef' ? getDynamicHeaderProp(item, index) : `${HEADING} ${index + 1}`,
131
+ children: buildView(pConn, index, lookForChildInConfig),
132
+ })), [referenceList?.length]);
133
+ return <FieldGroupList items={items}
134
+ onAdd={allowAdd ? addRecord : undefined}
135
+ onDelete={allowDelete ? deleteRecord : undefined} />;
136
+ }
137
+
138
+ // 6. Read-only mode: FieldGroup per row
139
+ pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY');
140
+ const readOnlyList = useMemo(() => referenceList.map((item, index) => (
141
+ <FieldGroup key={item[heading] || `field-group-row-${index}`}
142
+ name={fieldHeader === 'propertyRef' ? getDynamicHeaderProp(item, index) : `${HEADING} ${index + 1}`}>
143
+ {buildView(pConn, index, lookForChildInConfig)}
144
+ </FieldGroup>
145
+ )), []);
146
+ return <div>{readOnlyList}</div>;
147
+ }
148
+ ```
149
+
150
+ ## Behavioral Contract
151
+
152
+ ### Read-Only Mode
153
+
154
+ If `displayMode === 'DISPLAY_ONLY'` or `readOnly === true`:
155
+
156
+ 1. Set `setInheritedProp('DISPLAY_ONLY', true)` on the pConn.
157
+ 2. Render `<FieldGroup>` — the DSE component that shows data in a read-only layout.
158
+
159
+ ### Edit Mode
160
+
161
+ 1. **Get reference list:** `resolvedList = getReferenceList(pConn)` — extracts the array of row data objects.
162
+ 2. **Set reference list:** `pConn.setReferenceList(resolvedList)` — ensures the pConn has the resolved list.
163
+ 3. **Build row views:** For each row index `i`, call `buildView(pConn, i, true)` to get the PConnect view for that row.
164
+ 4. **Render `<FieldGroupList>`** — the DSE component for edit mode, receiving:
165
+ - `resolvedList` for row count
166
+ - Row views as children
167
+ - `onAdd`: calls `pConn.getListActions().insert({})`
168
+ - `onDelete(index)`: calls `pConn.getListActions().deleteEntry(index)`
169
+ - `fieldHeader`: evaluated property ref for dynamic row heading
170
+ - `allowActions`: from `allowTableEdit` prop (controls visibility of add/delete buttons)
171
+
172
+ ### `allowActions` Override
173
+
174
+ If the field group is inside a read-only context (parent has set `readOnly` or `DISPLAY_ONLY`), `allowActions` is forced to `false` regardless of `allowTableEdit`.
175
+
176
+ ## Visual Specifications
177
+
178
+ ### Edit Mode
179
+
180
+ - Section heading (`label`) at top (if `showLabel`).
181
+ - List of row sections, each with:
182
+ - Dynamic heading from `fieldHeader` property value (e.g. `"Active"`, `"Pending"`).
183
+ - Row fields in a grid layout.
184
+ - Delete button (trash icon) per row.
185
+ - Add row button at the bottom (e.g. `"+ Add row"`).
186
+
187
+ ### Read-Only Mode
188
+
189
+ - Section heading at top (if `showLabel`).
190
+ - Flat list of rows — no add/delete controls.
191
+
192
+ **CSS-only implementation notes:**
193
+
194
+ - Row section: `border: 1px solid var(--border-color); border-radius: 4px; padding: 1rem; margin-bottom: 0.5rem`.
195
+ - Add button: text button, below the last row.
196
+ - Delete button: icon button, top-right of each row section.
197
+
198
+ ## Edge Cases & Special Logic
199
+
200
+ - `getReferenceList(pConn)` returns `undefined` if the reference list is not yet loaded — guard and render empty list.
201
+ - `buildView(pConn, index, true)` — third argument `lookForChildInConfig=true` — required for embedded field groups.
202
+ - Row index must be passed to `deleteEntry` as a number (not string).
203
+ - `fieldHeader` is a property ref like `'.pyStatusWork'` — evaluate it per-row via `pConn.getValue(fieldHeader, index)` to get the display label for each row heading.
204
+ - `FieldGroupList` and `FieldGroup` are DSE (design system extension) components registered in the component registry.
205
+
206
+ ## Dependencies
207
+
208
+ - `getReferenceList`, `buildView` from `../../helpers/field-group-utils`
209
+ - `getComponentFromRegistry('FieldGroupList')` — edit mode renderer
210
+ - `getComponentFromRegistry('FieldGroup')` — read-only renderer
211
+ - `PConnectComponent` from `@pega/sdk-react` — used inside `buildView`
212
+
213
+ ## Design System Mapping
214
+
215
+ **UI control type:** Repeating list of grouped form sections with add/delete row management.
216
+
217
+ Listed design systems are examples only.
218
+
219
+ | Design System | Recommended Component |
220
+ | ------------------ | ------------------------------------------------------------------ |
221
+ | Default (CSS only) | Custom row card list with add/delete buttons |
222
+ | MUI | `<Paper>` per row + `<IconButton>` for delete + `<Button>` for add |
223
+ | Ant Design | `<Form.List>` with `<Card>` per row |
224
+ | Chakra UI | Custom repeating section with `<Box>` rows |
225
+ | Shadcn/ui | Custom list with `<Card>` per row + `<Button variant='ghost'>` |
226
+
227
+ When implementing in a specific design system:
228
+
229
+ - The add/delete controls must be hidden when `allowActions` is false
230
+ - Row heading is dynamic — evaluate `fieldHeader` property ref per row
231
+ - `buildView` generates child PConnect views — render them inside each row section
@@ -1,8 +1,3 @@
1
- ---
2
- description: Template component skill: HierarchicalForm
3
- alwaysApply: false
4
- ---
5
-
6
1
  # Skill: HierarchicalForm
7
2
 
8
3
  Multi-step tabbed form template. Renders form sections as horizontal tabs with per-tab validation error badges and persisted active tab navigation.
@@ -23,17 +18,63 @@ Renders a multi-step form where each section is a tab. Tabs display error badges
23
18
 
24
19
  ## Props
25
20
 
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `children` | `ReactNode[]` | Yes | One child per tab section |
29
- | `instructions` | `string` | No | HTML instruction text shown above the tab bar |
30
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | -------------- | ------------- | -------- | --------------------------------------------- |
23
+ | `children` | `ReactNode[]` | Yes | One child per tab section |
24
+ | `instructions` | `string` | No | HTML instruction text shown above the tab bar |
25
+ | `getPConnect` | `function` | Yes | PConnect getter |
26
+
27
+ ## Component Skeleton
28
+
29
+ ```typescript
30
+ import { type PropsWithChildren } from 'react';
31
+ import { useHierarchicalForm, type HierarchicalFormProps } from './hooks';
32
+
33
+ export default function HierarchicalForm(props: PropsWithChildren<HierarchicalFormProps>) {
34
+ // 1. Custom hook handles: active tab, tab click, error counts, instructions, processed tabs
35
+ const { currentTabId, handleTabClick, processedTabs, instructions } = useHierarchicalForm(props);
36
+
37
+ // 2. Guard: no visible tabs
38
+ if (!currentTabId) return null;
39
+
40
+ // 3. Render: instructions + TabContext + Tabs (with error badges) + TabPanels
41
+ return (
42
+ <FlexColumn>
43
+ {instructions && <div dangerouslySetInnerHTML={{ __html: instructions }} />}
44
+ <TabContext value={currentTabId.toString()}>
45
+ <TabBar onChange={handleTabClick} value={currentTabId.toString()} variant="scrollable">
46
+ {processedTabs.map(tab => {
47
+ const tabLabel = tab.name || tab.label;
48
+ return (
49
+ <Tab key={tab.id} value={tab.id?.toString()} label={
50
+ tab.errors
51
+ ? <Tooltip title={`${tabLabel} has errors`}>
52
+ <span>{tabLabel} <Badge badgeContent={tab.errors} color="error" /></span>
53
+ </Tooltip>
54
+ : tabLabel
55
+ } />
56
+ );
57
+ })}
58
+ </TabBar>
59
+ {processedTabs.map(tab => (
60
+ <TabPanel key={tab.id} value={tab.id?.toString()} tabIndex={+tab.id} keepMounted>
61
+ {tab.content || 'No content exists'}
62
+ </TabPanel>
63
+ ))}
64
+ </TabContext>
65
+ </FlexColumn>
66
+ );
67
+ }
68
+ ```
69
+
70
+ > **Key implementation note:** All tab logic (active tab persistence, error counting, tab filtering) is encapsulated in the `useHierarchicalForm` hook. Implement that hook separately — it uses `PCore.getNavigationUtils()` for tab persistence and `useGetTabsCount` for error tracking.
31
71
 
32
72
  ## Behavioral Contract
33
73
 
34
74
  ### Hook: `useHierarchicalForm`
35
75
 
36
76
  `useHierarchicalForm(getPConnect, numTabs)` returns:
77
+
37
78
  - `activeTabId`: currently selected tab index (string, e.g. `'0'`)
38
79
  - `setActiveTabId`: setter for `activeTabId`
39
80
  - `tabErrorCounts`: `Record<string, number>` — error count per tab index key
@@ -73,12 +114,13 @@ Internally it calls `useGetTabsCount(getPConnect)` to compute `tabErrorCounts`.
73
114
 
74
115
  ### Tab Bar
75
116
 
76
- | Property | Value |
77
- |----------|-------|
78
- | Orientation | Horizontal |
117
+ | Property | Value |
118
+ | ----------- | ------------------------------------------------------ |
119
+ | Orientation | Horizontal |
79
120
  | Error badge | Red MUI Badge with tooltip showing error count message |
80
121
 
81
122
  **CSS-only implementation notes:**
123
+
82
124
  - Tab bar: same as `DetailsSubTabs` — `display: flex; border-bottom: 2px solid var(--divider)`.
83
125
  - Error badge: red circle badge overlaid top-right of the tab label text.
84
126
  - Instruction text: `padding: 0.5rem 0; margin-bottom: 0.5rem; font-size: 0.875rem`.
@@ -104,15 +146,16 @@ Internally it calls `useGetTabsCount(getPConnect)` to compute `tabErrorCounts`.
104
146
 
105
147
  Listed design systems are examples only.
106
148
 
107
- | Design System | Recommended Component |
108
- |---|---|
109
- | Default (CSS only) | Custom tab bar + CSS badge (red circle via pseudo-element) |
110
- | MUI | `<Tabs>` + `<Badge>` + `<Tooltip>` + `<TabContext>/<TabPanel>` |
111
- | Ant Design | `<Tabs>` with custom `tabBarExtraContent` for error badges |
112
- | Chakra UI | `<Tabs>` + `<Badge colorScheme='red'>` inside tab label |
113
- | Shadcn/ui | `<Tabs>` + custom badge overlay on tab trigger |
149
+ | Design System | Recommended Component |
150
+ | ------------------ | -------------------------------------------------------------- |
151
+ | Default (CSS only) | Custom tab bar + CSS badge (red circle via pseudo-element) |
152
+ | MUI | `<Tabs>` + `<Badge>` + `<Tooltip>` + `<TabContext>/<TabPanel>` |
153
+ | Ant Design | `<Tabs>` with custom `tabBarExtraContent` for error badges |
154
+ | Chakra UI | `<Tabs>` + `<Badge colorScheme='red'>` inside tab label |
155
+ | Shadcn/ui | `<Tabs>` + custom badge overlay on tab trigger |
114
156
 
115
157
  When implementing in a specific design system:
158
+
116
159
  - Error badge is mandatory — always show error counts when `tabErrorCounts[id] > 0`
117
160
  - Active tab must be persisted via `PCore.getNavigationUtils()` for correct navigation behavior
118
161
  - Instructions HTML renders above the entire tab bar, not per-tab
@@ -1,8 +1,3 @@
1
- ---
2
- description: Template component skill: InlineDashboard
3
- alwaysApply: false
4
- ---
5
-
6
1
  # Skill: InlineDashboard
7
2
 
8
3
  Inline dashboard template. Renders a dashboard with a title, a main content area, and an optional filter panel whose position is configurable.
@@ -23,12 +18,53 @@ Renders an inline dashboard layout consisting of a title heading, a main content
23
18
 
24
19
  ## Props
25
20
 
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `title` | `string` | No | Dashboard title displayed above the content area |
29
- | `filterPosition` | `string` | No | Filter panel position: `'block-start'` (above) or other (side). Default: side |
30
- | `children` | `ReactNode[]` | Yes | `children[0]` = main content, `children[1]` = filter panel |
31
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ---------------- | ------------- | -------- | ----------------------------------------------------------------------------- |
23
+ | `title` | `string` | No | Dashboard title displayed above the content area |
24
+ | `filterPosition` | `string` | No | Filter panel position: `'block-start'` (above) or other (side). Default: side |
25
+ | `children` | `ReactNode[]` | Yes | `children[0]` = main content, `children[1]` = filter panel |
26
+ | `getPConnect` | `function` | Yes | PConnect getter |
27
+
28
+ ## Component Skeleton
29
+
30
+ ```typescript
31
+ import type { PropsWithChildren, ReactElement } from 'react';
32
+ import type { PConnProps } from '@pega/sdk-react';
33
+
34
+ interface InlineDashboardProps extends PConnProps {
35
+ title: string;
36
+ filterPosition?: string;
37
+ }
38
+
39
+ export default function InlineDashboard(props: PropsWithChildren<InlineDashboardProps>) {
40
+ const { children, title, filterPosition } = props;
41
+ const childrenToRender = children as ReactElement[];
42
+
43
+ // 1. Direction for side layout
44
+ const direction = filterPosition === 'inline-start' ? 'row-reverse' : 'row';
45
+
46
+ // 2. Render: title + layout based on filterPosition
47
+ return (
48
+ <>
49
+ <Heading variant="h4">{title}</Heading>
50
+
51
+ {filterPosition === 'block-start' ? (
52
+ // Stacked: filter above content (column-reverse so filter renders visually above)
53
+ <GridContainer direction="column-reverse">
54
+ <GridItem xs={12}>{childrenToRender[0]}</GridItem>
55
+ <GridItem id="filters" xs={12}>{childrenToRender[1]}</GridItem>
56
+ </GridContainer>
57
+ ) : (
58
+ // Side: content left, filters right (or reversed if inline-start)
59
+ <GridContainer direction={direction}>
60
+ <GridItem xs={9}>{childrenToRender[0]}</GridItem>
61
+ <GridItem id="filters" xs={3}>{childrenToRender[1]}</GridItem>
62
+ </GridContainer>
63
+ )}
64
+ </>
65
+ );
66
+ }
67
+ ```
32
68
 
33
69
  ## Behavioral Contract
34
70
 
@@ -39,6 +75,7 @@ Renders an inline dashboard layout consisting of a title heading, a main content
39
75
  ### Filter Position: `'block-start'`
40
76
 
41
77
  Stacked layout — filter panel above main content:
78
+
42
79
  - `<Grid container direction='column-reverse'>` (reverse so filter renders visually above content).
43
80
  - Filter panel: `<Grid id='filters' size={{ xs: 12 }}>`.
44
81
  - Main content: `<Grid size={{ xs: 12 }}>`.
@@ -46,6 +83,7 @@ Stacked layout — filter panel above main content:
46
83
  ### Filter Position: Other (side)
47
84
 
48
85
  Side-by-side layout — main content left, filters right:
86
+
49
87
  - `<Grid container direction={...}>` (optionally `row-reverse` based on position value).
50
88
  - Main content: `<Grid size={{ xs: 9 }}>`.
51
89
  - Filter panel: `<Grid id='filters' size={{ xs: 3 }}>`.
@@ -71,6 +109,7 @@ Side-by-side layout — main content left, filters right:
71
109
  ```
72
110
 
73
111
  **CSS-only implementation notes:**
112
+
74
113
  - Title: `font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem`.
75
114
  - Block-start: `display: flex; flex-direction: column; gap: 1rem` (filter div first in DOM but ordered last visually with `order: -1`).
76
115
  - Side: `display: grid; grid-template-columns: 3fr 1fr; gap: 1rem`.
@@ -95,15 +134,16 @@ Side-by-side layout — main content left, filters right:
95
134
 
96
135
  Listed design systems are examples only.
97
136
 
98
- | Design System | Title | Content/Filter Grid |
99
- |---|---|---|
100
- | Default (CSS only) | `<h2>` | CSS grid or flexbox |
101
- | MUI | `<Typography variant='h4'>` | `<Grid container>` |
102
- | Ant Design | `<Typography.Title level={2}>` | `<Row>/<Col>` |
103
- | Chakra UI | `<Heading>` | `<Grid>` or `<HStack>` |
104
- | Shadcn/ui | `<h2>` | Tailwind grid |
137
+ | Design System | Title | Content/Filter Grid |
138
+ | ------------------ | ------------------------------ | ---------------------- |
139
+ | Default (CSS only) | `<h2>` | CSS grid or flexbox |
140
+ | MUI | `<Typography variant='h4'>` | `<Grid container>` |
141
+ | Ant Design | `<Typography.Title level={2}>` | `<Row>/<Col>` |
142
+ | Chakra UI | `<Heading>` | `<Grid>` or `<HStack>` |
143
+ | Shadcn/ui | `<h2>` | Tailwind grid |
105
144
 
106
145
  When implementing in a specific design system:
146
+
107
147
  - `filterPosition === 'block-start'` requires stacked layout (12/12) — not side layout (9/3)
108
148
  - Filter panel must always have `id='filters'`
109
149
  - Title heading (`h4` level) is optional — only render when `title` is provided