@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,110 @@
|
|
|
1
|
+
# Skill: InlineDashboard
|
|
2
|
+
|
|
3
|
+
Inline dashboard template. Renders a dashboard with a title, a main content area, and an optional filter panel whose position is configurable.
|
|
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 an inline dashboard layout consisting of a title heading, a main content panel, and an optional filter panel. The filter panel position is configurable: `block-start` places filters above the content in a stacked layout; any other position places filters to the side using a 9/3 column split.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Registration key:** `InlineDashboard` (in the project's component map)
|
|
16
|
+
- **Category:** Page template — dashboard
|
|
17
|
+
- **Extends:** the project's base component interface
|
|
18
|
+
|
|
19
|
+
## Inputs
|
|
20
|
+
|
|
21
|
+
| Input | Type | Required | Description |
|
|
22
|
+
| ---------------- | ---------------- | -------- | ----------------------------------------------------------------------------- |
|
|
23
|
+
| `title` | string | No | Dashboard title displayed above the content area |
|
|
24
|
+
| `filterPosition` | string | No | Filter panel position: `'block-start'` (above) or other (side). Default: side |
|
|
25
|
+
| `children` | child node array | Yes | `children[0]` = main content, `children[1]` = filter panel |
|
|
26
|
+
| `getPConnect` | function | Yes | PConnect getter |
|
|
27
|
+
|
|
28
|
+
## Implementation Structure
|
|
29
|
+
|
|
30
|
+
**Module Setup:** The component requires the project's base component interface and companion styles for layout classes (header, container, column, filter container, and inline styles).
|
|
31
|
+
|
|
32
|
+
**Main Component Logic** — steps in order:
|
|
33
|
+
|
|
34
|
+
1. Receive inputs: extract `children`, `title`, and `filterPosition`. Treat `children` as a renderable element array (`childrenToRender`).
|
|
35
|
+
2. Compute the side-layout `direction`: `'row-reverse'` when `filterPosition === 'inline-start'`, otherwise `'row'`.
|
|
36
|
+
3. Render a heading (level 4) showing `title`, followed by one of two grid layouts:
|
|
37
|
+
- **When `filterPosition === 'block-start'`:** a grid container with column-reverse direction (so the filter panel appears visually above the content even though it's declared second in the DOM), containing a full-width item for `childrenToRender[0]` (main content) and a full-width item with `id="filters"` for `childrenToRender[1]` (filter panel).
|
|
38
|
+
- **Otherwise (side layout):** a grid container with the computed `direction`, containing a 9-column-wide item for `childrenToRender[0]` (main content) and a 3-column-wide item with `id="filters"` for `childrenToRender[1]` (filter panel).
|
|
39
|
+
|
|
40
|
+
## Behavioral Contract
|
|
41
|
+
|
|
42
|
+
### Title
|
|
43
|
+
|
|
44
|
+
- If `title` is non-empty, render a level-4 heading with `title` above the grid.
|
|
45
|
+
|
|
46
|
+
### Filter Position: `'block-start'`
|
|
47
|
+
|
|
48
|
+
Stacked layout — filter panel above main content:
|
|
49
|
+
|
|
50
|
+
- Grid container with column-reverse direction (reverse so filter renders visually above content).
|
|
51
|
+
- Filter panel: full-width (12-column) grid item with `id='filters'`.
|
|
52
|
+
- Main content: full-width (12-column) grid item.
|
|
53
|
+
|
|
54
|
+
### Filter Position: Other (side)
|
|
55
|
+
|
|
56
|
+
Side-by-side layout — main content left, filters right:
|
|
57
|
+
|
|
58
|
+
- Grid container with computed row direction (optionally reversed based on position value).
|
|
59
|
+
- Main content: 9-column-wide grid item.
|
|
60
|
+
- Filter panel: 3-column-wide grid item with `id='filters'`.
|
|
61
|
+
|
|
62
|
+
### Children Assignment
|
|
63
|
+
|
|
64
|
+
- `children[0]` = main content panel.
|
|
65
|
+
- `children[1]` = filter panel (may be absent if no filters configured).
|
|
66
|
+
|
|
67
|
+
## Visual Specifications
|
|
68
|
+
|
|
69
|
+
### Block-Start Layout (filter above content)
|
|
70
|
+
|
|
71
|
+
A stacked layout: the filter panel occupies the full width above the main content, which also occupies the full width below it.
|
|
72
|
+
|
|
73
|
+
### Side Layout (filter to side)
|
|
74
|
+
|
|
75
|
+
A side-by-side layout: the main content occupies the majority width (75%) on one side, with the filters occupying the remaining width (25%) beside it.
|
|
76
|
+
|
|
77
|
+
**CSS-only implementation notes:**
|
|
78
|
+
|
|
79
|
+
- Title: `font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem`.
|
|
80
|
+
- Block-start: `display: flex; flex-direction: column; gap: 1rem` (filter div first in DOM but ordered last visually with `order: -1`).
|
|
81
|
+
- Side: `display: grid; grid-template-columns: 3fr 1fr; gap: 1rem`.
|
|
82
|
+
- Filter panel: `id='filters'` — required for accessibility/selector targeting.
|
|
83
|
+
- Responsive: collapse side layout to stacked on mobile.
|
|
84
|
+
|
|
85
|
+
**Companion styles** define classes for: header (font-weight 500, font-size 1.25rem), container (vertical margins), column (grid with gap and baseline alignment), filter container (7-column repeat grid), and inline (grid with gap, baseline alignment, top margin).
|
|
86
|
+
|
|
87
|
+
## Edge Cases & Special Logic
|
|
88
|
+
|
|
89
|
+
- If `children[1]` is absent (no filters), render only the main content without the grid.
|
|
90
|
+
- Column-reverse direction in block-start mode — in plain CSS, use flexbox column direction with `order` property.
|
|
91
|
+
- `title` is optional — if absent, skip the heading entirely (no empty heading).
|
|
92
|
+
- Filter grid always gets `id='filters'` — this is used by `PromotedFilters` for integration.
|
|
93
|
+
|
|
94
|
+
## Dependencies
|
|
95
|
+
|
|
96
|
+
- A design-system heading component (level 4) for the title
|
|
97
|
+
- A design-system grid/layout component for the responsive container
|
|
98
|
+
- Companion styles for spacing and alignment classes
|
|
99
|
+
|
|
100
|
+
## Design System Mapping
|
|
101
|
+
|
|
102
|
+
**UI control type:** Dashboard layout with configurable title and filter panel position.
|
|
103
|
+
|
|
104
|
+
When implementing in a specific design system, map the following: a level-4 heading for the title; a responsive grid container supporting directional flow (row, row-reverse, column-reverse); grid items that accept column-span sizing (full-width for stacked, 9/3 split for side layout). In a CSS-only approach, use a native heading element and CSS grid or flexbox. Other design systems provide equivalent grid and typography primitives.
|
|
105
|
+
|
|
106
|
+
When implementing:
|
|
107
|
+
|
|
108
|
+
- `filterPosition === 'block-start'` requires stacked layout (full-width / full-width) — not side layout (9/3)
|
|
109
|
+
- Filter panel must always have `id='filters'`
|
|
110
|
+
- Title heading (level 4) is optional — only render when `title` is provided
|
package/templates/react-sdk-reference/.ai-common/skills/template-skills/InlineDashboardPage.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Skill: InlineDashboardPage
|
|
2
|
+
|
|
3
|
+
Inline dashboard page template. Builds filter components from promoted filters metadata and delegates rendering to `InlineDashboard`.
|
|
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
|
+
> ⚠️ **CRITICAL — Must use the project's filter-component builder utility**
|
|
10
|
+
>
|
|
11
|
+
> This component MUST use the project's filter-component builder utility (invoked with `getPConnect` and the filters array) to generate proper filter UI components. Without this, dashboard filters will not render correctly.
|
|
12
|
+
>
|
|
13
|
+
> **Mandatory implementation details:**
|
|
14
|
+
>
|
|
15
|
+
> 1. Obtain the filter-component builder utility from the project's SDK bridge layer
|
|
16
|
+
> 2. `getPConnect().getRawMetadata().children[1]` — extract filter metadata
|
|
17
|
+
> 3. Local state for `filterComponents` populated via a lifecycle effect on mount
|
|
18
|
+
> 4. Assemble forwarded children so index 1 contains the built filter components
|
|
19
|
+
>
|
|
20
|
+
> **Minimum Implementation Checklist:**
|
|
21
|
+
>
|
|
22
|
+
> - [ ] Filter-component builder utility obtained from the project's SDK bridge
|
|
23
|
+
> - [ ] `filterComponents` local state populated via lifecycle effect
|
|
24
|
+
> - [ ] Filter metadata extracted from `getRawMetadata().children[1]`
|
|
25
|
+
> - [ ] InlineDashboard receives filter components as children
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Component Purpose
|
|
30
|
+
|
|
31
|
+
Page-level wrapper for the inline dashboard. Extracts promoted filter definitions from the PConnect metadata, builds filter components from them, and passes them to `InlineDashboard` as the second child (filter panel). The first child (main content) is passed through unchanged.
|
|
32
|
+
|
|
33
|
+
> See `InlineDashboard.md` for the layout and rendering behavior. This component only handles filter component construction.
|
|
34
|
+
|
|
35
|
+
## Pega Metadata
|
|
36
|
+
|
|
37
|
+
- **Registration key:** `InlineDashboardPage` (in the project's component map)
|
|
38
|
+
- **Category:** Page template — dashboard page
|
|
39
|
+
- **Extends:** The project's base component interface
|
|
40
|
+
|
|
41
|
+
## Inputs
|
|
42
|
+
|
|
43
|
+
| Input | Type | Required | Description |
|
|
44
|
+
| ---------------- | ------------------ | -------- | ----------------------------------------------- |
|
|
45
|
+
| `children` | child element list | Yes | Main content children passed to InlineDashboard |
|
|
46
|
+
| `title` | `string` | No | Dashboard title |
|
|
47
|
+
| `filterPosition` | `string` | No | Filter position: `'block-start'` or side |
|
|
48
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
49
|
+
|
|
50
|
+
## Implementation Structure
|
|
51
|
+
|
|
52
|
+
**Module Setup:** Obtain the project's filter-component builder utility from the SDK bridge layer and the `InlineDashboard` component from the project's component registry. The component requires local state management and a lifecycle effect for initialization.
|
|
53
|
+
|
|
54
|
+
The component's interface extends the project's base component interface with `title: string`, optional `icon?: string`, and optional `filterPosition?: string`.
|
|
55
|
+
|
|
56
|
+
**Main Component Logic** — steps in order:
|
|
57
|
+
|
|
58
|
+
1. Retrieve `InlineDashboard` from the project's component registry. Receive inputs: `children`, `getPConnect`, and `filterPosition` (default `'block-start'`). Declare local state `filterComponents` (array, initially empty). Create a memoized computation that converts children into a flat array.
|
|
59
|
+
2. Build filter components from metadata on mount: read `allFilters = getPConnect().getRawMetadata().children[1]`, then inside a lifecycle effect that runs once on initialization, invoke the project's filter-component builder utility with `getPConnect` and `allFilters`, and store the result in `filterComponents` local state.
|
|
60
|
+
3. Assemble the inputs to forward to `InlineDashboard`: shallow-copy the received inputs into a forwarding object, then set its children to a new array whose index 0 is the first child element (the main content) and whose index 1 is `filterComponents` (the built filters).
|
|
61
|
+
4. Delegate rendering entirely to `InlineDashboard`, spreading all assembled inputs.
|
|
62
|
+
|
|
63
|
+
## Behavioral Contract
|
|
64
|
+
|
|
65
|
+
### Filter Component Construction
|
|
66
|
+
|
|
67
|
+
In a lifecycle effect (on mount, runs once):
|
|
68
|
+
|
|
69
|
+
1. Get promoted filters: `allFilters = getPConnect().getRawMetadata().children[1]`.
|
|
70
|
+
2. Invoke the project's filter-component builder utility with `getPConnect` and `allFilters`:
|
|
71
|
+
- For each filter in `allFilters`, creates a PConnect-based filter field component.
|
|
72
|
+
- Returns an array of rendered filter elements ready to display.
|
|
73
|
+
3. Store result in `filterComponents` local state.
|
|
74
|
+
|
|
75
|
+
### Render
|
|
76
|
+
|
|
77
|
+
Delegate to `InlineDashboard`, forwarding `title`, `filterPosition`, and `getPConnect`, with two children: children index 0 (the main content region) and `filterComponents` (the built filter elements, replacing the raw children index 1).
|
|
78
|
+
|
|
79
|
+
## Visual Specifications
|
|
80
|
+
|
|
81
|
+
Identical to `InlineDashboard` — see `InlineDashboard.md`. The only difference is that the filter panel children are programmatically built, not passed directly.
|
|
82
|
+
|
|
83
|
+
## Edge Cases & Special Logic
|
|
84
|
+
|
|
85
|
+
- `allFilters` may be empty — if no promoted filters exist, `filterComponents` is an empty array, and `InlineDashboard` renders without a filter panel.
|
|
86
|
+
- The filter-component builder utility may be async in some implementations — show a loading state if needed until filters are ready.
|
|
87
|
+
- Children index 0 is always the main content — index is stable.
|
|
88
|
+
- `filterComponents` replaces children index 1 entirely — do not render both.
|
|
89
|
+
|
|
90
|
+
## Dependencies
|
|
91
|
+
|
|
92
|
+
- The project's filter-component builder utility — constructs filter field components from promoted filter config; accepts `getPConnect` and a filters array and returns rendered filter components
|
|
93
|
+
- `InlineDashboard` — the layout template this component wraps (resolved via the project's component registry)
|
|
94
|
+
|
|
95
|
+
## Design System Mapping
|
|
96
|
+
|
|
97
|
+
**UI control type:** Dashboard page — programmatic filter construction + InlineDashboard delegation.
|
|
98
|
+
|
|
99
|
+
This component is a thin orchestration layer. All visual implementation is in `InlineDashboard`. The only implementation detail is the filter-component builder utility — which creates filter field components from metadata definitions.
|
|
100
|
+
|
|
101
|
+
When implementing in a specific design system, map the following:
|
|
102
|
+
|
|
103
|
+
- The filter-component builder utility must create proper PConnect-backed filter field components
|
|
104
|
+
- If promoted filters metadata is empty, skip the filter panel entirely
|
|
105
|
+
- All layout and styling is delegated to `InlineDashboard`
|
package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/ListPage.md
RENAMED
|
@@ -8,21 +8,21 @@ List page template. Thin wrapper that renders `ListView` in standalone page mode
|
|
|
8
8
|
|
|
9
9
|
## Component Purpose
|
|
10
10
|
|
|
11
|
-
Renders a full-page list view by forwarding all
|
|
11
|
+
Renders a full-page list view by forwarding all inputs to `ListView` with `bInForm: false`. There is no additional logic — this component exists solely to provide a registration key that signals "this is a page, not an inline table."
|
|
12
12
|
|
|
13
13
|
> See `ListView.md` for full documentation of all capabilities.
|
|
14
14
|
|
|
15
15
|
## Pega Metadata
|
|
16
16
|
|
|
17
|
-
- **Registration key:** `ListPage` (in
|
|
17
|
+
- **Registration key:** `ListPage` (in the project's component map)
|
|
18
18
|
- **Category:** Page template — list page
|
|
19
|
-
- **Extends:**
|
|
19
|
+
- **Extends:** The project's base component interface
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Inputs
|
|
22
22
|
|
|
23
|
-
All
|
|
23
|
+
All inputs are forwarded to `ListView`. Key inputs:
|
|
24
24
|
|
|
25
|
-
|
|
|
25
|
+
| Input | Type | Required | Description |
|
|
26
26
|
| -------------- | ---------- | -------- | ------------------------------ |
|
|
27
27
|
| `dataPageName` | `string` | Yes | Data page to load records from |
|
|
28
28
|
| `columns` | `array` | No | Column definitions |
|
|
@@ -30,13 +30,20 @@ All props are forwarded to `ListView`. Key props:
|
|
|
30
30
|
| `payload` | `object` | No | Query payload |
|
|
31
31
|
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
32
32
|
|
|
33
|
-
##
|
|
33
|
+
## Implementation Structure
|
|
34
|
+
|
|
35
|
+
Simplest possible template — pure pass-through to `ListView` with one input override.
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
<ListView {...props} bInForm={false} />
|
|
37
|
-
```
|
|
37
|
+
**Module Setup:** Obtain `ListView` from the project's component registry. The component's interface extends the project's base component interface with `parameters: object`.
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
**Main Component Logic** — steps in order:
|
|
40
|
+
|
|
41
|
+
1. Retrieve `ListView` from the project's component registry.
|
|
42
|
+
2. Render `ListView` forwarding all received inputs and overriding `bInForm` to `false`.
|
|
43
|
+
|
|
44
|
+
## Behavioral Contract
|
|
45
|
+
|
|
46
|
+
The complete implementation renders `ListView` forwarding all inputs with `bInForm` overridden to `false`. `bInForm: false` ensures ListView renders with full page chrome (outer padding, page-level toolbar layout).
|
|
40
47
|
|
|
41
48
|
## Visual Specifications
|
|
42
49
|
|
|
@@ -54,17 +61,15 @@ None beyond `ListView`. The only constraint is that `bInForm` is always `false`
|
|
|
54
61
|
|
|
55
62
|
## Dependencies
|
|
56
63
|
|
|
57
|
-
- `ListView` — the primary list template component
|
|
64
|
+
- `ListView` — the primary list template component (resolved via the project's component registry)
|
|
58
65
|
|
|
59
66
|
## Design System Mapping
|
|
60
67
|
|
|
61
68
|
**UI control type:** Full-page data list — pass-through to `ListView` with page-mode flag.
|
|
62
69
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Implement identically to `ListView` — `ListPage` adds no new UI. The distinction is purely in the `bInForm` prop which controls spacing/chrome.
|
|
70
|
+
Implement identically to `ListView` — `ListPage` adds no new UI. The distinction is purely in the `bInForm` input which controls spacing/chrome.
|
|
66
71
|
|
|
67
|
-
When implementing in a specific design system:
|
|
72
|
+
When implementing in a specific design system, map the following:
|
|
68
73
|
|
|
69
74
|
- `bInForm: false` signals that the list should have page-level layout (more padding, full-width toolbar)
|
|
70
75
|
- No additional logic beyond `ListView` is required
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Skill: ListView
|
|
2
|
+
|
|
3
|
+
Full-featured list view template. Renders a data table with sorting, pagination, global search, single/multi selection, column menu, and filter dialog.
|
|
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
|
+
> ⚠️ **CRITICAL — `referenceList` is a STRING, not an array**
|
|
10
|
+
>
|
|
11
|
+
> The `referenceList` prop is a **data page reference string** (e.g., `".D_pyMyWorkList.pxResults"`) — NOT an array of data rows. You MUST:
|
|
12
|
+
>
|
|
13
|
+
> 1. Check `typeof referenceList === 'string'` before using it
|
|
14
|
+
> 2. Call `PCore.getDataApiUtils().getData(referenceList, payload)` to fetch actual row data
|
|
15
|
+
> 3. Initialize row state as empty array
|
|
16
|
+
> 4. NEVER put `referenceList` directly into state or call `.filter()` on it
|
|
17
|
+
>
|
|
18
|
+
> Do NOT initialize row state directly from `referenceList` (e.g. as the initial state value) — this crashes later with "rows.filter is not a function" because `referenceList` is a string, not an array. Instead, initialize rows as an empty array and populate them inside a lifecycle effect keyed on `referenceList`: if `referenceList` happens to already be an array, use it directly; otherwise resolve a `dataRef` from `referenceList` (falling back to `dataPageName`) and, when present, call `PCore.getDataApiUtils().getData(dataRef, payload ?? {})`, storing the resolved rows from `response?.data?.data ?? response?.data?.pxResults ?? []` on success, or an empty array on failure.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
> ⚠️ **CRITICAL — Column definitions MUST come from PConnect presets metadata**
|
|
23
|
+
>
|
|
24
|
+
> The table must render ONLY the columns configured in the Pega view metadata — NOT all fields from the raw data response. Raw responses contain 20+ internal fields (`pzInsKey`, `pxRefObjectClass`, `pyAssignmentStatus`, etc.) that should never be shown.
|
|
25
|
+
>
|
|
26
|
+
> **How to extract configured columns:**
|
|
27
|
+
>
|
|
28
|
+
> 1. Get column fields from presets: `getPConnect().getComponentConfig().presets[0].children[0].children`
|
|
29
|
+
> 2. Get field definitions (labels, types) from metadata: `PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, false)`
|
|
30
|
+
> 3. Map each preset column to its field definition to build `{id, label, type, displayAsLink}` headers
|
|
31
|
+
>
|
|
32
|
+
> Do NOT derive columns by taking `Object.keys(rows[0])` and mapping each key to `{ id: key, label: key }` — that shows every raw data key, including internal fields like `pzInsKey` and `pxRefObjectClass`. Instead, extract the configured columns from PConnect presets plus the analytics metadata: read `componentConfig = getPConnect().getComponentConfig()`; read `columnFields = componentConfig.presets[0].children[0].children`; await `metaResponse = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, false)` and take `fieldDefs = metaResponse?.data?.fields ?? []`; then map each entry in `columnFields` (with its index) to a column definition: strip the annotation prefix from `field.config.value` (format `"@P .pyID"`, take the substring after the first space, then strip a leading `.` if present) to get `fieldId`; read `additionalDetails` from `field.config` (default `{}`) and compute `displayAsLink` as true when `additionalDetails.type === 'DISPLAY_LINK'` or when `field.config.displayAsLink` is set; build `{ id: fieldId, label: fieldDefs[index]?.label ?? field.config.label ?? fieldId, type: field.type, displayAsLink, classID: fieldDefs.find(f => f.name === fieldId)?.classID }`.
|
|
33
|
+
>
|
|
34
|
+
> **Key points:**
|
|
35
|
+
>
|
|
36
|
+
> - `field.config.value` has format `"@P .pyID"` — strip annotation prefix to get field name
|
|
37
|
+
> - `fieldDefs[index].label` provides the localized display label
|
|
38
|
+
> - `displayAsLink` determines if the cell renders as a clickable navigation link
|
|
39
|
+
> - If `presets` is unavailable (fallback), use first ~6 fields from `fieldDefs` — NEVER use raw data keys
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
> ⚠️ **CRITICAL — Data fetching differs by `bInForm`**
|
|
44
|
+
>
|
|
45
|
+
> The data API to call depends on whether the ListView is inside a form or on a standalone page: for page-level use (`bInForm = false`, e.g. a worklist landing page), await `PCore.getDataApiUtils().getData(referenceList, payload ?? {})` and read rows from `result?.data?.data ?? []`; for form-level use (`bInForm = true`, e.g. an embedded list in a case form), resolve `context = getPConnect().getContextName()`, await `PCore.getDataPageUtils().getDataAsync(referenceList, context, parameters, null, query)`, and read rows from `result?.data ?? []`.
|
|
46
|
+
>
|
|
47
|
+
> Using the wrong API will return empty data or fail silently.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Component Purpose
|
|
52
|
+
|
|
53
|
+
The primary data table component. Renders a sortable, paginated, filterable, and selectable table from a PConnect data source. Supports both standalone page use (`bInForm: false`) and embedded form use (`bInForm: true`). Columns are configurable, and the table supports row-level selection with callback.
|
|
54
|
+
|
|
55
|
+
## Pega Metadata
|
|
56
|
+
|
|
57
|
+
- **Registration key:** `ListView` (in the project's component map)
|
|
58
|
+
- **Category:** Data display template
|
|
59
|
+
- **Extends:** The project's base component interface
|
|
60
|
+
|
|
61
|
+
## Inputs
|
|
62
|
+
|
|
63
|
+
| Prop | Type | Required | Description |
|
|
64
|
+
| ----------------------- | ---------- | -------- | ----------------------------------------------------------------------------- |
|
|
65
|
+
| `bInForm` | `boolean` | No | Whether rendered inside a form (affects toolbar and padding). Default `false` |
|
|
66
|
+
| `selectionMode` | `string` | No | `'single'` (radio) or `'multi'` (checkbox) or absent (no selection) |
|
|
67
|
+
| `dataPageName` | `string` | No | Name of data page to fetch records from |
|
|
68
|
+
| `referenceList` | `array` | No | In-memory data array (used when data is already available) |
|
|
69
|
+
| `compositeKeys` | `object` | No | Key fields for unique row identification |
|
|
70
|
+
| `columns` | `array` | No | Column definition objects `{ fieldName, label, sortable, filterable }` |
|
|
71
|
+
| `additionalTableConfig` | `object` | No | Extra config merged with column/sort/filter settings |
|
|
72
|
+
| `isSearchable` | `boolean` | No | Whether global search input is shown |
|
|
73
|
+
| `payload` | `object` | No | Query payload for data page requests |
|
|
74
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
75
|
+
|
|
76
|
+
## Implementation Structure
|
|
77
|
+
|
|
78
|
+
> ⚠️ **CRITICAL — USE THE PROJECT'S DESIGN SYSTEM FOR TABLE RENDERING**
|
|
79
|
+
>
|
|
80
|
+
> This component MUST use the **installed design system's table components** — NOT plain HTML `<table>/<thead>/<tbody>`.
|
|
81
|
+
> Check the project's dependencies for the installed design system and use its table primitives. The table MUST look like a proper data grid with:
|
|
82
|
+
>
|
|
83
|
+
> - Column headers with field labels (from PConnect presets metadata)
|
|
84
|
+
> - Paginated rows (not all rows at once)
|
|
85
|
+
> - Clickable link cells for navigation
|
|
86
|
+
> - Search toolbar (when `globalSearch !== false`)
|
|
87
|
+
>
|
|
88
|
+
> Do NOT render raw `Object.values(row)` or dump all data keys as columns, and do NOT use plain HTML when a design system is installed.
|
|
89
|
+
|
|
90
|
+
This is the largest template component. The implementation MUST include these critical sections.
|
|
91
|
+
|
|
92
|
+
**Module Setup:** The component depends on local state management, lifecycle effects, and a cached callback. Declare a constant `AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket']` (classes whose links should open as assignments rather than plain work items). Define the input contract as an extension of the project's base component interface with optional `bInForm`, `globalSearch`, `referenceList`, `selectionMode`, `referenceType`, `payload`, `parameters`, `compositeKeys`, and `localeReference` fields.
|
|
93
|
+
|
|
94
|
+
**Main Component Logic** — steps in order:
|
|
95
|
+
|
|
96
|
+
1. Receive inputs: `getPConnect`, `bInForm` (default `true`), `globalSearch`, `referenceList`, `payload`, `parameters`, and `localeReference`. Declare local state: `arRows` (array, default `[]`), `arColumns` (array, default `[]`), `page` (default `1`), `pageSize` (default `10`), `searchValue` (default `''`), and `title` (default `''`).
|
|
97
|
+
2. Call `getPConnect()` once into `thePConn`; read `componentConfig = thePConn.getComponentConfig()` and `resolvedConfigProps = thePConn.getConfigProps()`.
|
|
98
|
+
3. **Extract column definitions from PConnect presets** — define a memoized/cached `getHeaderCells(columnFields, fieldDefs)` callback that maps each `columnFields` entry (with its index) to a header descriptor: strip the annotation prefix from `field.config.value` to get `theField` (take the substring after the first space, then strip a leading `.`); find the matching field definition's index in `fieldDefs` via `.findIndex(ele => ele.name === theField)` as `colIndex`; read `additionalDetails` from `field.config` (default `{}`) and compute `displayAsLink` as true when `additionalDetails.type === 'DISPLAY_LINK'` or when `field.config.displayAsLink` is set; return `{ id: theField, type: field.type, displayAsLink, label: fieldDefs[index]?.label ?? field.config.label ?? theField, classID: colIndex > -1 ? fieldDefs[colIndex].classID : undefined, isAssignmentLink: displayAsLink && AssignDashObjects.includes(fieldDefs[colIndex]?.classID) }`.
|
|
99
|
+
4. **Fetch metadata + data** in a lifecycle effect keyed on `[referenceList, bInForm, payload, parameters]`, using an `isActive` flag to guard against updates after unmount:
|
|
100
|
+
- Await field definitions via `PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, false)`, reading `fieldDefs` from `metaResponse?.data?.fields ?? []`.
|
|
101
|
+
- Read configured columns from `componentConfig?.presets?.[0]?.children?.[0]?.children ?? []`; when non-empty, build `myColumns` via `getHeaderCells(columnFields, fieldDefs)`, localize each column's `label` through `PCore.getLocaleUtils().getLocaleValue` when `localeReference` is set, and store the result via `setColumns`.
|
|
102
|
+
- Fetch the row data using the API appropriate to `bInForm` (see the CRITICAL note above): for `!bInForm`, await `PCore.getDataApiUtils().getData(referenceList, payload ?? {})`; for `bInForm`, resolve `context = thePConn.getContextName()` and await `PCore.getDataPageUtils().getDataAsync(referenceList, context, parameters, null, null)`. Extract `tableData` from `dataResult?.data?.data ?? []` (page mode) or `dataResult?.data ?? []` (form mode), and store it via `setRows` (defaulting to `[]` when not an array).
|
|
103
|
+
5. **Link click handling** — define `handleLinkClick(row, column)`: when `column.isAssignmentLink`, destructure `pxRefObjectClass` and `pzInsKey` from `row` and call `thePConn.getActionsApi().openAssignment(pzInsKey, pxRefObjectClass, { containerName: thePConn.getContainerName(), channelName: '' })`; otherwise, resolve `pxRefObjectKey` from `row.pxRefObjectKey ?? row.pzInsKey` and `pxRefObjectClass` from `row.pxRefObjectClass ?? row.pxObjClass`, and when both are present, call `thePConn.getActionsApi().openWorkByHandle(pxRefObjectKey, pxRefObjectClass)`.
|
|
104
|
+
6. Beyond these mandatory sections, a full implementation also needs search, pagination, sort, selection, and rendering logic (see the Behavioral Contract below for each).
|
|
105
|
+
|
|
106
|
+
> **Note:** The sections above show the MANDATORY patterns. Full implementations will also include sorting, selection, filter dialog, column menus, and PubSub subscriptions for dashboard filters. But the three critical sections above (column extraction, data fetching, link handling) MUST be present for the table to render correctly.
|
|
107
|
+
|
|
108
|
+
## Behavioral Contract
|
|
109
|
+
|
|
110
|
+
### Initialization
|
|
111
|
+
|
|
112
|
+
The initialization utility (invoked with `getPConnect`, `columns`, `dataPageName`, and `payload`):
|
|
113
|
+
|
|
114
|
+
1. Calls `initializeColumns(getPConnect, columns)` to build `configFields`.
|
|
115
|
+
2. Calls `buildFieldsForTable(configFields)` to produce display column definitions.
|
|
116
|
+
3. Calls `getConfigFields(configFields)` for sort/filter metadata.
|
|
117
|
+
4. Fetches initial data via `PCore.getDataApiUtils().getDataAsync(dataPageName, payload)`.
|
|
118
|
+
5. Returns `{ tableDataRows, configFields, totalCount }`.
|
|
119
|
+
|
|
120
|
+
### Sorting
|
|
121
|
+
|
|
122
|
+
- `<TableSortLabel>` in each sortable column header.
|
|
123
|
+
- On click: call `PCore.getDataApiUtils().getDataAsync(dataPageName, { ...payload, sortBy, sortOrder })`.
|
|
124
|
+
- `sortBy` = column field name, `sortOrder` = `'ASC'` or `'DESC'`.
|
|
125
|
+
|
|
126
|
+
### Pagination
|
|
127
|
+
|
|
128
|
+
- `<TablePagination>` component below the table.
|
|
129
|
+
- `rowsPerPageOptions`: `[5, 10, 25]`.
|
|
130
|
+
- On page/rows change: re-fetch with `startIndex` and `maxResults` params.
|
|
131
|
+
|
|
132
|
+
### Global Search
|
|
133
|
+
|
|
134
|
+
- Shown when `isSearchable === true`.
|
|
135
|
+
- `<TextField>` input above the table (toolbar area).
|
|
136
|
+
- On submit/debounce: re-fetch with `searchText` param.
|
|
137
|
+
|
|
138
|
+
### Selection
|
|
139
|
+
|
|
140
|
+
| `selectionMode` | Control per row | Callback |
|
|
141
|
+
| --------------- | --------------- | ---------------------------- |
|
|
142
|
+
| `'single'` | `<Radio>` | `onRowSelect(rowData)` |
|
|
143
|
+
| `'multi'` | `<Checkbox>` | `onRowsSelect(selectedRows)` |
|
|
144
|
+
| absent | None | None |
|
|
145
|
+
|
|
146
|
+
- Select-all checkbox in the header for multi-selection.
|
|
147
|
+
- Selected rows highlighted with `selected` row class.
|
|
148
|
+
|
|
149
|
+
### Column Menu
|
|
150
|
+
|
|
151
|
+
- `<MoreVertIcon>` button in each column header.
|
|
152
|
+
- Opens `<Menu>` with options: Show/Hide column, Pin column.
|
|
153
|
+
- Column visibility stored in local state `columnVisibility`.
|
|
154
|
+
|
|
155
|
+
### Filter Dialog
|
|
156
|
+
|
|
157
|
+
- Filter icon in toolbar or column header.
|
|
158
|
+
- Opens `<Dialog>` with filter form fields for each filterable column.
|
|
159
|
+
- On apply: re-fetch with filter params.
|
|
160
|
+
- `filterData(filters, configFields)` formats filter objects for the API.
|
|
161
|
+
|
|
162
|
+
### Link Rendering (Navigation)
|
|
163
|
+
|
|
164
|
+
Columns configured with `displayAsLink: true` (or `additionalDetails.type === 'DISPLAY_LINK'`) render as clickable links that navigate to assignments or work items.
|
|
165
|
+
|
|
166
|
+
**Detection logic:**
|
|
167
|
+
|
|
168
|
+
A column is a link when `column.displayAsLink` is true. It's specifically an assignment link when its `classID` is one of the worklist/workbasket classes in `AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket']` (i.e. `AssignDashObjects.includes(column.classID)`).
|
|
169
|
+
|
|
170
|
+
**Click handling:**
|
|
171
|
+
|
|
172
|
+
| Link type | API call | Parameters |
|
|
173
|
+
| --------------- | --------------------------------------------------------------------- | ---------------------------------------------- |
|
|
174
|
+
| Assignment link | `getActionsApi().openAssignment(pzInsKey, pxRefObjectClass, options)` | `options = { containerName, channelName: '' }` |
|
|
175
|
+
| Work item link | `getActionsApi().openWorkByHandle(pxRefObjectKey, pxRefObjectClass)` | — |
|
|
176
|
+
|
|
177
|
+
**Legacy column IDs** that also render as links (even without `displayAsLink`):
|
|
178
|
+
|
|
179
|
+
- `pxTaskLabel` → opens assignment (if `pxRefObjectClass` + `pzInsKey` exist on the row)
|
|
180
|
+
- `pxRefObjectInsName` → opens work item (if `pxRefObjectClass` + `pxRefObjectKey` exist)
|
|
181
|
+
|
|
182
|
+
### Snackbar Toast
|
|
183
|
+
|
|
184
|
+
- Shown on fetch errors or action feedback.
|
|
185
|
+
- Auto-hides after 3000ms.
|
|
186
|
+
|
|
187
|
+
## Visual Specifications
|
|
188
|
+
|
|
189
|
+
| Element | Description |
|
|
190
|
+
| -------------- | -------------------------------------------------------- |
|
|
191
|
+
| Toolbar | Search input + filter button + (optional) action buttons |
|
|
192
|
+
| Table head | Sticky header with sort labels and column menu |
|
|
193
|
+
| Table body | Striped rows, hover state, selected state |
|
|
194
|
+
| Pagination bar | Below table, page size selector + page nav |
|
|
195
|
+
|
|
196
|
+
**CSS-only implementation notes:**
|
|
197
|
+
|
|
198
|
+
- Table container: `overflow-x: auto`.
|
|
199
|
+
- Header row: `background: var(--table-header-bg); font-weight: 600`.
|
|
200
|
+
- Selected row: `background: var(--selection-highlight-bg)`.
|
|
201
|
+
- Hover row: `background: var(--hover-bg)`.
|
|
202
|
+
- Sticky header: `position: sticky; top: 0; z-index: 1`.
|
|
203
|
+
|
|
204
|
+
## Edge Cases & Special Logic
|
|
205
|
+
|
|
206
|
+
- `bInForm: true` — remove outer padding, hide some toolbar elements.
|
|
207
|
+
- Empty result set — show empty state message `"No records found"`.
|
|
208
|
+
- `compositeKeys` — used for unique row key generation when no single ID field exists.
|
|
209
|
+
- Column visibility changes are local state only — not persisted by default.
|
|
210
|
+
- Large datasets — pagination is mandatory; do not load all rows at once.
|
|
211
|
+
|
|
212
|
+
## Dependencies
|
|
213
|
+
|
|
214
|
+
- Local utility helpers: an initialization utility, `filterData`, `buildFieldsForTable`, `getConfigFields`, `initializeColumns`.
|
|
215
|
+
- `PCore.getDataApiUtils().getData()` and `PCore.getDataPageUtils().getDataAsync()` — data fetching.
|
|
216
|
+
- `PCore.getAnalyticsUtils().getDataViewMetadata()` — column metadata.
|
|
217
|
+
- The design system's table, pagination, dialog, search, and link components.
|
|
218
|
+
|
|
219
|
+
## Design System Mapping
|
|
220
|
+
|
|
221
|
+
**UI control type:** Full-featured data table with sorting, pagination, search, selection, and filtering.
|
|
222
|
+
|
|
223
|
+
When implementing in a specific design system, map the following:
|
|
224
|
+
|
|
225
|
+
- **Table** → use the DS's data table component with header/body/row/cell sub-components
|
|
226
|
+
- **Pagination** → use the DS's pagination component (page size selector + page navigation)
|
|
227
|
+
- **Search toolbar** → use the DS's search/text-input component in a toolbar area above the table
|
|
228
|
+
- **Link cells** → use the DS's link component for `displayAsLink` columns
|
|
229
|
+
- **Selection** → use radio (single) or checkbox (multi) components per row
|
|
230
|
+
- **Dialog/Modal** → use the DS's dialog for filter dialogs and column menu
|
|
231
|
+
- **Sorting** → use the DS's sort indicator on column headers (e.g., up/down arrows)
|
|
232
|
+
- `bInForm` affects layout — tighten spacing and remove outer chrome when `true`
|
|
233
|
+
- Sorting, pagination, and search all trigger data re-fetches — do not filter client-side for server-paged data
|
|
234
|
+
- Selection mode (`single`/`multi`) requires different controls and callbacks
|
|
@@ -8,17 +8,17 @@ Multi-reference read-only template. Routes to `SimpleTableSelectReadonly` or `Si
|
|
|
8
8
|
|
|
9
9
|
## Component Purpose
|
|
10
10
|
|
|
11
|
-
Renders a multi-value reference field in read-only mode. Routing is based on the `displayAs`
|
|
11
|
+
Renders a multi-value reference field in read-only mode. Routing is based on the `displayAs` input: certain display variants use `SimpleTableSelectReadonly` (link + modal), while others use `SimpleTable` directly.
|
|
12
12
|
|
|
13
13
|
## Pega Metadata
|
|
14
14
|
|
|
15
|
-
- **Registration key:** `MultiReferenceReadOnly` (in
|
|
15
|
+
- **Registration key:** `MultiReferenceReadOnly` (in the project's component map)
|
|
16
16
|
- **Category:** Display template — read-only multi-reference
|
|
17
|
-
- **Extends:**
|
|
17
|
+
- **Extends:** the project's base component interface
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Inputs
|
|
20
20
|
|
|
21
|
-
|
|
|
21
|
+
| Input | Type | Required | Description |
|
|
22
22
|
| --------------------- | ---------- | -------- | -------------------------------------------------------- |
|
|
23
23
|
| `displayAs` | `string` | Yes | UI variant that was used in edit mode |
|
|
24
24
|
| `referenceList` | `string` | No | Property path to the reference list |
|
|
@@ -26,16 +26,16 @@ Renders a multi-value reference field in read-only mode. Routing is based on the
|
|
|
26
26
|
| `fieldMetadata` | `object` | No | Field-level metadata |
|
|
27
27
|
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## Implementation Structure
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
**Module Setup:** This component requires the project's base component interface. Define a component input contract extending the base interface with `config: { referenceList, readonlyContextList }`, `label` (string), `hideLabel` (boolean), and optional `displayMode`/`displayAs`.
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
**Main Component Logic** — steps in order:
|
|
34
|
+
|
|
35
|
+
1. Receive inputs: `getPConnect`, `label` (default `''`), `hideLabel` (default `false`), `config`, `displayMode`, and `displayAs`; further extract `referenceList` and `readonlyContextList` from `config`.
|
|
36
|
+
2. **Route to `SimpleTableSelectReadonly`:** if `displayAs` is one of `'readonlyMulti'`, `'combobox'`, or `'checkboxgroup'`, return `getPConnect().createComponent({ type: 'SimpleTableSelectReadonly', config: { ...config, displayMode, label, hideLabel, displayAs } })`.
|
|
37
|
+
3. **Reference list fallback:** if `referenceList` is not recognized as a property annotation (checked via `PCore.getAnnotationUtils().isProperty(referenceList)`), build a `readonlyContextObject = { referenceList: readonlyContextList }` to use in its place.
|
|
38
|
+
4. **Route to `SimpleTable`:** for all other `displayAs` values, call `getPConnect().createComponent({ type: 'SimpleTable', config: { ...config, ...readonlyContextObject, label, hideLabel } }, '', 0, {})` and render the result.
|
|
39
39
|
|
|
40
40
|
### Reference List Fallback
|
|
41
41
|
|
|
@@ -69,14 +69,9 @@ See `SimpleTable.md` and `ListView.md` for detailed visual specs.
|
|
|
69
69
|
|
|
70
70
|
**UI control type:** Read-only multi-value reference display — routes to modal table or flat table.
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
| `displayAs` | Routing | DS Implementation |
|
|
75
|
-
| -------------------------------------------- | --------------------------- | -------------------- |
|
|
76
|
-
| `readonlyMulti`, `combobox`, `checkboxgroup` | `SimpleTableSelectReadonly` | Link/chip + modal |
|
|
77
|
-
| All others | `SimpleTable` | Flat read-only table |
|
|
78
|
-
|
|
79
|
-
When implementing in a specific design system:
|
|
72
|
+
When implementing in a specific design system, map the following:
|
|
80
73
|
|
|
81
|
-
-
|
|
82
|
-
- `
|
|
74
|
+
- When `displayAs` is `'readonlyMulti'`, `'combobox'`, or `'checkboxgroup'`, route to `SimpleTableSelectReadonly` — typically rendered as a link/chip showing selection count with a modal dialog for details.
|
|
75
|
+
- For all other `displayAs` values, route to `SimpleTable` — typically rendered as a flat read-only table.
|
|
76
|
+
- The `displayAs` routing list must match the edit-mode variants defined in `DataReference.md`.
|
|
77
|
+
- `readonlyContextList` fallback is critical — reference list data may not be available on initial render.
|