@pega/sdk 0.0.3 → 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 (346) hide show
  1. package/LICENSE +183 -183
  2. package/README.md +6 -6
  3. package/SECURITY.md +2 -1
  4. package/dist/index.js +12 -55
  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 +1 -1
  12. package/templates/react-sdk-reference/.claude/instructions/field-component.md +4 -0
  13. package/templates/react-sdk-reference/.claude/instructions/template-component.md +2 -1
  14. package/templates/react-sdk-reference/.claude/instructions/widget-component.md +1 -0
  15. package/templates/react-sdk-reference/.claude/prompts/add-component.md +18 -10
  16. package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +165 -83
  17. package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +26 -17
  18. package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +27 -13
  19. package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +42 -28
  20. package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +48 -34
  21. package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +25 -11
  22. package/templates/react-sdk-reference/.claude/prompts/identify-components.md +65 -65
  23. package/templates/react-sdk-reference/.claude/skills/component-contracts.md +99 -99
  24. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +40 -38
  25. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +54 -51
  26. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
  27. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +32 -28
  28. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +38 -35
  29. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +25 -23
  30. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +29 -26
  31. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +32 -26
  32. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +17 -15
  33. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +85 -59
  34. package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
  35. package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +13 -11
  36. package/templates/react-sdk-reference/.claude/skills/field-components.md +9 -8
  37. package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +27 -26
  38. package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +30 -22
  39. package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +60 -43
  40. package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +23 -20
  41. package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +19 -17
  42. package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +18 -15
  43. package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +22 -21
  44. package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +50 -30
  45. package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +20 -18
  46. package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +21 -15
  47. package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +17 -16
  48. package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +30 -21
  49. package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +66 -42
  50. package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +27 -18
  51. package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +22 -21
  52. package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +36 -17
  53. package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +56 -35
  54. package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +23 -12
  55. package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +41 -31
  56. package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +70 -55
  57. package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +34 -27
  58. package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +24 -22
  59. package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +38 -22
  60. package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +24 -21
  61. package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +16 -15
  62. package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +16 -15
  63. package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +57 -34
  64. package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +10 -8
  65. package/templates/react-sdk-reference/.claude/skills/template-components.md +7 -8
  66. package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +27 -21
  67. package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +17 -15
  68. package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +19 -16
  69. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +19 -13
  70. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +23 -17
  71. package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +34 -29
  72. package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +18 -16
  73. package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +36 -32
  74. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +23 -21
  75. package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +31 -29
  76. package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +19 -17
  77. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +22 -20
  78. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +19 -17
  79. package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +19 -17
  80. package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +15 -10
  81. package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +19 -16
  82. package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +18 -15
  83. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +17 -13
  84. package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +10 -13
  85. package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +9 -7
  86. package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +33 -30
  87. package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +13 -11
  88. package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +42 -40
  89. package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +25 -20
  90. package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +25 -19
  91. package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +36 -29
  92. package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +31 -27
  93. package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +29 -24
  94. package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +14 -11
  95. package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +34 -32
  96. package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +48 -46
  97. package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +23 -19
  98. package/templates/react-sdk-reference/.claude/skills/widget-components.md +11 -22
  99. package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +22 -20
  100. package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +33 -28
  101. package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +18 -15
  102. package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +43 -37
  103. package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +23 -19
  104. package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +20 -16
  105. package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +26 -24
  106. package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +43 -35
  107. package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +165 -83
  108. package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
  109. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +2 -2
  110. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +1 -1
  111. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +5 -1
  112. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +3 -2
  113. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +2 -1
  114. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +58 -15
  115. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
  116. package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +322 -65
  117. package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +124 -50
  118. package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +145 -66
  119. package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +146 -73
  120. package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +128 -49
  121. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +65 -65
  122. package/templates/react-sdk-reference/.github/skills/component-contracts.md +99 -99
  123. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +40 -38
  124. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +54 -51
  125. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
  126. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +32 -28
  127. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +38 -35
  128. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +25 -23
  129. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +29 -26
  130. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +32 -26
  131. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +17 -15
  132. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +85 -59
  133. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
  134. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +13 -11
  135. package/templates/react-sdk-reference/.github/skills/field-components.md +9 -8
  136. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +27 -26
  137. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +30 -22
  138. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +60 -43
  139. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +23 -20
  140. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +19 -17
  141. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +18 -15
  142. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +22 -21
  143. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +50 -30
  144. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +20 -18
  145. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +21 -15
  146. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +17 -16
  147. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +30 -21
  148. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +66 -42
  149. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +27 -18
  150. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +22 -21
  151. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +36 -17
  152. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +56 -35
  153. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +23 -12
  154. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +41 -31
  155. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +70 -55
  156. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +34 -27
  157. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +24 -22
  158. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +38 -22
  159. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +24 -21
  160. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +16 -15
  161. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +16 -15
  162. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +57 -34
  163. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +10 -8
  164. package/templates/react-sdk-reference/.github/skills/template-components.md +7 -8
  165. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +27 -21
  166. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +17 -15
  167. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +19 -16
  168. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +19 -13
  169. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +23 -17
  170. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +34 -29
  171. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +18 -16
  172. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +36 -32
  173. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +23 -21
  174. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +31 -29
  175. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +19 -17
  176. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +22 -20
  177. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +19 -17
  178. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +19 -17
  179. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +15 -10
  180. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +19 -16
  181. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +18 -15
  182. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +17 -13
  183. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +10 -13
  184. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +9 -7
  185. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +33 -30
  186. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +13 -11
  187. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +42 -40
  188. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +25 -20
  189. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +25 -19
  190. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +36 -29
  191. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +31 -27
  192. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +29 -24
  193. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +14 -11
  194. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +34 -32
  195. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +48 -46
  196. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +23 -19
  197. package/templates/react-sdk-reference/.github/skills/widget-components.md +11 -22
  198. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +22 -20
  199. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +33 -28
  200. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +18 -15
  201. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +43 -37
  202. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +23 -19
  203. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +20 -16
  204. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +26 -24
  205. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +43 -35
  206. package/templates/react-sdk-reference/AGENTS.md +0 -1
  207. package/templates/react-sdk-reference/index.html +1 -4
  208. package/templates/react-sdk-reference/package.json +15 -15
  209. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  210. package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
  211. package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
  212. package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
  213. package/templates/react-sdk-reference/src/MashupApp.tsx +186 -85
  214. package/templates/react-sdk-reference/src/PortalApp.tsx +10 -34
  215. package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
  216. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
  217. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
  218. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
  219. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
  220. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
  221. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
  222. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
  223. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
  224. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
  225. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
  226. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
  227. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
  228. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
  229. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
  230. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
  231. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
  232. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
  233. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
  234. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
  235. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
  236. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
  237. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
  238. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
  239. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
  240. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
  241. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
  242. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
  243. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
  244. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
  245. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
  246. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
  247. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
  248. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
  249. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
  250. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
  251. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
  252. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
  253. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
  254. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
  255. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
  256. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
  257. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
  258. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
  259. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
  260. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
  261. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
  262. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
  263. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
  264. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
  265. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
  266. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
  267. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
  268. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
  269. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
  270. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
  271. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
  272. package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
  273. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
  274. package/templates/react-sdk-reference/src/components/index.ts +1 -4
  275. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
  276. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
  277. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
  278. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
  279. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
  280. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
  281. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
  282. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
  283. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
  284. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
  285. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
  286. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
  287. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
  288. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
  289. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
  290. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
  291. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
  292. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
  293. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
  294. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
  295. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
  296. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
  297. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
  298. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
  299. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
  300. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
  301. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
  302. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
  303. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
  304. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
  305. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
  306. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
  307. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
  308. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
  309. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
  310. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
  311. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
  312. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
  313. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
  314. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
  315. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
  316. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
  317. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
  318. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
  319. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
  320. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
  321. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
  322. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
  323. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
  324. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
  325. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
  326. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
  327. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
  328. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
  329. package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
  330. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
  331. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
  332. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
  333. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
  334. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
  335. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
  336. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
  337. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
  338. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
  339. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
  340. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
  341. package/templates/react-sdk-reference/src/main.tsx +1 -1
  342. package/templates/react-sdk-reference/tsconfig.json +2 -1
  343. package/templates/react-sdk-reference/vite.config.ts +51 -26
  344. package/templates/wc-sdk-reference/package.json +3 -3
  345. package/templates/wc-sdk-reference/src/index.ts +10 -10
  346. package/templates/wc-sdk-reference/tsconfig.json +1 -0
@@ -18,14 +18,14 @@ The outermost container for the Pega SDK React app. Determines whether the app i
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `pages` | `array` | Yes | Array of portal page objects `{ name, pyLabel, linkUrl }` |
24
- | `caseTypes` | `array` | No | Fallback case types (overridden by data page fetch if empty) |
25
- | `portalName` | `string` | Yes | Portal identifier — determines WSS vs standard rendering |
26
- | `displayName` | `string` | No | Operator display name for avatar |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
28
- | `children` | `ReactNode` | Yes | Main content area |
21
+ | Prop | Type | Required | Description |
22
+ | ------------- | ----------- | -------- | ------------------------------------------------------------ |
23
+ | `pages` | `array` | Yes | Array of portal page objects `{ name, pyLabel, linkUrl }` |
24
+ | `caseTypes` | `array` | No | Fallback case types (overridden by data page fetch if empty) |
25
+ | `portalName` | `string` | Yes | Portal identifier — determines WSS vs standard rendering |
26
+ | `displayName` | `string` | No | Operator display name for avatar |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
+ | `children` | `ReactNode` | Yes | Main content area |
29
29
 
30
30
  ## Behavioral Contract
31
31
 
@@ -80,6 +80,7 @@ The outermost container for the Pega SDK React app. Determines whether the app i
80
80
  ## Visual Specifications
81
81
 
82
82
  **CSS-only implementation notes:**
83
+
83
84
  - Shell wrapper: `display: flex; flex-direction: column; height: 100vh`.
84
85
  - Nav bar: `flex: 0 0 auto` (fixed height).
85
86
  - Alert banner: `flex: 0 0 auto` (shown below nav, pushes content down).
@@ -108,15 +109,16 @@ The outermost container for the Pega SDK React app. Determines whether the app i
108
109
 
109
110
  Listed design systems are examples only.
110
111
 
111
- | Design System | Nav Bar | Alert Banner | Shell Layout |
112
- |---|---|---|---|
113
- | Default (CSS only) | `<header>` + custom nav | `<div role='alert'>` | CSS flexbox column |
114
- | MUI | `<AppBar>` + `<Toolbar>` | `<Alert>` | `<Box display='flex' flexDirection='column'>` |
115
- | Ant Design | `<Layout.Header>` | `<Alert>` | `<Layout>` |
116
- | Chakra UI | `<Box as='header'>` | `<Alert>` | `<Flex direction='column'>` |
117
- | Shadcn/ui | Custom header | `<Alert>` | Tailwind `flex flex-col h-screen` |
112
+ | Design System | Nav Bar | Alert Banner | Shell Layout |
113
+ | ------------------ | ------------------------ | -------------------- | --------------------------------------------- |
114
+ | Default (CSS only) | `<header>` + custom nav | `<div role='alert'>` | CSS flexbox column |
115
+ | MUI | `<AppBar>` + `<Toolbar>` | `<Alert>` | `<Box display='flex' flexDirection='column'>` |
116
+ | Ant Design | `<Layout.Header>` | `<Alert>` | `<Layout>` |
117
+ | Chakra UI | `<Box as='header'>` | `<Alert>` | `<Flex direction='column'>` |
118
+ | Shadcn/ui | Custom header | `<Alert>` | Tailwind `flex flex-col h-screen` |
118
119
 
119
120
  When implementing in a specific design system:
121
+
120
122
  - WSS vs portal detection must remain — the nav bar component differs for each
121
123
  - Logo URL must be loaded asynchronously from `PCore.getAssetLoader()`
122
124
  - `NavContext.Provider` must wrap children so descendant nav-aware components can access links
@@ -18,16 +18,16 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `children` | `ReactNode[]` | Yes | At least 2 children — `[0]` → left (`a`) slot, `[1]` → right (`b`) slot |
24
- | `layout` | `string` | No | Column layout variant for `Banner`: `'two-column'` (default), `'narrow-wide'`, `'wide-narrow'` |
25
- | `heading` | `string` | No | Hero section heading text. Default `''` |
26
- | `message` | `string` | No | Hero section message/subtitle. Default `''` |
27
- | `imageTheme` | `string` | No | Banner image theme (e.g., `'light'`). Default `'light'` |
28
- | `backgroundImage` | `string` | No | URL of the background image for the hero. Default `''` |
29
- | `backgroundColor` | `string` | No | Background color for the hero. Default `''` |
30
- | `tintImage` | `boolean` | No | Whether to tint the background image. Default `false` |
21
+ | Prop | Type | Required | Description |
22
+ | ----------------- | ------------- | -------- | ---------------------------------------------------------------------------------------------- |
23
+ | `children` | `ReactNode[]` | Yes | At least 2 children — `[0]` → left (`a`) slot, `[1]` → right (`b`) slot |
24
+ | `layout` | `string` | No | Column layout variant for `Banner`: `'two-column'` (default), `'narrow-wide'`, `'wide-narrow'` |
25
+ | `heading` | `string` | No | Hero section heading text. Default `''` |
26
+ | `message` | `string` | No | Hero section message/subtitle. Default `''` |
27
+ | `imageTheme` | `string` | No | Banner image theme (e.g., `'light'`). Default `'light'` |
28
+ | `backgroundImage` | `string` | No | URL of the background image for the hero. Default `''` |
29
+ | `backgroundColor` | `string` | No | Background color for the hero. Default `''` |
30
+ | `tintImage` | `boolean` | No | Whether to tint the background image. Default `false` |
31
31
 
32
32
  ## Behavioral Contract
33
33
 
@@ -45,10 +45,12 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
45
45
  This component has no independent visual output — all visual behavior is defined by the `Banner` DSE component. See [`design-system-extension-skills/Banner.md`](../design-system-extension-skills/Banner.md) for full visual specs.
46
46
 
47
47
  Key visual behaviors inherited from `Banner`:
48
+
48
49
  - Hero: full-width background image section, height `19rem`, centered title and message overlay
49
50
  - Content area: two-column grid below the hero, column widths driven by `variant`/`layout`
50
51
 
51
52
  **CSS-only implementation notes:**
53
+
52
54
  - This template creates no CSS of its own — implement it as a pure pass-through to `Banner`.
53
55
  - The `layout` prop maps directly to `Banner`'s `variant` prop.
54
56
  - `heading` → `Banner.banner.title`, `message` → `Banner.banner.message`.
@@ -70,14 +72,15 @@ Key visual behaviors inherited from `Banner`:
70
72
 
71
73
  Listed design systems are examples only.
72
74
 
73
- | Design System | Recommended Component |
74
- |---|---|
75
+ | Design System | Recommended Component |
76
+ | ------------------ | -------------------------------------------------------------------- |
75
77
  | Default (CSS only) | Pass-through to `Banner` — implement Banner's CSS hero + grid layout |
76
- | MUI | Pass-through to `Banner` (MUI-based) |
77
- | Ant Design | Pass-through to `Banner` (Ant-based) |
78
- | Chakra UI | Pass-through to `Banner` (Chakra-based) |
79
- | Shadcn/ui | Pass-through to `Banner` (Shadcn-based) |
78
+ | MUI | Pass-through to `Banner` (MUI-based) |
79
+ | Ant Design | Pass-through to `Banner` (Ant-based) |
80
+ | Chakra UI | Pass-through to `Banner` (Chakra-based) |
81
+ | Shadcn/ui | Pass-through to `Banner` (Shadcn-based) |
80
82
 
81
83
  When implementing in a specific design system:
84
+
82
85
  - `BannerPage` is always a thin wrapper — implement `Banner` first, then `BannerPage` simply delegates to it
83
86
  - Prop mapping: `layout` → `variant`, `heading` → `banner.title`, `message` → `banner.message`, `backgroundImage` → `banner.backgroundImage`
@@ -18,12 +18,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `children` | `ReactNode[]` | No | Region children when fields come from PConnect metadata |
24
- | `arPrimaryFields` | `array` | No | Array of primary field objects (direct prop) |
25
- | `arSecondaryFields` | `array` | No | Array of secondary field objects (direct prop) |
26
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ------------------- | ------------- | -------- | ------------------------------------------------------- |
23
+ | `children` | `ReactNode[]` | No | Region children when fields come from PConnect metadata |
24
+ | `arPrimaryFields` | `array` | No | Array of primary field objects (direct prop) |
25
+ | `arSecondaryFields` | `array` | No | Array of secondary field objects (direct prop) |
26
+ | `getPConnect` | `function` | Yes | PConnect getter |
27
27
 
28
28
  ## Behavioral Contract
29
29
 
@@ -32,10 +32,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
32
32
  Two modes — prefer direct props if provided:
33
33
 
34
34
  **Mode A — Direct props:**
35
+
35
36
  - `arPrimaryFields` and `arSecondaryFields` are passed directly.
36
37
  - Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` to localize values.
37
38
 
38
39
  **Mode B — Child extraction:**
40
+
39
41
  - Extract primary and secondary regions from `children` by type/name matching.
40
42
  - Primary region: first region child (or `type === 'Region' && name === 'Primary'`).
41
43
  - Secondary region: second region child (or `type === 'Region' && name === 'Secondary'`).
@@ -45,6 +47,7 @@ Two modes — prefer direct props if provided:
45
47
  ### `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)`
46
48
 
47
49
  Helper that:
50
+
48
51
  1. Iterates each field in both arrays.
49
52
  2. Localizes the field value via `PCore.getLocaleUtils().getLocaleValue(value, classID, value)`.
50
53
  3. Returns `{ arPrimaryFields: localizedPrimary, arSecondaryFields: localizedSecondary }`.
@@ -52,6 +55,7 @@ Helper that:
52
55
  ### Render
53
56
 
54
57
  Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
58
+
55
59
  - `arPrimaryFields` — array of `{ name, value }` objects for primary display
56
60
  - `arSecondaryFields` — array of `{ name, value, displayLabel }` objects for secondary display
57
61
 
@@ -62,6 +66,7 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
62
66
  - Secondary fields: label + value pairs.
63
67
 
64
68
  **CSS-only implementation notes (for `CaseSummaryFields` wrapper):**
69
+
65
70
  - Container: `display: flex; flex-direction: column; gap: 8px`.
66
71
  - Primary field value: `font-size: 1rem; font-weight: 600`.
67
72
  - Secondary field row: `display: flex; gap: 4px; font-size: 0.875rem`.
@@ -86,15 +91,16 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
86
91
 
87
92
  Listed design systems are examples only.
88
93
 
89
- | Design System | Recommended Approach |
90
- |---|---|
91
- | Default (CSS only) | Flexbox column with CSS-styled field rows |
92
- | MUI | `<Typography>` variants for primary/secondary text |
93
- | Ant Design | `<Descriptions>` with `bordered={false}` |
94
- | Chakra UI | `<VStack>` with `<Text>` variants |
95
- | Shadcn/ui | Custom `<dl>/<dt>/<dd>` or card |
94
+ | Design System | Recommended Approach |
95
+ | ------------------ | -------------------------------------------------- |
96
+ | Default (CSS only) | Flexbox column with CSS-styled field rows |
97
+ | MUI | `<Typography>` variants for primary/secondary text |
98
+ | Ant Design | `<Descriptions>` with `bordered={false}` |
99
+ | Chakra UI | `<VStack>` with `<Text>` variants |
100
+ | Shadcn/ui | Custom `<dl>/<dt>/<dd>` or card |
96
101
 
97
102
  When implementing in a specific design system:
103
+
98
104
  - Always localize field values before display — use `PCore.getLocaleUtils().getLocaleValue()`
99
105
  - `CaseSummaryFields` is a DSE component — implement it separately and call it from here
100
106
  - Primary fields have no labels; secondary fields have labels
@@ -20,17 +20,18 @@ The primary case workspace template. Extracts named regions from PConnect childr
20
20
 
21
21
  ## Props
22
22
 
23
- | Prop | Type | Required | Description |
24
- |------|------|----------|-------------|
25
- | `children` | `ReactNode[]` | Yes | Named region children (summary, stages, todo, utilities, tabs) |
26
- | `displayOnlyFA` | `boolean` | No | If true, renders only the to-do region (focused action mode) |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
23
+ | Prop | Type | Required | Description |
24
+ | --------------- | ------------- | -------- | -------------------------------------------------------------- |
25
+ | `children` | `ReactNode[]` | Yes | Named region children (summary, stages, todo, utilities, tabs) |
26
+ | `displayOnlyFA` | `boolean` | No | If true, renders only the to-do region (focused action mode) |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
28
 
29
29
  ## Behavioral Contract
30
30
 
31
31
  ### Region Extraction
32
32
 
33
33
  Use `getRawMetadata()` to access `children` with `type` and `name` metadata. Extract by:
34
+
34
35
  - **Summary region:** `type === 'Region' && name === 'Summary'`
35
36
  - **Stages region:** `type === 'Region' && name === 'Stages'`
36
37
  - **ToDo region:** `type === 'Region' && name === 'ToDo'`
@@ -48,6 +49,7 @@ Render each region as a React child element using `createElement(PConnectCompone
48
49
  ### displayOnlyFA Mode
49
50
 
50
51
  If `displayOnlyFA === true`:
52
+
51
53
  - Render only the ToDo region, centered.
52
54
  - Skip summary, stages, tabs, utilities rendering.
53
55
 
@@ -73,13 +75,14 @@ If `displayOnlyFA === true`:
73
75
  ToDo
74
76
  ```
75
77
 
76
- | Column | xs | Contents |
77
- |--------|----|----------|
78
- | Left | 3 | Summary, Stages, ToDo regions |
79
- | Center | 6 | Tabs region (deferred content) |
80
- | Right | 3 | Utilities region |
78
+ | Column | xs | Contents |
79
+ | ------ | --- | ------------------------------ |
80
+ | Left | 3 | Summary, Stages, ToDo regions |
81
+ | Center | 6 | Tabs region (deferred content) |
82
+ | Right | 3 | Utilities region |
81
83
 
82
84
  **CSS-only implementation notes:**
85
+
83
86
  - Outer grid: `display: grid; grid-template-columns: 25% 50% 25%; gap: 1rem`.
84
87
  - Left column: `display: flex; flex-direction: column; gap: 0.5rem`.
85
88
  - Center column: `overflow: hidden`.
@@ -104,10 +107,12 @@ If `displayOnlyFA === true`:
104
107
  ### ObjectPage
105
108
 
106
109
  `ObjectPage` is registered as:
110
+
107
111
  ```tsx
108
112
  // packages/sdk-react/src/components/template/ObjectPage/index.tsx
109
113
  export { default } from '../CaseView';
110
114
  ```
115
+
111
116
  - No separate implementation needed.
112
117
  - In `component-map.ts`, register `ObjectPage` key pointing to the same component as `CaseView`.
113
118
 
@@ -117,15 +122,16 @@ export { default } from '../CaseView';
117
122
 
118
123
  Listed design systems are examples only.
119
124
 
120
- | Design System | Grid | Sidebar | Deferred Tabs |
121
- |---|---|---|---|
122
- | Default (CSS only) | CSS Grid 25/50/25 | `<aside>` | Intersection Observer lazy load |
123
- | MUI | `<Grid container>` with `<Grid size={{ xs: 3/6/3 }}>` | `<Box>` | MUI `<Tabs>` + DeferLoad |
124
- | Ant Design | `<Row><Col span={6/12/6}>` | `<Sider>` | `<Tabs>` lazy |
125
- | Chakra UI | `<Grid templateColumns='1fr 2fr 1fr'>` | `<Box>` | Custom lazy tabs |
126
- | Shadcn/ui | Tailwind `grid grid-cols-[1fr_2fr_1fr]` | `<aside>` | Custom |
125
+ | Design System | Grid | Sidebar | Deferred Tabs |
126
+ | ------------------ | ----------------------------------------------------- | --------- | ------------------------------- |
127
+ | Default (CSS only) | CSS Grid 25/50/25 | `<aside>` | Intersection Observer lazy load |
128
+ | MUI | `<Grid container>` with `<Grid size={{ xs: 3/6/3 }}>` | `<Box>` | MUI `<Tabs>` + DeferLoad |
129
+ | Ant Design | `<Row><Col span={6/12/6}>` | `<Sider>` | `<Tabs>` lazy |
130
+ | Chakra UI | `<Grid templateColumns='1fr 2fr 1fr'>` | `<Box>` | Custom lazy tabs |
131
+ | Shadcn/ui | Tailwind `grid grid-cols-[1fr_2fr_1fr]` | `<aside>` | Custom |
127
132
 
128
133
  When implementing in a specific design system:
134
+
129
135
  - `displayOnlyFA` must completely bypass the grid — render only ToDo region
130
136
  - Region extraction by metadata name is required — do not assume positional ordering
131
137
  - Deferred loading is mandatory for performance — tab content must not all load at once
@@ -18,13 +18,13 @@ Renders a button that opens a dropdown menu containing all available case action
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `localActions` | `array` | No | Array of `{ ID, name }` local action objects |
24
- | `processActions` | `array` | No | Array of `{ ID, name }` process action objects |
25
- | `caseTypeID` | `string` | Yes | Case type identifier for label localization |
26
- | `caseTypeName` | `string` | Yes | Case type display name for label localization |
27
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ---------------- | ---------- | -------- | ---------------------------------------------- |
23
+ | `localActions` | `array` | No | Array of `{ ID, name }` local action objects |
24
+ | `processActions` | `array` | No | Array of `{ ID, name }` process action objects |
25
+ | `caseTypeID` | `string` | Yes | Case type identifier for label localization |
26
+ | `caseTypeName` | `string` | Yes | Case type display name for label localization |
27
+ | `getPConnect` | `function` | Yes | PConnect getter |
28
28
 
29
29
  ## Behavioral Contract
30
30
 
@@ -36,6 +36,7 @@ Renders a button that opens a dropdown menu containing all available case action
36
36
  ### Menu Items
37
37
 
38
38
  The menu combines:
39
+
39
40
  1. **Local actions** — each item triggers `getPConnect().getActionsApi().openLocalAction(action.ID, { caseID: getPConnect().getCaseInfo().getID() })`.
40
41
  2. **Process actions** — each item triggers `getPConnect().getActionsApi().openProcessAction(action.ID, { ... })`.
41
42
 
@@ -44,9 +45,11 @@ If both groups exist, render a divider between them.
44
45
  ### Localized Action Labels
45
46
 
46
47
  For localized case type context:
48
+
47
49
  ```
48
50
  localeKey = `${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
49
51
  ```
52
+
50
53
  Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, localeKey, action.name)`.
51
54
 
52
55
  ### Process Action Error Handling
@@ -65,21 +68,22 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
65
68
 
66
69
  ### Button
67
70
 
68
- | Property | Value |
69
- |----------|-------|
70
- | Label | Localized `"Actions"` |
71
- | Variant | Outlined or secondary |
72
- | Icon | Dropdown chevron or expand_more |
71
+ | Property | Value |
72
+ | -------- | ------------------------------- |
73
+ | Label | Localized `"Actions"` |
74
+ | Variant | Outlined or secondary |
75
+ | Icon | Dropdown chevron or expand_more |
73
76
 
74
77
  ### Menu
75
78
 
76
- | Property | Value |
77
- |----------|-------|
78
- | Position | Anchored below the button |
79
- | Divider | Between local and process action groups |
80
- | Item height | Standard menu item height |
79
+ | Property | Value |
80
+ | ----------- | --------------------------------------- |
81
+ | Position | Anchored below the button |
82
+ | Divider | Between local and process action groups |
83
+ | Item height | Standard menu item height |
81
84
 
82
85
  **CSS-only implementation notes:**
86
+
83
87
  - Button: `padding: 6px 12px; border: 1px solid var(--app-primary-color); border-radius: 4px; cursor: pointer`.
84
88
  - Dropdown menu: `position: absolute; background: white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); border-radius: 4px; min-width: 160px; z-index: 1000`.
85
89
  - Menu item: `padding: 8px 16px; cursor: pointer`. Hover: `background: var(--hover-bg)`.
@@ -87,11 +91,11 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
87
91
 
88
92
  ### Snackbar Toast
89
93
 
90
- | Property | Value |
91
- |----------|-------|
92
- | Position | Bottom-center or bottom-right |
93
- | Auto-hide | 3000ms |
94
- | Severity | Error (red) |
94
+ | Property | Value |
95
+ | --------- | ----------------------------- |
96
+ | Position | Bottom-center or bottom-right |
97
+ | Auto-hide | 3000ms |
98
+ | Severity | Error (red) |
95
99
 
96
100
  ## Edge Cases & Special Logic
97
101
 
@@ -112,15 +116,16 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
112
116
 
113
117
  Listed design systems are examples only.
114
118
 
115
- | Design System | Button | Menu | Toast |
116
- |---|---|---|---|
117
- | Default (CSS only) | `<button>` + custom dropdown | `<ul>/<li>` with CSS | Custom toast overlay |
118
- | MUI | `<Button>` + `<Menu>/<MenuItem>` | MUI Menu | `<Snackbar>/<Alert>` |
119
- | Ant Design | `<Dropdown menu={{ items }}>` | Ant Dropdown | `message.error()` |
120
- | Chakra UI | `<Menu>/<MenuButton>/<MenuList>` | Chakra Menu | `useToast()` |
121
- | Shadcn/ui | `<DropdownMenu>/<DropdownMenuTrigger>` | Shadcn DropdownMenu | `<Toaster>` + `toast.error()` |
119
+ | Design System | Button | Menu | Toast |
120
+ | ------------------ | -------------------------------------- | -------------------- | ----------------------------- |
121
+ | Default (CSS only) | `<button>` + custom dropdown | `<ul>/<li>` with CSS | Custom toast overlay |
122
+ | MUI | `<Button>` + `<Menu>/<MenuItem>` | MUI Menu | `<Snackbar>/<Alert>` |
123
+ | Ant Design | `<Dropdown menu={{ items }}>` | Ant Dropdown | `message.error()` |
124
+ | Chakra UI | `<Menu>/<MenuButton>/<MenuList>` | Chakra Menu | `useToast()` |
125
+ | Shadcn/ui | `<DropdownMenu>/<DropdownMenuTrigger>` | Shadcn DropdownMenu | `<Toaster>` + `toast.error()` |
122
126
 
123
127
  When implementing in a specific design system:
128
+
124
129
  - Local vs process action distinction must be preserved — they call different APIs
125
130
  - Localized labels via `localeKey = ${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
126
131
  - Process action errors must be surfaced via a dismissible toast
@@ -18,10 +18,10 @@ Displayed after a case or assignment is submitted. Shows the confirmation view (
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `children` | `ReactNode[]` | Yes | Region children: `[0]` = ToDo region, `[1]` = Details region (when available) |
24
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | ------------- | ------------- | -------- | ----------------------------------------------------------------------------- |
23
+ | `children` | `ReactNode[]` | Yes | Region children: `[0]` = ToDo region, `[1]` = Details region (when available) |
24
+ | `getPConnect` | `function` | Yes | PConnect getter |
25
25
 
26
26
  ## Behavioral Contract
27
27
 
@@ -56,13 +56,14 @@ Displayed after a case or assignment is submitted. Shows the confirmation view (
56
56
 
57
57
  ### Confirm View
58
58
 
59
- | Element | Description |
60
- |---------|-------------|
61
- | Confirmation header | Success icon + heading text |
62
- | Details section | Optional — rendered below confirmation header |
63
- | Done button | Primary button, bottom of the form |
59
+ | Element | Description |
60
+ | ------------------- | --------------------------------------------- |
61
+ | Confirmation header | Success icon + heading text |
62
+ | Details section | Optional — rendered below confirmation header |
63
+ | Done button | Primary button, bottom of the form |
64
64
 
65
65
  **CSS-only implementation notes:**
66
+
66
67
  - Confirm view: `display: flex; flex-direction: column; align-items: center; gap: 1.5rem; padding: 2rem`.
67
68
  - Success icon: large checkmark or success indicator, centered.
68
69
  - Confirmation heading: `font-size: 1.5rem; font-weight: 600; text-align: center`.
@@ -93,15 +94,16 @@ Displayed after a case or assignment is submitted. Shows the confirmation view (
93
94
 
94
95
  Listed design systems are examples only.
95
96
 
96
- | Design System | Success Indicator | Done Button | Layout |
97
- |---|---|---|---|
98
- | Default (CSS only) | CSS checkmark SVG | `<button class='primary'>` | Centered flexbox column |
99
- | MUI | `<CheckCircleIcon>` | `<Button variant='contained'>` | `<Box display='flex' flexDirection='column'>` |
100
- | Ant Design | `<Result status='success'>` | `<Button type='primary'>` | Ant Result component |
101
- | Chakra UI | `<CheckCircleIcon>` + `<Text>` | `<Button colorScheme='blue'>` | `<VStack>` |
102
- | Shadcn/ui | Custom icon + `<h2>` | `<Button>` | Tailwind centered div |
97
+ | Design System | Success Indicator | Done Button | Layout |
98
+ | ------------------ | ------------------------------ | ------------------------------ | --------------------------------------------- |
99
+ | Default (CSS only) | CSS checkmark SVG | `<button class='primary'>` | Centered flexbox column |
100
+ | MUI | `<CheckCircleIcon>` | `<Button variant='contained'>` | `<Box display='flex' flexDirection='column'>` |
101
+ | Ant Design | `<Result status='success'>` | `<Button type='primary'>` | Ant Result component |
102
+ | Chakra UI | `<CheckCircleIcon>` + `<Text>` | `<Button colorScheme='blue'>` | `<VStack>` |
103
+ | Shadcn/ui | Custom icon + `<h2>` | `<Button>` | Tailwind centered div |
103
104
 
104
105
  When implementing in a specific design system:
106
+
105
107
  - Done button must check remaining `toDoAssignments` before deciding whether to show ToDo view or close
106
108
  - `CLOSE_CONFIRM_VIEW` publish must happen only after confirming no assignments remain
107
109
  - `showDetails` check must guard `children[1]` access
@@ -18,44 +18,45 @@ Renders a data reference field that can be displayed as a dropdown, autocomplete
18
18
 
19
19
  ## Props
20
20
 
21
- | Prop | Type | Required | Description |
22
- |------|------|----------|-------------|
23
- | `label` | `string` | Yes | Field label |
24
- | `displayAs` | `string` | Yes | UI variant: `'dropdown'`, `'autocomplete'`, `'checkbox'`, `'radiobutton'`, `'listview'`, `'searchbox'` |
25
- | `selectionMode` | `string` | Yes | `'single'` or `'multi'` |
26
- | `displayMode` | `string` | No | `'DISPLAY_ONLY'` for read-only rendering |
27
- | `readOnly` | `boolean` | No | Alternative read-only flag |
28
- | `ruleClass` | `string` | Yes | Data page class reference |
29
- | `dataRelationship` | `string` | No | Relationship type |
30
- | `isDDSourceDeferred` | `boolean` | No | Whether data source is loaded asynchronously |
31
- | `parameters` | `object` | No | Parameters passed to the data page for deferred sources |
32
- | `allowSearch` | `boolean` | No | Show search input inside dropdown/autocomplete |
33
- | `searchIcon` | `boolean` | No | Show search icon in the field |
34
- | `numCols` | `string` | No | Column count for checkbox/radiobutton layouts: `'1'`, `'2'`, `'3'` |
35
- | `listType` | `string` | No | `'associated'` or `'datapage'` |
36
- | `fieldMetadata` | `object` | No | Extra field-level metadata |
37
- | `getPConnect` | `function` | Yes | PConnect getter |
21
+ | Prop | Type | Required | Description |
22
+ | -------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------ |
23
+ | `label` | `string` | Yes | Field label |
24
+ | `displayAs` | `string` | Yes | UI variant: `'dropdown'`, `'autocomplete'`, `'checkbox'`, `'radiobutton'`, `'listview'`, `'searchbox'` |
25
+ | `selectionMode` | `string` | Yes | `'single'` or `'multi'` |
26
+ | `displayMode` | `string` | No | `'DISPLAY_ONLY'` for read-only rendering |
27
+ | `readOnly` | `boolean` | No | Alternative read-only flag |
28
+ | `ruleClass` | `string` | Yes | Data page class reference |
29
+ | `dataRelationship` | `string` | No | Relationship type |
30
+ | `isDDSourceDeferred` | `boolean` | No | Whether data source is loaded asynchronously |
31
+ | `parameters` | `object` | No | Parameters passed to the data page for deferred sources |
32
+ | `allowSearch` | `boolean` | No | Show search input inside dropdown/autocomplete |
33
+ | `searchIcon` | `boolean` | No | Show search icon in the field |
34
+ | `numCols` | `string` | No | Column count for checkbox/radiobutton layouts: `'1'`, `'2'`, `'3'` |
35
+ | `listType` | `string` | No | `'associated'` or `'datapage'` |
36
+ | `fieldMetadata` | `object` | No | Extra field-level metadata |
37
+ | `getPConnect` | `function` | Yes | PConnect getter |
38
38
 
39
39
  ## Behavioral Contract
40
40
 
41
41
  ### Read-Only Routing
42
42
 
43
43
  If `displayMode === 'DISPLAY_ONLY'` or `readOnly === true`:
44
+
44
45
  - `selectionMode === 'single'` → render `<SingleReferenceReadOnly />`.
45
46
  - `selectionMode === 'multi'` → render `<MultiReferenceReadOnly />`.
46
47
  - Both receive all relevant props plus `getPConnect`.
47
48
 
48
49
  ### Edit Routing (by `displayAs`)
49
50
 
50
- | `displayAs` | Rendered component |
51
- |-------------|--------------------|
52
- | `'dropdown'` | Registered `Dropdown` field component |
51
+ | `displayAs` | Rendered component |
52
+ | ---------------- | ----------------------------------------- |
53
+ | `'dropdown'` | Registered `Dropdown` field component |
53
54
  | `'autocomplete'` | Registered `AutoComplete` field component |
54
- | `'checkbox'` | Registered `CheckboxGroup` with `numCols` |
55
- | `'radiobutton'` | Registered `RadioButtons` with `numCols` |
56
- | `'listview'` | Inline `ListView` sub-component |
57
- | `'searchbox'` | Inline `SearchForm` sub-component |
58
- | Default | `Dropdown` |
55
+ | `'checkbox'` | Registered `CheckboxGroup` with `numCols` |
56
+ | `'radiobutton'` | Registered `RadioButtons` with `numCols` |
57
+ | `'listview'` | Inline `ListView` sub-component |
58
+ | `'searchbox'` | Inline `SearchForm` sub-component |
59
+ | Default | `Dropdown` |
59
60
 
60
61
  ### Deferred Data Source (`isDDSourceDeferred === true`)
61
62
 
@@ -71,6 +72,7 @@ If `displayMode === 'DISPLAY_ONLY'` or `readOnly === true`:
71
72
  ### SearchForm Sub-Component
72
73
 
73
74
  When `displayAs === 'searchbox'`, renders an inline `<SearchForm>` sub-component that:
75
+
74
76
  1. Shows a text input with search icon.
75
77
  2. On submit: calls `getPConnect().getListActions().search(searchText)`.
76
78
  3. Renders the search results list below the input using `buildView`.
@@ -78,6 +80,7 @@ When `displayAs === 'searchbox'`, renders an inline `<SearchForm>` sub-component
78
80
  ## Visual Specifications
79
81
 
80
82
  **CSS-only implementation notes:**
83
+
81
84
  - Wrapper: `display: flex; flex-direction: column; gap: 4px`.
82
85
  - Label: `font-size: 0.875rem; font-weight: 500; margin-bottom: 4px`.
83
86
  - Dropdown/Autocomplete: standard select input, full-width.
@@ -106,15 +109,16 @@ When `displayAs === 'searchbox'`, renders an inline `<SearchForm>` sub-component
106
109
 
107
110
  Listed design systems are examples only.
108
111
 
109
- | Design System | Dropdown | Autocomplete | Checkbox Group | Radio Group |
110
- |---|---|---|---|---|
111
- | Default (CSS only) | `<select>` | Custom combobox | `<input type='checkbox'>` list | `<input type='radio'>` list |
112
- | MUI | `<Select>/<MenuItem>` | `<Autocomplete>` | `<FormGroup><Checkbox>` | `<RadioGroup><Radio>` |
113
- | Ant Design | `<Select>` | `<AutoComplete>` | `<Checkbox.Group>` | `<Radio.Group>` |
114
- | Chakra UI | `<Select>` | Custom | `<CheckboxGroup>` | `<RadioGroup>` |
115
- | Shadcn/ui | `<Select>` + combobox | `<Combobox>` | custom | `<RadioGroup>` |
112
+ | Design System | Dropdown | Autocomplete | Checkbox Group | Radio Group |
113
+ | ------------------ | --------------------- | ---------------- | ------------------------------ | --------------------------- |
114
+ | Default (CSS only) | `<select>` | Custom combobox | `<input type='checkbox'>` list | `<input type='radio'>` list |
115
+ | MUI | `<Select>/<MenuItem>` | `<Autocomplete>` | `<FormGroup><Checkbox>` | `<RadioGroup><Radio>` |
116
+ | Ant Design | `<Select>` | `<AutoComplete>` | `<Checkbox.Group>` | `<Radio.Group>` |
117
+ | Chakra UI | `<Select>` | Custom | `<CheckboxGroup>` | `<RadioGroup>` |
118
+ | Shadcn/ui | `<Select>` + combobox | `<Combobox>` | custom | `<RadioGroup>` |
116
119
 
117
120
  When implementing in a specific design system:
121
+
118
122
  - Always check `displayMode`/`readOnly` first and route to read-only components before rendering editable variants
119
123
  - Deferred loading must be handled — show skeleton/spinner until data is ready
120
124
  - `numCols` applies to checkbox and radiobutton layouts only