@pega/sdk 0.0.1 → 0.0.3
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 +2 -19
- package/package.json +4 -1
- package/templates/react-sdk-reference/.claude/instructions/component-map.md +38 -0
- package/templates/react-sdk-reference/.claude/instructions/dse-component.md +75 -0
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +71 -0
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +92 -0
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +87 -0
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +144 -0
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +111 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +149 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +126 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +139 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +151 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +124 -0
- package/templates/react-sdk-reference/.claude/prompts/identify-components.md +105 -0
- package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +519 -0
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +140 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +135 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +149 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +154 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +144 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +131 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +111 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +115 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +149 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +83 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +206 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +135 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +289 -0
- package/templates/react-sdk-reference/.claude/skills/field-components.md +294 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +112 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +203 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +158 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +106 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +99 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +103 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +98 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +114 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +107 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +90 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +87 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +136 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +164 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +164 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +92 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +110 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +146 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +138 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +124 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +216 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +148 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +96 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +101 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +104 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +88 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +85 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +180 -0
- package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +68 -0
- package/templates/react-sdk-reference/.claude/skills/template-components.md +322 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +144 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +122 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +83 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +100 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +131 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +126 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +107 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +120 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +102 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +110 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +88 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +95 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +78 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +78 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +101 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +113 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +104 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +85 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +68 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +139 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +80 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +141 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +124 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +135 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +127 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +103 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +79 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +131 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +150 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +135 -0
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +271 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +82 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +146 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +107 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +200 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +99 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +114 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +167 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +190 -0
- package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +41 -0
- package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +78 -0
- package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +74 -0
- package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +247 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +111 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +131 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +144 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +156 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +110 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/replace-design-system.mdrules +524 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +145 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +159 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +116 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +120 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +88 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +211 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +294 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +299 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +117 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +208 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +163 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +111 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +104 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +108 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +103 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +119 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +95 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +92 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +141 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +169 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +169 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +97 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +115 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +151 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +143 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +221 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +153 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +101 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +106 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +109 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +93 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +90 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +185 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +73 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +327 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +127 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +88 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +105 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +131 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +125 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +107 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +115 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +93 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +100 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +83 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +83 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +106 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +114 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +118 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +109 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +90 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +73 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +144 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +85 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +146 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +114 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +132 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +108 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +84 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +155 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +276 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +87 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +151 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +205 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +104 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +119 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +172 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +195 -0
- package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +95 -0
- package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +90 -0
- package/templates/react-sdk-reference/.github/copilot-instructions.md +58 -0
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +144 -16
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +154 -0
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +131 -0
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +144 -0
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +156 -0
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +129 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +58 -18
- package/templates/react-sdk-reference/.github/skills/field-components.md +55 -23
- package/templates/react-sdk-reference/.github/skills/template-components.md +48 -11
- package/templates/react-sdk-reference/.github/skills/widget-components.md +49 -12
- package/templates/react-sdk-reference/AGENTS.md +217 -29
- package/templates/react-sdk-reference/package.json +3 -2
- package/templates/react-sdk-reference/pega-auth-0.2.42.tgz +0 -0
- package/templates/react-sdk-reference/pega-constellationjs-0.26.3-local.tgz +0 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/pega-sdk-types-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/sdk-config.json +1 -1
- package/templates/react-sdk-reference/vite.config.ts +1 -1
- package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +0 -48
- package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +0 -81
- package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +0 -41
- package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +0 -49
- package/templates/react-sdk-reference/.github/skills/swap-design-system.md +0 -105
|
@@ -0,0 +1,519 @@
|
|
|
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
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Skill: Component Contracts Reference
|
|
2
|
+
|
|
3
|
+
Quick-reference lookup of all registered component names and their prop contracts. Use this when you need to know what props a specific component receives from the Pega platform.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Field Components
|
|
8
|
+
|
|
9
|
+
All extend `PConnFieldProps` from `@pega/sdk-react`.
|
|
10
|
+
|
|
11
|
+
| Registry Name | File | Additional Props |
|
|
12
|
+
|---------------|------|-----------------|
|
|
13
|
+
| `TextInput` | `field/TextInput/TextInput.tsx` | `fieldMetadata?: any` |
|
|
14
|
+
| `TextArea` | `field/TextArea/` | `fieldMetadata?: any` |
|
|
15
|
+
| `Dropdown` | `field/Dropdown/` | `datasource?, listType?` |
|
|
16
|
+
| `Checkbox` | `field/Checkbox/` | `value: boolean` (not string) |
|
|
17
|
+
| `RadioButtons` | `field/RadioButtons/` | `datasource?, listType?` |
|
|
18
|
+
| `Date` | `field/Date/` | — |
|
|
19
|
+
| `DateTime` | `field/DateTime/` | — |
|
|
20
|
+
| `Time` | `field/Time/` | — |
|
|
21
|
+
| `Currency` | `field/Currency/` | `currencyISOCode?, formatterType?` |
|
|
22
|
+
| `Decimal` | `field/Decimal/` | `decimalPrecision?` |
|
|
23
|
+
| `Integer` | `field/Integer/` | — |
|
|
24
|
+
| `Percentage` | `field/Percentage/` | — |
|
|
25
|
+
| `Email` | `field/Email/Email.tsx` | — |
|
|
26
|
+
| `Phone` | `field/Phone/Phone.tsx` | `datasource?` (country codes) |
|
|
27
|
+
| `URL` | `field/URL/` | — |
|
|
28
|
+
| `AutoComplete` | `field/AutoComplete/` | `datasource?, listType?, columns?` |
|
|
29
|
+
| `Multiselect` | `field/Multiselect/Multiselect.tsx` | `datasource?, listType?` |
|
|
30
|
+
| `RichText` | `field/RichText/` | — |
|
|
31
|
+
| `ScalarList` | `field/ScalarList/` | `datasource?` |
|
|
32
|
+
| `SelectableCard` | `field/SelectableCard/` | `datasource?` |
|
|
33
|
+
| `Group` | `field/Group/` | — |
|
|
34
|
+
| `Location` | `field/Location/` | — |
|
|
35
|
+
| `ObjectReference` | `field/ObjectReference/` | `value: object` |
|
|
36
|
+
| `SemanticLink` | `field/SemanticLink/` | `text?, displayAs?` |
|
|
37
|
+
| `UserReference` | `field/UserReference/` | `showAsFormattedText?` |
|
|
38
|
+
| `CancelAlert` | `field/CancelAlert/` | — |
|
|
39
|
+
| `TextContent` | `field/TextContent/` | `content?` |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Template Components
|
|
44
|
+
|
|
45
|
+
All extend `PConnProps`. Most receive React `children` or use `getPConnect().getChildren()`.
|
|
46
|
+
|
|
47
|
+
| Registry Name | File | Key Props |
|
|
48
|
+
|---------------|------|-----------|
|
|
49
|
+
| `OneColumn` | `template/OneColumn/OneColumn.tsx` | `children` |
|
|
50
|
+
| `OneColumnPage` | `template/OneColumn/OneColumnPage.tsx` | `children` |
|
|
51
|
+
| `OneColumnTab` | `template/OneColumn/OneColumnTab.tsx` | `children` |
|
|
52
|
+
| `TwoColumn` | `template/TwoColumn/TwoColumn.tsx` | `children, templateCol?` |
|
|
53
|
+
| `TwoColumnPage` | `template/TwoColumn/TwoColumnPage.tsx` | `children` |
|
|
54
|
+
| `TwoColumnTab` | `template/TwoColumn/TwoColumnTab.tsx` | `children` |
|
|
55
|
+
| `NarrowWide` | `template/NarrowWide/NarrowWide.tsx` | `children, templateCol?` |
|
|
56
|
+
| `WideNarrow` | `template/WideNarrow/WideNarrow.tsx` | `children, templateCol?` |
|
|
57
|
+
| `Details` | `template/Details/Details.tsx` | `children` |
|
|
58
|
+
| `DefaultForm` | `template/DefaultForm/` | PConnect children |
|
|
59
|
+
| `DefaultPage` | `template/DefaultPage/` | PConnect children |
|
|
60
|
+
| `CaseView` | `template/CaseView/` | PConnect children, `header?, subheader?` |
|
|
61
|
+
| `CaseSummary` | `template/CaseSummary/` | PConnect children |
|
|
62
|
+
| `Confirmation` | `template/Confirmation/` | `label?` |
|
|
63
|
+
| `SimpleTable` | `template/SimpleTable/SimpleTable.tsx` | `datasource?, fields?, label?` |
|
|
64
|
+
| `ListView` | `template/ListView/` | `datasource?, fields?` |
|
|
65
|
+
| `SubTabs` | `template/SubTabs/` | PConnect children |
|
|
66
|
+
| `AppShell` | `template/AppShell/AppShell.tsx` | PConnect children |
|
|
67
|
+
| `DataReference` | `template/DataReference/` | PConnect children |
|
|
68
|
+
| `ListPage` | `template/ListPage/ListPage.tsx` | PConnect children |
|
|
69
|
+
| `InlineDashboard` | `template/InlineDashboard/` | PConnect children |
|
|
70
|
+
| `FieldGroupTemplate` | `template/FieldGroupTemplate/` | PConnect children |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Widget Components
|
|
75
|
+
|
|
76
|
+
All extend `PConnProps`. Fetch their own data.
|
|
77
|
+
|
|
78
|
+
| Registry Name | File | Key Props |
|
|
79
|
+
|---------------|------|-----------|
|
|
80
|
+
| `Todo` | `widget/ToDo/` | `datasource?, headerText?, context?` |
|
|
81
|
+
| `Attachment` | `widget/Attachment/` | `value, allowMultiple?, extensions?` |
|
|
82
|
+
| `CaseHistory` | `widget/CaseHistory/` | `datasource?` |
|
|
83
|
+
| `FileUtility` | `widget/FileUtility/FileUtility.tsx` | `datasource?` |
|
|
84
|
+
| `Followers` | `widget/Followers/` | — |
|
|
85
|
+
| `AppAnnouncement` | `widget/AppAnnouncement/` | `datasource?, headerText?` |
|
|
86
|
+
| `QuickCreate` | `widget/QuickCreate/` | — |
|
|
87
|
+
| `SummaryItem` | `widget/SummaryItem/` | `label?, value?, actions?` |
|
|
88
|
+
| `SummaryList` | `widget/SummaryList/` | `datasource?` |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Design System Extension Components
|
|
93
|
+
|
|
94
|
+
| Registry Name | File | Key Props |
|
|
95
|
+
|---------------|------|-----------|
|
|
96
|
+
| `FieldValueList` | `designSystemExtension/FieldValueList/` | `name?, value?, variant?` |
|
|
97
|
+
| `AlertBanner` | `designSystemExtension/AlertBanner/` | `variant, heading?, messages, onClose?` |
|
|
98
|
+
| `Banner` | `designSystemExtension/Banner/` | `variant?, text?` |
|
|
99
|
+
| `CaseSummaryFields` | `designSystemExtension/CaseSummaryFields/` | PConnect-based |
|
|
100
|
+
| `DetailsFields` | `designSystemExtension/DetailsFields/` | PConnect-based |
|
|
101
|
+
| `FieldGroup` | `designSystemExtension/FieldGroup/` | PConnect-based |
|
|
102
|
+
| `FieldGroupList` | `designSystemExtension/FieldGroupList/` | PConnect-based |
|
|
103
|
+
| `Operator` | `designSystemExtension/Operator/` | `label?, name?, id?` |
|
|
104
|
+
| `Pulse` | `designSystemExtension/Pulse/` | PConnect-based |
|
|
105
|
+
| `RichTextEditor` | `designSystemExtension/RichTextEditor/` | extends `PConnFieldProps` |
|
|
106
|
+
| `WssQuickCreate` | `designSystemExtension/WssQuickCreate/` | — |
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Infrastructure (from `sdkComponents` — do NOT replace)
|
|
111
|
+
|
|
112
|
+
| Registry Name | Source |
|
|
113
|
+
|---------------|--------|
|
|
114
|
+
| `RootContainer` | `@pega/sdk-react` |
|
|
115
|
+
| `ViewContainer` | `@pega/sdk-react` |
|
|
116
|
+
| `FlowContainer` | `@pega/sdk-react` |
|
|
117
|
+
| `Reference` | `@pega/sdk-react` |
|
|
118
|
+
| `View` | `@pega/sdk-react` |
|
|
119
|
+
| `Region` | `@pega/sdk-react` |
|
|
120
|
+
| `CaseView` (infra) | `@pega/sdk-react` |
|
|
121
|
+
| `Assignment` | `@pega/sdk-react` |
|
|
122
|
+
| `AssignmentCard` | `@pega/sdk-react` |
|
|
123
|
+
| `ActionButtons` | `@pega/sdk-react` |
|
|
124
|
+
| `CaseSummary` (infra) | `@pega/sdk-react` |
|
|
125
|
+
| `ErrorBoundary` | `@pega/sdk-react` |
|
|
126
|
+
| `MultiStep` | `@pega/sdk-react` |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Infra (sample-local, replaceable but exercise caution)
|
|
131
|
+
|
|
132
|
+
| Registry Name | File |
|
|
133
|
+
|---------------|------|
|
|
134
|
+
| `ActionButtons` | `infra/ActionButtons/` |
|
|
135
|
+
| `DeferLoad` | `infra/DeferLoad/` |
|
|
136
|
+
| `NavBar` | `infra/NavBar/` |
|
|
137
|
+
| `Stages` | `infra/Stages/` |
|
|
138
|
+
| `DashboardFilter` | `infra/DashboardFilter/` |
|
|
139
|
+
| `VerticalTabs` | `infra/VerticalTabs/VerticalTabs.tsx` |
|
|
140
|
+
| `LeftAlignVerticalTabs` | `infra/VerticalTabs/LeftAlignVerticalTabs.tsx` |
|