@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,87 +0,0 @@
1
- ---
2
- description: Widget component skill: AppAnnouncement
3
- alwaysApply: false
4
- ---
5
-
6
- # Skill: AppAnnouncement
7
-
8
- Card-based announcement widget. Displays a system-wide or application announcement with an optional bullet list of items and a "See what's new" external link button.
9
-
10
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
11
-
12
- ---
13
-
14
- ## Component Purpose
15
-
16
- Renders an announcement card with a heading, description text, optional bullet list of items sourced from a `datasource` prop, and an optional external link button. Styled with a left accent border to visually distinguish it from other cards.
17
-
18
- ## Pega Metadata
19
-
20
- - **Registration key:** `AppAnnouncement` (in `component-map.ts`)
21
- - **Category:** Widget — informational display
22
- - **Extends:** `PConnProps`
23
-
24
- ## Props
25
-
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `header` | `string` | No | Announcement card title |
29
- | `description` | `string` | No | Announcement body text |
30
- | `datasource` | `object` | No | Data source object — `datasource.source` is an array of item objects |
31
- | `whatsnewlink` | `string` | No | URL for the "See what's new" button; if absent, button is not rendered |
32
- | `getPConnect` | `function` | Yes | PConnect getter |
33
-
34
- ## Behavioral Contract
35
-
36
- 1. **Item list extraction:** If `datasource` is provided and `datasource.source` is a non-empty array, extract item names and render them as a bullet list. Each array item is expected to have a `name` property.
37
- 2. **Button:** If `whatsnewlink` is non-empty, render a button labeled `"See what's new"` (or localized equivalent). On click, open the URL in a new browser tab (`window.open(whatsnewlink, '_blank')`).
38
- 3. **Description:** Render the `description` string as plain text below the header.
39
- 4. **No data fetching:** This widget is purely prop-driven — it does not call any PCore data APIs.
40
-
41
- ## Visual Specifications
42
-
43
- ### Card Layout
44
-
45
- | Element | Position |
46
- |---------|----------|
47
- | Left accent border | 6px solid, primary light color |
48
- | Card header | `header` prop as title |
49
- | Card content | Description text + optional bullet list |
50
- | "See what's new" button | Below description / bullet list |
51
-
52
- **CSS-only implementation notes:**
53
- - Card: `border-left: 6px solid var(--app-primary-light-color); border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,0.12)`.
54
- - Card header: `padding: 12px 16px; font-weight: 600`.
55
- - Card content: `padding: 0 16px 16px`.
56
- - Bullet list: `padding-left: 1.5rem; margin: 0.5rem 0`.
57
- - "See what's new" button: `margin-top: 0.75rem; text-transform: none`.
58
-
59
- ## Edge Cases & Special Logic
60
-
61
- - `datasource` may be `undefined` or `datasource.source` may be an empty array — in both cases, render no bullet list (not even an empty `<ul>`).
62
- - `whatsnewlink` may be an empty string — treat the same as absent (no button rendered).
63
- - `header` and `description` may both be absent — render the card with empty/placeholder content without crashing.
64
- - Item objects in `datasource.source` are expected to have `name` — guard against items where `name` is `undefined`.
65
-
66
- ## Dependencies
67
-
68
- - MUI: `<Card>`, `<CardHeader>`, `<CardContent>`, `<Typography>`, `<Button>`
69
-
70
- ## Design System Mapping
71
-
72
- **UI control type:** Announcement / informational card with bullet list and external link.
73
-
74
- Listed design systems are examples only.
75
-
76
- | Design System | Card | Bullet List | Button |
77
- |---|---|---|---|
78
- | Default (CSS only) | `<div>` with left border + box-shadow | `<ul>/<li>` | `<button>` opening new tab |
79
- | MUI | `<Card>` + `<CardHeader>` + `<CardContent>` | `<List>/<ListItem>` or `<ul>` | `<Button>` |
80
- | Ant Design | `<Card>` with `title` prop | `<ul>/<li>` | `<Button>` |
81
- | Chakra UI | `<Card>` + `<CardHeader>` + `<CardBody>` | `<UnorderedList>/<ListItem>` | `<Button>` |
82
- | Shadcn/ui | `<Card>` + `<CardHeader>` + `<CardContent>` | `<ul>/<li>` | `<Button>` |
83
-
84
- When implementing in a specific design system:
85
- - Left accent border is a key visual identifier — implement it via CSS or the design system's border utilities
86
- - "See what's new" must open in a new tab (`target='_blank'` + `rel='noopener noreferrer'`)
87
- - The widget is entirely prop-driven — no data fetching needed
@@ -1,151 +0,0 @@
1
- ---
2
- description: Widget component skill: Attachment
3
- alwaysApply: false
4
- ---
5
-
6
- # Skill: Attachment
7
-
8
- File upload/download widget for case attachments. Behaves like a form field — binds to a case attachment property, supports multiple files, validates extensions and size, tracks upload progress, and blocks form submission during active uploads.
9
-
10
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
11
-
12
- ---
13
-
14
- ## Component Purpose
15
-
16
- Renders a file attachment control within a Pega form. Users can upload one or multiple files, download existing attachments, and delete attachments. The widget validates file extensions and enforces a maximum size from environment config. Upload progress is shown per-file. Form submission is blocked while uploads are in progress via the action sequencer.
17
-
18
- ## Pega Metadata
19
-
20
- - **Registration key:** `Attachment` (in `component-map.ts`)
21
- - **Category:** Widget — form field (file input)
22
- - **Extends:** `Omit<PConnFieldProps, 'value'>` (uses `value: any` instead of the standard string value)
23
-
24
- ## Props
25
-
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `value` | `any` | Yes | Attachment list or single attachment object (from Pega property) |
29
- | `allowMultiple` | `boolean \| string` | No | Whether multiple files can be attached. Default `false` |
30
- | `extensions` | `string` | No | Comma-separated list of allowed file extensions (e.g., `".pdf,.doc,.jpg"`) |
31
- | `editMode` | `string` | No | `"tableRows"` for inline table edit mode (special multi-attachment handling) |
32
- | `isTableFormatter` | `boolean` | No | Whether this widget is used inside a table formatter |
33
- | `label` | `string` | Yes (from PConnFieldProps) | Field label |
34
- | `required` | `boolean` | No | Whether a file is required |
35
- | `disabled` | `boolean` | No | Whether the control is disabled |
36
- | `displayMode` | `string` | No | `"DISPLAY_ONLY"` for read-only rendering |
37
- | `validatemessage` | `string` | No | Validation error message to display |
38
- | `helperText` | `string` | No | Helper text shown below the control |
39
- | `getPConnect` | `function` | Yes | PConnect getter |
40
-
41
- ## Behavioral Contract
42
-
43
- ### Attachment Format Detection
44
-
45
- Pega has two attachment data formats — detect which one is in use:
46
-
47
- **Old format (annotation-based):**
48
- ```typescript
49
- value = { pxResults: [...], pyAttachCount: N }
50
- ```
51
-
52
- **New standard format:**
53
- ```typescript
54
- value = [{ ID, name, mimeType, category, ... }] // array
55
- ```
56
-
57
- Call `PCore.getAttachmentUtils().prepareAttachmentData(value)` to normalize both formats into a unified `FileObject[]` array.
58
-
59
- ### File Validation
60
-
61
- On file selection (via `<input type='file'>`):
62
- 1. **Extension check:** Compare selected file's extension against `extensions` prop (split by comma). If not allowed, add an error to the file and do not upload.
63
- 2. **Size check:** Compare file size against `PCore.getEnvironmentInfo().getMaxAttachmentSize()` (in bytes). If too large, add a size error.
64
- 3. Valid files proceed to upload.
65
-
66
- ### Upload Flow
67
-
68
- 1. Call `PCore.getActionsSequencer().addAction('attachment_upload_' + fileId)` — blocks form submission.
69
- 2. Call `PCore.getAttachmentUtils().uploadAttachment(file, onProgress, onError, context)`.
70
- 3. On progress: update per-file `progress` value (0–100) in state.
71
- 4. On success: add the returned attachment metadata to the local file list; update the Pega property via `pConn.setReferenceList(newAttachmentList)`.
72
- 5. Call `PCore.getActionsSequencer().removeAction('attachment_upload_' + fileId)` — unblocks form submission.
73
- 6. On error: set file error state; call `PCore.getMessageManager().addMessages([errorMessage])`.
74
-
75
- ### Download
76
-
77
- Call `PCore.getAttachmentUtils().downloadAttachment(attachmentID, context)` — triggers browser file download.
78
-
79
- ### Delete
80
-
81
- Remove the attachment from the local list and update `pConn.setReferenceList(updatedList)`. Do not call a separate delete API in the reference implementation — deletion is committed on form save.
82
-
83
- ### Pub-Sub: Assignment Submission
84
-
85
- Subscribe to `PCore.getPubSubUtils().subscribe(BEFORE_ASSIGNMENT_SUBMIT, handleBeforeSubmit, 'Attachment')`. In `handleBeforeSubmit`, validate that no uploads are still in progress.
86
-
87
- ### Read-Only Mode (`displayMode === 'DISPLAY_ONLY'`)
88
-
89
- Render a list of existing attachments as download links. No upload controls shown.
90
-
91
- ### Inline Table Edit Mode (`editMode === 'tableRows'`)
92
-
93
- Compressed display for use inside a table cell. Show attachment count and a small upload button. Clicking opens a minimal upload dialog.
94
-
95
- ## Visual Specifications
96
-
97
- | Element | Description |
98
- |---------|-------------|
99
- | Label | Standard field label above the control |
100
- | Drop zone / Upload button | Clickable area to select files; optionally supports drag-and-drop |
101
- | File list | Each uploaded file: icon + name + size + progress bar (during upload) + delete button |
102
- | Error state | Red error text below the control for invalid files or upload failures |
103
- | Helper text | Secondary text below the control |
104
-
105
- **CSS-only implementation notes:**
106
- - Drop zone: `border: 2px dashed var(--border-color); border-radius: 4px; padding: 1rem; text-align: center; cursor: pointer`.
107
- - Drop zone hover: `border-color: var(--app-primary-color); background: var(--hover-bg)`.
108
- - File row: `display: flex; align-items: center; gap: 0.5rem; padding: 4px 0`.
109
- - Progress bar: `height: 4px; background: var(--app-primary-color); border-radius: 2px; transition: width 0.2s`.
110
- - Error text: `color: var(--error-color); font-size: 0.75rem; margin-top: 4px`.
111
- - Delete button: `color: var(--error-color)`.
112
-
113
- ## Edge Cases & Special Logic
114
-
115
- - `allowMultiple` may be a string `"true"` / `"false"` or a boolean — always coerce: `allowMultiple === true || allowMultiple === 'true'`.
116
- - Upload progress: track per-file progress in a `Map<fileId, number>` state object.
117
- - `isTableFormatter`: when `true`, hide the label and reduce padding for compact table display.
118
- - Concurrent uploads: multiple files may upload simultaneously — the sequencer action must be keyed per-file.
119
- - Max size: call `PCore.getEnvironmentInfo().getMaxAttachmentSize()` at validation time (not at mount) — size config may be dynamic.
120
- - `extensions` may be empty string — if empty, allow all file types.
121
-
122
- ## Dependencies
123
-
124
- - `AttachmentUtils.ts` — `validateExtension`, `validateSize`, `getFileTypeIcon`, `buildDownloadURL`, error handling helpers
125
- - `Attachment.types.ts` — `FileObject`, `AttachmentLinks`, `PageInstructionOptions` type definitions
126
- - `PCore.getAttachmentUtils()` — upload, download, prepareAttachmentData
127
- - `PCore.getActionsSequencer()` — block/unblock form submission during upload
128
- - `PCore.getEnvironmentInfo()` — max attachment size
129
- - `PCore.getMessageManager()` — error message display
130
- - `PCore.getPubSubUtils()` — before-submit subscription
131
- - `downloadjs` library — browser file download trigger
132
-
133
- ## Design System Mapping
134
-
135
- **UI control type:** File upload form field with progress tracking, validation, and attachment list.
136
-
137
- Listed design systems are examples only.
138
-
139
- | Design System | File Input | Progress | File List |
140
- |---|---|---|---|
141
- | Default (CSS only) | `<input type='file'>` + custom styled drop zone | `<progress>` element or CSS bar | `<ul>/<li>` rows |
142
- | MUI | Custom styled `<Box>` drop zone + hidden `<input>` | `<LinearProgress>` | `<List>/<ListItem>` |
143
- | Ant Design | `<Upload dragger>` | `<Progress>` | Built-in upload file list |
144
- | Chakra UI | Custom `<Box>` with `useDropzone` | `<Progress>` | `<VStack>` rows |
145
- | Shadcn/ui | Custom drop zone | Custom CSS progress bar | `<ul>/<li>` rows |
146
-
147
- When implementing in a specific design system:
148
- - Action sequencer blocking (`addAction`/`removeAction`) is mandatory — do not skip it; form submission must be blocked during uploads
149
- - Detect and normalize both old and new attachment formats via `prepareAttachmentData`
150
- - `allowMultiple` coercion (string vs boolean) is required
151
- - Extension and size validation must happen client-side before calling the upload API
@@ -1,205 +0,0 @@
1
- ---
2
- description: Widget component skill: FileUtility
3
- alwaysApply: false
4
- ---
5
-
6
- # Skill: FileUtility
7
-
8
- File and URL management utility widget. Displays case attachments and links, supports upload/download/delete, and provides modals for adding new files or URLs. Also covers `ActionButtonsForFileUtil` sub-component.
9
-
10
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
11
-
12
- ---
13
-
14
- ## Component Purpose
15
-
16
- The primary attachments management panel in the case utilities column. Shows up to 3 attachments/links in the main view with a "View all" option that opens a modal with the full list. Users can upload files, attach URLs, download, and delete items. Attachment state is kept fresh via debounced pub-sub subscriptions.
17
-
18
- ## Pega Metadata
19
-
20
- - **Registration key:** `FileUtility` (in `component-map.ts`)
21
- - **Category:** Widget — file management
22
- - **Extends:** `PConnProps`
23
-
24
- ## Props
25
-
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `caseId` | `string` | No | Optional case ID override. If absent, resolved from `pConn.getCaseInfo().getID()` |
29
- | `getPConnect` | `function` | Yes | PConnect getter |
30
-
31
- ## Behavioral Contract
32
-
33
- ### Attachment Fetch
34
-
35
- On mount and on attachment change events:
36
- ```
37
- PCore.getAttachmentUtils().getCaseAttachments(caseKey, context)
38
- ```
39
- Returns array of attachment/link objects. Store in `attachments` state.
40
-
41
- Debounced auto-refresh: on `CASE_ATTACHMENTS_UPDATED` pub-sub event, wait 1000ms (debounced) then re-fetch. This prevents rapid re-fetches when multiple files are uploaded simultaneously.
42
-
43
- ### Main View — Top 3 Display
44
-
45
- Show only the first 3 items from `attachments`. If `attachments.length > 3`, show a `"View all (N)"` button that opens the full-list modal.
46
-
47
- ### SummaryList Integration
48
-
49
- Map each attachment/link to a `SummaryItem`-compatible object:
50
- ```typescript
51
- {
52
- id: attachment.ID,
53
- visual: { icon: getFileIcon(attachment.mimeType) },
54
- primary: {
55
- type: attachment.category === 'FILE' ? 'FILE' : 'URL',
56
- name: attachment.name,
57
- click: () => handleDownloadOrOpen(attachment)
58
- },
59
- secondary: { text: attachment.createdBy + ' · ' + formatDate(attachment.createTime) }
60
- actions: [
61
- { id: 'delete', text: 'Delete', icon: 'trash', onClick: () => handleDelete(attachment.ID) }
62
- ]
63
- }
64
- ```
65
-
66
- Pass to `<SummaryList arItems$={summaryItems} />`.
67
-
68
- ### File Upload
69
-
70
- 1. User clicks "Add file" from the `<Menu>`.
71
- 2. Opens an add-file modal (dialog).
72
- 3. User selects a file via `<input type='file'>`.
73
- 4. On confirm: call `PCore.getAttachmentUtils().uploadAttachment(file, onProgress, onError, context)`.
74
- 5. On success: call `PCore.getAttachmentUtils().linkAttachmentsToCase(caseKey, [newAttachment], context)`.
75
- 6. Refresh attachment list.
76
-
77
- ### URL Attachment
78
-
79
- 1. User clicks "Add link" from the `<Menu>`.
80
- 2. Opens add-link modal with two fields: `Title` (required) and `URL` (required).
81
- 3. The "Attach" button is enabled only when both `title` and `url` are non-empty.
82
- 4. On confirm: call `PCore.getAttachmentUtils().linkAttachmentsToCase(caseKey, [{ name: title, url, category: 'URL' }], context)`.
83
- 5. Refresh attachment list.
84
-
85
- ### Download / Open
86
-
87
- - **FILE type:** Call `PCore.getAttachmentUtils().downloadAttachment(attachmentID, context)` then trigger browser download via `downloadjs`.
88
- - **URL type:** Open `attachment.url` in a new browser tab (`window.open(url, '_blank')`).
89
-
90
- ### Delete
91
-
92
- Call `PCore.getAttachmentUtils().deleteAttachment(attachmentID, context)`. Refresh attachment list after success.
93
-
94
- ### Actions Menu
95
-
96
- Render a `<MoreVertIcon>` `<IconButton>` that opens a `<Menu>` with:
97
- - `"Add file"` — opens add-file modal
98
- - `"Add link"` — opens add-link modal
99
-
100
- ## Visual Specifications
101
-
102
- ### Main Card
103
-
104
- | Element | Description |
105
- |---------|-------------|
106
- | Card header | `"Attachments"` (or localized) + count badge |
107
- | Actions icon | `<MoreVertIcon>` button top-right |
108
- | Attachment rows | Up to 3 `SummaryItem` cards |
109
- | "View all" button | Text button, shown when > 3 attachments |
110
-
111
- ### "View all" Modal
112
-
113
- | Element | Description |
114
- |---------|-------------|
115
- | Modal header | `"All attachments (N)"` |
116
- | Attachment rows | All items in `SummaryList` |
117
- | Close button | `X` in modal header |
118
-
119
- ### Add File Modal
120
-
121
- | Element | Description |
122
- |---------|-------------|
123
- | File picker | `<input type='file'>` |
124
- | Progress bar | Per-file upload progress |
125
- | Action buttons | `ActionButtonsForFileUtil` (Cancel + Attach) |
126
-
127
- ### Add Link Modal
128
-
129
- | Element | Description |
130
- |---------|-------------|
131
- | Title field | `<TextField label='Title'>` — required |
132
- | URL field | `<TextField label='URL'>` — required |
133
- | Attach button | Enabled only when both fields are filled |
134
- | Action buttons | `ActionButtonsForFileUtil` (Cancel + Attach) |
135
-
136
- **CSS-only implementation notes:**
137
- - Main card: standard card styles.
138
- - Modal: `position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; border-radius: 8px; box-shadow: 0 4px 24px rgba(0,0,0,0.2); min-width: 480px; padding: 1.5rem`.
139
- - "View all" button: text style, `color: var(--app-primary-color); cursor: pointer`.
140
- - Progress bar: `height: 4px; background: var(--app-primary-color); transition: width 0.3s`.
141
-
142
- ## Sub-Component: ActionButtonsForFileUtil
143
-
144
- **Registration key:** `ActionButtonsForFileUtil`
145
-
146
- A simple button row component used inside the FileUtility modals to render Cancel + primary action buttons.
147
-
148
- ### Props
149
-
150
- | Prop | Type | Required | Description |
151
- |------|------|----------|-------------|
152
- | `arMainButtons` | `any[]` | Yes | Primary button definitions `[{ actionID, name }]` |
153
- | `arSecondaryButtons` | `any[]` | Yes | Secondary (cancel) button definitions `[{ actionID, name }]` |
154
- | `primaryAction` | `function` | Yes | Callback invoked when the primary button is clicked |
155
- | `secondaryAction` | `function` | Yes | Callback invoked when the secondary/cancel button is clicked |
156
- | `getPConnect` | `function` | Yes | PConnect getter |
157
-
158
- ### Layout
159
-
160
- ```
161
- [Secondary buttons (left)] [Primary buttons (right)]
162
- Cancel Attach
163
- ```
164
-
165
- - Secondary buttons: outlined/text style.
166
- - Primary buttons: contained/filled style with theme primary color.
167
- - Render using `arSecondaryButtons.map(...)` and `arMainButtons.map(...)`.
168
-
169
- ## Edge Cases & Special Logic
170
-
171
- - **Debounce (1000ms):** Prevents excessive re-fetches when multiple attachment events fire in quick succession.
172
- - **Add link "Attach" button disabled state:** Title and URL validation must happen on every keystroke — use controlled inputs with `!title || !url` to derive disabled state.
173
- - **`linkAttachmentsToCase`:** After upload, the file must be explicitly linked to the case. Uploading alone does not associate the file with the case.
174
- - **Pub-sub cleanup:** Unsubscribe from `CASE_ATTACHMENTS_UPDATED` on unmount to prevent stale callbacks.
175
- - **Error display:** Use `PCore.getMessageManager()` or inline error state in the modal — do not silently fail on upload/link errors.
176
-
177
- ## Dependencies
178
-
179
- - `PCore.getAttachmentUtils()` — getCaseAttachments, uploadAttachment, downloadAttachment, deleteAttachment, linkAttachmentsToCase
180
- - `PCore.getMessagingServiceManager()` — subscribe to attachment change events
181
- - `PCore.getConstants()` — case info ID, summary refresh timing
182
- - `getComponentFromRegistry('SummaryList')` — renders the attachment item list
183
- - `getComponentFromRegistry('ActionButtonsForFileUtil')` — renders modal action buttons
184
- - `downloadjs` — browser file download trigger
185
- - MUI: `<Card>`, `<CardHeader>`, `<CardContent>`, `<IconButton>`, `<Menu>`, `<MenuItem>`, `<Button>`, `<TextField>`, `<Dialog>`, `<CircularProgress>`
186
- - MUI Icons: `<MoreVertIcon>`
187
-
188
- ## Design System Mapping
189
-
190
- **UI control type:** File management widget — attachment list with upload/download/delete and add modals.
191
-
192
- Listed design systems are examples only.
193
-
194
- | Design System | Card | Action Menu | Modal | Progress |
195
- |---|---|---|---|---|
196
- | Default (CSS only) | `<div>` card | `<button>` + custom dropdown | `<dialog>` | CSS progress bar |
197
- | MUI | `<Card>` | `<IconButton>` + `<Menu>/<MenuItem>` | `<Dialog>` | `<CircularProgress>` or `<LinearProgress>` |
198
- | Ant Design | `<Card>` | `<Dropdown menu={{ items }}>` | `<Modal>` | `<Progress>` |
199
- | Chakra UI | `<Card>` | `<Menu>/<MenuButton>/<MenuList>` | `<Modal>` | `<Progress>` |
200
- | Shadcn/ui | `<Card>` | `<DropdownMenu>` | `<Dialog>` | Custom progress bar |
201
-
202
- When implementing in a specific design system:
203
- - Debounced refresh (1000ms) after pub-sub attachment events is required — prevents excessive API calls
204
- - `linkAttachmentsToCase` must be called after upload — uploading alone does not attach to the case
205
- - `ActionButtonsForFileUtil` receives button definition arrays — render them generically from `arMainButtons`/`arSecondaryButtons`
@@ -1,195 +0,0 @@
1
- ---
2
- description: Widget component skill: ToDo
3
- alwaysApply: false
4
- ---
5
-
6
- # Skill: ToDo
7
-
8
- Assignment worklist widget. Displays the current user's pending assignments with expand/collapse, click-to-open, priority indicators, badge counts, responsive layout, and snackbar error notifications.
9
-
10
- > **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
11
-
12
- ---
13
-
14
- ## Component Purpose
15
-
16
- Renders a compact to-do / worklist panel showing the user's pending assignments. Shows the top 3 items by default with a "Show more" / "Show less" toggle. Supports two modes: `worklist` (personal workbasket) and `todo` (case-level assignments). Clicking an item opens the assignment. A badge in the card header shows the total count.
17
-
18
- ## Pega Metadata
19
-
20
- - **Registration key:** `Todo` (note: lowercase `o` in the key; file is `ToDo.tsx`)
21
- - **Category:** Widget — assignment / action
22
- - **Extends:** `PConnProps`
23
-
24
- ## Props
25
-
26
- | Prop | Type | Required | Description |
27
- |------|------|----------|-------------|
28
- | `datasource` | `any` | No | Array of assignments passed directly (used in `todo` type). If provided, skips the data page fetch |
29
- | `myWorkList` | `any` | No | Work list config object `{ datapage: string, fields: [...] }` — for `worklist` type |
30
- | `caseInfoID` | `string` | No | Case ID to filter assignments (used in `todo` type) |
31
- | `headerText` | `string` | No | Widget title. Default: `"To do"` |
32
- | `itemKey` | `string` | No | Field key (reserved, currently unused) |
33
- | `showTodoList` | `boolean` | No | Whether to show the assignment list. Default `true` |
34
- | `type` | `string` | No | `'worklist'` (personal work) or `'todo'` (case-level). Default `'worklist'` |
35
- | `context` | `string` | No | Context name for API calls. Falls back to `pConn.getContextName()` |
36
- | `isConfirm` | `boolean` | No | Confirmation mode — adjusts rendering for post-submit confirmation view |
37
- | `getPConnect` | `function` | Yes | PConnect getter |
38
-
39
- ## Behavioral Contract
40
-
41
- ### Data Source Resolution
42
-
43
- **`type === 'todo'` (case-level):**
44
- - Use `datasource` prop directly (array of assignment objects).
45
- - `caseInfoID` is used to scope the assignments.
46
-
47
- **`type === 'worklist'` (personal work):**
48
- - Fetch from `myWorkList.datapage` (e.g., `D_WorkList`) via:
49
- ```
50
- PCore.getDataPageUtils().getDataAsync(
51
- myWorkList.datapage,
52
- context,
53
- {},
54
- { pageNumber: 1, pageSize: 50 },
55
- { select: myWorkList.fields },
56
- { invalidateCache: true }
57
- )
58
- ```
59
- - Map the response to assignment objects.
60
-
61
- ### Top 3 + Show More
62
-
63
- - `showCount` state: default `3`.
64
- - Render only `assignments.slice(0, showCount)`.
65
- - If `assignments.length > 3`:
66
- - Show a `"Show more"` button → sets `showCount = assignments.length`.
67
- - When expanded: show `"Show less"` button → sets `showCount = 3`.
68
-
69
- ### Badge Count
70
-
71
- - Render a `<Badge badgeContent={assignments.length}>` on the card header or alongside the title.
72
- - Badge shows the total count of assignments, not the currently-visible count.
73
-
74
- ### Open Assignment
75
-
76
- On item click:
77
- ```typescript
78
- pConn.getActionsApi().openAssignment(
79
- assignment.pxRefObjectKey, // case key
80
- assignment.pxRefObjectClass, // class name
81
- {
82
- containerName: pConn.getContainerName() || PCore.getConstants().APP.APP,
83
- channelName: ''
84
- }
85
- );
86
- ```
87
-
88
- ### Assignment Item Rendering
89
-
90
- For each assignment, show:
91
- - **Avatar:** Circle with user initials (derived from `pConn.getContextObject?.().pyLabel` or operator name).
92
- - **Name/title:** `assignment.pyLabel` — the assignment task name.
93
- - **Status badge (worklist only):** `assignment.pyStatusWork` — colored status pill.
94
- - **Priority/urgency:** `assignment.pyUrgencyWork` — urgency level indicator.
95
- - **Child case indicator:** If `assignment.isChild === true`, show an indent or nested indicator.
96
- - **Arrow icon:** Right-pointing arrow (`<ArrowForwardIosOutlinedIcon>`) indicating clickable.
97
-
98
- ### Responsive Layout
99
-
100
- Use `useMediaQuery(theme.breakpoints.down('sm'))` (MUI) to detect mobile:
101
- - **Desktop:** Show avatar, name, status, priority, and arrow in a horizontal row.
102
- - **Mobile:** Stack or truncate elements for narrow display.
103
-
104
- ### `canPerform` Permission Check
105
-
106
- If an assignment has `canPerform === false`, render it as non-clickable (greyed out, no onClick handler).
107
-
108
- ### Snackbar Error
109
-
110
- - On `openAssignment` failure, catch the error and show a `<Snackbar>` with the error message.
111
- - Auto-hide after 3000ms.
112
- - `<IconButton>` (`<CloseIcon>`) to manually dismiss.
113
-
114
- ### Operator Avatar Initials
115
-
116
- Extract initials from `PCore.getEnvironmentInfo().getOperatorName()`:
117
- ```typescript
118
- const initials = operatorName
119
- .split(' ')
120
- .map(w => w[0])
121
- .join('')
122
- .substring(0, 2)
123
- .toUpperCase();
124
- ```
125
-
126
- ## Visual Specifications
127
-
128
- ### Card Layout
129
-
130
- | Element | Description |
131
- |---------|-------------|
132
- | Card header | `headerText` (default `"To do"`) + badge with count |
133
- | Assignment rows | Up to `showCount` items |
134
- | Show more/less button | Below the last visible item |
135
-
136
- ### Assignment Row
137
-
138
- | Element | Desktop | Mobile |
139
- |---------|---------|--------|
140
- | Avatar circle | Shown | Shown |
141
- | Task name | Full text | Truncated |
142
- | Status badge | Shown | Hidden or small |
143
- | Priority indicator | Shown | Simplified |
144
- | Arrow icon | Shown | Shown |
145
-
146
- **CSS-only implementation notes:**
147
- - Card: standard card layout.
148
- - Assignment row: `display: flex; align-items: center; gap: 0.75rem; padding: 10px 0; cursor: pointer; border-bottom: 1px solid var(--divider-color)`.
149
- - Avatar: `width: 36px; height: 36px; border-radius: 50%; background: var(--avatar-bg); display: flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 600`.
150
- - Status badge: `padding: 2px 6px; border-radius: 10px; font-size: 0.75rem; background: var(--status-bg-color)`.
151
- - Priority: `font-size: 0.75rem; color: var(--secondary-text-color)`.
152
- - Arrow: `margin-left: auto; color: var(--secondary-text-color)`.
153
- - Non-clickable (canPerform=false): `opacity: 0.5; cursor: not-allowed`.
154
- - Show more button: `width: 100%; text-align: center; padding: 8px; color: var(--app-primary-color)`.
155
-
156
- ## Edge Cases & Special Logic
157
-
158
- - `type` defaults to `'worklist'` — handle the fallback gracefully if `type` is undefined.
159
- - `datasource` prop vs fetch: if `datasource` is provided (non-empty), skip the data page fetch entirely.
160
- - `myWorkList` may be undefined for `todo` type — do not attempt a fetch if it's missing.
161
- - `showTodoList === false` — render only the card header (with badge count) and hide the list body.
162
- - `isConfirm === true` — used in the Confirmation template context; may adjust layout to hide certain elements (e.g., hide status badge, show simpler view).
163
- - Empty assignments — show a `"No tasks"` or `"You're all caught up!"` empty state message.
164
- - `canPerform` check: if `false`, disable click and show cursor `not-allowed`. Do not open the assignment.
165
- - Container name fallback: `pConn.getContainerName() || PCore.getConstants().APP.APP` — always provide a container name to `openAssignment`.
166
-
167
- ## Dependencies
168
-
169
- - `PCore.getDataPageUtils().getDataAsync()` — worklist data page fetch
170
- - `PCore.getEnvironmentInfo()` — operator name for avatar initials
171
- - `PCore.getConstants()` — CASE_INFO, WORK_BASKET, TODO, APP constants
172
- - `PCore.getLocaleUtils()` — assignment label localization
173
- - `pConn.getActionsApi().openAssignment()` — opens the selected assignment
174
- - MUI: `<Card>`, `<CardContent>`, `<CardHeader>`, `<Avatar>`, `<Typography>`, `<Badge>`, `<List>`, `<ListItem>`, `<ListItemText>`, `<Button>`, `<Snackbar>`, `<IconButton>`, `useMediaQuery`, `useTheme`
175
- - MUI Icons: `<CloseIcon>`, `<ArrowForwardIosOutlinedIcon>`
176
-
177
- ## Design System Mapping
178
-
179
- **UI control type:** Assignment worklist widget with expand/collapse, click-to-open, badge count, and error toast.
180
-
181
- Listed design systems are examples only.
182
-
183
- | Design System | Card | List | Badge | Snackbar |
184
- |---|---|---|---|---|
185
- | Default (CSS only) | `<div>` card | `<ul>/<li>` | CSS counter badge | Custom toast overlay |
186
- | MUI | `<Card>` + `<CardHeader>` | `<List>/<ListItem>` | `<Badge>` | `<Snackbar>/<Alert>` |
187
- | Ant Design | `<Card>` | `<List>` | `<Badge count={N}>` | `message.error()` |
188
- | Chakra UI | `<Card>` | `<VStack>` | `<Badge>` | `useToast()` |
189
- | Shadcn/ui | `<Card>` | `<ul>/<li>` | Custom badge | `<Toaster>` + `toast.error()` |
190
-
191
- When implementing in a specific design system:
192
- - Show top 3 items by default — `showCount` state controls slice; "Show more/less" toggles between 3 and full length
193
- - `canPerform === false` must make the row non-clickable — check this before calling `openAssignment`
194
- - `type === 'worklist'` fetches from a data page; `type === 'todo'` uses the `datasource` prop — both paths must be implemented
195
- - Operator initials for the avatar must be derived from `PCore.getEnvironmentInfo().getOperatorName()`