@pega/sdk 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +287 -1
- package/package.json +1 -1
- package/templates/angular-sdk-reference/package.json +12 -12
- package/templates/angular-sdk-reference/tsconfig.json +1 -1
- package/templates/react-native-sdk-reference/expo-env.d.ts +3 -0
- package/templates/react-sdk-reference/{.github/agents/implementation-expert.agent.md → .ai-common/agents/implementation-expert.md} +23 -26
- package/templates/react-sdk-reference/{.github/copilot-instructions.md → .ai-common/global/ai-agent-instructions.md} +7 -7
- package/templates/react-sdk-reference/{.github/instructions/component-map.instructions.md → .ai-common/instructions/component-map.md} +8 -1
- package/templates/react-sdk-reference/{.github/instructions/dse-component.instructions.md → .ai-common/instructions/dse-component.md} +1 -1
- package/templates/react-sdk-reference/{.github/instructions/field-component.instructions.md → .ai-common/instructions/field-component.md} +2 -1
- package/templates/react-sdk-reference/{.github/instructions/template-component.instructions.md → .ai-common/instructions/template-component.md} +1 -1
- package/templates/react-sdk-reference/{.github/instructions/widget-component.instructions.md → .ai-common/instructions/widget-component.md} +1 -1
- package/templates/react-sdk-reference/{.github/prompts/add-component.prompt.md → .ai-common/prompts/add-component.md} +45 -18
- package/templates/react-sdk-reference/{.cursor/rules → .ai-common}/prompts/component-manifest.json +8 -2
- package/templates/react-sdk-reference/{.github/prompts/generate-all-components.prompt.md → .ai-common/prompts/generate-all-components.md} +195 -78
- package/templates/react-sdk-reference/{.github/prompts/generate-dse-components.prompt.md → .ai-common/prompts/generate-dse-components.md} +28 -17
- package/templates/react-sdk-reference/{.github/prompts/generate-field-components.prompt.md → .ai-common/prompts/generate-field-components.md} +32 -16
- package/templates/react-sdk-reference/{.github/prompts/generate-template-components.prompt.md → .ai-common/prompts/generate-template-components.md} +76 -22
- package/templates/react-sdk-reference/{.github/prompts/generate-widget-components.prompt.md → .ai-common/prompts/generate-widget-components.md} +44 -30
- package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/identify-components.md +4 -0
- package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/AlertBanner.md +50 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Banner.md +44 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/CaseSummaryFields.md +54 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/DetailsFields.md +49 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/FieldGroup.md +44 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/FieldGroupList.md +43 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/FieldValueList.md +46 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Operator.md +67 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/Pulse.md +20 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/RichTextEditor.md +58 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/WssQuickCreate.md +31 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension.md +1 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-components.md +18 -1
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +298 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/CancelAlert.md +132 -3
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +358 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +230 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +221 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +213 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Decimal.md +112 -13
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Dropdown.md +127 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Email.md +68 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Group.md +51 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Integer.md +81 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Location.md +105 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Multiselect.md +70 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/ObjectReference.md +74 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Percentage.md +84 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Phone.md +81 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/RadioButtons.md +93 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/RichText.md +85 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/ScalarList.md +54 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/SelectableCard.md +55 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/SemanticLink.md +64 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/TextArea.md +66 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/TextContent.md +28 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextInput.md +67 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/Time.md +67 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/URL.md +59 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/UserReference.md +90 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-components.md +83 -52
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/AdvancedSearch.md +77 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +273 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/BannerPage.md +39 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/CaseSummary.md +79 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +399 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +282 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/Confirmation.md +89 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DataReference.md +50 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DefaultForm.md +117 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DefaultPage.md +49 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/Details.md +59 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DetailsSubTabs.md +60 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DetailsThreeColumn.md +12 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DetailsTwoColumn.md +12 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DynamicTabs.md +67 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/FieldGroupTemplate.md +119 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/HierarchicalForm.md +45 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/InlineDashboard.md +41 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/InlineDashboardPage.md +56 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/ListPage.md +18 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +419 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/MultiReferenceReadOnly.md +40 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/NarrowWide.md +66 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/OneColumn.md +34 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/PromotedFilters.md +92 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/SelfServiceCaseView.md +56 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SimpleTable.md +59 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SingleReferenceReadOnly.md +52 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/SubTabs.md +47 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/TwoColumn.md +49 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WssNavBar.md +71 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-components.md +1 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/AppAnnouncement.md +38 -1
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Attachment.md +58 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/CaseHistory.md +63 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/FileUtility.md +81 -14
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Followers.md +20 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/QuickCreate.md +48 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/SummaryItem.md +66 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +492 -0
- package/templates/react-sdk-reference/package.minimal.json +29 -0
- package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
- package/templates/react-sdk-reference/src/MashupApp.tsx +8 -19
- package/templates/react-sdk-reference/src/PortalApp.tsx +6 -17
- package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
- package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -75
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -93
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -88
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -152
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +0 -193
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -158
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -140
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -153
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -165
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -138
- package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -137
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -118
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -85
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -232
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +0 -137
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -291
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -113
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -175
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -101
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +0 -188
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +0 -173
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -93
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -129
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -167
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -149
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -231
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +0 -155
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -89
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -86
- package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -321
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -150
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -124
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -137
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -97
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +0 -70
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -142
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -108
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -206
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +0 -118
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -198
- package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
- package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
- package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +0 -74
- package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
- package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
- package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +0 -116
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +0 -120
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +0 -88
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +0 -294
- package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +0 -299
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +0 -95
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +0 -169
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +0 -143
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +0 -153
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +0 -106
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
- package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
- package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +0 -327
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +0 -88
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +0 -93
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +0 -100
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +0 -83
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +0 -83
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +0 -106
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +0 -118
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +0 -109
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +0 -90
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +0 -73
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +0 -85
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +0 -114
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +0 -84
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +0 -276
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +0 -104
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +0 -119
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +0 -172
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
- package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
- package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -193
- package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
- package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
- package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -152
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -148
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -113
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -155
- package/templates/react-sdk-reference/.github/skills/field-components.md +0 -295
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -113
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -211
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -175
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -109
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -101
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -106
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -99
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -134
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -109
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -96
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -145
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -98
- package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +0 -117
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -203
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -70
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -86
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -137
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -104
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +0 -112
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -90
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -80
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -106
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -112
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -116
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -108
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -82
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -142
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -143
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -130
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -142
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -133
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -152
- package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +0 -139
- package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -260
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -84
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -151
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -110
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -103
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -169
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -198
- package/templates/react-sdk-reference/AGENTS.md +0 -246
- /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/run-and-verify.md +0 -0
- /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Generate all (or a subset of) field components using any design system
|
|
2
|
+
ai-description: Generate all (or a subset of) field components using any design system
|
|
4
3
|
---
|
|
5
4
|
|
|
6
5
|
## Step 0 — Resolve inputs
|
|
@@ -11,7 +10,7 @@ Read the user's message carefully. Extract:
|
|
|
11
10
|
- **Output base path** — the folder where field components should be generated (e.g. `src/components/field/`, `app/ui/fields/`)
|
|
12
11
|
- **Component list** — which components to generate (default: all 27 listed below)
|
|
13
12
|
|
|
14
|
-
Both **design system** and **output base path** are required. If either is missing or ambiguous, you MUST stop and ask the user before proceeding. Do not infer any value from the project structure,
|
|
13
|
+
Both **design system** and **output base path** are required. If either is missing or ambiguous, you MUST stop and ask the user before proceeding. Do not infer any value from the project structure, `{{AI_FILE_EXT}}` files, existing folders, or any other source.
|
|
15
14
|
|
|
16
15
|
⛔ **STOP** — If the user's message does not explicitly state BOTH the design system AND the output path, ask for the missing items now. Do not proceed to Step 1 until you have explicit answers from the user for all required inputs.
|
|
17
16
|
|
|
@@ -60,7 +59,7 @@ Once both are known, continue to Step 1.
|
|
|
60
59
|
|
|
61
60
|
## Step 1 — Read `field-components.md` (once, for the entire session)
|
|
62
61
|
|
|
63
|
-
Read the full contents of
|
|
62
|
+
Read the full contents of `{{SKILL_DIR}}/field-components.md`.
|
|
64
63
|
|
|
65
64
|
This gives you:
|
|
66
65
|
|
|
@@ -90,7 +89,29 @@ npm install <design-system-package>
|
|
|
90
89
|
|
|
91
90
|
Also install any peer dependencies documented in the package's README. Report what was installed.
|
|
92
91
|
|
|
93
|
-
###
|
|
92
|
+
### 2a.1 — Install the DS styles package and configure global CSS (MANDATORY)
|
|
93
|
+
|
|
94
|
+
Design systems require their global stylesheet — without it, components render unstyled.
|
|
95
|
+
|
|
96
|
+
#### Known DS style requirements (examples — verify from README for exact paths):
|
|
97
|
+
|
|
98
|
+
| Design System | Styles Package (example) | CSS Import in `src/main.tsx` (example) | Provider Wrapper (example) |
|
|
99
|
+
| ------------- | ------------------------ | ---------------------------------------- | -------------------------- |
|
|
100
|
+
| Carbon | `@carbon/styles` | `import '@carbon/react/css/styles.css';` | `<Theme>` |
|
|
101
|
+
| Ant Design | (included) | `import 'antd/dist/reset.css';` | `<ConfigProvider>` |
|
|
102
|
+
| Radix Themes | `@radix-ui/themes` | `import '@radix-ui/themes/styles.css';` | `<Theme>` |
|
|
103
|
+
| Chakra UI | (included) | (none — runtime) | `<ChakraProvider>` |
|
|
104
|
+
| Shadcn/ui | (Tailwind) | `import './globals.css';` | None |
|
|
105
|
+
| MUI | (included) | (none — CSS-in-JS) | `<ThemeProvider>` |
|
|
106
|
+
|
|
107
|
+
These are **examples** based on common versions. Always verify the exact import path and provider name from the installed package's README (`node_modules/<ds>/README.md`).
|
|
108
|
+
|
|
109
|
+
If in table: install styles package (if separate), add CSS import as **first import** in `src/main.tsx`, add Provider in `src/AppProviders.tsx`.
|
|
110
|
+
If not in table: check README and `find node_modules/<ds> -name "*.css" -path "*/dist/*" | head -5`.
|
|
111
|
+
|
|
112
|
+
Verification: `grep -n "import.*css\|import.*styles" src/main.tsx` must return a result. Do NOT proceed until confirmed.
|
|
113
|
+
|
|
114
|
+
Report what was installed and configured.
|
|
94
115
|
|
|
95
116
|
Run these commands to discover the actual API (do NOT rely on training knowledge):
|
|
96
117
|
|
|
@@ -149,7 +170,7 @@ For each component in the resolved list (in the order listed in Step 0):
|
|
|
149
170
|
|
|
150
171
|
### 4a — Read the component-specific skill file (MANDATORY — do not skip)
|
|
151
172
|
|
|
152
|
-
Read the file
|
|
173
|
+
Read the file `{{SKILL_DIR}}/field-skills/<ComponentName>.md` using your file reading tool. This step is **required** for every component that has a skill file — do not rely solely on the general `field-components.md`.
|
|
153
174
|
|
|
154
175
|
After reading, extract and keep active:
|
|
155
176
|
|
|
@@ -194,19 +215,14 @@ Edit `src/components/component-map.ts`:
|
|
|
194
215
|
<ComponentName>,
|
|
195
216
|
```
|
|
196
217
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
### 4d — Batch checkpoint
|
|
218
|
+
⚠️ **Key name exceptions for fields** — these MUST use explicit key mapping:
|
|
200
219
|
|
|
201
|
-
|
|
220
|
+
- `Date: DateField` (not `DateField,`) — `Date` is a reserved JS global
|
|
221
|
+
- `URL: URLComponent` (not `URLComponent,`) — `URL` is a reserved JS global
|
|
202
222
|
|
|
203
|
-
|
|
204
|
-
npm run build
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
Fix any TypeScript or build errors before continuing to the next component. This prevents error accumulation.
|
|
223
|
+
Do not reorder or restructure any existing entries.
|
|
208
224
|
|
|
209
|
-
###
|
|
225
|
+
### 4d — Report progress
|
|
210
226
|
|
|
211
227
|
After each component: "`<ComponentName>` ✓ — using `<DS component name>`"
|
|
212
228
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Generate all (or a subset of) template components using any design system
|
|
2
|
+
ai-description: Generate all (or a subset of) template components using any design system
|
|
4
3
|
---
|
|
5
4
|
|
|
6
5
|
## Step 0 — Resolve inputs
|
|
@@ -11,7 +10,7 @@ Read the user's message carefully. Extract:
|
|
|
11
10
|
- **Output base path** — the folder where template components should be generated (e.g. `src/components/template/`)
|
|
12
11
|
- **Component list** — which templates to generate (default: all 32 listed below)
|
|
13
12
|
|
|
14
|
-
Both **design system** and **output base path** are required. If either is missing or ambiguous, you MUST stop and ask the user before proceeding. Do not infer any value from the project structure,
|
|
13
|
+
Both **design system** and **output base path** are required. If either is missing or ambiguous, you MUST stop and ask the user before proceeding. Do not infer any value from the project structure, `{{AI_FILE_EXT}}` files, existing folders, or any other source.
|
|
15
14
|
|
|
16
15
|
⛔ **STOP** — If the user's message does not explicitly state BOTH the design system AND the output path, ask for the missing items now. Do not proceed to Step 1 until you have explicit answers from the user for all required inputs.
|
|
17
16
|
|
|
@@ -62,19 +61,21 @@ Once both are known, continue to Step 1.
|
|
|
62
61
|
| TwoColumn | Layout |
|
|
63
62
|
| WideNarrow | Layout |
|
|
64
63
|
| WssNavBar | Navigation |
|
|
64
|
+
| SearchForm | Form |
|
|
65
|
+
| SearchGroups | Form |
|
|
65
66
|
|
|
66
67
|
---
|
|
67
68
|
|
|
68
69
|
## Step 1 — Read `template-components.md` (once, for the entire session)
|
|
69
70
|
|
|
70
|
-
Read the full contents of
|
|
71
|
+
Read the full contents of `{{SKILL_DIR}}/template-components.md`.
|
|
71
72
|
|
|
72
73
|
This gives you:
|
|
73
74
|
|
|
74
75
|
- **Layout template pattern** — DS-agnostic grid skeleton with `// [DS GRID]` placeholder; `templateCol` parsing logic; responsive behavior rules
|
|
75
76
|
- **Design System Adaptation section** — how to map the chosen DS's grid/flex primitive to the computed column ratios
|
|
76
|
-
- **Form template pattern** — PConnect bridge via `
|
|
77
|
-
- **Page template pattern** — region extraction via `getRawMetadata()` and PConnect bridge; no DS involved
|
|
77
|
+
- **Form template pattern** — PConnect bridge via `connectToState` HOC wrapping `PConnectComponent`; `utils/index.ts` with `mapStateToProps`; no DS involved
|
|
78
|
+
- **Page template pattern** — region extraction via `getRawMetadata()` and PConnect bridge; complex PCore API interactions; no DS involved
|
|
78
79
|
- Registration conventions and helper utilities
|
|
79
80
|
|
|
80
81
|
Keep this context active throughout the entire generation session. Do not re-read it per component.
|
|
@@ -99,7 +100,29 @@ npm install <design-system-package>
|
|
|
99
100
|
|
|
100
101
|
Also install any peer dependencies documented in the package's README. Report what was installed.
|
|
101
102
|
|
|
102
|
-
###
|
|
103
|
+
### 2a.1 — Install the DS styles package and configure global CSS (MANDATORY)
|
|
104
|
+
|
|
105
|
+
Design systems require their global stylesheet — without it, components render unstyled.
|
|
106
|
+
|
|
107
|
+
#### Known DS style requirements (examples — verify from README for exact paths):
|
|
108
|
+
|
|
109
|
+
| Design System | Styles Package (example) | CSS Import in `src/main.tsx` (example) | Provider Wrapper (example) |
|
|
110
|
+
| ------------- | ------------------------ | ---------------------------------------- | -------------------------- |
|
|
111
|
+
| Carbon | `@carbon/styles` | `import '@carbon/react/css/styles.css';` | `<Theme>` |
|
|
112
|
+
| Ant Design | (included) | `import 'antd/dist/reset.css';` | `<ConfigProvider>` |
|
|
113
|
+
| Radix Themes | `@radix-ui/themes` | `import '@radix-ui/themes/styles.css';` | `<Theme>` |
|
|
114
|
+
| Chakra UI | (included) | (none — runtime) | `<ChakraProvider>` |
|
|
115
|
+
| Shadcn/ui | (Tailwind) | `import './globals.css';` | None |
|
|
116
|
+
| MUI | (included) | (none — CSS-in-JS) | `<ThemeProvider>` |
|
|
117
|
+
|
|
118
|
+
These are **examples** based on common versions. Always verify the exact import path and provider name from the installed package's README (`node_modules/<ds>/README.md`).
|
|
119
|
+
|
|
120
|
+
If in table: install styles package (if separate), add CSS import as **first import** in `src/main.tsx`, add Provider in `src/AppProviders.tsx`.
|
|
121
|
+
If not in table: check README and `find node_modules/<ds> -name "*.css" -path "*/dist/*" | head -5`.
|
|
122
|
+
|
|
123
|
+
Verification: `grep -n "import.*css\|import.*styles" src/main.tsx` must return a result. Do NOT proceed until confirmed.
|
|
124
|
+
|
|
125
|
+
Report what was installed and configured.
|
|
103
126
|
|
|
104
127
|
> You only need layout-related DS components. Form and page templates do not use the DS.
|
|
105
128
|
|
|
@@ -154,7 +177,7 @@ For each component in the resolved list (in the order listed in Step 0):
|
|
|
154
177
|
|
|
155
178
|
### 4a — Read the component-specific skill file (MANDATORY — do not skip)
|
|
156
179
|
|
|
157
|
-
Read the file
|
|
180
|
+
Read the file `{{SKILL_DIR}}/template-skills/<ComponentName>.md` using your file reading tool. This step is **required** for every component — do not rely solely on the general `template-components.md`.
|
|
158
181
|
|
|
159
182
|
After reading, extract and keep active:
|
|
160
183
|
|
|
@@ -173,8 +196,10 @@ Create the directory `<outputPath>/<ComponentName>/`.
|
|
|
173
196
|
Create `<ComponentName>.tsx` using the structure matching the template category from `template-components.md` (loaded in Step 1):
|
|
174
197
|
|
|
175
198
|
- **Layout**: `PropsWithChildren` + `templateCol` parsing (split on whitespace, strip units, compute ratios) + DS grid/flex from Step 2 rendering children in computed column ratios. On mobile: columns must stack to full width.
|
|
176
|
-
- **Form**:
|
|
177
|
-
- **Page**:
|
|
199
|
+
- **Form**: Use the `connectToState` HOC pattern from the skill file. Each child field MUST be wrapped in `connectToState(mapStateToProps)` for Redux store subscription. Plain `createElement(PConnectComponent, ...)` without `connectToState` will cause fields to NOT render. Also create `utils/index.ts` with `mapStateToProps` and `getKeyForMappedField`.
|
|
200
|
+
- **Page**: The generated component MUST include ALL props, side effects, PCore API calls, useEffect hooks, and state management from the skill file's Component Skeleton. Page templates are complex — they interact with PCore APIs and infrastructure components. NEVER simplify a Page template to a single return statement or a pass-through wrapper.
|
|
201
|
+
|
|
202
|
+
⚠️ **CRITICAL RULE for Form and Page templates:** The component-specific skill file's Component Skeleton is the **minimum implementation**. You must include every `useState`, `useEffect`, `getComponentFromRegistry`, `PCore.*` call, helper function, and utility import shown in that skeleton. If your generated output is significantly shorter than the skeleton, you have over-simplified and MUST add the missing logic.
|
|
178
203
|
|
|
179
204
|
Apply the Behavioral Contract from the component skill file (sub-variants, region handling, slot logic).
|
|
180
205
|
|
|
@@ -186,6 +211,45 @@ export { default } from './<ComponentName>';
|
|
|
186
211
|
|
|
187
212
|
Create any CSS file required by the skill file (e.g., `DefaultForm.css` with grid classes).
|
|
188
213
|
|
|
214
|
+
Create any `utils/` or helper files mandated by the skill file (e.g., `utils/index.ts` for DefaultForm).
|
|
215
|
+
|
|
216
|
+
### 4b.1 — Post-generation verification (MANDATORY for Form and Page templates)
|
|
217
|
+
|
|
218
|
+
After generating each Form or Page template, verify:
|
|
219
|
+
|
|
220
|
+
1. **Form templates:** `connectToState` is imported and used; `mapStateToProps` + `getKeyForMappedField` are in `utils/index.ts`; each child field uses the `<Child key={getKeyForMappedField(kid)} {...kid} />` pattern.
|
|
221
|
+
2. **Page templates:** All props listed in the skill file's Props table are destructured; all `getComponentFromRegistry()` lookups from the skeleton are present; all `useEffect` hooks from the skeleton are present; all PCore API calls (`PCore.getEnvironmentInfo()`, `PCore.getPubSubUtils()`, etc.) from the skeleton are present; infrastructure components (NavBar, VerticalTabs, DeferLoad, etc.) receive ALL required props from the skeleton.
|
|
222
|
+
3. **Both:** The generated file is NOT a single-line return. If the skill file skeleton is 50+ lines, your output should be comparable in length.
|
|
223
|
+
|
|
224
|
+
If any check fails, revise the generated output before proceeding.
|
|
225
|
+
|
|
226
|
+
### 4b.2 — Create sub-variant files (MANDATORY for Layout templates)
|
|
227
|
+
|
|
228
|
+
⛔ **Do NOT skip this step.** Without sub-variants, portal pages and tabs won't render column layouts.
|
|
229
|
+
|
|
230
|
+
After generating **TwoColumn**, **OneColumn**, **NarrowWide**, or **WideNarrow**, you MUST immediately create these additional files in the same directory:
|
|
231
|
+
|
|
232
|
+
| Base template | Sub-variant files to create |
|
|
233
|
+
| ------------- | ------------------------------------------------------------------- |
|
|
234
|
+
| TwoColumn | `TwoColumnPage.tsx`, `TwoColumnTab.tsx` |
|
|
235
|
+
| OneColumn | `OneColumnPage.tsx`, `OneColumnTab.tsx` |
|
|
236
|
+
| NarrowWide | `NarrowWideForm.tsx`, `NarrowWidePage.tsx` |
|
|
237
|
+
| WideNarrow | `WideNarrowDetails.tsx`, `WideNarrowForm.tsx`, `WideNarrowPage.tsx` |
|
|
238
|
+
|
|
239
|
+
Each sub-variant is a one-line passthrough that delegates to the base component via the registry:
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
243
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
244
|
+
|
|
245
|
+
export default function TwoColumnPage(props: PConnProps & Record<string, any>) {
|
|
246
|
+
const TwoColumn = getComponentFromRegistry('TwoColumn');
|
|
247
|
+
return <TwoColumn {...props} />;
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Replace `TwoColumnPage`/`TwoColumn` with the appropriate names for each sub-variant.
|
|
252
|
+
|
|
189
253
|
### 4c — Register the component
|
|
190
254
|
|
|
191
255
|
Edit `src/components/component-map.ts`:
|
|
@@ -198,21 +262,11 @@ Edit `src/components/component-map.ts`:
|
|
|
198
262
|
```typescript
|
|
199
263
|
<ComponentName>,
|
|
200
264
|
```
|
|
201
|
-
3.
|
|
265
|
+
3. **Also import and register ALL sub-variant files** created in Step 4b.2. Each gets its own import and map entry.
|
|
202
266
|
|
|
203
267
|
Do not reorder or restructure any existing entries.
|
|
204
268
|
|
|
205
|
-
### 4d —
|
|
206
|
-
|
|
207
|
-
After every **5 components**, run:
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
npm run build
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
Fix any TypeScript or build errors before continuing to the next component. This prevents error accumulation.
|
|
214
|
-
|
|
215
|
-
### 4e — Report progress
|
|
269
|
+
### 4d — Report progress
|
|
216
270
|
|
|
217
271
|
After each component: "`<ComponentName>` ✓ — `<Layout | Form | Page>` template`<, using <DS component name> for grid>` if layout"
|
|
218
272
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Generate all (or a subset of) widget components using any design system
|
|
2
|
+
ai-description: Generate all (or a subset of) widget components using any design system
|
|
4
3
|
---
|
|
5
4
|
|
|
6
5
|
## Step 0 — Resolve inputs
|
|
@@ -11,7 +10,7 @@ Read the user's message carefully. Extract:
|
|
|
11
10
|
- **Output base path** — the folder where widget components should be generated (e.g. `src/components/widget/`)
|
|
12
11
|
- **Component list** — which widgets to generate (default: all 9 listed below)
|
|
13
12
|
|
|
14
|
-
Both **design system** and **output base path** are required. If either is missing or ambiguous, you MUST stop and ask the user before proceeding. Do not infer any value from the project structure,
|
|
13
|
+
Both **design system** and **output base path** are required. If either is missing or ambiguous, you MUST stop and ask the user before proceeding. Do not infer any value from the project structure, `{{AI_FILE_EXT}}` files, existing folders, or any other source.
|
|
15
14
|
|
|
16
15
|
⛔ **STOP** — If the user's message does not explicitly state BOTH the design system AND the output path, ask for the missing items now. Do not proceed to Step 1 until you have explicit answers from the user for all required inputs.
|
|
17
16
|
|
|
@@ -24,25 +23,26 @@ If the user specified a subset (e.g., "just ToDo and Attachment"), restrict the
|
|
|
24
23
|
|
|
25
24
|
Once both are known, continue to Step 1.
|
|
26
25
|
|
|
27
|
-
### Full component list (default —
|
|
28
|
-
|
|
29
|
-
| Component
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
26
|
+
### Full component list (default — 10 widgets)
|
|
27
|
+
|
|
28
|
+
| Component | Description |
|
|
29
|
+
| ------------------------ | ------------------------------- |
|
|
30
|
+
| ActionButtonsForFileUtil | Action buttons for file utility |
|
|
31
|
+
| AppAnnouncement | System-wide announcements |
|
|
32
|
+
| Attachment | File upload/download |
|
|
33
|
+
| CaseHistory | Case audit trail |
|
|
34
|
+
| FileUtility | File management utility |
|
|
35
|
+
| Followers | Case followers list |
|
|
36
|
+
| QuickCreate | Quick case creation buttons |
|
|
37
|
+
| SummaryItem | Single summary card |
|
|
38
|
+
| SummaryList | List of summary cards |
|
|
39
|
+
| ToDo | Assignment worklist |
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
43
|
## Step 1 — Read `widget-components.md` (once, for the entire session)
|
|
44
44
|
|
|
45
|
-
Read the full contents of
|
|
45
|
+
Read the full contents of `{{SKILL_DIR}}/widget-components.md`.
|
|
46
46
|
|
|
47
47
|
This gives you:
|
|
48
48
|
|
|
@@ -75,7 +75,29 @@ npm install <design-system-package>
|
|
|
75
75
|
|
|
76
76
|
Also install any peer dependencies documented in the package's README. Report what was installed.
|
|
77
77
|
|
|
78
|
-
###
|
|
78
|
+
### 2a.1 — Install the DS styles package and configure global CSS (MANDATORY)
|
|
79
|
+
|
|
80
|
+
Design systems require their global stylesheet — without it, components render unstyled.
|
|
81
|
+
|
|
82
|
+
#### Known DS style requirements (examples — verify from README for exact paths):
|
|
83
|
+
|
|
84
|
+
| Design System | Styles Package (example) | CSS Import in `src/main.tsx` (example) | Provider Wrapper (example) |
|
|
85
|
+
| ------------- | ------------------------ | ---------------------------------------- | -------------------------- |
|
|
86
|
+
| Carbon | `@carbon/styles` | `import '@carbon/react/css/styles.css';` | `<Theme>` |
|
|
87
|
+
| Ant Design | (included) | `import 'antd/dist/reset.css';` | `<ConfigProvider>` |
|
|
88
|
+
| Radix Themes | `@radix-ui/themes` | `import '@radix-ui/themes/styles.css';` | `<Theme>` |
|
|
89
|
+
| Chakra UI | (included) | (none — runtime) | `<ChakraProvider>` |
|
|
90
|
+
| Shadcn/ui | (Tailwind) | `import './globals.css';` | None |
|
|
91
|
+
| MUI | (included) | (none — CSS-in-JS) | `<ThemeProvider>` |
|
|
92
|
+
|
|
93
|
+
These are **examples** based on common versions. Always verify the exact import path and provider name from the installed package's README (`node_modules/<ds>/README.md`).
|
|
94
|
+
|
|
95
|
+
If in table: install styles package (if separate), add CSS import as **first import** in `src/main.tsx`, add Provider in `src/AppProviders.tsx`.
|
|
96
|
+
If not in table: check README and `find node_modules/<ds> -name "*.css" -path "*/dist/*" | head -5`.
|
|
97
|
+
|
|
98
|
+
Verification: `grep -n "import.*css\|import.*styles" src/main.tsx` must return a result. Do NOT proceed until confirmed.
|
|
99
|
+
|
|
100
|
+
Report what was installed and configured.
|
|
79
101
|
|
|
80
102
|
Run these commands to discover the actual API (do NOT rely on training knowledge):
|
|
81
103
|
|
|
@@ -132,7 +154,7 @@ For each component in the resolved list (in the order listed in Step 0):
|
|
|
132
154
|
|
|
133
155
|
### 4a — Read the component-specific skill file (MANDATORY — do not skip)
|
|
134
156
|
|
|
135
|
-
Read the file
|
|
157
|
+
Read the file `{{SKILL_DIR}}/widget-skills/<ComponentName>.md` using your file reading tool. This step is **required** for every component that has a skill file — do not rely solely on the general `widget-components.md`.
|
|
136
158
|
|
|
137
159
|
After reading, extract and keep active:
|
|
138
160
|
|
|
@@ -179,19 +201,11 @@ Edit `src/components/component-map.ts`:
|
|
|
179
201
|
<ComponentName>,
|
|
180
202
|
```
|
|
181
203
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
### 4d — Batch checkpoint
|
|
185
|
-
|
|
186
|
-
After every **5 components**, run:
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
npm run build
|
|
190
|
-
```
|
|
204
|
+
⚠️ **Key name exception:** `ToDo` MUST be registered as `Todo: ToDo` (not `ToDo,`). The Pega engine sends `Todo` (capital T, lowercase 'odo'). Using shorthand `ToDo,` creates key `ToDo` which won't match.
|
|
191
205
|
|
|
192
|
-
|
|
206
|
+
Do not reorder or restructure any existing entries.
|
|
193
207
|
|
|
194
|
-
###
|
|
208
|
+
### 4d — Report progress
|
|
195
209
|
|
|
196
210
|
After each component: "`<ComponentName>` ✓ — using `<DS card/list primitive>`"
|
|
197
211
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
ai-description: Analyze an attached screenshot and identify which SDK components are visible — outputs a components list ready to pass to replace-design-system
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
# identify-components
|
|
2
6
|
|
|
3
7
|
Analyze the attached screenshot and identify which SDK components from this application are visible in the image.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
alwaysApply: false
|
|
2
|
+
ai-description: Replace design system components — full app, by scope/folder, by named shorthand, or by explicit component list
|
|
4
3
|
---
|
|
5
4
|
|
|
6
5
|
# replace-design-system
|
|
@@ -13,7 +12,7 @@ Replace the current design system in this application with **{{designSystem}}**.
|
|
|
13
12
|
|
|
14
13
|
## Step 0: Determine target component list
|
|
15
14
|
|
|
16
|
-
Read
|
|
15
|
+
Read `{{PROMPT_DIR}}/component-manifest.json` first.
|
|
17
16
|
|
|
18
17
|
Collect components from **every applicable source** below, then merge and deduplicate into a single final list.
|
|
19
18
|
|
|
@@ -25,6 +25,56 @@ Renders a visually-styled alert box tied to a Pega `variant` value (urgent, warn
|
|
|
25
25
|
| `messages` | `Array<string \| { label?: string; description?: string }>` | Yes | One or more messages (string or structured object) |
|
|
26
26
|
| `onDismiss` | `function` (optional) | No | Dismiss/close handler; if provided, show a close button |
|
|
27
27
|
|
|
28
|
+
## Component Skeleton
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import './AlertBanner.css';
|
|
32
|
+
|
|
33
|
+
interface AlertBannerProps {
|
|
34
|
+
id: string;
|
|
35
|
+
variant: string;
|
|
36
|
+
messages: Array<string | { label?: string; description?: string }>;
|
|
37
|
+
onDismiss?: () => void;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const VARIANT_MAP: Record<string, { severity: string; label: string }> = {
|
|
41
|
+
urgent: { severity: 'error', label: 'Error' },
|
|
42
|
+
warning: { severity: 'warning', label: 'Warning' },
|
|
43
|
+
success: { severity: 'success', label: 'Success' },
|
|
44
|
+
info: { severity: 'info', label: 'Info' },
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
function renderMessage(message: string | { label?: string; description?: string }) {
|
|
48
|
+
if (typeof message === 'object' && message !== null) {
|
|
49
|
+
const { label = '', description = '' } = message;
|
|
50
|
+
return label ? <><strong>{label}</strong> {description}</> : <>{description}</>;
|
|
51
|
+
}
|
|
52
|
+
const colonIndex = message.indexOf(':');
|
|
53
|
+
if (colonIndex === -1) return message;
|
|
54
|
+
return <><strong>{message.slice(0, colonIndex + 1)}</strong>{message.slice(colonIndex + 1)}</>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export default function AlertBanner({ id, variant, messages, onDismiss }: AlertBannerProps) {
|
|
58
|
+
const { severity, label } = VARIANT_MAP[variant] ?? VARIANT_MAP.info;
|
|
59
|
+
const isMultiple = messages.length > 1;
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
<div id={id}>
|
|
63
|
+
<AlertWidget variant="outlined" severity={severity} onClose={onDismiss}>
|
|
64
|
+
{isMultiple && (
|
|
65
|
+
<AlertTitle>
|
|
66
|
+
{label} <CountBadge variant={variant}>{messages.length}</CountBadge>
|
|
67
|
+
</AlertTitle>
|
|
68
|
+
)}
|
|
69
|
+
{isMultiple
|
|
70
|
+
? <ul className="alert-banner-list">{messages.map((m, i) => <li key={i}>{renderMessage(m)}</li>)}</ul>
|
|
71
|
+
: renderMessage(messages[0])}
|
|
72
|
+
</AlertWidget>
|
|
73
|
+
</div>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
28
78
|
## Behavioral Contract
|
|
29
79
|
|
|
30
80
|
1. **Variant mapping:** Map the Pega `variant` string to a UI severity level and display label:
|
|
@@ -34,6 +34,50 @@ Renders a visually rich banner composed of two parts:
|
|
|
34
34
|
| `banner.tintImage` | `any` | No | Unused internally |
|
|
35
35
|
| `variant` | `string` | Yes | Column layout: `'two-column'`, `'narrow-wide'`, or `'wide-narrow'` |
|
|
36
36
|
|
|
37
|
+
## Component Skeleton
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import './Banner.css';
|
|
41
|
+
|
|
42
|
+
interface BannerProps {
|
|
43
|
+
a: any; b: any;
|
|
44
|
+
banner?: { title?: string; message?: string; backgroundImage?: string; variant?: any; backgroundColor?: any; tintImage?: any };
|
|
45
|
+
variant: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export default function Banner(props: BannerProps) {
|
|
49
|
+
const { a, b, banner = {}, variant } = props;
|
|
50
|
+
const { title, message, backgroundImage } = banner;
|
|
51
|
+
const variantMap = {
|
|
52
|
+
'two-column': [6, 6],
|
|
53
|
+
'narrow-wide': [4, 8],
|
|
54
|
+
'wide-narrow': [8, 4],
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<div style={{ marginBottom: '2rem' }}>
|
|
59
|
+
{/* Hero section */}
|
|
60
|
+
<div className="background-image-style" style={{ backgroundImage: `url(${backgroundImage})` }}>
|
|
61
|
+
<div className="background-style content">
|
|
62
|
+
<h1 className="title">{title}</h1>
|
|
63
|
+
<p className="message">{message}</p>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
{/* Content columns */}
|
|
67
|
+
<GridContainer spacing={1}>
|
|
68
|
+
<GridItem xs={variantMap[variant][0]}
|
|
69
|
+
style={{ padding: '1rem', backgroundColor: 'var(--app-form-bg-color)', borderRadius: '16px', height: 'fit-content' }}>
|
|
70
|
+
{a}
|
|
71
|
+
</GridItem>
|
|
72
|
+
<GridItem xs={variantMap[variant][1]} style={{ padding: '0 1rem' }}>
|
|
73
|
+
{b}
|
|
74
|
+
</GridItem>
|
|
75
|
+
</GridContainer>
|
|
76
|
+
</div>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
37
81
|
## Behavioral Contract
|
|
38
82
|
|
|
39
83
|
1. **Hero section:** Render a `<div>` with class `background-image-style` and the inline style `backgroundImage: url(${backgroundImage})`.
|
|
@@ -24,6 +24,60 @@ Renders a responsive 2-column read-only grid of field values for a case summary
|
|
|
24
24
|
| `status` | `string` | No | The case status value, injected at position 1 if `showStatus` is true |
|
|
25
25
|
| `showStatus` | `boolean` | No | If `true`, splices a status field entry at position 1 in the fields array |
|
|
26
26
|
|
|
27
|
+
## Component Skeleton
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { useState, useEffect } from 'react';
|
|
31
|
+
import isDeepEqual from 'fast-deep-equal/react';
|
|
32
|
+
import { getDateFormatInfo } from '../../helpers/date-format-utils';
|
|
33
|
+
import { getCurrencyOptions } from '../../field/Currency/currency-utils';
|
|
34
|
+
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
35
|
+
import { format } from '../../helpers/formatters';
|
|
36
|
+
import './CaseSummaryFields.css';
|
|
37
|
+
|
|
38
|
+
interface CaseSummaryFieldsProps {
|
|
39
|
+
status?: string;
|
|
40
|
+
showStatus?: boolean;
|
|
41
|
+
theFields: any[];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
|
|
45
|
+
const Operator = getComponentFromRegistry('Operator');
|
|
46
|
+
const { status, showStatus, theFields } = props;
|
|
47
|
+
const [theFieldsToRender, setFieldsToRender] = useState([]);
|
|
48
|
+
const [theFieldsAsGridItems, setFieldsAsGridItems] = useState<any[]>([]);
|
|
49
|
+
|
|
50
|
+
// 1. getFieldValue(field) — type-based rendering switch
|
|
51
|
+
// See Behavioral Contract #4 for the full type switch
|
|
52
|
+
|
|
53
|
+
// 2. useEffect: recompute grid items when theFieldsToRender changes
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
const items = theFieldsToRender?.map(field => {
|
|
56
|
+
if (field.config.visibility === undefined || field.config.visibility === true)
|
|
57
|
+
return <GridItem xs={6} key={field.config.label}>{getFieldValue(field)}</GridItem>;
|
|
58
|
+
return null;
|
|
59
|
+
});
|
|
60
|
+
setFieldsAsGridItems(items);
|
|
61
|
+
}, [theFieldsToRender]);
|
|
62
|
+
|
|
63
|
+
// 3. Status injection (mutates theFields)
|
|
64
|
+
const theFieldsModifiable = theFields;
|
|
65
|
+
if (showStatus && theFields?.[1]?.type !== 'status') {
|
|
66
|
+
const oStatus = { type: 'status', config: { value: status, label: 'Status' } };
|
|
67
|
+
if (theFieldsModifiable.length < 2) theFieldsModifiable.push(oStatus);
|
|
68
|
+
else theFieldsModifiable.splice(1, 0, oStatus);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// 4. Deep equality check before state update (prevents infinite re-render)
|
|
72
|
+
if (!isDeepEqual(theFieldsToRender, theFieldsModifiable)) {
|
|
73
|
+
setFieldsToRender(theFieldsModifiable);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// 5. Render: 2-column grid
|
|
77
|
+
return <GridContainer className="psdk-case-summary-fields">{theFieldsAsGridItems}</GridContainer>;
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
27
81
|
### FieldConfig shape (within each item in `theFields`)
|
|
28
82
|
|
|
29
83
|
| Property | Type | Description |
|
|
@@ -28,6 +28,55 @@ Supports three item layouts:
|
|
|
28
28
|
| -------- | ------- | -------- | ----------------------------------------------------------------------------- |
|
|
29
29
|
| `fields` | `any[]` | Yes | Array of PConnect-aware field objects. Each must have `.getPConnect()` method |
|
|
30
30
|
|
|
31
|
+
## Component Skeleton
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import { createElement, isValidElement } from 'react';
|
|
35
|
+
import { PConnectComponent } from '@pega/sdk-react';
|
|
36
|
+
import { format } from '../../helpers/formatters';
|
|
37
|
+
|
|
38
|
+
interface DetailsFieldsProps { fields: any[]; }
|
|
39
|
+
|
|
40
|
+
export default function DetailsFields(props: DetailsFieldsProps) {
|
|
41
|
+
const { fields = [] } = props;
|
|
42
|
+
const fieldComponents: any[] = [];
|
|
43
|
+
|
|
44
|
+
// 1. Build field components array
|
|
45
|
+
fields?.forEach((field, index) => {
|
|
46
|
+
const thePConn = field.getPConnect();
|
|
47
|
+
const theCompType = thePConn.getComponentName().toLowerCase();
|
|
48
|
+
const { label } = thePConn.getConfigProps();
|
|
49
|
+
const configObj = thePConn.getReferencedView();
|
|
50
|
+
configObj.config.readOnly = true;
|
|
51
|
+
configObj.config.displayMode = 'DISPLAY_ONLY';
|
|
52
|
+
if (theCompType === 'reference') configObj.config.label = thePConn.getInheritedProps()?.label;
|
|
53
|
+
fieldComponents.push({
|
|
54
|
+
type: theCompType, label,
|
|
55
|
+
value: createElement(PConnectComponent, thePConn.getReferencedViewPConnect()),
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// 2. Render grid items per field
|
|
60
|
+
return (
|
|
61
|
+
<>
|
|
62
|
+
{fieldComponents.map((field, index) => {
|
|
63
|
+
if (field.type === 'reference') return field.value;
|
|
64
|
+
if (isValidElement(field.value)) {
|
|
65
|
+
return <GridRow key={index}><GridItem xs={12}>{field.value}</GridItem></GridRow>;
|
|
66
|
+
}
|
|
67
|
+
const formattedValue = field.type === 'date' ? format(field.value, 'date') : field.value;
|
|
68
|
+
return (
|
|
69
|
+
<GridRow key={index} style={{ padding: '4px 0' }}>
|
|
70
|
+
<GridItem xs={6}><Label>{field.label}</Label></GridItem>
|
|
71
|
+
<GridItem xs={6}><Value>{formattedValue || '---'}</Value></GridItem>
|
|
72
|
+
</GridRow>
|
|
73
|
+
);
|
|
74
|
+
})}
|
|
75
|
+
</>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
31
80
|
## Behavioral Contract
|
|
32
81
|
|
|
33
82
|
### 1. Field Iteration and PConnect Setup
|