@pega/sdk 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/LICENSE +183 -183
  2. package/README.md +6 -6
  3. package/SECURITY.md +2 -1
  4. package/dist/index.js +14 -57
  5. package/package.json +7 -6
  6. package/templates/angular-sdk-reference/package.json +15 -15
  7. package/templates/angular-sdk-reference/tsconfig.json +2 -2
  8. package/templates/react-native-sdk-reference/App.tsx +2 -4
  9. package/templates/react-native-sdk-reference/package.json +6 -6
  10. package/templates/react-native-sdk-reference/tsconfig.json +2 -1
  11. package/templates/react-sdk-reference/.claude/instructions/component-map.md +38 -0
  12. package/templates/react-sdk-reference/.claude/instructions/dse-component.md +75 -0
  13. package/templates/react-sdk-reference/.claude/instructions/field-component.md +75 -0
  14. package/templates/react-sdk-reference/.claude/instructions/template-component.md +93 -0
  15. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +88 -0
  16. package/templates/react-sdk-reference/.claude/prompts/add-component.md +152 -0
  17. package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +193 -0
  18. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +158 -0
  19. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +140 -0
  20. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +153 -0
  21. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +165 -0
  22. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +138 -0
  23. package/templates/react-sdk-reference/.claude/prompts/identify-components.md +105 -0
  24. package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +519 -0
  25. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +140 -0
  26. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +137 -0
  27. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +152 -0
  28. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +159 -0
  29. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +148 -0
  30. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +134 -0
  31. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +113 -0
  32. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +118 -0
  33. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +155 -0
  34. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +85 -0
  35. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +232 -0
  36. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +137 -0
  37. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +291 -0
  38. package/templates/react-sdk-reference/.claude/skills/field-components.md +295 -0
  39. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +113 -0
  40. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +211 -0
  41. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +175 -0
  42. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +109 -0
  43. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +101 -0
  44. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +106 -0
  45. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +99 -0
  46. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +134 -0
  47. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +109 -0
  48. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +96 -0
  49. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +88 -0
  50. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +145 -0
  51. package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +188 -0
  52. package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +173 -0
  53. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +93 -0
  54. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +129 -0
  55. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +167 -0
  56. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +149 -0
  57. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +134 -0
  58. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +231 -0
  59. package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +155 -0
  60. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +98 -0
  61. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +117 -0
  62. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +107 -0
  63. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +89 -0
  64. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +86 -0
  65. package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +203 -0
  66. package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +70 -0
  67. package/templates/react-sdk-reference/.claude/skills/template-components.md +321 -0
  68. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +150 -0
  69. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +124 -0
  70. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +86 -0
  71. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +106 -0
  72. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +137 -0
  73. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +131 -0
  74. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +109 -0
  75. package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +124 -0
  76. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +104 -0
  77. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +112 -0
  78. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +90 -0
  79. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +97 -0
  80. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +80 -0
  81. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +80 -0
  82. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +106 -0
  83. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +112 -0
  84. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +116 -0
  85. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +108 -0
  86. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +82 -0
  87. package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +70 -0
  88. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +142 -0
  89. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +82 -0
  90. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +143 -0
  91. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +114 -0
  92. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +130 -0
  93. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +142 -0
  94. package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +131 -0
  95. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +108 -0
  96. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +82 -0
  97. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +133 -0
  98. package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +152 -0
  99. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +139 -0
  100. package/templates/react-sdk-reference/.claude/skills/widget-components.md +260 -0
  101. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +84 -0
  102. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +151 -0
  103. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +110 -0
  104. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +206 -0
  105. package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +103 -0
  106. package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +118 -0
  107. package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +169 -0
  108. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +198 -0
  109. package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +41 -0
  110. package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +78 -0
  111. package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +74 -0
  112. package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +247 -0
  113. package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +149 -0
  114. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +193 -0
  115. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +154 -0
  116. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +131 -0
  117. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +144 -0
  118. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +156 -0
  119. package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +129 -0
  120. package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +110 -0
  121. package/templates/react-sdk-reference/.cursor/rules/prompts/replace-design-system.mdrules +524 -0
  122. package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +145 -0
  123. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +140 -0
  124. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +154 -0
  125. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +159 -0
  126. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +149 -0
  127. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +136 -0
  128. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +116 -0
  129. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +120 -0
  130. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +154 -0
  131. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +88 -0
  132. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +211 -0
  133. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +140 -0
  134. package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +294 -0
  135. package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +299 -0
  136. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +117 -0
  137. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +208 -0
  138. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +163 -0
  139. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +111 -0
  140. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +104 -0
  141. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +108 -0
  142. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +103 -0
  143. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +119 -0
  144. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +112 -0
  145. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +95 -0
  146. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +92 -0
  147. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +141 -0
  148. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +169 -0
  149. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +169 -0
  150. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +97 -0
  151. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +115 -0
  152. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +151 -0
  153. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +143 -0
  154. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +129 -0
  155. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +221 -0
  156. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +153 -0
  157. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +101 -0
  158. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +106 -0
  159. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +109 -0
  160. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +93 -0
  161. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +90 -0
  162. package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +185 -0
  163. package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +73 -0
  164. package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +327 -0
  165. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +149 -0
  166. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +127 -0
  167. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +88 -0
  168. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +105 -0
  169. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +136 -0
  170. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +131 -0
  171. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +112 -0
  172. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +125 -0
  173. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +107 -0
  174. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +115 -0
  175. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +93 -0
  176. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +100 -0
  177. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +83 -0
  178. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +83 -0
  179. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +106 -0
  180. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +114 -0
  181. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +118 -0
  182. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +109 -0
  183. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +90 -0
  184. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +73 -0
  185. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +144 -0
  186. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +85 -0
  187. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +146 -0
  188. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +114 -0
  189. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +129 -0
  190. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +140 -0
  191. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +132 -0
  192. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +108 -0
  193. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +84 -0
  194. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +136 -0
  195. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +155 -0
  196. package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +140 -0
  197. package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +276 -0
  198. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +87 -0
  199. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +151 -0
  200. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +112 -0
  201. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +205 -0
  202. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +104 -0
  203. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +119 -0
  204. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +172 -0
  205. package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +195 -0
  206. package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +95 -0
  207. package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +90 -0
  208. package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
  209. package/templates/react-sdk-reference/.github/copilot-instructions.md +58 -0
  210. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +2 -2
  211. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +1 -1
  212. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +5 -1
  213. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +3 -2
  214. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +2 -1
  215. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +187 -16
  216. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
  217. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +411 -0
  218. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +205 -0
  219. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +223 -0
  220. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +229 -0
  221. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +208 -0
  222. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +65 -65
  223. package/templates/react-sdk-reference/.github/skills/component-contracts.md +99 -99
  224. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +40 -38
  225. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +54 -51
  226. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
  227. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +32 -28
  228. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +38 -35
  229. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +25 -23
  230. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +29 -26
  231. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +32 -26
  232. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +17 -15
  233. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +85 -59
  234. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
  235. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +60 -18
  236. package/templates/react-sdk-reference/.github/skills/field-components.md +56 -23
  237. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +27 -26
  238. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +30 -22
  239. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +60 -43
  240. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +23 -20
  241. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +19 -17
  242. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +18 -15
  243. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +22 -21
  244. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +50 -30
  245. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +20 -18
  246. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +21 -15
  247. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +17 -16
  248. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +30 -21
  249. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +66 -42
  250. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +27 -18
  251. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +22 -21
  252. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +36 -17
  253. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +56 -35
  254. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +23 -12
  255. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +41 -31
  256. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +70 -55
  257. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +34 -27
  258. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +24 -22
  259. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +38 -22
  260. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +24 -21
  261. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +16 -15
  262. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +16 -15
  263. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +57 -34
  264. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +10 -8
  265. package/templates/react-sdk-reference/.github/skills/template-components.md +50 -14
  266. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +27 -21
  267. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +17 -15
  268. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +19 -16
  269. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +19 -13
  270. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +23 -17
  271. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +34 -29
  272. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +18 -16
  273. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +36 -32
  274. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +23 -21
  275. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +31 -29
  276. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +19 -17
  277. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +22 -20
  278. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +19 -17
  279. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +19 -17
  280. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +15 -10
  281. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +19 -16
  282. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +18 -15
  283. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +17 -13
  284. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +10 -13
  285. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +9 -7
  286. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +33 -30
  287. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +13 -11
  288. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +42 -40
  289. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +25 -20
  290. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +25 -19
  291. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +36 -29
  292. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +31 -27
  293. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +29 -24
  294. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +14 -11
  295. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +34 -32
  296. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +48 -46
  297. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +23 -19
  298. package/templates/react-sdk-reference/.github/skills/widget-components.md +52 -26
  299. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +22 -20
  300. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +33 -28
  301. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +18 -15
  302. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +43 -37
  303. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +23 -19
  304. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +20 -16
  305. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +26 -24
  306. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +43 -35
  307. package/templates/react-sdk-reference/AGENTS.md +216 -29
  308. package/templates/react-sdk-reference/index.html +1 -4
  309. package/templates/react-sdk-reference/package.json +16 -16
  310. package/templates/react-sdk-reference/pega-constellationjs-0.26.3-local.tgz +0 -0
  311. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  312. package/templates/react-sdk-reference/sdk-config.json +1 -1
  313. package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
  314. package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
  315. package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
  316. package/templates/react-sdk-reference/src/MashupApp.tsx +186 -85
  317. package/templates/react-sdk-reference/src/PortalApp.tsx +10 -34
  318. package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
  319. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
  320. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
  321. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
  322. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
  323. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
  324. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
  325. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
  326. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
  327. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
  328. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
  329. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
  330. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
  331. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
  332. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
  333. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
  334. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
  335. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
  336. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
  337. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
  338. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
  339. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
  340. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
  341. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
  342. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
  343. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
  344. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
  345. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
  346. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
  347. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
  348. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
  349. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
  350. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
  351. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
  352. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
  353. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
  354. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
  355. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
  356. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
  357. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
  358. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
  359. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
  360. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
  361. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
  362. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
  363. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
  364. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
  365. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
  366. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
  367. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
  368. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
  369. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
  370. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
  371. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
  372. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
  373. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
  374. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
  375. package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
  376. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
  377. package/templates/react-sdk-reference/src/components/index.ts +1 -4
  378. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
  379. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
  380. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
  381. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
  382. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
  383. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
  384. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
  385. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
  386. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
  387. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
  388. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
  389. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
  390. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
  391. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
  392. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
  393. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
  394. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
  395. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
  396. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
  397. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
  398. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
  399. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
  400. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
  401. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
  402. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
  403. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
  404. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
  405. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
  406. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
  407. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
  408. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
  409. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
  410. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
  411. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
  412. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
  413. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
  414. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
  415. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
  416. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
  417. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
  418. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
  419. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
  420. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
  421. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
  422. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
  423. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
  424. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
  425. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
  426. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
  427. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
  428. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
  429. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
  430. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
  431. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
  432. package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
  433. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
  434. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
  435. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
  436. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
  437. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
  438. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
  439. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
  440. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
  441. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
  442. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
  443. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
  444. package/templates/react-sdk-reference/src/main.tsx +1 -1
  445. package/templates/react-sdk-reference/tsconfig.json +2 -1
  446. package/templates/react-sdk-reference/vite.config.ts +52 -27
  447. package/templates/wc-sdk-reference/package.json +3 -3
  448. package/templates/wc-sdk-reference/src/index.ts +10 -10
  449. package/templates/wc-sdk-reference/tsconfig.json +1 -0
  450. package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +0 -48
  451. package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +0 -81
  452. package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +0 -41
  453. package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +0 -49
  454. package/templates/react-sdk-reference/.github/skills/swap-design-system.md +0 -105
  455. package/templates/react-sdk-reference/pega-constellationjs-0.26.2.tgz +0 -0
@@ -11,7 +11,7 @@ import {
11
11
  insertAttachments,
12
12
  useDeepMemo,
13
13
  useFileDownload,
14
- validateFileExtension
14
+ validateFileExtension,
15
15
  } from './AttachmentUtils';
16
16
  import { validateMaxSize } from '../../helpers/attachmentShared';
17
17
  import type { PageInstructionOptions } from './Attachment.types';
@@ -29,11 +29,21 @@ interface AttachmentProps extends Omit<PConnFieldProps, 'value'> {
29
29
  }
30
30
 
31
31
  export default function Attachment(props: AttachmentProps) {
32
- const { value, getPConnect, label, validatemessage, extensions, displayMode, helperText, editMode, isTableFormatter } = props;
32
+ const {
33
+ value,
34
+ getPConnect,
35
+ label,
36
+ validatemessage,
37
+ extensions,
38
+ displayMode,
39
+ helperText,
40
+ editMode,
41
+ isTableFormatter,
42
+ } = props;
33
43
  /* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */
34
44
  let { required, disabled, allowMultiple } = props;
35
45
  [required, disabled, allowMultiple] = [required, disabled, allowMultiple].map(
36
- prop => prop === true || (typeof prop === 'string' && prop === 'true')
46
+ (prop) => prop === true || (typeof prop === 'string' && prop === 'true'),
37
47
  );
38
48
  const pConn = getPConnect();
39
49
  const localizationService = pConn.getLocalizationService();
@@ -41,7 +51,9 @@ export default function Attachment(props: AttachmentProps) {
41
51
  const actionSequencer = useMemo(() => PCore.getActionsSequencer(), []);
42
52
  const rawValue = pConn.getComponentConfig().value;
43
53
  const isAttachmentAnnotationPresent = typeof rawValue === 'object' ? false : rawValue?.includes('@ATTACHMENT');
44
- const { attachments, isOldAttachment } = isAttachmentAnnotationPresent ? value : PCore.getAttachmentUtils().prepareAttachmentData(value);
54
+ const { attachments, isOldAttachment } = isAttachmentAnnotationPresent
55
+ ? value
56
+ : PCore.getAttachmentUtils().prepareAttachmentData(value);
45
57
 
46
58
  let valueRef = (pConn.getStateProps() as any).value;
47
59
  valueRef = valueRef.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;
@@ -82,7 +94,9 @@ export default function Attachment(props: AttachmentProps) {
82
94
  }
83
95
 
84
96
  if (filesWithError.current.length > 0) {
85
- filesWithError.current = filesWithError.current.filter(fileWithError => fileWithError.props.id !== file.props.id);
97
+ filesWithError.current = filesWithError.current.filter(
98
+ (fileWithError) => fileWithError.props.id !== file.props.id,
99
+ );
86
100
  if (filesWithError.current.length === 0) {
87
101
  clearFieldErrorMessages(pConn);
88
102
  }
@@ -92,8 +106,8 @@ export default function Attachment(props: AttachmentProps) {
92
106
  // @ts-ignore - Expected 1 arguments, but got 2.ts(2554)
93
107
  PCore.getAttachmentUtils().cancelRequest(file.props.id, contextName);
94
108
  actionSequencer.deRegisterBlockingAction(contextName).catch(() => {});
95
- setFiles(localFiles => {
96
- return localFiles.filter(localFile => localFile.props.id !== file.props.id);
109
+ setFiles((localFiles) => {
110
+ return localFiles.filter((localFile) => localFile.props.id !== file.props.id);
97
111
  });
98
112
  } else {
99
113
  deleteAttachments([file], pConn, multiAttachmentsInInlineEdit.current, {
@@ -101,16 +115,18 @@ export default function Attachment(props: AttachmentProps) {
101
115
  isOldAttachment,
102
116
  isMultiAttachmentInInlineEditTable,
103
117
  attachmentCount: attachmentCount.current,
104
- deleteIndex: fileIndex
118
+ deleteIndex: fileIndex,
105
119
  } as any);
106
120
  // Filter out without deleted file and reset the file indexes
107
- setFiles(localFiles => {
121
+ setFiles((localFiles) => {
108
122
  let tempLocalFiles = [...localFiles];
109
- tempLocalFiles = tempLocalFiles.filter(localFile => localFile.props.id !== file.props.id);
110
- tempLocalFiles.forEach(localFile => {
123
+ tempLocalFiles = tempLocalFiles.filter((localFile) => localFile.props.id !== file.props.id);
124
+ tempLocalFiles.forEach((localFile) => {
111
125
  if (!localFile.props.error && !file.props.error) {
112
126
  const updatedDeleteIndex =
113
- localFile.responseProps.deleteIndex > fileIndex ? localFile.responseProps.deleteIndex - 1 : localFile.responseProps.deleteIndex;
127
+ localFile.responseProps.deleteIndex > fileIndex
128
+ ? localFile.responseProps.deleteIndex - 1
129
+ : localFile.responseProps.deleteIndex;
114
130
 
115
131
  localFile.props.onDelete = () => deleteFile(localFile, updatedDeleteIndex);
116
132
 
@@ -126,53 +142,53 @@ export default function Attachment(props: AttachmentProps) {
126
142
 
127
143
  setToggleUploadBegin(false);
128
144
  },
129
- [pConn]
145
+ [pConn],
130
146
  );
131
147
 
132
148
  const onUploadProgress = (id, ev) => {
133
149
  const progress = Math.floor((ev.loaded / ev.total) * 100);
134
- setFiles(localFiles => [
135
- ...localFiles.map(localFile => {
150
+ setFiles((localFiles) => [
151
+ ...localFiles.map((localFile) => {
136
152
  if (localFile.props?.id === id) {
137
153
  localFile.inProgress = true;
138
154
  localFile.props.progress = progress;
139
155
  }
140
156
  return localFile;
141
- })
157
+ }),
142
158
  ]);
143
159
  };
144
160
 
145
- const populateErrorAndUpdateRedux = file => {
161
+ const populateErrorAndUpdateRedux = (file) => {
146
162
  const fieldName = (pConn.getStateProps() as any).value;
147
163
  // set errors to property to block submit even on errors in file upload
148
164
  PCore.getMessageManager().addMessages({
149
165
  messages: [
150
166
  {
151
167
  type: 'error',
152
- message: localizationService.getLocalizedText('Error with one or more files')
153
- }
168
+ message: localizationService.getLocalizedText('Error with one or more files'),
169
+ },
154
170
  ],
155
171
  property: fieldName,
156
172
  pageReference: pConn.getPageReference(),
157
- context: contextName
173
+ context: contextName,
158
174
  });
159
175
  insertAttachments([file], pConn, multiAttachmentsInInlineEdit.current, {
160
176
  allowMultiple,
161
177
  isOldAttachment,
162
178
  isMultiAttachmentInInlineEditTable,
163
- attachmentCount: attachmentCount.current
179
+ attachmentCount: attachmentCount.current,
164
180
  } as any);
165
181
  };
166
182
 
167
183
  const errorHandler = (isFetchCanceled, file) => {
168
- return error => {
184
+ return (error) => {
169
185
  if (!isFetchCanceled(error)) {
170
186
  let uploadFailMsg = localizationService.getLocalizedText('Something went wrong');
171
187
  if (error.response && error.response.data && error.response.data.errorDetails) {
172
188
  uploadFailMsg = localizationService.getLocalizedText(error.response.data.errorDetails[0].localizedValue);
173
189
  }
174
190
 
175
- setFiles(current => {
191
+ setFiles((current) => {
176
192
  return current.map((localFile, index) => {
177
193
  if (localFile.props.id === file.props.id) {
178
194
  localFile.props.meta = uploadFailMsg;
@@ -194,7 +210,7 @@ export default function Attachment(props: AttachmentProps) {
194
210
  };
195
211
  };
196
212
 
197
- const onFileAdded = event => {
213
+ const onFileAdded = (event) => {
198
214
  let addedFiles = Array.from(event.target.files);
199
215
  addedFiles = allowMultiple ? addedFiles : [addedFiles[0]];
200
216
  const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || '5';
@@ -208,16 +224,18 @@ export default function Attachment(props: AttachmentProps) {
208
224
  format: f.name.split('.').pop(),
209
225
  icon: getIconFromFileType(f.type),
210
226
  onDelete: () => deleteFile(f, index),
211
- thumbnail: window.URL.createObjectURL(f)
227
+ thumbnail: window.URL.createObjectURL(f),
212
228
  };
213
229
  if (!validateMaxSize(f, maxAttachmentSize)) {
214
230
  f.props.error = true;
215
- f.props.meta = localizationService.getLocalizedText(`File is too big. Max allowed size is ${maxAttachmentSize}MB.`);
231
+ f.props.meta = localizationService.getLocalizedText(
232
+ `File is too big. Max allowed size is ${maxAttachmentSize}MB.`,
233
+ );
216
234
  } else if (!validateFileExtension(f, extensions)) {
217
235
  f.props.error = true;
218
236
  f.props.meta = `${localizationService.getLocalizedText('File has invalid extension. Allowed extensions are:')} ${extensions.replaceAll(
219
237
  '.',
220
- ''
238
+ '',
221
239
  )}`;
222
240
  }
223
241
  if (f.props.error) {
@@ -226,19 +244,19 @@ export default function Attachment(props: AttachmentProps) {
226
244
  messages: [
227
245
  {
228
246
  type: 'error',
229
- message: localizationService.getLocalizedText('Error with one or more files')
230
- }
247
+ message: localizationService.getLocalizedText('Error with one or more files'),
248
+ },
231
249
  ],
232
250
  property: fieldName,
233
251
  pageReference: pConn.getPageReference(),
234
- context: contextName
252
+ context: contextName,
235
253
  });
236
254
  }
237
255
  return f;
238
- })
256
+ }),
239
257
  ];
240
258
 
241
- const tempFilesWithError = tempFilesToBeUploaded.filter(f => f.props.error);
259
+ const tempFilesWithError = tempFilesToBeUploaded.filter((f) => f.props.error);
242
260
  if (tempFilesWithError.length > 0) {
243
261
  filesWithError.current = [...filesWithError.current, ...tempFilesWithError];
244
262
 
@@ -246,48 +264,50 @@ export default function Attachment(props: AttachmentProps) {
246
264
  allowMultiple,
247
265
  isOldAttachment,
248
266
  isMultiAttachmentInInlineEditTable,
249
- attachmentCount: attachmentCount.current
267
+ attachmentCount: attachmentCount.current,
250
268
  } as PageInstructionOptions);
251
269
  }
252
- setFiles(current => (!allowMultiple ? [...tempFilesToBeUploaded] : [...current, ...tempFilesToBeUploaded]));
270
+ setFiles((current) => (!allowMultiple ? [...tempFilesToBeUploaded] : [...current, ...tempFilesToBeUploaded]));
253
271
  setToggleUploadBegin(true);
254
272
  };
255
273
 
256
274
  const uploadFiles = useCallback(() => {
257
275
  const filesToBeUploaded = files
258
- .filter(e => {
276
+ .filter((e) => {
259
277
  const isFileUploaded = e.props && e.props.progress === 100;
260
278
  const fileHasError = e.props && e.props.error;
261
279
  const isFileUploadedInLastStep = e.responseProps && e.responseProps.ID !== 'temp';
262
280
  const isFileUploadInProgress = e.inProgress;
263
281
  return !isFileUploadInProgress && !isFileUploaded && !fileHasError && !isFileUploadedInLastStep;
264
282
  })
265
- .map(file =>
283
+ .map((file) =>
266
284
  PCore.getAttachmentUtils().uploadAttachment(
267
285
  file,
268
- ev => {
286
+ (ev) => {
269
287
  onUploadProgress(file.props.id, ev);
270
288
  },
271
- isFetchCanceled => {
289
+ (isFetchCanceled) => {
272
290
  return errorHandler(isFetchCanceled, file);
273
291
  },
274
- contextName
275
- )
292
+ contextName,
293
+ ),
276
294
  );
277
295
 
278
296
  // allow new files to be added when other files upload is still in progress
279
297
  setToggleUploadBegin(false);
280
298
  Promise.allSettled(filesToBeUploaded)
281
299
  .then((fileResponses: any) => {
282
- fileResponses = fileResponses.filter(fr => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block
300
+ fileResponses = fileResponses.filter((fr) => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block
283
301
  if (fileResponses.length > 0) {
284
- setFiles(localFiles => {
302
+ setFiles((localFiles) => {
285
303
  const tempFilesUploaded = [...localFiles];
286
- tempFilesUploaded.forEach(localFile => {
304
+ tempFilesUploaded.forEach((localFile) => {
287
305
  // if attach field has multiple files & in bw any error files are present
288
306
  // Example : files = [properFile1, errFile, errFile, properFile2]
289
307
  // indexes for delete & preview should be for files [properFile1, properFile2] which is [1,2]
290
- const index = fileResponses.findIndex(fileResponse => fileResponse.value.clientFileID === localFile.props.id);
308
+ const index = fileResponses.findIndex(
309
+ (fileResponse) => fileResponse.value.clientFileID === localFile.props.id,
310
+ );
291
311
  if (index >= 0) {
292
312
  fileResponses[index].value.thumbnail = localFile.props.thumbnail;
293
313
  localFile.inProgress = false;
@@ -297,7 +317,7 @@ export default function Attachment(props: AttachmentProps) {
297
317
  localFile.handle = fileResponses[index].value.ID;
298
318
  localFile.label = valueRef;
299
319
  localFile.responseProps = {
300
- pzInsKey: 'temp'
320
+ pzInsKey: 'temp',
301
321
  };
302
322
  }
303
323
  });
@@ -309,7 +329,7 @@ export default function Attachment(props: AttachmentProps) {
309
329
  isOldAttachment,
310
330
  isMultiAttachmentInInlineEditTable,
311
331
  attachmentCount: attachmentCount.current,
312
- insert: true
332
+ insert: true,
313
333
  } as any);
314
334
  attachmentCount.current += fileResponses.length;
315
335
 
@@ -319,7 +339,7 @@ export default function Attachment(props: AttachmentProps) {
319
339
  }
320
340
  actionSequencer.deRegisterBlockingAction(contextName).catch(() => {});
321
341
  })
322
- .catch(error => {
342
+ .catch((error) => {
323
343
  console.log(error);
324
344
  setToggleUploadBegin(false);
325
345
  });
@@ -347,7 +367,7 @@ export default function Attachment(props: AttachmentProps) {
347
367
  const transformAttachments = () => {
348
368
  const transformedFiles = [...attachments];
349
369
  let deleteIndex = -1;
350
- transformedFiles.forEach(attachment => {
370
+ transformedFiles.forEach((attachment) => {
351
371
  attachment.props.id = attachment.responseProps.ID;
352
372
  attachment.props.format = attachment.props.name.split('.').pop();
353
373
  if (attachment.props.error) {
@@ -365,25 +385,32 @@ export default function Attachment(props: AttachmentProps) {
365
385
  };
366
386
 
367
387
  useEffect(() => {
368
- const caseID = PCore.getStoreValue(`.${getMappedValue('pyID')}`, PCore.getResolvedConstantValue('caseInfo.content'), contextName);
388
+ const caseID = PCore.getStoreValue(
389
+ `.${getMappedValue('pyID')}`,
390
+ PCore.getResolvedConstantValue('caseInfo.content'),
391
+ contextName,
392
+ );
369
393
  if (displayMode !== 'DISPLAY_ONLY') {
370
394
  PCore.getPubSubUtils().subscribe(
371
395
  PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION,
372
396
  () => {
373
397
  overrideLocalState.current = true;
374
398
  },
375
- caseID
399
+ caseID,
376
400
  );
377
401
  }
378
402
 
379
403
  // When component mounts, only set local files state from redux.
380
404
  const serverFiles = transformAttachments();
381
405
  setFiles(serverFiles);
382
- filesWithError.current = serverFiles.filter(file => file.props.error);
406
+ filesWithError.current = serverFiles.filter((file) => file.props.error);
383
407
 
384
408
  return () => {
385
409
  if (displayMode !== 'DISPLAY_ONLY') {
386
- PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, caseID);
410
+ PCore.getPubSubUtils().unsubscribe(
411
+ PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION,
412
+ caseID,
413
+ );
387
414
  }
388
415
  };
389
416
  }, []);
@@ -397,25 +424,26 @@ export default function Attachment(props: AttachmentProps) {
397
424
  setFiles(serverFiles);
398
425
  } else {
399
426
  // Determine whether refresh call has overridden any error files in redux, push error files back to redux from local state to perform client side validation during assignment submit
400
- const errorFiles = attachments.filter(attachment => attachment.props.error);
427
+ const errorFiles = attachments.filter((attachment) => attachment.props.error);
401
428
  if (errorFiles.length === 0 && filesWithError.current.length > 0) {
402
429
  // Check if local file state contains error files and push those to redux
403
430
  const uniqueKey = getMappedValue('pzInsKey');
404
- const transformedErrorFiles = filesWithError.current.map(errorFile => {
431
+ const transformedErrorFiles = filesWithError.current.map((errorFile) => {
405
432
  const filename = errorFile.props.name;
406
433
  return {
407
434
  [uniqueKey]: errorFile.props.id,
408
435
  FileName: filename,
409
436
  Category: '',
410
437
  FileExtension: filename.split('.').pop() ?? filename,
411
- error: errorFile.props.error || null
438
+ error: errorFile.props.error || null,
412
439
  };
413
440
  });
414
441
  let key = '';
415
442
  let updatedAttachments: any = [];
416
443
  if (allowMultiple || isOldAttachment) {
417
444
  key = isOldAttachment ? `${valueRef}.pxResults` : valueRef;
418
- const existingAttachments = PCore.getStoreValue(`.${key}`, pConn.getPageReference(), pConn.getContextName()) || [];
445
+ const existingAttachments =
446
+ PCore.getStoreValue(`.${key}`, pConn.getPageReference(), pConn.getContextName()) || [];
419
447
  updatedAttachments = [...existingAttachments, ...transformedErrorFiles];
420
448
  } else {
421
449
  key = valueRef;
@@ -424,13 +452,13 @@ export default function Attachment(props: AttachmentProps) {
424
452
  PCore.getStateUtils().updateState(pConn.getContextName(), key, updatedAttachments, {
425
453
  pageReference: pConn.getPageReference(),
426
454
  isArrayDeepMerge: false,
427
- removePropertyFromChangedList: true
455
+ removePropertyFromChangedList: true,
428
456
  });
429
457
  }
430
458
  }
431
459
  }, [memoizedAttachments]);
432
460
 
433
- const handleClick = event => {
461
+ const handleClick = (event) => {
434
462
  setAnchorEl(event.currentTarget);
435
463
  };
436
464
 
@@ -441,21 +469,21 @@ export default function Attachment(props: AttachmentProps) {
441
469
  const content = (
442
470
  <div style={{ marginBottom: '8px' }}>
443
471
  <div className={`${disabled ? 'file-disabled' : ''} ${validatemessage === '' ? 'file-div' : 'file-div-error'}`}>
444
- <div hidden={true} id='attachment-ID'>
472
+ <div hidden={true} id="attachment-ID">
445
473
  {valueRef}
446
474
  </div>
447
475
  <label htmlFor={valueRef}>
448
476
  <input
449
477
  style={{ display: 'none' }}
450
478
  id={valueRef}
451
- name='upload-photo'
452
- type='file'
479
+ name="upload-photo"
480
+ type="file"
453
481
  multiple={allowMultiple}
454
482
  required={required}
455
483
  disabled={disabled}
456
484
  onChange={onFileAdded}
457
485
  />
458
- <Button style={{ textTransform: 'none' }} variant='outlined' color='primary' component='span'>
486
+ <Button style={{ textTransform: 'none' }} variant="outlined" color="primary" component="span">
459
487
  {allowMultiple
460
488
  ? uploadMultipleFilesLabel === 'file_upload_text_multiple'
461
489
  ? 'Choose files'
@@ -475,41 +503,55 @@ export default function Attachment(props: AttachmentProps) {
475
503
  files.length > 0 &&
476
504
  files.map((item, index) => {
477
505
  return (
478
- <div key={index} className='psdk-utility-card'>
479
- <div className='psdk-utility-card-icon'>
480
- {!item.inProgress && <img className='psdk-utility-card-svg-icon' src={srcImg} />}
506
+ <div key={index} className="psdk-utility-card">
507
+ <div className="psdk-utility-card-icon">
508
+ {!item.inProgress && <img className="psdk-utility-card-svg-icon" src={srcImg} />}
481
509
  {item.inProgress && (
482
510
  <div>
483
511
  <CircularProgress />
484
512
  </div>
485
513
  )}
486
514
  </div>
487
- <div className='psdk-utility-card-main'>
488
- <div className='psdk-utility-card-main-primary-label'>{item.props.name}</div>
489
- {item.props.meta && <div style={{ color: item.props.error ? 'red' : undefined }}>{item.props.meta}</div>}
515
+ <div className="psdk-utility-card-main">
516
+ <div className="psdk-utility-card-main-primary-label">{item.props.name}</div>
517
+ {item.props.meta && (
518
+ <div style={{ color: item.props.error ? 'red' : undefined }}>{item.props.meta}</div>
519
+ )}
490
520
  </div>
491
- <div className='psdk-utility-action'>
521
+ <div className="psdk-utility-action">
492
522
  {item.ID && (
493
- <button type='button' className='psdk-utility-button' aria-label='Delete Attachment' onClick={() => deleteFile(item, index)}>
494
- <img className='psdk-utility-card-action-svg-icon' src={deleteIcon} />
523
+ <button
524
+ type="button"
525
+ className="psdk-utility-button"
526
+ aria-label="Delete Attachment"
527
+ onClick={() => deleteFile(item, index)}
528
+ >
529
+ <img className="psdk-utility-card-action-svg-icon" src={deleteIcon} />
495
530
  </button>
496
531
  )}
497
532
  {!item.ID && (
498
533
  <div>
499
534
  <IconButton
500
- id='setting-button'
535
+ id="setting-button"
501
536
  aria-controls={open ? 'file-menu' : undefined}
502
537
  aria-expanded={open ? 'true' : undefined}
503
- aria-haspopup='true'
538
+ aria-haspopup="true"
504
539
  onClick={handleClick}
505
- size='large'
540
+ size="large"
506
541
  >
507
542
  <MoreVertIcon />
508
543
  </IconButton>
509
- <Menu style={{ marginTop: '3rem' }} id='file-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>
544
+ <Menu
545
+ style={{ marginTop: '3rem' }}
546
+ id="file-menu"
547
+ anchorEl={anchorEl}
548
+ keepMounted
549
+ open={Boolean(anchorEl)}
550
+ onClose={handleClose}
551
+ >
510
552
  <MenuItem
511
553
  style={{ fontSize: '14px' }}
512
- key='download'
554
+ key="download"
513
555
  onClick={() => {
514
556
  setAnchorEl(null);
515
557
  onFileDownload(item.responseProps ? item.responseProps : {});
@@ -517,7 +559,7 @@ export default function Attachment(props: AttachmentProps) {
517
559
  >
518
560
  Download
519
561
  </MenuItem>
520
- <MenuItem style={{ fontSize: '14px' }} key='delete' onClick={() => deleteFile(item, index)}>
562
+ <MenuItem style={{ fontSize: '14px' }} key="delete" onClick={() => deleteFile(item, index)}>
521
563
  Delete
522
564
  </MenuItem>
523
565
  </Menu>
@@ -531,10 +573,14 @@ export default function Attachment(props: AttachmentProps) {
531
573
  );
532
574
 
533
575
  return (
534
- <div className='file-upload-container'>
576
+ <div className="file-upload-container">
535
577
  <span className={`label ${required ? 'file-label' : ''}`}>{label}</span>
536
578
  {((files.length === 0 && !allowMultiple) || allowMultiple) && <section>{content}</section>}
537
- {validatemessage !== '' ? <span className='file-error'>{validatemessage}</span> : <span style={{ fontSize: '14px' }}>{helperText}</span>}
579
+ {validatemessage !== '' ? (
580
+ <span className="file-error">{validatemessage}</span>
581
+ ) : (
582
+ <span style={{ fontSize: '14px' }}>{helperText}</span>
583
+ )}
538
584
  {files && files.length > 0 && <section>{fileDisplay}</section>}
539
585
  </div>
540
586
  );