@pega/sdk 0.0.3 → 0.0.5
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.
- package/LICENSE +183 -183
- package/README.md +6 -6
- package/SECURITY.md +2 -1
- package/dist/index.js +299 -56
- package/package.json +7 -6
- package/templates/angular-sdk-reference/package.json +15 -15
- package/templates/angular-sdk-reference/tsconfig.json +2 -2
- package/templates/react-native-sdk-reference/App.tsx +2 -4
- package/templates/react-native-sdk-reference/expo-env.d.ts +3 -0
- package/templates/react-native-sdk-reference/package.json +6 -6
- package/templates/react-native-sdk-reference/tsconfig.json +2 -1
- package/templates/react-sdk-reference/.ai-common/agents/implementation-expert.md +132 -0
- package/templates/react-sdk-reference/{.github/copilot-instructions.md → .ai-common/global/ai-agent-instructions.md} +7 -7
- package/templates/react-sdk-reference/{.github/instructions/component-map.instructions.md → .ai-common/instructions/component-map.md} +9 -2
- package/templates/react-sdk-reference/{.github/instructions/dse-component.instructions.md → .ai-common/instructions/dse-component.md} +1 -1
- package/templates/react-sdk-reference/{.cursor/rules/field-component.mdrules → .ai-common/instructions/field-component.md} +6 -2
- package/templates/react-sdk-reference/{.github/instructions/template-component.instructions.md → .ai-common/instructions/template-component.md} +3 -2
- package/templates/react-sdk-reference/{.github/instructions/widget-component.instructions.md → .ai-common/instructions/widget-component.md} +2 -1
- package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +219 -0
- package/templates/react-sdk-reference/.ai-common/prompts/component-manifest.json +199 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +528 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +216 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +239 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +283 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +222 -0
- package/templates/react-sdk-reference/.ai-common/prompts/identify-components.md +109 -0
- package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/AlertBanner.md +187 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +196 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +213 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules → .ai-common/skills/design-system-extension-skills/DetailsFields.md} +81 -33
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules → .ai-common/skills/design-system-extension-skills/FieldGroup.md} +82 -40
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules → .ai-common/skills/design-system-extension-skills/FieldGroupList.md} +68 -28
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules → .ai-common/skills/design-system-extension-skills/FieldValueList.md} +75 -31
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/Operator.mdrules → .ai-common/skills/design-system-extension-skills/Operator.md} +99 -31
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules → .ai-common/skills/design-system-extension-skills/Pulse.md} +37 -20
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +290 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/WssQuickCreate.md +168 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension.mdrules → .ai-common/skills/design-system-extension.md} +14 -17
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-components.mdrules → .ai-common/skills/field-components.md} +27 -14
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +298 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +340 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +358 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +230 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +221 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +213 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +260 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +177 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/Group.mdrules → .ai-common/skills/field-skills/Group.md} +72 -20
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +169 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +250 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Multiselect.md +258 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/ObjectReference.mdrules → .ai-common/skills/field-skills/ObjectReference.md} +101 -23
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +177 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +210 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +260 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/RichText.mdrules → .ai-common/skills/field-skills/RichText.md} +108 -17
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +188 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +286 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/SemanticLink.mdrules → .ai-common/skills/field-skills/SemanticLink.md} +98 -32
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +164 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/TextContent.mdrules → .ai-common/skills/field-skills/TextContent.md} +66 -27
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +174 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +156 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +145 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/UserReference.md +293 -0
- package/templates/react-sdk-reference/.ai-common/skills/run-and-verify.md +70 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-components.mdrules → .ai-common/skills/template-components.md} +89 -64
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +227 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +273 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/BannerPage.mdrules → .ai-common/skills/template-skills/BannerPage.md} +58 -21
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +185 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +399 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +282 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DataReference.md +174 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +221 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultPage.md +161 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/Details.mdrules → .ai-common/skills/template-skills/Details.md} +78 -22
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules → .ai-common/skills/template-skills/DetailsSubTabs.md} +82 -25
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules → .ai-common/skills/template-skills/DetailsThreeColumn.md} +31 -22
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules → .ai-common/skills/template-skills/DetailsTwoColumn.md} +31 -22
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DynamicTabs.mdrules → .ai-common/skills/template-skills/DynamicTabs.md} +82 -15
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +231 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/HierarchicalForm.mdrules → .ai-common/skills/template-skills/HierarchicalForm.md} +63 -20
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/InlineDashboard.mdrules → .ai-common/skills/template-skills/InlineDashboard.md} +58 -18
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules → .ai-common/skills/template-skills/InlineDashboardPage.md} +66 -18
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/ListPage.mdrules → .ai-common/skills/template-skills/ListPage.md} +27 -12
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +419 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules → .ai-common/skills/template-skills/MultiReferenceReadOnly.md} +53 -16
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +209 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/OneColumn.mdrules → .ai-common/skills/template-skills/OneColumn.md} +59 -25
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +222 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SimpleTable.md +190 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +160 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/SubTabs.mdrules → .ai-common/skills/template-skills/SubTabs.md} +61 -16
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/TwoColumn.mdrules → .ai-common/skills/template-skills/TwoColumn.md} +83 -37
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +48 -46
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/WssNavBar.md +210 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-components.mdrules → .ai-common/skills/widget-components.md} +12 -28
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +121 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +209 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/CaseHistory.mdrules → .ai-common/skills/widget-skills/CaseHistory.md} +81 -20
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/FileUtility.md +273 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/Followers.mdrules → .ai-common/skills/widget-skills/Followers.md} +43 -24
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/QuickCreate.mdrules → .ai-common/skills/widget-skills/QuickCreate.md} +68 -21
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/SummaryItem.mdrules → .ai-common/skills/widget-skills/SummaryItem.md} +92 -29
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +492 -0
- package/templates/react-sdk-reference/index.html +1 -4
- package/templates/react-sdk-reference/package.json +15 -15
- package/templates/react-sdk-reference/package.minimal.json +29 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
- package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
- package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
- package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
- package/templates/react-sdk-reference/src/MashupApp.tsx +194 -104
- package/templates/react-sdk-reference/src/PortalApp.tsx +15 -50
- package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
- package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
- package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
- package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
- package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
- package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
- package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
- package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
- package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
- package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
- package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
- package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
- package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
- package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
- package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
- package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
- package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
- package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
- package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
- package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
- package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
- package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
- package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
- package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
- package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
- package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
- package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
- package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
- package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
- package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
- package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
- package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
- package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
- package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
- package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
- package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
- package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
- package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
- package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
- package/templates/react-sdk-reference/src/components/index.ts +1 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
- package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
- package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
- package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
- package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
- package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
- package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
- package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
- package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
- package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
- package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
- package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
- package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
- package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
- package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
- package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
- package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
- package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
- package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
- package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
- package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
- package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
- package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
- package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
- package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
- package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
- package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
- package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
- package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
- package/templates/react-sdk-reference/src/main.tsx +1 -1
- package/templates/react-sdk-reference/tsconfig.json +2 -1
- package/templates/react-sdk-reference/vite.config.ts +51 -26
- package/templates/wc-sdk-reference/package.json +3 -3
- package/templates/wc-sdk-reference/src/index.ts +10 -10
- package/templates/wc-sdk-reference/tsconfig.json +1 -0
- package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
- package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -71
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -92
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -87
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -144
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +0 -111
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -149
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -126
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -139
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -151
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -124
- package/templates/react-sdk-reference/.claude/prompts/identify-components.md +0 -105
- package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +0 -149
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +0 -154
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +0 -144
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +0 -111
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -115
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +0 -149
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -83
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -206
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -289
- package/templates/react-sdk-reference/.claude/skills/field-components.md +0 -294
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -112
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +0 -203
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -158
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -99
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -103
- package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +0 -98
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +0 -90
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -87
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +0 -136
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +0 -164
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +0 -164
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -92
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -110
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -146
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -138
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -124
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -216
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +0 -148
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +0 -96
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +0 -101
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -104
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -85
- package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +0 -180
- package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +0 -68
- package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -322
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -144
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -122
- package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +0 -83
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -100
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -126
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +0 -120
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +0 -102
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +0 -110
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -95
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +0 -78
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -78
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +0 -101
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +0 -113
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +0 -104
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +0 -85
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +0 -68
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -139
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +0 -141
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +0 -124
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +0 -127
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -103
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -79
- package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +0 -271
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +0 -146
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -200
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +0 -99
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +0 -167
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -190
- package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
- package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
- package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
- package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +0 -111
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
- package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
- package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
- package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
- package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
- package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +0 -73
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +0 -149
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -111
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +0 -154
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +0 -131
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +0 -144
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +0 -156
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +0 -129
- package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
- package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
- package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +0 -135
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -149
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -154
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -144
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +0 -131
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -111
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +0 -115
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -149
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +0 -83
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +0 -206
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +0 -135
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +0 -289
- package/templates/react-sdk-reference/.github/skills/field-components.md +0 -294
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -112
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -203
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -158
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -106
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -99
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -103
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -98
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -114
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -107
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -90
- package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +0 -87
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -136
- package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +0 -164
- package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +0 -164
- package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +0 -92
- package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +0 -110
- package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +0 -146
- package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +0 -138
- package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +0 -124
- package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +0 -216
- package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +0 -148
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -96
- package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +0 -101
- package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +0 -104
- package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +0 -88
- package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +0 -85
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -180
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -68
- package/templates/react-sdk-reference/.github/skills/template-components.md +0 -322
- package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +0 -144
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -122
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -83
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +0 -100
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -126
- package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +0 -107
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -120
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -102
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +0 -110
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -88
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +0 -95
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -78
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +0 -78
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -101
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -109
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -113
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -104
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -85
- package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +0 -68
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -139
- package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +0 -80
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -141
- package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +0 -109
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -135
- package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +0 -127
- package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +0 -103
- package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +0 -79
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -150
- package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +0 -135
- package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -271
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -82
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -146
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -107
- package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +0 -200
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -99
- package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +0 -114
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -167
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -190
- package/templates/react-sdk-reference/AGENTS.md +0 -247
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Skill: Confirmation
|
|
2
|
+
|
|
3
|
+
Case confirmation template. Renders the post-submission confirmation view with a Done button, optionally showing ToDo assignments that remain after the case is submitted.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> ⚠️ **CRITICAL — DO NOT SIMPLIFY THIS COMPONENT**
|
|
10
|
+
>
|
|
11
|
+
> The close event MUST use `PCore.getContainerUtils()` to get the proper container info for the pub/sub payload. Without this, the confirmation view won't close properly and the case won't transition correctly.
|
|
12
|
+
>
|
|
13
|
+
> **Mandatory implementation details:**
|
|
14
|
+
>
|
|
15
|
+
> 1. `PCore.getContainerUtils().getActiveContainerItemName(getPConnect().getTarget())` — gets active container item
|
|
16
|
+
> 2. `PCore.getContainerUtils().getContainerItemData(target, activeItemID)` — gets root info for close event
|
|
17
|
+
> 3. `PCore.getPubSubUtils().publish(CONSTS.PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, rootInfo)` — proper close event with payload
|
|
18
|
+
> 4. `getComponentFromRegistry('Details')` — for rendering case details in confirmation
|
|
19
|
+
> 5. `getToDoAssignments(getPConnect())` — from `PCore.getSDKUtils().getSDKContainerUtils()`
|
|
20
|
+
> 6. Check `showDetails` before rendering Details component
|
|
21
|
+
>
|
|
22
|
+
> **Minimum Implementation Checklist:**
|
|
23
|
+
>
|
|
24
|
+
> - [ ] `PCore.getContainerUtils()` used for close event (NOT a simple `setShowConfirmView(false)`)
|
|
25
|
+
> - [ ] `rootInfo` passed to `CLOSE_CONFIRM_VIEW` pub/sub event
|
|
26
|
+
> - [ ] Details component rendered when `showDetails` is true
|
|
27
|
+
> - [ ] ToDo component rendered with `getToDoAssignments` when `showTasks` is true
|
|
28
|
+
> - [ ] Two render states: confirmation view (with Done button) and post-close (just ToDo if any)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Component Purpose
|
|
33
|
+
|
|
34
|
+
Displayed after a case or assignment is submitted. Shows the confirmation view (with `Details` region) and a Done button. If outstanding ToDo assignments remain after the user clicks Done, they are displayed. When the user truly finishes, publishes `CLOSE_CONFIRM_VIEW` to close the container.
|
|
35
|
+
|
|
36
|
+
## Pega Metadata
|
|
37
|
+
|
|
38
|
+
- **Registration key:** `Confirmation` (in `component-map.ts`)
|
|
39
|
+
- **Category:** Page template — confirmation
|
|
40
|
+
- **Extends:** `PConnProps`
|
|
41
|
+
|
|
42
|
+
## Props
|
|
43
|
+
|
|
44
|
+
| Prop | Type | Required | Description |
|
|
45
|
+
| ------------- | ------------- | -------- | ----------------------------------------------------------------------------- |
|
|
46
|
+
| `children` | `ReactNode[]` | Yes | Region children: `[0]` = ToDo region, `[1]` = Details region (when available) |
|
|
47
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
48
|
+
|
|
49
|
+
## Component Skeleton
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { type PropsWithChildren, useState } from 'react';
|
|
53
|
+
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
54
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
55
|
+
|
|
56
|
+
interface ConfirmationProps extends PConnProps {
|
|
57
|
+
datasource: { source: any };
|
|
58
|
+
label: string;
|
|
59
|
+
showLabel: boolean;
|
|
60
|
+
showTasks: boolean;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export default function Confirmation(props: PropsWithChildren<ConfirmationProps>) {
|
|
64
|
+
const ToDo = getComponentFromRegistry('Todo'); // NOTE: 'Todo' not 'ToDo'
|
|
65
|
+
const Details = getComponentFromRegistry('Details');
|
|
66
|
+
|
|
67
|
+
const CONSTS = PCore.getConstants();
|
|
68
|
+
const [showConfirmView, setShowConfirmView] = useState(true);
|
|
69
|
+
const { showTasks, getPConnect, showLabel, label } = props;
|
|
70
|
+
|
|
71
|
+
// 1. Get active container + root info
|
|
72
|
+
const activeContainerItemID = PCore.getContainerUtils()
|
|
73
|
+
.getActiveContainerItemName(getPConnect().getTarget() || '');
|
|
74
|
+
const rootInfo = PCore.getContainerUtils()
|
|
75
|
+
.getContainerItemData(getPConnect().getTarget(), activeContainerItemID);
|
|
76
|
+
|
|
77
|
+
// 2. Get todo assignments
|
|
78
|
+
const { getToDoAssignments } = PCore.getSDKUtils().getSDKContainerUtils();
|
|
79
|
+
const toDoList = getToDoAssignments(getPConnect());
|
|
80
|
+
|
|
81
|
+
// 3. Done button handler
|
|
82
|
+
const onConfirmViewClose = () => {
|
|
83
|
+
setShowConfirmView(false);
|
|
84
|
+
PCore.getPubSubUtils().publish(
|
|
85
|
+
PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, rootInfo
|
|
86
|
+
);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// 4. Show details check
|
|
90
|
+
const showDetails = props.children?.[0]?.props?.getPConnect()?.getChildren()?.length > 0;
|
|
91
|
+
|
|
92
|
+
// 5. Render: confirm view OR todo view
|
|
93
|
+
if (showConfirmView) {
|
|
94
|
+
return (
|
|
95
|
+
<Card>
|
|
96
|
+
<h2>{showLabel ? label : ''}</h2>
|
|
97
|
+
{showDetails && <Details {...props} showLabel={false} />}
|
|
98
|
+
{showTasks && toDoList?.length > 0 && (
|
|
99
|
+
<ToDo datasource={{ source: toDoList }} getPConnect={getPConnect}
|
|
100
|
+
type={CONSTS.TODO} headerText="Open Tasks" isConfirm />
|
|
101
|
+
)}
|
|
102
|
+
<DoneButton onClick={onConfirmViewClose}>Done</DoneButton>
|
|
103
|
+
</Card>
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
return toDoList?.length > 0 ? (
|
|
107
|
+
<Card>
|
|
108
|
+
<ToDo datasource={{ source: toDoList }} getPConnect={getPConnect}
|
|
109
|
+
type={CONSTS.TODO} headerText="Tasks" isConfirm />
|
|
110
|
+
</Card>
|
|
111
|
+
) : null;
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Behavioral Contract
|
|
116
|
+
|
|
117
|
+
### State
|
|
118
|
+
|
|
119
|
+
- `showConfirmView`: boolean, initially `true`.
|
|
120
|
+
- `toDoAssignments`: array from `getToDoAssignments(getPConnect())` — pending assignments.
|
|
121
|
+
|
|
122
|
+
### Done Button Click
|
|
123
|
+
|
|
124
|
+
1. Call `getPConnect().getContainerManager().closeContainerItem(getPConnect().getContainerName())`.
|
|
125
|
+
2. OR call `PCore.getContainerUtils().getActiveContainerItemName(getPConnect().getContainerName())`.
|
|
126
|
+
3. Check remaining `toDoAssignments`.
|
|
127
|
+
4. If assignments remain: `setShowConfirmView(false)` — show ToDo view instead.
|
|
128
|
+
5. If no assignments remain: publish `PCore.getPubSubUtils().publish(CLOSE_CONFIRM_VIEW, {})`.
|
|
129
|
+
|
|
130
|
+
### Show Details
|
|
131
|
+
|
|
132
|
+
- `showDetails`: `children.length > 1` — true when a Details region is present.
|
|
133
|
+
|
|
134
|
+
### Render: Confirm View (`showConfirmView === true`)
|
|
135
|
+
|
|
136
|
+
1. Confirmation message header (localized `"Your submission is confirmed"` or equivalent).
|
|
137
|
+
2. If `showDetails`: render `children[1]` (Details region) using `createElement(PConnectComponent, ...)`.
|
|
138
|
+
3. Done button (`localized "Done"`) — triggers done click handler above.
|
|
139
|
+
|
|
140
|
+
### Render: ToDo View (`showConfirmView === false`)
|
|
141
|
+
|
|
142
|
+
- Render `children[0]` (ToDo region) using `createElement(PConnectComponent, ...)`.
|
|
143
|
+
|
|
144
|
+
## Visual Specifications
|
|
145
|
+
|
|
146
|
+
### Confirm View
|
|
147
|
+
|
|
148
|
+
| Element | Description |
|
|
149
|
+
| ------------------- | --------------------------------------------- |
|
|
150
|
+
| Confirmation header | Success icon + heading text |
|
|
151
|
+
| Details section | Optional — rendered below confirmation header |
|
|
152
|
+
| Done button | Primary button, bottom of the form |
|
|
153
|
+
|
|
154
|
+
**CSS-only implementation notes:**
|
|
155
|
+
|
|
156
|
+
- Confirm view: `display: flex; flex-direction: column; align-items: center; gap: 1.5rem; padding: 2rem`.
|
|
157
|
+
- Success icon: large checkmark or success indicator, centered.
|
|
158
|
+
- Confirmation heading: `font-size: 1.5rem; font-weight: 600; text-align: center`.
|
|
159
|
+
- Done button: `align-self: flex-end` or centered.
|
|
160
|
+
|
|
161
|
+
### ToDo View
|
|
162
|
+
|
|
163
|
+
- Full-width ToDo region rendered in place of confirmation.
|
|
164
|
+
- No additional wrapping — render the region directly.
|
|
165
|
+
|
|
166
|
+
## Edge Cases & Special Logic
|
|
167
|
+
|
|
168
|
+
- `getToDoAssignments(getPConnect())` — returns empty array if no assignments remain; triggers close publish immediately.
|
|
169
|
+
- `children[1]` may not exist — always check `showDetails` before rendering.
|
|
170
|
+
- `CLOSE_CONFIRM_VIEW` is a PubSub constant — ensure it matches the consuming container's subscription key.
|
|
171
|
+
- The confirmation view should not be navigable backward — Done is the only exit.
|
|
172
|
+
|
|
173
|
+
## Dependencies
|
|
174
|
+
|
|
175
|
+
- `getToDoAssignments` from `../../helpers/case-utils` (or equivalent)
|
|
176
|
+
- `PCore.getPubSubUtils().publish()` — for CLOSE_CONFIRM_VIEW event
|
|
177
|
+
- `PCore.getContainerUtils()` — for container item management
|
|
178
|
+
- `PConnectComponent` from `@pega/sdk-react`
|
|
179
|
+
|
|
180
|
+
## Design System Mapping
|
|
181
|
+
|
|
182
|
+
**UI control type:** Post-submission confirmation page with done action and optional todo view.
|
|
183
|
+
|
|
184
|
+
Listed design systems are examples only.
|
|
185
|
+
|
|
186
|
+
| Design System | Success Indicator | Done Button | Layout |
|
|
187
|
+
| ------------------ | ------------------------------ | ------------------------------ | --------------------------------------------- |
|
|
188
|
+
| Default (CSS only) | CSS checkmark SVG | `<button class='primary'>` | Centered flexbox column |
|
|
189
|
+
| MUI | `<CheckCircleIcon>` | `<Button variant='contained'>` | `<Box display='flex' flexDirection='column'>` |
|
|
190
|
+
| Ant Design | `<Result status='success'>` | `<Button type='primary'>` | Ant Result component |
|
|
191
|
+
| Chakra UI | `<CheckCircleIcon>` + `<Text>` | `<Button colorScheme='blue'>` | `<VStack>` |
|
|
192
|
+
| Shadcn/ui | Custom icon + `<h2>` | `<Button>` | Tailwind centered div |
|
|
193
|
+
|
|
194
|
+
When implementing in a specific design system:
|
|
195
|
+
|
|
196
|
+
- Done button must check remaining `toDoAssignments` before deciding whether to show ToDo view or close
|
|
197
|
+
- `CLOSE_CONFIRM_VIEW` publish must happen only after confirming no assignments remain
|
|
198
|
+
- `showDetails` check must guard `children[1]` access
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Skill: DataReference
|
|
2
|
+
|
|
3
|
+
Data reference template. Routes to field, table, or search renderers based on `selectionMode` and `displayAs` props. Handles deferred data source loading, dropdown options, and multi-select variants.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> ⚠️ **CRITICAL — DataReference is a CHILDREN PASS-THROUGH**
|
|
10
|
+
>
|
|
11
|
+
> This component MUST render its React `children` directly. The PConnect bridge already resolves
|
|
12
|
+
> the correct sub-components (Dropdown, AutoComplete, SingleReferenceReadOnly, etc.) and passes
|
|
13
|
+
> them as `children`. DataReference just passes them through.
|
|
14
|
+
>
|
|
15
|
+
> ```typescript
|
|
16
|
+
> // ✅ CORRECT — simple children pass-through
|
|
17
|
+
> const childArray = Array.isArray(children) ? children : [children].filter(Boolean);
|
|
18
|
+
> return childArray.length === 1 ? childArray[0] : <div>{childArray}</div>;
|
|
19
|
+
> ```
|
|
20
|
+
>
|
|
21
|
+
> ❌ **NEVER call `pConn.createComponent()`** — causes "Maximum call stack size exceeded" (infinite recursion back to form templates)
|
|
22
|
+
> ❌ **NEVER call `firstChildPConnect().createComponent()`** — causes "getPConnect is not a function" when child PConnect isn't ready
|
|
23
|
+
> ❌ **NEVER try to manually route to Dropdown/AutoComplete/etc based on `displayAs`** — the bridge already does this
|
|
24
|
+
>
|
|
25
|
+
> **Why the reference is ~460 lines but the generated version should be ~10:**
|
|
26
|
+
> The reference adds advanced features (deferred datasource fetching, review-mode editing, advanced search, card variants) that require careful PConnect lifecycle management. These features are NOT needed for the component to function correctly — the bridge handles core rendering. Attempting to replicate the reference's `createComponent` pattern without the full ~460 lines of config manipulation will crash.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Component Purpose
|
|
31
|
+
|
|
32
|
+
Renders a data reference field that can be displayed as a dropdown, autocomplete, checkbox group, radiobutton group, or a card-selection layout. In read-only mode, delegates to `SingleReferenceReadOnly` (single selection) or `MultiReferenceReadOnly` (multi-selection). Supports deferred/parameterized data sources.
|
|
33
|
+
|
|
34
|
+
## Pega Metadata
|
|
35
|
+
|
|
36
|
+
- **Registration key:** `DataReference` (in `component-map.ts`)
|
|
37
|
+
- **Category:** Form template — data selection
|
|
38
|
+
- **Extends:** `PConnProps`
|
|
39
|
+
|
|
40
|
+
## Props
|
|
41
|
+
|
|
42
|
+
| Prop | Type | Required | Description |
|
|
43
|
+
| -------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------ |
|
|
44
|
+
| `label` | `string` | Yes | Field label |
|
|
45
|
+
| `displayAs` | `string` | Yes | UI variant: `'dropdown'`, `'autocomplete'`, `'checkbox'`, `'radiobutton'`, `'listview'`, `'searchbox'` |
|
|
46
|
+
| `selectionMode` | `string` | Yes | `'single'` or `'multi'` |
|
|
47
|
+
| `displayMode` | `string` | No | `'DISPLAY_ONLY'` for read-only rendering |
|
|
48
|
+
| `readOnly` | `boolean` | No | Alternative read-only flag |
|
|
49
|
+
| `ruleClass` | `string` | Yes | Data page class reference |
|
|
50
|
+
| `dataRelationship` | `string` | No | Relationship type |
|
|
51
|
+
| `isDDSourceDeferred` | `boolean` | No | Whether data source is loaded asynchronously |
|
|
52
|
+
| `parameters` | `object` | No | Parameters passed to the data page for deferred sources |
|
|
53
|
+
| `allowSearch` | `boolean` | No | Show search input inside dropdown/autocomplete |
|
|
54
|
+
| `searchIcon` | `boolean` | No | Show search icon in the field |
|
|
55
|
+
| `numCols` | `string` | No | Column count for checkbox/radiobutton layouts: `'1'`, `'2'`, `'3'` |
|
|
56
|
+
| `listType` | `string` | No | `'associated'` or `'datapage'` |
|
|
57
|
+
| `fieldMetadata` | `object` | No | Extra field-level metadata |
|
|
58
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
59
|
+
|
|
60
|
+
## Component Skeleton
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
import { type PropsWithChildren, type ReactElement } from 'react';
|
|
64
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
65
|
+
|
|
66
|
+
interface DataReferenceProps extends PConnProps {
|
|
67
|
+
displayMode?: string;
|
|
68
|
+
selectionMode?: string;
|
|
69
|
+
displayAs?: string;
|
|
70
|
+
parameters?: any;
|
|
71
|
+
hideLabel?: boolean;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export default function DataReference(props: PropsWithChildren<DataReferenceProps>) {
|
|
75
|
+
// DataReference is a pass-through wrapper.
|
|
76
|
+
// The PConnect bridge resolves the correct sub-components (Dropdown, AutoComplete,
|
|
77
|
+
// SingleReferenceReadOnly, MultiReferenceReadOnly, etc.) and passes them as children.
|
|
78
|
+
// ⚠️ DO NOT call pConn.createComponent() or firstChildPConnect().createComponent() here —
|
|
79
|
+
// it causes "getPConnect is not a function" errors or infinite recursion.
|
|
80
|
+
const { children } = props;
|
|
81
|
+
const childArray = Array.isArray(children) ? children : [children].filter(Boolean);
|
|
82
|
+
|
|
83
|
+
return childArray.length === 1
|
|
84
|
+
? (childArray[0] as ReactElement ?? null)
|
|
85
|
+
: <div>{childArray}</div>;
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Behavioral Contract
|
|
90
|
+
|
|
91
|
+
### Read-Only Routing
|
|
92
|
+
|
|
93
|
+
If `displayMode === 'DISPLAY_ONLY'` or `readOnly === true`:
|
|
94
|
+
|
|
95
|
+
- `selectionMode === 'single'` → render `<SingleReferenceReadOnly />`.
|
|
96
|
+
- `selectionMode === 'multi'` → render `<MultiReferenceReadOnly />`.
|
|
97
|
+
- Both receive all relevant props plus `getPConnect`.
|
|
98
|
+
|
|
99
|
+
### Edit Routing (by `displayAs`)
|
|
100
|
+
|
|
101
|
+
| `displayAs` | Rendered component |
|
|
102
|
+
| ---------------- | ----------------------------------------- |
|
|
103
|
+
| `'dropdown'` | Registered `Dropdown` field component |
|
|
104
|
+
| `'autocomplete'` | Registered `AutoComplete` field component |
|
|
105
|
+
| `'checkbox'` | Registered `CheckboxGroup` with `numCols` |
|
|
106
|
+
| `'radiobutton'` | Registered `RadioButtons` with `numCols` |
|
|
107
|
+
| `'listview'` | Inline `ListView` sub-component |
|
|
108
|
+
| `'searchbox'` | Inline `SearchForm` sub-component |
|
|
109
|
+
| Default | `Dropdown` |
|
|
110
|
+
|
|
111
|
+
### Deferred Data Source (`isDDSourceDeferred === true`)
|
|
112
|
+
|
|
113
|
+
1. On mount, call `PCore.getDataApiUtils().getData(dataSourceName, parameters)`.
|
|
114
|
+
2. Store result in `dropDownDataSource` state.
|
|
115
|
+
3. Pass `dropDownDataSource` to the rendered field component as `datasource`.
|
|
116
|
+
|
|
117
|
+
### Localized Placeholder
|
|
118
|
+
|
|
119
|
+
- Generate a localized "Please select..." option via `localizedPlaceholderOption` using `PCore.getLocaleUtils().getLocaleValue(...)`.
|
|
120
|
+
- Prepend this option to `dropDownDataSource` for dropdown/autocomplete variants.
|
|
121
|
+
|
|
122
|
+
### SearchForm Sub-Component
|
|
123
|
+
|
|
124
|
+
When `displayAs === 'searchbox'`, renders an inline `<SearchForm>` sub-component that:
|
|
125
|
+
|
|
126
|
+
1. Shows a text input with search icon.
|
|
127
|
+
2. On submit: calls `getPConnect().getListActions().search(searchText)`.
|
|
128
|
+
3. Renders the search results list below the input using `buildView`.
|
|
129
|
+
|
|
130
|
+
## Visual Specifications
|
|
131
|
+
|
|
132
|
+
**CSS-only implementation notes:**
|
|
133
|
+
|
|
134
|
+
- Wrapper: `display: flex; flex-direction: column; gap: 4px`.
|
|
135
|
+
- Label: `font-size: 0.875rem; font-weight: 500; margin-bottom: 4px`.
|
|
136
|
+
- Dropdown/Autocomplete: standard select input, full-width.
|
|
137
|
+
- Checkbox/Radio group: grid layout matching `numCols`.
|
|
138
|
+
- SearchForm: `display: flex; gap: 8px` (input + search button).
|
|
139
|
+
|
|
140
|
+
## Edge Cases & Special Logic
|
|
141
|
+
|
|
142
|
+
- `isDDSourceDeferred` — data is not available synchronously; show a loading indicator until `dropDownDataSource` resolves.
|
|
143
|
+
- `parameters` may contain property references — resolve them via `pConn.getValue(paramRef)` before passing to `getData`.
|
|
144
|
+
- `listType === 'associated'` — use `pConn.getFieldMetadata().options` directly instead of fetching from data page.
|
|
145
|
+
- Card variant (`displayAs === 'listview'`) — may include image props (`image`, `imagePlaceholder`) from `getComponentConfig()`.
|
|
146
|
+
- Multi-select with `displayAs === 'checkbox'` — values stored as comma-separated string in the property.
|
|
147
|
+
|
|
148
|
+
## Dependencies
|
|
149
|
+
|
|
150
|
+
- `SingleReferenceReadOnly` (registered DSE or template component)
|
|
151
|
+
- `MultiReferenceReadOnly` (registered template component)
|
|
152
|
+
- Field components from registry: `Dropdown`, `AutoComplete`, `CheckboxGroup`, `RadioButtons`
|
|
153
|
+
- `PCore.getDataApiUtils().getData()` — for deferred data source fetch
|
|
154
|
+
- `PCore.getLocaleUtils().getLocaleValue()` — for localized placeholder
|
|
155
|
+
|
|
156
|
+
## Design System Mapping
|
|
157
|
+
|
|
158
|
+
**UI control type:** Polymorphic data selection field — dropdown, autocomplete, checkbox, radiobutton, or search variants.
|
|
159
|
+
|
|
160
|
+
Listed design systems are examples only.
|
|
161
|
+
|
|
162
|
+
| Design System | Dropdown | Autocomplete | Checkbox Group | Radio Group |
|
|
163
|
+
| ------------------ | --------------------- | ---------------- | ------------------------------ | --------------------------- |
|
|
164
|
+
| Default (CSS only) | `<select>` | Custom combobox | `<input type='checkbox'>` list | `<input type='radio'>` list |
|
|
165
|
+
| MUI | `<Select>/<MenuItem>` | `<Autocomplete>` | `<FormGroup><Checkbox>` | `<RadioGroup><Radio>` |
|
|
166
|
+
| Ant Design | `<Select>` | `<AutoComplete>` | `<Checkbox.Group>` | `<Radio.Group>` |
|
|
167
|
+
| Chakra UI | `<Select>` | Custom | `<CheckboxGroup>` | `<RadioGroup>` |
|
|
168
|
+
| Shadcn/ui | `<Select>` + combobox | `<Combobox>` | custom | `<RadioGroup>` |
|
|
169
|
+
|
|
170
|
+
When implementing in a specific design system:
|
|
171
|
+
|
|
172
|
+
- Always check `displayMode`/`readOnly` first and route to read-only components before rendering editable variants
|
|
173
|
+
- Deferred loading must be handled — show skeleton/spinner until data is ready
|
|
174
|
+
- `numCols` applies to checkbox and radiobutton layouts only
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Skill: DefaultForm
|
|
2
|
+
|
|
3
|
+
Standard form layout template supporting 1, 2, or 3 column arrangements. Renders form fields from the first PConnect region child and optionally displays instruction text above.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> ⚠️ **CRITICAL — DO NOT SIMPLIFY THIS COMPONENT**
|
|
10
|
+
>
|
|
11
|
+
> This component REQUIRES the `connectToState` HOC to function. Without it, **form fields will NOT render** because they won't receive visibility and state props from the Redux store.
|
|
12
|
+
>
|
|
13
|
+
> **NEVER** replace the `connectToState` pattern with plain `createElement(PConnectComponent, ...)`. That pattern does not subscribe children to the store and results in invisible/non-functional form fields.
|
|
14
|
+
>
|
|
15
|
+
> **MANDATORY artifacts when generating this component:**
|
|
16
|
+
>
|
|
17
|
+
> 1. `DefaultForm.tsx` — with `connectToState` HOC wrapping each child
|
|
18
|
+
> 2. `utils/index.ts` — containing `mapStateToProps` and `getKeyForMappedField`
|
|
19
|
+
> 3. `DefaultForm.css` — column layout styles (or DS equivalent)
|
|
20
|
+
> 4. `index.tsx` — re-export
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Component Purpose
|
|
25
|
+
|
|
26
|
+
Renders a form's fields in a 1, 2, or 3-column grid layout. Children come from a PConnect region (unwrapped one level). Each child field is connected to the Redux store via a `connectToState` HOC so visibility and prop updates flow reactively. Instruction HTML is displayed above the form when present.
|
|
27
|
+
|
|
28
|
+
## Pega Metadata
|
|
29
|
+
|
|
30
|
+
- **Registration key:** `DefaultForm` (in `component-map.ts`)
|
|
31
|
+
- **Category:** Form template
|
|
32
|
+
- **Extends:** `PConnProps`
|
|
33
|
+
|
|
34
|
+
## Props
|
|
35
|
+
|
|
36
|
+
| Prop | Type | Required | Description |
|
|
37
|
+
| -------------- | ---------- | -------- | -------------------------------------------------------- |
|
|
38
|
+
| `NumCols` | `string` | No | Number of columns: `'1'`, `'2'`, or `'3'`. Default `'1'` |
|
|
39
|
+
| `instructions` | `string` | No | HTML instruction text shown above the form |
|
|
40
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
41
|
+
|
|
42
|
+
## Component Skeleton
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import { createElement } from 'react';
|
|
46
|
+
import { getInstructions } from '../../helpers/template-utils';
|
|
47
|
+
import { PConnectComponent } from '@pega/sdk-react';
|
|
48
|
+
import connectToState from '../../helpers/state-utils';
|
|
49
|
+
import { getKeyForMappedField, mapStateToProps } from './utils';
|
|
50
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
51
|
+
import './DefaultForm.css';
|
|
52
|
+
|
|
53
|
+
interface DefaultFormProps extends PConnProps {
|
|
54
|
+
NumCols: string;
|
|
55
|
+
instructions: string;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// HOC: wraps each field in Redux store subscription
|
|
59
|
+
const Child = connectToState(mapStateToProps)((props) => {
|
|
60
|
+
const { key, visibility, ...rest } = props;
|
|
61
|
+
return createElement(PConnectComponent, { ...rest, key, visibility });
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
export default function DefaultForm(props) {
|
|
65
|
+
const { getPConnect, NumCols = '1' } = props;
|
|
66
|
+
const instructions = getInstructions(getPConnect(), props.instructions);
|
|
67
|
+
|
|
68
|
+
// 1. Determine CSS class from NumCols
|
|
69
|
+
const numCols = NumCols || '1';
|
|
70
|
+
let divClass;
|
|
71
|
+
switch (numCols) {
|
|
72
|
+
case '1': divClass = 'psdk-default-form-one-column'; break;
|
|
73
|
+
case '2': divClass = 'psdk-default-form-two-column'; break;
|
|
74
|
+
case '3': divClass = 'psdk-default-form-three-column'; break;
|
|
75
|
+
default: divClass = 'psdk-default-form-one-column'; break;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// 2. Unwrap region children (first child is a region → get ITS children)
|
|
79
|
+
const arChildren = getPConnect().getChildren()[0].getPConnect().getChildren();
|
|
80
|
+
const dfChildren = arChildren?.map(kid =>
|
|
81
|
+
<Child key={getKeyForMappedField(kid)} {...kid} />
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
// 3. Render: optional instructions HTML + column grid of children
|
|
85
|
+
return (
|
|
86
|
+
<>
|
|
87
|
+
{instructions && (
|
|
88
|
+
<div className="psdk-default-form-instruction-text">
|
|
89
|
+
<div dangerouslySetInnerHTML={{ __html: instructions }} />
|
|
90
|
+
</div>
|
|
91
|
+
)}
|
|
92
|
+
<div className={divClass}>{dfChildren}</div>
|
|
93
|
+
</>
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Behavioral Contract
|
|
99
|
+
|
|
100
|
+
1. **Resolve column count:** Use `NumCols || '1'`. Switch to CSS class:
|
|
101
|
+
- `'1'` → `psdk-default-form-one-column`
|
|
102
|
+
- `'2'` → `psdk-default-form-two-column`
|
|
103
|
+
- `'3'` → `psdk-default-form-three-column`
|
|
104
|
+
- Default → `psdk-default-form-one-column`
|
|
105
|
+
2. **Get instructions:** Call `getInstructions(getPConnect(), props.instructions)` — returns sanitized HTML string or empty.
|
|
106
|
+
3. **Unwrap region children:** `arChildren = getPConnect().getChildren()[0].getPConnect().getChildren()` — the first child is a region; its children are the actual form fields.
|
|
107
|
+
4. **Wrap each child:** Create a `Child` component using `connectToState(mapStateToProps)` HOC wrapping `PConnectComponent`. Map each field:
|
|
108
|
+
```
|
|
109
|
+
arChildren.map((kid) => <Child key={getKeyForMappedField(kid)} {...kid} />)
|
|
110
|
+
```
|
|
111
|
+
5. **Render:**
|
|
112
|
+
- If instructions, render `<div className='psdk-default-form-instruction-text'>` with `dangerouslySetInnerHTML={{ __html: instructions }}`.
|
|
113
|
+
- Render `<div className={divClass}>{dfChildren}</div>`.
|
|
114
|
+
|
|
115
|
+
## Visual Specifications
|
|
116
|
+
|
|
117
|
+
Derived from `DefaultForm.css`:
|
|
118
|
+
|
|
119
|
+
### Column Layouts
|
|
120
|
+
|
|
121
|
+
| Class | Layout |
|
|
122
|
+
| -------------------------------- | ------------------------- |
|
|
123
|
+
| `psdk-default-form-one-column` | Single column, full width |
|
|
124
|
+
| `psdk-default-form-two-column` | Two equal columns |
|
|
125
|
+
| `psdk-default-form-three-column` | Three equal columns |
|
|
126
|
+
|
|
127
|
+
**CSS-only implementation notes:**
|
|
128
|
+
|
|
129
|
+
- One column: `display: grid; grid-template-columns: 1fr; gap: 1rem`.
|
|
130
|
+
- Two column: `display: grid; grid-template-columns: 1fr 1fr; gap: 1rem`.
|
|
131
|
+
- Three column: `display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem`.
|
|
132
|
+
- Instructions container: `padding: 0.5rem 0; margin-bottom: 0.5rem; font-size: 0.875rem`.
|
|
133
|
+
- Responsive: collapse multi-column to single column on mobile.
|
|
134
|
+
|
|
135
|
+
### Instruction Text
|
|
136
|
+
|
|
137
|
+
| Property | Value |
|
|
138
|
+
| --------- | ------------------------------------------------ |
|
|
139
|
+
| CSS class | `psdk-default-form-instruction-text` |
|
|
140
|
+
| Content | Raw HTML rendered with `dangerouslySetInnerHTML` |
|
|
141
|
+
|
|
142
|
+
## Edge Cases & Special Logic
|
|
143
|
+
|
|
144
|
+
- `NumCols` is a string (not number) — always compare with string literals `'1'`, `'2'`, `'3'`.
|
|
145
|
+
- The region unwrap (`getChildren()[0].getPConnect().getChildren()`) assumes the form metadata has exactly one region child. Guard against `undefined` if the region child is missing.
|
|
146
|
+
- `connectToState(mapStateToProps)` HOC subscribes each field to the Redux store — if Redux is not available, fall back to rendering `PConnectComponent` directly without the HOC.
|
|
147
|
+
- `getKeyForMappedField(kid)` generates a stable key for each field from the field's metadata path — import from `./utils`.
|
|
148
|
+
- Instructions HTML is server-sanitized (comment in source code) — do not sanitize again on the client.
|
|
149
|
+
|
|
150
|
+
## Dependencies
|
|
151
|
+
|
|
152
|
+
- `getInstructions` from `../../helpers/template-utils` — extracts instruction text from PConnect metadata
|
|
153
|
+
- `connectToState` from `../../helpers/state-utils` — HOC for Redux store subscription
|
|
154
|
+
- `PConnectComponent` from `@pega/sdk-react` — renders each child field
|
|
155
|
+
- `getKeyForMappedField`, `mapStateToProps` from `./utils` — key generation and state mapping
|
|
156
|
+
|
|
157
|
+
## Mandatory File: `utils/index.ts`
|
|
158
|
+
|
|
159
|
+
You MUST create this file alongside `DefaultForm.tsx`. Without it, the component will not compile.
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
export const mapStateToProps: any = (_, ownProps) => {
|
|
163
|
+
const { getPConnect } = ownProps;
|
|
164
|
+
|
|
165
|
+
return {
|
|
166
|
+
visibility: getPConnect().getComputedVisibility(),
|
|
167
|
+
getPConnect,
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
export const getKeyForMappedField = (field) => {
|
|
172
|
+
if (Array.isArray(field)) {
|
|
173
|
+
return field
|
|
174
|
+
.map((item) => {
|
|
175
|
+
return getKeyForMappedField(item);
|
|
176
|
+
})
|
|
177
|
+
.join('__');
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const pConnect = field?.getPConnect?.();
|
|
181
|
+
|
|
182
|
+
if (pConnect?.meta) {
|
|
183
|
+
return JSON.stringify(pConnect.meta);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return crypto.randomUUID();
|
|
187
|
+
};
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Post-Generation Checklist
|
|
191
|
+
|
|
192
|
+
After generating this component, verify ALL of the following:
|
|
193
|
+
|
|
194
|
+
- [ ] `connectToState` is imported from `../../helpers/state-utils`
|
|
195
|
+
- [ ] `mapStateToProps` and `getKeyForMappedField` are imported from `./utils`
|
|
196
|
+
- [ ] `const Child = connectToState(mapStateToProps)(...)` is defined OUTSIDE the component function
|
|
197
|
+
- [ ] Each child field is rendered via `<Child key={getKeyForMappedField(kid)} {...kid} />`
|
|
198
|
+
- [ ] `utils/index.ts` file is created with `mapStateToProps` and `getKeyForMappedField`
|
|
199
|
+
- [ ] Column count CSS classes or DS grid component is applied based on `NumCols`
|
|
200
|
+
|
|
201
|
+
If ANY of these are missing, the form fields will NOT render at runtime.
|
|
202
|
+
|
|
203
|
+
## Design System Mapping
|
|
204
|
+
|
|
205
|
+
**UI control type:** Multi-column form field grid with optional instruction text header.
|
|
206
|
+
|
|
207
|
+
Listed design systems are examples only.
|
|
208
|
+
|
|
209
|
+
| Design System | Recommended Component |
|
|
210
|
+
| ------------------ | -------------------------------------------------------------- |
|
|
211
|
+
| Default (CSS only) | CSS Grid with column count driven by `NumCols` |
|
|
212
|
+
| MUI | CSS Grid via `sx` prop or makeStyles |
|
|
213
|
+
| Ant Design | `<Form layout='vertical'>` with `<Row>/<Col>` for multi-column |
|
|
214
|
+
| Chakra UI | `<SimpleGrid columns={N} spacing={4}>` |
|
|
215
|
+
| Shadcn/ui | Tailwind `grid grid-cols-1/2/3 gap-4` |
|
|
216
|
+
|
|
217
|
+
When implementing in a specific design system:
|
|
218
|
+
|
|
219
|
+
- `NumCols` is always a string (`'1'`/`'2'`/`'3'`) — parse before use
|
|
220
|
+
- Instructions HTML is rendered above the form, before any fields
|
|
221
|
+
- Each child field must be subscribed to the store for reactive visibility/prop updates
|