@pega/sdk 0.0.4 → 0.0.6
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/README.md +10 -3
- package/dist/index.js +977 -92
- 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/.claude/settings.json +5 -0
- package/templates/react-native-sdk-reference/.prettierignore +17 -0
- package/templates/react-native-sdk-reference/.vscode/extensions.json +1 -0
- package/templates/react-native-sdk-reference/.vscode/settings.json +7 -0
- package/templates/react-native-sdk-reference/AGENTS.md +3 -0
- package/templates/react-native-sdk-reference/CLAUDE.md +1 -0
- package/templates/react-native-sdk-reference/README.md +56 -0
- package/templates/react-native-sdk-reference/app.json +40 -5
- package/templates/react-native-sdk-reference/assets/expo.icon/Assets/expo-symbol 2.svg +3 -0
- package/templates/react-native-sdk-reference/assets/expo.icon/Assets/grid.png +0 -0
- package/templates/react-native-sdk-reference/assets/expo.icon/icon.json +35 -0
- package/templates/react-native-sdk-reference/assets/icons/bell.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/clock.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/cross.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/donut.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/gear.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/globe.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/internet.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/music.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/right-arrow.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/speed.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/MediaCo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/adaptive-icon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/android-icon-background.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/android-icon-foreground.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/android-icon-monochrome.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/expo-badge-white.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/expo-badge.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/expo-logo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/favicon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/icon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/logo-glow.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/partial-react-logo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/react-logo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/react-logo@2x.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/react-logo@3x.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/splash-icon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/tutorial-web.png +0 -0
- package/templates/react-native-sdk-reference/eslint.config.mjs +68 -0
- package/templates/react-native-sdk-reference/package.json +59 -14
- package/templates/react-native-sdk-reference/pega-constellationjs-0.26.3.tgz +0 -0
- package/templates/react-native-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-native-sdk-reference/pega-sdk-types-0.1.0.tgz +0 -0
- package/templates/react-native-sdk-reference/sdk-config.json +31 -9
- package/templates/react-native-sdk-reference/src/app/_layout.tsx +38 -0
- package/templates/react-native-sdk-reference/src/app/home/_layout.tsx +39 -0
- package/templates/react-native-sdk-reference/src/app/home/contact.tsx +11 -0
- package/templates/react-native-sdk-reference/src/app/home/index.tsx +36 -0
- package/templates/react-native-sdk-reference/src/app/home/shop.tsx +11 -0
- package/templates/react-native-sdk-reference/src/app/home/your-services.tsx +11 -0
- package/templates/react-native-sdk-reference/src/app/index.tsx +72 -0
- package/templates/react-native-sdk-reference/src/app/workarea.tsx +135 -0
- package/templates/react-native-sdk-reference/src/bridge/Context/StoreContext.ts +4 -0
- package/templates/react-native-sdk-reference/src/bridge/RootComponent.tsx +12 -0
- package/templates/react-native-sdk-reference/src/bridge/react_pconnect.jsx +334 -0
- package/templates/react-native-sdk-reference/src/components/common/DisplayField.tsx +29 -0
- package/templates/react-native-sdk-reference/src/components/common/FormFieldWrapper.tsx +5 -0
- package/templates/react-native-sdk-reference/src/components/common/HelperText.tsx +11 -0
- package/templates/react-native-sdk-reference/src/components/common/LabelText.tsx +22 -0
- package/templates/react-native-sdk-reference/src/components/common/inputTheme.ts +17 -0
- package/templates/react-native-sdk-reference/src/components/design-system/AutoComplete.tsx +126 -0
- package/templates/react-native-sdk-reference/src/components/design-system/FieldGroup.tsx +72 -0
- package/templates/react-native-sdk-reference/src/components/design-system/Radio.tsx +61 -0
- package/templates/react-native-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +196 -0
- package/templates/react-native-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +89 -0
- package/templates/react-native-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Currency/Currency.tsx +84 -0
- package/templates/react-native-sdk-reference/src/components/field/Currency/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Date/Date.tsx +94 -0
- package/templates/react-native-sdk-reference/src/components/field/Date/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +211 -0
- package/templates/react-native-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Email/Email.tsx +81 -0
- package/templates/react-native-sdk-reference/src/components/field/Email/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Group/Group.tsx +47 -0
- package/templates/react-native-sdk-reference/src/components/field/Group/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Integer/Integer.tsx +84 -0
- package/templates/react-native-sdk-reference/src/components/field/Integer/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Phone/Phone.tsx +85 -0
- package/templates/react-native-sdk-reference/src/components/field/Phone/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +118 -0
- package/templates/react-native-sdk-reference/src/components/field/RadioButtons/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/field/TextArea/TextArea.tsx +86 -0
- package/templates/react-native-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/TextInput/TextInput.tsx +84 -0
- package/templates/react-native-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/URL/URL.tsx +86 -0
- package/templates/react-native-sdk-reference/src/components/field/URL/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/helpers/data_page.ts +20 -0
- package/templates/react-native-sdk-reference/src/components/helpers/event-utils.ts +20 -0
- package/templates/react-native-sdk-reference/src/components/helpers/instructions-utils.ts +57 -0
- package/templates/react-native-sdk-reference/src/components/helpers/state-utils.tsx +46 -0
- package/templates/react-native-sdk-reference/src/components/helpers/template-utils.ts +75 -0
- package/templates/react-native-sdk-reference/src/components/helpers/utils.ts +339 -0
- package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/ActionButtons.tsx +63 -0
- package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Assignment/Assignment.tsx +348 -0
- package/templates/react-native-sdk-reference/src/components/infra/Assignment/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/AssignmentCard.tsx +56 -0
- package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/FlowContainer.tsx +57 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/helpers.ts +137 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/RootContainer.tsx +52 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/helper.ts +128 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/index.tsx +59 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/ViewContainer.tsx +31 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/helper.ts +39 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/helper.ts +9 -0
- package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/ErrorBoundary.tsx +53 -0
- package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/MultiStep/MultiStep.tsx +24 -0
- package/templates/react-native-sdk-reference/src/components/infra/MultiStep/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Reference/Reference.tsx +68 -0
- package/templates/react-native-sdk-reference/src/components/infra/Reference/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Reference/utils.ts +16 -0
- package/templates/react-native-sdk-reference/src/components/infra/Region/Region.tsx +10 -0
- package/templates/react-native-sdk-reference/src/components/infra/Region/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/View/View.tsx +49 -0
- package/templates/react-native-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +38 -0
- package/templates/react-native-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/template/DefaultForm/utils/index.ts +28 -0
- package/templates/react-native-sdk-reference/src/components/template/Details/Details.tsx +82 -0
- package/templates/react-native-sdk-reference/src/components/template/Details/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/template/OneColumn/OneColumn.tsx +29 -0
- package/templates/react-native-sdk-reference/src/components/template/OneColumn/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/context/LoaderContext.tsx +42 -0
- package/templates/react-native-sdk-reference/src/mediaco/AdvBanner.tsx +62 -0
- package/templates/react-native-sdk-reference/src/mediaco/Header.tsx +60 -0
- package/templates/react-native-sdk-reference/src/mediaco/HomeScreen.tsx +78 -0
- package/templates/react-native-sdk-reference/src/mediaco/QuickActions.tsx +68 -0
- package/templates/react-native-sdk-reference/src/mediaco/ResolutionScreen.tsx +48 -0
- package/templates/react-native-sdk-reference/src/mediaco/SafeArea.tsx +11 -0
- package/templates/react-native-sdk-reference/src/mediaco/TabBar.tsx +102 -0
- package/templates/react-native-sdk-reference/src/mediaco/YourServices.tsx +90 -0
- package/templates/react-native-sdk-reference/src/sdk-pega-component-map.ts +64 -0
- package/templates/react-native-sdk-reference/src/types/PConnProps.d.ts +41 -0
- package/templates/react-native-sdk-reference/src/utils/auth.ts +62 -0
- package/templates/react-native-sdk-reference/src/utils/init-pcore.ts +37 -0
- package/templates/react-native-sdk-reference/src/utils/pcore-polyfills.ts +66 -0
- package/templates/react-native-sdk-reference/tsconfig.json +9 -8
- package/templates/react-sdk-reference/.ai-common/agents/embedded-flow-expert.md +171 -0
- package/templates/react-sdk-reference/{.github/agents/implementation-expert.agent.md → .ai-common/agents/implementation-expert.md} +44 -48
- package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions-embedded.md +119 -0
- package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions.md +192 -0
- package/templates/react-sdk-reference/.ai-common/instructions/component-map.md +35 -0
- package/templates/react-sdk-reference/.ai-common/instructions/dse-component.md +47 -0
- package/templates/react-sdk-reference/.ai-common/instructions/embedded-component.md +134 -0
- package/templates/react-sdk-reference/.ai-common/instructions/field-component.md +50 -0
- package/templates/react-sdk-reference/.ai-common/instructions/template-component.md +43 -0
- package/templates/react-sdk-reference/.ai-common/instructions/widget-component.md +45 -0
- package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +193 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/component-manifest.json +106 -2
- package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +155 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +358 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +165 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +315 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +190 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +227 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +172 -0
- 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 +61 -25
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +176 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +180 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/DetailsFields.md +180 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroup.md +153 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroupList.md +136 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldValueList.md +140 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Operator.md +85 -41
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Pulse.md +97 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +226 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/WssQuickCreate.md +35 -20
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +169 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +130 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +311 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +156 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +476 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-components.md +190 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +157 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +178 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +189 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +136 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +126 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +115 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +119 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +136 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +99 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Group.md +88 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +102 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +142 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Multiselect.md +42 -53
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/ObjectReference.md +36 -60
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +113 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +100 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +153 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/RichText.md +117 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +95 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +155 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/SemanticLink.md +35 -57
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +109 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextContent.md +27 -52
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +112 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +102 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +96 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/UserReference.md +41 -78
- package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +165 -0
- package/templates/react-sdk-reference/.ai-common/skills/infra-skills/ActionButtons.md +122 -0
- package/templates/react-sdk-reference/.ai-common/skills/infra-skills/MultiStep.md +178 -0
- package/templates/react-sdk-reference/.ai-common/skills/infra-skills/Stages.md +140 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-components.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +126 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +160 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/BannerPage.md +90 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +129 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +196 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +157 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +149 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DataReference.md +46 -31
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +141 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DefaultPage.md +40 -34
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/Details.md +96 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsSubTabs.md +103 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsThreeColumn.md +85 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsTwoColumn.md +77 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DynamicTabs.md +103 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +130 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/HierarchicalForm.md +200 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboard.md +110 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md +105 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/ListPage.md +21 -16
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +234 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/MultiReferenceReadOnly.md +18 -23
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +161 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/OneColumn.md +114 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +132 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +173 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/SimpleTable.md +44 -24
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +103 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SubTabs.md +89 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/TwoColumn.md +133 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +36 -43
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/WssNavBar.md +26 -45
- package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +124 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +94 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +163 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/CaseHistory.md +90 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/FileUtility.md +68 -62
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Followers.md +24 -19
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/QuickCreate.md +27 -44
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/SummaryItem.md +35 -61
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +261 -0
- package/templates/react-sdk-reference/package.json +1 -1
- package/templates/react-sdk-reference/package.minimal.json +29 -0
- package/templates/react-sdk-reference/pega-auth-0.2.44.tgz +0 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -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/src/components/helpers/formatters/index.ts +13 -3
- package/templates/react-native-sdk-reference/.github/AGENTS.md +0 -23
- package/templates/react-native-sdk-reference/.github/copilot-instructions.md +0 -40
- package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +0 -48
- package/templates/react-native-sdk-reference/App.tsx +0 -49
- 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/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/Banner.md +0 -152
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +0 -148
- 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/FieldGroupList.md +0 -113
- 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.md +0 -291
- package/templates/react-sdk-reference/.claude/skills/field-components.md +0 -295
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -113
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +0 -211
- 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/Decimal.md +0 -99
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +0 -96
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +0 -145
- 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/TextArea.md +0 -98
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +0 -117
- 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/BannerPage.md +0 -86
- 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/DefaultForm.md +0 -104
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +0 -112
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +0 -90
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -97
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +0 -112
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +0 -116
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +0 -108
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +0 -82
- 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/NarrowWide.md +0 -143
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +0 -130
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +0 -142
- 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/template-skills/TwoColumn.md +0 -133
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +0 -139
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +0 -260
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +0 -84
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +0 -151
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +0 -110
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -206
- 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/component-manifest.json +0 -193
- 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/copilot-instructions.md +0 -243
- package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +0 -40
- package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +0 -77
- package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +0 -77
- package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +0 -95
- package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +0 -90
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +0 -192
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -193
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +0 -411
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +0 -205
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +0 -223
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +0 -229
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +0 -208
- 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/FieldGroup.md +0 -134
- 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/FieldValueList.md +0 -118
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -155
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +0 -85
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +0 -232
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +0 -137
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +0 -291
- 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/Integer.md +0 -88
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -145
- package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +0 -188
- package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +0 -173
- package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +0 -93
- package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +0 -129
- package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +0 -167
- package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +0 -149
- package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +0 -134
- package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +0 -231
- package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +0 -155
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -98
- package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +0 -107
- package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +0 -89
- package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +0 -86
- 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-components.md +0 -321
- package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +0 -150
- 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/CaseSummary.md +0 -106
- 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/Confirmation.md +0 -109
- 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/Details.md +0 -90
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +0 -97
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -80
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.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/ListPage.md +0 -70
- 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/OneColumn.md +0 -114
- 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/SimpleTable.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +0 -108
- package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +0 -82
- 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/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/QuickCreate.md +0 -118
- 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/pega-auth-0.2.42.tgz +0 -0
- /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/run-and-verify.md +0 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Pega SDK — Embedded Flow
|
|
2
|
+
|
|
3
|
+
You are assisting a developer who is embedding a Pega case flow into their existing application. The Pega SDK renders workflow forms (case flows) inside the customer's app using components that match the customer's design system.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Context
|
|
8
|
+
|
|
9
|
+
This is the customer's own application — **not** a Pega reference app. Pega skill files have been added to help generate components and wire the integration. The customer's existing code, design system, routing, and architecture must not be modified except where explicitly needed for Pega integration.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 2. What the Pega SDK Does
|
|
14
|
+
|
|
15
|
+
The Pega SDK connects to a Pega Infinity server and renders case workflow forms inside the customer's application. The workflow (which fields to show, what validation to apply, what happens next) is defined on the Pega server — the frontend only renders it.
|
|
16
|
+
|
|
17
|
+
### Key Concepts
|
|
18
|
+
|
|
19
|
+
| Concept | Description |
|
|
20
|
+
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
21
|
+
| **PConnect** | The bridge between the Pega runtime and UI components. Every Pega component receives a `getPConnect` accessor to read state and trigger actions. |
|
|
22
|
+
| **Component Registry** | A map of component names to implementations. The Pega runtime asks for a component by name; the registry returns the customer's implementation. |
|
|
23
|
+
| **Bridge Component** | The SDK's component that recursively resolves and renders Pega components from the registry. It subscribes to PConnect state changes and passes resolved props to each component. |
|
|
24
|
+
| **Display Mode** | Components can render in editable mode or display-only mode. Field components must handle both. |
|
|
25
|
+
| **Actions API** | The PConnect accessor provides an actions API for reporting value changes and blur/commit events back to the Pega store. |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 3. What Exists in This Project
|
|
30
|
+
|
|
31
|
+
### Pega Skill Files
|
|
32
|
+
|
|
33
|
+
AI skill files have been added to this project to assist with:
|
|
34
|
+
|
|
35
|
+
- **Analyzing the codebase** — extracting design system, coding patterns, and conventions into a Design Profile
|
|
36
|
+
- **Generating Pega components** — creating components that satisfy the Pega behavioral contract while matching the customer's design system
|
|
37
|
+
- **Wiring the integration** — bootstrapping the SDK, launching case flows, and handling lifecycle events
|
|
38
|
+
|
|
39
|
+
### SDK Packages
|
|
40
|
+
|
|
41
|
+
Pega SDK packages (`.tgz` files) have been added to the project root and referenced in the dependency manifest. These provide:
|
|
42
|
+
|
|
43
|
+
- The SDK adapter package (bridge component, runtime context, component registry)
|
|
44
|
+
- The auth package (OAuth authentication with the Pega server)
|
|
45
|
+
- The SDK types package (shared type definitions)
|
|
46
|
+
- The ConstellationJS core (Pega runtime engine)
|
|
47
|
+
|
|
48
|
+
### SDK Configuration
|
|
49
|
+
|
|
50
|
+
`sdk-config.json` contains connection details for the Pega server. The customer must fill in their server URL, app alias, OAuth client ID, and case type.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 4. Component Architecture
|
|
55
|
+
|
|
56
|
+
### Field Components (form inputs)
|
|
57
|
+
|
|
58
|
+
Extend the SDK's field input contract. Must:
|
|
59
|
+
|
|
60
|
+
- Accept the PConnect accessor
|
|
61
|
+
- Handle display modes (editable and display-only)
|
|
62
|
+
- Wire value changes through the SDK actions API (local state on change, commit on blur)
|
|
63
|
+
- Render validation feedback when present
|
|
64
|
+
- Pass through the test identifier
|
|
65
|
+
|
|
66
|
+
### Template Components (layouts)
|
|
67
|
+
|
|
68
|
+
Extend the SDK's base component interface. Must:
|
|
69
|
+
|
|
70
|
+
- Traverse child component descriptors via PConnect
|
|
71
|
+
- Render children using the SDK bridge component
|
|
72
|
+
- Propagate inherited properties (display mode, read-only state) to children
|
|
73
|
+
|
|
74
|
+
### Widget Components (display blocks)
|
|
75
|
+
|
|
76
|
+
Extend the SDK's base component interface. Must:
|
|
77
|
+
|
|
78
|
+
- Consume configuration properties from PConnect (headers, descriptions, data sources)
|
|
79
|
+
- Render display content — typically no interactive state management
|
|
80
|
+
|
|
81
|
+
### Design System Extension Components (shared display building blocks)
|
|
82
|
+
|
|
83
|
+
Presentational components that other Pega components resolve through the registry rather than import. Must:
|
|
84
|
+
|
|
85
|
+
- Follow the input contract of their pattern — data-aware display components receive the PConnect accessor, pure-presentation components receive plain display props, and rich editors extend the field input contract
|
|
86
|
+
- Render display content only — they do not own field state, so they never wire value changes
|
|
87
|
+
- Preserve the prop shape their consumers rely on
|
|
88
|
+
|
|
89
|
+
The most important one is `FieldValueList`: every field component renders its display-only mode through it, so it is required whenever the case contains any field.
|
|
90
|
+
|
|
91
|
+
### Infrastructure Components (case chrome)
|
|
92
|
+
|
|
93
|
+
Most infrastructure components ship from the SDK and are never generated. Three are overridable because they render inline with the case form, where SDK styling is the most visible mismatch: `ActionButtons` (the Cancel/Save/Submit row), `Stages` (the stage progress indicator), and `MultiStep` (step navigation within an assignment). When generated, these must:
|
|
94
|
+
|
|
95
|
+
- Reproduce the SDK component's prop contract exactly — it differs per component, and `ActionButtons` receives plain display props rather than the PConnect accessor
|
|
96
|
+
- Localize labels through the Pega locale utilities
|
|
97
|
+
- Change markup and styling only
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 5. Rules
|
|
102
|
+
|
|
103
|
+
1. **Never modify the customer's existing components during analysis or generation** — the `pega-components/` folder is additive. Wiring is the exception: it edits the integration seams listed in the wire-integration skill, plus the verification tooling seams listed in the run-and-verify-integration skill. A failing verification check never widens that set
|
|
104
|
+
2. **Match the customer's conventions** — generated code should look like the customer wrote it
|
|
105
|
+
3. **Satisfy the Pega behavioral contract** — every component must implement what its skill file requires
|
|
106
|
+
4. **Use the customer's design system** — never introduce a new UI library
|
|
107
|
+
5. **Reference design tokens, not raw values** — use the customer's variables/tokens for colors, spacing, etc.
|
|
108
|
+
6. **Resolve sub-components via the registry** — never import other Pega components directly
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 6. Workflow Entry Points
|
|
113
|
+
|
|
114
|
+
| Task | How to start |
|
|
115
|
+
| ------------------------------- | ------------------------------------------- |
|
|
116
|
+
| Analyze the customer's codebase | Use the analyze-customer-repo skill |
|
|
117
|
+
| Generate Pega components | Use the generate-embedded-components prompt |
|
|
118
|
+
| Wire the Pega SDK integration | Use the wire-integration skill |
|
|
119
|
+
| Full end-to-end embedded flow | Use the Embedded Flow Expert agent |
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Pega SDK — Reference App
|
|
2
|
+
|
|
3
|
+
You are assisting developers in a reference application that demonstrates the Pega Infinity SDK. Customers clone this repo and **replace the sample UI components with their own design system** (Ant Design, Chakra UI, Carbon, Radix UI, Shadcn/ui, MUI, or any other).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Repository Purpose
|
|
8
|
+
|
|
9
|
+
This is a **reference implementation** — not a framework. The UI components (fields, templates, widgets) are intentionally simple sample implementations meant to be swapped out. The SDK wiring (bootstrap, PConnect bridge, component registry) is reusable infrastructure that should NOT be modified.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 2. What Is Replaceable vs. Infrastructure
|
|
14
|
+
|
|
15
|
+
### Replaceable (customer modifies these)
|
|
16
|
+
|
|
17
|
+
| Area | Purpose |
|
|
18
|
+
| ----------------------------- | ----------------------------------------------------------- |
|
|
19
|
+
| Field components directory | Form field components (TextInput, Dropdown, Date, etc.) |
|
|
20
|
+
| Template components directory | Layout templates (OneColumn, TwoColumn, Details, etc.) |
|
|
21
|
+
| Widget components directory | Data widgets (ToDo, Attachment, CaseHistory, etc.) |
|
|
22
|
+
| DSE components directory | Extended UI (AlertBanner, FieldGroup, RichTextEditor, etc.) |
|
|
23
|
+
|
|
24
|
+
### Infrastructure (do NOT modify unless you know what you're doing)
|
|
25
|
+
|
|
26
|
+
| Area | Purpose |
|
|
27
|
+
| ---------------------------- | ----------------------------------------- |
|
|
28
|
+
| Application bootstrap module | Auth + bootstrap + root rendering |
|
|
29
|
+
| Component map file | Registry wiring (only add/remove entries) |
|
|
30
|
+
| Infrastructure components | ActionButtons, Stages, NavBar, etc. |
|
|
31
|
+
| Event handling helper module | PConnect event handler utility |
|
|
32
|
+
| SDK bridge package | SDK bridge — never modify |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 3. Component Architecture
|
|
37
|
+
|
|
38
|
+
### The PConnect Bridge
|
|
39
|
+
|
|
40
|
+
Every component receives `getPConnect` as a prop. This is the bridge to the Pega platform. From it you obtain the PConnect instance, from which you access the actions API (for field updates) and state props (for the current property path).
|
|
41
|
+
|
|
42
|
+
### Event Handling Pattern
|
|
43
|
+
|
|
44
|
+
All field components use this pattern for two-way binding:
|
|
45
|
+
|
|
46
|
+
- On **change**: update local component state only (do not push to the platform on every keystroke).
|
|
47
|
+
- On **blur**: call the project's event handling helper with the actions API, a `'changeNblur'` action type, the property name, and the current local value. This pushes the value to the Pega platform.
|
|
48
|
+
|
|
49
|
+
### Display Mode Handling
|
|
50
|
+
|
|
51
|
+
Field components must handle the `displayMode` prop:
|
|
52
|
+
|
|
53
|
+
- `undefined` → render the editable input
|
|
54
|
+
- `'DISPLAY_ONLY'` → render a read-only label-value pair via the project's field-value display component
|
|
55
|
+
- `'STACKED_LARGE_VAL'` → render the same display component with a `stacked` variant
|
|
56
|
+
|
|
57
|
+
### Component Registry
|
|
58
|
+
|
|
59
|
+
Components are registered by name in the project's component map file. The map function returns an object that spreads the SDK's built-in component set (providing infrastructure like View, Region, FlowContainer, etc.) and then adds the project's own components.
|
|
60
|
+
|
|
61
|
+
To add a new component: add the import and add an entry to the map object.
|
|
62
|
+
To replace a component: change the import to point to your new implementation.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 4. Props Interfaces
|
|
67
|
+
|
|
68
|
+
### Field Components
|
|
69
|
+
|
|
70
|
+
Field components extend the SDK's field props interface. The standard props available to every field component are:
|
|
71
|
+
|
|
72
|
+
- `getPConnect` — function returning the PConnect accessor
|
|
73
|
+
- `label` — field label text
|
|
74
|
+
- `required` — whether the field is required
|
|
75
|
+
- `disabled` — whether the field is disabled
|
|
76
|
+
- `value` — current field value
|
|
77
|
+
- `validatemessage` — validation error message text
|
|
78
|
+
- `status` — `'error'` | `'warning'` | undefined
|
|
79
|
+
- `onChange` — change handler
|
|
80
|
+
- `onBlur` — blur handler
|
|
81
|
+
- `readOnly` — whether the field is read-only
|
|
82
|
+
- `testId` — test identifier to pass to the interactive element
|
|
83
|
+
- `helperText` — helper/hint text
|
|
84
|
+
- `displayMode` — `'DISPLAY_ONLY'` | `'STACKED_LARGE_VAL'` | undefined
|
|
85
|
+
- `hideLabel` — whether to suppress the label
|
|
86
|
+
- `placeholder` — placeholder text
|
|
87
|
+
|
|
88
|
+
### Template/Widget Components
|
|
89
|
+
|
|
90
|
+
Template and widget components extend the SDK's base props interface, which provides:
|
|
91
|
+
|
|
92
|
+
- `getPConnect` — function returning the PConnect accessor
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 5. Rules for Replacing Components
|
|
97
|
+
|
|
98
|
+
1. **Keep the same export convention** — the component map references it.
|
|
99
|
+
2. **Keep `getPConnect` wiring intact** — extract props and call the event handling helper on blur.
|
|
100
|
+
3. **Handle `displayMode`** — render the field-value display component for read-only modes.
|
|
101
|
+
4. **Handle validation** — show `validatemessage` when `status === 'error'`.
|
|
102
|
+
5. **Preserve the test id attribute** — pass `testId` to the root interactive element.
|
|
103
|
+
6. **Use the component registry** to render sub-components (e.g., the field-value display component) — don't hardcode imports for components that might also be replaced.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 6. Build & Dev
|
|
108
|
+
|
|
109
|
+
Use the project's build script to compile the application and verify there are no errors. Use the project's dev script to start the development server for local testing. If working within the monorepo, run the build/dev commands from the monorepo root; if working standalone in this directory, run them locally.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 7. Key SDK Utilities
|
|
114
|
+
|
|
115
|
+
The SDK bridge package provides the following utilities (import from the package entry point only — never from internal paths):
|
|
116
|
+
|
|
117
|
+
- **PConnect bridge component** — renders a PConnect-managed child component
|
|
118
|
+
- **Store context** — provides the SDK store to the component tree
|
|
119
|
+
- **Component creator registration** — registers custom component factories
|
|
120
|
+
- **Component registry lookup** — retrieves a registered component by its Pega name
|
|
121
|
+
- **Built-in SDK component set** — the infrastructure components that must always be spread into the component map
|
|
122
|
+
|
|
123
|
+
The project also provides an **event handling helper module** that wraps PConnect action calls for consistent field event handling (change + blur pattern).
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 8. Do NOT
|
|
128
|
+
|
|
129
|
+
- Modify the application bootstrap module when replacing design system components.
|
|
130
|
+
- Import from internal SDK package paths — use the package entry point only.
|
|
131
|
+
- Hardcode component references — use the component registry for components that may be overridden.
|
|
132
|
+
- Remove the SDK's built-in component spread from the component map.
|
|
133
|
+
- Use `any` without justification — prefer `unknown` and narrow.
|
|
134
|
+
- Add `@ts-ignore` — use `@ts-expect-error` with explanation if truly needed.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 9. Component Generation Workflow — Single Component
|
|
139
|
+
|
|
140
|
+
When the user asks to generate, create, add, or replace **a single UI component** (e.g., "generate an AutoComplete component", "add a Dropdown using Chakra UI"),
|
|
141
|
+
read the full contents of `{{PROMPT_DIR}}/add-component{{PROMPT_EXT}}` and
|
|
142
|
+
execute every step in order before writing any code.
|
|
143
|
+
Do not skip steps or proceed without reading the required skill files first.
|
|
144
|
+
|
|
145
|
+
> For generating **multiple field components** at once, see Section 10.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 10. Batch Field Component Generation
|
|
150
|
+
|
|
151
|
+
When the user asks to generate, create, or replace **multiple field components** or **all field components** with a design system (e.g., "generate field components with Ant Design", "replace all fields with Chakra UI", "generate all field components using Radix"),
|
|
152
|
+
read the full contents of `{{PROMPT_DIR}}/generate-field-components{{PROMPT_EXT}}` and
|
|
153
|
+
execute every step in order before writing any code.
|
|
154
|
+
Do not skip steps or proceed without reading the required skill files first.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 11. Batch Template Component Generation
|
|
159
|
+
|
|
160
|
+
When the user asks to generate, create, or replace **multiple template components** or **all template components** with a design system (e.g., "generate template components with Ant Design", "replace all templates with Chakra UI", "generate layout templates using Radix"),
|
|
161
|
+
read the full contents of `{{PROMPT_DIR}}/generate-template-components{{PROMPT_EXT}}` and
|
|
162
|
+
execute every step in order before writing any code.
|
|
163
|
+
Do not skip steps or proceed without reading the required skill files first.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 12. Batch Widget Component Generation
|
|
168
|
+
|
|
169
|
+
When the user asks to generate, create, or replace **multiple widget components** or **all widget components** with a design system (e.g., "generate widget components with Ant Design", "replace all widgets with Chakra UI", "generate widgets using Carbon"),
|
|
170
|
+
read the full contents of `{{PROMPT_DIR}}/generate-widget-components{{PROMPT_EXT}}` and
|
|
171
|
+
execute every step in order before writing any code.
|
|
172
|
+
Do not skip steps or proceed without reading the required skill files first.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 13. Batch Design System Extension Component Generation
|
|
177
|
+
|
|
178
|
+
When the user asks to generate, create, or replace **multiple design system extension components** or **all DSE components** with a design system (e.g., "generate DSE components with Ant Design", "replace design system extension components with Chakra UI", "generate designSystemExtension components using Carbon"),
|
|
179
|
+
read the full contents of `{{PROMPT_DIR}}/generate-dse-components{{PROMPT_EXT}}` and
|
|
180
|
+
execute every step in order before writing any code.
|
|
181
|
+
Do not skip steps or proceed without reading the required skill files first.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 14. Generate All Components (Multi-Type)
|
|
186
|
+
|
|
187
|
+
When the user asks to generate, create, or replace components across **multiple types** or **all component types** at once (e.g., "generate all components with Ant Design", "replace everything with Chakra UI", "generate field and widget components using Carbon", "regenerate all components"),
|
|
188
|
+
read the full contents of `{{PROMPT_DIR}}/generate-all-components{{PROMPT_EXT}}` and
|
|
189
|
+
execute every step in order before writing any code.
|
|
190
|
+
Do not skip steps or proceed without reading the required skill files first.
|
|
191
|
+
|
|
192
|
+
> Use this section when the request spans more than one component type. For a single type, use Sections 10–13.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
ai-globs: **/component-map.*
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Component Map Rules
|
|
6
|
+
|
|
7
|
+
The component map is the registry that maps Pega component names to their framework-specific implementations.
|
|
8
|
+
|
|
9
|
+
## Structure
|
|
10
|
+
|
|
11
|
+
The component map file exports a function that returns an object where each key is a Pega component name and each value is the corresponding component implementation. It spreads the SDK's built-in component set first, then adds project-specific components below.
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
1. **NEVER remove the SDK's built-in component spread** — it provides infrastructure components (View, Region, Reference, RootContainer, FlowContainer, ViewContainer, Assignment, AssignmentCard, ErrorBoundary, MultiStep, CaseSummary, and their aliases).
|
|
16
|
+
|
|
17
|
+
2. **Map keys must match Pega component names exactly** — these are resolved at runtime by the platform. The key is what Pega sends; the value is your component implementation.
|
|
18
|
+
|
|
19
|
+
3. **To replace a component**: change its import path to your new implementation. Do NOT rename the key.
|
|
20
|
+
|
|
21
|
+
4. **To add a new component**: add the import + add a new key-value entry.
|
|
22
|
+
|
|
23
|
+
5. **Key naming exceptions** (where key differs from variable name):
|
|
24
|
+
- `Date: DateField` (Date is reserved in JS)
|
|
25
|
+
- `URL: URLComponent` (URL is a global)
|
|
26
|
+
- `Todo: ToDo` (casing difference)
|
|
27
|
+
|
|
28
|
+
6. **Keep the registration function** — it registers all entries into the component registry instance used by the PConnect bridge.
|
|
29
|
+
|
|
30
|
+
7. **Sub-component registration** — Some template/widget components internally render sub-components via the component registry. These sub-components MUST also be registered in the component map or they will be `undefined` at runtime. Known sub-components:
|
|
31
|
+
- `SearchForm` — used by `DataReference` and `AdvancedSearch`
|
|
32
|
+
- `SearchGroups` — used by `AdvancedSearch`
|
|
33
|
+
- `ActionButtonsForFileUtil` — used by `FileUtility`
|
|
34
|
+
|
|
35
|
+
8. **`Todo` vs `ToDo` key** — The Pega engine sends `Todo` (capital T, lowercase odo). The component variable may be named `ToDo`, but the map key MUST be `Todo: ToDo`.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
ai-globs: **/designSystemExtension/**/*
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Design System Extension Component Rules
|
|
6
|
+
|
|
7
|
+
When creating or modifying DSE components, follow these rules:
|
|
8
|
+
|
|
9
|
+
## What Are DSE Components?
|
|
10
|
+
|
|
11
|
+
Design System Extension components are display-focused presentational components. They sit between pure UI and data-fetching widgets. Some receive a PConnect accessor, others receive only display props.
|
|
12
|
+
|
|
13
|
+
## Patterns
|
|
14
|
+
|
|
15
|
+
### Pattern A: With PConnect (data-aware display)
|
|
16
|
+
|
|
17
|
+
Used for: FieldValueList, CaseSummaryFields, DetailsFields
|
|
18
|
+
|
|
19
|
+
These components extend the base PConnect props interface and receive a PConnect accessor. FieldValueList additionally accepts `name`, `value`, and an optional `variant` (`'stacked'` | `'inline'`) prop that controls its layout — it renders a label-value pair.
|
|
20
|
+
|
|
21
|
+
### Pattern B: Without PConnect (pure presentation)
|
|
22
|
+
|
|
23
|
+
Used for: AlertBanner, Banner, Operator
|
|
24
|
+
|
|
25
|
+
These components receive only plain display props — no PConnect awareness. AlertBanner accepts a `variant` (`'urgent'` | `'warning'` | `'info'` | `'success'`), an optional `heading`, a `messages` array (strings or `{ label, description }` objects), and an optional `onClose` callback.
|
|
26
|
+
|
|
27
|
+
### Pattern C: Rich editor (extends field props)
|
|
28
|
+
|
|
29
|
+
Used for: RichTextEditor
|
|
30
|
+
|
|
31
|
+
This component extends the base field props interface (the same interface used by field components) and adds a `content` prop.
|
|
32
|
+
|
|
33
|
+
## Visual Preservation
|
|
34
|
+
|
|
35
|
+
The replacement must look the same as the original component:
|
|
36
|
+
|
|
37
|
+
1. **Read any `.css` file in the directory first.** Note every class's visual intent (spacing, sizing, colors, layout).
|
|
38
|
+
2. Replicate those styles via inline `style` props, the new design system's props/variants, or by keeping the CSS import — whichever produces the closest match.
|
|
39
|
+
3. Do NOT silently drop legacy styling utility classes — map each one to an equivalent style.
|
|
40
|
+
|
|
41
|
+
## Key Rules
|
|
42
|
+
|
|
43
|
+
- DSE components are the **most commonly referenced by other components** via the project's component registry — every field uses FieldValueList for display modes
|
|
44
|
+
- Keep the same export convention and prop interface shape used elsewhere in the project
|
|
45
|
+
- If you replace FieldValueList, ensure it accepts `name`, `value`, and optional `variant` props
|
|
46
|
+
- AlertBanner must handle the `messages` array format (both strings and `{label, description}` objects)
|
|
47
|
+
- Do NOT drop visual styles when removing legacy styling utility classes — always map them to an equivalent
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
ai-globs: pega-components/**/*
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Embedded Component Rules
|
|
6
|
+
|
|
7
|
+
When generating or modifying Pega components in the `pega-components/` folder (components created for embedding into a customer's existing application), follow these rules.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
These components are different from the reference app's sample components. They are generated to live **inside a customer's existing project**, using the customer's design system so that they are visually indistinguishable from the rest of their UI. The Design Profile (`.design-profile.md`) in the same folder describes the customer's visual conventions.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Mandatory Behavioral Contract
|
|
18
|
+
|
|
19
|
+
Every generated component must satisfy the behavioral requirements defined in its type-level and component-specific skill files. These are non-negotiable regardless of the customer's framework or design system.
|
|
20
|
+
|
|
21
|
+
### All components must:
|
|
22
|
+
|
|
23
|
+
1. **Accept and use the PConnect accessor** — this is the bridge to the Pega runtime. Every component receives it and must use it to access state, actions, and child descriptors. Two things are exceptions and receive plain display props instead: a pure-presentation design system extension component (Pattern B in the DSE component rules) — see rule 11 — and the `ActionButtons` chrome component — see rule 14.
|
|
24
|
+
|
|
25
|
+
2. **Support the component registry** — when a component needs to render another Pega component (e.g., a display-mode renderer or a child component), it must resolve that component through the SDK's component registry, never through direct import of another generated component.
|
|
26
|
+
|
|
27
|
+
3. **Preserve the test identifier** — pass the provided test identifier through to the primary interactive or container element for automation purposes.
|
|
28
|
+
|
|
29
|
+
### Field components must additionally:
|
|
30
|
+
|
|
31
|
+
4. **Handle display modes** — at minimum, support an editable mode and a display-only mode. When in display-only mode, render the value using the display-mode renderer resolved from the registry.
|
|
32
|
+
|
|
33
|
+
5. **Wire value change and commit events** — local edits update internal state; on commit (blur or equivalent), propagate the value to the Pega store via the SDK actions API.
|
|
34
|
+
|
|
35
|
+
6. **Render validation feedback** — when validation messages are present, display them following the customer's validation display convention (from the Design Profile).
|
|
36
|
+
|
|
37
|
+
7. **Respect disabled and read-only states** — honor these flags from the input contract.
|
|
38
|
+
|
|
39
|
+
### Template components must additionally:
|
|
40
|
+
|
|
41
|
+
8. **Traverse and render children** — obtain child component descriptors from the PConnect accessor and render each via the SDK bridge component.
|
|
42
|
+
|
|
43
|
+
9. **Propagate inherited properties** — pass display mode, read-only state, and other inherited properties down to children via the PConnect accessor's inheritance mechanism.
|
|
44
|
+
|
|
45
|
+
### Widget components must additionally:
|
|
46
|
+
|
|
47
|
+
10. **Consume configuration from PConnect** — widgets receive their display data (headers, descriptions, data sources) as resolved properties from the PConnect accessor.
|
|
48
|
+
|
|
49
|
+
### Design system extension components must additionally:
|
|
50
|
+
|
|
51
|
+
11. **Follow their pattern's input contract** — the DSE component rules define three patterns and are the authority on which one each component belongs to. Pattern A in the DSE component rules (data-aware display, e.g. `FieldValueList`, `CaseSummaryFields`, `DetailsFields`) receives the PConnect accessor; Pattern B (pure presentation, e.g. `AlertBanner`, `Banner`, `Operator`) receives plain display props only; Pattern C (rich editor, `RichTextEditor`) extends the field input contract.
|
|
52
|
+
|
|
53
|
+
12. **Render display content only** — these components do not own field state, so they never wire value change or commit events.
|
|
54
|
+
|
|
55
|
+
13. **Keep the prop shape other components depend on** — DSE components are resolved through the registry by fields, templates, and widgets rather than imported directly. `FieldValueList` in particular backs every field component's display-only mode and must keep accepting `name`, `value`, and an optional `variant`.
|
|
56
|
+
|
|
57
|
+
### Infrastructure (chrome) components must additionally:
|
|
58
|
+
|
|
59
|
+
14. **Reproduce the SDK component's prop contract exactly** — `ActionButtons`, `MultiStep`, and `Stages` override components the SDK already provides, so Pega calls them with a contract that is already fixed. They do not share one shape: `ActionButtons` receives no PConnect accessor, only `arMainButtons`, `arSecondaryButtons`, and an `onButtonPress(action, buttonType)` callback; `Stages` receives the PConnect accessor plus `stages`; `MultiStep` receives the PConnect accessor plus `children`, `itemKey`, `actionButtons`, and `onButtonPress`. Read the component's skill file in `{{SKILL_DIR}}/infra-skills/` before generating.
|
|
60
|
+
|
|
61
|
+
15. **Localize labels through Pega** — button and step text comes from the Pega locale utilities using the locale category the SDK component uses, never from hardcoded strings. Only markup and styling are yours to change.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Customer Convention Compliance
|
|
66
|
+
|
|
67
|
+
**The customer owns how it looks. Pega owns how it behaves.** Generated components must be visually indistinguishable from the customer's own UI — their design system, styling mechanism, tokens, and theme are authoritative for appearance. Everything behavioural — state, events, prop contracts, paths, names, registry keys — follows the Pega contract, no matter how the customer does it in their own code.
|
|
68
|
+
|
|
69
|
+
The Design Profile documents both, but only its visual half is authoritative. Its Component Patterns and File Conventions sections describe how the customer writes _their_ components; they are context, not instructions.
|
|
70
|
+
|
|
71
|
+
### Styling
|
|
72
|
+
|
|
73
|
+
- Apply styles using the **same mechanism** the customer uses (utility classes, CSS modules, style objects, scoped styles, etc.)
|
|
74
|
+
- Reference the customer's **design tokens** (colors, spacing, typography) — never hardcode raw values that bypass their token system
|
|
75
|
+
- Handle conditional styling (error states, disabled states, focus states) the same way the customer's components do
|
|
76
|
+
|
|
77
|
+
### File Structure
|
|
78
|
+
|
|
79
|
+
- **Paths are fixed by Pega, not inferred from the customer.** Components live at `pega-components/{type}/{ComponentName}/{ComponentName}.{ext}`, where `{type}` is `field`, `template`, `widget`, `designSystemExtension`, or `infra`, and `{ComponentName}` is the component's canonical Pega name, verbatim, for both the folder and the implementation file — `Checkbox/Checkbox.*`, never `checkbox/CheckboxField.*`
|
|
80
|
+
- **Resolve the canonical name, never assume it.** Step 1 of `{{PROMPT_DIR}}/generate-embedded-components{{PROMPT_EXT}}` defines the resolution procedure — normalized name match, then alias lookup, then behaviour class, then ask the user — against `{{PROMPT_DIR}}/component-manifest.json`. It is the authority, and it forbids fuzzy "similar sounding" matching. Follow it when adding a component by hand, not only when running the prompt
|
|
81
|
+
- Use the customer's **file extension** for their framework
|
|
82
|
+
- Use the customer's **export pattern** (default export, named export, barrel file)
|
|
83
|
+
- Co-locate related files (styles, types, tests) according to the customer's convention
|
|
84
|
+
|
|
85
|
+
### Code Style
|
|
86
|
+
|
|
87
|
+
Behaviour is Pega's, not the customer's. Do **not** imitate how the customer handles:
|
|
88
|
+
|
|
89
|
+
- **State** — field values live in local component state and are committed to the Pega store via the SDK actions API. Never route Pega state through the customer's form library or global store, even though that is how they manage their own forms
|
|
90
|
+
- **Events** — change and commit are reported through the SDK actions API, not through the customer's event or form-submission idioms
|
|
91
|
+
- **Prop and type definitions** — the input contract comes from the SDK's types. Extend them where a component needs extra inputs; never restructure them to match the customer's typing style
|
|
92
|
+
|
|
93
|
+
The customer's platform still imposes constraints the generated code must satisfy in order to build and lint:
|
|
94
|
+
|
|
95
|
+
- **Module resolution** — import their UI primitives through their path aliases, not hand-built relative paths
|
|
96
|
+
- **Framework requirements** — include whatever their framework needs to run the component (client/server boundary directives, module format, language level)
|
|
97
|
+
- **Lint and format rules** — generated files must pass the customer's linter and formatter unmodified
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Prohibitions
|
|
102
|
+
|
|
103
|
+
1. **Never import from the customer's existing components** — generated Pega components are self-contained. If you need a UI primitive, import it from the customer's UI library package, not from their source components.
|
|
104
|
+
|
|
105
|
+
2. **Never modify the customer's existing files while generating components** — the `pega-components/` folder is additive, and component generation writes nothing outside it.
|
|
106
|
+
|
|
107
|
+
**Exception — integration seams.** Wiring a case flow into the customer's app necessarily edits their code, and that is expected. `{{SKILL_DIR}}/embedded-flow/wire-integration.md` defines the complete set of permitted touch points: the dependency manifest, the HTML and application entry points, the OAuth callback assets, `sdk-config.json`, a new bootstrap module, the control or event that launches the case, the element that hosts the Pega container, the lifecycle event subscriptions, and the verification tooling described in `{{SKILL_DIR}}/embedded-flow/run-and-verify-integration.md` (an additive verification folder, its script entry, and the version-control ignore rule for its session-state directory). Confine edits to those seams — make the smallest change that connects the customer's existing control to the SDK, and never restructure, restyle, or refactor the surrounding code while you are in there.
|
|
108
|
+
|
|
109
|
+
Verification does not widen this exception. A failing check is not permission to edit customer code outside these seams to make it pass — see `{{SKILL_DIR}}/embedded-flow/run-and-verify-integration.md` for what may be fixed and what must only be reported.
|
|
110
|
+
|
|
111
|
+
3. **Never introduce new dependencies** — only use packages already in the customer's dependency manifest plus the Pega SDK packages. If a needed package is missing, flag it to the user.
|
|
112
|
+
|
|
113
|
+
4. **Never hardcode design token values** — always reference the customer's token system. If a specific value is needed and no token exists, use the closest available token and note the deviation.
|
|
114
|
+
|
|
115
|
+
5. **Never skip display mode handling in field components** — even if the customer's equivalent doesn't have this concept, the Pega contract requires it.
|
|
116
|
+
|
|
117
|
+
6. **Never bypass the component registry** — do not directly import other Pega components for rendering. Always resolve through the registry.
|
|
118
|
+
|
|
119
|
+
7. **Never invent props or APIs** — the component's input interface is defined by the Pega behavioral contract (from skill files). Do not add extra required inputs that the SDK bridge won't provide.
|
|
120
|
+
|
|
121
|
+
8. **Never omit the validation display** — field components must always render validation feedback when it is present, even if the customer's equivalent handles validation differently.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Registry File Rules
|
|
126
|
+
|
|
127
|
+
The `component-map.*` file in the `pega-components/` folder:
|
|
128
|
+
|
|
129
|
+
1. Must export a registration function that accepts a component registry and registers all generated components
|
|
130
|
+
2. Must spread/include the SDK's built-in infrastructure components (NavBar, DeferLoad, VerticalTabs, DashboardFilter and the structural set), which ship with the SDK's own styling
|
|
131
|
+
3. May override three of them — `ActionButtons`, `MultiStep`, and `Stages`. These render inline with the case form, so they are generated in the customer's design system rather than left SDK-styled. `ActionButtons` and `MultiStep` are assignment chrome and belong in an embedded flow; `Stages` is case chrome and only applies to a case-view surface. Because an override replaces the spread entry, it must appear _after_ the spread
|
|
132
|
+
4. Keys must match Pega's canonical component names exactly (case-sensitive)
|
|
133
|
+
5. Must import each generated component and map it to its Pega name
|
|
134
|
+
6. Must never contain a non-canonical key. Aliases and design-system names are resolved away _before_ registration by Step 1 of `{{PROMPT_DIR}}/generate-embedded-components{{PROMPT_EXT}}`, so they never appear here — Pega would never request them at runtime
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
ai-globs: **/field/**/*
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Field Component Rules
|
|
6
|
+
|
|
7
|
+
When creating or modifying field components, follow these rules:
|
|
8
|
+
|
|
9
|
+
## Required Structure
|
|
10
|
+
|
|
11
|
+
1. **Extend the base field props interface** — the project's standard field props type — when defining the component's prop interface.
|
|
12
|
+
|
|
13
|
+
2. **Export the component** using the project's standard export convention (matching other field components in the project).
|
|
14
|
+
|
|
15
|
+
## Required Behaviors
|
|
16
|
+
|
|
17
|
+
1. **Extract standard props**: `getPConnect`, `label`, `required`, `disabled`, `value`, `validatemessage`, `status`, `readOnly`, `testId`, `helperText`, `displayMode`, `hideLabel`, `placeholder`
|
|
18
|
+
|
|
19
|
+
2. **Get PConnect APIs**: obtain the actions API and the current property name from the PConnect accessor (`getPConnect()` → actions API, state props).
|
|
20
|
+
|
|
21
|
+
3. **Handle displayMode** (MUST be before the main return):
|
|
22
|
+
- When `displayMode` is `DISPLAY_ONLY`, render the value via the project's field-value display component (unlabeled if `hideLabel` is set).
|
|
23
|
+
- When `displayMode` is `STACKED_LARGE_VAL`, render the same display component with a `stacked` variant.
|
|
24
|
+
|
|
25
|
+
4. **Use local state + blur pattern**:
|
|
26
|
+
- `onChange` → update local state only
|
|
27
|
+
- `onBlur` → call the event helper with a `changeNblur` action, the property name, and the local value
|
|
28
|
+
|
|
29
|
+
5. **Show validation**: Display `validatemessage` and apply error styling when `status === 'error'`
|
|
30
|
+
|
|
31
|
+
6. **Pass test ID**: Set the test id attribute on the interactive element using the `testId` prop
|
|
32
|
+
|
|
33
|
+
7. **Use the component registry to look up the field-value display component** — never hardcode its import
|
|
34
|
+
|
|
35
|
+
## Visual Preservation
|
|
36
|
+
|
|
37
|
+
The replacement must look the same as the original component:
|
|
38
|
+
|
|
39
|
+
1. **Read any `.css` file in the directory first.** Note every class's visual intent (spacing, sizing, colors, layout).
|
|
40
|
+
2. Replicate those styles via inline `style` props, the design system's component props/variants, or by keeping the CSS import — whichever produces the closest match.
|
|
41
|
+
3. Do NOT silently drop legacy styling utility classes — map each one to an equivalent style.
|
|
42
|
+
|
|
43
|
+
## Do NOT
|
|
44
|
+
|
|
45
|
+
- Skip `displayMode` handling — it breaks read-only views
|
|
46
|
+
- Call the blur handler on every keystroke — only on blur
|
|
47
|
+
- Hardcode component imports for components that exist in the registry
|
|
48
|
+
- Remove the import of the event handling helper module
|
|
49
|
+
- Drop visual styles when removing legacy styling utility classes — always map them to an equivalent
|
|
50
|
+
- **Import the same symbol twice from the shared field utilities module** — if you import a type or helper in one import statement, do NOT add a separate import line for the same symbol elsewhere. This causes "already defined" errors. Use a single consolidated import.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
ai-globs: **/template/**/*
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Template Component Rules
|
|
6
|
+
|
|
7
|
+
When creating or modifying template/layout components, follow these rules:
|
|
8
|
+
|
|
9
|
+
## Required Structure
|
|
10
|
+
|
|
11
|
+
1. **Extend the base template props interface** — the project's standard props type — when defining the component's prop interface.
|
|
12
|
+
|
|
13
|
+
2. **Export the component** using the project's standard export convention.
|
|
14
|
+
|
|
15
|
+
## Template Categories
|
|
16
|
+
|
|
17
|
+
### Layout Templates (TwoColumn, OneColumn, NarrowWide, WideNarrow)
|
|
18
|
+
|
|
19
|
+
Receive child components directly via the props. Parse the `templateCol` prop (e.g. `"1fr 1fr"`, `"2fr 1fr"`) to compute column ratios, then render each child in its corresponding column.
|
|
20
|
+
|
|
21
|
+
### Form/View Templates (DefaultForm, Details, CaseView)
|
|
22
|
+
|
|
23
|
+
Render children by retrieving them from the PConnect accessor (`getPConnect().getChildren()`) and rendering each child through the project's PConnect-bridge component.
|
|
24
|
+
|
|
25
|
+
### Page Templates (OneColumnPage, TwoColumnPage)
|
|
26
|
+
|
|
27
|
+
Wrap a layout with page-level chrome (title, actions) — retrieve case/page metadata from the PConnect accessor and render it alongside the layout's children.
|
|
28
|
+
|
|
29
|
+
## Visual Preservation
|
|
30
|
+
|
|
31
|
+
The replacement must look the same as the original component:
|
|
32
|
+
|
|
33
|
+
1. **Read any `.css` file in the directory first.** Note every class's visual intent (spacing, sizing, colors, layout).
|
|
34
|
+
2. Replicate those styles via inline `style` props, the new design system's layout props, or by keeping the CSS import — whichever produces the closest match.
|
|
35
|
+
3. Do NOT silently drop legacy layout utility classes — map each one to an equivalent style.
|
|
36
|
+
|
|
37
|
+
## Key Rules
|
|
38
|
+
|
|
39
|
+
- Use the project's PConnect-bridge component to render PConnect children
|
|
40
|
+
- Grid proportions come from the `templateCol` prop — parse it to calculate column ratios
|
|
41
|
+
- Templates must not call the event handling helper or interact with field state
|
|
42
|
+
- Templates are layout-only — they arrange, not edit
|
|
43
|
+
- Do NOT drop column gap, padding, or alignment styles when removing legacy layout primitives — replicate them in the replacement layout
|