@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
package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Skill: Banner
|
|
2
|
+
|
|
3
|
+
Promotional/informational banner with a full-width background image hero section and a two-column content layout below it.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`design-system-extension.md`](../design-system-extension.md) — covers architecture, input contracts, styling patterns, and registration patterns common to ALL DSE components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders a visually rich banner composed of two parts:
|
|
12
|
+
|
|
13
|
+
1. **Hero section:** Full-width area with a background image, centered title and message text overlaid.
|
|
14
|
+
2. **Content columns:** Two adjustable-width columns below the hero, rendered from the `a` and `b` slot inputs. Column widths are controlled by the `variant` input.
|
|
15
|
+
|
|
16
|
+
## Pega Metadata
|
|
17
|
+
|
|
18
|
+
- **Pega Name:** `Banner`
|
|
19
|
+
- **Registration key:** `Banner` (in the project's component map)
|
|
20
|
+
- **Does NOT use `getPConnect`** — receives all data as direct inputs
|
|
21
|
+
|
|
22
|
+
## Component Inputs
|
|
23
|
+
|
|
24
|
+
The component accepts the following inputs. Define the input contract using the project's framework conventions.
|
|
25
|
+
|
|
26
|
+
| Name | Type | Required | Description |
|
|
27
|
+
| ------------------------ | ------------------ | -------- | ------------------------------------------------------------------ |
|
|
28
|
+
| `a` | renderable content | Yes | Content for the first (left/narrower) column |
|
|
29
|
+
| `b` | renderable content | Yes | Content for the second (right/wider) column |
|
|
30
|
+
| `banner` | `object` | Yes | Banner metadata (see sub-fields below) |
|
|
31
|
+
| `banner.title` | `string` | Yes | Title text displayed in the hero section |
|
|
32
|
+
| `banner.message` | `string` | Yes | Descriptive message text in the hero section |
|
|
33
|
+
| `banner.backgroundImage` | `string` | Yes | URL of the background image for the hero section |
|
|
34
|
+
| `banner.variant` | `any` | No | Unused internally (layout variant comes from top-level `variant`) |
|
|
35
|
+
| `banner.backgroundColor` | `any` | No | Unused internally |
|
|
36
|
+
| `banner.tintImage` | `any` | No | Unused internally |
|
|
37
|
+
| `variant` | `string` | Yes | Column layout: `'two-column'`, `'narrow-wide'`, or `'wide-narrow'` |
|
|
38
|
+
|
|
39
|
+
## Implementation Structure
|
|
40
|
+
|
|
41
|
+
### Module Setup
|
|
42
|
+
|
|
43
|
+
The component requires companion styles (for hero section and layout styling) that should be co-located with the component following the project's styling convention. It does NOT import any Pega SDK modules — all data arrives via direct inputs.
|
|
44
|
+
|
|
45
|
+
The component is named `Banner` and accepts the inputs listed in the table above. Define the input contract and export the component following the project's framework conventions.
|
|
46
|
+
|
|
47
|
+
### Variant Map (module-level or function-level constant)
|
|
48
|
+
|
|
49
|
+
Define a lookup object that maps the `variant` string to a pair of column width values (out of 12):
|
|
50
|
+
|
|
51
|
+
| Variant | Column A (first) | Column B (second) |
|
|
52
|
+
| ------------- | ---------------- | ----------------- |
|
|
53
|
+
| `two-column` | 6 | 6 |
|
|
54
|
+
| `narrow-wide` | 4 | 8 |
|
|
55
|
+
| `wide-narrow` | 8 | 4 |
|
|
56
|
+
|
|
57
|
+
### Component Logic
|
|
58
|
+
|
|
59
|
+
The component receives `a`, `b`, `banner` (defaults to `{}`), and `variant` as inputs. From `banner`, extract `title`, `message`, and `backgroundImage`. The render tree is:
|
|
60
|
+
|
|
61
|
+
1. **Outer wrapper** — a `<div>` with `marginBottom: 2rem`.
|
|
62
|
+
2. **Hero section:**
|
|
63
|
+
- A `<div>` with class `background-image-style` and inline style `backgroundImage: url({backgroundImage})`.
|
|
64
|
+
- Inside: an overlay `<div>` with classes `background-style content`.
|
|
65
|
+
- Inside the overlay: `<h1>` with class `title` containing the title text, and `<p>` with class `message` containing the message text.
|
|
66
|
+
3. **Content columns** — below the hero, a 12-column grid container with `spacing={1}` containing two grid items:
|
|
67
|
+
- **Column A** (first child slot): grid item sized to the first value from the variant map. Styled with `padding: 1rem; background-color: var(--app-form-bg-color); border-radius: 16px; height: fit-content`. Renders `{a}`.
|
|
68
|
+
- **Column B** (second child slot): grid item sized to the second value from the variant map. Styled with `padding: 0 1rem` (no background). Renders `{b}`.
|
|
69
|
+
|
|
70
|
+
## Behavioral Contract
|
|
71
|
+
|
|
72
|
+
1. **Hero section:** Render a `<div>` with class `background-image-style` and the inline style `backgroundImage: url(${backgroundImage})`.
|
|
73
|
+
2. Inside the hero, render an overlay `<div>` with classes `background-style content`.
|
|
74
|
+
3. Inside the overlay, render `<h1 className='title'>{title}</h1>` and `<p className='message'>{message}</p>`.
|
|
75
|
+
4. **Column layout:** Below the hero, render a 12-column grid container with two columns:
|
|
76
|
+
- Column `a`: sized according to the variant (left/first column).
|
|
77
|
+
- Column `b`: sized according to the variant (right/second column).
|
|
78
|
+
5. **Variant column widths:**
|
|
79
|
+
- `'two-column'`: column A = 6/12, column B = 6/12 (equal split).
|
|
80
|
+
- `'narrow-wide'`: column A = 4/12, column B = 8/12.
|
|
81
|
+
- `'wide-narrow'`: column A = 8/12, column B = 4/12.
|
|
82
|
+
6. **Column A styles:** `padding: 1rem; background-color: var(--app-form-bg-color); border-radius: 16px; height: fit-content`.
|
|
83
|
+
7. **Column B styles:** `padding: 0rem 1rem` (no background).
|
|
84
|
+
8. **Outer wrapper:** `<div style={{ marginBottom: '2rem' }}>`.
|
|
85
|
+
|
|
86
|
+
## Layout Variants
|
|
87
|
+
|
|
88
|
+
| Variant | Column A | Column B |
|
|
89
|
+
| ------------- | -------- | -------- |
|
|
90
|
+
| `two-column` | 50% (6) | 50% (6) |
|
|
91
|
+
| `narrow-wide` | 33% (4) | 67% (8) |
|
|
92
|
+
| `wide-narrow` | 67% (8) | 33% (4) |
|
|
93
|
+
|
|
94
|
+
## Visual Specifications
|
|
95
|
+
|
|
96
|
+
Derived from the component's companion styles:
|
|
97
|
+
|
|
98
|
+
### Hero Section
|
|
99
|
+
|
|
100
|
+
| Property | Value |
|
|
101
|
+
| ------------------- | -------------------------------- |
|
|
102
|
+
| Margin left | -16px (bleeds to container edge) |
|
|
103
|
+
| Margin right | -16px |
|
|
104
|
+
| Height | `calc(19rem)` |
|
|
105
|
+
| Background size | cover |
|
|
106
|
+
| Background position | center center |
|
|
107
|
+
|
|
108
|
+
### Hero Overlay
|
|
109
|
+
|
|
110
|
+
| Property | Value |
|
|
111
|
+
| ---------------- | -------------------------- |
|
|
112
|
+
| Background color | transparent |
|
|
113
|
+
| Color | `var(--banner-text-color)` |
|
|
114
|
+
| Width | 100% |
|
|
115
|
+
| Height | 100% |
|
|
116
|
+
| Text align | center |
|
|
117
|
+
| Display | flex |
|
|
118
|
+
| Flex direction | column |
|
|
119
|
+
| Justify content | center |
|
|
120
|
+
| Align items | center |
|
|
121
|
+
| Gap | `calc(0.5rem)` |
|
|
122
|
+
|
|
123
|
+
### Hero Title
|
|
124
|
+
|
|
125
|
+
| Property | Value |
|
|
126
|
+
| ----------- | -------- |
|
|
127
|
+
| Margin | 0 |
|
|
128
|
+
| Font size | 1.728rem |
|
|
129
|
+
| Font weight | 600 |
|
|
130
|
+
|
|
131
|
+
### Hero Message
|
|
132
|
+
|
|
133
|
+
| Property | Value |
|
|
134
|
+
| ----------- | ----- |
|
|
135
|
+
| Margin | 0 |
|
|
136
|
+
| Font size | 1rem |
|
|
137
|
+
| Font weight | 400 |
|
|
138
|
+
|
|
139
|
+
### Content Grid
|
|
140
|
+
|
|
141
|
+
| Property | Value |
|
|
142
|
+
| -------------- | ---------------------- |
|
|
143
|
+
| Padding | 1rem |
|
|
144
|
+
| Column spacing | 1 spacing unit (≈ 8px) |
|
|
145
|
+
|
|
146
|
+
**CSS-only implementation notes:**
|
|
147
|
+
|
|
148
|
+
- Hero: `margin: 0 -16px; height: 19rem; background-size: cover; background-position: center; position: relative`.
|
|
149
|
+
- Overlay: `position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 0.5rem; color: var(--banner-text-color); text-align: center`.
|
|
150
|
+
- Content grid below hero: `display: grid; grid-template-columns: <a-cols>fr <b-cols>fr; gap: 8px; padding: 1rem`.
|
|
151
|
+
- Column A: `padding: 1rem; background-color: var(--app-form-bg-color); border-radius: 16px; height: fit-content`.
|
|
152
|
+
- Column B: `padding: 0 1rem`.
|
|
153
|
+
- For responsive behavior, collapse to single column on small viewports.
|
|
154
|
+
|
|
155
|
+
## Edge Cases & Special Logic
|
|
156
|
+
|
|
157
|
+
- If `backgroundImage` is an empty string or undefined, the hero section renders without a background image (transparent/color background).
|
|
158
|
+
- If `variant` is not one of the three known values, implement a safe default (e.g., `'two-column'`).
|
|
159
|
+
- The `banner.backgroundColor`, `banner.variant`, and `banner.tintImage` inputs are received but not rendered in the reference implementation.
|
|
160
|
+
|
|
161
|
+
## Dependencies
|
|
162
|
+
|
|
163
|
+
- No Pega SDK imports required (no `getPConnect`)
|
|
164
|
+
- No helper utilities required
|
|
165
|
+
|
|
166
|
+
## Design System Mapping
|
|
167
|
+
|
|
168
|
+
**UI control type:** Full-width banner hero with responsive two-column content area.
|
|
169
|
+
|
|
170
|
+
When implementing in a specific design system, map the following:
|
|
171
|
+
|
|
172
|
+
- **Column layout** → use the DS's grid/column system to create two responsive columns. Map the variant column ratios (6/6, 4/8, 8/4 out of 12) to the DS's grid column sizing convention (span values, fractional units, or percentage widths).
|
|
173
|
+
- **Background image hero** → use inline `backgroundImage` style with `background-size: cover; background-position: center`. No DS component is needed for this — it's always a styled `<div>`.
|
|
174
|
+
- **Column A (card-like)** → use the DS's card component or a container with background color and border-radius (if available). Otherwise use a plain `<div>` with the specified styles.
|
|
175
|
+
- **Column B (plain)** → a plain container with horizontal padding only (no background).
|
|
176
|
+
- **Responsive** → on small viewports (mobile), collapse the two columns to a single stacked column.
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Skill: CaseSummaryFields
|
|
2
|
+
|
|
3
|
+
Display-only grid of typed field values for a case summary header. Renders a 2-column grid of read-only fields, each formatted according to its type (text, date, currency, phone, email, checkbox, status, operator, etc.).
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`design-system-extension.md`](../design-system-extension.md) — covers architecture, input contracts, styling patterns, and registration patterns common to ALL DSE components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders a responsive 2-column read-only grid of field values for a case summary header area. Each field in the input array is typed (e.g., `textinput`, `date`, `currency`, `caseoperator`), and the component selects the appropriate display renderer per type. Visibility and a special status field injection are also handled.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Pega Name:** `CaseSummaryFields`
|
|
16
|
+
- **Registration key:** `CaseSummaryFields` (in the project's component map)
|
|
17
|
+
- **Does NOT use `getPConnect` directly** — receives pre-processed `theFields` array as an input
|
|
18
|
+
|
|
19
|
+
## Component Inputs
|
|
20
|
+
|
|
21
|
+
The component accepts the following inputs. Define the input contract using the project's framework conventions.
|
|
22
|
+
|
|
23
|
+
| Name | Type | Required | Description |
|
|
24
|
+
| ------------ | ---------------------------------------------- | -------- | ------------------------------------------------------------------------- |
|
|
25
|
+
| `theFields` | `Array<{ type: string; config: FieldConfig }>` | Yes | Array of typed field descriptors to render |
|
|
26
|
+
| `status` | `string` | No | The case status value, injected at position 1 if `showStatus` is true |
|
|
27
|
+
| `showStatus` | `boolean` | No | If `true`, splices a status field entry at position 1 in the fields array |
|
|
28
|
+
|
|
29
|
+
## Implementation Structure
|
|
30
|
+
|
|
31
|
+
### Module Setup
|
|
32
|
+
|
|
33
|
+
The component imports the following dependencies:
|
|
34
|
+
|
|
35
|
+
- A state management mechanism (local state for the fields array and rendered grid items)
|
|
36
|
+
- A lifecycle effect to recompute grid items when the fields array changes
|
|
37
|
+
- A deep-equality utility (for comparing field arrays before updates)
|
|
38
|
+
- `getDateFormatInfo` from the project's date-format utilities for locale date format strings
|
|
39
|
+
- `getCurrencyOptions` from the project's currency utilities for currency formatting
|
|
40
|
+
- The `Operator` component retrieved from the project's component registry at runtime
|
|
41
|
+
- `format` from the project's formatting helpers for value formatting (phone, email, date, currency, etc.)
|
|
42
|
+
- Companion styles (for status field and grid styling) co-located following the project's styling convention
|
|
43
|
+
|
|
44
|
+
The component is named `CaseSummaryFields` and accepts the inputs listed in the table above. Define the input contract and export the component following the project's framework conventions.
|
|
45
|
+
|
|
46
|
+
### Component Logic
|
|
47
|
+
|
|
48
|
+
The component performs these steps in order:
|
|
49
|
+
|
|
50
|
+
1. **Resolve Operator** — retrieve the `Operator` component from the project's component registry (allows runtime override).
|
|
51
|
+
2. **Receive inputs** — extract `status`, `showStatus`, and `theFields`.
|
|
52
|
+
3. **Declare state** — two state variables:
|
|
53
|
+
- `theFieldsToRender` (array) — the final fields array after status injection.
|
|
54
|
+
- `theFieldsAsGridItems` (array) — the rendered grid item elements.
|
|
55
|
+
4. **Define `getFieldValue(field)` helper** — a type-based rendering switch (see Behavioral Contract #4 for the full type-to-rendering table).
|
|
56
|
+
5. **Lifecycle effect on `theFieldsToRender`** — when `theFieldsToRender` changes, recompute `theFieldsAsGridItems` by mapping each field:
|
|
57
|
+
- Skip fields where `config.visibility` exists and is `false`.
|
|
58
|
+
- For visible fields, render a grid cell (6 of 12 columns) keyed by `field.config.label`, containing `getFieldValue(field)`.
|
|
59
|
+
6. **Status injection** — if `showStatus` is `true` AND `theFields[1].type !== 'status'`, inject a status entry at position 1 (an object with `type: 'status'` and `config` containing `value` from the `status` input and `label` set to `'Status'`). If the array has fewer than 2 items, append at the end instead.
|
|
60
|
+
7. **Deep equality guard** — only update `theFieldsToRender` with the new array if it is NOT deep-equal to the current `theFieldsToRender` (prevents infinite re-render/change-detection loops).
|
|
61
|
+
8. **Render** — return a grid container with class `psdk-case-summary-fields` containing `theFieldsAsGridItems` (a 2-column layout).
|
|
62
|
+
|
|
63
|
+
### FieldConfig shape (within each item in `theFields`)
|
|
64
|
+
|
|
65
|
+
| Property | Type | Description |
|
|
66
|
+
| ----------------- | -------------------- | ----------------------------------------- |
|
|
67
|
+
| `label` | `string` | Field label |
|
|
68
|
+
| `value` | `any` | Field value |
|
|
69
|
+
| `visibility` | `boolean` (optional) | If `false`, the field is hidden |
|
|
70
|
+
| `caption` | `string` (optional) | Alternative label for checkbox fields |
|
|
71
|
+
| `trueLabel` | `string` (optional) | Display text when checkbox value is true |
|
|
72
|
+
| `falseLabel` | `string` (optional) | Display text when checkbox value is false |
|
|
73
|
+
| `currencyISOCode` | `string` (optional) | ISO currency code for currency fields |
|
|
74
|
+
|
|
75
|
+
## Behavioral Contract
|
|
76
|
+
|
|
77
|
+
### 1. Status Field Injection
|
|
78
|
+
|
|
79
|
+
Before rendering, if `showStatus` is `true` AND `theFields[1].type !== 'status'`, inject a status entry at position 1 — an object with `type` set to `'status'` and `config` containing `value` (from the `status` input) and `label` set to `'Status'`. If the fields array has fewer than 2 items, append the status entry at the end.
|
|
80
|
+
|
|
81
|
+
### 2. State Management with Deep Equality
|
|
82
|
+
|
|
83
|
+
- Store the final fields array in `theFieldsToRender` state.
|
|
84
|
+
- Only update `theFieldsToRender` if the new value is not deep-equal to the current value (use a deep-equality utility).
|
|
85
|
+
- When `theFieldsToRender` changes, recompute `theFieldsAsGridItems` (via a lifecycle effect).
|
|
86
|
+
|
|
87
|
+
### 3. Field Visibility
|
|
88
|
+
|
|
89
|
+
Skip any field where `config.visibility` exists and is `false`.
|
|
90
|
+
|
|
91
|
+
### 4. Type-Based Rendering (`getFieldValue(field)`)
|
|
92
|
+
|
|
93
|
+
When `field.config.value` is `null` or `''` (empty):
|
|
94
|
+
|
|
95
|
+
- For `caseoperator`: render the `Operator` component with `field.config` spread as inputs.
|
|
96
|
+
- For all other types: render a read-only text display element with value `'---'` and the field label.
|
|
97
|
+
|
|
98
|
+
When `field.config.value` is non-empty, switch on `field.type.toLowerCase()`:
|
|
99
|
+
|
|
100
|
+
| Type | Rendering |
|
|
101
|
+
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
102
|
+
| `textinput`, `decimal`, `integer`, `dropdown` | Read-only text display (no underline) with `value` and `label` |
|
|
103
|
+
| `checkbox` | Label: `label \|\| caption`; Value: `value ? trueLabel : falseLabel`; read-only text display |
|
|
104
|
+
| `status` | Read-only text display with class `psdk-csf-status-style` (uppercase, small, bold) |
|
|
105
|
+
| `phone` | `<a href={'tel:' + value}>` wrapping a read-only text display with pointer cursor |
|
|
106
|
+
| `email` | `<a href={'mailto:' + format(value, 'email')}>` wrapping a read-only text display with pointer cursor |
|
|
107
|
+
| `date` | Read-only text display with `format(value, 'date', { format: dateFormatStringLong })` |
|
|
108
|
+
| `datetime` | Read-only text display with `format(value, 'datetime', { format: dateFormatStringLong + ' hh:mm a' })` |
|
|
109
|
+
| `currency` | Read-only text display with `format(value, 'currency', getCurrencyOptions(currencyISOCode))` |
|
|
110
|
+
| `boolean`, `userreference` | Read-only text display with `format(value, type)` |
|
|
111
|
+
| `caseoperator` | Render the `Operator` component with `field.config` as inputs |
|
|
112
|
+
| default (unknown) | `<span>{type} {value}</span>` |
|
|
113
|
+
|
|
114
|
+
All read-only text display elements use: no underline/border, read-only state, with the field label shown above the value.
|
|
115
|
+
|
|
116
|
+
### 5. Grid Layout
|
|
117
|
+
|
|
118
|
+
Render each visible field in a grid cell (6 of 12 columns — 2-column layout) inside a grid container with class `psdk-case-summary-fields`.
|
|
119
|
+
|
|
120
|
+
## Visual Specifications
|
|
121
|
+
|
|
122
|
+
Derived from the component's companion styles:
|
|
123
|
+
|
|
124
|
+
### Status Field
|
|
125
|
+
|
|
126
|
+
| Property | Value |
|
|
127
|
+
| -------------- | -------------------------------- |
|
|
128
|
+
| Display | inline-block |
|
|
129
|
+
| Font size | 0.75rem |
|
|
130
|
+
| Font weight | bold |
|
|
131
|
+
| Line height | `calc(0.5rem * 2.5)` (≈ 1.25rem) |
|
|
132
|
+
| Height | `calc(0.5rem * 2.5)` (≈ 1.25rem) |
|
|
133
|
+
| Text transform | uppercase |
|
|
134
|
+
|
|
135
|
+
### Summary Grid Container
|
|
136
|
+
|
|
137
|
+
| Property | Value |
|
|
138
|
+
| -------- | --------------------------- |
|
|
139
|
+
| Padding | `calc(2 * 0.5rem)` (≈ 1rem) |
|
|
140
|
+
| Row gap | `calc(2 * 0.5rem)` (≈ 1rem) |
|
|
141
|
+
|
|
142
|
+
**CSS-only implementation notes:**
|
|
143
|
+
|
|
144
|
+
- Summary grid: `display: grid; grid-template-columns: 1fr 1fr; padding: 1rem; row-gap: 1rem`.
|
|
145
|
+
- Each field cell: standard read-only text display with label above value.
|
|
146
|
+
- Status text: `font-size: 0.75rem; font-weight: bold; text-transform: uppercase; line-height: 1.25rem`.
|
|
147
|
+
- Phone/email links: `text-decoration: none; color: inherit` on the `<a>` wrapper; use `cursor: pointer` on the inner input.
|
|
148
|
+
- Read-only field pair: label in secondary text color (`font-weight: 400; color: var(--text-secondary); font-size: 0.75rem`), value in primary text color below.
|
|
149
|
+
|
|
150
|
+
## Edge Cases & Special Logic
|
|
151
|
+
|
|
152
|
+
- Use deep equality before updating `theFieldsToRender` to prevent infinite re-render loops.
|
|
153
|
+
- Status splicing mutates `theFields` directly — ensure the original array reference is used (not a copy) when checking `theFields[1].type`.
|
|
154
|
+
- Date format comes from `getDateFormatInfo().dateFormatStringLong` — defaults to locale format.
|
|
155
|
+
- Currency options come from `getCurrencyOptions(field.config?.currencyISOCode)`.
|
|
156
|
+
- The `Operator` component is retrieved from the project's component registry — not imported directly. This allows runtime component override.
|
|
157
|
+
- If `theFields` is null or undefined, initialize to empty to avoid crashes.
|
|
158
|
+
|
|
159
|
+
## Dependencies
|
|
160
|
+
|
|
161
|
+
- The project's component registry — to retrieve the `Operator` component at runtime
|
|
162
|
+
- A deep-equality utility — for state change detection
|
|
163
|
+
- The project's date-format utility — for locale date format string
|
|
164
|
+
- The project's currency utility — for currency formatting options
|
|
165
|
+
- The project's formatting helper — for formatting phone, email, date, datetime, currency, boolean, userreference values
|
|
166
|
+
- `Operator` component (resolved via registry) — for `caseoperator` type rendering
|
|
167
|
+
|
|
168
|
+
## Design System Mapping
|
|
169
|
+
|
|
170
|
+
**UI control type:** 2-column grid of read-only labeled field values.
|
|
171
|
+
|
|
172
|
+
When implementing in a specific design system, map the following:
|
|
173
|
+
|
|
174
|
+
- **Grid layout** → use the DS's grid system to create a 2-column responsive layout (each cell occupies 6 of 12 columns)
|
|
175
|
+
- **Read-only text display** (label above value, no underline) → use the DS's form field in read-only/display mode, or a simple label/value pair with appropriate typography
|
|
176
|
+
- **Phone field** → wrap in an `<a href='tel:...'>` link with pointer cursor
|
|
177
|
+
- **Email field** → wrap in an `<a href='mailto:...'>` link with pointer cursor
|
|
178
|
+
- **Status field** → uppercase badge/chip or styled text (font-size: 0.75rem, bold, uppercase)
|
|
179
|
+
- **`caseoperator` type** → delegate to the `Operator` component from the registry
|
|
180
|
+
- **Missing/empty value** → always display `'---'`
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Skill: DetailsFields
|
|
2
|
+
|
|
3
|
+
Read-only field display component that receives an array of PConnect-aware field objects and renders each as a label/value pair. Delegates value rendering to the PConnect bridge component in DISPLAY_ONLY mode.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`design-system-extension.md`](../design-system-extension.md) — covers architecture, input contracts, styling patterns, and registration patterns common to ALL DSE components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders a vertical list of read-only field name/value pairs for a details/summary panel. Each field is a PConnect-aware object. The component extracts type, label, and view config from each field's PConnect, forces the view into `readOnly + DISPLAY_ONLY` mode, and delegates rendering to the PConnect bridge component.
|
|
12
|
+
|
|
13
|
+
Supports three item layouts:
|
|
14
|
+
|
|
15
|
+
- **Reference type:** Renders the value directly (no label/value grid wrapper).
|
|
16
|
+
- **Rendered component value:** Renders value in a single full-width cell (no label).
|
|
17
|
+
- **Label + value pair:** Renders label in a 6-col cell and value in a 6-col cell.
|
|
18
|
+
|
|
19
|
+
## Pega Metadata
|
|
20
|
+
|
|
21
|
+
- **Pega Name:** `DetailsFields`
|
|
22
|
+
- **Registration key:** `DetailsFields` (in the project's component map)
|
|
23
|
+
- **Does NOT use `getPConnect` on the component itself** — iterates `fields[]` each of which has `.getPConnect()`
|
|
24
|
+
|
|
25
|
+
## Component Inputs
|
|
26
|
+
|
|
27
|
+
The component accepts the following inputs. Define the input contract using the project's framework conventions.
|
|
28
|
+
|
|
29
|
+
| Name | Type | Required | Description |
|
|
30
|
+
| -------- | ------- | -------- | ----------------------------------------------------------------------------- |
|
|
31
|
+
| `fields` | `any[]` | Yes | Array of PConnect-aware field objects. Each must have `.getPConnect()` method |
|
|
32
|
+
|
|
33
|
+
## Implementation Structure
|
|
34
|
+
|
|
35
|
+
### Module Setup
|
|
36
|
+
|
|
37
|
+
The component imports the following dependencies:
|
|
38
|
+
|
|
39
|
+
- A utility to check if a value is a rendered component element (to distinguish rendered child components from plain string/primitive values)
|
|
40
|
+
- The project's PConnect bridge component — renders PConnect-configured children
|
|
41
|
+
- `format` from the project's formatting helpers — for date value formatting
|
|
42
|
+
|
|
43
|
+
The component is named `DetailsFields` and accepts the inputs listed in the table above. Define the input contract and export the component following the project's framework conventions.
|
|
44
|
+
|
|
45
|
+
### Component Logic
|
|
46
|
+
|
|
47
|
+
The component receives `fields` (defaults to `[]`) as input, then performs two phases:
|
|
48
|
+
|
|
49
|
+
**Phase 1: Build field components array**
|
|
50
|
+
|
|
51
|
+
Iterate over `fields` using `forEach`. For each field:
|
|
52
|
+
|
|
53
|
+
1. Call `field.getPConnect()` to obtain the PConnect instance (`thePConn`).
|
|
54
|
+
2. Get `theCompType = thePConn.getComponentName().toLowerCase()`.
|
|
55
|
+
3. Get `label` from `thePConn.getConfigProps()`.
|
|
56
|
+
4. Get the referenced view config: `configObj = thePConn.getReferencedView()`.
|
|
57
|
+
5. Force display-only mode: set `configObj.config.readOnly = true` and `configObj.config.displayMode = 'DISPLAY_ONLY'`.
|
|
58
|
+
6. For `reference` type components: override the label with `thePConn.getInheritedProps()?.label`.
|
|
59
|
+
7. Render the value by invoking the PConnect bridge component with `thePConn.getReferencedViewPConnect()` as its configuration.
|
|
60
|
+
8. Push an object with `{ type, label, value }` into the field components array.
|
|
61
|
+
|
|
62
|
+
**Phase 2: Render grid items**
|
|
63
|
+
|
|
64
|
+
Return a fragment containing the mapped field components. For each field, choose the layout:
|
|
65
|
+
|
|
66
|
+
- **`type === 'reference'`** — render `field.value` directly with no grid wrapper.
|
|
67
|
+
- **Value is a rendered element/component** — render a grid row with a single 12-column cell containing `field.value` (full width, no label).
|
|
68
|
+
- **Default (primitive/string value)** — render a grid row (with `padding: 4px 0`) containing:
|
|
69
|
+
- A 6-column label cell with body-small text, secondary text color, `fontWeight: 400`.
|
|
70
|
+
- A 6-column value cell with body-small text, primary text color. Format the value using `format(value, 'date')` if `type === 'date'`, otherwise use value as-is. If the formatted value is `undefined` or empty string, display `'---'`.
|
|
71
|
+
|
|
72
|
+
## Behavioral Contract
|
|
73
|
+
|
|
74
|
+
### 1. Field Iteration and PConnect Setup
|
|
75
|
+
|
|
76
|
+
For each field in `fields`:
|
|
77
|
+
|
|
78
|
+
1. Call `field.getPConnect()` to get `thePConn`.
|
|
79
|
+
2. Get `theCompType = thePConn.getComponentName().toLowerCase()`.
|
|
80
|
+
3. Get `label = thePConn.getConfigProps().label`.
|
|
81
|
+
4. Call `configObj = thePConn.getReferencedView()` — get the referenced view config object.
|
|
82
|
+
5. Set `configObj.config.readOnly = true` and `configObj.config.displayMode = 'DISPLAY_ONLY'` — forces display-only rendering.
|
|
83
|
+
6. For `reference` type: override label with `thePConn.getInheritedProps().label`.
|
|
84
|
+
7. Render the value using the PConnect bridge component with `thePConn.getReferencedViewPConnect()` as its configuration.
|
|
85
|
+
8. Push `{ type: theCompType, label, value: renderedElement }` into the field components array.
|
|
86
|
+
|
|
87
|
+
### 2. Item Layout (per field component)
|
|
88
|
+
|
|
89
|
+
Choose the layout based on the field:
|
|
90
|
+
|
|
91
|
+
| Condition | Layout |
|
|
92
|
+
| ------------------------------------- | ------------------------------------------------------ |
|
|
93
|
+
| `type === 'reference'` | Render `field.value` directly with no wrapper |
|
|
94
|
+
| Value is a rendered element/component | Single 12-col cell containing `field.value` (no label) |
|
|
95
|
+
| Default (string/primitive value) | 6-col label cell + 6-col value cell |
|
|
96
|
+
|
|
97
|
+
### 3. Label/Value Grid Row
|
|
98
|
+
|
|
99
|
+
- **Row wrapper:** a grid container with spacing and `padding: 4px 0`
|
|
100
|
+
- **Label cell:** 6 of 12 columns containing a body-small text element with secondary text color, `fontWeight: 400`, displaying `field.label`
|
|
101
|
+
- **Value cell:** 6 of 12 columns containing a body-small text element with primary text color, displaying the formatted value
|
|
102
|
+
|
|
103
|
+
### 4. Value Formatting
|
|
104
|
+
|
|
105
|
+
- For `date` type: call `format(value, 'date')` before display.
|
|
106
|
+
- For all others: use value as-is.
|
|
107
|
+
- If formatted value is `undefined` or `''`, display `'---'` instead.
|
|
108
|
+
|
|
109
|
+
### 5. Rendered element detection
|
|
110
|
+
|
|
111
|
+
Use the framework's equivalent of checking if a value is a rendered/component element — if true, render full-width (12 cols) without label.
|
|
112
|
+
|
|
113
|
+
## Visual Specifications
|
|
114
|
+
|
|
115
|
+
Derived from the component's companion styles:
|
|
116
|
+
|
|
117
|
+
### Label
|
|
118
|
+
|
|
119
|
+
| Property | Value |
|
|
120
|
+
| ----------- | ------------------------------------------------------------------------------------- |
|
|
121
|
+
| Display | block |
|
|
122
|
+
| Font weight | 400 |
|
|
123
|
+
| Color | secondary text color (e.g. `theme.palette.text.secondary` or `var(--text-secondary)`) |
|
|
124
|
+
| Typography | body-small (≈ 0.875rem / 14px) |
|
|
125
|
+
|
|
126
|
+
### Value
|
|
127
|
+
|
|
128
|
+
| Property | Value |
|
|
129
|
+
| ----------- | ------------------------------------------------------------------------------- |
|
|
130
|
+
| Font weight | 400 |
|
|
131
|
+
| Color | primary text color (e.g. `theme.palette.text.primary` or `var(--text-primary)`) |
|
|
132
|
+
| Typography | body-small (≈ 0.875rem / 14px) |
|
|
133
|
+
|
|
134
|
+
### Row Padding
|
|
135
|
+
|
|
136
|
+
| Property | Value |
|
|
137
|
+
| --------- | ------------------ |
|
|
138
|
+
| Row style | `padding: 4px 0px` |
|
|
139
|
+
|
|
140
|
+
**CSS-only implementation notes:**
|
|
141
|
+
|
|
142
|
+
- Each row: `display: grid; grid-template-columns: 1fr 1fr; padding: 4px 0; gap: 8px`.
|
|
143
|
+
- Label: `font-size: 0.875rem; font-weight: 400; color: var(--text-secondary); display: block`.
|
|
144
|
+
- Value: `font-size: 0.875rem; font-weight: 400; color: var(--text-primary)`.
|
|
145
|
+
- For a rendered element value (full-width): render in a single column spanning full width.
|
|
146
|
+
- For a reference type: render the component directly with no wrapping grid.
|
|
147
|
+
|
|
148
|
+
## Edge Cases & Special Logic
|
|
149
|
+
|
|
150
|
+
- `fields` defaults to `[]` — guard against null/undefined.
|
|
151
|
+
- Reference fields bypass the label/value layout entirely — their rendered output fills the full row.
|
|
152
|
+
- Rendered element values (e.g., from child components) are detected using the framework's element-check utility and rendered full-width without a label cell.
|
|
153
|
+
- The `configObj` mutation (`readOnly = true`, `displayMode = 'DISPLAY_ONLY'`) happens on the object returned by `getReferencedView()` — this is intentional side-effectful configuration.
|
|
154
|
+
- `format(value, 'date')` is only called for `date` type — all other types pass through raw.
|
|
155
|
+
|
|
156
|
+
## Dependencies
|
|
157
|
+
|
|
158
|
+
- The project's PConnect bridge component — used to render each field in DISPLAY_ONLY mode
|
|
159
|
+
- The project's formatting helper — for date formatting
|
|
160
|
+
- A utility to detect rendered elements (framework equivalent of checking if a value is a component/element)
|
|
161
|
+
- Each `field` in `fields[]` must support `.getPConnect()` returning a PConnect object with:
|
|
162
|
+
- `.getComponentName()` → string
|
|
163
|
+
- `.getConfigProps()` → `{ label: string }`
|
|
164
|
+
- `.getReferencedView()` → mutable config object
|
|
165
|
+
- `.getReferencedViewPConnect()` → configuration for the PConnect bridge component
|
|
166
|
+
- `.getInheritedProps()` → `{ label?: string }` (for reference type)
|
|
167
|
+
|
|
168
|
+
## Design System Mapping
|
|
169
|
+
|
|
170
|
+
**UI control type:** Vertical list of read-only label/value field pairs with PConnect delegation.
|
|
171
|
+
|
|
172
|
+
When implementing in a specific design system, map the following:
|
|
173
|
+
|
|
174
|
+
- **Grid rows** → use the DS's grid system with 2 columns (6/12 + 6/12) per label/value pair
|
|
175
|
+
- **Label** → secondary/muted text, body-small size (~0.875rem), `fontWeight: 400`
|
|
176
|
+
- **Value** → primary text, body-small size (~0.875rem), `fontWeight: 400`
|
|
177
|
+
- **Row padding** → `4px 0` vertical spacing between pairs
|
|
178
|
+
- **Full-width value (rendered element)** → single column spanning full width, no label
|
|
179
|
+
- **Reference type** → render the child component without any label wrapper
|
|
180
|
+
- **Empty value** → display `'---'`
|