@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,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: generate-dse-components.prompt
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 — Resolve inputs
|
|
7
|
+
|
|
8
|
+
Read the user's message carefully. Extract:
|
|
9
|
+
|
|
10
|
+
- **Design system** — the UI library to use (e.g. `Ant Design`, `Chakra UI`, `Carbon`, `Radix UI`)
|
|
11
|
+
- **Output base path** — the folder where DSE components should be generated (e.g. `src/components/designSystemExtension/`)
|
|
12
|
+
- **Component list** — which components to generate (default: all 11 listed below)
|
|
13
|
+
|
|
14
|
+
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.
|
|
15
|
+
|
|
16
|
+
Example questions (ask only the ones that are actually missing):
|
|
17
|
+
1. Which design system should I use? (e.g. Ant Design, Chakra UI, Carbon, Radix UI)
|
|
18
|
+
2. Where should the DSE components be generated? (e.g. `src/components/designSystemExtension/`)
|
|
19
|
+
|
|
20
|
+
If the user specified a subset (e.g., "just AlertBanner and FieldValueList"), restrict the list accordingly.
|
|
21
|
+
|
|
22
|
+
Once both are known, continue to Step 1.
|
|
23
|
+
|
|
24
|
+
### Full component list (default — 11 DSE components)
|
|
25
|
+
|
|
26
|
+
| Component | Pattern | DS needed? |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| AlertBanner | B — Pure display | Yes |
|
|
29
|
+
| Banner | B — Pure display | Yes |
|
|
30
|
+
| CaseSummaryFields | A — PConnect display | Minimal |
|
|
31
|
+
| DetailsFields | A — PConnect display | Minimal |
|
|
32
|
+
| FieldGroup | C — Complex display | No |
|
|
33
|
+
| FieldGroupList | C — Complex display | No |
|
|
34
|
+
| FieldValueList | A — PConnect display | No (CSS only) |
|
|
35
|
+
| Operator | B — Pure display | Yes |
|
|
36
|
+
| Pulse | C — Complex display | No |
|
|
37
|
+
| RichTextEditor | C — Complex display | No |
|
|
38
|
+
| WssQuickCreate | B — Pure display | Yes |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Step 1 — Read `design-system-extension.md` (once, for the entire session)
|
|
43
|
+
|
|
44
|
+
Read the full contents of `.cursor/rules/skills/design-system-extension.mdrules`.
|
|
45
|
+
|
|
46
|
+
This gives you:
|
|
47
|
+
- All three implementation patterns (Pure display, Field value display, Complex display with PConnect)
|
|
48
|
+
- The `// [DS RENDER]` placeholder approach for Pattern B components
|
|
49
|
+
- The Design System Adaptation section — pattern categorisation, variant mapping table, DS discovery guidance
|
|
50
|
+
- Styling patterns — when to use CSS files vs DS style props
|
|
51
|
+
- Registration conventions
|
|
52
|
+
|
|
53
|
+
Keep this context active throughout the entire generation session. Do not re-read it per component.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 2 — Install and discover the design system (once)
|
|
58
|
+
|
|
59
|
+
Execute **Step 3** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
60
|
+
- Check `package.json` for the DS package
|
|
61
|
+
- Install if missing, including any peer dependencies
|
|
62
|
+
- Report what was installed
|
|
63
|
+
|
|
64
|
+
Then execute **Step 4** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
65
|
+
- Read the DS README from `node_modules`
|
|
66
|
+
- Discover exported components from `dist/index.d.ts`
|
|
67
|
+
- Focus on display primitives used by Pattern B components: Alert, Card, Avatar, Badge, Tag, Notification
|
|
68
|
+
- Read prop interfaces for these components from `.d.ts` files
|
|
69
|
+
|
|
70
|
+
> Pattern A/C components (FieldValueList, FieldGroup, Pulse, etc.) use PConnect bridge or plain CSS — they do not use the DS API. Only Pattern B components consume DS primitives.
|
|
71
|
+
|
|
72
|
+
Build a **DS display primitive reference map** from this discovery. Reuse it for every Pattern B component — do not repeat these commands per component.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Step 3 — Overwrite check (all at once)
|
|
77
|
+
|
|
78
|
+
For each component in the list, check whether `<outputPath>/<ComponentName>/<ComponentName>.tsx` already exists.
|
|
79
|
+
|
|
80
|
+
If **any** exist, report them all at once and ask:
|
|
81
|
+
> "The following N components already exist: [list]. How should I proceed?
|
|
82
|
+
> - **Overwrite all** — replace all existing implementations
|
|
83
|
+
> - **Skip existing** — only generate components that don't exist yet
|
|
84
|
+
> - **Cancel** — stop without generating anything"
|
|
85
|
+
|
|
86
|
+
Wait for the user's answer before proceeding. If none exist, continue immediately.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Step 4 — Generate each component (loop)
|
|
91
|
+
|
|
92
|
+
For each component in the resolved list (in the order listed in Step 0):
|
|
93
|
+
|
|
94
|
+
### 4a — Read the component-specific skill file
|
|
95
|
+
Execute **Step 2** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
96
|
+
- Read `.cursor/rules/skills/design-system-extension-skills/<ComponentName>.mdrules` fully
|
|
97
|
+
- Identify the component's pattern (B / A / C) from the skill file
|
|
98
|
+
- Pay attention to:
|
|
99
|
+
- **Behavioral Contract** — prop handling, variant mapping, rendering logic, edge cases
|
|
100
|
+
- **Design System Mapping** table — the recommended DS primitive for Pattern B components
|
|
101
|
+
|
|
102
|
+
### 4b — Generate the component files
|
|
103
|
+
Execute **Step 5** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
104
|
+
- Create `<outputPath>/<ComponentName>/` directory
|
|
105
|
+
- Create `<ComponentName>.tsx` using:
|
|
106
|
+
- **Pattern B** (Pure display — AlertBanner, Banner, Operator, WssQuickCreate): use DS alert/card/avatar primitive from Step 2 API map in the `// [DS RENDER]` section; apply variant mapping from the skill file
|
|
107
|
+
- **Pattern A** (PConnect display — CaseSummaryFields, DetailsFields, FieldValueList): use CSS classes or DS typography props; no DS component primitives
|
|
108
|
+
- **Pattern C** (Complex display — FieldGroup, FieldGroupList, Pulse, RichTextEditor): use PConnect bridge (`createElement(createPConnectComponent(), ...)`); no DS primitives
|
|
109
|
+
- Create `index.tsx` if required by the skill file:
|
|
110
|
+
```typescript
|
|
111
|
+
export { default } from './<ComponentName>';
|
|
112
|
+
```
|
|
113
|
+
- Create any CSS file required by the skill file
|
|
114
|
+
|
|
115
|
+
### 4c — Register the component
|
|
116
|
+
Execute **Step 6** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
117
|
+
- Add the import to `src/components/component-map.ts` in the Design System Extension section
|
|
118
|
+
- Add the entry to `getSampleComponentMap()` under the DSE comment
|
|
119
|
+
- Do not reorder or restructure any existing entries
|
|
120
|
+
|
|
121
|
+
### 4d — Report progress
|
|
122
|
+
After each component: "`<ComponentName>` ✓ — Pattern `<B/A/C>`<`, using <DS primitive>` if Pattern B>"
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Step 5 — Verify the build
|
|
127
|
+
|
|
128
|
+
Execute **Step 7** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
129
|
+
- Run `npm run build`
|
|
130
|
+
- Fix any TypeScript or build errors before reporting completion
|
|
131
|
+
- Report a summary: list of all files created and all entries added to `component-map.ts`
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: generate-field-components.prompt
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 — Resolve inputs
|
|
7
|
+
|
|
8
|
+
Read the user's message carefully. Extract:
|
|
9
|
+
|
|
10
|
+
- **Design system** — the UI library to use (e.g. `Ant Design`, `Chakra UI`, `Carbon`, `Radix UI`)
|
|
11
|
+
- **Output base path** — the folder where field components should be generated (e.g. `src/components/field/`, `app/ui/fields/`)
|
|
12
|
+
- **Component list** — which components to generate (default: all 27 listed below)
|
|
13
|
+
|
|
14
|
+
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.
|
|
15
|
+
|
|
16
|
+
Example questions (ask only the ones that are actually missing):
|
|
17
|
+
1. Which design system should I use? (e.g. Ant Design, Chakra UI, Carbon, Radix UI)
|
|
18
|
+
2. Where should the field components be generated? (e.g. `src/components/field/`)
|
|
19
|
+
|
|
20
|
+
If the user specified a subset (e.g., "just TextInput and Dropdown"), restrict the list accordingly.
|
|
21
|
+
|
|
22
|
+
Once both are known, continue to Step 1.
|
|
23
|
+
|
|
24
|
+
### Full component list (default)
|
|
25
|
+
|
|
26
|
+
| Component | Pega Name |
|
|
27
|
+
|---|---|
|
|
28
|
+
| AutoComplete | AutoComplete |
|
|
29
|
+
| CancelAlert | CancelAlert |
|
|
30
|
+
| Checkbox | Checkbox |
|
|
31
|
+
| Currency | Currency |
|
|
32
|
+
| Date | Date |
|
|
33
|
+
| DateTime | DateTime |
|
|
34
|
+
| Decimal | Decimal |
|
|
35
|
+
| Dropdown | Dropdown |
|
|
36
|
+
| Email | Email |
|
|
37
|
+
| Group | Group |
|
|
38
|
+
| Integer | Integer |
|
|
39
|
+
| Location | Location |
|
|
40
|
+
| Multiselect | Multiselect |
|
|
41
|
+
| ObjectReference | ObjectReference |
|
|
42
|
+
| Percentage | Percentage |
|
|
43
|
+
| Phone | Phone |
|
|
44
|
+
| RadioButtons | RadioButtons |
|
|
45
|
+
| RichText | RichText |
|
|
46
|
+
| ScalarList | ScalarList |
|
|
47
|
+
| SelectableCard | SelectableCard |
|
|
48
|
+
| SemanticLink | SemanticLink |
|
|
49
|
+
| TextArea | TextArea |
|
|
50
|
+
| TextContent | TextContent |
|
|
51
|
+
| TextInput | TextInput |
|
|
52
|
+
| Time | Time |
|
|
53
|
+
| URL | URL |
|
|
54
|
+
| UserReference | UserReference |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Step 1 — Read `field-components.md` (once, for the entire session)
|
|
59
|
+
|
|
60
|
+
Read the full contents of `.cursor/rules/skills/field-components.mdrules`.
|
|
61
|
+
|
|
62
|
+
This gives you:
|
|
63
|
+
- The behavioral skeleton every field component must follow (state, effects, event handling, display modes)
|
|
64
|
+
- The Design System Adaptation guide (prop mapping conventions, form layout wrappers)
|
|
65
|
+
- The abstract template to use as a base for all components
|
|
66
|
+
|
|
67
|
+
Keep this context active throughout the entire generation session. Do not re-read it per component.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Step 2 — Install and discover the design system (once)
|
|
72
|
+
|
|
73
|
+
Execute **Step 3** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
74
|
+
- Check `package.json` for the DS package
|
|
75
|
+
- Install if missing, including any peer dependencies
|
|
76
|
+
- Report what was installed
|
|
77
|
+
|
|
78
|
+
Then execute **Step 4** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
79
|
+
- Read the DS README from `node_modules`
|
|
80
|
+
- Discover all exported components from `dist/index.d.ts`
|
|
81
|
+
- Read prop interfaces for the control types needed across the component list
|
|
82
|
+
- Note form layout wrappers, size/variant conventions, icon packages, and design tokens
|
|
83
|
+
|
|
84
|
+
Build a **DS API reference map** from this discovery. You will reuse it for every component — do not repeat these commands per component.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Step 3 — Overwrite check (all at once)
|
|
89
|
+
|
|
90
|
+
For each component in the list, check whether `<outputPath>/<ComponentName>/<ComponentName>.tsx` already exists.
|
|
91
|
+
|
|
92
|
+
If **any** exist, report them all at once and ask:
|
|
93
|
+
> "The following N components already exist: [list]. How should I proceed?
|
|
94
|
+
> - **Overwrite all** — replace all existing implementations
|
|
95
|
+
> - **Skip existing** — only generate components that don't exist yet
|
|
96
|
+
> - **Cancel** — stop without generating anything"
|
|
97
|
+
|
|
98
|
+
Wait for the user's answer before proceeding. If none exist, continue immediately.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Step 4 — Generate each component (loop)
|
|
103
|
+
|
|
104
|
+
For each component in the resolved list (in the order listed in Step 0):
|
|
105
|
+
|
|
106
|
+
### 4a — Read the component-specific skill file
|
|
107
|
+
Execute **Step 2** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
108
|
+
- Read `.cursor/rules/skills/field-skills/<ComponentName>.mdrules` fully
|
|
109
|
+
- Pay attention to:
|
|
110
|
+
- **Behavioral Contract** — state management, option loading, edge cases specific to this component
|
|
111
|
+
- **Design System Mapping** table — the recommended DS component for the chosen design system
|
|
112
|
+
- **UI control type** — use this to select the closest DS primitive if the chosen DS is not in the mapping table
|
|
113
|
+
|
|
114
|
+
### 4b — Generate the component files
|
|
115
|
+
Execute **Step 5** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
116
|
+
- Create `<outputPath>/<ComponentName>/` directory
|
|
117
|
+
- Create `<ComponentName>.tsx` using:
|
|
118
|
+
- The abstract behavioral skeleton from `field-components.md` (read in Step 1)
|
|
119
|
+
- The Behavioral Contract from the component skill file
|
|
120
|
+
- The DS API confirmed in Step 2 (from the DS API reference map — no new terminal commands needed)
|
|
121
|
+
- Display mode guards (`DISPLAY_ONLY`, `STACKED_LARGE_VAL`) via `getComponentFromRegistry('FieldValueList')`
|
|
122
|
+
- `data-test-id={testId}` on the underlying interactive element
|
|
123
|
+
- Create `index.tsx`:
|
|
124
|
+
```typescript
|
|
125
|
+
export { default } from './<ComponentName>';
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 4c — Register the component
|
|
129
|
+
Execute **Step 6** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
130
|
+
- Add the import to `src/components/component-map.ts` in the Fields section
|
|
131
|
+
- Add the entry to `getSampleComponentMap()` under the fields comment
|
|
132
|
+
- Do not reorder or restructure any existing entries
|
|
133
|
+
|
|
134
|
+
### 4d — Report progress
|
|
135
|
+
After each component: "`<ComponentName>` ✓ — using `<DS component name>`"
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Step 5 — Verify the build
|
|
140
|
+
|
|
141
|
+
Execute **Step 7** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
142
|
+
- Run `npm run build`
|
|
143
|
+
- Fix any TypeScript or build errors before reporting completion
|
|
144
|
+
- Report a summary: list of all files created and all entries added to `component-map.ts`
|
package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: generate-template-components.prompt
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 — Resolve inputs
|
|
7
|
+
|
|
8
|
+
Read the user's message carefully. Extract:
|
|
9
|
+
|
|
10
|
+
- **Design system** — the UI library to use (e.g. `Ant Design`, `Chakra UI`, `Carbon`, `Radix UI`)
|
|
11
|
+
- **Output base path** — the folder where template components should be generated (e.g. `src/components/template/`)
|
|
12
|
+
- **Component list** — which templates to generate (default: all 32 listed below)
|
|
13
|
+
|
|
14
|
+
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.
|
|
15
|
+
|
|
16
|
+
Example questions (ask only the ones that are actually missing):
|
|
17
|
+
1. Which design system should I use? (e.g. Ant Design, Chakra UI, Carbon, Radix UI)
|
|
18
|
+
2. Where should the template components be generated? (e.g. `src/components/template/`)
|
|
19
|
+
|
|
20
|
+
> **Note:** The design system applies only to **layout templates** (TwoColumn, OneColumn, NarrowWide, WideNarrow, and their sub-variants). Form templates and page templates use the PConnect bridge pattern and are design-system agnostic — they will be generated without DS primitives regardless of your choice.
|
|
21
|
+
|
|
22
|
+
If the user specified a subset (e.g., "just TwoColumn and OneColumn"), restrict the list accordingly.
|
|
23
|
+
|
|
24
|
+
Once both are known, continue to Step 1.
|
|
25
|
+
|
|
26
|
+
### Full component list (default — 32 templates)
|
|
27
|
+
|
|
28
|
+
| Component | Category |
|
|
29
|
+
|---|---|
|
|
30
|
+
| AdvancedSearch | Page |
|
|
31
|
+
| AppShell | Page |
|
|
32
|
+
| BannerPage | Page |
|
|
33
|
+
| CaseSummary | Page |
|
|
34
|
+
| CaseView | Page |
|
|
35
|
+
| CaseViewActionsMenu | Widget |
|
|
36
|
+
| Confirmation | Page |
|
|
37
|
+
| DataReference | Form |
|
|
38
|
+
| DefaultForm | Form |
|
|
39
|
+
| DefaultPage | Page |
|
|
40
|
+
| Details | Layout |
|
|
41
|
+
| DetailsSubTabs | Layout |
|
|
42
|
+
| DetailsThreeColumn | Layout |
|
|
43
|
+
| DetailsTwoColumn | Layout |
|
|
44
|
+
| DynamicTabs | Navigation |
|
|
45
|
+
| FieldGroupTemplate | Form |
|
|
46
|
+
| HierarchicalForm | Form |
|
|
47
|
+
| InlineDashboard | Page |
|
|
48
|
+
| InlineDashboardPage | Page |
|
|
49
|
+
| ListPage | Page |
|
|
50
|
+
| ListView | Page |
|
|
51
|
+
| MultiReferenceReadOnly | Display |
|
|
52
|
+
| NarrowWide | Layout |
|
|
53
|
+
| OneColumn | Layout |
|
|
54
|
+
| PromotedFilters | Widget |
|
|
55
|
+
| SelfServiceCaseView | Page |
|
|
56
|
+
| SimpleTable | Table |
|
|
57
|
+
| SingleReferenceReadOnly | Display |
|
|
58
|
+
| SubTabs | Navigation |
|
|
59
|
+
| TwoColumn | Layout |
|
|
60
|
+
| WideNarrow | Layout |
|
|
61
|
+
| WssNavBar | Navigation |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Step 1 — Read `template-components.md` (once, for the entire session)
|
|
66
|
+
|
|
67
|
+
Read the full contents of `.cursor/rules/skills/template-components.mdrules`.
|
|
68
|
+
|
|
69
|
+
This gives you:
|
|
70
|
+
- **Layout template pattern** — DS-agnostic grid skeleton with `// [DS GRID]` placeholder; `templateCol` parsing logic; responsive behavior rules
|
|
71
|
+
- **Design System Adaptation section** — how to map the chosen DS's grid/flex primitive to the computed column ratios
|
|
72
|
+
- **Form template pattern** — PConnect bridge via `createElement(createPConnectComponent(), ...)` and `connectToState`; no DS involved
|
|
73
|
+
- **Page template pattern** — region extraction via `getRawMetadata()` and PConnect bridge; no DS involved
|
|
74
|
+
- Registration conventions and helper utilities
|
|
75
|
+
|
|
76
|
+
Keep this context active throughout the entire generation session. Do not re-read it per component.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Step 2 — Install and discover the design system (once)
|
|
81
|
+
|
|
82
|
+
Execute **Step 3** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
83
|
+
- Check `package.json` for the DS package
|
|
84
|
+
- Install if missing, including any peer dependencies
|
|
85
|
+
- Report what was installed
|
|
86
|
+
|
|
87
|
+
Then execute **Step 4** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
88
|
+
- Read the DS README from `node_modules`
|
|
89
|
+
- Discover exported layout components (Grid, Columns, Flex, SimpleGrid, etc.) from `dist/index.d.ts`
|
|
90
|
+
- Read prop interfaces for the grid/layout components needed by layout templates
|
|
91
|
+
- Note responsive breakpoint APIs and column sizing conventions
|
|
92
|
+
|
|
93
|
+
> You only need layout-related DS components. Form and page templates do not use the DS.
|
|
94
|
+
|
|
95
|
+
Build a **DS layout API reference** from this discovery. Reuse it for every layout template — do not repeat these commands per component.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Step 3 — Overwrite check (all at once)
|
|
100
|
+
|
|
101
|
+
For each component in the list, check whether `<outputPath>/<ComponentName>/<ComponentName>.tsx` already exists.
|
|
102
|
+
|
|
103
|
+
If **any** exist, report them all at once and ask:
|
|
104
|
+
> "The following N components already exist: [list]. How should I proceed?
|
|
105
|
+
> - **Overwrite all** — replace all existing implementations
|
|
106
|
+
> - **Skip existing** — only generate components that don't exist yet
|
|
107
|
+
> - **Cancel** — stop without generating anything"
|
|
108
|
+
|
|
109
|
+
Wait for the user's answer before proceeding. If none exist, continue immediately.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Step 4 — Generate each component (loop)
|
|
114
|
+
|
|
115
|
+
For each component in the resolved list (in the order listed in Step 0):
|
|
116
|
+
|
|
117
|
+
### 4a — Read the component-specific skill file
|
|
118
|
+
Execute **Step 2** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
119
|
+
- Read `.cursor/rules/skills/template-skills/<ComponentName>.mdrules` fully
|
|
120
|
+
- Identify the template category from the skill file:
|
|
121
|
+
- **Layout** — uses DS grid primitives from Step 2's API reference
|
|
122
|
+
- **Form** — uses PConnect bridge + CSS classes; ignore DS
|
|
123
|
+
- **Page** — uses region extraction + PConnect bridge; ignore DS
|
|
124
|
+
- Pay attention to Behavioral Contract, sub-variants, and any Design System Mapping table
|
|
125
|
+
|
|
126
|
+
### 4b — Generate the component files
|
|
127
|
+
Execute **Step 5** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
128
|
+
- Create `<outputPath>/<ComponentName>/` directory
|
|
129
|
+
- Create `<ComponentName>.tsx` using:
|
|
130
|
+
- **Layout templates**: DS-agnostic skeleton from `template-components.md` with the `// [DS GRID]` section filled in using DS layout API confirmed in Step 2
|
|
131
|
+
- **Form/Page templates**: PConnect bridge pattern from `template-components.md`; no DS primitives
|
|
132
|
+
- Behavioral Contract from the component skill file
|
|
133
|
+
- Create `index.tsx` if required by the skill file:
|
|
134
|
+
```typescript
|
|
135
|
+
export { default } from './<ComponentName>';
|
|
136
|
+
```
|
|
137
|
+
- Create any CSS file required by the skill file (e.g., `DefaultForm.css` with grid classes)
|
|
138
|
+
|
|
139
|
+
### 4c — Register the component
|
|
140
|
+
Execute **Step 6** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
141
|
+
- Add the import to `src/components/component-map.ts` in the Templates section
|
|
142
|
+
- Add the entry to `getSampleComponentMap()` under the templates comment
|
|
143
|
+
- For sub-variants (e.g., TwoColumnPage, TwoColumnTab), register each key separately pointing to its own file or a shared implementation as specified in the skill file
|
|
144
|
+
- Do not reorder or restructure any existing entries
|
|
145
|
+
|
|
146
|
+
### 4d — Report progress
|
|
147
|
+
After each component: "`<ComponentName>` ✓ — `<Layout | Form | Page>` template`<, using <DS component name> for grid>` if layout"
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Step 5 — Verify the build
|
|
152
|
+
|
|
153
|
+
Execute **Step 7** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
154
|
+
- Run `npm run build`
|
|
155
|
+
- Fix any TypeScript or build errors before reporting completion
|
|
156
|
+
- Report a summary: list of all files created and all entries added to `component-map.ts`
|
package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: generate-widget-components.prompt
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 — Resolve inputs
|
|
7
|
+
|
|
8
|
+
Read the user's message carefully. Extract:
|
|
9
|
+
|
|
10
|
+
- **Design system** — the UI library to use (e.g. `Ant Design`, `Chakra UI`, `Carbon`, `Radix UI`)
|
|
11
|
+
- **Output base path** — the folder where widget components should be generated (e.g. `src/components/widget/`)
|
|
12
|
+
- **Component list** — which widgets to generate (default: all 9 listed below)
|
|
13
|
+
|
|
14
|
+
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.
|
|
15
|
+
|
|
16
|
+
Example questions (ask only the ones that are actually missing):
|
|
17
|
+
1. Which design system should I use? (e.g. Ant Design, Chakra UI, Carbon, Radix UI)
|
|
18
|
+
2. Where should the widget components be generated? (e.g. `src/components/widget/`)
|
|
19
|
+
|
|
20
|
+
If the user specified a subset (e.g., "just ToDo and Attachment"), restrict the list accordingly.
|
|
21
|
+
|
|
22
|
+
Once both are known, continue to Step 1.
|
|
23
|
+
|
|
24
|
+
### Full component list (default — 9 widgets)
|
|
25
|
+
|
|
26
|
+
| Component | Description |
|
|
27
|
+
|---|---|
|
|
28
|
+
| AppAnnouncement | System-wide announcements |
|
|
29
|
+
| Attachment | File upload/download |
|
|
30
|
+
| CaseHistory | Case audit trail |
|
|
31
|
+
| FileUtility | File management utility |
|
|
32
|
+
| Followers | Case followers list |
|
|
33
|
+
| QuickCreate | Quick case creation buttons |
|
|
34
|
+
| SummaryItem | Single summary card |
|
|
35
|
+
| SummaryList | List of summary cards |
|
|
36
|
+
| ToDo | Assignment worklist |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Step 1 — Read `widget-components.md` (once, for the entire session)
|
|
41
|
+
|
|
42
|
+
Read the full contents of `.cursor/rules/skills/widget-components.mdrules`.
|
|
43
|
+
|
|
44
|
+
This gives you:
|
|
45
|
+
- The DS-agnostic data-fetching skeleton with `// [DS RENDER]` placeholder
|
|
46
|
+
- The Design System Adaptation guide (primitive mapping table, icon discovery rules)
|
|
47
|
+
- All common Pega APIs used in widgets: `PCore.getDataPageUtils()`, `PCore.getMashupApi()`, `PCore.getAttachmentUtils()`, `pConn.getCaseInfo()`, etc.
|
|
48
|
+
- Registration conventions
|
|
49
|
+
|
|
50
|
+
> The PCore data-fetching logic is always identical regardless of design system. Only the `// [DS RENDER]` section changes per DS.
|
|
51
|
+
|
|
52
|
+
Keep this context active throughout the entire generation session. Do not re-read it per component.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Step 2 — Install and discover the design system (once)
|
|
57
|
+
|
|
58
|
+
Execute **Step 3** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
59
|
+
- Check `package.json` for the DS package
|
|
60
|
+
- Install if missing, including any peer dependencies
|
|
61
|
+
- Report what was installed
|
|
62
|
+
|
|
63
|
+
Then execute **Step 4** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
64
|
+
- Read the DS README from `node_modules`
|
|
65
|
+
- Discover exported components from `dist/index.d.ts`
|
|
66
|
+
- Focus on presentation primitives used in widgets: Card, List, Table, Button, Badge, Spinner, Skeleton, Empty state
|
|
67
|
+
- Read prop interfaces for these components from `.d.ts` files
|
|
68
|
+
- If the DS has a companion icon package, discover its exports
|
|
69
|
+
|
|
70
|
+
Build a **DS UI primitive reference map** from this discovery. Reuse it for every widget — do not repeat these commands per component.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Step 3 — Overwrite check (all at once)
|
|
75
|
+
|
|
76
|
+
For each component in the list, check whether `<outputPath>/<ComponentName>/<ComponentName>.tsx` already exists.
|
|
77
|
+
|
|
78
|
+
If **any** exist, report them all at once and ask:
|
|
79
|
+
> "The following N components already exist: [list]. How should I proceed?
|
|
80
|
+
> - **Overwrite all** — replace all existing implementations
|
|
81
|
+
> - **Skip existing** — only generate components that don't exist yet
|
|
82
|
+
> - **Cancel** — stop without generating anything"
|
|
83
|
+
|
|
84
|
+
Wait for the user's answer before proceeding. If none exist, continue immediately.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Step 4 — Generate each component (loop)
|
|
89
|
+
|
|
90
|
+
For each component in the resolved list (in the order listed in Step 0):
|
|
91
|
+
|
|
92
|
+
### 4a — Read the component-specific skill file
|
|
93
|
+
Execute **Step 2** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
94
|
+
- Read `.cursor/rules/skills/widget-skills/<ComponentName>.mdrules` fully if it exists
|
|
95
|
+
- Pay attention to:
|
|
96
|
+
- **Behavioral Contract** — data fetching logic, PCore API calls, state management, action handlers
|
|
97
|
+
- **Design System Mapping** table — the recommended DS component for presentation
|
|
98
|
+
- If no skill file exists (e.g., `SummaryList`), use the general data-fetching pattern from `widget-components.md`
|
|
99
|
+
|
|
100
|
+
### 4b — Generate the component files
|
|
101
|
+
Execute **Step 5** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
102
|
+
- Create `<outputPath>/<ComponentName>/` directory
|
|
103
|
+
- Create `<ComponentName>.tsx` using:
|
|
104
|
+
- The DS-agnostic data-fetching skeleton from `widget-components.md` (read in Step 1)
|
|
105
|
+
- The Behavioral Contract from the component skill file (PCore API calls, state, actions)
|
|
106
|
+
- 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
|
|
107
|
+
- Create `index.tsx` if required by the skill file:
|
|
108
|
+
```typescript
|
|
109
|
+
export { default } from './<ComponentName>';
|
|
110
|
+
```
|
|
111
|
+
- Create any CSS or utility files required by the skill file
|
|
112
|
+
|
|
113
|
+
### 4c — Register the component
|
|
114
|
+
Execute **Step 6** from `.cursor/rules/prompts/add-component.mdrules` for this component:
|
|
115
|
+
- Add the import to `src/components/component-map.ts` in the Widgets section
|
|
116
|
+
- Add the entry to `getSampleComponentMap()` under the widgets comment
|
|
117
|
+
- Do not reorder or restructure any existing entries
|
|
118
|
+
|
|
119
|
+
### 4d — Report progress
|
|
120
|
+
After each component: "`<ComponentName>` ✓ — using `<DS card/list primitive>`"
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Step 5 — Verify the build
|
|
125
|
+
|
|
126
|
+
Execute **Step 7** from `.cursor/rules/prompts/add-component.mdrules` exactly as written:
|
|
127
|
+
- Run `npm run build`
|
|
128
|
+
- Fix any TypeScript or build errors before reporting completion
|
|
129
|
+
- Report a summary: list of all files created and all entries added to `component-map.ts`
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: identify-components.prompt
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# identify-components
|
|
7
|
+
|
|
8
|
+
Analyze the attached screenshot and identify which SDK components from this application are visible in the image.
|
|
9
|
+
|
|
10
|
+
**Output only a single line** in this exact format — nothing else:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
components="ComponentA,ComponentB,ComponentC"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This output can be pasted directly into a `/replace-design-system` invocation.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Visual Recognition Guide
|
|
21
|
+
|
|
22
|
+
Use the table below to map what you see in the image to SDK component names.
|
|
23
|
+
|
|
24
|
+
### Structural / layout components
|
|
25
|
+
|
|
26
|
+
| What you see | SDK component name | Category |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| Chevron/arrow step bar at the top of a form (e.g. "Step 1 → Step 2 → Step 3") | `Stages` | infra |
|
|
29
|
+
| Full case shell: step bar + case title + **action menu (⋮ or kebab)** + tabbed content area | `CaseView` | template |
|
|
30
|
+
| Row of action buttons at the bottom (Cancel / Save / Submit) | `ActionButtons` | infra |
|
|
31
|
+
| White/card area wrapping form fields | `DefaultForm` | template |
|
|
32
|
+
| Full-page layout with header + sidebar + content area | `AppShell` | template |
|
|
33
|
+
| Left-side vertical tab navigation | `VerticalTabs` | infra |
|
|
34
|
+
| Top navigation bar with logo + user menu | `NavBar` | infra |
|
|
35
|
+
| Top navigation bar (WSS / self-service variant) | `WssNavBar` | template |
|
|
36
|
+
| Two-column layout (equal or narrow/wide split) | `TwoColumn` / `NarrowWide` / `WideNarrow` | template |
|
|
37
|
+
| Single-column stacked layout | `OneColumn` | template |
|
|
38
|
+
| Tabbed panel inside a form or page | `SubTabs` / `Details` | template |
|
|
39
|
+
|
|
40
|
+
### Field components
|
|
41
|
+
|
|
42
|
+
| What you see | SDK component name | Category |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| Single-line text input box | `TextInput` | field |
|
|
45
|
+
| Multi-line text input / textarea | `TextArea` | field |
|
|
46
|
+
| Dropdown / select menu (chevron on right) | `Dropdown` | field |
|
|
47
|
+
| Phone input with country code prefix (e.g. "+1 ▼") | `Phone` | field |
|
|
48
|
+
| Date picker input (calendar icon) | `Date` | field |
|
|
49
|
+
| Date + time picker input | `DateTime` | field |
|
|
50
|
+
| Time-only picker | `Time` | field |
|
|
51
|
+
| Currency input ($ prefix or formatted number) | `Currency` | field |
|
|
52
|
+
| Percentage input (% suffix) | `Percentage` | field |
|
|
53
|
+
| Decimal / float number input | `Decimal` | field |
|
|
54
|
+
| Integer-only number input | `Integer` | field |
|
|
55
|
+
| Email input (envelope icon or @-hint) | `Email` | field |
|
|
56
|
+
| URL input (link icon or http-hint) | `URL` | field |
|
|
57
|
+
| Checkbox with label | `Checkbox` | field |
|
|
58
|
+
| Radio button group | `RadioButtons` | field |
|
|
59
|
+
| Multi-select / tag-style select with chips | `Multiselect` | field |
|
|
60
|
+
| Type-ahead / autocomplete input with suggestions | `AutoComplete` | field |
|
|
61
|
+
| Rich text editor (toolbar with Bold/Italic/etc.) | `RichText` | field |
|
|
62
|
+
| Read-only comma-separated list of values | `ScalarList` | field |
|
|
63
|
+
| Selectable card / tile (click to select, like a plan card) | `SelectableCard` | field |
|
|
64
|
+
| Map / location picker with pin icon | `Location` | field |
|
|
65
|
+
| Link to another object/record | `ObjectReference` | field |
|
|
66
|
+
| Hyperlink displayed inline | `SemanticLink` | field |
|
|
67
|
+
| User avatar + name displayed inline | `UserReference` | field |
|
|
68
|
+
| Inline alert / warning inside a form | `CancelAlert` | field |
|
|
69
|
+
| Static text block / paragraph inside a form | `TextContent` | field |
|
|
70
|
+
| Grouping box around related fields | `Group` | field |
|
|
71
|
+
|
|
72
|
+
### Widget components
|
|
73
|
+
|
|
74
|
+
| What you see | SDK component name | Category |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| To-do / task list card with assignments | `ToDo` | widget |
|
|
77
|
+
| File attachment area with upload button | `Attachment` | widget |
|
|
78
|
+
| Case history / audit trail table | `CaseHistory` | widget |
|
|
79
|
+
| File list with download actions | `FileUtility` | widget |
|
|
80
|
+
| List of follower avatars + "Follow" button | `Followers` | widget |
|
|
81
|
+
| "+" quick-create button with dropdown menu | `QuickCreate` | widget |
|
|
82
|
+
| Summary card for a single record with action menu | `SummaryItem` | widget |
|
|
83
|
+
| List of SummaryItem cards | `SummaryList` | widget |
|
|
84
|
+
| Announcement / news card | `AppAnnouncement` | widget |
|
|
85
|
+
|
|
86
|
+
### DSE / design system extension components
|
|
87
|
+
|
|
88
|
+
| What you see | SDK component name | Category |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| Coloured banner alert bar (info / warning / error / success) | `AlertBanner` | designSystemExtension |
|
|
91
|
+
| Hero-style banner with title + CTA button | `Banner` | designSystemExtension |
|
|
92
|
+
| Read-only field+value pairs in a case summary | `CaseSummaryFields` | designSystemExtension |
|
|
93
|
+
| Read-only label+value pairs in a details view | `DetailsFields` | designSystemExtension |
|
|
94
|
+
| Collapsible section with header (accordion-style) | `FieldGroup` | designSystemExtension |
|
|
95
|
+
| List of field groups with "Add" link | `FieldGroupList` | designSystemExtension |
|
|
96
|
+
| User operator info popover (name + contact) | `Operator` | designSystemExtension |
|
|
97
|
+
| Comment/pulse card with avatar + timestamp | `Pulse` | designSystemExtension |
|
|
98
|
+
| Rich text editor with theme-aware toolbar | `RichTextEditor` | designSystemExtension |
|
|
99
|
+
| Quick-create shortcut links list (WSS sidebar) | `WssQuickCreate` | designSystemExtension |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Rules
|
|
104
|
+
|
|
105
|
+
1. **Only list components you can actually see rendered in the image.** Do not include components that might be present but are not visible (e.g. a NavBar not shown in the screenshot).
|
|
106
|
+
2. **Do not include `FieldValueList`** — it is an internal rendering helper, not a visible component.
|
|
107
|
+
3. **Structural components that frame a form always count** — if you see a step bar, include `Stages`; if you see action buttons, include `ActionButtons`.
|
|
108
|
+
4. **An avatar + form title alone is NOT `CaseView`** — `CaseView` requires a full case shell with an action/kebab menu and tabbed content. A simple avatar + heading above a form is just part of `DefaultForm`.
|
|
109
|
+
5. **When in doubt between two similar components** (e.g. `NarrowWide` vs `WideNarrow`), pick the one whose column ratio best matches the image proportions, or include both separated by a comma.
|
|
110
|
+
6. **Output only the single `components="..."` line.** No explanation, no list, no markdown — just that line.
|