@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/FieldGroup.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Skill: FieldGroup
|
|
2
|
+
|
|
3
|
+
Collapsible or static container that groups related fields under an optional section header and instructions text.
|
|
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 labeled section that wraps one or more field components. Supports optional:
|
|
12
|
+
|
|
13
|
+
- **Section name** — rendered as a bold header above the fields.
|
|
14
|
+
- **Collapsible behavior** — the name header becomes a toggle that shows/hides the fields.
|
|
15
|
+
- **Instructions text** — rendered as HTML below the header and above the fields.
|
|
16
|
+
|
|
17
|
+
Children are rendered inside a full-width inner container.
|
|
18
|
+
|
|
19
|
+
## Pega Metadata
|
|
20
|
+
|
|
21
|
+
- **Pega Name:** `FieldGroup`
|
|
22
|
+
- **Registration key:** `FieldGroup` (in the project's component map)
|
|
23
|
+
- **Does NOT use `getPConnect`** — receives children via framework's content projection mechanism
|
|
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
|
+
| `children` | renderable content | No | Field components to render inside the group |
|
|
32
|
+
| `name` | `string` | No | Section heading displayed above the fields |
|
|
33
|
+
| `collapsible` | `boolean` | No | If `true`, the header acts as a collapse/expand toggle. Default `false` |
|
|
34
|
+
| `instructions` | `string` | No | HTML string of instruction text shown between header and fields |
|
|
35
|
+
|
|
36
|
+
## Implementation Structure
|
|
37
|
+
|
|
38
|
+
### Module Setup
|
|
39
|
+
|
|
40
|
+
The component accepts children via the framework's content projection mechanism. It maintains local state for the collapsed/expanded toggle. It does NOT import any Pega SDK modules.
|
|
41
|
+
|
|
42
|
+
The component is named `FieldGroup` and accepts the inputs listed in the table above. Define the input contract and export the component following the project's framework conventions.
|
|
43
|
+
|
|
44
|
+
### Component Logic
|
|
45
|
+
|
|
46
|
+
The component receives `children`, `name`, `collapsible` (defaults to `false`), and `instructions` as inputs. It maintains a `collapsed` boolean state initialized to `false` (expanded). The render tree is:
|
|
47
|
+
|
|
48
|
+
1. **Outer container** — a Grid container with `spacing={4}` and `justifyContent: 'space-between'`.
|
|
49
|
+
2. **Inner full-width wrapper** — a single Grid item at full width containing all content.
|
|
50
|
+
3. **Header section** (conditional — only if `name` is provided):
|
|
51
|
+
- Wrapped in a div with margin/padding styling (top/bottom padding of 1 spacing unit, top margin of 1 spacing unit).
|
|
52
|
+
- **Non-collapsible** (`collapsible === false`): render `<b>{name}</b>` as static bold text.
|
|
53
|
+
- **Collapsible** (`collapsible === true`): render a clickable `<span>` with `id="field-group-header"`, flex layout (`display: flex; align-items: center; gap: 5px`), and `cursor: pointer`. Inside the span:
|
|
54
|
+
- A directional arrow icon: **right-pointing arrow** when `collapsed === true`, **down-pointing arrow** when `collapsed === false`.
|
|
55
|
+
- Bold name text: `<b>{name}</b>`.
|
|
56
|
+
- Clicking the span toggles `collapsed` state.
|
|
57
|
+
4. **Instructions section** (conditional — only if `instructions` is provided AND is not the literal string `'none'`):
|
|
58
|
+
- Render a div with class `instruction-text` (padding: `5px 0`) using the framework's trusted HTML injection mechanism.
|
|
59
|
+
5. **Children section** (conditional — only if `collapsed === false`):
|
|
60
|
+
- Render children inside a full-width container div (`width: 100%`) wrapped in a Grid container.
|
|
61
|
+
|
|
62
|
+
## Behavioral Contract
|
|
63
|
+
|
|
64
|
+
1. **State:** Maintain a `collapsed` boolean in local state, initialized to `false` (expanded).
|
|
65
|
+
2. **Name rendering:**
|
|
66
|
+
- If `name` is not provided, render no header.
|
|
67
|
+
- If `name` is provided and `collapsible` is `false`, render `<b>{name}</b>`.
|
|
68
|
+
- If `name` is provided and `collapsible` is `true`, wrap in a clickable `<span>` with:
|
|
69
|
+
- `id='field-group-header'`
|
|
70
|
+
- A directional arrow icon: **right arrow** when `collapsed === true`, **down arrow** when `collapsed === false`.
|
|
71
|
+
- The bold name text beside the arrow.
|
|
72
|
+
- Clicking the span toggles `collapsed`.
|
|
73
|
+
3. **Instructions:** If `instructions` is provided AND is not the string `'none'`, render it using the framework's trusted HTML injection mechanism.
|
|
74
|
+
4. **Children:** Render children inside a full-width div. If `collapsed` is `true`, do NOT render children (or instructions).
|
|
75
|
+
5. **Header cursor:** When `collapsible` is `true`, the header span uses `cursor: pointer`. When `collapsible` is `false`, cursor is `auto`.
|
|
76
|
+
6. **Layout:** All content is wrapped in a `Grid container` with `spacing={4}` and `justifyContent='space-between'`. The name row and children are inside a single inner `Grid` at full width.
|
|
77
|
+
|
|
78
|
+
## Visual Specifications
|
|
79
|
+
|
|
80
|
+
Derived from the component's companion styles:
|
|
81
|
+
|
|
82
|
+
### Outer Container
|
|
83
|
+
|
|
84
|
+
| Property | Value |
|
|
85
|
+
| -------- | ---------------- |
|
|
86
|
+
| Spacing | 4 units (≈ 32px) |
|
|
87
|
+
|
|
88
|
+
### Component Root Margins
|
|
89
|
+
|
|
90
|
+
| Property | Value |
|
|
91
|
+
| ------------- | ---------------------- |
|
|
92
|
+
| Margin right | 1 spacing unit (≈ 8px) |
|
|
93
|
+
| Margin left | 1 spacing unit |
|
|
94
|
+
| Margin top | 1 spacing unit |
|
|
95
|
+
| Margin bottom | 1 spacing unit |
|
|
96
|
+
|
|
97
|
+
### Field Margin (name row)
|
|
98
|
+
|
|
99
|
+
| Property | Value |
|
|
100
|
+
| -------------- | -------------- |
|
|
101
|
+
| Padding top | 1 spacing unit |
|
|
102
|
+
| Padding bottom | 1 spacing unit |
|
|
103
|
+
| Margin top | 1 spacing unit |
|
|
104
|
+
|
|
105
|
+
### Header Row (collapsible)
|
|
106
|
+
|
|
107
|
+
| Property | Value |
|
|
108
|
+
| ----------- | --------------------------------------------------- |
|
|
109
|
+
| Display | flex |
|
|
110
|
+
| Align items | center |
|
|
111
|
+
| Gap | 5px |
|
|
112
|
+
| Cursor | `pointer` (collapsible) or `auto` (non-collapsible) |
|
|
113
|
+
|
|
114
|
+
### Instructions
|
|
115
|
+
|
|
116
|
+
| Property | Value |
|
|
117
|
+
| -------- | ------- |
|
|
118
|
+
| Padding | `5px 0` |
|
|
119
|
+
|
|
120
|
+
**CSS-only implementation notes:**
|
|
121
|
+
|
|
122
|
+
- Outer wrapper: `margin: 8px`.
|
|
123
|
+
- Name row: `padding: 8px 0; margin-top: 8px`.
|
|
124
|
+
- Collapsible header: `display: flex; align-items: center; gap: 5px; cursor: pointer; user-select: none`.
|
|
125
|
+
- Non-collapsible name: plain `<b>` with no wrapper.
|
|
126
|
+
- Instructions: `padding: 5px 0`.
|
|
127
|
+
- Arrow icons: use Unicode or inline SVG — collapsed → `▶` / `›`, expanded → `▼` / `⌄`.
|
|
128
|
+
- Children wrapper: `width: 100%`.
|
|
129
|
+
- When collapsed, use `display: none` or conditional rendering to hide children.
|
|
130
|
+
|
|
131
|
+
## Edge Cases & Special Logic
|
|
132
|
+
|
|
133
|
+
- If `collapsible` is `false` (default), the `collapsed` state is never changed — clicking the name does nothing.
|
|
134
|
+
- `instructions` equal to the string `'none'` must NOT be rendered (skip entirely).
|
|
135
|
+
- `instructions` is rendered as raw HTML — ensure the content is trusted (server-side).
|
|
136
|
+
- If `name` is absent, render no header row, but still render instructions (if any) and children.
|
|
137
|
+
|
|
138
|
+
## Dependencies
|
|
139
|
+
|
|
140
|
+
- No Pega SDK imports required (no `getPConnect`)
|
|
141
|
+
- Arrow icons: use a right-pointing arrow icon (collapsed) and a down-pointing arrow icon (expanded) from the chosen design system's icon set, or use Unicode characters (`▶`/`▼` or `›`/`⌄`)
|
|
142
|
+
|
|
143
|
+
## Design System Mapping
|
|
144
|
+
|
|
145
|
+
**UI control type:** Collapsible section container with label, instructions, and children.
|
|
146
|
+
|
|
147
|
+
When implementing in a specific design system, map the following:
|
|
148
|
+
|
|
149
|
+
- **Collapse toggle** → use the DS's collapse/accordion component if available, or implement manually with local state toggling visibility of the children section
|
|
150
|
+
- **Arrow direction icon** → use the DS's chevron/arrow icon that points right when collapsed and down when expanded
|
|
151
|
+
- **`instructions` HTML** → render as raw/trusted HTML content using the framework's mechanism for injecting HTML strings
|
|
152
|
+
- **Full-width children** → ensure the children container spans the full group width
|
|
153
|
+
- **Header click** → when `collapsible` is `true`, the entire header row (icon + name) is clickable and toggles the collapsed state
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Skill: FieldGroupList
|
|
2
|
+
|
|
3
|
+
Repeating list of named field groups, each with its own children. Supports per-item delete and a global "+Add" link at the bottom.
|
|
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 field group items. Each item has a bold name header, optional delete button (top-right), and rendered children (the group's fields). An optional "+Add" link appears at the bottom when adding is allowed. A horizontal divider separates items when `onAdd` is provided.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Pega Name:** `FieldGroupList`
|
|
16
|
+
- **Registration key:** `FieldGroupList` (in the project's component map)
|
|
17
|
+
- **Does NOT use `getPConnect`** — receives all data as direct inputs
|
|
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
|
+
| `items` | `Array<{ name: string; id: string; children: renderable content }>` | Yes | List of field group items to render |
|
|
26
|
+
| `onDelete` | `(id: string) => void` | No | Called with the item's `id` when the delete button is clicked. If not provided, no delete button is shown |
|
|
27
|
+
| `onAdd` | `() => void` | No | Called when the "+Add" link is clicked. If not provided, no add link or dividers are shown |
|
|
28
|
+
|
|
29
|
+
## Implementation Structure
|
|
30
|
+
|
|
31
|
+
### Module Setup
|
|
32
|
+
|
|
33
|
+
The component uses the project's utility helper to resolve the trash icon path. It does NOT import any Pega SDK modules.
|
|
34
|
+
|
|
35
|
+
The component is named `FieldGroupList` and accepts the inputs listed in the table above. Define the input contract and export the component following the project's framework conventions.
|
|
36
|
+
|
|
37
|
+
### Component Logic
|
|
38
|
+
|
|
39
|
+
The component receives `items`, `onDelete`, and `onAdd` as inputs. At the top of the logic, resolve the trash icon source: call `Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl())` and store the result.
|
|
40
|
+
|
|
41
|
+
The render tree is:
|
|
42
|
+
|
|
43
|
+
1. **Outer container** — a grid container with spacing of 4 units (≈32px) and `justifyContent: 'space-between'`.
|
|
44
|
+
2. **Inner full-width wrapper** — a single grid cell at full width.
|
|
45
|
+
3. **Inner grid** — a grid container with spacing of 1 unit (≈8px), containing the iterated items.
|
|
46
|
+
4. **Item iteration** — for each item in `items`, render a full-width grid cell keyed by `item.name`:
|
|
47
|
+
- Render `<b>{item.name}</b>` as the item header.
|
|
48
|
+
- **Delete button** (conditional — only if `onDelete` is provided):
|
|
49
|
+
- Floated right (`float: right`).
|
|
50
|
+
- `type="button"`, `id` set to `"delete-row-{item.id}"`, `aria-label="Delete Row"`.
|
|
51
|
+
- Class: `psdk-utility-button`.
|
|
52
|
+
- On click: call `onDelete(item.id)`.
|
|
53
|
+
- Contains an `<img>` with class `psdk-utility-card-action-svg-icon` and `src` set to the resolved trash icon path.
|
|
54
|
+
- Render `{item.children}` (the field group content).
|
|
55
|
+
- Render a `<br />` for spacing.
|
|
56
|
+
- **Divider** (conditional — only if `onAdd` is provided): render a horizontal divider element followed by another `<br />`.
|
|
57
|
+
5. **Add link** (conditional — only if `onAdd` is provided):
|
|
58
|
+
- After all items, render a clickable link with text `"+Add"`, `cursor: pointer`, underline on hover, and click handler wired to `onAdd`.
|
|
59
|
+
|
|
60
|
+
## Behavioral Contract
|
|
61
|
+
|
|
62
|
+
1. Render a grid container with spacing of 4 units (≈32px) and `justifyContent='space-between'` as the outer wrapper.
|
|
63
|
+
2. Inside, render a full-width inner grid with spacing of 1 unit (≈8px).
|
|
64
|
+
3. For **each item** in `items`:
|
|
65
|
+
- Render a full-width grid cell keyed by `item.name`.
|
|
66
|
+
- Render `<b>{item.name}</b>` as the item header.
|
|
67
|
+
- If `onDelete` is provided, render a delete button:
|
|
68
|
+
- Floated right.
|
|
69
|
+
- `type='button'`, `id={'delete-row-' + item.id}`, `aria-label='Delete Row'`.
|
|
70
|
+
- Button class: `psdk-utility-button`.
|
|
71
|
+
- On click: call `onDelete(item.id)`.
|
|
72
|
+
- Button contains an `<img>` with the trash icon loaded via `Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl())`.
|
|
73
|
+
- Image class: `psdk-utility-card-action-svg-icon`.
|
|
74
|
+
- Render `{item.children}`.
|
|
75
|
+
- Render `<br />`.
|
|
76
|
+
- If `onAdd` is provided: render a horizontal divider, then `<br />`.
|
|
77
|
+
4. After all items, if `onAdd` is provided, render a clickable link element with text `'+Add'`, `cursor: pointer`, and click handler calling `onAdd`.
|
|
78
|
+
|
|
79
|
+
## Visual Specifications
|
|
80
|
+
|
|
81
|
+
Derived from the component source:
|
|
82
|
+
|
|
83
|
+
### Outer Layout
|
|
84
|
+
|
|
85
|
+
| Property | Value |
|
|
86
|
+
| ---------------------- | ---------- |
|
|
87
|
+
| Grid container spacing | 4 (≈ 32px) |
|
|
88
|
+
|
|
89
|
+
### Delete Button
|
|
90
|
+
|
|
91
|
+
| Property | Value |
|
|
92
|
+
| ----------- | ----------------------------------------------------------- |
|
|
93
|
+
| Float | right |
|
|
94
|
+
| Style class | `psdk-utility-button` |
|
|
95
|
+
| Icon source | `Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl())` |
|
|
96
|
+
|
|
97
|
+
### "+Add" Link
|
|
98
|
+
|
|
99
|
+
| Property | Value |
|
|
100
|
+
| --------- | -------- |
|
|
101
|
+
| Cursor | pointer |
|
|
102
|
+
| Underline | hover |
|
|
103
|
+
| Text | `'+Add'` |
|
|
104
|
+
|
|
105
|
+
**CSS-only implementation notes:**
|
|
106
|
+
|
|
107
|
+
- Outer wrapper: `display: flex; flex-direction: column; gap: 32px`.
|
|
108
|
+
- Item wrapper: `display: flex; flex-direction: column; gap: 8px; width: 100%`.
|
|
109
|
+
- Item header row: `display: flex; justify-content: space-between; align-items: center`.
|
|
110
|
+
- Delete button: `float: right` (or use flexbox `justify-content: space-between` on the header row instead).
|
|
111
|
+
- Delete icon: `width: 20px; height: 20px` SVG image of a trash/delete icon.
|
|
112
|
+
- Divider: `border-top: 1px solid var(--divider-color); margin: 8px 0`.
|
|
113
|
+
- "+Add" link: `cursor: pointer; text-decoration: underline; color: var(--app-primary-color)`.
|
|
114
|
+
|
|
115
|
+
## Edge Cases & Special Logic
|
|
116
|
+
|
|
117
|
+
- If `items` is empty, render only the "+Add" link (if `onAdd` is provided).
|
|
118
|
+
- If neither `onDelete` nor `onAdd` is provided, the list is read-only (no interactive elements).
|
|
119
|
+
- The trash icon is loaded dynamically via `Utils.getImageSrc` — if this utility is unavailable, fall back to a standard `🗑` character or an SVG trash icon.
|
|
120
|
+
- The delete button must use `type='button'` to prevent form submission.
|
|
121
|
+
|
|
122
|
+
## Dependencies
|
|
123
|
+
|
|
124
|
+
- The project's `Utils` helper — for `getImageSrc` and `getSDKStaticConentUrl` (used only for the trash icon)
|
|
125
|
+
- No Pega SDK `getPConnect` imports required
|
|
126
|
+
|
|
127
|
+
## Design System Mapping
|
|
128
|
+
|
|
129
|
+
**UI control type:** Repeating list of named groups with optional delete and add actions.
|
|
130
|
+
|
|
131
|
+
When implementing in a specific design system, map the following:
|
|
132
|
+
|
|
133
|
+
- **Delete button** → use the DS's icon button or danger-variant button placed at the item top-right. Use a trash/delete icon from the DS's icon set.
|
|
134
|
+
- **Divider between items** → use the DS's horizontal divider/separator component (only when `onAdd` is present)
|
|
135
|
+
- **"+Add" link** → use the DS's link button or text-variant button that calls `onAdd`
|
|
136
|
+
- **Trash icon** → use the DS's delete/trash icon, or fall back to the SDK's `Utils.getImageSrc('trash', ...)` path
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Skill: FieldValueList
|
|
2
|
+
|
|
3
|
+
Single field-value pair display component. Renders a label and value in either an inline (side-by-side) or stacked layout. Also used as a display mode renderer by field components (e.g., `TextInput`, `Dropdown`, 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 single name/value pair in a compact read-only layout. Supports two layout variants:
|
|
12
|
+
|
|
13
|
+
- **Inline:** Label and value are side by side (label 4/12 cols, value 8/12 cols).
|
|
14
|
+
- **Stacked:** Label is on top, value is larger below (both 12/12 cols).
|
|
15
|
+
|
|
16
|
+
When no name is provided, only the value is rendered at full width. Used directly as a display widget and delegated to by field components for their `DISPLAY_ONLY` and `STACKED_LARGE_VAL` display modes.
|
|
17
|
+
|
|
18
|
+
## Pega Metadata
|
|
19
|
+
|
|
20
|
+
- **Pega Name:** `FieldValueList`
|
|
21
|
+
- **Registration key:** `FieldValueList` (in the project's component map)
|
|
22
|
+
- **Does NOT use `getPConnect`** — receives all data as direct inputs
|
|
23
|
+
|
|
24
|
+
## Component Inputs
|
|
25
|
+
|
|
26
|
+
The component accepts the following inputs. Define the input contract using the project's framework conventions.
|
|
27
|
+
|
|
28
|
+
| Name | Type | Required | Description |
|
|
29
|
+
| --------- | --------- | -------- | ----------------------------------------------------- |
|
|
30
|
+
| `name` | `string` | No | Field label. If omitted, only the value is rendered |
|
|
31
|
+
| `value` | `any` | Yes | Field value to display |
|
|
32
|
+
| `variant` | `string` | No | Layout: `'inline'` (default) or `'stacked'` |
|
|
33
|
+
| `isHtml` | `boolean` | No | If `true`, render value as raw HTML (default `false`) |
|
|
34
|
+
|
|
35
|
+
## Implementation Structure
|
|
36
|
+
|
|
37
|
+
### Module Setup
|
|
38
|
+
|
|
39
|
+
The component does NOT import any Pega SDK modules — all data arrives via direct inputs. It uses a grid layout and text elements from the chosen design system.
|
|
40
|
+
|
|
41
|
+
The component is named `FieldValueList` and accepts the inputs listed in the table above. Define the input contract and export the component following the project's framework conventions.
|
|
42
|
+
|
|
43
|
+
### Component Logic
|
|
44
|
+
|
|
45
|
+
The component receives `name`, `value`, `variant` (defaults to `'inline'`), and `isHtml` (defaults to `false`) as inputs, then follows this rendering logic:
|
|
46
|
+
|
|
47
|
+
1. **Empty value fallback** — if `value` is `undefined` or an empty string (`''`), substitute with the placeholder string `'---'`.
|
|
48
|
+
|
|
49
|
+
2. **No-name path** — if `name` is not provided (falsy), render only the value at full width (12 columns):
|
|
50
|
+
- Use heading-6 text (≈1.25rem, weight 500) if `variant === 'stacked'`, otherwise use body-small text (≈0.875rem).
|
|
51
|
+
- If `isHtml` is true, render value as raw HTML.
|
|
52
|
+
- Return early (do not render a label).
|
|
53
|
+
|
|
54
|
+
3. **Stacked variant path** — if `variant === 'stacked'`, render a column-direction layout:
|
|
55
|
+
- **Label row:** full-width (12 columns), with `paddingBottom: 0` to sit tight above the value. Text style: body-small (≈0.875rem), secondary text color, `fontWeight: 400`.
|
|
56
|
+
- **Value row:** full-width (12 columns), with `paddingTop: 0` to sit tight below the label. Text style: heading-6 (≈1.25rem, weight 500, larger/more prominent). If `isHtml`, render as raw HTML.
|
|
57
|
+
|
|
58
|
+
4. **Inline variant path** (default) — render a side-by-side row layout:
|
|
59
|
+
- **Label cell:** occupies 4 of 12 columns. Text style: body-small (≈0.875rem), secondary text color, `fontWeight: 400`. Contains `name`.
|
|
60
|
+
- **Value cell:** occupies 8 of 12 columns (or 12 if no name). Text style: body-small (≈0.875rem), primary text color. If `isHtml`, render as raw HTML.
|
|
61
|
+
|
|
62
|
+
5. **Layout wrapper** — all variants render inside a container row (Grid container) with `spacing={4}` and `justifyContent: 'space-between'`.
|
|
63
|
+
|
|
64
|
+
## Behavioral Contract
|
|
65
|
+
|
|
66
|
+
1. **Empty value fallback:** If `value` is `undefined` or an empty string (`''`), display `'---'` instead.
|
|
67
|
+
2. **No-name case:** If `name` is not provided, render only the value at full width (12 columns) regardless of `variant`.
|
|
68
|
+
3. **Inline variant** (default — `variant !== 'stacked'`):
|
|
69
|
+
- Label column: 4 of 12 columns.
|
|
70
|
+
- Value column: 8 of 12 columns (or 12 if no name).
|
|
71
|
+
- Label: secondary text color, body-small text (≈0.875rem), `fontWeight: 400`.
|
|
72
|
+
- Value: primary text color, body-small text (≈0.875rem).
|
|
73
|
+
4. **Stacked variant** (`variant === 'stacked'`):
|
|
74
|
+
- Label column: 12 of 12, `paddingBottom: 0` (label sits tight above value).
|
|
75
|
+
- Value column: 12 of 12, `paddingTop: 0` (value sits tight below label).
|
|
76
|
+
- Label: secondary text color, body-small text (≈0.875rem), `fontWeight: 400`.
|
|
77
|
+
- Value: primary text color, **heading-6 text** (≈1.25rem, weight 500 — larger / more prominent than inline).
|
|
78
|
+
5. **HTML rendering:** If `isHtml` is `true`, render the formatted value as raw HTML content using the framework's mechanism for injecting HTML strings. The formatted value (with `'---'` fallback) is passed as the HTML content.
|
|
79
|
+
6. **Layout wrapper:** Render everything inside a container row with space-between justification and consistent spacing.
|
|
80
|
+
|
|
81
|
+
## Visual Specifications
|
|
82
|
+
|
|
83
|
+
Derived from the component's companion styles:
|
|
84
|
+
|
|
85
|
+
### Label
|
|
86
|
+
|
|
87
|
+
| Property | Value |
|
|
88
|
+
| ----------- | ------------------------------ |
|
|
89
|
+
| Font weight | 400 |
|
|
90
|
+
| Color | secondary text color (muted) |
|
|
91
|
+
| Text size | body-small (≈ 0.875rem / 14px) |
|
|
92
|
+
|
|
93
|
+
### Value
|
|
94
|
+
|
|
95
|
+
| Property | Value |
|
|
96
|
+
| ------------------- | ---------------------------------------- |
|
|
97
|
+
| Color | primary text color (default) |
|
|
98
|
+
| Text size (inline) | body-small (≈ 0.875rem / 14px) |
|
|
99
|
+
| Text size (stacked) | heading-6 (≈ 1.25rem / 20px, weight 500) |
|
|
100
|
+
|
|
101
|
+
### Padding Adjustments (stacked only)
|
|
102
|
+
|
|
103
|
+
| Property | Value |
|
|
104
|
+
| -------------------- | -------------- |
|
|
105
|
+
| Label bottom padding | `0 !important` |
|
|
106
|
+
| Value top padding | `0 !important` |
|
|
107
|
+
|
|
108
|
+
**CSS-only implementation notes:**
|
|
109
|
+
|
|
110
|
+
- Root row: `display: flex; justify-content: space-between; align-items: baseline; gap: 1rem`.
|
|
111
|
+
- **Inline label:** `flex: 0 0 33%; font-weight: 400; font-size: 0.875rem; color: var(--text-secondary)`.
|
|
112
|
+
- **Inline value:** `flex: 1; font-size: 0.875rem; color: var(--text-primary)`.
|
|
113
|
+
- **Stacked:** `display: flex; flex-direction: column; gap: 0`.
|
|
114
|
+
- **Stacked label:** `font-weight: 400; font-size: 0.875rem; color: var(--text-secondary); margin-bottom: 0`.
|
|
115
|
+
- **Stacked value:** `font-size: 1.25rem; font-weight: 500; color: var(--text-primary); margin-top: 0`.
|
|
116
|
+
|
|
117
|
+
## Edge Cases & Special Logic
|
|
118
|
+
|
|
119
|
+
- `value` can be any type (string, number, boolean, rendered element). Render it as-is unless it's empty/undefined.
|
|
120
|
+
- When `isHtml` is `true`, render the raw HTML from the formatted value using the framework's HTML injection mechanism — do NOT sanitize (the caller is responsible). Ensure value is a string before injecting.
|
|
121
|
+
- When `variant` is `'stacked'` and `name` is absent, render value at 12 cols with heading-6 text.
|
|
122
|
+
- When `variant` is `'inline'` and `name` is absent, render value at 12 cols with body-small text.
|
|
123
|
+
|
|
124
|
+
## Dependencies
|
|
125
|
+
|
|
126
|
+
- No Pega SDK imports required (no `getPConnect`)
|
|
127
|
+
- No helper utilities required
|
|
128
|
+
|
|
129
|
+
## Design System Mapping
|
|
130
|
+
|
|
131
|
+
**UI control type:** Read-only field label/value display pair.
|
|
132
|
+
|
|
133
|
+
When implementing in a specific design system, map the following:
|
|
134
|
+
|
|
135
|
+
- **Label** → secondary/muted text style (body-small size)
|
|
136
|
+
- **Value inline** → same size as label (body-small), primary text color
|
|
137
|
+
- **Value stacked** → larger text (heading-6 equivalent, ≈1.25rem, weight 500)
|
|
138
|
+
- **Empty value** → always display `'---'` (never show blank)
|
|
139
|
+
- **`isHtml` = true** → use the framework's mechanism for rendering raw HTML content
|
|
140
|
+
- **Grid layout** → use the DS's grid system with 4/8 column split (inline) or 12/12 stacked columns
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Read-only display of a Pega case operator (creator or updater). Shows the operator's name and relative timestamp. On click, fetches full operator details from Pega and displays them in a popover.
|
|
4
4
|
|
|
5
|
-
> **Prerequisite skill:** [`design-system-extension.md`](../design-system-extension.md) — covers architecture,
|
|
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
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -13,14 +13,14 @@ Renders a clickable read-only field displaying a case operator's name and the re
|
|
|
13
13
|
## Pega Metadata
|
|
14
14
|
|
|
15
15
|
- **Pega Name:** `Operator`
|
|
16
|
-
- **Registration key:** `Operator` (in
|
|
17
|
-
- **Extends
|
|
16
|
+
- **Registration key:** `Operator` (in the project's component map)
|
|
17
|
+
- **Extends the base component interface** — but does NOT call `getPConnect()`. All rendering data is passed directly as inputs.
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Component Inputs
|
|
20
20
|
|
|
21
|
-
The component
|
|
21
|
+
The component extends the project's base component interface but all rendering data is passed as explicit inputs. Define the input contract using the project's framework conventions.
|
|
22
22
|
|
|
23
|
-
|
|
|
23
|
+
| Name | Type | Required | Description |
|
|
24
24
|
| ---------------- | -------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
25
25
|
| `label` | `string` | Yes | The field label used to identify which operator to display. Must be `'create operator'` or `'update operator'` (case-insensitive). |
|
|
26
26
|
| `displayLabel` | `any` | No | Alternative label (used if `label` doesn't match). Also compared case-insensitively. |
|
|
@@ -31,6 +31,60 @@ The component interface extends `PConnProps` but all rendering data is passed as
|
|
|
31
31
|
| `updateLabel` | `string` | Yes | Display label for the update operator field |
|
|
32
32
|
| `updateOperator` | `{ userName: string; userId: string }` | Yes | Updater's name and ID |
|
|
33
33
|
|
|
34
|
+
## Implementation Structure
|
|
35
|
+
|
|
36
|
+
### Module Setup
|
|
37
|
+
|
|
38
|
+
The component imports:
|
|
39
|
+
|
|
40
|
+
- A local state mechanism for popover visibility and content
|
|
41
|
+
- The project's `Utils` helper for relative date/time formatting
|
|
42
|
+
- The project's base component interface (the component extends it, though `getPConnect()` is not called)
|
|
43
|
+
|
|
44
|
+
The component is named `Operator` 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
|
+
### State
|
|
47
|
+
|
|
48
|
+
Maintain two state variables:
|
|
49
|
+
|
|
50
|
+
- `popoverAnchorEl` (initially `null`) — the DOM element the popover is anchored to; setting it opens the popover.
|
|
51
|
+
- `popoverFields` (initially `[]`) — array of field objects to display inside the popover.
|
|
52
|
+
|
|
53
|
+
### Operator Selection Logic
|
|
54
|
+
|
|
55
|
+
At the top of the component logic, determine which operator to display:
|
|
56
|
+
|
|
57
|
+
1. Coalesce `label` and `displayLabel` into a single string, then lowercase it.
|
|
58
|
+
2. If the lowercased value equals `'create operator'`: use `createLabel`, `createOperator.userName`, `createOperator.userId`, and `createDateTime`.
|
|
59
|
+
3. If the lowercased value equals `'update operator'`: use `updateLabel`, `updateOperator.userName`, `updateOperator.userId`, and `updateDateTime`.
|
|
60
|
+
4. Otherwise: set label and name to `'---'`, id and time to empty strings.
|
|
61
|
+
|
|
62
|
+
Store these as local variables: `caseOpLabel`, `caseOpName`, `caseOpId`, `caseTime`.
|
|
63
|
+
|
|
64
|
+
### Click Handler (`showOperatorDetails`)
|
|
65
|
+
|
|
66
|
+
Define an event handler that:
|
|
67
|
+
|
|
68
|
+
1. Early-returns if `caseOpId` is empty (no operator to fetch).
|
|
69
|
+
2. Calls `PCore.getUserApi().getOperatorDetails(caseOpId)` — an async API that returns operator profile data.
|
|
70
|
+
3. Uses `PCore.getLocaleUtils().getLocaleValue(key, 'Operator')` to localize field label strings.
|
|
71
|
+
4. On resolution, builds a `popoverFields` array with these entries (each with `label`, `value`, and optional `href`):
|
|
72
|
+
- Position (`pyPosition`) — no href
|
|
73
|
+
- Organization (`pyOrganization`) — no href
|
|
74
|
+
- Reports to (`pyReportToUserName`) — no href
|
|
75
|
+
- Telephone (`pyTelephone`) — `href: 'tel:{value}'`
|
|
76
|
+
- Email address (`pyEmailAddress`) — `href: 'mailto:{value}'`
|
|
77
|
+
- All values fall back to `'---'` if the property is missing/falsy.
|
|
78
|
+
5. Sets `popoverAnchorEl` to `event.currentTarget` (opens the popover).
|
|
79
|
+
|
|
80
|
+
### Render Tree
|
|
81
|
+
|
|
82
|
+
1. **Read-only text display** — no underline/border, `readOnly: true`, `cursor: pointer`. Shows `caseOpName` as value and `caseOpLabel` as the field label. Wires click handler to `showOperatorDetails`.
|
|
83
|
+
2. **Relative time** — below the text display, render the output of `Utils.generateDateTime(caseTime, 'DateTime-Since')` as helper/caption text.
|
|
84
|
+
3. **Popover** — anchored to the clicked element, closed by clearing the anchor reference:
|
|
85
|
+
- Header: operator name (`caseOpName`) in heading-6 text (≈1.25rem, weight 500).
|
|
86
|
+
- Body: iterate `popoverFields`, rendering each as a row with a caption-style label (6 columns) and a subtitle-style value (6 columns). For fields with `href`, wrap the value in an `<a>` tag with the href.
|
|
87
|
+
|
|
34
88
|
## Behavioral Contract
|
|
35
89
|
|
|
36
90
|
### 1. Operator Selection
|
|
@@ -51,18 +105,18 @@ Determine which operator to display based on `label.toLowerCase()` or `displayLa
|
|
|
51
105
|
|
|
52
106
|
### 2. Main Display
|
|
53
107
|
|
|
54
|
-
Render a read-only
|
|
108
|
+
Render a read-only text display element (no underline/border, pointer cursor) with:
|
|
55
109
|
|
|
56
110
|
- `defaultValue={caseOpName}`
|
|
57
111
|
- `label={caseOpLabel}`
|
|
58
|
-
- `
|
|
59
|
-
- `readOnly: true`,
|
|
112
|
+
- Click handler wired to `showOperatorDetails`
|
|
113
|
+
- `readOnly: true`, no underline/border, `cursor: 'pointer'`
|
|
60
114
|
|
|
61
|
-
Below the
|
|
115
|
+
Below the text display, render the relative time: `Utils.generateDateTime(caseTime, 'DateTime-Since')`.
|
|
62
116
|
|
|
63
117
|
### 3. Popover on Click (`showOperatorDetails`)
|
|
64
118
|
|
|
65
|
-
When the
|
|
119
|
+
When the text display is clicked:
|
|
66
120
|
|
|
67
121
|
1. Call `PCore.getUserApi().getOperatorDetails(caseOpId)` — returns a Promise.
|
|
68
122
|
2. Use `PCore.getLocaleUtils().getLocaleValue(key, 'Operator')` to localize field labels.
|
|
@@ -83,30 +137,30 @@ The popover renders when `popoverAnchorEl` is set:
|
|
|
83
137
|
- Anchor origin: `{ vertical: 'bottom', horizontal: 'center' }`
|
|
84
138
|
- Transform origin: `{ vertical: 'top', horizontal: 'center' }`
|
|
85
139
|
- Max width: `45ch`
|
|
86
|
-
- Content: A
|
|
87
|
-
-
|
|
88
|
-
- One row per field: 6-col
|
|
140
|
+
- Content: A grid layout with:
|
|
141
|
+
- Heading-6 text (≈1.25rem, weight 500) showing `caseOpName` at full width.
|
|
142
|
+
- One row per field: 6-col caption text (label) + 6-col subtitle text (value).
|
|
89
143
|
|
|
90
|
-
Closing the popover
|
|
144
|
+
Closing the popover clears the anchor reference.
|
|
91
145
|
|
|
92
146
|
## Visual Specifications
|
|
93
147
|
|
|
94
|
-
Derived from
|
|
148
|
+
Derived from the component's companion styles:
|
|
95
149
|
|
|
96
150
|
### Root Container
|
|
97
151
|
|
|
98
|
-
| Property | Value
|
|
99
|
-
| -------- |
|
|
100
|
-
| Padding |
|
|
101
|
-
| Margin |
|
|
152
|
+
| Property | Value |
|
|
153
|
+
| -------- | ---------------------- |
|
|
154
|
+
| Padding | 1 spacing unit (≈ 8px) |
|
|
155
|
+
| Margin | 1 spacing unit |
|
|
102
156
|
|
|
103
157
|
### Popover Container
|
|
104
158
|
|
|
105
|
-
| Property | Value
|
|
106
|
-
| --------- |
|
|
107
|
-
| Padding |
|
|
108
|
-
| Margin |
|
|
109
|
-
| Max width | 45ch
|
|
159
|
+
| Property | Value |
|
|
160
|
+
| --------- | -------------- |
|
|
161
|
+
| Padding | 1 spacing unit |
|
|
162
|
+
| Margin | 1 spacing unit |
|
|
163
|
+
| Max width | 45ch |
|
|
110
164
|
|
|
111
165
|
**CSS-only implementation notes:**
|
|
112
166
|
|
|
@@ -128,7 +182,7 @@ Derived from `Operator.tsx` makeStyles:
|
|
|
128
182
|
|
|
129
183
|
## Dependencies
|
|
130
184
|
|
|
131
|
-
- `Utils`
|
|
185
|
+
- The project's `Utils` helper — `Utils.generateDateTime` for relative time display
|
|
132
186
|
- `PCore.getUserApi().getOperatorDetails(userId)` — global Pega runtime API for operator details
|
|
133
187
|
- `PCore.getLocaleUtils().getLocaleValue(key, 'Operator')` — for localized field labels in the popover
|
|
134
188
|
|
|
@@ -136,20 +190,10 @@ Derived from `Operator.tsx` makeStyles:
|
|
|
136
190
|
|
|
137
191
|
**UI control type:** Clickable read-only field with async popover detail panel.
|
|
138
192
|
|
|
139
|
-
Listed design systems are examples only.
|
|
140
|
-
|
|
141
|
-
| Design System | Recommended Component |
|
|
142
|
-
| ------------------ | --------------------------------------------------------------- |
|
|
143
|
-
| Default (CSS only) | `<div>` with click handler, custom CSS popover/tooltip panel |
|
|
144
|
-
| MUI | Read-only `<TextField>` + `<Popover>` with `<Grid>` detail rows |
|
|
145
|
-
| Ant Design | `<Input readOnly>` + `<Popover>` with `<Descriptions>` |
|
|
146
|
-
| Chakra UI | `<Input isReadOnly>` + `<Popover>` with custom content |
|
|
147
|
-
| Shadcn/ui | `<Input readOnly>` + `<Popover>` + `<PopoverContent>` |
|
|
148
|
-
|
|
149
193
|
When implementing in a specific design system, map the following:
|
|
150
194
|
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
- Popover
|
|
154
|
-
- `Utils.generateDateTime(caseTime, 'DateTime-Since')`
|
|
155
|
-
- Telephone/email
|
|
195
|
+
- **Read-only clickable field** → use the DS's read-only input/text display with pointer cursor and click handler
|
|
196
|
+
- **Popover/tooltip** → use the DS's popover component anchored to the clicked element, with close-on-outside-click behavior
|
|
197
|
+
- **Popover content** → a grid layout with heading (operator name) and label/value rows
|
|
198
|
+
- **Relative time** → render `Utils.generateDateTime(caseTime, 'DateTime-Since')` as secondary/muted caption text below the operator name
|
|
199
|
+
- **Telephone/email** → clickable `<a href='tel:...'>` and `<a href='mailto:...'>` links in the popover
|