@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
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
## Step 0 — Resolve inputs
|
|
2
|
-
|
|
3
|
-
Read the user's message carefully. Extract:
|
|
4
|
-
|
|
5
|
-
- **Design system** — the UI library to use (e.g. `Ant Design`, `Chakra UI`, `Carbon`, `Radix UI`)
|
|
6
|
-
- **Output base path** — the folder where widget components should be generated (e.g. `src/components/widget/`)
|
|
7
|
-
- **Component list** — which widgets to generate (default: all 9 listed below)
|
|
8
|
-
|
|
9
|
-
Both **design system** and **output base path** are required. If either is missing or ambiguous, ask both unresolved items in one numbered list. Do not assume or default the output path — the client's folder structure may differ from the reference app.
|
|
10
|
-
|
|
11
|
-
Example questions (ask only the ones that are actually missing):
|
|
12
|
-
|
|
13
|
-
1. Which design system should I use? (e.g. Ant Design, Chakra UI, Carbon, Radix UI)
|
|
14
|
-
2. Where should the widget components be generated? (e.g. `src/components/widget/`)
|
|
15
|
-
|
|
16
|
-
If the user specified a subset (e.g., "just ToDo and Attachment"), restrict the list accordingly.
|
|
17
|
-
|
|
18
|
-
Once both are known, continue to Step 1.
|
|
19
|
-
|
|
20
|
-
### Full component list (default — 9 widgets)
|
|
21
|
-
|
|
22
|
-
| Component | Description |
|
|
23
|
-
| --------------- | --------------------------- |
|
|
24
|
-
| AppAnnouncement | System-wide announcements |
|
|
25
|
-
| Attachment | File upload/download |
|
|
26
|
-
| CaseHistory | Case audit trail |
|
|
27
|
-
| FileUtility | File management utility |
|
|
28
|
-
| Followers | Case followers list |
|
|
29
|
-
| QuickCreate | Quick case creation buttons |
|
|
30
|
-
| SummaryItem | Single summary card |
|
|
31
|
-
| SummaryList | List of summary cards |
|
|
32
|
-
| ToDo | Assignment worklist |
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Step 1 — Read `widget-components.md` (once, for the entire session)
|
|
37
|
-
|
|
38
|
-
Read the full contents of `.claude/skills/widget-components.md`.
|
|
39
|
-
|
|
40
|
-
This gives you:
|
|
41
|
-
|
|
42
|
-
- The DS-agnostic data-fetching skeleton with `// [DS RENDER]` placeholder
|
|
43
|
-
- The Design System Adaptation guide (primitive mapping table, icon discovery rules)
|
|
44
|
-
- All common Pega APIs used in widgets: `PCore.getDataPageUtils()`, `PCore.getMashupApi()`, `PCore.getAttachmentUtils()`, `pConn.getCaseInfo()`, etc.
|
|
45
|
-
- Registration conventions
|
|
46
|
-
|
|
47
|
-
> The PCore data-fetching logic is always identical regardless of design system. Only the `// [DS RENDER]` section changes per DS.
|
|
48
|
-
|
|
49
|
-
Keep this context active throughout the entire generation session. Do not re-read it per component.
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Step 2 — Install and discover the design system (once)
|
|
54
|
-
|
|
55
|
-
Execute **Step 3** from `.claude/prompts/add-component.md` exactly as written:
|
|
56
|
-
|
|
57
|
-
- Check `package.json` for the DS package
|
|
58
|
-
- Install if missing, including any peer dependencies
|
|
59
|
-
- Report what was installed
|
|
60
|
-
|
|
61
|
-
Then execute **Step 4** from `.claude/prompts/add-component.md` exactly as written:
|
|
62
|
-
|
|
63
|
-
- Read the DS README from `node_modules`
|
|
64
|
-
- Discover exported components from `dist/index.d.ts`
|
|
65
|
-
- Focus on presentation primitives used in widgets: Card, List, Table, Button, Badge, Spinner, Skeleton, Empty state
|
|
66
|
-
- Read prop interfaces for these components from `.d.ts` files
|
|
67
|
-
- If the DS has a companion icon package, discover its exports
|
|
68
|
-
|
|
69
|
-
Build a **DS UI primitive reference map** from this discovery. Reuse it for every widget — do not repeat these commands per component.
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Step 3 — Overwrite check (all at once)
|
|
74
|
-
|
|
75
|
-
For each component in the list, check whether `<outputPath>/<ComponentName>/<ComponentName>.tsx` already exists.
|
|
76
|
-
|
|
77
|
-
If **any** exist, report them all at once and ask:
|
|
78
|
-
|
|
79
|
-
> "The following N components already exist: [list]. How should I proceed?
|
|
80
|
-
>
|
|
81
|
-
> - **Overwrite all** — replace all existing implementations
|
|
82
|
-
> - **Skip existing** — only generate components that don't exist yet
|
|
83
|
-
> - **Cancel** — stop without generating anything"
|
|
84
|
-
|
|
85
|
-
Wait for the user's answer before proceeding. If none exist, continue immediately.
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Step 4 — Generate each component (loop)
|
|
90
|
-
|
|
91
|
-
For each component in the resolved list (in the order listed in Step 0):
|
|
92
|
-
|
|
93
|
-
### 4a — Read the component-specific skill file
|
|
94
|
-
|
|
95
|
-
Execute **Step 2** from `.claude/prompts/add-component.md` for this component:
|
|
96
|
-
|
|
97
|
-
- Read `.claude/skills/widget-skills/<ComponentName>.md` fully if it exists
|
|
98
|
-
- Pay attention to:
|
|
99
|
-
- **Behavioral Contract** — data fetching logic, PCore API calls, state management, action handlers
|
|
100
|
-
- **Design System Mapping** table — the recommended DS component for presentation
|
|
101
|
-
- If no skill file exists (e.g., `SummaryList`), use the general data-fetching pattern from `widget-components.md`
|
|
102
|
-
|
|
103
|
-
### 4b — Generate the component files
|
|
104
|
-
|
|
105
|
-
Execute **Step 5** from `.claude/prompts/add-component.md` for this component:
|
|
106
|
-
|
|
107
|
-
- Create `<outputPath>/<ComponentName>/` directory
|
|
108
|
-
- Create `<ComponentName>.tsx` using:
|
|
109
|
-
- The DS-agnostic data-fetching skeleton from `widget-components.md` (read in Step 1)
|
|
110
|
-
- The Behavioral Contract from the component skill file (PCore API calls, state, actions)
|
|
111
|
-
- The DS UI primitives confirmed in Step 2 (from the DS primitive reference map — no new terminal commands needed) filling in the `// [DS RENDER]` section
|
|
112
|
-
- Create `index.tsx` if required by the skill file:
|
|
113
|
-
```typescript
|
|
114
|
-
export { default } from './<ComponentName>';
|
|
115
|
-
```
|
|
116
|
-
- Create any CSS or utility files required by the skill file
|
|
117
|
-
|
|
118
|
-
### 4c — Register the component
|
|
119
|
-
|
|
120
|
-
Execute **Step 6** from `.claude/prompts/add-component.md` for this component:
|
|
121
|
-
|
|
122
|
-
- Add the import to `src/components/component-map.ts` in the Widgets section
|
|
123
|
-
- Add the entry to `getSampleComponentMap()` under the widgets comment
|
|
124
|
-
- Do not reorder or restructure any existing entries
|
|
125
|
-
|
|
126
|
-
### 4d — Report progress
|
|
127
|
-
|
|
128
|
-
After each component: "`<ComponentName>` ✓ — using `<DS card/list primitive>`"
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Step 5 — Verify the build
|
|
133
|
-
|
|
134
|
-
Execute **Step 7** from `.claude/prompts/add-component.md` exactly as written:
|
|
135
|
-
|
|
136
|
-
- Run `npm run build`
|
|
137
|
-
- Fix any TypeScript or build errors before reporting completion
|
|
138
|
-
- Report a summary: list of all files created and all entries added to `component-map.ts`
|
|
@@ -1,519 +0,0 @@
|
|
|
1
|
-
# replace-design-system
|
|
2
|
-
|
|
3
|
-
Replace the current design system in this application with **{{designSystem}}**.
|
|
4
|
-
|
|
5
|
-
> **Before doing anything else:** if `{{designSystem}}` is empty or not provided, stop immediately and ask the user: _"Which design system should I migrate to? (e.g. Ant Design, Carbon Design System, Chakra UI)"_ — do not proceed with any migration steps until it is provided.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Step 0: Determine target component list
|
|
10
|
-
|
|
11
|
-
Read `.claude/prompts/component-manifest.json` first.
|
|
12
|
-
|
|
13
|
-
Collect components from **every applicable source** below, then merge and deduplicate into a single final list.
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
### Source A — Screenshot / image attached
|
|
18
|
-
|
|
19
|
-
> Applies when: one or more images or screenshots are attached to this prompt invocation.
|
|
20
|
-
|
|
21
|
-
Analyze **each attached image** using the **[Visual Recognition Guide](#visual-recognition-guide)** below.
|
|
22
|
-
Produce a list of SDK component names visible across **all** screenshots, then union the results into a single list.
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
### Source B — `components` param provided (explicit list)
|
|
27
|
-
|
|
28
|
-
> Applies when: `{{components}}` is non-empty (e.g. `components="TextInput,Phone,Stages"`)
|
|
29
|
-
|
|
30
|
-
Resolve each name against the manifest's `components` map to get its path and category.
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
### Source C — `scope` param provided
|
|
35
|
-
|
|
36
|
-
> Applies when: `{{scope}}` is provided
|
|
37
|
-
|
|
38
|
-
**If `{{scope}}` is a folder name** (one of `field`, `template`, `widget`, `infra`, `designSystemExtension`):
|
|
39
|
-
Read every entry under `manifest.components["{{scope}}"]` — that is the full component list for this source.
|
|
40
|
-
|
|
41
|
-
**If `{{scope}}` is a named shorthand** (a key in `manifest.namedScopes`, e.g. `workflow-form`):
|
|
42
|
-
Read `manifest.namedScopes["{{scope}}"]`:
|
|
43
|
-
|
|
44
|
-
- For each entry in `folders[]`: collect all components in `manifest.components[folder]`
|
|
45
|
-
- For each entry in `components[]`: add that component directly (it includes path + category)
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
### Merge & deduplicate
|
|
50
|
-
|
|
51
|
-
Take the union of all non-empty source lists (A, B, C).
|
|
52
|
-
Remove duplicates using **case-insensitive component name matching** — the manifest is authoritative for path and category regardless of which source contributed the name.
|
|
53
|
-
|
|
54
|
-
**If the merged list is non-empty → [Targeted Migration](#targeted-migration)**
|
|
55
|
-
**If ALL sources produced nothing (no image, no params) → [Full Migration (9 waves)](#full-migration)**
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
### Combination examples
|
|
60
|
-
|
|
61
|
-
| Sources active | Behaviour |
|
|
62
|
-
| ----------------------------------- | ------------------------------------------------------ |
|
|
63
|
-
| One image only | A only → targeted migration of identified components |
|
|
64
|
-
| Multiple images only | A only (union across all images) → targeted migration |
|
|
65
|
-
| `components=` only | B only → targeted migration (same as before) |
|
|
66
|
-
| `scope=` only | C only → all components in that scope (same as before) |
|
|
67
|
-
| Image(s) + `components=` | A ∪ B, deduplicated → targeted migration |
|
|
68
|
-
| Image(s) + `scope=` | A ∪ C, deduplicated → targeted migration |
|
|
69
|
-
| `scope=` + `components=` | B ∪ C, deduplicated → targeted migration |
|
|
70
|
-
| Image(s) + `scope=` + `components=` | A ∪ B ∪ C, deduplicated → targeted migration |
|
|
71
|
-
| No image, no params | Full 9-wave migration |
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Visual Recognition Guide
|
|
76
|
-
|
|
77
|
-
Use the tables below to map what you see in an attached image to SDK component names.
|
|
78
|
-
|
|
79
|
-
### Structural / layout components
|
|
80
|
-
|
|
81
|
-
| What you see | SDK component name | Category |
|
|
82
|
-
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -------- |
|
|
83
|
-
| Chevron/arrow step bar at the top of a form (e.g. "Step 1 → Step 2 → Step 3") | `Stages` | infra |
|
|
84
|
-
| Full case shell: step bar + case title + **action menu (⋮ or kebab)** + tabbed content area | `CaseView` | template |
|
|
85
|
-
| Avatar + assignment/step name at the top **and** form fields in the body **and** action buttons (e.g. Cancel / Save for later / Submit) at the bottom — all three must be present | `FlowContainer` | template |
|
|
86
|
-
| Row of action buttons at the bottom (Cancel / Save / Submit) | `ActionButtons` | infra |
|
|
87
|
-
| White/card area wrapping form fields | `DefaultForm` | template |
|
|
88
|
-
| Full-page layout with header + sidebar + content area | `AppShell` | template |
|
|
89
|
-
| Left-side vertical tab navigation | `VerticalTabs` | infra |
|
|
90
|
-
| Top navigation bar with logo + user menu | `NavBar` | infra |
|
|
91
|
-
| Top navigation bar (WSS / self-service variant) | `WssNavBar` | template |
|
|
92
|
-
| Two-column layout (equal or narrow/wide split) | `TwoColumn` / `NarrowWide` / `WideNarrow` | template |
|
|
93
|
-
| Single-column stacked layout | `OneColumn` | template |
|
|
94
|
-
| Tabbed panel inside a form or page | `SubTabs` / `Details` | template |
|
|
95
|
-
|
|
96
|
-
### Field components
|
|
97
|
-
|
|
98
|
-
| What you see | SDK component name | Category |
|
|
99
|
-
| ---------------------------------------------------------- | ------------------ | -------- |
|
|
100
|
-
| Single-line text input box | `TextInput` | field |
|
|
101
|
-
| Multi-line text input / textarea | `TextArea` | field |
|
|
102
|
-
| Dropdown / select menu (chevron on right) | `Dropdown` | field |
|
|
103
|
-
| Phone input with country code prefix (e.g. "+1 ▼") | `Phone` | field |
|
|
104
|
-
| Date picker input (calendar icon) | `Date` | field |
|
|
105
|
-
| Date + time picker input | `DateTime` | field |
|
|
106
|
-
| Time-only picker | `Time` | field |
|
|
107
|
-
| Currency input ($ prefix or formatted number) | `Currency` | field |
|
|
108
|
-
| Percentage input (% suffix) | `Percentage` | field |
|
|
109
|
-
| Decimal / float number input | `Decimal` | field |
|
|
110
|
-
| Integer-only number input | `Integer` | field |
|
|
111
|
-
| Email input (envelope icon or @-hint) | `Email` | field |
|
|
112
|
-
| URL input (link icon or http-hint) | `URL` | field |
|
|
113
|
-
| Checkbox with label | `Checkbox` | field |
|
|
114
|
-
| Radio button group | `RadioButtons` | field |
|
|
115
|
-
| Multi-select / tag-style select with chips | `Multiselect` | field |
|
|
116
|
-
| Type-ahead / autocomplete input with suggestions | `AutoComplete` | field |
|
|
117
|
-
| Rich text editor (toolbar with Bold/Italic/etc.) | `RichText` | field |
|
|
118
|
-
| Read-only comma-separated list of values | `ScalarList` | field |
|
|
119
|
-
| Selectable card / tile (click to select, like a plan card) | `SelectableCard` | field |
|
|
120
|
-
| Map / location picker with pin icon | `Location` | field |
|
|
121
|
-
| Link to another object/record | `ObjectReference` | field |
|
|
122
|
-
| Hyperlink displayed inline | `SemanticLink` | field |
|
|
123
|
-
| User avatar + name displayed inline | `UserReference` | field |
|
|
124
|
-
| Inline alert / warning inside a form | `CancelAlert` | field |
|
|
125
|
-
| Static text block / paragraph inside a form | `TextContent` | field |
|
|
126
|
-
| Grouping box around related fields | `Group` | field |
|
|
127
|
-
|
|
128
|
-
### Widget components
|
|
129
|
-
|
|
130
|
-
| What you see | SDK component name | Category |
|
|
131
|
-
| ------------------------------------------------- | ------------------ | -------- |
|
|
132
|
-
| To-do / task list card with assignments | `ToDo` | widget |
|
|
133
|
-
| File attachment area with upload button | `Attachment` | widget |
|
|
134
|
-
| Case history / audit trail table | `CaseHistory` | widget |
|
|
135
|
-
| File list with download actions | `FileUtility` | widget |
|
|
136
|
-
| List of follower avatars + "Follow" button | `Followers` | widget |
|
|
137
|
-
| "+" quick-create button with dropdown menu | `QuickCreate` | widget |
|
|
138
|
-
| Summary card for a single record with action menu | `SummaryItem` | widget |
|
|
139
|
-
| List of SummaryItem cards | `SummaryList` | widget |
|
|
140
|
-
| Announcement / news card | `AppAnnouncement` | widget |
|
|
141
|
-
|
|
142
|
-
### DSE / design system extension components
|
|
143
|
-
|
|
144
|
-
| What you see | SDK component name | Category |
|
|
145
|
-
| ------------------------------------------------------------ | ------------------- | --------------------- |
|
|
146
|
-
| Coloured banner alert bar (info / warning / error / success) | `AlertBanner` | designSystemExtension |
|
|
147
|
-
| Hero-style banner with title + CTA button | `Banner` | designSystemExtension |
|
|
148
|
-
| Read-only field+value pairs in a case summary | `CaseSummaryFields` | designSystemExtension |
|
|
149
|
-
| Read-only label+value pairs in a details view | `DetailsFields` | designSystemExtension |
|
|
150
|
-
| Collapsible section with header (accordion-style) | `FieldGroup` | designSystemExtension |
|
|
151
|
-
| List of field groups with "Add" link | `FieldGroupList` | designSystemExtension |
|
|
152
|
-
| User operator info popover (name + contact) | `Operator` | designSystemExtension |
|
|
153
|
-
| Comment/pulse card with avatar + timestamp | `Pulse` | designSystemExtension |
|
|
154
|
-
| Rich text editor with theme-aware toolbar | `RichTextEditor` | designSystemExtension |
|
|
155
|
-
| Quick-create shortcut links list (WSS sidebar) | `WssQuickCreate` | designSystemExtension |
|
|
156
|
-
|
|
157
|
-
### Recognition rules
|
|
158
|
-
|
|
159
|
-
1. **An avatar + form title alone is NOT `CaseView`** — `CaseView` requires the full case shell: step bar + action/kebab menu (⋮) + tabbed content area. A simple form with a header is `DefaultForm`.
|
|
160
|
-
2. **`FlowContainer` requires ALL THREE signals together** — avatar + assignment name at the top, form fields in the body, AND action buttons (Cancel / Save for later / Submit) at the bottom. If any one of the three is absent, do not identify it as `FlowContainer`.
|
|
161
|
-
3. Match the most specific pattern first — a form with both a step bar AND action buttons means both `Stages` AND `ActionButtons` are present.
|
|
162
|
-
4. If a field is read-only (label + value, no input box), it may be rendered by `DetailsFields` or `CaseSummaryFields` rather than the individual field component.
|
|
163
|
-
5. Include only components you can confidently identify — do not guess.
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## Targeted Migration
|
|
168
|
-
|
|
169
|
-
> Used when the merged component list from Step 0 is non-empty. Replaces only those components.
|
|
170
|
-
|
|
171
|
-
### T1 — Setup
|
|
172
|
-
|
|
173
|
-
**T1.1 — Install {{designSystem}}** if not already in `package.json`.
|
|
174
|
-
|
|
175
|
-
**T1.2 — Confirm installed version and provider API**
|
|
176
|
-
Run `npm ls {{designSystem}}` to confirm the exact installed major version.
|
|
177
|
-
Then read the installed package directly — do NOT rely on training knowledge, which may reflect a different version:
|
|
178
|
-
|
|
179
|
-
1. Read the README: `cat node_modules/{{designSystem}}/README.md`
|
|
180
|
-
Captures correct import paths, provider setup, and quick-start usage examples.
|
|
181
|
-
2. Find the provider's type signature:
|
|
182
|
-
`grep -rl "Provider" node_modules/{{designSystem}} --include="*.d.ts" | head -5`
|
|
183
|
-
Then read the matched `.d.ts` file(s) to extract the exact provider name and every required prop.
|
|
184
|
-
3. Check for peer dependencies: `cat node_modules/{{designSystem}}/package.json | grep -A 20 peerDep`
|
|
185
|
-
|
|
186
|
-
**Verification gate — do not proceed to T1.3 until you have written out:**
|
|
187
|
-
|
|
188
|
-
- The exact `import` statement for the provider (confirmed against the `.d.ts` above)
|
|
189
|
-
- The complete provider JSX including all required props with their values (confirmed against the README/types above)
|
|
190
|
-
|
|
191
|
-
**T1.3 — Add root provider to both entry points (always required)**
|
|
192
|
-
Most design systems require a root provider/context wrapper for any component in the tree to work (e.g. `ThemeProvider`, `Provider`, `ConfigProvider`, `ChakraProvider`, etc.).
|
|
193
|
-
|
|
194
|
-
Check whether `{{designSystem}}` requires one. If yes:
|
|
195
|
-
|
|
196
|
-
- Add it to **both** `src/MashupApp.tsx` **and** `src/PortalApp.tsx` — wrapping the existing provider tree
|
|
197
|
-
- Do this **before** launching any subagents, regardless of how few components are being migrated
|
|
198
|
-
- Do **not** remove any existing providers (MUI providers may still be needed by unmigrated components)
|
|
199
|
-
|
|
200
|
-
**T1.4 — FieldValueList (if `field` scope or any field component is in the list)**
|
|
201
|
-
If any field component is being migrated, replace `src/components/designSystemExtension/FieldValueList/` with a {{designSystem}} implementation **first** — all field components depend on it for `displayMode` rendering.
|
|
202
|
-
|
|
203
|
-
Required interface (must not change):
|
|
204
|
-
|
|
205
|
-
```typescript
|
|
206
|
-
interface FieldValueListProps {
|
|
207
|
-
name?: string;
|
|
208
|
-
value?: string;
|
|
209
|
-
variant?: 'stacked' | 'inline';
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
**T1.5 — Update providers for full-app scopes (if `template` or `infra` components are in the list)**
|
|
214
|
-
If `CaseView`, `AppShell`, `MashupApp`, or `PortalApp` are in the list, replace the old design system's `ThemeProvider` in `src/MashupApp.tsx` and `src/PortalApp.tsx` with {{designSystem}}'s provider.
|
|
215
|
-
|
|
216
|
-
### T2 — Migrate components (parallel subagents, ≤10 at a time)
|
|
217
|
-
|
|
218
|
-
For each component in the resolved list, launch a subagent:
|
|
219
|
-
|
|
220
|
-
- If `category` = `field` → use prompt **`replace-field`** with `fieldName` + `designSystem`
|
|
221
|
-
- Otherwise → use prompt **`replace-component`** with `componentName`, `componentCategory`, `componentPath`, `designSystem`
|
|
222
|
-
|
|
223
|
-
If the list has ≤10 components, launch all at once.
|
|
224
|
-
If the list has >10 components, batch into waves of ≤10 and wait for each wave before starting the next.
|
|
225
|
-
|
|
226
|
-
### T3 — Cleanup
|
|
227
|
-
|
|
228
|
-
After all subagents complete:
|
|
229
|
-
|
|
230
|
-
1. Search for any remaining imports of the old design system in the migrated files — fix stragglers
|
|
231
|
-
2. Run `npm run build` — fix ALL TypeScript errors until clean
|
|
232
|
-
3. If providers were updated, run `npm run dev` and verify the app loads
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## Full Migration
|
|
237
|
-
|
|
238
|
-
> Used by Rule 4 only. Migrates all 81 components across 9 waves.
|
|
239
|
-
|
|
240
|
-
> **Why 9 waves of 10?** Launching more than ~10 subagents simultaneously triggers rate-limit errors. Waves of 10 stay safely within the limit while still being ~10× faster than fully sequential execution. **Never launch the next wave until every subagent in the current wave has finished.**
|
|
241
|
-
|
|
242
|
-
### Phase 1: Setup (sequential — blocks everything else)
|
|
243
|
-
|
|
244
|
-
### 1.1 Install {{designSystem}}
|
|
245
|
-
|
|
246
|
-
Install the {{designSystem}} package and any required peer dependencies. Do NOT remove MUI yet — it's needed until all replacements finish.
|
|
247
|
-
|
|
248
|
-
### 1.2 Confirm installed version and provider API
|
|
249
|
-
|
|
250
|
-
Run `npm ls {{designSystem}}` to confirm the exact installed major version.
|
|
251
|
-
Then read the installed package directly — do NOT rely on training knowledge, which may reflect a different version:
|
|
252
|
-
|
|
253
|
-
1. Read the README: `cat node_modules/{{designSystem}}/README.md`
|
|
254
|
-
Captures correct import paths, provider setup, and quick-start usage examples.
|
|
255
|
-
2. Find the provider's type signature:
|
|
256
|
-
`grep -rl "Provider" node_modules/{{designSystem}} --include="*.d.ts" | head -5`
|
|
257
|
-
Then read the matched `.d.ts` file(s) to extract the exact provider name and every required prop.
|
|
258
|
-
3. Check for peer dependencies: `cat node_modules/{{designSystem}}/package.json | grep -A 20 peerDep`
|
|
259
|
-
|
|
260
|
-
**Verification gate — do not proceed to 1.3 until you have written out:**
|
|
261
|
-
|
|
262
|
-
- The exact `import` statement for the provider (confirmed against the `.d.ts` above)
|
|
263
|
-
- The complete provider JSX including all required props with their values (confirmed against the README/types above)
|
|
264
|
-
|
|
265
|
-
### 1.3 Add root provider to both entry points
|
|
266
|
-
|
|
267
|
-
Most design systems require a root provider/context wrapper for any component in the tree to work.
|
|
268
|
-
|
|
269
|
-
Check whether `{{designSystem}}` requires one. If yes:
|
|
270
|
-
|
|
271
|
-
- Add it to **both** `src/MashupApp.tsx` **and** `src/PortalApp.tsx` — wrapping the existing provider tree
|
|
272
|
-
- Do **not** remove any existing providers (MUI providers are still needed by unmigrated components)
|
|
273
|
-
|
|
274
|
-
### 1.4 Replace FieldValueList (blocking dependency for all fields)
|
|
275
|
-
|
|
276
|
-
Replace `src/components/designSystemExtension/FieldValueList/` with a {{designSystem}} implementation **before** starting any wave. Every field component depends on this for `displayMode` rendering.
|
|
277
|
-
|
|
278
|
-
Required interface (must not change — all 27 field components depend on it):
|
|
279
|
-
|
|
280
|
-
```typescript
|
|
281
|
-
interface FieldValueListProps {
|
|
282
|
-
name?: string;
|
|
283
|
-
value?: string;
|
|
284
|
-
variant?: 'stacked' | 'inline';
|
|
285
|
-
}
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
### 1.5 Update provider files for full migration
|
|
289
|
-
|
|
290
|
-
Replace MUI's `ThemeProvider` / `LegacyThemeProvider` in `src/MashupApp.tsx` and `src/PortalApp.tsx` with {{designSystem}}'s provider. Remove `LocalizationProvider` from `@mui/x-date-pickers` only if {{designSystem}} provides its own date picker.
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## Phase 2: Replacement — 9 waves (one wave at a time, ≤10 subagents per wave)
|
|
295
|
-
|
|
296
|
-
For field components → prompt: **`replace-field`** with `fieldName` + `designSystem`.
|
|
297
|
-
For all others → prompt: **`replace-component`** with `componentName`, `componentCategory`, `componentPath`, and `designSystem`.
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
### Wave 1 — Fields batch 1 (10 subagents — wait for all before Wave 2)
|
|
302
|
-
|
|
303
|
-
Each uses prompt: **`replace-field`** with `designSystem` = **{{designSystem}}**
|
|
304
|
-
|
|
305
|
-
| # | `fieldName` |
|
|
306
|
-
| --- | ------------ |
|
|
307
|
-
| 1 | TextInput |
|
|
308
|
-
| 2 | TextArea |
|
|
309
|
-
| 3 | Dropdown |
|
|
310
|
-
| 4 | Checkbox |
|
|
311
|
-
| 5 | RadioButtons |
|
|
312
|
-
| 6 | Date |
|
|
313
|
-
| 7 | DateTime |
|
|
314
|
-
| 8 | Time |
|
|
315
|
-
| 9 | Currency |
|
|
316
|
-
| 10 | Decimal |
|
|
317
|
-
|
|
318
|
-
---
|
|
319
|
-
|
|
320
|
-
### Wave 2 — Fields batch 2 (9 subagents — wait for all before Wave 3)
|
|
321
|
-
|
|
322
|
-
Each uses prompt: **`replace-field`** with `designSystem` = **{{designSystem}}**
|
|
323
|
-
|
|
324
|
-
| # | `fieldName` |
|
|
325
|
-
| --- | ------------ |
|
|
326
|
-
| 11 | Integer |
|
|
327
|
-
| 12 | Percentage |
|
|
328
|
-
| 13 | Email |
|
|
329
|
-
| 14 | Phone |
|
|
330
|
-
| 15 | URL |
|
|
331
|
-
| 16 | AutoComplete |
|
|
332
|
-
| 17 | Multiselect |
|
|
333
|
-
| 18 | RichText |
|
|
334
|
-
| 19 | ScalarList |
|
|
335
|
-
|
|
336
|
-
---
|
|
337
|
-
|
|
338
|
-
### Wave 3 — Fields batch 3 + DSE batch 1 (9 subagents — wait for all before Wave 4)
|
|
339
|
-
|
|
340
|
-
Fields use prompt: **`replace-field`** | DSE use prompt: **`replace-component`** with `componentCategory` = `designSystemExtension`
|
|
341
|
-
|
|
342
|
-
| # | prompt | `fieldName` / `componentName` | `componentPath` | MUI to replace |
|
|
343
|
-
| --- | ----------------- | ----------------------------- | ------------------------------------ | --------------------------------- |
|
|
344
|
-
| 20 | replace-field | SelectableCard | — | — |
|
|
345
|
-
| 21 | replace-field | Group | — | — |
|
|
346
|
-
| 22 | replace-field | Location | — | — |
|
|
347
|
-
| 23 | replace-field | ObjectReference | — | — |
|
|
348
|
-
| 24 | replace-field | SemanticLink | — | — |
|
|
349
|
-
| 25 | replace-field | UserReference | — | — |
|
|
350
|
-
| 26 | replace-field | CancelAlert | — | — |
|
|
351
|
-
| 27 | replace-field | TextContent | — | — |
|
|
352
|
-
| 28 | replace-component | AlertBanner | `designSystemExtension/AlertBanner/` | `Alert`, `AlertTitle`, `Collapse` |
|
|
353
|
-
|
|
354
|
-
---
|
|
355
|
-
|
|
356
|
-
### Wave 4 — DSE batch 2 + Templates batch 1 (10 subagents — wait for all before Wave 5)
|
|
357
|
-
|
|
358
|
-
DSE use prompt: **`replace-component`** with `componentCategory` = `designSystemExtension`
|
|
359
|
-
Templates use prompt: **`replace-component`** with `componentCategory` = `template`
|
|
360
|
-
|
|
361
|
-
| # | category | `componentName` | `componentPath` | MUI to replace |
|
|
362
|
-
| --- | --------------------- | ----------------- | ------------------------------------------ | ------------------------------------------- |
|
|
363
|
-
| 29 | designSystemExtension | Banner | `designSystemExtension/Banner/` | `Box`, `Typography`, `Button` |
|
|
364
|
-
| 30 | designSystemExtension | CaseSummaryFields | `designSystemExtension/CaseSummaryFields/` | `Grid`, `Typography` |
|
|
365
|
-
| 31 | designSystemExtension | DetailsFields | `designSystemExtension/DetailsFields/` | `Grid`, `Typography` |
|
|
366
|
-
| 32 | designSystemExtension | FieldGroup | `designSystemExtension/FieldGroup/` | `Box`, `Divider`, `Typography` |
|
|
367
|
-
| 33 | designSystemExtension | FieldGroupList | `designSystemExtension/FieldGroupList/` | `List`, `ListItem`, `Button` |
|
|
368
|
-
| 34 | designSystemExtension | Operator | `designSystemExtension/Operator/` | `Avatar`, `Typography`, `Box` |
|
|
369
|
-
| 35 | designSystemExtension | Pulse | `designSystemExtension/Pulse/` | `TextField`, `List`, `Avatar`, `Typography` |
|
|
370
|
-
| 36 | designSystemExtension | RichTextEditor | `designSystemExtension/RichTextEditor/` | MUI wrappers (keep editor lib) |
|
|
371
|
-
| 37 | designSystemExtension | WssQuickCreate | `designSystemExtension/WssQuickCreate/` | `Button`, `Menu`, `MenuItem` |
|
|
372
|
-
| 38 | template | OneColumn | `template/OneColumn/` | `Grid`, `makeStyles` |
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
### Wave 5 — Templates batch 2 (10 subagents — wait for all before Wave 6)
|
|
377
|
-
|
|
378
|
-
Each uses prompt: **`replace-component`** with `componentCategory` = `template`, `designSystem` = **{{designSystem}}**
|
|
379
|
-
|
|
380
|
-
| # | `componentName` | `componentPath` | MUI to replace |
|
|
381
|
-
| --- | ------------------- | ------------------------------- | -------------------------------- |
|
|
382
|
-
| 39 | TwoColumn | `template/TwoColumn/` | `Grid` with column ratios |
|
|
383
|
-
| 40 | NarrowWide | `template/NarrowWide/` | `Grid` (3:9 ratio) |
|
|
384
|
-
| 41 | WideNarrow | `template/WideNarrow/` | `Grid` (9:3 ratio) |
|
|
385
|
-
| 42 | Details | `template/Details/` | `Grid`, `Tabs`, `Tab` |
|
|
386
|
-
| 43 | CaseView | `template/CaseView/` | `Box`, `Grid`, `Typography` |
|
|
387
|
-
| 44 | CaseSummary | `template/CaseSummary/` | `Box`, `Grid` |
|
|
388
|
-
| 45 | CaseViewActionsMenu | `template/CaseViewActionsMenu/` | `Menu`, `MenuItem`, `IconButton` |
|
|
389
|
-
| 46 | SelfServiceCaseView | `template/SelfServiceCaseView/` | `Box`, `Grid` |
|
|
390
|
-
| 47 | AppShell | `template/AppShell/` | `Box`, layout containers |
|
|
391
|
-
| 48 | DefaultForm | `template/DefaultForm/` | `Grid`, `Box` |
|
|
392
|
-
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
### Wave 6 — Templates batch 3 (10 subagents — wait for all before Wave 7)
|
|
396
|
-
|
|
397
|
-
Each uses prompt: **`replace-component`** with `componentCategory` = `template`, `designSystem` = **{{designSystem}}**
|
|
398
|
-
|
|
399
|
-
| # | `componentName` | `componentPath` | MUI to replace |
|
|
400
|
-
| --- | --------------- | -------------------------- | -------------------------------- |
|
|
401
|
-
| 49 | DefaultPage | `template/DefaultPage/` | `Grid`, `Box` |
|
|
402
|
-
| 50 | ObjectPage | `template/ObjectPage/` | `Grid`, `Box` |
|
|
403
|
-
| 51 | SimpleTable | `template/SimpleTable/` | `Table`, `TableRow`, `TableCell` |
|
|
404
|
-
| 52 | ListView | `template/ListView/` | `Table`, `Pagination` |
|
|
405
|
-
| 53 | ListPage | `template/ListPage/` | `Table`, `Box` |
|
|
406
|
-
| 54 | DataReference | `template/DataReference/` | `Modal`/`Dialog`, `TextField` |
|
|
407
|
-
| 55 | AdvancedSearch | `template/AdvancedSearch/` | `Dialog`, `TextField`, `Button` |
|
|
408
|
-
| 56 | SubTabs | `template/SubTabs/` | `Tabs`, `Tab` |
|
|
409
|
-
| 57 | BannerPage | `template/BannerPage/` | `Box`, `Typography` |
|
|
410
|
-
| 58 | Confirmation | `template/Confirmation/` | `Box`, `Typography` |
|
|
411
|
-
|
|
412
|
-
> **ListView note:** This is the largest file (~1500 lines). If the subagent hits a length limit, retry with a prompt that lists each MUI import by name.
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
### Wave 7 — Templates batch 4 (9 subagents — wait for all before Wave 8)
|
|
417
|
-
|
|
418
|
-
Each uses prompt: **`replace-component`** with `componentCategory` = `template`, `designSystem` = **{{designSystem}}**
|
|
419
|
-
|
|
420
|
-
| # | `componentName` | `componentPath` | MUI to replace |
|
|
421
|
-
| --- | ----------------------- | ----------------------------------- | ------------------------------------------------------- |
|
|
422
|
-
| 59 | HierarchicalForm | `template/HierarchicalForm/` | `Box`, `Grid` |
|
|
423
|
-
| 60 | InlineDashboard | `template/InlineDashboard/` | `Box`, `Grid` |
|
|
424
|
-
| 61 | InlineDashboardPage | `template/InlineDashboardPage/` | `Box`, `Grid` |
|
|
425
|
-
| 62 | PromotedFilters | `template/PromotedFilters/` | `Box`, `Grid` |
|
|
426
|
-
| 63 | MultiReferenceReadOnly | `template/MultiReferenceReadOnly/` | `List`, `ListItem` |
|
|
427
|
-
| 64 | SingleReferenceReadOnly | `template/SingleReferenceReadOnly/` | `List`, `ListItem` |
|
|
428
|
-
| 65 | FieldGroupTemplate | `template/FieldGroupTemplate/` | `Box`, `Divider` |
|
|
429
|
-
| 66 | WssNavBar | `template/WssNavBar/` | `AppBar`, `Toolbar` |
|
|
430
|
-
| 67 | ToDo | `widget/ToDo/` | `Card`, `List`, `Badge`, `Avatar`, `Button`, `Snackbar` |
|
|
431
|
-
|
|
432
|
-
> Note: #67 (ToDo) uses `componentCategory` = `widget`
|
|
433
|
-
|
|
434
|
-
---
|
|
435
|
-
|
|
436
|
-
### Wave 8 — Widgets (8 subagents — wait for all before Wave 9)
|
|
437
|
-
|
|
438
|
-
Each uses prompt: **`replace-component`** with `componentCategory` = `widget`, `designSystem` = **{{designSystem}}**
|
|
439
|
-
|
|
440
|
-
| # | `componentName` | `componentPath` | MUI to replace |
|
|
441
|
-
| --- | --------------- | ------------------------- | ---------------------------------------------- |
|
|
442
|
-
| 68 | Attachment | `widget/Attachment/` | `Button`, `Dialog`, `Table`, `IconButton` |
|
|
443
|
-
| 69 | CaseHistory | `widget/CaseHistory/` | `Table`, `TableRow`, `TableCell`, `Typography` |
|
|
444
|
-
| 70 | FileUtility | `widget/FileUtility/` | `Button`, `IconButton`, `List`, `Dialog` |
|
|
445
|
-
| 71 | Followers | `widget/Followers/` | `List`, `ListItem`, `Avatar`, `Button` |
|
|
446
|
-
| 72 | QuickCreate | `widget/QuickCreate/` | `Button`, `Menu`, `MenuItem` |
|
|
447
|
-
| 73 | SummaryItem | `widget/SummaryItem/` | `Card`, `CardContent`, `Typography` |
|
|
448
|
-
| 74 | SummaryList | `widget/SummaryList/` | `List`, `ListItem` |
|
|
449
|
-
| 75 | AppAnnouncement | `widget/AppAnnouncement/` | `Alert`, `Snackbar` |
|
|
450
|
-
|
|
451
|
-
---
|
|
452
|
-
|
|
453
|
-
### Wave 9 — Infra (6 subagents)
|
|
454
|
-
|
|
455
|
-
Each uses prompt: **`replace-component`** with `componentCategory` = `infra`, `designSystem` = **{{designSystem}}**
|
|
456
|
-
|
|
457
|
-
| # | `componentName` | `componentPath` | MUI to replace |
|
|
458
|
-
| --- | --------------- | ------------------------ | ----------------------------------------------- |
|
|
459
|
-
| 76 | ActionButtons | `infra/ActionButtons/` | `Button`, `Stack`, `Divider` |
|
|
460
|
-
| 77 | DashboardFilter | `infra/DashboardFilter/` | `Select`, `MenuItem`, `Box` |
|
|
461
|
-
| 78 | DeferLoad | `infra/DeferLoad/` | `CircularProgress`, `Box` |
|
|
462
|
-
| 79 | NavBar | `infra/NavBar/` | `AppBar`, `Toolbar`, `Button`, `Menu`, `Avatar` |
|
|
463
|
-
| 80 | Stages | `infra/Stages/` | `Stepper`, `Step`, `StepLabel`, `makeStyles` |
|
|
464
|
-
| 81 | VerticalTabs | `infra/VerticalTabs/` | `Tabs`, `Tab`, `Box` |
|
|
465
|
-
|
|
466
|
-
---
|
|
467
|
-
|
|
468
|
-
## Phase 3: Cleanup (sequential — after ALL 9 waves complete)
|
|
469
|
-
|
|
470
|
-
### 3.1 Remove MUI dependencies
|
|
471
|
-
|
|
472
|
-
```bash
|
|
473
|
-
npm uninstall @mui/material @mui/icons-material @mui/styles @mui/x-date-pickers @emotion/react @emotion/styled
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
Keep `@mui/x-date-pickers` and `@emotion/*` ONLY if {{designSystem}} doesn't provide a date picker.
|
|
477
|
-
|
|
478
|
-
### 3.2 Remove remaining MUI imports
|
|
479
|
-
|
|
480
|
-
Search all files for leftover `@mui/*` imports AND `makeStyles` calls. Fix any stragglers.
|
|
481
|
-
|
|
482
|
-
### 3.3 Remove MUI theme augmentation
|
|
483
|
-
|
|
484
|
-
Delete `src/mui-theme-augmentation.d.ts` if it exists.
|
|
485
|
-
|
|
486
|
-
### 3.4 Verify build
|
|
487
|
-
|
|
488
|
-
Run `npm run build` — fix ALL TypeScript errors until clean.
|
|
489
|
-
|
|
490
|
-
> **Note:** A passing build does not catch undefined-component runtime errors. Components removed from JSX imports but still referenced in JSX will only fail at render time.
|
|
491
|
-
|
|
492
|
-
### 3.5 Verify runtime
|
|
493
|
-
|
|
494
|
-
Run `npm run dev` and exercise:
|
|
495
|
-
|
|
496
|
-
- App loads without console errors
|
|
497
|
-
- Open a **ListView** (table with pagination)
|
|
498
|
-
- Open a **ToDo widget**
|
|
499
|
-
- Open a **form with Dropdown and Date fields**
|
|
500
|
-
- Trigger a **Create Case** flow end-to-end
|
|
501
|
-
- Open a record in **read-only / Details view** (exercises FieldValueList)
|
|
502
|
-
- Confirm validation messages appear on required fields
|
|
503
|
-
|
|
504
|
-
If any `ReferenceError: X is not defined` appears in the console, a component was removed from imports but its JSX usage was not updated. Fix and re-verify.
|
|
505
|
-
|
|
506
|
-
---
|
|
507
|
-
|
|
508
|
-
## Critical Rules — NEVER violate these
|
|
509
|
-
|
|
510
|
-
1. **NEVER modify `@pega/sdk-react` imports or behavior**
|
|
511
|
-
2. **NEVER remove `handleEvent(actions, 'changeNblur', propName, value)` calls**
|
|
512
|
-
3. **NEVER remove `getPConnect()` prop extraction**
|
|
513
|
-
4. **NEVER remove `displayMode` handling in field components**
|
|
514
|
-
5. **NEVER modify `src/components/helpers/event-utils.ts`**
|
|
515
|
-
6. **NEVER change the `...sdkComponents` spread in `component-map.ts`**
|
|
516
|
-
7. **NEVER remove `data-test-id` attributes**
|
|
517
|
-
8. **NEVER modify PCore.\* API calls**
|
|
518
|
-
9. **KEEP the same default export function names** — component-map.ts imports depend on them
|
|
519
|
-
10. **KEEP the same file/directory structure** — only file content changes, not paths
|