@pega/sdk 0.0.4 → 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/dist/index.js +287 -1
- package/package.json +1 -1
- package/templates/angular-sdk-reference/package.json +12 -12
- package/templates/angular-sdk-reference/tsconfig.json +1 -1
- package/templates/react-native-sdk-reference/expo-env.d.ts +3 -0
- package/templates/react-sdk-reference/{.github/agents/implementation-expert.agent.md → .ai-common/agents/implementation-expert.md} +23 -26
- 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} +8 -1
- package/templates/react-sdk-reference/{.github/instructions/dse-component.instructions.md → .ai-common/instructions/dse-component.md} +1 -1
- package/templates/react-sdk-reference/{.github/instructions/field-component.instructions.md → .ai-common/instructions/field-component.md} +2 -1
- package/templates/react-sdk-reference/{.github/instructions/template-component.instructions.md → .ai-common/instructions/template-component.md} +1 -1
- package/templates/react-sdk-reference/{.github/instructions/widget-component.instructions.md → .ai-common/instructions/widget-component.md} +1 -1
- package/templates/react-sdk-reference/{.github/prompts/add-component.prompt.md → .ai-common/prompts/add-component.md} +45 -18
- package/templates/react-sdk-reference/{.cursor/rules → .ai-common}/prompts/component-manifest.json +8 -2
- package/templates/react-sdk-reference/{.github/prompts/generate-all-components.prompt.md → .ai-common/prompts/generate-all-components.md} +195 -78
- package/templates/react-sdk-reference/{.github/prompts/generate-dse-components.prompt.md → .ai-common/prompts/generate-dse-components.md} +28 -17
- package/templates/react-sdk-reference/{.github/prompts/generate-field-components.prompt.md → .ai-common/prompts/generate-field-components.md} +32 -16
- package/templates/react-sdk-reference/{.github/prompts/generate-template-components.prompt.md → .ai-common/prompts/generate-template-components.md} +76 -22
- package/templates/react-sdk-reference/{.github/prompts/generate-widget-components.prompt.md → .ai-common/prompts/generate-widget-components.md} +44 -30
- package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/identify-components.md +4 -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/{.github → .ai-common}/skills/design-system-extension-skills/AlertBanner.md +50 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Banner.md +44 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/CaseSummaryFields.md +54 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/DetailsFields.md +49 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/FieldGroup.md +44 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/FieldGroupList.md +43 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/FieldValueList.md +46 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Operator.md +67 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/Pulse.md +20 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/RichTextEditor.md +58 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/WssQuickCreate.md +31 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension.md +1 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-components.md +18 -1
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +298 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/CancelAlert.md +132 -3
- 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/{.claude → .ai-common}/skills/field-skills/Decimal.md +112 -13
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Dropdown.md +127 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Email.md +68 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Group.md +51 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Integer.md +81 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Location.md +105 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Multiselect.md +70 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/ObjectReference.md +74 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Percentage.md +84 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Phone.md +81 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/RadioButtons.md +93 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/RichText.md +85 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/ScalarList.md +54 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/SelectableCard.md +55 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/SemanticLink.md +64 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/TextArea.md +66 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/TextContent.md +28 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextInput.md +67 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Time.md +67 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/URL.md +59 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/UserReference.md +90 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-components.md +83 -52
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/AdvancedSearch.md +77 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +273 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/BannerPage.md +39 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/CaseSummary.md +79 -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/{.github → .ai-common}/skills/template-skills/Confirmation.md +89 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DataReference.md +50 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DefaultForm.md +117 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DefaultPage.md +49 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/Details.md +59 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DetailsSubTabs.md +60 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DetailsThreeColumn.md +12 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DetailsTwoColumn.md +12 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DynamicTabs.md +67 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/FieldGroupTemplate.md +119 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/HierarchicalForm.md +45 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/InlineDashboard.md +41 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/InlineDashboardPage.md +56 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/ListPage.md +18 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +419 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/MultiReferenceReadOnly.md +40 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/NarrowWide.md +66 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/OneColumn.md +34 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/PromotedFilters.md +92 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/SelfServiceCaseView.md +56 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SimpleTable.md +59 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SingleReferenceReadOnly.md +52 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SubTabs.md +47 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/TwoColumn.md +49 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WssNavBar.md +71 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-components.md +1 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/AppAnnouncement.md +38 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Attachment.md +58 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/CaseHistory.md +63 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/FileUtility.md +81 -14
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Followers.md +20 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/QuickCreate.md +48 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/SummaryItem.md +66 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +492 -0
- package/templates/react-sdk-reference/package.minimal.json +29 -0
- package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
- package/templates/react-sdk-reference/src/MashupApp.tsx +8 -19
- package/templates/react-sdk-reference/src/PortalApp.tsx +6 -17
- 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 -75
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -93
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -88
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -152
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +0 -193
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -158
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -140
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -153
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -165
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -138
- 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 -137
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -118
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -85
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -232
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +0 -137
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -291
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -113
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -175
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -101
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +0 -188
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +0 -173
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -93
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -129
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -167
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -149
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -231
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +0 -155
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -89
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -86
- package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -321
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -150
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -124
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -137
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -97
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +0 -70
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -142
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -108
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -206
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +0 -118
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -198
- 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/field-component.mdrules +0 -74
- 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/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/DetailsFields.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +0 -116
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +0 -120
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +0 -88
- 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/design-system-extension.mdrules +0 -294
- package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +0 -299
- 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/Group.mdrules +0 -95
- 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/ObjectReference.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/RichText.mdrules +0 -143
- 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/SemanticLink.mdrules +0 -153
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +0 -106
- 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-components.mdrules +0 -327
- 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/BannerPage.mdrules +0 -88
- 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/Details.mdrules +0 -93
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +0 -100
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +0 -83
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +0 -83
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +0 -106
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +0 -118
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +0 -109
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +0 -90
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +0 -73
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +0 -85
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +0 -114
- 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/SubTabs.mdrules +0 -84
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +0 -136
- 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-components.mdrules +0 -276
- 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/CaseHistory.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +0 -104
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +0 -119
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +0 -172
- 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/prompts/component-manifest.json +0 -193
- 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/Banner.md +0 -152
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -148
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -113
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -155
- package/templates/react-sdk-reference/.github/skills/field-components.md +0 -295
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -113
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -211
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -175
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -109
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -101
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -106
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -99
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -134
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -109
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -96
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -145
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -98
- package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +0 -117
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -203
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -70
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -86
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -137
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -104
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +0 -112
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -90
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -80
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -106
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -112
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -116
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -108
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -82
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -142
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -143
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -130
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -142
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -133
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -152
- package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +0 -139
- package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -260
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -84
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -151
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -110
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -103
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -169
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -198
- package/templates/react-sdk-reference/AGENTS.md +0 -246
- /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/run-and-verify.md +0 -0
- /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +0 -0
|
@@ -6,6 +6,32 @@ Repeating field group template. Renders a list of field group rows from a refere
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
> ⚠️ **CRITICAL — DO NOT SIMPLIFY THIS COMPONENT**
|
|
10
|
+
>
|
|
11
|
+
> This template manages a repeating list of field groups with add/delete actions. It MUST NOT be reduced to a simple delegation to `FieldGroup` or `FieldGroupList`. The following are MANDATORY:
|
|
12
|
+
>
|
|
13
|
+
> 1. `getReferenceList(pConn)` from `../../helpers/field-group-utils` — resolves the reference list path
|
|
14
|
+
> 2. `buildView(pConn, index, lookForChildInConfig)` from `../../helpers/field-group-utils` — builds each row's view
|
|
15
|
+
> 3. `pConn.setReferenceList(resolvedList)` — sets the reference list on PConnect
|
|
16
|
+
> 4. `pConn.getListActions().initDefaultPageInstructions(resolvedList)` — initializes list instructions
|
|
17
|
+
> 5. `useLayoutEffect` for list initialization (not useEffect)
|
|
18
|
+
> 6. Add/delete record handlers using `pConn.getListActions().insert()` and `.deleteEntry()`
|
|
19
|
+
> 7. `useMemo` for `MemoisedChildren` built from `referenceList.map(...)` + `buildView`
|
|
20
|
+
> 8. `allowActions` handling (allowAdd, allowDelete)
|
|
21
|
+
> 9. `isReadonlyMode` check switching between FieldGroupList (edit) and FieldGroup (read-only)
|
|
22
|
+
>
|
|
23
|
+
> **Minimum Implementation Checklist:**
|
|
24
|
+
>
|
|
25
|
+
> - [ ] `getReferenceList` and `buildView` imported from `../../helpers/field-group-utils`
|
|
26
|
+
> - [ ] `pConn.getListActions()` used for insert/delete
|
|
27
|
+
> - [ ] `useLayoutEffect` for `initDefaultPageInstructions`
|
|
28
|
+
> - [ ] `addRecord` and `deleteFieldGroupItem` handlers
|
|
29
|
+
> - [ ] Edit mode → `<FieldGroupList items={...} onAdd={...} onDelete={...} />`
|
|
30
|
+
> - [ ] Read-only mode → `<FieldGroup>` with `buildView` children
|
|
31
|
+
> - [ ] `allowActions` / `allowTableEdit` props respected
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
9
35
|
## Component Purpose
|
|
10
36
|
|
|
11
37
|
Renders a repeating list of field group rows sourced from a PConnect reference list. In edit mode, rows can be added and deleted via list actions. In read-only mode (DISPLAY_ONLY), delegates to a read-only `FieldGroup` renderer. Each row is built via `buildView`.
|
|
@@ -28,6 +54,99 @@ Renders a repeating list of field group rows sourced from a PConnect reference l
|
|
|
28
54
|
| `readOnly` | `boolean` | No | Alternative read-only flag |
|
|
29
55
|
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
30
56
|
|
|
57
|
+
## Component Skeleton
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
import { useLayoutEffect, useMemo } from 'react';
|
|
61
|
+
import { getReferenceList, buildView } from '../../helpers/field-group-utils';
|
|
62
|
+
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
63
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
64
|
+
|
|
65
|
+
interface FieldGroupTemplateProps extends PConnProps {
|
|
66
|
+
referenceList?: any[];
|
|
67
|
+
contextClass: string;
|
|
68
|
+
renderMode?: string;
|
|
69
|
+
heading?: string;
|
|
70
|
+
lookForChildInConfig?: boolean;
|
|
71
|
+
displayMode?: string;
|
|
72
|
+
fieldHeader?: string;
|
|
73
|
+
allowTableEdit: boolean;
|
|
74
|
+
allowActions?: any;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export default function FieldGroupTemplate(props: FieldGroupTemplateProps) {
|
|
78
|
+
const FieldGroup = getComponentFromRegistry('FieldGroup');
|
|
79
|
+
const FieldGroupList = getComponentFromRegistry('FieldGroupList');
|
|
80
|
+
|
|
81
|
+
const {
|
|
82
|
+
referenceList = [], renderMode, contextClass, getPConnect,
|
|
83
|
+
lookForChildInConfig, heading = '', displayMode, fieldHeader,
|
|
84
|
+
allowActions, allowTableEdit: allowAddEdit,
|
|
85
|
+
} = props;
|
|
86
|
+
const pConn = getPConnect();
|
|
87
|
+
const resolvedList = getReferenceList(pConn);
|
|
88
|
+
pConn.setReferenceList(resolvedList);
|
|
89
|
+
const pageReference = `${pConn.getPageReference()}${resolvedList}`;
|
|
90
|
+
const isReadonlyMode = renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY';
|
|
91
|
+
const HEADING = heading ?? 'Row';
|
|
92
|
+
|
|
93
|
+
// 1. Resolve allowAdd/allowDelete from allowActions or allowTableEdit
|
|
94
|
+
const hasAllowActions = Object.keys(allowActions ?? {}).length > 0;
|
|
95
|
+
const { allowAdd: actionAdd, allowDelete: actionDelete } = allowActions ?? {};
|
|
96
|
+
const allowAdd = hasAllowActions ? (actionAdd ?? true) : (allowAddEdit ?? true);
|
|
97
|
+
const allowDelete = hasAllowActions ? (actionDelete ?? true) : (allowAddEdit ?? true);
|
|
98
|
+
|
|
99
|
+
// 2. Init page instructions on mount (edit mode only)
|
|
100
|
+
useLayoutEffect(() => {
|
|
101
|
+
if (!isReadonlyMode) {
|
|
102
|
+
pConn.getListActions().initDefaultPageInstructions(resolvedList);
|
|
103
|
+
}
|
|
104
|
+
}, [referenceList?.length]);
|
|
105
|
+
|
|
106
|
+
// 3. Dynamic header per row
|
|
107
|
+
const getDynamicHeaderProp = (item, index) => {
|
|
108
|
+
if (fieldHeader === 'propertyRef' && heading && item[heading.substring(1)])
|
|
109
|
+
return item[heading.substring(1)];
|
|
110
|
+
return `Row ${index + 1}`;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// 4. Add/delete handlers
|
|
114
|
+
const addRecord = () => {
|
|
115
|
+
if (PCore.getPCoreVersion()?.includes('8.7'))
|
|
116
|
+
pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);
|
|
117
|
+
else pConn.getListActions().insert({}, referenceList.length);
|
|
118
|
+
};
|
|
119
|
+
const deleteRecord = (index) => {
|
|
120
|
+
if (PCore.getPCoreVersion()?.includes('8.7'))
|
|
121
|
+
pConn.getListActions().deleteEntry(index, pageReference);
|
|
122
|
+
else pConn.getListActions().deleteEntry(index);
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// 5. Edit mode: auto-add first row if empty, render FieldGroupList
|
|
126
|
+
if (!isReadonlyMode) {
|
|
127
|
+
if (referenceList.length === 0 && allowAdd) addRecord();
|
|
128
|
+
const items = useMemo(() => referenceList.map((item, index) => ({
|
|
129
|
+
id: index,
|
|
130
|
+
name: fieldHeader === 'propertyRef' ? getDynamicHeaderProp(item, index) : `${HEADING} ${index + 1}`,
|
|
131
|
+
children: buildView(pConn, index, lookForChildInConfig),
|
|
132
|
+
})), [referenceList?.length]);
|
|
133
|
+
return <FieldGroupList items={items}
|
|
134
|
+
onAdd={allowAdd ? addRecord : undefined}
|
|
135
|
+
onDelete={allowDelete ? deleteRecord : undefined} />;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// 6. Read-only mode: FieldGroup per row
|
|
139
|
+
pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY');
|
|
140
|
+
const readOnlyList = useMemo(() => referenceList.map((item, index) => (
|
|
141
|
+
<FieldGroup key={item[heading] || `field-group-row-${index}`}
|
|
142
|
+
name={fieldHeader === 'propertyRef' ? getDynamicHeaderProp(item, index) : `${HEADING} ${index + 1}`}>
|
|
143
|
+
{buildView(pConn, index, lookForChildInConfig)}
|
|
144
|
+
</FieldGroup>
|
|
145
|
+
)), []);
|
|
146
|
+
return <div>{readOnlyList}</div>;
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
31
150
|
## Behavioral Contract
|
|
32
151
|
|
|
33
152
|
### Read-Only Mode
|
|
@@ -24,6 +24,51 @@ Renders a multi-step form where each section is a tab. Tabs display error badges
|
|
|
24
24
|
| `instructions` | `string` | No | HTML instruction text shown above the tab bar |
|
|
25
25
|
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
26
26
|
|
|
27
|
+
## Component Skeleton
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { type PropsWithChildren } from 'react';
|
|
31
|
+
import { useHierarchicalForm, type HierarchicalFormProps } from './hooks';
|
|
32
|
+
|
|
33
|
+
export default function HierarchicalForm(props: PropsWithChildren<HierarchicalFormProps>) {
|
|
34
|
+
// 1. Custom hook handles: active tab, tab click, error counts, instructions, processed tabs
|
|
35
|
+
const { currentTabId, handleTabClick, processedTabs, instructions } = useHierarchicalForm(props);
|
|
36
|
+
|
|
37
|
+
// 2. Guard: no visible tabs
|
|
38
|
+
if (!currentTabId) return null;
|
|
39
|
+
|
|
40
|
+
// 3. Render: instructions + TabContext + Tabs (with error badges) + TabPanels
|
|
41
|
+
return (
|
|
42
|
+
<FlexColumn>
|
|
43
|
+
{instructions && <div dangerouslySetInnerHTML={{ __html: instructions }} />}
|
|
44
|
+
<TabContext value={currentTabId.toString()}>
|
|
45
|
+
<TabBar onChange={handleTabClick} value={currentTabId.toString()} variant="scrollable">
|
|
46
|
+
{processedTabs.map(tab => {
|
|
47
|
+
const tabLabel = tab.name || tab.label;
|
|
48
|
+
return (
|
|
49
|
+
<Tab key={tab.id} value={tab.id?.toString()} label={
|
|
50
|
+
tab.errors
|
|
51
|
+
? <Tooltip title={`${tabLabel} has errors`}>
|
|
52
|
+
<span>{tabLabel} <Badge badgeContent={tab.errors} color="error" /></span>
|
|
53
|
+
</Tooltip>
|
|
54
|
+
: tabLabel
|
|
55
|
+
} />
|
|
56
|
+
);
|
|
57
|
+
})}
|
|
58
|
+
</TabBar>
|
|
59
|
+
{processedTabs.map(tab => (
|
|
60
|
+
<TabPanel key={tab.id} value={tab.id?.toString()} tabIndex={+tab.id} keepMounted>
|
|
61
|
+
{tab.content || 'No content exists'}
|
|
62
|
+
</TabPanel>
|
|
63
|
+
))}
|
|
64
|
+
</TabContext>
|
|
65
|
+
</FlexColumn>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
> **Key implementation note:** All tab logic (active tab persistence, error counting, tab filtering) is encapsulated in the `useHierarchicalForm` hook. Implement that hook separately — it uses `PCore.getNavigationUtils()` for tab persistence and `useGetTabsCount` for error tracking.
|
|
71
|
+
|
|
27
72
|
## Behavioral Contract
|
|
28
73
|
|
|
29
74
|
### Hook: `useHierarchicalForm`
|
|
@@ -25,6 +25,47 @@ Renders an inline dashboard layout consisting of a title heading, a main content
|
|
|
25
25
|
| `children` | `ReactNode[]` | Yes | `children[0]` = main content, `children[1]` = filter panel |
|
|
26
26
|
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
27
27
|
|
|
28
|
+
## Component Skeleton
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import type { PropsWithChildren, ReactElement } from 'react';
|
|
32
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
33
|
+
|
|
34
|
+
interface InlineDashboardProps extends PConnProps {
|
|
35
|
+
title: string;
|
|
36
|
+
filterPosition?: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default function InlineDashboard(props: PropsWithChildren<InlineDashboardProps>) {
|
|
40
|
+
const { children, title, filterPosition } = props;
|
|
41
|
+
const childrenToRender = children as ReactElement[];
|
|
42
|
+
|
|
43
|
+
// 1. Direction for side layout
|
|
44
|
+
const direction = filterPosition === 'inline-start' ? 'row-reverse' : 'row';
|
|
45
|
+
|
|
46
|
+
// 2. Render: title + layout based on filterPosition
|
|
47
|
+
return (
|
|
48
|
+
<>
|
|
49
|
+
<Heading variant="h4">{title}</Heading>
|
|
50
|
+
|
|
51
|
+
{filterPosition === 'block-start' ? (
|
|
52
|
+
// Stacked: filter above content (column-reverse so filter renders visually above)
|
|
53
|
+
<GridContainer direction="column-reverse">
|
|
54
|
+
<GridItem xs={12}>{childrenToRender[0]}</GridItem>
|
|
55
|
+
<GridItem id="filters" xs={12}>{childrenToRender[1]}</GridItem>
|
|
56
|
+
</GridContainer>
|
|
57
|
+
) : (
|
|
58
|
+
// Side: content left, filters right (or reversed if inline-start)
|
|
59
|
+
<GridContainer direction={direction}>
|
|
60
|
+
<GridItem xs={9}>{childrenToRender[0]}</GridItem>
|
|
61
|
+
<GridItem id="filters" xs={3}>{childrenToRender[1]}</GridItem>
|
|
62
|
+
</GridContainer>
|
|
63
|
+
)}
|
|
64
|
+
</>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
28
69
|
## Behavioral Contract
|
|
29
70
|
|
|
30
71
|
### Title
|
|
@@ -6,6 +6,26 @@ Inline dashboard page template. Builds filter components from promoted filters m
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
> ⚠️ **CRITICAL — Must use `buildFilterComponents` from `@pega/sdk-react`**
|
|
10
|
+
>
|
|
11
|
+
> This component MUST use `buildFilterComponents(getPConnect, allFilters)` imported from `@pega/sdk-react` to generate proper filter UI components. Without this, dashboard filters will not render correctly.
|
|
12
|
+
>
|
|
13
|
+
> **Mandatory implementation details:**
|
|
14
|
+
>
|
|
15
|
+
> 1. `import { buildFilterComponents } from '@pega/sdk-react'` — filter component builder
|
|
16
|
+
> 2. `getPConnect().getRawMetadata().children[1]` — extract filter metadata
|
|
17
|
+
> 3. `useEffect` + `useState` for `filterComponents` — build filters on mount
|
|
18
|
+
> 4. Assemble `inlineProps.children[1] = filterComponents` for InlineDashboard
|
|
19
|
+
>
|
|
20
|
+
> **Minimum Implementation Checklist:**
|
|
21
|
+
>
|
|
22
|
+
> - [ ] `buildFilterComponents` imported from `@pega/sdk-react`
|
|
23
|
+
> - [ ] `filterComponents` state populated via `useEffect`
|
|
24
|
+
> - [ ] Filter metadata extracted from `getRawMetadata().children[1]`
|
|
25
|
+
> - [ ] InlineDashboard receives filter components as children
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
9
29
|
## Component Purpose
|
|
10
30
|
|
|
11
31
|
Page-level wrapper for the inline dashboard. Extracts promoted filter definitions from the PConnect metadata, builds React filter components from them, and passes them to `InlineDashboard` as the second child (filter panel). The first child (main content) is passed through unchanged.
|
|
@@ -27,6 +47,42 @@ Page-level wrapper for the inline dashboard. Extracts promoted filter definition
|
|
|
27
47
|
| `filterPosition` | `string` | No | Filter position: `'block-start'` or side |
|
|
28
48
|
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
29
49
|
|
|
50
|
+
## Component Skeleton
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
import { useMemo, Children, useEffect, useState, type PropsWithChildren } from 'react';
|
|
54
|
+
import { buildFilterComponents, getComponentFromRegistry } from '@pega/sdk-react';
|
|
55
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
56
|
+
|
|
57
|
+
interface InlineDashboardPageProps extends PConnProps {
|
|
58
|
+
title: string;
|
|
59
|
+
icon?: string;
|
|
60
|
+
filterPosition?: string;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export default function InlineDashboardPage(props: PropsWithChildren<InlineDashboardPageProps>) {
|
|
64
|
+
const InlineDashboard = getComponentFromRegistry('InlineDashboard');
|
|
65
|
+
const { children, getPConnect, filterPosition = 'block-start' } = props;
|
|
66
|
+
const [filterComponents, setFilterComponents] = useState([]);
|
|
67
|
+
const childArray = useMemo(() => Children.toArray(children), [children]);
|
|
68
|
+
|
|
69
|
+
// 1. Build filter components from metadata on mount
|
|
70
|
+
const allFilters = (getPConnect().getRawMetadata() as any).children[1];
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
setFilterComponents(buildFilterComponents(getPConnect, allFilters));
|
|
73
|
+
}, []);
|
|
74
|
+
|
|
75
|
+
// 2. Assemble props for InlineDashboard
|
|
76
|
+
const inlineProps = { ...props };
|
|
77
|
+
inlineProps.children = [];
|
|
78
|
+
inlineProps.children[0] = childArray[0]; // main content
|
|
79
|
+
inlineProps.children[1] = filterComponents; // built filters
|
|
80
|
+
|
|
81
|
+
// 3. Delegate to InlineDashboard
|
|
82
|
+
return <InlineDashboard {...inlineProps} />;
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
30
86
|
## Behavioral Contract
|
|
31
87
|
|
|
32
88
|
### Filter Component Construction
|
package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/ListPage.md
RENAMED
|
@@ -30,6 +30,24 @@ All props are forwarded to `ListView`. Key props:
|
|
|
30
30
|
| `payload` | `object` | No | Query payload |
|
|
31
31
|
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
32
32
|
|
|
33
|
+
## Component Skeleton
|
|
34
|
+
|
|
35
|
+
Simplest possible template — pure pass-through to `ListView` with one prop override.
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
39
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
40
|
+
|
|
41
|
+
interface ListPageProps extends PConnProps {
|
|
42
|
+
parameters: object;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export default function ListPage(props: ListPageProps) {
|
|
46
|
+
const ListView = getComponentFromRegistry('ListView');
|
|
47
|
+
return <ListView {...props} bInForm={false} />;
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
33
51
|
## Behavioral Contract
|
|
34
52
|
|
|
35
53
|
```tsx
|