@pega/custom-dx-components 26.1.11 → 26.1.12-alpha.0.2

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 (323) hide show
  1. package/README.md +6 -2
  2. package/package.json +48 -64
  3. package/src/ai/README.md +44 -0
  4. package/src/ai/catalog/README.md +133 -0
  5. package/src/ai/catalog/best-practices/README.md +24 -0
  6. package/src/ai/catalog/best-practices/accessibility-for-async-components.md +53 -0
  7. package/src/ai/catalog/best-practices/error-handling-and-resiliency.md +116 -0
  8. package/src/ai/catalog/best-practices/genai-assistant-integration-patterns.md +49 -0
  9. package/src/ai/catalog/best-practices/performance-and-efficiency.md +109 -0
  10. package/src/ai/catalog/best-practices/security-considerations.md +93 -0
  11. package/src/ai/catalog/best-practices/testing-pconnect-components.md +245 -0
  12. package/src/ai/catalog/best-practices/troubleshooting-common-pitfalls.md +132 -0
  13. package/src/ai/catalog/pconnect-assignment-lifecycle/SKILL.md +44 -0
  14. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/README.md +39 -0
  15. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/approval-workflow-decision.md +47 -0
  16. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/attachment-upload.md +45 -0
  17. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/bulk-action-submit.md +50 -0
  18. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/confirm-before-destructive-action.md +43 -0
  19. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/create-and-stage-new-case.md +45 -0
  20. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/graceful-submit-failure.md +39 -0
  21. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/modal-assignment-submit.md +58 -0
  22. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/multi-step-wizard.md +44 -0
  23. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/resolve-or-ignore-duplicate.md +47 -0
  24. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/safe-case-deletion.md +36 -0
  25. package/src/ai/catalog/pconnect-case-collaboration/SKILL.md +42 -0
  26. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/README.md +36 -0
  27. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/look-up-user-details.md +43 -0
  28. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/manage-case-attachments.md +51 -0
  29. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/manage-case-participants.md +52 -0
  30. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/participant-and-follower.md +40 -0
  31. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/post-and-manage-feed.md +50 -0
  32. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/relate-cases.md +35 -0
  33. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/tag-case-and-find-related.md +44 -0
  34. package/src/ai/catalog/pconnect-data-subscriptions/SKILL.md +42 -0
  35. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/README.md +35 -0
  36. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/data-page-subscription-cleanup.md +41 -0
  37. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/publish-and-subscribe-events.md +40 -0
  38. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/pubsub-cleanup.md +38 -0
  39. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/query-paginated-list-data.md +44 -0
  40. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/realtime-case-subscription.md +46 -0
  41. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/refresh-and-update-data.md +41 -0
  42. package/src/ai/catalog/pconnect-forms-and-fields/SKILL.md +44 -0
  43. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/README.md +36 -0
  44. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/autosave-tracking.md +45 -0
  45. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/cascading-dependent-fields.md +51 -0
  46. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/collect-form-changes-for-manual-save.md +45 -0
  47. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/custom-field-validators.md +44 -0
  48. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/discard-changes-and-reset-form.md +41 -0
  49. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/full-form-validation.md +38 -0
  50. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/persist-widget-ui-state.md +41 -0
  51. package/src/ai/catalog/pconnect-lists-and-views/SKILL.md +44 -0
  52. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/README.md +35 -0
  53. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/activate-and-switch-container-items.md +52 -0
  54. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/container-item-lifecycle.md +61 -0
  55. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/insert-delete-list-rows.md +40 -0
  56. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/reorder-list-rows.md +39 -0
  57. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/repeating-row-edit.md +39 -0
  58. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/view-personalization.md +60 -0
  59. package/src/ai/catalog/pconnect-navigation-locale-genai/SKILL.md +45 -0
  60. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/README.md +35 -0
  61. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/agent-conversation-for-tasks.md +54 -0
  62. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/bookmarkable-filter-state.md +40 -0
  63. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/deep-link-semantic-url.md +39 -0
  64. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/genai-assistant-conversation.md +43 -0
  65. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/locale-switch-and-relocalize.md +38 -0
  66. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/persist-operator-preferences.md +40 -0
  67. package/src/ai/catalog/references/architecture-overview.md +52 -0
  68. package/src/ai/catalog/references/pconnect-actions-api.md +948 -0
  69. package/src/ai/catalog/references/pconnect-case-info-data-info-localization.md +618 -0
  70. package/src/ai/catalog/references/pconnect-case-validation-utilities.md +238 -0
  71. package/src/ai/catalog/references/pconnect-container-manager.md +215 -0
  72. package/src/ai/catalog/references/pconnect-list-actions.md +250 -0
  73. package/src/ai/catalog/references/pconnect-misc-suggestions-creation.md +231 -0
  74. package/src/ai/catalog/references/pconnect-reference-context-component.md +471 -0
  75. package/src/ai/catalog/references/pconnect-state-config.md +316 -0
  76. package/src/ai/catalog/references/pconnect-validation-api.md +45 -0
  77. package/src/ai/catalog/references/pcore-analytics-genai-details.md +50 -0
  78. package/src/ai/catalog/references/pcore-bootstrap-init-details.md +121 -0
  79. package/src/ai/catalog/references/pcore-bootstrap-registry-routing.md +253 -0
  80. package/src/ai/catalog/references/pcore-case-collaboration-details.md +191 -0
  81. package/src/ai/catalog/references/pcore-case-collaboration-genai.md +264 -0
  82. package/src/ai/catalog/references/pcore-environment-info-details.md +96 -0
  83. package/src/ai/catalog/references/pcore-environment-locale-namespace.md +175 -0
  84. package/src/ai/catalog/references/pcore-messaging-details.md +99 -0
  85. package/src/ai/catalog/references/pcore-misc-details.md +207 -0
  86. package/src/ai/catalog/references/pcore-misc-utilities.md +325 -0
  87. package/src/ai/catalog/references/pcore-rest-data-details.md +164 -0
  88. package/src/ai/catalog/references/pcore-rest-data-messaging.md +308 -0
  89. package/src/ai/catalog/references/pcore-store-context-details.md +40 -0
  90. package/src/ai/catalog/references/pcore-store-context-state.md +130 -0
  91. package/src/ai/index.js +154 -0
  92. package/src/ai/project/.claude/skills/boolean/SKILL.md +43 -0
  93. package/src/ai/project/.claude/skills/case/SKILL.md +58 -0
  94. package/src/ai/project/.claude/skills/create-dx-component/SKILL.md +98 -0
  95. package/src/ai/project/.claude/skills/create-dx-component/assets/PConnProps.d.ts +24 -0
  96. package/src/ai/project/.claude/skills/create-dx-component/assets/create-nonce.ts +5 -0
  97. package/src/ai/project/.claude/skills/create-dx-component/assets/event-utils.ts +18 -0
  98. package/src/ai/project/.claude/skills/create-dx-component/assets/styles.ts +7 -0
  99. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/README.md +28 -0
  100. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/build-a-data-widget.md +281 -0
  101. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/field-with-limits-and-validation.md +156 -0
  102. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/status-badge-field.md +97 -0
  103. package/src/ai/project/.claude/skills/create-dx-component/references/accessibility.md +71 -0
  104. package/src/ai/project/.claude/skills/create-dx-component/references/choosing-type-and-subtype.md +79 -0
  105. package/src/ai/project/.claude/skills/create-dx-component/references/cli-workflow.md +125 -0
  106. package/src/ai/project/.claude/skills/create-dx-component/references/component-patterns.md +241 -0
  107. package/src/ai/project/.claude/skills/create-dx-component/references/config-schema.md +296 -0
  108. package/src/ai/project/.claude/skills/create-dx-component/references/cosmos-components.md +137 -0
  109. package/src/ai/project/.claude/skills/create-dx-component/references/field-behavior.md +155 -0
  110. package/src/ai/project/.claude/skills/create-dx-component/references/field-essentials.md +90 -0
  111. package/src/ai/project/.claude/skills/create-dx-component/references/field-subtypes-extra.md +68 -0
  112. package/src/ai/project/.claude/skills/create-dx-component/references/localization.md +30 -0
  113. package/src/ai/project/.claude/skills/create-dx-component/references/pcore-pconnect-apis.md +77 -0
  114. package/src/ai/project/.claude/skills/create-dx-component/references/presentation-essentials.md +57 -0
  115. package/src/ai/project/.claude/skills/create-dx-component/references/props-contract.md +182 -0
  116. package/src/ai/project/.claude/skills/create-dx-component/references/state-matrix.md +102 -0
  117. package/src/ai/project/.claude/skills/create-dx-component/references/storybook-pattern.md +262 -0
  118. package/src/ai/project/.claude/skills/create-dx-component/references/styles-pattern.md +54 -0
  119. package/src/ai/project/.claude/skills/create-dx-component/references/template-essentials.md +87 -0
  120. package/src/ai/project/.claude/skills/create-dx-component/references/template-patterns.md +131 -0
  121. package/src/ai/project/.claude/skills/create-dx-component/references/test-pattern.md +215 -0
  122. package/src/ai/project/.claude/skills/create-dx-component/references/ui-gallery-reuse.md +93 -0
  123. package/src/ai/project/.claude/skills/create-dx-component/references/widget-essentials.md +84 -0
  124. package/src/ai/project/.claude/skills/create-dx-component/references/widget-patterns.md +164 -0
  125. package/src/ai/project/.claude/skills/currency/SKILL.md +46 -0
  126. package/src/ai/project/.claude/skills/date/SKILL.md +46 -0
  127. package/src/ai/project/.claude/skills/decimal/SKILL.md +49 -0
  128. package/src/ai/project/.claude/skills/details/SKILL.md +60 -0
  129. package/src/ai/project/.claude/skills/email/SKILL.md +42 -0
  130. package/src/ai/project/.claude/skills/field/SKILL.md +68 -0
  131. package/src/ai/project/.claude/skills/form/SKILL.md +51 -0
  132. package/src/ai/project/.claude/skills/generate-component-set/SKILL.md +80 -0
  133. package/src/ai/project/.claude/skills/generate-component-set/component-manifest.json +161 -0
  134. package/src/ai/project/.claude/skills/identify-components/SKILL.md +76 -0
  135. package/src/ai/project/.claude/skills/integer/SKILL.md +45 -0
  136. package/src/ai/project/.claude/skills/page/SKILL.md +60 -0
  137. package/src/ai/project/.claude/skills/page-widget/SKILL.md +55 -0
  138. package/src/ai/project/.claude/skills/percentage/SKILL.md +52 -0
  139. package/src/ai/project/.claude/skills/phone/SKILL.md +44 -0
  140. package/src/ai/project/.claude/skills/picklist/SKILL.md +50 -0
  141. package/src/ai/project/.claude/skills/plan-dx-component/SKILL.md +51 -0
  142. package/src/ai/project/.claude/skills/plan-dx-component/references/design-system-mapping.md +108 -0
  143. package/src/ai/project/.claude/skills/plan-dx-component/references/intake.md +146 -0
  144. package/src/ai/project/.claude/skills/plan-dx-component/references/plan-template.md +76 -0
  145. package/src/ai/project/.claude/skills/plan-dx-component/references/requirements-template.md +88 -0
  146. package/src/ai/project/.claude/skills/presentation/SKILL.md +61 -0
  147. package/src/ai/project/.claude/skills/publish-library/SKILL.md +106 -0
  148. package/src/ai/project/.claude/skills/radiobuttons/SKILL.md +51 -0
  149. package/src/ai/project/.claude/skills/review-component/SKILL.md +49 -0
  150. package/src/ai/project/.claude/skills/review-component/references/checklist.md +77 -0
  151. package/src/ai/project/.claude/skills/template/SKILL.md +60 -0
  152. package/src/ai/project/.claude/skills/text/SKILL.md +45 -0
  153. package/src/ai/project/.claude/skills/update-dx-component/SKILL.md +56 -0
  154. package/src/ai/project/.claude/skills/update-dx-component/references/maintenance.md +43 -0
  155. package/src/ai/project/.claude/skills/url/SKILL.md +46 -0
  156. package/src/ai/project/.claude/skills/validate-component/SKILL.md +78 -0
  157. package/src/ai/project/.claude/skills/validate-component/references/runtime-troubleshooting.md +56 -0
  158. package/src/ai/project/.claude/skills/validate-component/scripts/check-component.mjs +327 -0
  159. package/src/ai/project/.claude/skills/widget/SKILL.md +59 -0
  160. package/src/ai/project/.gemini/settings.json +5 -0
  161. package/src/ai/project/AGENTS.md +74 -0
  162. package/src/ai/readme-section.md +91 -0
  163. package/src/cli.js +48 -7
  164. package/src/constants.js +54 -53
  165. package/src/internal-tests.js +27 -0
  166. package/src/tasks/ai-toggle/index.js +46 -0
  167. package/src/tasks/authenticate/helper.js +38 -38
  168. package/src/tasks/authenticate/index.js +17 -15
  169. package/src/tasks/build-all/helper.js +4 -4
  170. package/src/tasks/build-all/index.js +7 -7
  171. package/src/tasks/build-comp/helper.js +17 -17
  172. package/src/tasks/build-comp/index.js +10 -10
  173. package/src/tasks/build-jest-assets/index.js +7 -9
  174. package/src/tasks/build-lib/helper.js +8 -8
  175. package/src/tasks/build-lib/index.js +8 -8
  176. package/src/tasks/bundle/builder/index.js +9 -12
  177. package/src/tasks/bundle/builder/modules.js +8 -9
  178. package/src/tasks/bundle/builder/paths.js +2 -19
  179. package/src/tasks/bundle/builder/webpack.config.js +60 -77
  180. package/src/tasks/bundle/index.js +8 -8
  181. package/src/tasks/create/index.js +35 -35
  182. package/src/tasks/create/templates/Constellation/Field/Boolean/index.tsx.mustache +1 -36
  183. package/src/tasks/create/templates/Constellation/Field/Date/date.ts.mustache +2 -2
  184. package/src/tasks/create/templates/Constellation/Field/Date/index.tsx.mustache +2 -27
  185. package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.ts.mustache +2 -2
  186. package/src/tasks/create/templates/Constellation/Field/DateTime/date.ts.mustache +2 -2
  187. package/src/tasks/create/templates/Constellation/Field/DateTime/index.tsx.mustache +2 -35
  188. package/src/tasks/create/templates/Constellation/Field/Decimal/index.tsx.mustache +3 -36
  189. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.tsx.mustache +4 -39
  190. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.tsx.mustache +4 -53
  191. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/index.tsx.mustache +5 -5
  192. package/src/tasks/create/templates/Constellation/Field/Integer/index.tsx.mustache +3 -36
  193. package/src/tasks/create/templates/Constellation/Field/Picklist/index.tsx.mustache +7 -42
  194. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/component-constants.ts +1 -1
  195. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/date.ts.mustache +0 -2
  196. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/embed-utils.ts.mustache +1 -1
  197. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/index.tsx.mustache +11 -11
  198. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/repeat-utils.ts.mustache +3 -13
  199. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/textformat-utils.tsx.mustache +2 -3
  200. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/utils.ts.mustache +28 -28
  201. package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/index.tsx.mustache +2 -2
  202. package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/textformat-utils.tsx.mustache +2 -3
  203. package/src/tasks/create/templates/Constellation/Field/Text/index.tsx.mustache +4 -33
  204. package/src/tasks/create/templates/Constellation/Field/Text-Email/index.tsx.mustache +3 -33
  205. package/src/tasks/create/templates/Constellation/Field/Text-Input/index.tsx.mustache +3 -31
  206. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.tsx.mustache +3 -31
  207. package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.tsx.mustache +3 -35
  208. package/src/tasks/create/templates/Constellation/Field/Text-URL/index.tsx.mustache +3 -33
  209. package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.tsx.mustache +2 -3
  210. package/src/tasks/create/templates/Constellation/Field/TimeofDay/index.tsx.mustache +2 -35
  211. package/src/tasks/create/templates/Constellation/Field/TimeofDay/time-of-day.ts.mustache +2 -2
  212. package/src/tasks/create/templates/Constellation/Template/DETAILS/Avatar.tsx.mustache +19 -15
  213. package/src/tasks/create/templates/Constellation/Template/DETAILS/Operator.tsx.mustache +6 -6
  214. package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.tsx.mustache +1 -1
  215. package/src/tasks/create/templates/Constellation/Template/DETAILS/index.tsx.mustache +4 -8
  216. package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.ts.mustache +9 -9
  217. package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +4 -8
  218. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Avatar.tsx.mustache +19 -15
  219. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Operator.tsx.mustache +6 -6
  220. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.tsx.mustache +1 -1
  221. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.tsx.mustache +1 -1
  222. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.ts.mustache +9 -9
  223. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.ts.mustache +4 -8
  224. package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.tsx.mustache +8 -8
  225. package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.tsx.mustache +8 -8
  226. package/src/tasks/create/templates/Constellation/Template/PAGE/utils.ts.mustache +4 -9
  227. package/src/tasks/create/templates/Constellation/Widget/CASE/demo.test.tsx.mustache +3 -3
  228. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.tsx.mustache +19 -14
  229. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.tsx.mustache +6 -6
  230. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.tsx.mustache +1 -1
  231. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.ts.mustache +1 -1
  232. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/index.tsx.mustache +5 -5
  233. package/src/tasks/create/templates/Launchpad/Field/Text-Phone/index.tsx.mustache +3 -35
  234. package/src/tasks/create/templates/Launchpad/Field/__components.md +1 -1
  235. package/src/tasks/create/templates/Launchpad/Template/FORM/demo.stories.tsx.mustache +8 -8
  236. package/src/tasks/create/templates/Launchpad/Template/FORM-region/demo.stories.tsx.mustache +8 -8
  237. package/src/tasks/create/templates/Launchpad/Widget/CASE/demo.test.tsx.mustache +3 -3
  238. package/src/tasks/create/templates/Launchpad/Widget/PAGE-CASE/index.tsx.mustache +1 -1
  239. package/src/tasks/create/templates/Launchpad/Widget/PAGE-CASE/mock.ts.mustache +1 -1
  240. package/src/tasks/create-all/index.js +42 -41
  241. package/src/tasks/create-lib/helper.js +13 -13
  242. package/src/tasks/create-lib/index.js +5 -5
  243. package/src/tasks/create-version/helper.js +10 -10
  244. package/src/tasks/create-version/index.js +3 -4
  245. package/src/tasks/delete/helper.js +20 -19
  246. package/src/tasks/delete/index.js +2 -2
  247. package/src/tasks/delete-all/helper.js +26 -25
  248. package/src/tasks/delete-all/index.js +2 -2
  249. package/src/tasks/delete-lib/helper.js +6 -6
  250. package/src/tasks/delete-lib/index.js +6 -6
  251. package/src/tasks/delete-pub/helper.js +18 -18
  252. package/src/tasks/delete-pub/index.js +8 -8
  253. package/src/tasks/delete-version/index.js +2 -2
  254. package/src/tasks/dev-server/index.js +1 -1
  255. package/src/tasks/export-archive/helper.js +21 -21
  256. package/src/tasks/export-archive/index.js +27 -40
  257. package/src/tasks/export-rc/helper.js +34 -34
  258. package/src/tasks/export-rc/index.js +21 -31
  259. package/src/tasks/import-archive/helper.js +39 -39
  260. package/src/tasks/import-archive/index.js +69 -89
  261. package/src/tasks/import-comp/helper.js +8 -8
  262. package/src/tasks/import-comp/index.js +30 -42
  263. package/src/tasks/index.js +5 -0
  264. package/src/tasks/init/Node.gitignore +149 -0
  265. package/src/tasks/init/helper.js +15 -8
  266. package/src/tasks/init/index.js +115 -35
  267. package/src/tasks/init/template/.prettierrc.json +4 -1
  268. package/src/tasks/init/template/.storybook/main.ts +1 -4
  269. package/src/tasks/init/template/.storybook/manager.ts +1 -1
  270. package/src/tasks/init/template/.storybook/preview.tsx +2 -2
  271. package/src/tasks/init/template/.storybook/theme.js +1 -1
  272. package/src/tasks/init/template/.vscode/extensions.json +0 -1
  273. package/src/tasks/init/template/README.md +2 -2
  274. package/src/tasks/init/template/eslint.config.mjs +13 -155
  275. package/src/tasks/init/template/jest.config.cjs +2 -0
  276. package/src/tasks/init/template/package-lock.json +26864 -0
  277. package/src/tasks/init/template/package.json.mustache +19 -74
  278. package/src/tasks/init/template/setupTests.ts +10 -4
  279. package/src/tasks/init/template/tsconfig.json +14 -6
  280. package/src/tasks/internal-test/index.js +21 -0
  281. package/src/tasks/internal-test-full/index.js +15 -0
  282. package/src/tasks/internal-test-functional/index.js +15 -0
  283. package/src/tasks/internal-test-unit/index.js +13 -0
  284. package/src/tasks/linter/index.js +2 -2
  285. package/src/tasks/list/helper.js +41 -40
  286. package/src/tasks/list/index.js +3 -3
  287. package/src/tasks/list-lib/helper.js +5 -5
  288. package/src/tasks/list-lib/index.js +8 -8
  289. package/src/tasks/list-pub/helper.js +23 -16
  290. package/src/tasks/list-pub/index.js +24 -21
  291. package/src/tasks/move/helper.js +8 -8
  292. package/src/tasks/move/index.js +19 -23
  293. package/src/tasks/promote-webpack/index.js +4 -4
  294. package/src/tasks/promote-webpack/webpack.config.js +62 -93
  295. package/src/tasks/publish/helper.js +21 -21
  296. package/src/tasks/publish/index.js +16 -16
  297. package/src/tasks/publish-all/helper.js +20 -20
  298. package/src/tasks/publish-all/index.js +11 -12
  299. package/src/tasks/publish-archive/helper.js +9 -9
  300. package/src/tasks/publish-archive/index.js +12 -14
  301. package/src/tasks/publish-lib/helper.js +3 -3
  302. package/src/tasks/publish-lib/index.js +28 -34
  303. package/src/tasks/quarantine/index.js +8 -8
  304. package/src/tasks/rename/index.js +26 -30
  305. package/src/tasks/rename-lib/index.js +21 -25
  306. package/src/tasks/restore/index.js +8 -8
  307. package/src/tasks/restore-config/index.js +3 -5
  308. package/src/tasks/set-perm/index.js +8 -8
  309. package/src/tasks/show-help/index.js +17 -9
  310. package/src/tasks/show-status/index.js +2 -2
  311. package/src/tasks/store/index.js +8 -8
  312. package/src/tasks/switch-lib/helper.js +7 -7
  313. package/src/tasks/switch-lib/index.js +7 -7
  314. package/src/tasks/switch-version/helper.js +6 -6
  315. package/src/tasks/switch-version/index.js +7 -7
  316. package/src/tasks/update/index.js +1 -1
  317. package/src/tasks/upgrade/index.js +7 -7
  318. package/src/tasks/validator/index.js +49 -203
  319. package/src/util.js +169 -186
  320. package/src/rules/no-pcore-pconnect-in-presentation.js +0 -103
  321. package/src/tasks/init/template/.stylelintrc.json +0 -4
  322. package/src/tasks/init/template/babel.config.cjs +0 -22
  323. package/src/tasks/init/template/cspell.json +0 -14
@@ -0,0 +1,231 @@
1
+ # PConnect: Utilities, Suggestions & Component Creation
2
+
3
+ > Part of the [PCore / PConnect API Reference skills](../README.md). Methods documented here are called on a `PConnect` instance (`pConn`), obtained via the `getPConnect()` prop passed to every component.
4
+
5
+ ## `getDataObject(contextName?)`
6
+
7
+ **Purpose:** Returns the data of the current (or a specified) context.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ getDataObject(contextName?: string): Record<string, unknown>
13
+ ```
14
+
15
+ **Example:**
16
+
17
+ ```typescript
18
+ const { pyPortal } = pConn.getDataObject();
19
+ ```
20
+
21
+ ---
22
+
23
+ ## `getImagePath(imageName)`
24
+
25
+ **Purpose:** Returns the resolved URL path for a given image name.
26
+
27
+ **Signature:**
28
+
29
+ ```typescript
30
+ getImagePath(imageName: string): string
31
+ ```
32
+
33
+ **Example:**
34
+
35
+ ```typescript
36
+ const avatarUrl = pConn.getImagePath(imageKey);
37
+ ```
38
+
39
+ ---
40
+
41
+ ## `getGoogleMapsAPIKey()`
42
+
43
+ **Purpose:** Returns the configured Google Maps API key, for use by map-rendering components.
44
+
45
+ **Signature:**
46
+
47
+ ```typescript
48
+ getGoogleMapsAPIKey(): string
49
+ ```
50
+
51
+ **Example:**
52
+
53
+ ```typescript
54
+ const apiKey = pConn.getGoogleMapsAPIKey();
55
+ ```
56
+
57
+ ---
58
+
59
+ ## `getServerURL()`
60
+
61
+ **Purpose:** Returns the server base URL — useful for resolving absolute paths for server-relative resources (for example, embedded images in rich text).
62
+
63
+ **Signature:**
64
+
65
+ ```typescript
66
+ getServerURL(): string
67
+ ```
68
+
69
+ **Example:**
70
+
71
+ ```typescript
72
+ const absoluteUrl = `${pConn.getServerURL()}/${relativeImagePath}`;
73
+ ```
74
+
75
+ ---
76
+
77
+ ## `reportError(errorMsg, errorObj, context?)`
78
+
79
+ **Purpose:** Reports an error so infrastructure-level error handling can pick it up.
80
+
81
+ **Signature:**
82
+
83
+ ```typescript
84
+ reportError(errorMsg: string, errorObj: unknown, context?: string): void
85
+ ```
86
+
87
+ **Example:**
88
+
89
+ ```typescript
90
+ pConn.reportError('Failed to load related data', { cause: error });
91
+ ```
92
+
93
+ ---
94
+
95
+ ## `clearErrorMessages(errorMsgConfig)`
96
+
97
+ **Purpose:** Clears error messages associated with a specific property or context.
98
+
99
+ **Signature:**
100
+
101
+ ```typescript
102
+ clearErrorMessages(errorMsgConfig: { category?: string; context?: string; property: string; subType?: string }): void
103
+ ```
104
+
105
+ **Example:**
106
+
107
+ ```typescript
108
+ pConn.clearErrorMessages({ property: pConn.getPropertyName() });
109
+ ```
110
+
111
+ ---
112
+
113
+ ## `skipRequiredValidation()`
114
+
115
+ **Purpose:** Returns whether required-field validation should be skipped for the current component (for example, when it is being rendered as part of a bulk action).
116
+
117
+ **Signature:**
118
+
119
+ ```typescript
120
+ skipRequiredValidation(): boolean | undefined
121
+ ```
122
+
123
+ **Example:**
124
+
125
+ ```typescript
126
+ if (!pConn.skipRequiredValidation() && isFieldEmpty) {
127
+ // enforce required validation
128
+ }
129
+ ```
130
+
131
+ ---
132
+
133
+ ## `isBulkAction()`
134
+
135
+ **Purpose:** Returns whether the current component is being rendered in the context of a bulk action.
136
+
137
+ **Signature:**
138
+
139
+ ```typescript
140
+ isBulkAction(): boolean | undefined
141
+ ```
142
+
143
+ **Example:**
144
+
145
+ ```typescript
146
+ if (pConn.isBulkAction()) {
147
+ // adjust rendering/validation for bulk-processed rows
148
+ }
149
+ ```
150
+
151
+ ---
152
+
153
+ ## `acceptSuggestion(target)`
154
+
155
+ **Purpose:** Accepts the value held in the Suggestions Context for a field.
156
+
157
+ **Signature:**
158
+
159
+ ```typescript
160
+ acceptSuggestion(target: string): void
161
+ ```
162
+
163
+ **Example:**
164
+
165
+ ```typescript
166
+ pConn.acceptSuggestion('.Property1');
167
+ ```
168
+
169
+ ---
170
+
171
+ ## `ignoreSuggestion(target?)`
172
+
173
+ **Purpose:** Discards the value held in the Suggestions Context for a field.
174
+
175
+ **Signature:**
176
+
177
+ ```typescript
178
+ ignoreSuggestion(target?: string): void
179
+ ```
180
+
181
+ **Example:**
182
+
183
+ ```typescript
184
+ pConn.ignoreSuggestion();
185
+ ```
186
+
187
+ ---
188
+
189
+ ## `createComponent(componentMeta, dataSource?, index?, additionalPropsToComp?)`
190
+
191
+ **Purpose:** Creates a new component instance from raw metadata, resolving its properties and context — used to render nested/child components from configuration.
192
+
193
+ **Signature:**
194
+
195
+ ```typescript
196
+ createComponent(
197
+ componentMeta: { type: string; config?: Record<string, unknown> },
198
+ dataSource?: string,
199
+ index?: number,
200
+ additionalPropsToComp?: Record<string, unknown>
201
+ ): unknown
202
+ ```
203
+
204
+ **Example:**
205
+
206
+ ```typescript
207
+ const childComponent = pConn.createComponent({
208
+ type: 'TextInput',
209
+ config: { label: 'Comment', value: `.Comments[${index}].Text` }
210
+ });
211
+ ```
212
+
213
+ **Notes:** When `dataSource` is provided, `index` selects the row within that list's page reference.
214
+
215
+ ---
216
+
217
+ ## `setPageValue(sourcePage, target, isPerform)`
218
+
219
+ **Purpose:** Sets an embedded page object onto a target property.
220
+
221
+ **Signature:**
222
+
223
+ ```typescript
224
+ setPageValue(sourcePage: Record<string, unknown>, target: string, isPerform: boolean): void
225
+ ```
226
+
227
+ **Example:**
228
+
229
+ ```typescript
230
+ pConn.setPageValue(selectedRecord, targetProperty, true);
231
+ ```
@@ -0,0 +1,471 @@
1
+ # PConnect: Page/View Reference, Context & Container, Component Information
2
+
3
+ > Part of the [PCore / PConnect API Reference skills](../README.md). Methods documented here are called on a `PConnect` instance (`pConn`), obtained via the `getPConnect()` prop passed to every component.
4
+
5
+ ## `getPageReference()`
6
+
7
+ **Purpose:** Returns the state path where the current component's data is stored.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ getPageReference(): string
13
+ ```
14
+
15
+ **Example:**
16
+
17
+ ```typescript
18
+ const pageReference = pConn.getPageReference();
19
+ ```
20
+
21
+ **Notes:** Combine with `getContextName()` to fully resolve a value's location in application state.
22
+
23
+ ---
24
+
25
+ ## `getPropertyName()`
26
+
27
+ **Purpose:** Returns the property key configured on the component.
28
+
29
+ **Signature:**
30
+
31
+ ```typescript
32
+ getPropertyName(): string
33
+ ```
34
+
35
+ **Example:**
36
+
37
+ ```typescript
38
+ const propertyName = pConn.getPropertyName();
39
+ ```
40
+
41
+ ---
42
+
43
+ ## `getFullReference()`
44
+
45
+ **Purpose:** Combines the page reference and property name into a single fully-qualified property path.
46
+
47
+ **Signature:**
48
+
49
+ ```typescript
50
+ getFullReference(): string
51
+ ```
52
+
53
+ **Example:**
54
+
55
+ ```typescript
56
+ const fullReference = pConn.getFullReference();
57
+ ```
58
+
59
+ ---
60
+
61
+ ## `getCurrentView()`
62
+
63
+ **Purpose:** Returns the name of the view under which the current component was rendered.
64
+
65
+ **Signature:**
66
+
67
+ ```typescript
68
+ getCurrentView(): string | undefined
69
+ ```
70
+
71
+ **Example:**
72
+
73
+ ```typescript
74
+ const isDashboardView = pConn.getCurrentView() === 'MyDashboardView';
75
+ ```
76
+
77
+ ---
78
+
79
+ ## `getReferenceList()`
80
+
81
+ **Purpose:** Returns the reference list (bound page-list property) currently associated with the component.
82
+
83
+ **Signature:**
84
+
85
+ ```typescript
86
+ getReferenceList(): string
87
+ ```
88
+
89
+ **Example:**
90
+
91
+ ```typescript
92
+ const referenceList = pConn.getReferenceList();
93
+ ```
94
+
95
+ ---
96
+
97
+ ## `setReferenceList(ref)`
98
+
99
+ **Purpose:** Explicitly sets the reference list path used by the component.
100
+
101
+ **Signature:**
102
+
103
+ ```typescript
104
+ setReferenceList(ref: string): void
105
+ ```
106
+
107
+ **Example:**
108
+
109
+ ```typescript
110
+ pConn.setReferenceList('.SelectedItems');
111
+ ```
112
+
113
+ ---
114
+
115
+ ## `getReferencedView()`
116
+
117
+ **Purpose:** Returns the metadata of the view referenced by a component of type `reference`.
118
+
119
+ **Signature:**
120
+
121
+ ```typescript
122
+ getReferencedView(): { type: string; config?: Record<string, unknown> } | undefined
123
+ ```
124
+
125
+ **Example:**
126
+
127
+ ```typescript
128
+ const viewMetadata = pConn.getReferencedView();
129
+ ```
130
+
131
+ **Notes:** Only meaningful for components of type `reference`; returns `undefined` otherwise.
132
+
133
+ ---
134
+
135
+ ## `getReferencedViewPConnect(passOptions?)`
136
+
137
+ **Purpose:** Returns a wrapper (with `.getPConnect()`) for the view referenced by a `reference`-type component.
138
+
139
+ **Signature:**
140
+
141
+ ```typescript
142
+ getReferencedViewPConnect(passOptions?: boolean): { getPConnect: () => PConnect }
143
+ ```
144
+
145
+ **Example:**
146
+
147
+ ```typescript
148
+ const referencedPConn = pConn.getReferencedViewPConnect().getPConnect();
149
+ ```
150
+
151
+ **Notes:** Pass `passOptions = true` to propagate the reference's own options onto the referenced view's `PConnect`.
152
+
153
+ ---
154
+
155
+ ## `getContextName()`
156
+
157
+ **Purpose:** Returns the qualified context name under which the component is rendered (for example, `app/primary_1`).
158
+
159
+ **Signature:**
160
+
161
+ ```typescript
162
+ getContextName(): string
163
+ ```
164
+
165
+ **Example:**
166
+
167
+ ```typescript
168
+ const contextName = pConn.getContextName();
169
+ ```
170
+
171
+ ---
172
+
173
+ ## `getContainerName()`
174
+
175
+ **Purpose:** Returns the container name associated with the component (for example, `primary`).
176
+
177
+ **Signature:**
178
+
179
+ ```typescript
180
+ getContainerName(): string
181
+ ```
182
+
183
+ **Example:**
184
+
185
+ ```typescript
186
+ const containerName = pConn.getContainerName();
187
+ ```
188
+
189
+ ---
190
+
191
+ ## `getTarget()`
192
+
193
+ **Purpose:** Returns the fully qualified target container name (for example, `app/primary`).
194
+
195
+ **Signature:**
196
+
197
+ ```typescript
198
+ getTarget(): string | undefined
199
+ ```
200
+
201
+ **Example:**
202
+
203
+ ```typescript
204
+ const target = pConn.getTarget();
205
+ ```
206
+
207
+ ---
208
+
209
+ ## `isVisible()`
210
+
211
+ **Purpose:** Resolves the component's configured visibility (an expression or "when" condition).
212
+
213
+ **Signature:**
214
+
215
+ ```typescript
216
+ isVisible(): boolean
217
+ ```
218
+
219
+ **Example:**
220
+
221
+ ```typescript
222
+ if (pConn.isVisible()) {
223
+ renderField();
224
+ }
225
+ ```
226
+
227
+ ---
228
+
229
+ ## `isReadOnly()`
230
+
231
+ **Purpose:** Returns whether the component's `readOnly` configuration is set.
232
+
233
+ **Signature:**
234
+
235
+ ```typescript
236
+ isReadOnly(): boolean
237
+ ```
238
+
239
+ **Example:**
240
+
241
+ ```typescript
242
+ const readOnly = pConn.isReadOnly();
243
+ ```
244
+
245
+ ---
246
+
247
+ ## `isReadOnlyField()`
248
+
249
+ **Purpose:** Checks whether the current field is read-only based on the referenced field's metadata (rather than the component's own `readOnly` config).
250
+
251
+ **Signature:**
252
+
253
+ ```typescript
254
+ isReadOnlyField(): boolean
255
+ ```
256
+
257
+ **Example:**
258
+
259
+ ```typescript
260
+ const readOnlyField = pConn.isReadOnlyField();
261
+ ```
262
+
263
+ **Notes:** Distinct from `isReadOnly()` — this reflects the underlying field's metadata (for example, an internal or class-key field), not just the component's own configuration.
264
+
265
+ ---
266
+
267
+ ## `isEditable()`
268
+
269
+ **Purpose:** Checks whether the component is editable, based on the presence of a bound value/selection and the absence of read-only/disabled conditions.
270
+
271
+ **Signature:**
272
+
273
+ ```typescript
274
+ isEditable(): boolean
275
+ ```
276
+
277
+ **Example:**
278
+
279
+ ```typescript
280
+ const editable = pConn.isEditable();
281
+ ```
282
+
283
+ ---
284
+
285
+ ## `getComponentName()`
286
+
287
+ **Purpose:** Returns the component's type name (for example, `TextInput`).
288
+
289
+ **Signature:**
290
+
291
+ ```typescript
292
+ getComponentName(): string | undefined
293
+ ```
294
+
295
+ **Example:**
296
+
297
+ ```typescript
298
+ const componentType = pConn.getComponentName();
299
+ ```
300
+
301
+ ---
302
+
303
+ ## `getRelativePath()`
304
+
305
+ **Purpose:** Returns the JSON path of the component relative to the root of its containing view metadata.
306
+
307
+ **Signature:**
308
+
309
+ ```typescript
310
+ getRelativePath(): string
311
+ ```
312
+
313
+ **Example:**
314
+
315
+ ```typescript
316
+ const relativePath = pConn.getRelativePath();
317
+ ```
318
+
319
+ ---
320
+
321
+ ## `hasChildren()`
322
+
323
+ **Purpose:** Checks whether the component has children configured in its metadata.
324
+
325
+ **Signature:**
326
+
327
+ ```typescript
328
+ hasChildren(): boolean
329
+ ```
330
+
331
+ **Example:**
332
+
333
+ ```typescript
334
+ if (pConn.hasChildren()) {
335
+ renderChildComponents();
336
+ }
337
+ ```
338
+
339
+ ---
340
+
341
+ ## `isInsideList()`
342
+
343
+ **Purpose:** Checks whether the current component is rendered inside a repeating list/table row.
344
+
345
+ **Signature:**
346
+
347
+ ```typescript
348
+ isInsideList(): boolean
349
+ ```
350
+
351
+ **Example:**
352
+
353
+ ```typescript
354
+ if (pConn.isInsideList()) {
355
+ // adjust rendering for a row inside a repeating structure
356
+ }
357
+ ```
358
+
359
+ ---
360
+
361
+ ## `getChildren()`
362
+
363
+ **Purpose:** Returns the list of child component wrappers for the current component.
364
+
365
+ **Signature:**
366
+
367
+ ```typescript
368
+ getChildren(): { getPConnect: () => PConnect }[]
369
+ ```
370
+
371
+ **Example:**
372
+
373
+ ```typescript
374
+ const firstChildPConn = pConn.getChildren()[0]?.getPConnect();
375
+ ```
376
+
377
+ ---
378
+
379
+ ## `getActions()`
380
+
381
+ **Purpose:** Returns the actions object (event-type to handler map) bound to the current component, typically spread onto its props.
382
+
383
+ **Signature:**
384
+
385
+ ```typescript
386
+ getActions(): Record<string, (...args: unknown[]) => void>
387
+ ```
388
+
389
+ **Example:**
390
+
391
+ ```typescript
392
+ const actions = pConn.getActions();
393
+ ```
394
+
395
+ ---
396
+
397
+ ## `setAction(eventType, handler)`
398
+
399
+ **Purpose:** Associates a handler function with an event type for the current component.
400
+
401
+ **Signature:**
402
+
403
+ ```typescript
404
+ setAction(eventType: string, handler: (...args: unknown[]) => void): void
405
+ ```
406
+
407
+ **Example:**
408
+
409
+ ```typescript
410
+ pConn.setAction('click', () => {
411
+ // handle click
412
+ });
413
+ ```
414
+
415
+ ---
416
+
417
+ ## `getLocaleRuleName()`
418
+
419
+ **Purpose:** Returns the locale reference rule name used to localize this component's field values.
420
+
421
+ **Signature:**
422
+
423
+ ```typescript
424
+ getLocaleRuleName(): string | undefined
425
+ ```
426
+
427
+ **Example:**
428
+
429
+ ```typescript
430
+ const localeRuleName = pConn.getLocaleRuleName();
431
+ ```
432
+
433
+ ---
434
+
435
+ ## `getLocalizedValue(rawString, localePath?, localeRuleKey?)`
436
+
437
+ **Purpose:** Returns the localized value for a raw string.
438
+
439
+ **Signature:**
440
+
441
+ ```typescript
442
+ getLocalizedValue(rawString: string, localePath?: string, localeRuleKey?: string): string
443
+ ```
444
+
445
+ **Example:**
446
+
447
+ ```typescript
448
+ const label = pConn.getLocalizedValue('Submit');
449
+ ```
450
+
451
+ **Notes:** Deprecated in favor of `getLocalizationService(localeRuleKey, localePath).getLocalizedText(rawString)` — see below.
452
+
453
+ ---
454
+
455
+ ## `getLocalizationService(localeReference?)`
456
+
457
+ **Purpose:** Returns a `LocalizationService` instance used to resolve localized text.
458
+
459
+ **Signature:**
460
+
461
+ ```typescript
462
+ getLocalizationService(localeReference?: string): LocalizationService
463
+ ```
464
+
465
+ **Example:**
466
+
467
+ ```typescript
468
+ const label = pConn.getLocalizationService().getLocalizedText('Submit');
469
+ ```
470
+
471
+ **Notes:** See [pconnect-case-info-data-info-localization.md](./pconnect-case-info-data-info-localization.md) for the full `LocalizationService` method catalog.