@pega/sdk 0.0.1

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 (465) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +111 -0
  3. package/SECURITY.md +10 -0
  4. package/dist/index.js +753 -0
  5. package/package.json +41 -0
  6. package/templates/angular-sdk-reference/.github/AGENTS.md +23 -0
  7. package/templates/angular-sdk-reference/.github/copilot-instructions.md +40 -0
  8. package/templates/angular-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
  9. package/templates/angular-sdk-reference/angular.json +34 -0
  10. package/templates/angular-sdk-reference/package.json +31 -0
  11. package/templates/angular-sdk-reference/sdk-config.json +26 -0
  12. package/templates/angular-sdk-reference/src/app/app.component.ts +54 -0
  13. package/templates/angular-sdk-reference/src/index.html +12 -0
  14. package/templates/angular-sdk-reference/src/main.ts +4 -0
  15. package/templates/angular-sdk-reference/src/styles.css +19 -0
  16. package/templates/angular-sdk-reference/tsconfig.json +32 -0
  17. package/templates/react-native-sdk-reference/.github/AGENTS.md +23 -0
  18. package/templates/react-native-sdk-reference/.github/copilot-instructions.md +40 -0
  19. package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
  20. package/templates/react-native-sdk-reference/App.tsx +51 -0
  21. package/templates/react-native-sdk-reference/app.json +11 -0
  22. package/templates/react-native-sdk-reference/package.json +22 -0
  23. package/templates/react-native-sdk-reference/sdk-config.json +14 -0
  24. package/templates/react-native-sdk-reference/tsconfig.json +12 -0
  25. package/templates/react-sdk-reference/.github/copilot-instructions.md +185 -0
  26. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +40 -0
  27. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +77 -0
  28. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +73 -0
  29. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +94 -0
  30. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +89 -0
  31. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +21 -0
  32. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +111 -0
  33. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +110 -0
  34. package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +48 -0
  35. package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +81 -0
  36. package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +524 -0
  37. package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +41 -0
  38. package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +49 -0
  39. package/templates/react-sdk-reference/.github/skills/component-contracts.md +140 -0
  40. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +135 -0
  41. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +149 -0
  42. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +154 -0
  43. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +144 -0
  44. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +131 -0
  45. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +111 -0
  46. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +115 -0
  47. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +149 -0
  48. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +83 -0
  49. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +206 -0
  50. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +135 -0
  51. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +249 -0
  52. package/templates/react-sdk-reference/.github/skills/field-components.md +262 -0
  53. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +112 -0
  54. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +203 -0
  55. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +158 -0
  56. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +106 -0
  57. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +99 -0
  58. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +103 -0
  59. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +98 -0
  60. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +114 -0
  61. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +107 -0
  62. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +90 -0
  63. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +87 -0
  64. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +136 -0
  65. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +164 -0
  66. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +164 -0
  67. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +92 -0
  68. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +110 -0
  69. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +146 -0
  70. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +138 -0
  71. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +124 -0
  72. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +216 -0
  73. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +148 -0
  74. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +96 -0
  75. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +101 -0
  76. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +104 -0
  77. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +88 -0
  78. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +85 -0
  79. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +180 -0
  80. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +68 -0
  81. package/templates/react-sdk-reference/.github/skills/swap-design-system.md +105 -0
  82. package/templates/react-sdk-reference/.github/skills/template-components.md +285 -0
  83. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +144 -0
  84. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +122 -0
  85. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +83 -0
  86. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +100 -0
  87. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +131 -0
  88. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +126 -0
  89. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +107 -0
  90. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +120 -0
  91. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +102 -0
  92. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +110 -0
  93. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +88 -0
  94. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +95 -0
  95. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +78 -0
  96. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +78 -0
  97. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +101 -0
  98. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +109 -0
  99. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +113 -0
  100. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +104 -0
  101. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +85 -0
  102. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +68 -0
  103. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +139 -0
  104. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +80 -0
  105. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +141 -0
  106. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +109 -0
  107. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +124 -0
  108. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +135 -0
  109. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +127 -0
  110. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +103 -0
  111. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +79 -0
  112. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +131 -0
  113. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +150 -0
  114. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +135 -0
  115. package/templates/react-sdk-reference/.github/skills/widget-components.md +234 -0
  116. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +82 -0
  117. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +146 -0
  118. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +107 -0
  119. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +200 -0
  120. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +99 -0
  121. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +114 -0
  122. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +167 -0
  123. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +190 -0
  124. package/templates/react-sdk-reference/AGENTS.md +59 -0
  125. package/templates/react-sdk-reference/assets/icons/analytics-good-solid.svg +3 -0
  126. package/templates/react-sdk-reference/assets/icons/cart-solid.svg +3 -0
  127. package/templates/react-sdk-reference/assets/icons/headset.svg +3 -0
  128. package/templates/react-sdk-reference/assets/icons/mobile-phone-solid.svg +3 -0
  129. package/templates/react-sdk-reference/assets/icons/money-solid.svg +3 -0
  130. package/templates/react-sdk-reference/assets/icons/multi-device-solid.svg +3 -0
  131. package/templates/react-sdk-reference/index.html +36 -0
  132. package/templates/react-sdk-reference/package.json +52 -0
  133. package/templates/react-sdk-reference/sdk-config.json +26 -0
  134. package/templates/react-sdk-reference/src/AppSelector.tsx +18 -0
  135. package/templates/react-sdk-reference/src/FallbackComponent.tsx +40 -0
  136. package/templates/react-sdk-reference/src/MashupApp.styles.ts +105 -0
  137. package/templates/react-sdk-reference/src/MashupApp.tsx +254 -0
  138. package/templates/react-sdk-reference/src/PortalApp.tsx +175 -0
  139. package/templates/react-sdk-reference/src/components/component-map.ts +255 -0
  140. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
  141. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +91 -0
  142. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/index.tsx +1 -0
  143. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.css +39 -0
  144. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +53 -0
  145. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/index.tsx +1 -0
  146. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +16 -0
  147. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +270 -0
  148. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/index.tsx +1 -0
  149. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +164 -0
  150. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/index.tsx +1 -0
  151. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +79 -0
  152. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/index.tsx +1 -0
  153. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +58 -0
  154. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/index.tsx +1 -0
  155. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +84 -0
  156. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/index.tsx +1 -0
  157. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +220 -0
  158. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/index.tsx +1 -0
  159. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +33 -0
  160. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/index.tsx +1 -0
  161. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +201 -0
  162. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/index.tsx +1 -0
  163. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.css +33 -0
  164. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +48 -0
  165. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/index.tsx +1 -0
  166. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +218 -0
  167. package/templates/react-sdk-reference/src/components/field/AutoComplete/config-ext.json +10 -0
  168. package/templates/react-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
  169. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.css +24 -0
  170. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +148 -0
  171. package/templates/react-sdk-reference/src/components/field/CancelAlert/index.tsx +1 -0
  172. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +263 -0
  173. package/templates/react-sdk-reference/src/components/field/Checkbox/config-ext.json +9 -0
  174. package/templates/react-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
  175. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +111 -0
  176. package/templates/react-sdk-reference/src/components/field/Currency/config-ext.json +9 -0
  177. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +67 -0
  178. package/templates/react-sdk-reference/src/components/field/Currency/index.tsx +1 -0
  179. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +94 -0
  180. package/templates/react-sdk-reference/src/components/field/Date/config-ext.json +9 -0
  181. package/templates/react-sdk-reference/src/components/field/Date/index.tsx +1 -0
  182. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +101 -0
  183. package/templates/react-sdk-reference/src/components/field/DateTime/config-ext.json +8 -0
  184. package/templates/react-sdk-reference/src/components/field/DateTime/index.tsx +1 -0
  185. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +122 -0
  186. package/templates/react-sdk-reference/src/components/field/Decimal/config-ext.json +8 -0
  187. package/templates/react-sdk-reference/src/components/field/Decimal/index.tsx +1 -0
  188. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +238 -0
  189. package/templates/react-sdk-reference/src/components/field/Dropdown/config-ext.json +8 -0
  190. package/templates/react-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
  191. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +96 -0
  192. package/templates/react-sdk-reference/src/components/field/Email/config-ext.json +8 -0
  193. package/templates/react-sdk-reference/src/components/field/Email/index.tsx +1 -0
  194. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +41 -0
  195. package/templates/react-sdk-reference/src/components/field/Group/config-ext.json +7 -0
  196. package/templates/react-sdk-reference/src/components/field/Group/index.tsx +1 -0
  197. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +100 -0
  198. package/templates/react-sdk-reference/src/components/field/Integer/config-ext.json +8 -0
  199. package/templates/react-sdk-reference/src/components/field/Integer/index.tsx +1 -0
  200. package/templates/react-sdk-reference/src/components/field/Location/Location.css +4 -0
  201. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +258 -0
  202. package/templates/react-sdk-reference/src/components/field/Location/config-ext.json +8 -0
  203. package/templates/react-sdk-reference/src/components/field/Location/index.tsx +1 -0
  204. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +238 -0
  205. package/templates/react-sdk-reference/src/components/field/Multiselect/index.tsx +1 -0
  206. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +230 -0
  207. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +235 -0
  208. package/templates/react-sdk-reference/src/components/field/ObjectReference/index.tsx +1 -0
  209. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +111 -0
  210. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +112 -0
  211. package/templates/react-sdk-reference/src/components/field/Percentage/config-ext.json +8 -0
  212. package/templates/react-sdk-reference/src/components/field/Percentage/index.tsx +1 -0
  213. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +113 -0
  214. package/templates/react-sdk-reference/src/components/field/Phone/config-ext.json +8 -0
  215. package/templates/react-sdk-reference/src/components/field/Phone/index.tsx +1 -0
  216. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +158 -0
  217. package/templates/react-sdk-reference/src/components/field/RadioButtons/config-ext.json +8 -0
  218. package/templates/react-sdk-reference/src/components/field/RadioButtons/index.tsx +1 -0
  219. package/templates/react-sdk-reference/src/components/field/RichText/RichText.css +79 -0
  220. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +98 -0
  221. package/templates/react-sdk-reference/src/components/field/RichText/config-ext.json +10 -0
  222. package/templates/react-sdk-reference/src/components/field/RichText/index.tsx +1 -0
  223. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +63 -0
  224. package/templates/react-sdk-reference/src/components/field/ScalarList/config-ext.json +7 -0
  225. package/templates/react-sdk-reference/src/components/field/ScalarList/index.tsx +1 -0
  226. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +189 -0
  227. package/templates/react-sdk-reference/src/components/field/SelectableCard/index.tsx +1 -0
  228. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +223 -0
  229. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +208 -0
  230. package/templates/react-sdk-reference/src/components/field/SemanticLink/config-ext.json +7 -0
  231. package/templates/react-sdk-reference/src/components/field/SemanticLink/index.tsx +1 -0
  232. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +49 -0
  233. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +94 -0
  234. package/templates/react-sdk-reference/src/components/field/TextArea/config-ext.json +8 -0
  235. package/templates/react-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
  236. package/templates/react-sdk-reference/src/components/field/TextContent/TextContent.tsx +46 -0
  237. package/templates/react-sdk-reference/src/components/field/TextContent/config-ext.json +7 -0
  238. package/templates/react-sdk-reference/src/components/field/TextContent/index.tsx +1 -0
  239. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +92 -0
  240. package/templates/react-sdk-reference/src/components/field/TextInput/config-ext.json +8 -0
  241. package/templates/react-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
  242. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +79 -0
  243. package/templates/react-sdk-reference/src/components/field/Time/config-ext.json +8 -0
  244. package/templates/react-sdk-reference/src/components/field/Time/index.tsx +1 -0
  245. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +89 -0
  246. package/templates/react-sdk-reference/src/components/field/URL/config-ext.json +8 -0
  247. package/templates/react-sdk-reference/src/components/field/URL/index.tsx +1 -0
  248. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +198 -0
  249. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +13 -0
  250. package/templates/react-sdk-reference/src/components/field/UserReference/config-ext.json +7 -0
  251. package/templates/react-sdk-reference/src/components/field/UserReference/index.tsx +1 -0
  252. package/templates/react-sdk-reference/src/components/helpers/attachmentShared.ts +6 -0
  253. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +99 -0
  254. package/templates/react-sdk-reference/src/components/helpers/common-utils.ts +26 -0
  255. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +20 -0
  256. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +76 -0
  257. package/templates/react-sdk-reference/src/components/helpers/event-utils.ts +20 -0
  258. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +63 -0
  259. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +21 -0
  260. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +77 -0
  261. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +913 -0
  262. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +71 -0
  263. package/templates/react-sdk-reference/src/components/helpers/formatters/common.ts +14 -0
  264. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +130 -0
  265. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +38 -0
  266. package/templates/react-sdk-reference/src/components/helpers/object-utils.ts +10 -0
  267. package/templates/react-sdk-reference/src/components/helpers/reactContextHelpers.ts +3 -0
  268. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +452 -0
  269. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +43 -0
  270. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +76 -0
  271. package/templates/react-sdk-reference/src/components/helpers/utils.ts +349 -0
  272. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +14 -0
  273. package/templates/react-sdk-reference/src/components/index.ts +8 -0
  274. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +86 -0
  275. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +52 -0
  276. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +329 -0
  277. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +37 -0
  278. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/index.tsx +1 -0
  279. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +29 -0
  280. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +11 -0
  281. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/config-ext.json +9 -0
  282. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/index.tsx +1 -0
  283. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.css +35 -0
  284. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +259 -0
  285. package/templates/react-sdk-reference/src/components/template/AppShell/index.tsx +1 -0
  286. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +54 -0
  287. package/templates/react-sdk-reference/src/components/template/BannerPage/config-ext.json +9 -0
  288. package/templates/react-sdk-reference/src/components/template/BannerPage/index.tsx +1 -0
  289. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +79 -0
  290. package/templates/react-sdk-reference/src/components/template/CaseSummary/config-ext.json +8 -0
  291. package/templates/react-sdk-reference/src/components/template/CaseSummary/index.tsx +1 -0
  292. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +261 -0
  293. package/templates/react-sdk-reference/src/components/template/CaseView/config-ext.json +8 -0
  294. package/templates/react-sdk-reference/src/components/template/CaseView/index.tsx +1 -0
  295. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +117 -0
  296. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/index.tsx +1 -0
  297. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +102 -0
  298. package/templates/react-sdk-reference/src/components/template/Confirmation/config-ext.json +11 -0
  299. package/templates/react-sdk-reference/src/components/template/Confirmation/index.tsx +1 -0
  300. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +590 -0
  301. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +10 -0
  302. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +213 -0
  303. package/templates/react-sdk-reference/src/components/template/DataReference/config-ext.json +8 -0
  304. package/templates/react-sdk-reference/src/components/template/DataReference/index.tsx +1 -0
  305. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +90 -0
  306. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.css +34 -0
  307. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +74 -0
  308. package/templates/react-sdk-reference/src/components/template/DefaultForm/config-ext.json +8 -0
  309. package/templates/react-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
  310. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +26 -0
  311. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +108 -0
  312. package/templates/react-sdk-reference/src/components/template/DefaultPage/index.tsx +1 -0
  313. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +74 -0
  314. package/templates/react-sdk-reference/src/components/template/Details/Details/index.tsx +1 -0
  315. package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/DetailsSubTabs.tsx +58 -0
  316. package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/config-ext.json +8 -0
  317. package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/index.tsx +1 -0
  318. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +79 -0
  319. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/config-ext.json +8 -0
  320. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/index.tsx +1 -0
  321. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +79 -0
  322. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/config-ext.json +8 -0
  323. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/index.tsx +1 -0
  324. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +79 -0
  325. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/config.json +36 -0
  326. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/index.tsx +1 -0
  327. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +116 -0
  328. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/index.tsx +1 -0
  329. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +58 -0
  330. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +293 -0
  331. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/index.tsx +1 -0
  332. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +72 -0
  333. package/templates/react-sdk-reference/src/components/template/InlineDashboard/index.tsx +1 -0
  334. package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/InlineDashboardPage.tsx +39 -0
  335. package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/config-ext.json +9 -0
  336. package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/index.tsx +1 -0
  337. package/templates/react-sdk-reference/src/components/template/ListPage/ListPage.tsx +16 -0
  338. package/templates/react-sdk-reference/src/components/template/ListPage/config-ext.json +7 -0
  339. package/templates/react-sdk-reference/src/components/template/ListPage/index.tsx +1 -0
  340. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +220 -0
  341. package/templates/react-sdk-reference/src/components/template/ListView/ListView.css +10 -0
  342. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +1391 -0
  343. package/templates/react-sdk-reference/src/components/template/ListView/config-ext.json +8 -0
  344. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +93 -0
  345. package/templates/react-sdk-reference/src/components/template/ListView/index.tsx +1 -0
  346. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +781 -0
  347. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +52 -0
  348. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/index.tsx +1 -0
  349. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.css +19 -0
  350. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +37 -0
  351. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/index.tsx +1 -0
  352. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +85 -0
  353. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/config-ext.json +8 -0
  354. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/index.tsx +1 -0
  355. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.css +19 -0
  356. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +22 -0
  357. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/config-ext.json +8 -0
  358. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/index.tsx +1 -0
  359. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +28 -0
  360. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/config-ext.json +8 -0
  361. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/index.tsx +1 -0
  362. package/templates/react-sdk-reference/src/components/template/ObjectPage/index.tsx +1 -0
  363. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +32 -0
  364. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/config-ext.json +8 -0
  365. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/index.tsx +1 -0
  366. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/OneColumnPage.tsx +17 -0
  367. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/config-ext.json +8 -0
  368. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/index.tsx +1 -0
  369. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +11 -0
  370. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/config-ext.json +8 -0
  371. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/index.tsx +1 -0
  372. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.css +7 -0
  373. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +204 -0
  374. package/templates/react-sdk-reference/src/components/template/PromotedFilters/index.tsx +1 -0
  375. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +153 -0
  376. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/index.tsx +1 -0
  377. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +126 -0
  378. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/config-ext.json +7 -0
  379. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/index.tsx +1 -0
  380. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +985 -0
  381. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/index.tsx +1 -0
  382. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +122 -0
  383. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/index.tsx +1 -0
  384. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +207 -0
  385. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/index.tsx +1 -0
  386. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +71 -0
  387. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/index.tsx +1 -0
  388. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +46 -0
  389. package/templates/react-sdk-reference/src/components/template/SubTabs/config-ext.json +8 -0
  390. package/templates/react-sdk-reference/src/components/template/SubTabs/index.tsx +1 -0
  391. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +185 -0
  392. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.css +12 -0
  393. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +54 -0
  394. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/config-ext.json +8 -0
  395. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/index.tsx +1 -0
  396. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/TwoColumnPage.tsx +17 -0
  397. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/config-ext.json +8 -0
  398. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/index.tsx +1 -0
  399. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.css +12 -0
  400. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +54 -0
  401. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/config-ext.json +8 -0
  402. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/index.tsx +1 -0
  403. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.css +19 -0
  404. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +37 -0
  405. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/index.tsx +1 -0
  406. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +96 -0
  407. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/config-ext.json +8 -0
  408. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/index.tsx +1 -0
  409. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.css +19 -0
  410. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +22 -0
  411. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/config-ext.json +8 -0
  412. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/index.tsx +1 -0
  413. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +28 -0
  414. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/config-ext.json +8 -0
  415. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/index.tsx +1 -0
  416. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.css +11 -0
  417. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +160 -0
  418. package/templates/react-sdk-reference/src/components/template/WssNavBar/index.tsx +1 -0
  419. package/templates/react-sdk-reference/src/components/template/utils.tsx +58 -0
  420. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +60 -0
  421. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/config-ext.json +8 -0
  422. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/index.tsx +1 -0
  423. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.css +95 -0
  424. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +541 -0
  425. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.types.ts +96 -0
  426. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +316 -0
  427. package/templates/react-sdk-reference/src/components/widget/Attachment/index.tsx +1 -0
  428. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +171 -0
  429. package/templates/react-sdk-reference/src/components/widget/CaseHistory/config-ext.json +8 -0
  430. package/templates/react-sdk-reference/src/components/widget/CaseHistory/index.tsx +1 -0
  431. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.css +13 -0
  432. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +32 -0
  433. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/index.tsx +1 -0
  434. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.css +118 -0
  435. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +653 -0
  436. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/config-ext.json +8 -0
  437. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/index.tsx +1 -0
  438. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +43 -0
  439. package/templates/react-sdk-reference/src/components/widget/Followers/config-ext.json +8 -0
  440. package/templates/react-sdk-reference/src/components/widget/Followers/index.tsx +1 -0
  441. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +88 -0
  442. package/templates/react-sdk-reference/src/components/widget/QuickCreate/config-ext.json +9 -0
  443. package/templates/react-sdk-reference/src/components/widget/QuickCreate/index.tsx +1 -0
  444. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.css +76 -0
  445. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +89 -0
  446. package/templates/react-sdk-reference/src/components/widget/SummaryItem/index.tsx +1 -0
  447. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +23 -0
  448. package/templates/react-sdk-reference/src/components/widget/SummaryList/index.tsx +1 -0
  449. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.css +81 -0
  450. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +507 -0
  451. package/templates/react-sdk-reference/src/components/widget/ToDo/config-ext.json +8 -0
  452. package/templates/react-sdk-reference/src/components/widget/ToDo/index.tsx +1 -0
  453. package/templates/react-sdk-reference/src/main.tsx +13 -0
  454. package/templates/react-sdk-reference/src/mui-theme-augmentation.d.ts +6 -0
  455. package/templates/react-sdk-reference/tsconfig.json +24 -0
  456. package/templates/react-sdk-reference/vite.config.ts +65 -0
  457. package/templates/wc-sdk-reference/.github/AGENTS.md +23 -0
  458. package/templates/wc-sdk-reference/.github/copilot-instructions.md +40 -0
  459. package/templates/wc-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
  460. package/templates/wc-sdk-reference/index.html +21 -0
  461. package/templates/wc-sdk-reference/package.json +19 -0
  462. package/templates/wc-sdk-reference/sdk-config.json +19 -0
  463. package/templates/wc-sdk-reference/src/index.ts +98 -0
  464. package/templates/wc-sdk-reference/tsconfig.json +21 -0
  465. package/templates/wc-sdk-reference/vite.config.ts +8 -0
@@ -0,0 +1,140 @@
1
+ # Skill: Component Contracts Reference
2
+
3
+ Quick-reference lookup of all registered component names and their prop contracts. Use this when you need to know what props a specific component receives from the Pega platform.
4
+
5
+ ---
6
+
7
+ ## Field Components
8
+
9
+ All extend `PConnFieldProps` from `@pega/sdk-react`.
10
+
11
+ | Registry Name | File | Additional Props |
12
+ |---------------|------|-----------------|
13
+ | `TextInput` | `field/TextInput/TextInput.tsx` | `fieldMetadata?: any` |
14
+ | `TextArea` | `field/TextArea/` | `fieldMetadata?: any` |
15
+ | `Dropdown` | `field/Dropdown/` | `datasource?, listType?` |
16
+ | `Checkbox` | `field/Checkbox/` | `value: boolean` (not string) |
17
+ | `RadioButtons` | `field/RadioButtons/` | `datasource?, listType?` |
18
+ | `Date` | `field/Date/` | — |
19
+ | `DateTime` | `field/DateTime/` | — |
20
+ | `Time` | `field/Time/` | — |
21
+ | `Currency` | `field/Currency/` | `currencyISOCode?, formatterType?` |
22
+ | `Decimal` | `field/Decimal/` | `decimalPrecision?` |
23
+ | `Integer` | `field/Integer/` | — |
24
+ | `Percentage` | `field/Percentage/` | — |
25
+ | `Email` | `field/Email/Email.tsx` | — |
26
+ | `Phone` | `field/Phone/Phone.tsx` | `datasource?` (country codes) |
27
+ | `URL` | `field/URL/` | — |
28
+ | `AutoComplete` | `field/AutoComplete/` | `datasource?, listType?, columns?` |
29
+ | `Multiselect` | `field/Multiselect/Multiselect.tsx` | `datasource?, listType?` |
30
+ | `RichText` | `field/RichText/` | — |
31
+ | `ScalarList` | `field/ScalarList/` | `datasource?` |
32
+ | `SelectableCard` | `field/SelectableCard/` | `datasource?` |
33
+ | `Group` | `field/Group/` | — |
34
+ | `Location` | `field/Location/` | — |
35
+ | `ObjectReference` | `field/ObjectReference/` | `value: object` |
36
+ | `SemanticLink` | `field/SemanticLink/` | `text?, displayAs?` |
37
+ | `UserReference` | `field/UserReference/` | `showAsFormattedText?` |
38
+ | `CancelAlert` | `field/CancelAlert/` | — |
39
+ | `TextContent` | `field/TextContent/` | `content?` |
40
+
41
+ ---
42
+
43
+ ## Template Components
44
+
45
+ All extend `PConnProps`. Most receive React `children` or use `getPConnect().getChildren()`.
46
+
47
+ | Registry Name | File | Key Props |
48
+ |---------------|------|-----------|
49
+ | `OneColumn` | `template/OneColumn/OneColumn.tsx` | `children` |
50
+ | `OneColumnPage` | `template/OneColumn/OneColumnPage.tsx` | `children` |
51
+ | `OneColumnTab` | `template/OneColumn/OneColumnTab.tsx` | `children` |
52
+ | `TwoColumn` | `template/TwoColumn/TwoColumn.tsx` | `children, templateCol?` |
53
+ | `TwoColumnPage` | `template/TwoColumn/TwoColumnPage.tsx` | `children` |
54
+ | `TwoColumnTab` | `template/TwoColumn/TwoColumnTab.tsx` | `children` |
55
+ | `NarrowWide` | `template/NarrowWide/NarrowWide.tsx` | `children, templateCol?` |
56
+ | `WideNarrow` | `template/WideNarrow/WideNarrow.tsx` | `children, templateCol?` |
57
+ | `Details` | `template/Details/Details.tsx` | `children` |
58
+ | `DefaultForm` | `template/DefaultForm/` | PConnect children |
59
+ | `DefaultPage` | `template/DefaultPage/` | PConnect children |
60
+ | `CaseView` | `template/CaseView/` | PConnect children, `header?, subheader?` |
61
+ | `CaseSummary` | `template/CaseSummary/` | PConnect children |
62
+ | `Confirmation` | `template/Confirmation/` | `label?` |
63
+ | `SimpleTable` | `template/SimpleTable/SimpleTable.tsx` | `datasource?, fields?, label?` |
64
+ | `ListView` | `template/ListView/` | `datasource?, fields?` |
65
+ | `SubTabs` | `template/SubTabs/` | PConnect children |
66
+ | `AppShell` | `template/AppShell/AppShell.tsx` | PConnect children |
67
+ | `DataReference` | `template/DataReference/` | PConnect children |
68
+ | `ListPage` | `template/ListPage/ListPage.tsx` | PConnect children |
69
+ | `InlineDashboard` | `template/InlineDashboard/` | PConnect children |
70
+ | `FieldGroupTemplate` | `template/FieldGroupTemplate/` | PConnect children |
71
+
72
+ ---
73
+
74
+ ## Widget Components
75
+
76
+ All extend `PConnProps`. Fetch their own data.
77
+
78
+ | Registry Name | File | Key Props |
79
+ |---------------|------|-----------|
80
+ | `Todo` | `widget/ToDo/` | `datasource?, headerText?, context?` |
81
+ | `Attachment` | `widget/Attachment/` | `value, allowMultiple?, extensions?` |
82
+ | `CaseHistory` | `widget/CaseHistory/` | `datasource?` |
83
+ | `FileUtility` | `widget/FileUtility/FileUtility.tsx` | `datasource?` |
84
+ | `Followers` | `widget/Followers/` | — |
85
+ | `AppAnnouncement` | `widget/AppAnnouncement/` | `datasource?, headerText?` |
86
+ | `QuickCreate` | `widget/QuickCreate/` | — |
87
+ | `SummaryItem` | `widget/SummaryItem/` | `label?, value?, actions?` |
88
+ | `SummaryList` | `widget/SummaryList/` | `datasource?` |
89
+
90
+ ---
91
+
92
+ ## Design System Extension Components
93
+
94
+ | Registry Name | File | Key Props |
95
+ |---------------|------|-----------|
96
+ | `FieldValueList` | `designSystemExtension/FieldValueList/` | `name?, value?, variant?` |
97
+ | `AlertBanner` | `designSystemExtension/AlertBanner/` | `variant, heading?, messages, onClose?` |
98
+ | `Banner` | `designSystemExtension/Banner/` | `variant?, text?` |
99
+ | `CaseSummaryFields` | `designSystemExtension/CaseSummaryFields/` | PConnect-based |
100
+ | `DetailsFields` | `designSystemExtension/DetailsFields/` | PConnect-based |
101
+ | `FieldGroup` | `designSystemExtension/FieldGroup/` | PConnect-based |
102
+ | `FieldGroupList` | `designSystemExtension/FieldGroupList/` | PConnect-based |
103
+ | `Operator` | `designSystemExtension/Operator/` | `label?, name?, id?` |
104
+ | `Pulse` | `designSystemExtension/Pulse/` | PConnect-based |
105
+ | `RichTextEditor` | `designSystemExtension/RichTextEditor/` | extends `PConnFieldProps` |
106
+ | `WssQuickCreate` | `designSystemExtension/WssQuickCreate/` | — |
107
+
108
+ ---
109
+
110
+ ## Infrastructure (from `sdkComponents` — do NOT replace)
111
+
112
+ | Registry Name | Source |
113
+ |---------------|--------|
114
+ | `RootContainer` | `@pega/sdk-react` |
115
+ | `ViewContainer` | `@pega/sdk-react` |
116
+ | `FlowContainer` | `@pega/sdk-react` |
117
+ | `Reference` | `@pega/sdk-react` |
118
+ | `View` | `@pega/sdk-react` |
119
+ | `Region` | `@pega/sdk-react` |
120
+ | `CaseView` (infra) | `@pega/sdk-react` |
121
+ | `Assignment` | `@pega/sdk-react` |
122
+ | `AssignmentCard` | `@pega/sdk-react` |
123
+ | `ActionButtons` | `@pega/sdk-react` |
124
+ | `CaseSummary` (infra) | `@pega/sdk-react` |
125
+ | `ErrorBoundary` | `@pega/sdk-react` |
126
+ | `MultiStep` | `@pega/sdk-react` |
127
+
128
+ ---
129
+
130
+ ## Infra (sample-local, replaceable but exercise caution)
131
+
132
+ | Registry Name | File |
133
+ |---------------|------|
134
+ | `ActionButtons` | `infra/ActionButtons/` |
135
+ | `DeferLoad` | `infra/DeferLoad/` |
136
+ | `NavBar` | `infra/NavBar/` |
137
+ | `Stages` | `infra/Stages/` |
138
+ | `DashboardFilter` | `infra/DashboardFilter/` |
139
+ | `VerticalTabs` | `infra/VerticalTabs/VerticalTabs.tsx` |
140
+ | `LeftAlignVerticalTabs` | `infra/VerticalTabs/LeftAlignVerticalTabs.tsx` |
@@ -0,0 +1,135 @@
1
+ # Skill: AlertBanner
2
+
3
+ Alert/notification banner that displays one or more messages with a severity variant and an optional dismiss button.
4
+
5
+ > **Prerequisite skill:** [`design-system-extension.md`](../design-system-extension.md) — covers architecture, props interface, styling patterns, and registration patterns common to ALL DSE components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a visually-styled alert box tied to a Pega `variant` value (urgent, warning, success, info). When multiple messages are present, it shows a count badge in the title and lists items in a `<ul>`. A single message is rendered inline. The component optionally shows a close/dismiss button.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Pega Name:** `AlertBanner`
16
+ - **Registration key:** `AlertBanner` (in `component-map.ts`)
17
+ - **Does NOT use `getPConnect`** — receives all data as direct props
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Required | Description |
22
+ |------|------|----------|-------------|
23
+ | `id` | `string` | Yes | DOM id for the root wrapper element |
24
+ | `variant` | `string` | Yes | Alert variant: `'urgent'`, `'warning'`, `'success'`, `'info'` |
25
+ | `messages` | `Array<string \| { label?: string; description?: string }>` | Yes | One or more messages (string or structured object) |
26
+ | `onDismiss` | `function` (optional) | No | Dismiss/close handler; if provided, show a close button |
27
+
28
+ ## Behavioral Contract
29
+
30
+ 1. **Variant mapping:** Map the Pega `variant` string to a UI severity level and display label:
31
+ - `'urgent'` → severity `error`, label `'Error'`
32
+ - `'warning'` → severity `warning`, label `'Warning'`
33
+ - `'success'` → severity `success`, label `'Success'`
34
+ - `'info'` → severity `info`, label `'Info'`
35
+ - Unknown/missing variant → fall back to `info`
36
+ 2. **Single message:** Render `renderMessage(messages[0])` inline (no title, no list).
37
+ 3. **Multiple messages (`messages.length > 1`):**
38
+ - Render a title containing the display label (e.g., "Error") plus a circular count badge showing `messages.length`.
39
+ - Render messages as a `<ul>` with one `<li>` per message.
40
+ 4. **`renderMessage(message)` logic:**
41
+ - If `message` is an object with a truthy `label`, render `<strong>{label}</strong> {description}`.
42
+ - If `message` is an object without a label, render `description` only.
43
+ - If `message` is a string with no colon (`:`), render it as plain text.
44
+ - If `message` is a string containing a colon, bold everything up to and including the colon, then render the rest as plain text.
45
+ 5. **Dismiss button:** Only render the close button if `onDismiss` is provided.
46
+ 6. **Root wrapper:** Wrap the alert in a `<div id={id}>`.
47
+
48
+ ## Visual Specifications
49
+
50
+ Derived from `AlertBanner.css` and MUI Alert usage:
51
+
52
+ ### Alert Container
53
+
54
+ | Property | Value |
55
+ |----------|-------|
56
+ | Variant | Outlined (border visible) |
57
+ | Border color | Driven by severity (error → red, warning → orange, success → green, info → blue) |
58
+
59
+ ### Title Row (multiple messages only)
60
+
61
+ | Property | Value |
62
+ |----------|-------|
63
+ | Font weight | 700 |
64
+ | Font size | 1rem |
65
+ | Layout | `display: flex; align-items: center; gap: 0.25rem` |
66
+
67
+ ### Count Badge
68
+
69
+ | Property | Value |
70
+ |----------|-------|
71
+ | Layout | `display: inline-flex; align-items: center; justify-content: center` |
72
+ | Min width | 1rem |
73
+ | Height | 1rem |
74
+ | Padding | `0 0.2rem` |
75
+ | Border radius | 999px (fully rounded / pill) |
76
+ | Font size | 0.6rem |
77
+ | Font weight | 700 |
78
+ | `urgent` background | `var(--app-error-dark-color)` |
79
+ | `warning` background | `var(--app-warning-color-dark)` |
80
+ | `success` background | `var(--stepper-completed-bg-color)` |
81
+ | `info` background | `var(--link-button-color)` |
82
+ | Badge text color | `#fff` (all variants) |
83
+
84
+ ### Message List
85
+
86
+ | Property | Value |
87
+ |----------|-------|
88
+ | Margin | 0 |
89
+ | Padding left | 1.25rem |
90
+
91
+ **CSS-only implementation notes:**
92
+ - Wrap the entire component in a container `<div>` with `role="alert"`.
93
+ - Use CSS custom properties (`--app-error-dark-color`, etc.) for badge colors.
94
+ - For the outlined alert box: `border: 1px solid currentColor; border-radius: 4px; padding: 0.75rem 1rem`.
95
+ - Severity colors (for border and icon): error `#d32f2f`, warning `#ed6c02`, success `#2e7d32`, info `#0288d1`.
96
+ - Badge: `display: inline-flex; align-items: center; justify-content: center; min-width: 1rem; height: 1rem; padding: 0 0.2rem; border-radius: 999px; font-size: 0.6rem; font-weight: 700; color: #fff`.
97
+ - Left accent icon: use an SVG or Unicode symbol matching the severity (⚠, ✓, ℹ, ✕).
98
+ - Close button (if `onDismiss`): absolutely positioned top-right, `background: none; border: none; cursor: pointer; font-size: 1.25rem`.
99
+ - Message list: `margin: 0; padding-left: 1.25rem; list-style: disc`.
100
+
101
+ ## Edge Cases & Special Logic
102
+
103
+ - If `variant` is not one of the four known values, default to `info` severity.
104
+ - If `messages` is an empty array, render nothing (or render the alert shell with no content).
105
+ - If `message.label` is falsy but `message.description` is set, render description without `<strong>`.
106
+ - If a string message has no colon, render it entirely as plain text (no bold).
107
+ - The colon-split only applies to the **first** colon in the string.
108
+
109
+ ## Dependencies
110
+
111
+ - No Pega SDK imports required (no `getPConnect`)
112
+ - No helper utilities required
113
+
114
+ ## Design System Mapping
115
+
116
+ **UI control type:** Alert / Notification banner with severity levels.
117
+
118
+ Listed design systems are examples only.
119
+
120
+ | Design System | Recommended Component |
121
+ |---|---|
122
+ | Default (CSS only) | `<div role="alert">` with severity border + inline close button |
123
+ | MUI | `<Alert variant='outlined' severity={severity} onClose={onDismiss}><AlertTitle>` |
124
+ | Ant Design | `<Alert type={type} message={title} description={…} closable banner />` |
125
+ | Chakra UI | `<Alert status={status}><AlertIcon /><AlertTitle /><AlertDescription /><CloseButton />` |
126
+ | Shadcn/ui | Custom `<Alert>` with `variant` prop |
127
+
128
+ When implementing in a specific design system, map the following:
129
+ - `variant='urgent'` → `severity/type/status='error'` or `'danger'`
130
+ - `variant='warning'` → `severity/type/status='warning'`
131
+ - `variant='success'` → `severity/type/status='success'`
132
+ - `variant='info'` → `severity/type/status='info'`
133
+ - `onDismiss` → `onClose` / `closable` / close button prop
134
+ - Multiple messages → render as a list inside the alert description area
135
+ - Badge count → render as a tag/badge chip next to the title
@@ -0,0 +1,149 @@
1
+ # Skill: Banner
2
+
3
+ Promotional/informational banner with a full-width background image hero section and a two-column content layout below it.
4
+
5
+ > **Prerequisite skill:** [`design-system-extension.md`](../design-system-extension.md) — covers architecture, props interface, styling patterns, and registration patterns common to ALL DSE components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a visually rich banner composed of two parts:
12
+ 1. **Hero section:** Full-width area with a background image, centered title and message text overlaid.
13
+ 2. **Content columns:** Two adjustable-width columns below the hero, rendered from the `a` and `b` slot props. Column widths are controlled by the `variant` prop.
14
+
15
+ ## Pega Metadata
16
+
17
+ - **Pega Name:** `Banner`
18
+ - **Registration key:** `Banner` (in `component-map.ts`)
19
+ - **Does NOT use `getPConnect`** — receives all data as direct props
20
+
21
+ ## Props
22
+
23
+ | Prop | Type | Required | Description |
24
+ |------|------|----------|-------------|
25
+ | `a` | `ReactNode` | Yes | Content for the first (left/narrower) column |
26
+ | `b` | `ReactNode` | Yes | Content for the second (right/wider) column |
27
+ | `banner` | `object` | Yes | Banner metadata (see sub-props below) |
28
+ | `banner.title` | `string` | Yes | Title text displayed in the hero section |
29
+ | `banner.message` | `string` | Yes | Descriptive message text in the hero section |
30
+ | `banner.backgroundImage` | `string` | Yes | URL of the background image for the hero section |
31
+ | `banner.variant` | `any` | No | Unused internally (layout variant comes from top-level `variant`) |
32
+ | `banner.backgroundColor` | `any` | No | Unused internally |
33
+ | `banner.tintImage` | `any` | No | Unused internally |
34
+ | `variant` | `string` | Yes | Column layout: `'two-column'`, `'narrow-wide'`, or `'wide-narrow'` |
35
+
36
+ ## Behavioral Contract
37
+
38
+ 1. **Hero section:** Render a `<div>` with class `background-image-style` and the inline style `backgroundImage: url(${backgroundImage})`.
39
+ 2. Inside the hero, render an overlay `<div>` with classes `background-style content`.
40
+ 3. Inside the overlay, render `<h1 className='title'>{title}</h1>` and `<p className='message'>{message}</p>`.
41
+ 4. **Column layout:** Below the hero, render a 12-column grid container with two columns:
42
+ - Column `a`: sized according to the variant (left/first column).
43
+ - Column `b`: sized according to the variant (right/second column).
44
+ 5. **Variant column widths:**
45
+ - `'two-column'`: column A = 6/12, column B = 6/12 (equal split).
46
+ - `'narrow-wide'`: column A = 4/12, column B = 8/12.
47
+ - `'wide-narrow'`: column A = 8/12, column B = 4/12.
48
+ 6. **Column A styles:** `padding: 1rem; background-color: var(--app-form-bg-color); border-radius: 16px; height: fit-content`.
49
+ 7. **Column B styles:** `padding: 0rem 1rem` (no background).
50
+ 8. **Outer wrapper:** `<div style={{ marginBottom: '2rem' }}>`.
51
+
52
+ ## Layout Variants
53
+
54
+ ```
55
+ two-column: [A 50%] [B 50%]
56
+ narrow-wide: [A 33%] [B 67%]
57
+ wide-narrow: [A 67%] [B 33%]
58
+ ```
59
+
60
+ ## Visual Specifications
61
+
62
+ Derived from `Banner.css`:
63
+
64
+ ### Hero Section
65
+
66
+ | Property | Value |
67
+ |----------|-------|
68
+ | Margin left | -16px (bleeds to container edge) |
69
+ | Margin right | -16px |
70
+ | Height | `calc(19rem)` |
71
+ | Background size | cover |
72
+ | Background position | center center |
73
+
74
+ ### Hero Overlay
75
+
76
+ | Property | Value |
77
+ |----------|-------|
78
+ | Background color | transparent |
79
+ | Color | `var(--banner-text-color)` |
80
+ | Width | 100% |
81
+ | Height | 100% |
82
+ | Text align | center |
83
+ | Display | flex |
84
+ | Flex direction | column |
85
+ | Justify content | center |
86
+ | Align items | center |
87
+ | Gap | `calc(0.5rem)` |
88
+
89
+ ### Hero Title
90
+
91
+ | Property | Value |
92
+ |----------|-------|
93
+ | Margin | 0 |
94
+ | Font size | 1.728rem |
95
+ | Font weight | 600 |
96
+
97
+ ### Hero Message
98
+
99
+ | Property | Value |
100
+ |----------|-------|
101
+ | Margin | 0 |
102
+ | Font size | 1rem |
103
+ | Font weight | 400 |
104
+
105
+ ### Content Grid
106
+
107
+ | Property | Value |
108
+ |----------|-------|
109
+ | Padding | 1rem |
110
+ | Column spacing | 1 spacing unit (≈ 8px) |
111
+
112
+ **CSS-only implementation notes:**
113
+ - Hero: `margin: 0 -16px; height: 19rem; background-size: cover; background-position: center; position: relative`.
114
+ - Overlay: `position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 0.5rem; color: var(--banner-text-color); text-align: center`.
115
+ - Content grid below hero: `display: grid; grid-template-columns: <a-cols>fr <b-cols>fr; gap: 8px; padding: 1rem`.
116
+ - Column A: `padding: 1rem; background-color: var(--app-form-bg-color); border-radius: 16px; height: fit-content`.
117
+ - Column B: `padding: 0 1rem`.
118
+ - For responsive behavior, collapse to single column on small viewports.
119
+
120
+ ## Edge Cases & Special Logic
121
+
122
+ - If `backgroundImage` is an empty string or undefined, the hero section renders without a background image (transparent/color background).
123
+ - If `variant` is not one of the three known values, implement a safe default (e.g., `'two-column'`).
124
+ - The `banner.backgroundColor`, `banner.variant`, and `banner.tintImage` props are received but not rendered in the reference implementation.
125
+
126
+ ## Dependencies
127
+
128
+ - No Pega SDK imports required (no `getPConnect`)
129
+ - No helper utilities required
130
+
131
+ ## Design System Mapping
132
+
133
+ **UI control type:** Full-width banner hero with responsive two-column content area.
134
+
135
+ Listed design systems are examples only.
136
+
137
+ | Design System | Recommended Component |
138
+ |---|---|
139
+ | Default (CSS only) | CSS Grid for columns, CSS background for hero |
140
+ | MUI | `<Grid container size={12}>` with `<Grid size={{ xs: ... }}>` for columns |
141
+ | Ant Design | `<Row gutter={8}>` with `<Col span={...}>` for columns |
142
+ | Chakra UI | `<SimpleGrid columns={2}>` or `<Grid templateColumns='...'>` |
143
+ | Shadcn/ui | CSS Grid with Tailwind column utilities |
144
+
145
+ When implementing in a specific design system, map the following:
146
+ - `variant` column widths → grid column span values
147
+ - Background image hero → `backgroundImage` inline style with `background-size: cover`
148
+ - Column A (card-like) → design system's Card or `bg` prop with border-radius
149
+ - Column B (plain) → plain container with horizontal padding only
@@ -0,0 +1,154 @@
1
+ # Skill: CaseSummaryFields
2
+
3
+ Display-only grid of typed field values for a case summary header. Renders a 2-column grid of read-only fields, each formatted according to its type (text, date, currency, phone, email, checkbox, status, operator, etc.).
4
+
5
+ > **Prerequisite skill:** [`design-system-extension.md`](../design-system-extension.md) — covers architecture, props interface, styling patterns, and registration patterns common to ALL DSE components.
6
+
7
+ ---
8
+
9
+ ## Component Purpose
10
+
11
+ Renders a responsive 2-column read-only grid of field values for a case summary header area. Each field in the input array is typed (e.g., `textinput`, `date`, `currency`, `caseoperator`), and the component selects the appropriate display renderer per type. Visibility and a special status field injection are also handled.
12
+
13
+ ## Pega Metadata
14
+
15
+ - **Pega Name:** `CaseSummaryFields`
16
+ - **Registration key:** `CaseSummaryFields` (in `component-map.ts`)
17
+ - **Does NOT use `getPConnect` directly** — receives pre-processed `theFields` array as a prop
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Required | Description |
22
+ |------|------|----------|-------------|
23
+ | `theFields` | `Array<{ type: string; config: FieldConfig }>` | Yes | Array of typed field descriptors to render |
24
+ | `status` | `string` | No | The case status value, injected at position 1 if `showStatus` is true |
25
+ | `showStatus` | `boolean` | No | If `true`, splices a status field entry at position 1 in the fields array |
26
+
27
+ ### FieldConfig shape (within each item in `theFields`)
28
+
29
+ | Property | Type | Description |
30
+ |----------|------|-------------|
31
+ | `label` | `string` | Field label |
32
+ | `value` | `any` | Field value |
33
+ | `visibility` | `boolean` (optional) | If `false`, the field is hidden |
34
+ | `caption` | `string` (optional) | Alternative label for checkbox fields |
35
+ | `trueLabel` | `string` (optional) | Display text when checkbox value is true |
36
+ | `falseLabel` | `string` (optional) | Display text when checkbox value is false |
37
+ | `currencyISOCode` | `string` (optional) | ISO currency code for currency fields |
38
+
39
+ ## Behavioral Contract
40
+
41
+ ### 1. Status Field Injection
42
+
43
+ Before rendering, if `showStatus` is `true` AND `theFields[1].type !== 'status'`, inject a status entry at position 1:
44
+ ```
45
+ { type: 'status', config: { value: status, label: 'Status' } }
46
+ ```
47
+ If the fields array has fewer than 2 items, append the status entry at the end.
48
+
49
+ ### 2. State Management with Deep Equality
50
+
51
+ - Store the final fields array in `theFieldsToRender` state.
52
+ - Only update `theFieldsToRender` if the new value is not deep-equal to the current value (use `fast-deep-equal/react`).
53
+ - When `theFieldsToRender` changes, recompute `theFieldsAsGridItems` (via `useEffect`).
54
+
55
+ ### 3. Field Visibility
56
+
57
+ Skip any field where `config.visibility` exists and is `false`.
58
+
59
+ ### 4. Type-Based Rendering (`getFieldValue(field)`)
60
+
61
+ When `field.config.value` is `null` or `''` (empty):
62
+ - For `caseoperator`: render `<Operator {...field.config} />`.
63
+ - For all other types: render a read-only TextField with value `'---'` and the field label.
64
+
65
+ When `field.config.value` is non-empty, switch on `field.type.toLowerCase()`:
66
+
67
+ | Type | Rendering |
68
+ |------|-----------|
69
+ | `textinput`, `decimal`, `integer`, `dropdown` | Read-only TextField (standard, no underline) with `value` |
70
+ | `checkbox` | Label: `label \|\| caption`; Value: `value ? trueLabel : falseLabel`; read-only TextField |
71
+ | `status` | Read-only TextField with class `psdk-csf-status-style` (uppercase, small, bold) |
72
+ | `phone` | `<a href={'tel:' + value}>` wrapping a read-only TextField with pointer cursor |
73
+ | `email` | `<a href={'mailto:' + format(value, 'email')}>` wrapping a read-only TextField with pointer cursor |
74
+ | `date` | Read-only TextField with `format(value, 'date', { format: dateFormatStringLong })` |
75
+ | `datetime` | Read-only TextField with `format(value, 'datetime', { format: dateFormatStringLong + ' hh:mm a' })` |
76
+ | `currency` | Read-only TextField with `format(value, 'currency', getCurrencyOptions(currencyISOCode))` |
77
+ | `boolean`, `userreference` | Read-only TextField with `format(value, type)` |
78
+ | `caseoperator` | `<Operator {...field.config} />` |
79
+ | default (unknown) | `<span>{type} {value}</span>` |
80
+
81
+ All TextFields use: `variant='standard'`, `slotProps.input.readOnly = true`, `slotProps.input.disableUnderline = true`.
82
+
83
+ ### 5. Grid Layout
84
+
85
+ Render each visible field in `Grid size={{ xs: 6 }}` (2-column layout) inside a container `Grid` with class `psdk-case-summary-fields`.
86
+
87
+ ## Visual Specifications
88
+
89
+ Derived from `CaseSummaryFields.css`:
90
+
91
+ ### Status Field
92
+
93
+ | Property | Value |
94
+ |----------|-------|
95
+ | Display | inline-block |
96
+ | Font size | 0.75rem |
97
+ | Font weight | bold |
98
+ | Line height | `calc(0.5rem * 2.5)` (≈ 1.25rem) |
99
+ | Height | `calc(0.5rem * 2.5)` (≈ 1.25rem) |
100
+ | Text transform | uppercase |
101
+
102
+ ### Summary Grid Container
103
+
104
+ | Property | Value |
105
+ |----------|-------|
106
+ | Padding | `calc(2 * 0.5rem)` (≈ 1rem) |
107
+ | Row gap | `calc(2 * 0.5rem)` (≈ 1rem) |
108
+
109
+ **CSS-only implementation notes:**
110
+ - Summary grid: `display: grid; grid-template-columns: 1fr 1fr; padding: 1rem; row-gap: 1rem`.
111
+ - Each field cell: standard read-only text display with label above value.
112
+ - Status text: `font-size: 0.75rem; font-weight: bold; text-transform: uppercase; line-height: 1.25rem`.
113
+ - Phone/email links: `text-decoration: none; color: inherit` on the `<a>` wrapper; use `cursor: pointer` on the inner input.
114
+ - Read-only field pair: label in secondary text color (`font-weight: 400; color: var(--text-secondary); font-size: 0.75rem`), value in primary text color below.
115
+
116
+ ## Edge Cases & Special Logic
117
+
118
+ - Use `fast-deep-equal/react` deep equality before updating `theFieldsToRender` to prevent infinite re-render loops.
119
+ - Status splicing mutates `theFields` directly — ensure the original array reference is used (not a copy) when checking `theFields[1].type`.
120
+ - Date format comes from `getDateFormatInfo().dateFormatStringLong` — defaults to locale format.
121
+ - Currency options come from `getCurrencyOptions(field.config?.currencyISOCode)`.
122
+ - The `Operator` component is retrieved via `getComponentFromRegistry('Operator')` — not imported directly. This allows runtime component override.
123
+ - If `theFields` is null or undefined, initialize to empty to avoid crashes.
124
+
125
+ ## Dependencies
126
+
127
+ - `getComponentFromRegistry` from `@pega/sdk-react` — to retrieve the `Operator` component at runtime
128
+ - `isDeepEqual` from `fast-deep-equal/react` — for state change detection
129
+ - `getDateFormatInfo` from `../../helpers/date-format-utils` — for locale date format string
130
+ - `getCurrencyOptions` from `../../field/Currency/currency-utils` — for currency formatting options
131
+ - `format` from `../../helpers/formatters` — for formatting phone, email, date, datetime, currency, boolean, userreference values
132
+ - `Operator` component (resolved via registry) — for `caseoperator` type rendering
133
+
134
+ ## Design System Mapping
135
+
136
+ **UI control type:** 2-column grid of read-only labeled field values.
137
+
138
+ Listed design systems are examples only.
139
+
140
+ | Design System | Recommended Component |
141
+ |---|---|
142
+ | Default (CSS only) | CSS Grid 2-column layout with label/value pairs |
143
+ | MUI | `<Grid container>` with `<Grid size={{ xs: 6 }}>` cells; `<TextField variant='standard' readOnly>` per field |
144
+ | Ant Design | `<Descriptions layout='vertical' column={2}>` with typed item renderers |
145
+ | Chakra UI | `<SimpleGrid columns={2}>` with `<FormControl>` label/value pairs |
146
+ | Shadcn/ui | 2-column grid with `<Label>` / `<p>` pairs |
147
+
148
+ When implementing in a specific design system, map the following:
149
+ - Read-only TextField (standard, no underline) → design system's read-only text display
150
+ - Phone field → `<a href='tel:...'>` wrapper around the display
151
+ - Email field → `<a href='mailto:...'>` wrapper around the display
152
+ - Status field → uppercase badge/chip or styled text
153
+ - `caseoperator` type → delegate to the `Operator` component
154
+ - Missing/empty value → always display `'---'`