@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
@@ -0,0 +1,94 @@
1
+ import { useState } from 'react';
2
+ import { DatePickerInput } from 'react-native-paper-dates';
3
+
4
+ import FormFieldWrapper from '../../common/FormFieldWrapper';
5
+ import DisplayField from '../../common/DisplayField';
6
+ import HelperText from '../../common/HelperText';
7
+ import { FORM_INPUT_THEME } from '../../common/inputTheme';
8
+ import handleEvent from '../../helpers/event-utils';
9
+ import { PConnFieldProps } from '@/types/PConnProps';
10
+
11
+ function getFormattedDate(date: Date) {
12
+ return `${date.getFullYear()}-${(date.getMonth() + 1)
13
+ .toString()
14
+ .padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
15
+ }
16
+
17
+ function getDateValue(date: string): Date | undefined {
18
+ const parts = date.split('-');
19
+ if (parts.length !== 3) {
20
+ return;
21
+ }
22
+ const year = parseInt(parts[0], 10);
23
+ const month = parseInt(parts[1], 10) - 1; // Months are zero-based in JavaScript
24
+ const day = parseInt(parts[2], 10);
25
+ return new window.Date(year, month, day);
26
+ }
27
+
28
+ interface DateProps extends PConnFieldProps {
29
+ // If any, enter additional props that only exist on TextInput here
30
+ fieldMetadata?: any;
31
+ additionalProps?: object;
32
+ }
33
+
34
+ export default function Date(props: DateProps) {
35
+ const {
36
+ getPConnect,
37
+ label,
38
+ value = '',
39
+ validatemessage,
40
+ helperText,
41
+ status,
42
+ displayMode,
43
+ hideLabel,
44
+ disabled,
45
+
46
+ readOnly,
47
+ } = props;
48
+
49
+ const pConn = getPConnect();
50
+ const actions = pConn.getActionsApi();
51
+ const propName = (pConn.getStateProps() as any).value;
52
+
53
+ const helperTextToDisplay = validatemessage || helperText;
54
+
55
+ const [inputDate, setInputDate] = useState<Date | undefined>(getDateValue(value));
56
+
57
+ const handleDateChange = (d: Date | undefined) => {
58
+ if (!d) {
59
+ return;
60
+ }
61
+ setInputDate(d);
62
+ handleEvent(actions, 'changeNblur', propName, getFormattedDate(d));
63
+ };
64
+
65
+ if (['STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(displayMode || '')) {
66
+ return (
67
+ <DisplayField
68
+ type="date"
69
+ label={label}
70
+ value={value}
71
+ hideLabel={hideLabel}
72
+ variant={displayMode === 'STACKED_LARGE_VAL' ? 'stacked' : 'inline'}
73
+ />
74
+ );
75
+ }
76
+
77
+ return (
78
+ <FormFieldWrapper>
79
+ <DatePickerInput
80
+ mode="outlined"
81
+ locale="en"
82
+ theme={FORM_INPUT_THEME}
83
+ label={label}
84
+ value={inputDate}
85
+ onChange={handleDateChange}
86
+ inputMode="start"
87
+ hasError={status === 'error'}
88
+ readOnly={readOnly}
89
+ disabled={disabled}
90
+ />
91
+ <HelperText type={status === 'error' ? 'error' : 'info'} value={helperTextToDisplay} />
92
+ </FormFieldWrapper>
93
+ );
94
+ }
@@ -0,0 +1 @@
1
+ export { default } from './Date';
@@ -0,0 +1,211 @@
1
+ import isDeepEqual from 'fast-deep-equal/react';
2
+ import { useEffect, useState } from 'react';
3
+ import { Dropdown as RNDropdown } from 'react-native-paper-dropdown';
4
+ import { TextInput } from 'react-native-paper';
5
+
6
+ import FormFieldWrapper from '../../common/FormFieldWrapper';
7
+ import HelperText from '../../common/HelperText';
8
+ import { FORM_INPUT_PROPS } from '../../common/inputTheme';
9
+ import { getDataPage } from '../../helpers/data_page';
10
+ import handleEvent from '../../helpers/event-utils';
11
+ import Utils from '../../helpers/utils';
12
+ import DisplayField from '../../common/DisplayField';
13
+
14
+ function CustomDropdownInput(props: any) {
15
+ const { placeholder, label, rightIcon, selectedLabel, mode, disabled, error } = props;
16
+
17
+ return (
18
+ <TextInput
19
+ {...FORM_INPUT_PROPS}
20
+ placeholder={placeholder}
21
+ label={label}
22
+ value={selectedLabel}
23
+ right={rightIcon}
24
+ mode={mode}
25
+ editable={false}
26
+ disabled={disabled}
27
+ error={error}
28
+ />
29
+ );
30
+ }
31
+
32
+ interface IOption {
33
+ key: string;
34
+ value: string;
35
+ }
36
+
37
+ const flattenParameters = (params = {}) => {
38
+ const flatParams = {};
39
+ Object.keys(params).forEach((key) => {
40
+ const { name, value: theVal } = params[key];
41
+ flatParams[name] = theVal;
42
+ });
43
+
44
+ return flatParams;
45
+ };
46
+
47
+ const preProcessColumns = (columnList) => {
48
+ return columnList.map((col) => {
49
+ const tempColObj = { ...col };
50
+ tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;
51
+ return tempColObj;
52
+ });
53
+ };
54
+
55
+ const getDisplayFieldsMetaData = (columnList) => {
56
+ const displayColumns = columnList.filter((col) => col.display === 'true');
57
+ const metaDataObj: any = { key: '', primary: '', secondary: [] };
58
+ const keyCol = columnList.filter((col) => col.key === 'true');
59
+ metaDataObj.key = keyCol.length > 0 ? keyCol[0].value : 'auto';
60
+ for (let index = 0; index < displayColumns.length; index += 1) {
61
+ if (displayColumns[index].primary === 'true') {
62
+ metaDataObj.primary = displayColumns[index].value;
63
+ } else {
64
+ metaDataObj.secondary.push(displayColumns[index].value);
65
+ }
66
+ }
67
+ return metaDataObj;
68
+ };
69
+
70
+ export default function Dropdown(props: any) {
71
+ const {
72
+ getPConnect,
73
+ label,
74
+ value = '',
75
+ validatemessage,
76
+ status,
77
+ readOnly,
78
+ testId,
79
+ helperText,
80
+ displayMode,
81
+ deferDatasource,
82
+ datasourceMetadata,
83
+ onRecordChange,
84
+ placeholder,
85
+ hideLabel,
86
+ } = props;
87
+
88
+ const context = getPConnect().getContextName();
89
+ let { listType, parameters, datasource = [], columns = [] } = props;
90
+ const [options, setOptions] = useState<IOption[]>([]);
91
+ const [theDatasource, setDatasource] = useState<any[] | null>(null);
92
+ const helperTextToDisplay = validatemessage || helperText;
93
+
94
+ const thePConn = getPConnect();
95
+ const actionsApi = thePConn.getActionsApi();
96
+ const propName = (thePConn.getStateProps() as any).value;
97
+ // const className = thePConn.getCaseInfo().getClassName();
98
+ // const refName = propName?.slice(propName.lastIndexOf('.') + 1);
99
+
100
+ if (!isDeepEqual(datasource, theDatasource)) {
101
+ // inbound datasource is different, so update theDatasource (to trigger useEffect)
102
+ setDatasource(datasource);
103
+ }
104
+
105
+ // convert associated to datapage listtype and transform props
106
+ // Process deferDatasource when datapage name is present. WHhen tableType is promptList / localList
107
+ if (deferDatasource && datasourceMetadata?.datasource?.name) {
108
+ listType = 'datapage';
109
+ datasource = datasourceMetadata.datasource.name;
110
+ const {
111
+ parameters: dataSourceParameters,
112
+ propertyForDisplayText,
113
+ propertyForValue,
114
+ } = datasourceMetadata.datasource;
115
+ parameters = flattenParameters(dataSourceParameters);
116
+ const displayProp = propertyForDisplayText.startsWith('@P')
117
+ ? propertyForDisplayText.substring(3)
118
+ : propertyForDisplayText;
119
+ const valueProp = propertyForValue.startsWith('@P') ? propertyForValue.substring(3) : propertyForValue;
120
+ columns = [
121
+ {
122
+ key: 'true',
123
+ setProperty: 'Associated property',
124
+ value: valueProp,
125
+ },
126
+ {
127
+ display: 'true',
128
+ primary: 'true',
129
+ useForSearch: true,
130
+ value: displayProp,
131
+ },
132
+ ];
133
+ }
134
+ columns = preProcessColumns(columns);
135
+
136
+ useEffect(() => {
137
+ if (theDatasource) {
138
+ const list = Utils.getOptionList(props, getPConnect().getDataObject('')); // 1st arg empty string until typedef marked correctly
139
+ // const optionsList = [...list];
140
+ // optionsList.unshift({
141
+ // key: placeholder,
142
+ // value: thePConn.getLocalizedValue(placeholder, '', '')
143
+ // }); // 2nd and 3rd args empty string until typedef marked correctly
144
+ setOptions(list);
145
+ }
146
+ }, [theDatasource]);
147
+
148
+ useEffect(() => {
149
+ if (!displayMode && listType !== 'associated' && typeof datasource === 'string') {
150
+ getDataPage(datasource, parameters, context).then((results: any) => {
151
+ const optionsData: any[] = [];
152
+ const displayColumn = getDisplayFieldsMetaData(columns);
153
+ results?.forEach((element) => {
154
+ const val = element[displayColumn.primary]?.toString();
155
+ const obj = {
156
+ key: element[displayColumn.key] || element.pyGUID,
157
+ value: val,
158
+ };
159
+ optionsData.push(obj);
160
+ });
161
+ setOptions(optionsData);
162
+ });
163
+ }
164
+ }, []);
165
+
166
+ // const metaData = Array.isArray(fieldMetadata)
167
+ // ? fieldMetadata.filter((field) => field?.classID === className)[0]
168
+ // : fieldMetadata;
169
+
170
+ // const displayNameProp = metaData?.datasource?.propertyForDisplayText;
171
+ // const displayName = displayNameProp?.slice(displayNameProp.lastIndexOf('.') + 1);
172
+
173
+ const handleChange = (value) => {
174
+ handleEvent(actionsApi, 'changeNblur', propName, value);
175
+ if (onRecordChange) {
176
+ onRecordChange(value);
177
+ }
178
+ };
179
+
180
+ if (['STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(displayMode || '')) {
181
+ return (
182
+ <DisplayField
183
+ type="dropdown"
184
+ label={label}
185
+ value={value}
186
+ hideLabel={hideLabel}
187
+ variant={displayMode === 'STACKED_LARGE_VAL' ? 'stacked' : 'inline'}
188
+ />
189
+ );
190
+ }
191
+
192
+ return (
193
+ <FormFieldWrapper>
194
+ <RNDropdown
195
+ label={label}
196
+ placeholder={placeholder}
197
+ CustomDropdownInput={CustomDropdownInput}
198
+ options={options.map((option) => ({
199
+ label: option.value,
200
+ value: option.key,
201
+ }))}
202
+ value={value}
203
+ onSelect={handleChange}
204
+ mode={'outlined'}
205
+ testID={testId}
206
+ disabled={readOnly}
207
+ />
208
+ <HelperText type={status === 'error' ? 'error' : 'info'} value={helperTextToDisplay} />
209
+ </FormFieldWrapper>
210
+ );
211
+ }
@@ -0,0 +1 @@
1
+ export { default } from './Dropdown';
@@ -0,0 +1,81 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { TextInput as RNTextInput } from 'react-native-paper';
3
+
4
+ import { PConnFieldProps } from '../../../types/PConnProps';
5
+ import FormFieldWrapper from '../../common/FormFieldWrapper';
6
+ import HelperText from '../../common/HelperText';
7
+ import handleEvent from '../../helpers/event-utils';
8
+ import DisplayField from '../../common/DisplayField';
9
+ import LabelText from '../../common/LabelText';
10
+ import { FORM_INPUT_PROPS } from '../../common/inputTheme';
11
+
12
+ type EmailProps = PConnFieldProps;
13
+
14
+ export default function Email(props: EmailProps) {
15
+ const {
16
+ getPConnect,
17
+ label,
18
+ required,
19
+ disabled,
20
+ value = '',
21
+ validatemessage,
22
+ status,
23
+ readOnly,
24
+ testId,
25
+ helperText,
26
+ placeholder,
27
+ displayMode,
28
+ hideLabel,
29
+ } = props;
30
+
31
+ const pConn = getPConnect();
32
+ const actions = pConn.getActionsApi();
33
+ const propName = (pConn.getStateProps() as any).value;
34
+
35
+ const helperTextToDisplay = validatemessage || helperText;
36
+
37
+ const [inputValue, setInputValue] = useState('');
38
+
39
+ useEffect(() => {
40
+ setInputValue(value);
41
+ }, [value]);
42
+
43
+ if (['STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(displayMode || '')) {
44
+ return (
45
+ <DisplayField
46
+ type="text"
47
+ label={label}
48
+ value={value}
49
+ hideLabel={hideLabel}
50
+ variant={displayMode === 'STACKED_LARGE_VAL' ? 'stacked' : 'inline'}
51
+ />
52
+ );
53
+ }
54
+
55
+ function handleChange(value: string) {
56
+ setInputValue(value);
57
+ }
58
+
59
+ function handleBlur() {
60
+ handleEvent(actions, 'changeNblur', propName, inputValue);
61
+ }
62
+
63
+ return (
64
+ <FormFieldWrapper>
65
+ <RNTextInput
66
+ keyboardType="email-address"
67
+ {...FORM_INPUT_PROPS}
68
+ label={<LabelText label={label} required={required} />}
69
+ value={inputValue}
70
+ onChangeText={handleChange}
71
+ onBlur={!readOnly ? handleBlur : undefined}
72
+ error={status === 'error'}
73
+ testID={testId}
74
+ placeholder={placeholder}
75
+ disabled={disabled}
76
+ readOnly={readOnly}
77
+ />
78
+ <HelperText type={status === 'error' ? 'error' : 'info'} value={helperTextToDisplay} />
79
+ </FormFieldWrapper>
80
+ );
81
+ }
@@ -0,0 +1 @@
1
+ export { default } from './Email';
@@ -0,0 +1,47 @@
1
+ import React, { ReactElement, useMemo } from 'react';
2
+ import { View, StyleSheet } from 'react-native';
3
+ import { PConnFieldProps } from '../../../types/PConnProps';
4
+ import FieldGroup from '../../design-system/FieldGroup';
5
+
6
+ interface GroupProps extends PConnFieldProps {
7
+ children: ReactElement[];
8
+ heading: string;
9
+ showHeading: boolean;
10
+ instructions?: string;
11
+ collapsible: boolean;
12
+ type: string;
13
+ }
14
+
15
+ export default function Group(props: GroupProps) {
16
+ const { children, heading, showHeading, instructions, collapsible } = props;
17
+
18
+ const content = useMemo(() => {
19
+ return (
20
+ <View style={styles.container}>
21
+ {children?.map((child) => (
22
+ <View style={styles.child} key={child.key}>
23
+ {child}
24
+ </View>
25
+ ))}
26
+ </View>
27
+ );
28
+ }, [children]);
29
+
30
+ if (!children) return null;
31
+
32
+ return (
33
+ <FieldGroup name={showHeading ? heading : undefined} collapsible={collapsible} instructions={instructions}>
34
+ {content}
35
+ </FieldGroup>
36
+ );
37
+ }
38
+
39
+ const styles = StyleSheet.create({
40
+ container: {
41
+ flexDirection: 'column',
42
+ },
43
+ child: {
44
+ width: '100%',
45
+ marginBottom: 16,
46
+ },
47
+ });
@@ -0,0 +1 @@
1
+ export { default } from './Group';
@@ -0,0 +1,84 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { TextInput } from 'react-native-paper';
3
+
4
+ import { PConnFieldProps } from '../../../types/PConnProps';
5
+ import FormFieldWrapper from '../../common/FormFieldWrapper';
6
+ import HelperText from '../../common/HelperText';
7
+ import handleEvent from '../../helpers/event-utils';
8
+ import LabelText from '../../common/LabelText';
9
+ import DisplayField from '../../common/DisplayField';
10
+ import { FORM_INPUT_PROPS } from '../../common/inputTheme';
11
+
12
+ interface TextInputProps extends PConnFieldProps {
13
+ // If any, enter additional props that only exist on Integer here
14
+ fieldMetadata?: any;
15
+ }
16
+
17
+ export default function Integer(props: TextInputProps) {
18
+ const {
19
+ getPConnect,
20
+ label,
21
+ required,
22
+ disabled,
23
+ value = '',
24
+ validatemessage,
25
+ status,
26
+ readOnly,
27
+ testId,
28
+ helperText,
29
+ placeholder,
30
+ displayMode,
31
+ hideLabel,
32
+ } = props;
33
+
34
+ const pConn = getPConnect();
35
+ const actions = pConn.getActionsApi();
36
+ const propName = (pConn.getStateProps() as any).value;
37
+
38
+ const helperTextToDisplay = validatemessage || helperText;
39
+
40
+ const [inputValue, setInputValue] = useState('');
41
+
42
+ useEffect(() => {
43
+ setInputValue(value);
44
+ }, [value]);
45
+
46
+ if (['STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(displayMode || '')) {
47
+ return (
48
+ <DisplayField
49
+ type="text"
50
+ label={label}
51
+ value={value}
52
+ hideLabel={hideLabel}
53
+ variant={displayMode === 'STACKED_LARGE_VAL' ? 'stacked' : 'inline'}
54
+ />
55
+ );
56
+ }
57
+
58
+ function handleChange(value) {
59
+ setInputValue(value);
60
+ }
61
+
62
+ function handleBlur() {
63
+ handleEvent(actions, 'changeNblur', propName, inputValue);
64
+ }
65
+
66
+ return (
67
+ <FormFieldWrapper>
68
+ <TextInput
69
+ keyboardType="number-pad"
70
+ {...FORM_INPUT_PROPS}
71
+ label={<LabelText label={label} required={required} />}
72
+ value={inputValue}
73
+ onChangeText={handleChange}
74
+ onBlur={!readOnly ? handleBlur : undefined}
75
+ error={status === 'error'}
76
+ testID={testId}
77
+ placeholder={placeholder}
78
+ disabled={disabled}
79
+ readOnly={readOnly}
80
+ />
81
+ <HelperText type={status === 'error' ? 'error' : 'info'} value={helperTextToDisplay} />
82
+ </FormFieldWrapper>
83
+ );
84
+ }
@@ -0,0 +1 @@
1
+ export { default } from './Integer';
@@ -0,0 +1,85 @@
1
+ import parsePhoneNumber from 'libphonenumber-js';
2
+ import { useState } from 'react';
3
+ import { TextInput as RNTextInput } from 'react-native-paper';
4
+ import { PhoneNumberInput, getCountryByCode } from 'react-native-paper-phone-number-input';
5
+
6
+ import FormFieldWrapper from '../../common/FormFieldWrapper';
7
+ import HelperText from '../../common/HelperText';
8
+ import handleEvent from '../../helpers/event-utils';
9
+ import DisplayField from '../../common/DisplayField';
10
+ import { FORM_INPUT_PROPS, FORM_INPUT_THEME } from '../../common/inputTheme';
11
+
12
+ export default function Phone(props: any) {
13
+ const {
14
+ getPConnect,
15
+ label,
16
+ validatemessage,
17
+ helperText,
18
+ status,
19
+ readOnly,
20
+ disabled,
21
+ testId,
22
+ value = '',
23
+ displayMode,
24
+ hideLabel,
25
+ } = props;
26
+
27
+ const helperTextToDisplay = validatemessage || helperText;
28
+
29
+ const { country = 'US', nationalNumber = '' }: any = parsePhoneNumber(value) || {};
30
+
31
+ const [countryCode, setCountryCode] = useState<string>(country); // Default country code
32
+ const [phoneNumber, setPhoneNumber] = useState<string | undefined>(nationalNumber); // Default phone number
33
+ const { dialCode } = getCountryByCode(countryCode); // Get country details
34
+
35
+ const pConn = getPConnect();
36
+ const actions = pConn.getActionsApi();
37
+ const propName = (pConn.getStateProps() as any).value;
38
+
39
+ const handleBlur = () => {
40
+ handleEvent(actions, 'changeNblur', propName, `${dialCode}${phoneNumber}`);
41
+ };
42
+
43
+ if (['STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(displayMode || '')) {
44
+ return (
45
+ <DisplayField
46
+ type="text"
47
+ label={label}
48
+ value={value}
49
+ hideLabel={hideLabel}
50
+ variant={displayMode === 'STACKED_LARGE_VAL' ? 'stacked' : 'inline'}
51
+ />
52
+ );
53
+ }
54
+
55
+ if (readOnly || disabled) {
56
+ return (
57
+ <FormFieldWrapper>
58
+ <RNTextInput
59
+ {...FORM_INPUT_PROPS}
60
+ label={label}
61
+ value={phoneNumber}
62
+ testID={testId}
63
+ readOnly={readOnly}
64
+ disabled={disabled}
65
+ />
66
+ </FormFieldWrapper>
67
+ );
68
+ }
69
+
70
+ return (
71
+ <FormFieldWrapper style={{ paddingBlock: 8 }}>
72
+ <PhoneNumberInput
73
+ label={label}
74
+ mode="outlined"
75
+ theme={FORM_INPUT_THEME}
76
+ code={countryCode}
77
+ setCode={setCountryCode}
78
+ phoneNumber={phoneNumber}
79
+ setPhoneNumber={setPhoneNumber}
80
+ onBlur={handleBlur}
81
+ />
82
+ <HelperText type={status === 'error' ? 'error' : 'info'} value={helperTextToDisplay} />
83
+ </FormFieldWrapper>
84
+ );
85
+ }
@@ -0,0 +1 @@
1
+ export { default } from './Phone';