@pega/sdk 0.0.5 → 0.0.6

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 (266) hide show
  1. package/README.md +10 -3
  2. package/dist/index.js +764 -165
  3. package/package.json +1 -1
  4. package/templates/react-native-sdk-reference/.claude/settings.json +5 -0
  5. package/templates/react-native-sdk-reference/.prettierignore +17 -0
  6. package/templates/react-native-sdk-reference/.vscode/extensions.json +1 -0
  7. package/templates/react-native-sdk-reference/.vscode/settings.json +7 -0
  8. package/templates/react-native-sdk-reference/AGENTS.md +3 -0
  9. package/templates/react-native-sdk-reference/CLAUDE.md +1 -0
  10. package/templates/react-native-sdk-reference/README.md +56 -0
  11. package/templates/react-native-sdk-reference/app.json +40 -5
  12. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/expo-symbol 2.svg +3 -0
  13. package/templates/react-native-sdk-reference/assets/expo.icon/Assets/grid.png +0 -0
  14. package/templates/react-native-sdk-reference/assets/expo.icon/icon.json +35 -0
  15. package/templates/react-native-sdk-reference/assets/icons/bell.png +0 -0
  16. package/templates/react-native-sdk-reference/assets/icons/clock.png +0 -0
  17. package/templates/react-native-sdk-reference/assets/icons/cross.png +0 -0
  18. package/templates/react-native-sdk-reference/assets/icons/donut.png +0 -0
  19. package/templates/react-native-sdk-reference/assets/icons/gear.png +0 -0
  20. package/templates/react-native-sdk-reference/assets/icons/globe.png +0 -0
  21. package/templates/react-native-sdk-reference/assets/icons/internet.png +0 -0
  22. package/templates/react-native-sdk-reference/assets/icons/music.png +0 -0
  23. package/templates/react-native-sdk-reference/assets/icons/right-arrow.png +0 -0
  24. package/templates/react-native-sdk-reference/assets/icons/speed.png +0 -0
  25. package/templates/react-native-sdk-reference/assets/images/MediaCo.png +0 -0
  26. package/templates/react-native-sdk-reference/assets/images/adaptive-icon.png +0 -0
  27. package/templates/react-native-sdk-reference/assets/images/android-icon-background.png +0 -0
  28. package/templates/react-native-sdk-reference/assets/images/android-icon-foreground.png +0 -0
  29. package/templates/react-native-sdk-reference/assets/images/android-icon-monochrome.png +0 -0
  30. package/templates/react-native-sdk-reference/assets/images/expo-badge-white.png +0 -0
  31. package/templates/react-native-sdk-reference/assets/images/expo-badge.png +0 -0
  32. package/templates/react-native-sdk-reference/assets/images/expo-logo.png +0 -0
  33. package/templates/react-native-sdk-reference/assets/images/favicon.png +0 -0
  34. package/templates/react-native-sdk-reference/assets/images/icon.png +0 -0
  35. package/templates/react-native-sdk-reference/assets/images/logo-glow.png +0 -0
  36. package/templates/react-native-sdk-reference/assets/images/partial-react-logo.png +0 -0
  37. package/templates/react-native-sdk-reference/assets/images/react-logo.png +0 -0
  38. package/templates/react-native-sdk-reference/assets/images/react-logo@2x.png +0 -0
  39. package/templates/react-native-sdk-reference/assets/images/react-logo@3x.png +0 -0
  40. package/templates/react-native-sdk-reference/assets/images/splash-icon.png +0 -0
  41. package/templates/react-native-sdk-reference/assets/images/tutorial-web.png +0 -0
  42. package/templates/react-native-sdk-reference/eslint.config.mjs +68 -0
  43. package/templates/react-native-sdk-reference/package.json +59 -14
  44. package/templates/react-native-sdk-reference/pega-constellationjs-0.26.3.tgz +0 -0
  45. package/templates/react-native-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  46. package/templates/react-native-sdk-reference/pega-sdk-types-0.1.0.tgz +0 -0
  47. package/templates/react-native-sdk-reference/sdk-config.json +31 -9
  48. package/templates/react-native-sdk-reference/src/app/_layout.tsx +38 -0
  49. package/templates/react-native-sdk-reference/src/app/home/_layout.tsx +39 -0
  50. package/templates/react-native-sdk-reference/src/app/home/contact.tsx +11 -0
  51. package/templates/react-native-sdk-reference/src/app/home/index.tsx +36 -0
  52. package/templates/react-native-sdk-reference/src/app/home/shop.tsx +11 -0
  53. package/templates/react-native-sdk-reference/src/app/home/your-services.tsx +11 -0
  54. package/templates/react-native-sdk-reference/src/app/index.tsx +72 -0
  55. package/templates/react-native-sdk-reference/src/app/workarea.tsx +135 -0
  56. package/templates/react-native-sdk-reference/src/bridge/Context/StoreContext.ts +4 -0
  57. package/templates/react-native-sdk-reference/src/bridge/RootComponent.tsx +12 -0
  58. package/templates/react-native-sdk-reference/src/bridge/react_pconnect.jsx +334 -0
  59. package/templates/react-native-sdk-reference/src/components/common/DisplayField.tsx +29 -0
  60. package/templates/react-native-sdk-reference/src/components/common/FormFieldWrapper.tsx +5 -0
  61. package/templates/react-native-sdk-reference/src/components/common/HelperText.tsx +11 -0
  62. package/templates/react-native-sdk-reference/src/components/common/LabelText.tsx +22 -0
  63. package/templates/react-native-sdk-reference/src/components/common/inputTheme.ts +17 -0
  64. package/templates/react-native-sdk-reference/src/components/design-system/AutoComplete.tsx +126 -0
  65. package/templates/react-native-sdk-reference/src/components/design-system/FieldGroup.tsx +72 -0
  66. package/templates/react-native-sdk-reference/src/components/design-system/Radio.tsx +61 -0
  67. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +196 -0
  68. package/templates/react-native-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
  69. package/templates/react-native-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +89 -0
  70. package/templates/react-native-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
  71. package/templates/react-native-sdk-reference/src/components/field/Currency/Currency.tsx +84 -0
  72. package/templates/react-native-sdk-reference/src/components/field/Currency/index.tsx +1 -0
  73. package/templates/react-native-sdk-reference/src/components/field/Date/Date.tsx +94 -0
  74. package/templates/react-native-sdk-reference/src/components/field/Date/index.tsx +1 -0
  75. package/templates/react-native-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +211 -0
  76. package/templates/react-native-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
  77. package/templates/react-native-sdk-reference/src/components/field/Email/Email.tsx +81 -0
  78. package/templates/react-native-sdk-reference/src/components/field/Email/index.tsx +1 -0
  79. package/templates/react-native-sdk-reference/src/components/field/Group/Group.tsx +47 -0
  80. package/templates/react-native-sdk-reference/src/components/field/Group/index.tsx +1 -0
  81. package/templates/react-native-sdk-reference/src/components/field/Integer/Integer.tsx +84 -0
  82. package/templates/react-native-sdk-reference/src/components/field/Integer/index.tsx +1 -0
  83. package/templates/react-native-sdk-reference/src/components/field/Phone/Phone.tsx +85 -0
  84. package/templates/react-native-sdk-reference/src/components/field/Phone/index.ts +1 -0
  85. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +118 -0
  86. package/templates/react-native-sdk-reference/src/components/field/RadioButtons/index.ts +1 -0
  87. package/templates/react-native-sdk-reference/src/components/field/TextArea/TextArea.tsx +86 -0
  88. package/templates/react-native-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
  89. package/templates/react-native-sdk-reference/src/components/field/TextInput/TextInput.tsx +84 -0
  90. package/templates/react-native-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
  91. package/templates/react-native-sdk-reference/src/components/field/URL/URL.tsx +86 -0
  92. package/templates/react-native-sdk-reference/src/components/field/URL/index.tsx +1 -0
  93. package/templates/react-native-sdk-reference/src/components/helpers/data_page.ts +20 -0
  94. package/templates/react-native-sdk-reference/src/components/helpers/event-utils.ts +20 -0
  95. package/templates/react-native-sdk-reference/src/components/helpers/instructions-utils.ts +57 -0
  96. package/templates/react-native-sdk-reference/src/components/helpers/state-utils.tsx +46 -0
  97. package/templates/react-native-sdk-reference/src/components/helpers/template-utils.ts +75 -0
  98. package/templates/react-native-sdk-reference/src/components/helpers/utils.ts +339 -0
  99. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/ActionButtons.tsx +63 -0
  100. package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/index.tsx +1 -0
  101. package/templates/react-native-sdk-reference/src/components/infra/Assignment/Assignment.tsx +348 -0
  102. package/templates/react-native-sdk-reference/src/components/infra/Assignment/index.tsx +1 -0
  103. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/AssignmentCard.tsx +56 -0
  104. package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/index.tsx +1 -0
  105. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/FlowContainer.tsx +57 -0
  106. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/helpers.ts +137 -0
  107. package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/index.tsx +1 -0
  108. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/RootContainer.tsx +52 -0
  109. package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/index.tsx +1 -0
  110. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/helper.ts +128 -0
  111. package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/index.tsx +59 -0
  112. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/ViewContainer.tsx +31 -0
  113. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/helper.ts +39 -0
  114. package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/index.ts +1 -0
  115. package/templates/react-native-sdk-reference/src/components/infra/Containers/helper.ts +9 -0
  116. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/ErrorBoundary.tsx +53 -0
  117. package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/index.tsx +1 -0
  118. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/MultiStep.tsx +24 -0
  119. package/templates/react-native-sdk-reference/src/components/infra/MultiStep/index.ts +1 -0
  120. package/templates/react-native-sdk-reference/src/components/infra/Reference/Reference.tsx +68 -0
  121. package/templates/react-native-sdk-reference/src/components/infra/Reference/index.tsx +1 -0
  122. package/templates/react-native-sdk-reference/src/components/infra/Reference/utils.ts +16 -0
  123. package/templates/react-native-sdk-reference/src/components/infra/Region/Region.tsx +10 -0
  124. package/templates/react-native-sdk-reference/src/components/infra/Region/index.tsx +1 -0
  125. package/templates/react-native-sdk-reference/src/components/infra/View/View.tsx +49 -0
  126. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +38 -0
  127. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
  128. package/templates/react-native-sdk-reference/src/components/template/DefaultForm/utils/index.ts +28 -0
  129. package/templates/react-native-sdk-reference/src/components/template/Details/Details.tsx +82 -0
  130. package/templates/react-native-sdk-reference/src/components/template/Details/index.tsx +1 -0
  131. package/templates/react-native-sdk-reference/src/components/template/OneColumn/OneColumn.tsx +29 -0
  132. package/templates/react-native-sdk-reference/src/components/template/OneColumn/index.tsx +1 -0
  133. package/templates/react-native-sdk-reference/src/context/LoaderContext.tsx +42 -0
  134. package/templates/react-native-sdk-reference/src/mediaco/AdvBanner.tsx +62 -0
  135. package/templates/react-native-sdk-reference/src/mediaco/Header.tsx +60 -0
  136. package/templates/react-native-sdk-reference/src/mediaco/HomeScreen.tsx +78 -0
  137. package/templates/react-native-sdk-reference/src/mediaco/QuickActions.tsx +68 -0
  138. package/templates/react-native-sdk-reference/src/mediaco/ResolutionScreen.tsx +48 -0
  139. package/templates/react-native-sdk-reference/src/mediaco/SafeArea.tsx +11 -0
  140. package/templates/react-native-sdk-reference/src/mediaco/TabBar.tsx +102 -0
  141. package/templates/react-native-sdk-reference/src/mediaco/YourServices.tsx +90 -0
  142. package/templates/react-native-sdk-reference/src/sdk-pega-component-map.ts +64 -0
  143. package/templates/react-native-sdk-reference/src/types/PConnProps.d.ts +41 -0
  144. package/templates/react-native-sdk-reference/src/utils/auth.ts +62 -0
  145. package/templates/react-native-sdk-reference/src/utils/init-pcore.ts +37 -0
  146. package/templates/react-native-sdk-reference/src/utils/pcore-polyfills.ts +66 -0
  147. package/templates/react-native-sdk-reference/tsconfig.json +9 -8
  148. package/templates/react-sdk-reference/.ai-common/agents/embedded-flow-expert.md +171 -0
  149. package/templates/react-sdk-reference/.ai-common/agents/implementation-expert.md +25 -26
  150. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions-embedded.md +119 -0
  151. package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions.md +70 -121
  152. package/templates/react-sdk-reference/.ai-common/instructions/component-map.md +7 -19
  153. package/templates/react-sdk-reference/.ai-common/instructions/dse-component.md +10 -40
  154. package/templates/react-sdk-reference/.ai-common/instructions/embedded-component.md +134 -0
  155. package/templates/react-sdk-reference/.ai-common/instructions/field-component.md +15 -43
  156. package/templates/react-sdk-reference/.ai-common/instructions/template-component.md +11 -63
  157. package/templates/react-sdk-reference/.ai-common/instructions/widget-component.md +12 -57
  158. package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +45 -71
  159. package/templates/react-sdk-reference/.ai-common/prompts/component-manifest.json +98 -0
  160. package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +155 -0
  161. package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +67 -237
  162. package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +26 -77
  163. package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +315 -0
  164. package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +31 -80
  165. package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +43 -99
  166. package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +33 -83
  167. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/AlertBanner.md +60 -74
  168. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +64 -84
  169. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +76 -109
  170. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/DetailsFields.md +84 -101
  171. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroup.md +62 -87
  172. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroupList.md +56 -76
  173. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldValueList.md +61 -85
  174. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Operator.md +84 -107
  175. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Pulse.md +36 -44
  176. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +125 -189
  177. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/WssQuickCreate.md +34 -50
  178. package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +57 -179
  179. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +130 -0
  180. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +311 -0
  181. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +156 -0
  182. package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +476 -0
  183. package/templates/react-sdk-reference/.ai-common/skills/field-components.md +120 -242
  184. package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +71 -212
  185. package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +47 -209
  186. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +90 -259
  187. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +75 -169
  188. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +65 -160
  189. package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +59 -157
  190. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +55 -134
  191. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +61 -185
  192. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +60 -138
  193. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Group.md +40 -99
  194. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +44 -111
  195. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +57 -165
  196. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Multiselect.md +41 -122
  197. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ObjectReference.md +32 -130
  198. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +48 -112
  199. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +43 -153
  200. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +76 -183
  201. package/templates/react-sdk-reference/.ai-common/skills/field-skills/RichText.md +59 -176
  202. package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +30 -123
  203. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +47 -178
  204. package/templates/react-sdk-reference/.ai-common/skills/field-skills/SemanticLink.md +31 -117
  205. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +51 -106
  206. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextContent.md +22 -75
  207. package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +54 -116
  208. package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +46 -100
  209. package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +44 -93
  210. package/templates/react-sdk-reference/.ai-common/skills/field-skills/UserReference.md +40 -167
  211. package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +165 -0
  212. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/ActionButtons.md +122 -0
  213. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/MultiStep.md +178 -0
  214. package/templates/react-sdk-reference/.ai-common/skills/infra-skills/Stages.md +140 -0
  215. package/templates/react-sdk-reference/.ai-common/skills/template-components.md +74 -228
  216. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +66 -167
  217. package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +57 -170
  218. package/templates/react-sdk-reference/.ai-common/skills/template-skills/BannerPage.md +41 -76
  219. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +53 -109
  220. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +86 -289
  221. package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +60 -185
  222. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +66 -115
  223. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DataReference.md +33 -68
  224. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +53 -133
  225. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultPage.md +39 -82
  226. package/templates/react-sdk-reference/.ai-common/skills/template-skills/Details.md +38 -91
  227. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsSubTabs.md +47 -101
  228. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsThreeColumn.md +27 -34
  229. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsTwoColumn.md +25 -40
  230. package/templates/react-sdk-reference/.ai-common/skills/template-skills/DynamicTabs.md +34 -104
  231. package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +46 -147
  232. package/templates/react-sdk-reference/.ai-common/skills/template-skills/HierarchicalForm.md +139 -100
  233. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboard.md +43 -82
  234. package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md +47 -80
  235. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListPage.md +16 -29
  236. package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +43 -228
  237. package/templates/react-sdk-reference/.ai-common/skills/template-skills/MultiReferenceReadOnly.md +20 -65
  238. package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +49 -97
  239. package/templates/react-sdk-reference/.ai-common/skills/template-skills/OneColumn.md +37 -71
  240. package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +58 -148
  241. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +82 -107
  242. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SimpleTable.md +21 -60
  243. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +43 -100
  244. package/templates/react-sdk-reference/.ai-common/skills/template-skills/SubTabs.md +36 -76
  245. package/templates/react-sdk-reference/.ai-common/skills/template-skills/TwoColumn.md +41 -90
  246. package/templates/react-sdk-reference/.ai-common/skills/template-skills/WideNarrow.md +36 -43
  247. package/templates/react-sdk-reference/.ai-common/skills/template-skills/WssNavBar.md +25 -115
  248. package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +38 -174
  249. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +30 -57
  250. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +55 -101
  251. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/CaseHistory.md +38 -121
  252. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/FileUtility.md +37 -98
  253. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Followers.md +18 -33
  254. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/QuickCreate.md +26 -91
  255. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/SummaryItem.md +28 -120
  256. package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +41 -272
  257. package/templates/react-sdk-reference/package.json +1 -1
  258. package/templates/react-sdk-reference/pega-auth-0.2.44.tgz +0 -0
  259. package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
  260. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +13 -3
  261. package/templates/react-native-sdk-reference/.github/AGENTS.md +0 -23
  262. package/templates/react-native-sdk-reference/.github/copilot-instructions.md +0 -40
  263. package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +0 -48
  264. package/templates/react-native-sdk-reference/App.tsx +0 -49
  265. package/templates/react-native-sdk-reference/expo-env.d.ts +0 -3
  266. package/templates/react-sdk-reference/pega-auth-0.2.42.tgz +0 -0
@@ -8,76 +8,50 @@ Page template that wraps the `Banner` DSE component, rendering a hero image sect
8
8
 
9
9
  ## Component Purpose
10
10
 
11
- A thin template wrapper that delegates entirely to the `Banner` DSE component. Translates page-template props (heading, message, layout, backgroundImage) into `Banner`'s props and passes the first two React children as the `a` (left) and `b` (right) content slot.
11
+ A thin template wrapper that delegates entirely to the `Banner` DSE component. Translates page-template inputs (heading, message, layout, backgroundImage) into the Banner component's inputs and passes the first two children as the `a` (left) and `b` (right) content slot.
12
12
 
13
13
  ## Pega Metadata
14
14
 
15
- - **Registration key:** `BannerPage` (in `component-map.ts`)
15
+ - **Registration key:** `BannerPage` (in the project's component map)
16
16
  - **Category:** Page template
17
- - **Extends:** `PConnProps`
18
-
19
- ## Props
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` |
31
-
32
- ## Component Skeleton
33
-
34
- Simplest template — pure pass-through to `Banner` DSE component.
35
-
36
- ```typescript
37
- import { Children, type PropsWithChildren, useMemo } from 'react';
38
- import { getComponentFromRegistry } from '@pega/sdk-react';
39
- import type { PConnProps } from '@pega/sdk-react';
40
-
41
- interface BannerPageProps extends PConnProps {
42
- layout?: string;
43
- heading?: string;
44
- message?: string;
45
- imageTheme?: string;
46
- backgroundImage?: string;
47
- backgroundColor?: string;
48
- tintImage?: boolean;
49
- }
50
-
51
- export default function BannerPage(props: PropsWithChildren<BannerPageProps>) {
52
- const Banner = getComponentFromRegistry('Banner');
53
- const {
54
- children, layout = 'two-column', heading = '', message = '',
55
- imageTheme = 'light', backgroundImage = '', backgroundColor = '', tintImage = false,
56
- } = props;
57
-
58
- const childArray = useMemo(() => Children.toArray(children), [children]);
59
-
60
- return (
61
- <Banner
62
- variant={layout}
63
- a={childArray[0]}
64
- b={childArray[1]}
65
- banner={{ variant: imageTheme, backgroundColor, title: heading, message, backgroundImage, tintImage }}
66
- />
67
- );
68
- }
69
- ```
17
+ - **Extends:** the project's base component interface
18
+
19
+ ## Inputs
20
+
21
+ | Input | Type | Required | Description |
22
+ | ----------------- | ----------------------- | -------- | ---------------------------------------------------------------------------------------------- |
23
+ | `children` | array of child elements | 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
+
32
+ ## Implementation Structure
33
+
34
+ Simplest template — pure pass-through to the `Banner` DSE component.
35
+
36
+ **Module Setup:** This component requires access to the project's component registry (to resolve `Banner` at runtime) and the project's base component interface. Define a component input contract extending the base component interface with optional `layout`, `heading`, `message`, `imageTheme`, `backgroundImage`, `backgroundColor` (all strings), and `tintImage` (boolean).
37
+
38
+ **Main Component Logic** — steps in order:
39
+
40
+ 1. Retrieve `Banner` from the project's component registry (keyed by `'Banner'`).
41
+ 2. Receive inputs: `children`, `layout` (default `'two-column'`), `heading` (default `''`), `message` (default `''`), `imageTheme` (default `'light'`), `backgroundImage` (default `''`), `backgroundColor` (default `''`), and `tintImage` (default `false`).
42
+ 3. Normalize `children` to an array via a memoized computation keyed on `children`.
43
+ 4. Render a single `Banner` element with: `variant={layout}`; `a={childArray[0]}`; `b={childArray[1]}`; and a `banner` input object combining `variant: imageTheme`, `backgroundColor`, `title: heading`, `message`, `backgroundImage`, and `tintImage`.
70
44
 
71
45
  ## Behavioral Contract
72
46
 
73
- 1. Retrieve `Banner` from the component registry via `getComponentFromRegistry('Banner')`.
74
- 2. Convert `children` to an array using `Children.toArray(children)` (memoized).
75
- 3. Render `<Banner>` with the following props:
47
+ 1. Retrieve `Banner` from the project's component registry (keyed by `'Banner'`).
48
+ 2. Normalize `children` to an array (memoized computation).
49
+ 3. Render `Banner` with the following inputs:
76
50
  - `variant={layout}` — controls column widths below the hero
77
51
  - `a={childArray[0]}` — left/first column content
78
52
  - `b={childArray[1]}` — right/second column content
79
53
  - `banner={{ variant: imageTheme, backgroundColor, title: heading, message, backgroundImage, tintImage }}`
80
- 4. No additional wrapper or layout — this component IS a single `<Banner>` render.
54
+ 4. No additional wrapper or layout — this component IS a single `Banner` render.
81
55
 
82
56
  ## Visual Specifications
83
57
 
@@ -91,35 +65,26 @@ Key visual behaviors inherited from `Banner`:
91
65
  **CSS-only implementation notes:**
92
66
 
93
67
  - This template creates no CSS of its own — implement it as a pure pass-through to `Banner`.
94
- - The `layout` prop maps directly to `Banner`'s `variant` prop.
68
+ - The `layout` input maps directly to `Banner`'s `variant` input.
95
69
  - `heading` → `Banner.banner.title`, `message` → `Banner.banner.message`.
96
70
 
97
71
  ## Edge Cases & Special Logic
98
72
 
99
- - Children are memoized: `useMemo(() => Children.toArray(children), [children])` — only recomputed when `children` changes.
73
+ - Children are normalized to an array via a memoized computation — only recomputed when `children` changes.
100
74
  - If only one child is provided, `childArray[1]` will be `undefined` — `Banner` receives `b={undefined}` and should render an empty second column.
101
- - `BannerPage` does NOT call `getPConnect()` itself for layout — children are React children (passed by the Pega rendering engine).
75
+ - `BannerPage` does NOT call `getPConnect()` itself for layout — children are passed by the Pega rendering engine via content projection.
102
76
 
103
77
  ## Dependencies
104
78
 
105
- - `getComponentFromRegistry('Banner')` from `@pega/sdk-react` — all rendering delegated to `Banner`
106
- - `Children.toArray` from React — for child array normalization
79
+ - The project's component registry — to resolve the `Banner` component at runtime
80
+ - A utility to normalize children to an array — for child array normalization
107
81
 
108
82
  ## Design System Mapping
109
83
 
110
84
  **UI control type:** Full-width banner hero page with configurable two-column content area.
111
85
 
112
- Listed design systems are examples only.
113
-
114
- | Design System | Recommended Component |
115
- | ------------------ | -------------------------------------------------------------------- |
116
- | Default (CSS only) | Pass-through to `Banner` — implement Banner's CSS hero + grid layout |
117
- | MUI | Pass-through to `Banner` (MUI-based) |
118
- | Ant Design | Pass-through to `Banner` (Ant-based) |
119
- | Chakra UI | Pass-through to `Banner` (Chakra-based) |
120
- | Shadcn/ui | Pass-through to `Banner` (Shadcn-based) |
121
-
122
- When implementing in a specific design system:
86
+ When implementing in a specific design system, map the following:
123
87
 
124
88
  - `BannerPage` is always a thin wrapper — implement `Banner` first, then `BannerPage` simply delegates to it
125
- - Prop mapping: `layout` → `variant`, `heading` → `banner.title`, `message` → `banner.message`, `backgroundImage` → `banner.backgroundImage`
89
+ - Input mapping: `layout` → `variant`, `heading` → `banner.title`, `message` → `banner.message`, `backgroundImage` → `banner.backgroundImage`
90
+ - The Banner component renders a hero section (full-width background image with title/message overlay) plus a two-column content grid below; use your design system's layout primitives to achieve this
@@ -1,127 +1,75 @@
1
1
  # Skill: CaseSummary
2
2
 
3
- Case summary template. Renders a summary panel with primary and secondary case fields, derived from either props or child region extraction.
3
+ Case summary template. Renders a summary panel with primary and secondary case fields, derived from either inputs or child region extraction.
4
4
 
5
5
  > **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
6
6
 
7
7
  ---
8
8
 
9
- > ⚠️ **CRITICAL — Children extraction is MANDATORY**
9
+ > ⚠️ **CRITICAL — Children-based field resolution is MANDATORY**
10
10
  >
11
- > The `arPrimaryFields` and `arSecondaryFields` props are almost always EMPTY at runtime. The Pega engine passes field data as **React children** (regions named "primary fields" and "secondary fields"), not as pre-computed array props.
11
+ > The `arPrimaryFields` and `arSecondaryFields` inputs are almost always EMPTY at runtime. The Pega engine passes field data as region children, not as pre-computed array inputs.
12
12
  >
13
- > You MUST include the children-extraction block:
13
+ > You MUST include children-based field extraction: when both `arPrimaryFields` and `arSecondaryFields` are empty, iterate the `children` and for each child, access its PConnect instance via the child element's **passed properties** (the `getPConnect` function is available on the child's properties, not directly on the child element itself). Then call `resolveConfigProps(getRawMetadata())` on that PConnect instance to resolve `@P` property references and `@L` label references into actual values. Check the resolved `name` (case-insensitive) to identify "primary fields" and "secondary fields" regions, and assign their resolved `children` arrays.
14
14
  >
15
- > ```typescript
16
- > if (arPrimaryFields.length === 0 && arSecondaryFields.length === 0) {
17
- > for (const child of childArr) {
18
- > const childPConn = child.props.getPConnect();
19
- > const childPConnData = childPConn.resolveConfigProps(childPConn.getRawMetadata());
20
- > if (childPConnData.name.toLowerCase() === 'primary fields') {
21
- > arPrimaryFields = childPConnData.children;
22
- > } else if (childPConnData.name.toLowerCase() === 'secondary fields') {
23
- > arSecondaryFields = childPConnData.children;
24
- > }
25
- > }
26
- > }
27
- > ```
15
+ > **Key:** Access `getPConnect` from the child element's **passed properties** (NOT directly on the child). Children passed to page templates are rendered elements — `getPConnect` is available on their properties, not as a top-level method.
28
16
  >
29
- > Without this, the summary will render completely empty.
17
+ > **DO NOT** use `filterSummaryFields()`, `getSDKCaseUtils()`, or any other shortcut API to obtain summary fields. These APIs return raw unresolved metadata containing `@L` and `@P` tokens that will render as literal text. Only the children-based extraction with `resolveConfigProps(getRawMetadata())` resolves these tokens into actual values.
18
+ >
19
+ > Without this extraction, the summary will render completely empty or show unresolved `@P`/`@L` references.
30
20
 
31
21
  ## Component Purpose
32
22
 
33
- Displays a case's key summary data in a structured summary panel. Primary fields are shown prominently; secondary fields are shown with labels. Data is sourced either directly from props or by extracting child regions. All field values are localized before display.
23
+ Displays a case's key summary data in a structured summary panel. Primary fields are shown prominently; secondary fields are shown with labels. Data is sourced either directly from inputs or by extracting child regions. All field values are localized before display.
34
24
 
35
25
  ## Pega Metadata
36
26
 
37
- - **Registration key:** `CaseSummary` (in `component-map.ts`)
27
+ - **Registration key:** `CaseSummary` (in the project's component map)
38
28
  - **Category:** Page template — summary
39
- - **Extends:** `PConnProps`
40
-
41
- ## Props
42
-
43
- | Prop | Type | Required | Description |
44
- | ------------------- | ------------- | -------- | ------------------------------------------------------- |
45
- | `children` | `ReactNode[]` | No | Region children when fields come from PConnect metadata |
46
- | `arPrimaryFields` | `array` | No | Array of primary field objects (direct prop) |
47
- | `arSecondaryFields` | `array` | No | Array of secondary field objects (direct prop) |
48
- | `getPConnect` | `function` | Yes | PConnect getter |
49
-
50
- ## Component Skeleton
51
-
52
- ```typescript
53
- import type { PropsWithChildren, ReactElement } from 'react';
54
- import { getComponentFromRegistry } from '@pega/sdk-react';
55
- import type { PConnProps } from '@pega/sdk-react';
56
-
57
- interface CaseSummaryProps extends PConnProps {
58
- arPrimaryFields: any[];
59
- arSecondaryFields: any[];
60
- }
61
-
62
- export default function CaseSummary(props: PropsWithChildren<CaseSummaryProps>) {
63
- const CaseSummaryFields = getComponentFromRegistry('CaseSummaryFields');
64
- const { children } = props;
65
- let { arPrimaryFields = [], arSecondaryFields = [] } = props;
66
-
67
- const localizedVal = PCore.getLocaleUtils().getLocaleValue;
68
- const localeCategory = 'ModalContainer';
69
-
70
- // 1. Helper: create component from metadata and return { value: createdComponent }
71
- function prepareComponentInCaseSummary(pConnectMeta, getPConnect) { /* ... */ }
72
-
73
- // 2. Helper: convert children to summary data array
74
- function prepareCaseSummaryData(summaryFieldChildren) { /* ... */ }
75
-
76
- // 3. If direct props empty, extract from children regions
77
- if (arPrimaryFields.length === 0 && arSecondaryFields.length === 0) {
78
- for (const child of children as ReactElement[]) {
79
- const childPConn = (child as ReactElement).props.getPConnect();
80
- const childPConnData = childPConn.resolveConfigProps(childPConn.getRawMetadata());
81
- if (childPConnData.name.toLowerCase() === 'primary fields') {
82
- arPrimaryFields = childPConnData.children;
83
- arPrimaryFields.forEach(field => {
84
- if (field.config?.value && typeof field.config?.value === 'string')
85
- field.config.value = localizedVal(field.config.value, localeCategory);
86
- });
87
- } else if (childPConnData.name.toLowerCase() === 'secondary fields') {
88
- const secondarySummaryFields = prepareCaseSummaryData(childPConn);
89
- arSecondaryFields = childPConnData.children;
90
- arSecondaryFields.forEach((field, index) => {
91
- field.config.displayLabel = secondarySummaryFields[index]?.value?.props?.label;
92
- });
93
- }
94
- }
95
- }
96
-
97
- // 4. Render
98
- return (
99
- <div id="CaseSummary">
100
- <CaseSummaryFields theFields={arPrimaryFields} />
101
- <CaseSummaryFields theFields={arSecondaryFields} />
102
- </div>
103
- );
104
- }
105
- ```
29
+ - **Extends:** the project's base component interface
30
+
31
+ ## Inputs
32
+
33
+ | Input | Type | Required | Description |
34
+ | ------------------- | ------------------ | -------- | ------------------------------------------------------- |
35
+ | `children` | renderable content | No | Region children when fields come from PConnect metadata |
36
+ | `arPrimaryFields` | `array` | No | Array of primary field objects (direct input) |
37
+ | `arSecondaryFields` | `array` | No | Array of secondary field objects (direct input) |
38
+ | `getPConnect` | `function` | Yes | PConnect getter |
39
+
40
+ ## Implementation Structure
41
+
42
+ **Module Setup:** Obtain the project's base component interface for typing. Obtain the project's component registry for resolving child components at runtime.
43
+
44
+ **Main Component Logic** — steps in order:
45
+
46
+ 1. Retrieve `CaseSummaryFields` from the project's component registry.
47
+ 2. Receive inputs: extract `children`, and `arPrimaryFields`/`arSecondaryFields` (both defaulting to empty arrays) as mutable bindings.
48
+ 3. Set up localization: `localizedVal = PCore.getLocaleUtils().getLocaleValue` and `localeCategory = 'ModalContainer'`.
49
+ 4. Define a helper `prepareComponentInCaseSummary(pConnectMeta, getPConnect)` that creates a component from metadata and returns `{ value: createdComponent }`.
50
+ 5. Define a helper `prepareCaseSummaryData(summaryFieldChildren)` that converts children into a summary data array.
51
+ 6. If both `arPrimaryFields` and `arSecondaryFields` are empty, iterate the `children`: for each child element, access its PConnect instance via the child's **passed properties** (the `getPConnect` function lives on the element's properties, not directly on the element). Call `resolveConfigProps(getRawMetadata())` on that PConnect instance — this resolves `@P` property references and `@L` label references into actual values. Check the resolved object's `name` (case-insensitive): when it equals `'primary fields'`, assign its `children` array to `arPrimaryFields` and localize each field's string `config.value`; when it equals `'secondary fields'`, assign its `children` array to `arSecondaryFields` and localize each field's string `config.value`.
52
+ 7. Render a container element with id `CaseSummary` containing two `CaseSummaryFields` instances — one with `theFields` set to `arPrimaryFields`, the other with `theFields` set to `arSecondaryFields`.
106
53
 
107
54
  ## Behavioral Contract
108
55
 
109
56
  ### Field Sourcing
110
57
 
111
- Two modes — prefer direct props if provided:
58
+ Two modes — prefer direct inputs if provided:
112
59
 
113
- **Mode A — Direct props:**
60
+ **Mode A — Direct inputs:**
114
61
 
115
62
  - `arPrimaryFields` and `arSecondaryFields` are passed directly.
116
63
  - Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` to localize values.
117
64
 
118
- **Mode B — Child extraction:**
65
+ **Mode B — Children-based extraction:**
119
66
 
120
- - Extract primary and secondary regions from `children` by type/name matching.
121
- - Primary region: first region child (or `type === 'Region' && name === 'Primary'`).
122
- - Secondary region: second region child (or `type === 'Region' && name === 'Secondary'`).
123
- - Build field arrays from the extracted region children metadata.
124
- - Then call `prepareCaseSummaryData(...)` as in Mode A.
67
+ - Iterate the `children` content-projected elements.
68
+ - For each child, access its PConnect via the child element's **passed properties** (NOT directly on the child element).
69
+ - Call `resolveConfigProps(getRawMetadata())` on the PConnect instance — this resolves `@P` property references and `@L` label references into actual runtime values.
70
+ - Check the resolved `name` (case-insensitive) to identify "primary fields" and "secondary fields" regions.
71
+ - Assign the resolved region's `children` array to the appropriate field list.
72
+ - Localize each field's string `config.value` via `PCore.getLocaleUtils().getLocaleValue(value, localeCategory)`.
125
73
 
126
74
  ### `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)`
127
75
 
@@ -133,14 +81,14 @@ Helper that:
133
81
 
134
82
  ### Render
135
83
 
136
- Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
84
+ Delegates entirely to `CaseSummaryFields` (a DSE component resolved from the project's component registry), passing:
137
85
 
138
86
  - `arPrimaryFields` — array of `{ name, value }` objects for primary display
139
87
  - `arSecondaryFields` — array of `{ name, value, displayLabel }` objects for secondary display
140
88
 
141
89
  ## Visual Specifications
142
90
 
143
- - `<CaseSummaryFields>` handles all rendering — see the DSE component skill for details.
91
+ - `CaseSummaryFields` handles all rendering — see the DSE component skill for details.
144
92
  - Primary fields: large text, no label.
145
93
  - Secondary fields: label + value pairs.
146
94
 
@@ -153,32 +101,28 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
153
101
 
154
102
  ## Edge Cases & Special Logic
155
103
 
156
- - If both `arPrimaryFields` prop and children are present, the direct prop takes priority.
104
+ - If both `arPrimaryFields` input and children are present, the direct input takes priority.
157
105
  - `prepareCaseSummaryData` — guard against undefined/null field values before passing to `getLocaleValue`.
158
106
  - `displayLabel` on secondary fields controls whether the field label is shown alongside the value.
159
107
  - If `arSecondaryFields` is empty, the secondary section is not rendered.
160
108
 
161
109
  ## Dependencies
162
110
 
163
- - `prepareCaseSummaryData` from `./utils` (local helper)
164
- - `CaseSummaryFields` — DSE component registered in the component registry
111
+ - `prepareCaseSummaryData` — local helper within this component
112
+ - `CaseSummaryFields` — DSE component resolved from the project's component registry
165
113
  - `PCore.getLocaleUtils().getLocaleValue()` — value localization
166
114
 
167
115
  ## Design System Mapping
168
116
 
169
117
  **UI control type:** Read-only case summary panel with primary and secondary field groups.
170
118
 
171
- Listed design systems are examples only.
119
+ When implementing in a specific design system, map the following:
172
120
 
173
- | Design System | Recommended Approach |
174
- | ------------------ | -------------------------------------------------- |
175
- | Default (CSS only) | Flexbox column with CSS-styled field rows |
176
- | MUI | `<Typography>` variants for primary/secondary text |
177
- | Ant Design | `<Descriptions>` with `bordered={false}` |
178
- | Chakra UI | `<VStack>` with `<Text>` variants |
179
- | Shadcn/ui | Custom `<dl>/<dt>/<dd>` or card |
121
+ - **Primary fields:** Use a prominent text element (e.g., a heading or bold typography variant) to display values without labels.
122
+ - **Secondary fields:** Use label + value pairs in a description-list style layout (e.g., a vertical list of term/definition pairs, or a compact grid of label-value rows).
123
+ - **Container:** A vertical stack or flexbox column with consistent spacing between field groups.
180
124
 
181
- When implementing in a specific design system:
125
+ Regardless of design system:
182
126
 
183
127
  - Always localize field values before display — use `PCore.getLocaleUtils().getLocaleValue()`
184
128
  - `CaseSummaryFields` is a DSE component — implement it separately and call it from here