@pega/sdk 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -3
- package/dist/index.js +977 -92
- package/package.json +1 -1
- package/templates/angular-sdk-reference/package.json +12 -12
- package/templates/angular-sdk-reference/tsconfig.json +1 -1
- package/templates/react-native-sdk-reference/.claude/settings.json +5 -0
- package/templates/react-native-sdk-reference/.prettierignore +17 -0
- package/templates/react-native-sdk-reference/.vscode/extensions.json +1 -0
- package/templates/react-native-sdk-reference/.vscode/settings.json +7 -0
- package/templates/react-native-sdk-reference/AGENTS.md +3 -0
- package/templates/react-native-sdk-reference/CLAUDE.md +1 -0
- package/templates/react-native-sdk-reference/README.md +56 -0
- package/templates/react-native-sdk-reference/app.json +40 -5
- package/templates/react-native-sdk-reference/assets/expo.icon/Assets/expo-symbol 2.svg +3 -0
- package/templates/react-native-sdk-reference/assets/expo.icon/Assets/grid.png +0 -0
- package/templates/react-native-sdk-reference/assets/expo.icon/icon.json +35 -0
- package/templates/react-native-sdk-reference/assets/icons/bell.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/clock.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/cross.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/donut.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/gear.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/globe.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/internet.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/music.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/right-arrow.png +0 -0
- package/templates/react-native-sdk-reference/assets/icons/speed.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/MediaCo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/adaptive-icon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/android-icon-background.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/android-icon-foreground.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/android-icon-monochrome.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/expo-badge-white.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/expo-badge.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/expo-logo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/favicon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/icon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/logo-glow.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/partial-react-logo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/react-logo.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/react-logo@2x.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/react-logo@3x.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/splash-icon.png +0 -0
- package/templates/react-native-sdk-reference/assets/images/tutorial-web.png +0 -0
- package/templates/react-native-sdk-reference/eslint.config.mjs +68 -0
- package/templates/react-native-sdk-reference/package.json +59 -14
- package/templates/react-native-sdk-reference/pega-constellationjs-0.26.3.tgz +0 -0
- package/templates/react-native-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-native-sdk-reference/pega-sdk-types-0.1.0.tgz +0 -0
- package/templates/react-native-sdk-reference/sdk-config.json +31 -9
- package/templates/react-native-sdk-reference/src/app/_layout.tsx +38 -0
- package/templates/react-native-sdk-reference/src/app/home/_layout.tsx +39 -0
- package/templates/react-native-sdk-reference/src/app/home/contact.tsx +11 -0
- package/templates/react-native-sdk-reference/src/app/home/index.tsx +36 -0
- package/templates/react-native-sdk-reference/src/app/home/shop.tsx +11 -0
- package/templates/react-native-sdk-reference/src/app/home/your-services.tsx +11 -0
- package/templates/react-native-sdk-reference/src/app/index.tsx +72 -0
- package/templates/react-native-sdk-reference/src/app/workarea.tsx +135 -0
- package/templates/react-native-sdk-reference/src/bridge/Context/StoreContext.ts +4 -0
- package/templates/react-native-sdk-reference/src/bridge/RootComponent.tsx +12 -0
- package/templates/react-native-sdk-reference/src/bridge/react_pconnect.jsx +334 -0
- package/templates/react-native-sdk-reference/src/components/common/DisplayField.tsx +29 -0
- package/templates/react-native-sdk-reference/src/components/common/FormFieldWrapper.tsx +5 -0
- package/templates/react-native-sdk-reference/src/components/common/HelperText.tsx +11 -0
- package/templates/react-native-sdk-reference/src/components/common/LabelText.tsx +22 -0
- package/templates/react-native-sdk-reference/src/components/common/inputTheme.ts +17 -0
- package/templates/react-native-sdk-reference/src/components/design-system/AutoComplete.tsx +126 -0
- package/templates/react-native-sdk-reference/src/components/design-system/FieldGroup.tsx +72 -0
- package/templates/react-native-sdk-reference/src/components/design-system/Radio.tsx +61 -0
- package/templates/react-native-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +196 -0
- package/templates/react-native-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +89 -0
- package/templates/react-native-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Currency/Currency.tsx +84 -0
- package/templates/react-native-sdk-reference/src/components/field/Currency/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Date/Date.tsx +94 -0
- package/templates/react-native-sdk-reference/src/components/field/Date/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +211 -0
- package/templates/react-native-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Email/Email.tsx +81 -0
- package/templates/react-native-sdk-reference/src/components/field/Email/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Group/Group.tsx +47 -0
- package/templates/react-native-sdk-reference/src/components/field/Group/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Integer/Integer.tsx +84 -0
- package/templates/react-native-sdk-reference/src/components/field/Integer/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/Phone/Phone.tsx +85 -0
- package/templates/react-native-sdk-reference/src/components/field/Phone/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +118 -0
- package/templates/react-native-sdk-reference/src/components/field/RadioButtons/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/field/TextArea/TextArea.tsx +86 -0
- package/templates/react-native-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/TextInput/TextInput.tsx +84 -0
- package/templates/react-native-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/field/URL/URL.tsx +86 -0
- package/templates/react-native-sdk-reference/src/components/field/URL/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/helpers/data_page.ts +20 -0
- package/templates/react-native-sdk-reference/src/components/helpers/event-utils.ts +20 -0
- package/templates/react-native-sdk-reference/src/components/helpers/instructions-utils.ts +57 -0
- package/templates/react-native-sdk-reference/src/components/helpers/state-utils.tsx +46 -0
- package/templates/react-native-sdk-reference/src/components/helpers/template-utils.ts +75 -0
- package/templates/react-native-sdk-reference/src/components/helpers/utils.ts +339 -0
- package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/ActionButtons.tsx +63 -0
- package/templates/react-native-sdk-reference/src/components/infra/ActionButtons/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Assignment/Assignment.tsx +348 -0
- package/templates/react-native-sdk-reference/src/components/infra/Assignment/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/AssignmentCard.tsx +56 -0
- package/templates/react-native-sdk-reference/src/components/infra/AssignmentCard/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/FlowContainer.tsx +57 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/helpers.ts +137 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/FlowContainer/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/RootContainer.tsx +52 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/RootContainer/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/helper.ts +128 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/SimpleView/index.tsx +59 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/ViewContainer.tsx +31 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/helper.ts +39 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/ViewContainer/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Containers/helper.ts +9 -0
- package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/ErrorBoundary.tsx +53 -0
- package/templates/react-native-sdk-reference/src/components/infra/ErrorBoundary/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/MultiStep/MultiStep.tsx +24 -0
- package/templates/react-native-sdk-reference/src/components/infra/MultiStep/index.ts +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Reference/Reference.tsx +68 -0
- package/templates/react-native-sdk-reference/src/components/infra/Reference/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/Reference/utils.ts +16 -0
- package/templates/react-native-sdk-reference/src/components/infra/Region/Region.tsx +10 -0
- package/templates/react-native-sdk-reference/src/components/infra/Region/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/infra/View/View.tsx +49 -0
- package/templates/react-native-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +38 -0
- package/templates/react-native-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/template/DefaultForm/utils/index.ts +28 -0
- package/templates/react-native-sdk-reference/src/components/template/Details/Details.tsx +82 -0
- package/templates/react-native-sdk-reference/src/components/template/Details/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/components/template/OneColumn/OneColumn.tsx +29 -0
- package/templates/react-native-sdk-reference/src/components/template/OneColumn/index.tsx +1 -0
- package/templates/react-native-sdk-reference/src/context/LoaderContext.tsx +42 -0
- package/templates/react-native-sdk-reference/src/mediaco/AdvBanner.tsx +62 -0
- package/templates/react-native-sdk-reference/src/mediaco/Header.tsx +60 -0
- package/templates/react-native-sdk-reference/src/mediaco/HomeScreen.tsx +78 -0
- package/templates/react-native-sdk-reference/src/mediaco/QuickActions.tsx +68 -0
- package/templates/react-native-sdk-reference/src/mediaco/ResolutionScreen.tsx +48 -0
- package/templates/react-native-sdk-reference/src/mediaco/SafeArea.tsx +11 -0
- package/templates/react-native-sdk-reference/src/mediaco/TabBar.tsx +102 -0
- package/templates/react-native-sdk-reference/src/mediaco/YourServices.tsx +90 -0
- package/templates/react-native-sdk-reference/src/sdk-pega-component-map.ts +64 -0
- package/templates/react-native-sdk-reference/src/types/PConnProps.d.ts +41 -0
- package/templates/react-native-sdk-reference/src/utils/auth.ts +62 -0
- package/templates/react-native-sdk-reference/src/utils/init-pcore.ts +37 -0
- package/templates/react-native-sdk-reference/src/utils/pcore-polyfills.ts +66 -0
- package/templates/react-native-sdk-reference/tsconfig.json +9 -8
- package/templates/react-sdk-reference/.ai-common/agents/embedded-flow-expert.md +171 -0
- package/templates/react-sdk-reference/{.github/agents/implementation-expert.agent.md → .ai-common/agents/implementation-expert.md} +44 -48
- package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions-embedded.md +119 -0
- package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions.md +192 -0
- package/templates/react-sdk-reference/.ai-common/instructions/component-map.md +35 -0
- package/templates/react-sdk-reference/.ai-common/instructions/dse-component.md +47 -0
- package/templates/react-sdk-reference/.ai-common/instructions/embedded-component.md +134 -0
- package/templates/react-sdk-reference/.ai-common/instructions/field-component.md +50 -0
- package/templates/react-sdk-reference/.ai-common/instructions/template-component.md +43 -0
- package/templates/react-sdk-reference/.ai-common/instructions/widget-component.md +45 -0
- package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +193 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/component-manifest.json +106 -2
- package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +155 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +358 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +165 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +315 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +190 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +227 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +172 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/prompts/identify-components.md +4 -0
- package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/design-system-extension-skills/AlertBanner.md +61 -25
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +176 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +180 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/DetailsFields.md +180 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroup.md +153 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldGroupList.md +136 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/FieldValueList.md +140 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/Operator.md +85 -41
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Pulse.md +97 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +226 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/design-system-extension-skills/WssQuickCreate.md +35 -20
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +169 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +130 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +311 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +156 -0
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +476 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-components.md +190 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +157 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +178 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +189 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +136 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +126 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +115 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +119 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +136 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +99 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Group.md +88 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +102 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +142 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/Multiselect.md +42 -53
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/ObjectReference.md +36 -60
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +113 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +100 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +153 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/RichText.md +117 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +95 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +155 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/SemanticLink.md +35 -57
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +109 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextContent.md +27 -52
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +112 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +102 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +96 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/UserReference.md +41 -78
- package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +165 -0
- package/templates/react-sdk-reference/.ai-common/skills/infra-skills/ActionButtons.md +122 -0
- package/templates/react-sdk-reference/.ai-common/skills/infra-skills/MultiStep.md +178 -0
- package/templates/react-sdk-reference/.ai-common/skills/infra-skills/Stages.md +140 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-components.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +126 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +160 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/BannerPage.md +90 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +129 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +196 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +157 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +149 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/DataReference.md +46 -31
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +141 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/DefaultPage.md +40 -34
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/Details.md +96 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsSubTabs.md +103 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsThreeColumn.md +85 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DetailsTwoColumn.md +77 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DynamicTabs.md +103 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +130 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/HierarchicalForm.md +200 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboard.md +110 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md +105 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/ListPage.md +21 -16
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +234 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/MultiReferenceReadOnly.md +18 -23
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +161 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/OneColumn.md +114 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +132 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +173 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/SimpleTable.md +44 -24
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +103 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SubTabs.md +89 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/TwoColumn.md +133 -0
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +36 -43
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/template-skills/WssNavBar.md +26 -45
- package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +124 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +94 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +163 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/CaseHistory.md +90 -0
- package/templates/react-sdk-reference/{.github → .ai-common}/skills/widget-skills/FileUtility.md +68 -62
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/Followers.md +24 -19
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/QuickCreate.md +27 -44
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/widget-skills/SummaryItem.md +35 -61
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +261 -0
- package/templates/react-sdk-reference/package.json +1 -1
- package/templates/react-sdk-reference/package.minimal.json +29 -0
- package/templates/react-sdk-reference/pega-auth-0.2.44.tgz +0 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
- package/templates/react-sdk-reference/src/MashupApp.tsx +8 -19
- package/templates/react-sdk-reference/src/PortalApp.tsx +6 -17
- package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +13 -3
- package/templates/react-native-sdk-reference/.github/AGENTS.md +0 -23
- package/templates/react-native-sdk-reference/.github/copilot-instructions.md +0 -40
- package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +0 -48
- package/templates/react-native-sdk-reference/App.tsx +0 -49
- package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
- package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -75
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -93
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -88
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -152
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -158
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -140
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -153
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -165
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -138
- package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -137
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +0 -152
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +0 -148
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +0 -113
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -118
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -85
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -232
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -291
- package/templates/react-sdk-reference/.claude/skills/field-components.md +0 -295
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -113
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +0 -211
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -175
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -101
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +0 -99
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +0 -96
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +0 -145
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -93
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -129
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -167
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -149
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -134
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -231
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +0 -98
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +0 -117
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -89
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -86
- package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -321
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -150
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -124
- package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +0 -86
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -137
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +0 -104
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +0 -112
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +0 -90
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -97
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +0 -112
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +0 -116
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +0 -108
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -142
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +0 -143
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +0 -130
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +0 -142
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -108
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +0 -133
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +0 -139
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +0 -260
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +0 -84
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +0 -151
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +0 -110
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -206
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -198
- package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
- package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
- package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +0 -74
- package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
- package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +0 -193
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
- package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +0 -116
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +0 -120
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +0 -88
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +0 -294
- package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +0 -299
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +0 -95
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +0 -169
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +0 -143
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +0 -153
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +0 -106
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
- package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
- package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +0 -327
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +0 -88
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +0 -93
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +0 -100
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +0 -83
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +0 -83
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +0 -106
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +0 -118
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +0 -109
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +0 -90
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +0 -73
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +0 -85
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +0 -114
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +0 -84
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +0 -276
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +0 -104
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +0 -119
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +0 -172
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
- package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
- package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
- package/templates/react-sdk-reference/.github/copilot-instructions.md +0 -243
- package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +0 -40
- package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +0 -77
- package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +0 -77
- package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +0 -95
- package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +0 -90
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +0 -192
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -193
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +0 -411
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +0 -205
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +0 -223
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +0 -229
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +0 -208
- package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
- package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
- package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -152
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -159
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -148
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +0 -134
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -113
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +0 -118
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -155
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +0 -85
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +0 -232
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +0 -137
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +0 -291
- package/templates/react-sdk-reference/.github/skills/field-components.md +0 -295
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -113
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -211
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -175
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -109
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -101
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -106
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -99
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -134
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -109
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -96
- package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +0 -88
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -145
- package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +0 -188
- package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +0 -173
- package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +0 -93
- package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +0 -129
- package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +0 -167
- package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +0 -149
- package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +0 -134
- package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +0 -231
- package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +0 -155
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -98
- package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +0 -107
- package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +0 -89
- package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +0 -86
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -203
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -70
- package/templates/react-sdk-reference/.github/skills/template-components.md +0 -321
- package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +0 -150
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -86
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +0 -106
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -137
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +0 -109
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -104
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -90
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +0 -97
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -80
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +0 -80
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -106
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -112
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -116
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -108
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -82
- package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +0 -70
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -142
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -143
- package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +0 -114
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -130
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -142
- package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +0 -108
- package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +0 -82
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -133
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -152
- package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -260
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -84
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -151
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -110
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -103
- package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +0 -118
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -169
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -198
- package/templates/react-sdk-reference/AGENTS.md +0 -246
- package/templates/react-sdk-reference/pega-auth-0.2.42.tgz +0 -0
- /package/templates/react-sdk-reference/{.claude → .ai-common}/skills/run-and-verify.md +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Skill: NarrowWide
|
|
2
|
+
|
|
3
|
+
Asymmetric two-column layout with a narrow left column (~33%) and a wide right column (~67%). Includes four sub-variants for different contexts.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders two children side by side with the left column narrower than the right. Used for case layouts where a sidebar panel sits beside a main content area. Four sub-variants:
|
|
12
|
+
|
|
13
|
+
- **`NarrowWide`** — core CSS-based layout, accepts either `a`/`b` slot inputs or `children[0]`/`children[1]`
|
|
14
|
+
- **`NarrowWidePage`** — wrapper that passes children as `a` and `b` slot inputs to `NarrowWide`
|
|
15
|
+
- **`NarrowWideForm`** — simplified wrapper using only `children` (no `a`/`b` slots, no title/icon)
|
|
16
|
+
- **`NarrowWideDetails`** — details read-only variant; sets children to DISPLAY_ONLY mode and supports highlighted data
|
|
17
|
+
|
|
18
|
+
## Pega Metadata
|
|
19
|
+
|
|
20
|
+
| Variant | Registration Key |
|
|
21
|
+
| ----------------- | ------------------- |
|
|
22
|
+
| NarrowWide | `NarrowWide` |
|
|
23
|
+
| NarrowWidePage | `NarrowWidePage` |
|
|
24
|
+
| NarrowWideForm | `NarrowWideForm` |
|
|
25
|
+
| NarrowWideDetails | `NarrowWideDetails` |
|
|
26
|
+
|
|
27
|
+
All extend the project's base component interface.
|
|
28
|
+
|
|
29
|
+
## Inputs
|
|
30
|
+
|
|
31
|
+
### NarrowWide
|
|
32
|
+
|
|
33
|
+
| Name | Type | Required | Description |
|
|
34
|
+
| ---------- | ------------------ | -------- | ---------------------------------------------------------- |
|
|
35
|
+
| `children` | renderable content | No | Two children rendered in narrow/wide slots |
|
|
36
|
+
| `a` | `any` | No | Narrow (left) column content |
|
|
37
|
+
| `b` | `any` | No | Wide (right) column content |
|
|
38
|
+
| `title` | `string` | No | Optional title (not rendered in reference implementation) |
|
|
39
|
+
| `cols` | `string` | No | Column template (not rendered in reference implementation) |
|
|
40
|
+
| `icon` | `string` | No | Optional icon (not rendered in reference implementation) |
|
|
41
|
+
|
|
42
|
+
### NarrowWidePage
|
|
43
|
+
|
|
44
|
+
| Name | Type | Required | Description |
|
|
45
|
+
| ------------- | ------------------ | -------- | ----------------------------------------------------- |
|
|
46
|
+
| `children` | renderable content | Yes | Two children — `[0]` → narrow slot, `[1]` → wide slot |
|
|
47
|
+
| `title` | `string` | Yes | Page title (passed to NarrowWide) |
|
|
48
|
+
| `templateCol` | `string` | No | Column ratio (default `'1fr 1fr'`) |
|
|
49
|
+
| `icon` | `string` | No | Icon name (strips `'pi pi-'` prefix) |
|
|
50
|
+
|
|
51
|
+
### NarrowWideForm
|
|
52
|
+
|
|
53
|
+
| Name | Type | Required | Description |
|
|
54
|
+
| ---------- | ------------------ | -------- | ----------------------------------------------------- |
|
|
55
|
+
| `children` | renderable content | Yes | Two children — `[0]` → narrow slot, `[1]` → wide slot |
|
|
56
|
+
|
|
57
|
+
### NarrowWideDetails
|
|
58
|
+
|
|
59
|
+
| Name | Type | Required | Description |
|
|
60
|
+
| --------------------- | ---------- | -------- | ------------------------------------------------------------------------- |
|
|
61
|
+
| `label` | `string` | Yes | Section label for FieldGroup |
|
|
62
|
+
| `showLabel` | `boolean` | No | Whether to show the label. Default `true` |
|
|
63
|
+
| `showHighlightedData` | `boolean` | No | Whether to render highlighted data fields above children. Default `false` |
|
|
64
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
65
|
+
|
|
66
|
+
## Implementation Structure
|
|
67
|
+
|
|
68
|
+
### NarrowWide (core)
|
|
69
|
+
|
|
70
|
+
**Module Setup:** Define the input contract as an extension of the project's base component interface, adding `a`, `b`, optional `title`, optional `cols`, and optional `icon` fields, and accepting children via the framework's content projection mechanism. Import a companion stylesheet for the layout CSS classes.
|
|
71
|
+
|
|
72
|
+
**Main Component Logic** — steps in order:
|
|
73
|
+
|
|
74
|
+
1. Receive `a`, `b`, and `children` from inputs.
|
|
75
|
+
2. When `children` is present and has exactly 2 items, render a `.psdk-narrow-wide-column` container containing a `.psdk-narrow-column-column` element with `children[0]` and a `.psdk-wide-column-column` element with `children[1]`.
|
|
76
|
+
3. When both `a` and `b` are present, render the same `.psdk-narrow-wide-column` / `.psdk-narrow-column-column` / `.psdk-wide-column-column` structure but with `a` and `b` in place of the children.
|
|
77
|
+
4. Both render branches can coexist in the returned fragment — whichever condition is true determines what actually renders.
|
|
78
|
+
|
|
79
|
+
### NarrowWidePage
|
|
80
|
+
|
|
81
|
+
A wrapper that forwards children as `a`/`b` slot inputs: resolve `NarrowWide` from the project's component registry; receive `children`, `title`, `templateCol` (default `'1fr 1fr'`), and `icon` (default `''`) from inputs; render `NarrowWide` with `a` set to `children[0]`, `b` set to `children[1]`, `title`, `cols` set to `templateCol`, and `icon` with the `'pi pi-'` prefix stripped.
|
|
82
|
+
|
|
83
|
+
### NarrowWideForm
|
|
84
|
+
|
|
85
|
+
A simplified wrapper using only `children` (no `a`/`b` slots, no title/icon): receive `children` from inputs; when `children.length === 2`, render the same `.psdk-narrow-wide-column` structure as the core component (children[0] in the narrow column, children[1] in the wide column); otherwise render nothing.
|
|
86
|
+
|
|
87
|
+
### NarrowWideDetails
|
|
88
|
+
|
|
89
|
+
Same pattern as `Details` (see [`Details.md`](./Details.md)) but uses `COLUMN_WIDTHS = [4, 8]` for its grid items instead of `[12]` — highlighted data fields and regular children are both laid out with the column widths array, and the whole thing is wrapped in a `FieldGroup` with `displayMode` and `readOnly` forced via `setInheritedProp`.
|
|
90
|
+
|
|
91
|
+
## Behavioral Contract
|
|
92
|
+
|
|
93
|
+
### NarrowWide
|
|
94
|
+
|
|
95
|
+
1. If `children` is provided and has exactly 2 items, render `children[0]` in `.psdk-narrow-column-column` and `children[1]` in `.psdk-wide-column-column` (both wrapped in `.psdk-narrow-wide-column`).
|
|
96
|
+
2. If `a` and `b` are provided (and children is empty/not 2 items), render `a` in the narrow slot and `b` in the wide slot.
|
|
97
|
+
3. The two render paths are independent — priority is `children` if length === 2, otherwise `a`/`b`.
|
|
98
|
+
|
|
99
|
+
### NarrowWidePage
|
|
100
|
+
|
|
101
|
+
1. Extract the children array from the content projection.
|
|
102
|
+
2. Resolve `NarrowWide` from the project's component registry.
|
|
103
|
+
3. Render `NarrowWide` with `a` set to `children[0]`, `b` set to `children[1]`, `title`, `cols` set to `templateCol`, and `icon` with the `'pi pi-'` prefix stripped.
|
|
104
|
+
|
|
105
|
+
### NarrowWideForm
|
|
106
|
+
|
|
107
|
+
1. Render exactly as `NarrowWide` with `children` path — checks `children.length === 2`, renders narrow/wide slots.
|
|
108
|
+
2. Does not support `a`/`b` slot inputs.
|
|
109
|
+
|
|
110
|
+
### NarrowWideDetails
|
|
111
|
+
|
|
112
|
+
1. Call `getPConnect().getInheritedProps()` and merge with `{ label, showLabel }` for `propsToUse`.
|
|
113
|
+
2. Set `getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY')` and `setInheritedProp('readOnly', true)`.
|
|
114
|
+
3. Map `getPConnect().getChildren()` → render each child using the project's PConnect bridge utility with the config object and a unique key.
|
|
115
|
+
4. If `showHighlightedData` is true, read `getRawMetadata().config.highlightedData`, set each field's `displayMode = 'STACKED_LARGE_VAL'`, mark `pyStatusWork` fields as `type='TextInput', displayAsStatus=true`, and create components via `getPConnect().createComponent(field, '', 0, {})`.
|
|
116
|
+
5. Wrap everything in `<FieldGroup name={theName}>` where `theName = propsToUse.showLabel && propsToUse.label ? propsToUse.label : ''`.
|
|
117
|
+
6. Layout: highlighted data in `Grid size={{ xs: COLUMN_WIDTHS[i] }}` where `COLUMN_WIDTHS = [4, 8]`, then children in `Grid size={{ xs: 12 }}` rows.
|
|
118
|
+
|
|
119
|
+
## Visual Specifications
|
|
120
|
+
|
|
121
|
+
Derived from `NarrowWide.css`:
|
|
122
|
+
|
|
123
|
+
### Container
|
|
124
|
+
|
|
125
|
+
| CSS Class | Property | Value |
|
|
126
|
+
| ---------------------------- | -------- | ----------------------------- |
|
|
127
|
+
| `.psdk-narrow-wide-column` | Display | flex or grid (two-column row) |
|
|
128
|
+
| `.psdk-narrow-column-column` | Width | ~33% (1 of 3 parts) |
|
|
129
|
+
| `.psdk-wide-column-column` | Width | ~67% (2 of 3 parts) |
|
|
130
|
+
|
|
131
|
+
**CSS-only implementation notes:**
|
|
132
|
+
|
|
133
|
+
- `.psdk-narrow-wide-column`: `display: grid; grid-template-columns: 1fr 2fr; gap: 1rem`.
|
|
134
|
+
- `.psdk-narrow-column-column`: takes the first (narrower) grid column.
|
|
135
|
+
- `.psdk-wide-column-column`: takes the second (wider) grid column.
|
|
136
|
+
- On mobile: `grid-template-columns: 1fr` (stacks vertically).
|
|
137
|
+
|
|
138
|
+
## Edge Cases & Special Logic
|
|
139
|
+
|
|
140
|
+
- `NarrowWide` supports both `children` and `a`/`b` slot patterns — check `children` length first.
|
|
141
|
+
- `NarrowWideDetails` highlighted data grid uses `[4, 8]` column widths (narrow left, wide right for STACKED_LARGE_VAL fields).
|
|
142
|
+
- `NarrowWideDetails` reads `theName` from `propsToUse` (which merges inherited inputs) — the `label` input alone may be overridden by inherited inputs.
|
|
143
|
+
- Icon cleanup in `NarrowWidePage`: strip `'pi pi-'` prefix from the icon string before passing to `NarrowWide`.
|
|
144
|
+
|
|
145
|
+
## Dependencies
|
|
146
|
+
|
|
147
|
+
- `NarrowWidePage`: the project's component registry — to resolve `NarrowWide` at runtime.
|
|
148
|
+
- `NarrowWideDetails`: the project's component registry (to resolve `FieldGroup`) and the project's PConnect bridge utility.
|
|
149
|
+
|
|
150
|
+
## Design System Mapping
|
|
151
|
+
|
|
152
|
+
**UI control type:** Asymmetric two-column layout (sidebar + main content).
|
|
153
|
+
|
|
154
|
+
When implementing in a specific design system, map the following:
|
|
155
|
+
|
|
156
|
+
- **Two-column grid** → use the DS's grid with `1fr 2fr` column ratio (narrow left, wide right)
|
|
157
|
+
- **Mobile** → collapse to single column (`1fr`)
|
|
158
|
+
- **NarrowWideDetails** → forces DISPLAY_ONLY + readOnly on children via inherited inputs
|
|
159
|
+
- **NarrowWidePage** → resolve via the project's component registry and delegate
|
|
160
|
+
- **Narrow column** ≈ 33% width (1fr of 3fr total)
|
|
161
|
+
- **Wide column** ≈ 67% width (2fr of 3fr total)
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Skill: OneColumn
|
|
2
|
+
|
|
3
|
+
Single-column layout template that stacks all children in a full-width column.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders all children stacked vertically in a single full-width column. Three closely related sub-variants:
|
|
12
|
+
|
|
13
|
+
- **`OneColumn`** — core layout with internal grid and column style
|
|
14
|
+
- **`OneColumnPage`** — thin wrapper that delegates to `OneColumn` via the project's component registry
|
|
15
|
+
- **`OneColumnTab`** — minimal pass-through wrapper for tab context (a plain container element with id `OneColumnTab`)
|
|
16
|
+
|
|
17
|
+
## Pega Metadata
|
|
18
|
+
|
|
19
|
+
| Variant | Registration Key |
|
|
20
|
+
| ------------- | ---------------- |
|
|
21
|
+
| OneColumn | `OneColumn` |
|
|
22
|
+
| OneColumnPage | `OneColumnPage` |
|
|
23
|
+
| OneColumnTab | `OneColumnTab` |
|
|
24
|
+
|
|
25
|
+
All extend the project's base component interface. Children are received via the framework's content projection mechanism.
|
|
26
|
+
|
|
27
|
+
## Implementation Structure
|
|
28
|
+
|
|
29
|
+
### OneColumn (core)
|
|
30
|
+
|
|
31
|
+
**Module Setup:** Define the input contract as an extension of the project's base component interface, accepting children.
|
|
32
|
+
|
|
33
|
+
**Main Component Logic** — steps in order:
|
|
34
|
+
|
|
35
|
+
1. Receive `children` from inputs.
|
|
36
|
+
2. Render a grid container with spacing of 2 units (≈ 16px) containing a single grid item at full width (12 of 12 columns) with a column-styles class, which iterates over `children` and renders each one unchanged.
|
|
37
|
+
|
|
38
|
+
**Visual-only styling notes:** apply a column-styles class with `display: grid; gap: 1rem; align-content: baseline`.
|
|
39
|
+
|
|
40
|
+
### OneColumnPage
|
|
41
|
+
|
|
42
|
+
A thin pass-through wrapper: resolve `OneColumn` from the project's component registry and render it forwarding all inputs.
|
|
43
|
+
|
|
44
|
+
### OneColumnTab
|
|
45
|
+
|
|
46
|
+
A minimal wrapper that renders children inside a plain container element with `id="OneColumnTab"` — no grid or column styles applied.
|
|
47
|
+
|
|
48
|
+
## Inputs
|
|
49
|
+
|
|
50
|
+
| Name | Type | Required | Description |
|
|
51
|
+
| ---------- | ------------------ | -------- | --------------------------------------------------- |
|
|
52
|
+
| `children` | renderable content | Yes | One or more children to render in the single column |
|
|
53
|
+
|
|
54
|
+
## Sub-Variants
|
|
55
|
+
|
|
56
|
+
### OneColumnPage
|
|
57
|
+
|
|
58
|
+
A thin pass-through wrapper: resolve `OneColumn` from the project's component registry and render it forwarding all inputs.
|
|
59
|
+
|
|
60
|
+
### OneColumnTab
|
|
61
|
+
|
|
62
|
+
Minimal wrapper — renders children in a plain container element with `id='OneColumnTab'` and no grid or column styles applied. Used purely as a slot container inside tab panels.
|
|
63
|
+
|
|
64
|
+
## Behavioral Contract
|
|
65
|
+
|
|
66
|
+
1. Render a grid container with spacing of 2 units.
|
|
67
|
+
2. Render a single inner grid item at full width (12 of 12 columns) with column-styles applied.
|
|
68
|
+
3. Iterate over all `children` and render each child.
|
|
69
|
+
4. `OneColumnPage` delegates all rendering to `OneColumn` from the project's component registry.
|
|
70
|
+
5. `OneColumnTab` renders children in a plain container element — no grid, no styles.
|
|
71
|
+
|
|
72
|
+
## Visual Specifications
|
|
73
|
+
|
|
74
|
+
### Column Style
|
|
75
|
+
|
|
76
|
+
| Property | Value |
|
|
77
|
+
| ------------- | ------------------------------------- |
|
|
78
|
+
| Display | grid |
|
|
79
|
+
| Gap | 1rem |
|
|
80
|
+
| Align content | baseline (children stack top-aligned) |
|
|
81
|
+
|
|
82
|
+
### Grid Spacing
|
|
83
|
+
|
|
84
|
+
| Property | Value |
|
|
85
|
+
| ----------------- | ---------- |
|
|
86
|
+
| Container spacing | 2 (≈ 16px) |
|
|
87
|
+
|
|
88
|
+
**CSS-only implementation notes:**
|
|
89
|
+
|
|
90
|
+
- Column: `display: grid; gap: 1rem; align-content: baseline; width: 100%`.
|
|
91
|
+
- Outer container: `display: grid; grid-template-columns: 1fr; gap: 16px`.
|
|
92
|
+
- `OneColumnTab`: just a plain container with no special styling.
|
|
93
|
+
|
|
94
|
+
## Edge Cases & Special Logic
|
|
95
|
+
|
|
96
|
+
- `OneColumn` iterates over all children (not just first/second) — supports any number of children.
|
|
97
|
+
- `OneColumnPage` uses the registry — if an override exists for `OneColumn`, it will be used.
|
|
98
|
+
- `OneColumnTab` does NOT apply the column-styles grid — it is intentionally simpler.
|
|
99
|
+
|
|
100
|
+
## Design System Mapping
|
|
101
|
+
|
|
102
|
+
**UI control type:** Single-column vertical stack layout.
|
|
103
|
+
|
|
104
|
+
When implementing in a specific design system, map the following:
|
|
105
|
+
|
|
106
|
+
- **Grid container** → use the DS's grid/layout component with a single full-width column
|
|
107
|
+
- **Column style** → apply `display: grid; gap: 1rem; align-content: baseline` to the inner column
|
|
108
|
+
- **OneColumnPage** → resolve via the project's component registry and delegate
|
|
109
|
+
- **OneColumnTab** → render a plain container element (no styling)
|
|
110
|
+
|
|
111
|
+
## Dependencies
|
|
112
|
+
|
|
113
|
+
- `OneColumnPage`: the project's component registry — to resolve the `OneColumn` component at runtime.
|
|
114
|
+
- `OneColumn` / `OneColumnTab`: no special dependencies.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Skill: PromotedFilters
|
|
2
|
+
|
|
3
|
+
Promoted filters template. Renders a set of promoted filter fields above a `ListView`, allowing users to filter list data through a Clear/Search workflow using transient data.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders promoted filter controls above a list view. Filter fields are created dynamically via `PCore.createPConnect` and managed as transient data. On search, filter values are formatted and passed to the `ListView` as a query payload. The component also handles the `ListView` rendering below the filters.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Registration key:** `PromotedFilters` (in the project's component map)
|
|
16
|
+
- **Category:** Search / Filter template
|
|
17
|
+
- **Extends:** the project's base component interface
|
|
18
|
+
|
|
19
|
+
## Inputs
|
|
20
|
+
|
|
21
|
+
| Input | Type | Required | Description |
|
|
22
|
+
| ----------------- | ---------- | -------- | ------------------------------------------------------------- |
|
|
23
|
+
| `viewName` | `string` | Yes | Name of the promoted filters view — used as transient item ID |
|
|
24
|
+
| `dataPageName` | `string` | Yes | Data page name passed to `ListView` |
|
|
25
|
+
| `promotedFilters` | `array` | Yes | Array of filter field definitions `{ name, classID, ... }` |
|
|
26
|
+
| `payload` | `object` | No | Base query payload for the data page |
|
|
27
|
+
| `isSearchable` | `boolean` | No | Whether the ListView below shows a global search input |
|
|
28
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
29
|
+
|
|
30
|
+
## Implementation Structure
|
|
31
|
+
|
|
32
|
+
**Constants:** Define a `SUPPORTED_TYPES_IN_PROMOTED_FILTERS` list containing field types that can be rendered as filters directly: `TextInput`, `Percentage`, `Email`, `Integer`, `Decimal`, `Checkbox`, `DateTime`, `Date`, `Time`, `Text`, `TextArea`, `Currency`, `URL`, `RichText`.
|
|
33
|
+
|
|
34
|
+
**Filters Sub-Component** — accepts `filters`, `transientItemID`, and `localeReference`. For each filter: clone the filter object; if its `type` is not in the supported types list, coerce it to `'TextInput'` and remove its `config.placeholder`; set `config.contextName`, `config.readOnly = false`, `config.context`, and `config.localeReference` on the clone; create a PConnect environment via `PCore.createPConnect({ meta: filterClone, options: { hasForm: true, contextName: transientItemID } })`; and render the resulting component via the project's component registry bridge component.
|
|
35
|
+
|
|
36
|
+
**Main Component Logic** — steps in order:
|
|
37
|
+
|
|
38
|
+
1. Retrieve the `ListView` component from the project's component registry; bind `localizedVal` to `PCore.getLocaleUtils().getLocaleValue`.
|
|
39
|
+
2. Receive inputs: `getPConnect`, `viewName`, `filters`, `listViewProps`, `pageClass`, and `parameters`. Initialize local state for `initTable` (boolean, default `false`) and `payload` (object, default `{}`).
|
|
40
|
+
3. Build a transient item on mount (memoized computation, empty dependency list): construct a `filtersProperties` object mapping each filter's resolved property name (via `PCore.getAnnotationUtils().getPropertyName(f.config.value)`) to an empty string, then call `getPConnect().getContainerManager().addTransientItem({ id: viewName, data: { ...filtersProperties, classID: pageClass } })` and store the resulting `transientItemID`.
|
|
41
|
+
4. Define a cached callback search handler (keyed on `transientItemID`) that: prevents the default event; reads form changes via `PCore.getFormUtils().getChanges(transientItemID)`; builds a `formValues` object from those changes, excluding the `context_data` and `pageInstructions` keys; formats the values into `promotedFilters` via a `formatPromotedFilters` helper; and, if the form is valid (`PCore.getFormUtils().isFormValid(transientItemID)`) and the input passes `isValidInput(formValues)`, sets `initTable` to `true` and builds a query object (`{ dataViewParameters: parameters }`, adding a `query.filter.filterConditions` when `promotedFilters` is non-empty) and stores it in the payload local state.
|
|
42
|
+
5. Define a cached callback clear handler (keyed on `transientItemID`) that clears the transient data via `PCore.getContainerUtils().clearTransientData(transientItemID)`, resets `initTable` to `false`, and clears any selected rows via `getPConnect()?.getListActions?.()?.setSelectedRows([])`.
|
|
43
|
+
6. Render: the `listViewProps.title` in a heading element; the Filters sub-component (passed `filters`, `transientItemID`, and `listViewProps.localeReference`); a container with a Clear button (wired to the clear handler) and a Search button (wired to the search handler); and, when `initTable` is true, a `ListView` spread with `listViewProps`, an empty `title`, the computed `payload`, and `isSearchable` set.
|
|
44
|
+
|
|
45
|
+
## Behavioral Contract
|
|
46
|
+
|
|
47
|
+
### Transient Data Setup
|
|
48
|
+
|
|
49
|
+
On mount:
|
|
50
|
+
|
|
51
|
+
1. Build `filtersWithClassID`: map each filter's property name (via `PCore.getAnnotationUtils().getPropertyName(filter.config.value)`) to an empty string, then add `classID` from `pageClass`.
|
|
52
|
+
2. Call `getPConnect().getContainerManager().addTransientItem({ id: viewName, data: filtersWithClassID })`.
|
|
53
|
+
3. This creates a transient data context for the filter fields and returns a `transientItemID`.
|
|
54
|
+
|
|
55
|
+
### Filters Sub-Component
|
|
56
|
+
|
|
57
|
+
The Filters sub-component:
|
|
58
|
+
|
|
59
|
+
1. Creates each filter field via `PCore.createPConnect({ meta: filterClone, options: { hasForm: true, contextName: transientItemID } })`.
|
|
60
|
+
2. If the filter type is not in `SUPPORTED_TYPES_IN_PROMOTED_FILTERS`, coerces it to `TextInput` and removes the placeholder.
|
|
61
|
+
3. Renders each created PConnect as a field component via the project's component registry bridge.
|
|
62
|
+
|
|
63
|
+
### Search
|
|
64
|
+
|
|
65
|
+
On Search button click:
|
|
66
|
+
|
|
67
|
+
1. Prevent default form submission.
|
|
68
|
+
2. Read form changes via `PCore.getFormUtils().getChanges(transientItemID)`.
|
|
69
|
+
3. Build `formValues` from the changes, excluding `context_data` and `pageInstructions` keys.
|
|
70
|
+
4. Format filter values via `formatPromotedFilters`: for each non-empty field, build `{ lhs: { field }, comparator: 'EQ', rhs: { value } }`.
|
|
71
|
+
5. Validate with `PCore.getFormUtils().isFormValid(transientItemID)` and `isValidInput(formValues)`.
|
|
72
|
+
6. If valid, set `initTable` to true and build a query object with `dataViewParameters` and, if filters are non-empty, `query.filter.filterConditions`.
|
|
73
|
+
7. Store the query in payload local state — `ListView` re-fetches with the filter payload.
|
|
74
|
+
|
|
75
|
+
### Clear
|
|
76
|
+
|
|
77
|
+
On Clear button click:
|
|
78
|
+
|
|
79
|
+
1. Call `PCore.getContainerUtils().clearTransientData(transientItemID)`.
|
|
80
|
+
2. Reset `initTable` to `false`.
|
|
81
|
+
3. Clear any selected rows via `getPConnect()?.getListActions?.()?.setSelectedRows([])`.
|
|
82
|
+
4. `ListView` re-fetches without filters.
|
|
83
|
+
|
|
84
|
+
### Render Structure
|
|
85
|
+
|
|
86
|
+
An outer container holding: a title heading element; a fields container with the Filters sub-component; an actions container with Clear and Search buttons (localized via `PCore.getLocaleUtils().getLocaleValue('Clear', 'SimpleTable')` and `PCore.getLocaleUtils().getLocaleValue('Search', 'SimpleTable')`); and a `ListView` below (shown only when `initTable` is true), receiving `listViewProps`, an empty `title`, the active `payload`, and `isSearchable` set.
|
|
87
|
+
|
|
88
|
+
## Visual Specifications
|
|
89
|
+
|
|
90
|
+
| Element | Description |
|
|
91
|
+
| ----------------- | ------------------------------------------ |
|
|
92
|
+
| Filter fields row | Horizontal flex row of filter field inputs |
|
|
93
|
+
| Action buttons | Clear + Search buttons, right-aligned |
|
|
94
|
+
| ListView | Below the filter row, full width |
|
|
95
|
+
|
|
96
|
+
- Outer container: vertical flex layout with 1rem gap.
|
|
97
|
+
- Filter fields row: horizontal flex layout, wrapping enabled, 0.5rem gap, items aligned to bottom.
|
|
98
|
+
- Action buttons row: horizontal flex layout, 0.5rem gap, justified to end.
|
|
99
|
+
|
|
100
|
+
## Edge Cases & Special Logic
|
|
101
|
+
|
|
102
|
+
- Transient item must be cleaned up on unmount: call `PCore.getContainerUtils().clearTransientData(transientItemID)` or equivalent lifecycle cleanup.
|
|
103
|
+
- The search handler skips empty values — a filter with no input is not sent to the query.
|
|
104
|
+
- If all filters are empty, the Search returns unfiltered results.
|
|
105
|
+
- `PCore.createPConnect` creates new PConnect instances for each filter — these must be properly keyed and managed.
|
|
106
|
+
- `isValidInput` returns true only if at least one filter value is truthy.
|
|
107
|
+
|
|
108
|
+
## Dependencies
|
|
109
|
+
|
|
110
|
+
- `formatPromotedFilters` — builds EQ filter condition objects from form values
|
|
111
|
+
- `isValidInput` — validates that at least one filter field has a value
|
|
112
|
+
- `PCore.getContainerManager().addTransientItem()` — transient context setup
|
|
113
|
+
- `PCore.getContainerUtils().clearTransientData()` — transient context teardown
|
|
114
|
+
- `PCore.getFormUtils().getChanges()` — reads transient form state
|
|
115
|
+
- `PCore.getFormUtils().isFormValid()` — validates transient form
|
|
116
|
+
- `PCore.getAnnotationUtils().getPropertyName()` — resolves property names from value references
|
|
117
|
+
- `PCore.createPConnect()` — creates PConnect instances for filter fields
|
|
118
|
+
- `PCore.getLocaleUtils().getLocaleValue()` — localizes button labels
|
|
119
|
+
- `ListView` — the list below the filters (from the project's component registry)
|
|
120
|
+
|
|
121
|
+
## Design System Mapping
|
|
122
|
+
|
|
123
|
+
**UI control type:** Filter bar above a list view — transient field inputs + Clear/Search actions.
|
|
124
|
+
|
|
125
|
+
When implementing in a specific design system, use the appropriate button component for Clear and Search actions, and a horizontal flex/wrap layout for the filter fields row. The filter fields themselves are rendered dynamically via PConnect and will use whatever field components are registered in the project's component registry. Each design system will have its own equivalents for the action buttons and layout containers.
|
|
126
|
+
|
|
127
|
+
Design considerations:
|
|
128
|
+
|
|
129
|
+
- Transient data pattern is critical — each filter field must read/write to `PCore`'s transient store
|
|
130
|
+
- The `formatPromotedFilters` helper builds the query filter payload — use it unchanged
|
|
131
|
+
- Transient item cleanup on unmount is required to avoid stale data
|
|
132
|
+
- Button labels must be localized via `PCore.getLocaleUtils().getLocaleValue`
|
package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Skill: SelfServiceCaseView
|
|
2
|
+
|
|
3
|
+
Self-service portal case view template. Renders a case workspace optimized for self-service channels, with a compact summary sidebar, main content area, and optional utilities panel.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
A case view variant designed for self-service portal channels. Uses a horizontal flex layout (25% summary / flex:1 main / 25% utilities) instead of the 3-column grid of `CaseView`. Filters case summary data to only include fields available in the self-service channel, and filters utilities to self-service-appropriate actions.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Registration key:** `SelfServiceCaseView` (in the project's component map)
|
|
16
|
+
- **Category:** Page template — self-service case workspace
|
|
17
|
+
- **Extends:** the project's base component interface
|
|
18
|
+
|
|
19
|
+
## Inputs
|
|
20
|
+
|
|
21
|
+
| Name | Type | Required | Description |
|
|
22
|
+
| --------------------- | ------------------- | -------- | ---------------------------------------------------------------------------------------- |
|
|
23
|
+
| `children` | renderable content | Yes | Region children (variable count based on `isObjectType`) |
|
|
24
|
+
| `icon` | `string` | No | Icon identifier for the case type avatar |
|
|
25
|
+
| `header` | `string` | Yes | Case type display name / header text |
|
|
26
|
+
| `subheader` | `string` | No | Secondary header text (typically case ID) |
|
|
27
|
+
| `showCaseLifecycle` | `boolean \| string` | No | Whether to show the lifecycle/stages region (default `true`) |
|
|
28
|
+
| `showSummaryRegion` | `boolean \| string` | No | Whether to show the summary column (default `true`) |
|
|
29
|
+
| `showUtilitiesRegion` | `boolean \| string` | No | Whether to show the utilities column (default `true`) |
|
|
30
|
+
| `showCaseActions` | `boolean \| string` | No | Whether to show the actions menu (default `true`) |
|
|
31
|
+
| `caseClass` | `string` | No | Case class used to determine object-type behavior |
|
|
32
|
+
| `caseInfo` | `object` | No | Object containing `availableActions`, `availableProcesses`, `caseTypeID`, `caseTypeName` |
|
|
33
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
34
|
+
|
|
35
|
+
## Implementation Structure
|
|
36
|
+
|
|
37
|
+
**Module Setup:** The component needs the project's component registry (to retrieve `CaseViewActionsMenu` and `CaseSummary` at runtime), a `prepareCaseSummaryData` utility for filtering summary fields, a `filterUtilities` utility for filtering non-self-service utilities, a `Utils` helper for resolving image sources, and companion styles for the layout and header.
|
|
38
|
+
|
|
39
|
+
**Main Component Logic** — steps in order:
|
|
40
|
+
|
|
41
|
+
1. Retrieve `CaseViewActionsMenu` and `CaseSummary` from the project's component registry.
|
|
42
|
+
2. Receive inputs: `icon` (default `''`), `getPConnect`, `header`, `subheader`, `showCaseLifecycle`/`showSummaryRegion`/`showUtilitiesRegion`/`showCaseActions` (each defaulting to `true`), `children`, `caseClass`, and `caseInfo` fields (`availableActions`, `availableProcesses`, `caseTypeID`, `caseTypeName`, each with sensible defaults); call `getPConnect()` once and reuse the result.
|
|
43
|
+
3. Coerce the four `show*` boolean-ish inputs (which may arrive as strings) to real booleans by checking `p === true || p === 'true'` for each.
|
|
44
|
+
4. Determine `isObjectType` via `PCore.getCaseUtils().isObjectCaseType(caseClass)` — this affects how children are indexed.
|
|
45
|
+
5. Get the locale key via `pConnect.getCaseLocaleReference()`.
|
|
46
|
+
6. Resolve the case icon image source via `Utils.getImageSrc(icon, Utils.getSDKStaticConentUrl())`.
|
|
47
|
+
7. **Assign regions using TWO parallel arrays:** rendered children (for display) and PConnect child envs (for metadata access). Get `renderChildren` from the framework's content projection input (as a renderable array). Get `pConnChildren` from `pConnect.getChildren()` (PConnect child envs that DO have `getPConnect` methods). Index both by the same positions. For rendering: `stagesElement = renderChildren[1]`, `todoElement = renderChildren[2]`, `utilitiesElement = renderChildren[4]` (non-object) or `mainElement = renderChildren[1]`, `utilitiesElement = renderChildren[2]` (object). For metadata: `summaryEnv = pConnChildren[0]`, `utilitiesEnv = pConnChildren[4]` (non-object) or `pConnChildren[2]` (object). **Do NOT call `.getPConnect()` on rendered children** — they are rendered elements without a direct `getPConnect` method.
|
|
48
|
+
8. Filter summary fields for the self-service channel: call `prepareCaseSummaryData(summaryEnv, filterFn)` where `summaryEnv` is from `pConnChildren` (not from rendered children). The helper calls `summaryEnv.getPConnect().getChildren()` which works because PConnect child envs have `getPConnect` methods.
|
|
49
|
+
9. Compute utilities visibility: `isUtilitiesRegionNotEmpty(utilitiesEnv)` uses the PConnect child env (from `pConnChildren`) to check whether utilities have visible children.
|
|
50
|
+
10. Compute visibility flags: `showUtilities` is true when `bShowUtilitiesRegion` and `isUtilitiesRegionNotEmpty()`; `showSummary` is true when `bShowSummaryRegion` and either summary field list is non-empty.
|
|
51
|
+
11. Render a self-service header bar (class `selfServiceCaseViewHeader`) showing the localized `header` text and (when `bShowCaseActions`) the `CaseViewActionsMenu` component with the action inputs passed through.
|
|
52
|
+
12. Below the header, render a horizontal flex row with three sections: the summary region at `flex: 0 0 25%` (rendered only when `showSummary`, containing a card with the case icon avatar, localized header, subheader, dividers, and the `CaseSummary` component with `arPrimaryFields` and `arSecondaryFields`); the main content area at `flex: 1` (containing the stages element directly when `bShowCaseLifecycle`, followed by the todo/main element directly); and the utilities region at `flex: 0 0 25%` (rendered only when `showUtilities`, rendering the utilities element directly). **Render children directly in the template** — do NOT pass them through the PConnect bridge component.
|
|
53
|
+
|
|
54
|
+
## Behavioral Contract
|
|
55
|
+
|
|
56
|
+
### Region Assignment by Child Index
|
|
57
|
+
|
|
58
|
+
> ⚠️ **CRITICAL:** Use TWO parallel arrays for child access:
|
|
59
|
+
>
|
|
60
|
+
> - `renderChildren` (from the framework's content projection input) — for RENDERING regions directly in the template
|
|
61
|
+
> - `pConnChildren` (from `pConnect.getChildren()`) — for METADATA access (filtering, field extraction)
|
|
62
|
+
>
|
|
63
|
+
> **Do NOT call `.getPConnect()` on rendered children** — they are rendered elements without a direct `getPConnect` method. Only PConnect child envs (from `pConnect.getChildren()`) have `getPConnect`.
|
|
64
|
+
|
|
65
|
+
Child indexing depends on `isObjectType`:
|
|
66
|
+
|
|
67
|
+
**`isObjectType === false` (5 children):**
|
|
68
|
+
|
|
69
|
+
| Index | Region |
|
|
70
|
+
| ----- | --------------- |
|
|
71
|
+
| 0 | Summary |
|
|
72
|
+
| 1 | (Header/Stages) |
|
|
73
|
+
| 2 | Main content |
|
|
74
|
+
| 3 | Utilities |
|
|
75
|
+
| 4 | (Additional) |
|
|
76
|
+
|
|
77
|
+
**`isObjectType === true` (3 children):**
|
|
78
|
+
|
|
79
|
+
| Index | Region |
|
|
80
|
+
| ----- | ------------ |
|
|
81
|
+
| 0 | Summary |
|
|
82
|
+
| 1 | Main content |
|
|
83
|
+
| 2 | Utilities |
|
|
84
|
+
|
|
85
|
+
Show/hide individual regions based on:
|
|
86
|
+
|
|
87
|
+
- `showSummary`: show summary only when the region has filtered content.
|
|
88
|
+
- `showMain`: always show main content region.
|
|
89
|
+
- `showUtilities`: show utilities only if the region has visible children.
|
|
90
|
+
|
|
91
|
+
### Self-Service Case View Header
|
|
92
|
+
|
|
93
|
+
Renders a slim header bar above the main flex layout showing:
|
|
94
|
+
|
|
95
|
+
- Localized header text via `PCore.getLocaleUtils().getLocaleValue(header, '', localeKey)`
|
|
96
|
+
- The `CaseViewActionsMenu` component (when `bShowCaseActions` is true)
|
|
97
|
+
|
|
98
|
+
### Case Summary Data
|
|
99
|
+
|
|
100
|
+
Call `prepareCaseSummaryData(summaryEnv, filterFn)` where `summaryEnv` is a PConnect child env (from `pConnect.getChildren()`, NOT from rendered children). The helper accesses `summaryEnv.getPConnect().getChildren()` to iterate region children.
|
|
101
|
+
|
|
102
|
+
- Only include fields where `availableInChannel.selfService === true`.
|
|
103
|
+
|
|
104
|
+
### Utilities Filter
|
|
105
|
+
|
|
106
|
+
The `isUtilitiesRegionNotEmpty` function uses the PConnect child env (from `pConnect.getChildren()`) to access `utilitiesEnv.getPConnect().getChildren()` and check visibility.
|
|
107
|
+
|
|
108
|
+
### Utilities Visibility Check
|
|
109
|
+
|
|
110
|
+
Uses the PConnect child env — NOT the rendered element — to access children metadata via `getPConnect().getChildren()` and verify at least one child has `getConfigProps().visibility !== false`.
|
|
111
|
+
|
|
112
|
+
### Render Structure
|
|
113
|
+
|
|
114
|
+
An outer container holding the self-service header (`psdk-ss-case-view-header` or equivalent class), followed by a flex row body (`display: flex; flex-direction: row`) with three children: a `flex: 0 0 25%` box showing the summary card when `showSummary` is true; a `flex: 1` box showing the main region; and a `flex: 0 0 25%` box showing the utilities region when `showUtilities` is true.
|
|
115
|
+
|
|
116
|
+
## Visual Specifications
|
|
117
|
+
|
|
118
|
+
| Column | Width | Contents |
|
|
119
|
+
| --------- | ----------- | ------------------------------------------- |
|
|
120
|
+
| Summary | 25% (fixed) | Case summary fields (self-service filtered) |
|
|
121
|
+
| Main | flex: 1 | Main case content / assignment form |
|
|
122
|
+
| Utilities | 25% (fixed) | Filtered utilities |
|
|
123
|
+
|
|
124
|
+
**Companion styles:**
|
|
125
|
+
|
|
126
|
+
- Body layout: `display: flex; flex-direction: row; gap: 1rem`.
|
|
127
|
+
- Summary column: `flex: 0 0 25%; min-width: 0`.
|
|
128
|
+
- Main column: `flex: 1 1 auto; min-width: 0`.
|
|
129
|
+
- Utilities column: `flex: 0 0 25%; min-width: 0`.
|
|
130
|
+
- Header bar: `margin: 10px 8px 0 8px; height: 50px; display: flex; justify-content: space-between; align-items: center; padding: 0 8px`. Background uses the primary light color with contrasting text.
|
|
131
|
+
- Summary card root: padding and margin of one spacing unit on all sides.
|
|
132
|
+
- Summary card header: uses the info light background with contrasting text, rounded corners.
|
|
133
|
+
- Case icon box: info dark background, fixed size (e.g. 64x64), with padding.
|
|
134
|
+
- Responsive: collapse to single column on mobile.
|
|
135
|
+
|
|
136
|
+
## Edge Cases & Special Logic
|
|
137
|
+
|
|
138
|
+
- `isObjectType` changes the number of `children` — always derive regions by index based on this flag.
|
|
139
|
+
- `filterUtilities` may return an empty array — `showUtilities` should be `false` in that case (hide the column entirely).
|
|
140
|
+
- Summary fields filtered by `availableInChannel.selfService` — if all fields are filtered out, the summary column is hidden.
|
|
141
|
+
- The self-service header differs from the standard case header — it is a separate sub-component, not the full `CaseView` header.
|
|
142
|
+
- The four `show*` inputs may arrive as string `"true"`/`"false"` — coerce to boolean before use.
|
|
143
|
+
|
|
144
|
+
## Dependencies
|
|
145
|
+
|
|
146
|
+
- `prepareCaseSummaryData` from the template utilities — with self-service channel filter applied
|
|
147
|
+
- `filterUtilities` from the template utilities — removes non-self-service utilities
|
|
148
|
+
- `Utils.getImageSrc` / `Utils.getSDKStaticConentUrl` — resolves case icon image paths
|
|
149
|
+
- `PCore.getCaseUtils().isObjectCaseType()` — determines child region indexing
|
|
150
|
+
- `PCore.getLocaleUtils().getLocaleValue()` — header localization
|
|
151
|
+
- `pConnect.getCaseLocaleReference()` — locale key for the case
|
|
152
|
+
- The project's component registry — to retrieve `CaseViewActionsMenu` and `CaseSummary`
|
|
153
|
+
- The project's base component interface
|
|
154
|
+
|
|
155
|
+
## Design System Mapping
|
|
156
|
+
|
|
157
|
+
**UI control type:** Self-service portal case workspace — horizontal 3-panel flex layout with card-based summary.
|
|
158
|
+
|
|
159
|
+
When implementing in a specific design system, map the following:
|
|
160
|
+
|
|
161
|
+
- **Layout container:** Use the design system's flex/grid primitives for the 3-column row. The key constraint is 25%/flex-1/25% proportions.
|
|
162
|
+
- **Summary card:** Use the design system's card component with a header section (avatar + title + subtitle) and dividers between sections. The header should use the theme's info/primary color.
|
|
163
|
+
- **Avatar/Icon:** Use the design system's avatar component (square variant) with the resolved case icon image.
|
|
164
|
+
- **Header bar:** Use the design system's flex container with space-between alignment. Background should be the theme's primary-light color with contrasting text.
|
|
165
|
+
- **Dividers:** Use the design system's divider/separator component between card sections.
|
|
166
|
+
- **Typography:** Use the design system's heading (h6) for the case name and body text for the case ID.
|
|
167
|
+
|
|
168
|
+
Key constraints regardless of design system:
|
|
169
|
+
|
|
170
|
+
- `isObjectType` determines child count — do not assume fixed child order without checking this flag
|
|
171
|
+
- Self-service channel filter on summary data is mandatory — `availableInChannel.selfService === true`
|
|
172
|
+
- `filterUtilities` result controls utilities column visibility
|
|
173
|
+
- Utilities visibility requires checking child `getConfigProps().visibility !== false`
|