@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,155 @@
|
|
|
1
|
+
# Skill: SelectableCard
|
|
2
|
+
|
|
3
|
+
Card-style radio or checkbox selection grid with optional image support.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders a grid of selectable cards. Each card contains a radio button or checkbox (depending on `type`), a label, optional image, and optional additional fields. Cards are clickable — clicking anywhere on the card triggers the input. Used by `RadioButtons` (variant='card') and `Checkbox` (variant='card').
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Pega Name:** `SelectableCard`
|
|
16
|
+
- **Type / Subtype:** Internal design system extension
|
|
17
|
+
- **Registration key:** `SelectableCard` (in the project's component map)
|
|
18
|
+
|
|
19
|
+
> This component does NOT have a metadata file and does NOT extend the project's field input contract — it's a design system component used internally by `RadioButtons` and `Checkbox`.
|
|
20
|
+
|
|
21
|
+
## Inputs
|
|
22
|
+
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
| ------------------------ | ----------------------- | ------- | ---------------------------------------------------------------------------------- |
|
|
25
|
+
| `getPConnect` | `function` | — | PConnect accessor |
|
|
26
|
+
| `type` | `'radio' \| 'checkbox'` | — | Selection type |
|
|
27
|
+
| `image` | `object` | — | `{ imagePosition, imageSize, showImageDescription, imageField, imageDescription }` |
|
|
28
|
+
| `dataSource` | `any` | — | Source of card data (in editable mode) |
|
|
29
|
+
| `recordKey` | `string` | `''` | The key field name in each record (e.g., `'pyID'`) |
|
|
30
|
+
| `className` | `string` | — | CSS class for the card |
|
|
31
|
+
| `cardLabel` | `string` | — | The field name to use as card title |
|
|
32
|
+
| `hideFieldLabels` | `boolean` | `false` | Hide field labels inside cards |
|
|
33
|
+
| `readOnly` | `boolean` | — | Read-only mode |
|
|
34
|
+
| `disabled` | `boolean` | — | Disabled state |
|
|
35
|
+
| `readOnlyList` | `any[]` | `[]` | Selected items for read-only display |
|
|
36
|
+
| `displayMode` | `string` | — | Display mode string |
|
|
37
|
+
| `radioBtnValue` | `any` | — | Currently selected value (radio mode) |
|
|
38
|
+
| `onChange` | `function` | — | Change handler |
|
|
39
|
+
| `onBlur` | `function` | — | Blur handler |
|
|
40
|
+
| `onClick` | `function` | — | Click handler |
|
|
41
|
+
| `onKeyDown` | `function` | — | KeyDown handler |
|
|
42
|
+
| `additionalProps` | `any` | — | Spread onto the radio/checkbox input |
|
|
43
|
+
| `testId` | `string` | — | Test identifier |
|
|
44
|
+
| `setIsRadioCardSelected` | `function` | — | Callback to inform parent whether radio selection matched |
|
|
45
|
+
| `showNoValue` | `boolean` | `false` | When true (read-only + no selected items), render "No Value" text |
|
|
46
|
+
|
|
47
|
+
## Implementation Structure
|
|
48
|
+
|
|
49
|
+
This component does NOT extend the project's field input contract — it defines its own inputs directly.
|
|
50
|
+
|
|
51
|
+
**Module Setup:** The component depends on two local helper functions:
|
|
52
|
+
|
|
53
|
+
1. **`prepareComponentInCaseSummary(pConnectMeta, getPConnect)`** — creates a display-only component from field metadata. Receives the field's metadata object (containing `config`, `type`, and optional `children`) and a `getPConnect` function. Resolves the field label via `getPConnect().resolveConfigProps({ label: config.label })`, then creates the field component via `getPConnect().createComponent({ type, children, config })`. Sets `displayMode` to `'DISPLAY_ONLY'` and `readOnly` to `true` on the created component's inherited props. Returns `{ name, value }` where `name` is the resolved label string and `value` is the created component (a renderable UI node).
|
|
54
|
+
|
|
55
|
+
2. **`resolveReferenceFields(item, hideFieldLabels, recordKey, pConnect)`** — resolves additional display fields for a card record using the PConnect presets pattern. Gets `presets` from `pConnect.getRawMetadata().config.presets`, then extracts field definitions from `presets[0].children[0].children` (limiting to a maximum of 5 fields). For each field preset, creates a PConnect configuration with `meta` set to the preset (with `displayMode: 'DISPLAY_ONLY'` and `contextName` from the parent PConnect added to `config`) and `useCustomContext` set to the current data item. Calls `PCore.createPConnect(fieldMeta)` to create a live PConnect instance for that field, retrieves its metadata via `configObj.getPConnect().getMetadata()`, then passes it to `prepareComponentInCaseSummary` to obtain the rendered component. Returns an array of objects: when `hideFieldLabels` is true, each entry is `{ id, value }`; otherwise `{ id, name, value, type }` — where `id` is a unique string combining `item[recordKey]` and the field index, `name` is the resolved label, `value` is the rendered field component, and `type` is the preset's field type string.
|
|
56
|
+
|
|
57
|
+
**Main Component Logic** — steps in order:
|
|
58
|
+
|
|
59
|
+
1. **Receive all inputs** (`image` is a nested object) — `getPConnect`, `type`; from `image` receive `imagePosition`, `imageSize`, `showImageDescription`, `imageField` (default `''`), `imageDescription` (default `''`); also `dataSource`, `recordKey` (default `''`), `className`, `cardLabel`, `hideFieldLabels` (default `false`), `readOnly`, `disabled`, `readOnlyList` (default `[]`), `displayMode`, `radioBtnValue`, `onChange`, `onBlur`, `onClick`, `onKeyDown`, `additionalProps`, `testId`, `setIsRadioCardSelected`, `showNoValue` (default `false`); also `pConn` via `getPConnect()`.
|
|
60
|
+
2. **"No Value" guard** — when `showNoValue` is true, return a text element reading "No Value" and stop.
|
|
61
|
+
3. **Data source selection** — `cardDataSource` is `readOnlyList` (or `[]`) when `readOnly` or `displayMode === 'DISPLAY_ONLY'`, otherwise `dataSource?.source`; `imageDescriptionKey` is `imageDescription` when `showImageDescription` is true, otherwise `undefined`.
|
|
62
|
+
4. **Card click handler** (`handleCardClick`) — makes the entire card clickable: returns early when `disabled || readOnly`; returns early when the click target is inside a `label` or `input` (native click already handled); otherwise finds the radio/checkbox input inside the current card and programmatically clicks it.
|
|
63
|
+
5. **Track radio selection state** — a local `radioItemSelected` flag, initialized to `false`.
|
|
64
|
+
6. **Map cards** — render a container iterating `cardDataSource ?? []`; for each `item`, resolve additional fields via `resolveReferenceFields(item, hideFieldLabels, recordKey, pConn)` (which returns an array of objects with rendered component values), build an image object when `item[imageField]` exists, and branch: in display mode render a simple read-only card (no input); in editable mode render a card containing a `Radio` or `Checkbox` control; render each resolved field's `value` directly (it is a renderable component node, NOT a plain string); while iterating, when `type === 'radio'` and `radioBtnValue === item[recordKey]`, set `radioItemSelected = true`. After the loop, when `type === 'radio'` and `setIsRadioCardSelected` is provided, call `setIsRadioCardSelected(radioItemSelected)`.
|
|
65
|
+
|
|
66
|
+
## Behavioral Contract
|
|
67
|
+
|
|
68
|
+
### Data source selection
|
|
69
|
+
|
|
70
|
+
`cardDataSource` is `readOnlyList` (or `[]` if empty) when `readOnly` or `displayMode === 'DISPLAY_ONLY'`; otherwise it is `dataSource?.source`.
|
|
71
|
+
|
|
72
|
+
### "No Value" guard
|
|
73
|
+
|
|
74
|
+
If `showNoValue`: render a plain text element showing `'No Value'` and return early.
|
|
75
|
+
|
|
76
|
+
### Card click handler
|
|
77
|
+
|
|
78
|
+
Cards should be clickable anywhere (not just on the checkbox/radio): the handler returns early when `disabled` or `readOnly` is set; it also returns early when the click target is inside a `label` or `input` element (the native click is already handled in that case); otherwise it locates the radio or checkbox input within the current card element and programmatically clicks it.
|
|
79
|
+
|
|
80
|
+
### Subsection: Display mode (`displayMode === 'DISPLAY_ONLY'`)
|
|
81
|
+
|
|
82
|
+
Render a **simple read-only card** (no radio/checkbox) containing, in a flex-row layout: an optional image, the card title (`item[cardLabel]`), and the additional resolved fields (from `resolveReferenceFields`). Each field's `value` is a rendered component node — render it directly (do NOT stringify it). If `field.name` is present, render it as a label alongside the value.
|
|
83
|
+
|
|
84
|
+
### Subsection: Editable mode (radio or checkbox)
|
|
85
|
+
|
|
86
|
+
Render a **selectable card** wrapped in a container with top padding, with a pointer cursor, full height, and a column flex direction, and a click handler (`handleCardClick`) on the card itself. Inside, the card content area (styled per the image layout table below) contains: an optional image section (full width, 16:9 aspect ratio, contained) shown for inline positions at roughly 40% width; a content section at roughly 60% width containing either a radio control (`value={item[recordKey]}`, `checked={radioBtnValue === item[recordKey]}`, `onChange`) or a checkbox control (`id={item[recordKey]}`, `checked` computed by checking whether `readOnlyList` contains an entry matching `item[recordKey]`, `onChange`), each labeled with `item[cardLabel]`; and finally the list of additional resolved fields, each rendered with its field name (if present) alongside its value (a rendered component node). Unless the field's `type` is `'TextArea'`, lay out each field entry as a two-column grid (label in one column, rendered component in the other).
|
|
87
|
+
|
|
88
|
+
### Image layout (inline positions)
|
|
89
|
+
|
|
90
|
+
| `imagePosition` | CardContent style | Image section width | Content section width |
|
|
91
|
+
| ---------------- | ------------------------------------------- | ------------------- | --------------------- |
|
|
92
|
+
| `'inline-start'` | `display: flex` | 40% | 60% |
|
|
93
|
+
| `'inline-end'` | `display: flex, flexDirection: row-reverse` | 40% | 60% |
|
|
94
|
+
| block (default) | default | full width | full width |
|
|
95
|
+
|
|
96
|
+
### Image element
|
|
97
|
+
|
|
98
|
+
**Visual-only styling notes:** The image spans the full width of its container with a transparent background, a 16:9 aspect ratio, and is constrained to the container's max height/width while using `object-fit: contain` so it scales without distortion.
|
|
99
|
+
|
|
100
|
+
### Field display layout
|
|
101
|
+
|
|
102
|
+
**Visual-only styling notes:** Each additional field in editable mode uses a small font size and a small margin; unless the field type is `TextArea`, it is laid out as a two-column grid (label in one column, value in the other).
|
|
103
|
+
|
|
104
|
+
### Radio tracking
|
|
105
|
+
|
|
106
|
+
While iterating cards, if `type === 'radio'` and `radioBtnValue === item[recordKey]` for the current item, set `radioItemSelected = true`. After the loop completes, if `setIsRadioCardSelected` is provided, call it with the final `radioItemSelected` value.
|
|
107
|
+
|
|
108
|
+
## Display Mode Rendering
|
|
109
|
+
|
|
110
|
+
`displayMode === 'DISPLAY_ONLY'`: renders simple read-only cards (no radio/checkbox inputs). Uses `readOnlyList` as the data source.
|
|
111
|
+
|
|
112
|
+
## Visual Specifications
|
|
113
|
+
|
|
114
|
+
| Property | Editable card | Display-only card |
|
|
115
|
+
| -------------------- | ------------------------------------------------ | ----------------- |
|
|
116
|
+
| Cursor | `pointer` (unless disabled/readOnly → `default`) | Default |
|
|
117
|
+
| Height | `100%` (fills grid row) | Auto |
|
|
118
|
+
| Layout | Column flex | Row flex |
|
|
119
|
+
| Padding top | 15px wrapper | — |
|
|
120
|
+
| Image (display-only) | 100px fixed width | 100px fixed width |
|
|
121
|
+
| Card border | Default (design-system card elevation) | Default |
|
|
122
|
+
| Disabled | `cursor: default` | — |
|
|
123
|
+
|
|
124
|
+
**Visual-only styling notes:** Each card has a thin light border, small border radius, comfortable padding, a pointer cursor, and a column flex layout that fills the height of its grid row, with a small top margin; on hover the border switches to an accent color. Disabled cards use a default cursor and reduced opacity; read-only cards use a default cursor. The card label text uses the standard body font size and regular weight.
|
|
125
|
+
|
|
126
|
+
## Edge Cases & Special Logic
|
|
127
|
+
|
|
128
|
+
- **`resolveReferenceFields(item, hideFieldLabels, recordKey, pConn)`** — resolves additional display fields using the PConnect presets pattern. Gets field definitions from `pConnect.getRawMetadata().config.presets[0].children[0].children` (max 5 fields). For each preset, creates a PConnect instance via `PCore.createPConnect({ meta: { ...preset, config: { ...preset.config, displayMode: 'DISPLAY_ONLY', contextName: pConnect.getContextName() } }, useCustomContext: item })`, retrieves its metadata, and passes it to `prepareComponentInCaseSummary` to produce a rendered field component. The returned `value` for each field is a live rendered component (with proper formatting for currency, dates, etc.), NOT a plain string — render it directly in the UI.
|
|
129
|
+
- **`prepareComponentInCaseSummary(pConnectMeta, getPConnect)`** — creates a display-only field component. Resolves the label from config, calls `getPConnect().createComponent({ type, children, config })`, then sets inherited props `displayMode: 'DISPLAY_ONLY'` and `readOnly: true` on the created component. Returns `{ name, value }`.
|
|
130
|
+
- **Do NOT use `Object.keys(item)` to enumerate fields** — this shows raw internal keys, system properties, and unformatted values. Always use the presets-based resolution described above.
|
|
131
|
+
- Checkbox `id={item[recordKey]}` — required for the card click handler to find and click the input by ID.
|
|
132
|
+
- `getPConnect` input on the checkbox control: passed through to support SDK checkbox augmentation.
|
|
133
|
+
- `imageDescriptionKey = showImageDescription ? imageDescription : undefined` — only show alt text when `showImageDescription` is true.
|
|
134
|
+
- **`imageField`** — this value is the last path segment of the image property reference (e.g., if the Pega property path is `.PhoneImage`, the `imageField` passed to this component is `PhoneImage`). The parent component (RadioButtons or Checkbox) is responsible for extracting this segment before passing it.
|
|
135
|
+
|
|
136
|
+
## Dependencies
|
|
137
|
+
|
|
138
|
+
- Two local helper functions: `prepareComponentInCaseSummary` (creates display-only field components from metadata) and `resolveReferenceFields` (resolves preset fields into rendered components via `PCore.createPConnect`).
|
|
139
|
+
- `PCore.createPConnect` — SDK API for creating PConnect instances from field metadata with custom context.
|
|
140
|
+
- The DS's radio and checkbox components.
|
|
141
|
+
- The DS's card/container component.
|
|
142
|
+
- The DS's text/typography component.
|
|
143
|
+
|
|
144
|
+
## Design System Mapping
|
|
145
|
+
|
|
146
|
+
**UI control type:** Selectable card grid (radio or multi-select).
|
|
147
|
+
|
|
148
|
+
When implementing in a specific design system, map the following:
|
|
149
|
+
|
|
150
|
+
- **Card container** → use the DS's card component with a pointer cursor and click handler
|
|
151
|
+
- **Radio/Checkbox** → use the DS's radio or checkbox component inside each card
|
|
152
|
+
- **Card label** → use the DS's text/typography component for the card title
|
|
153
|
+
- **Image layout** → configure flex direction based on `imagePosition` (inline-start, inline-end, or block)
|
|
154
|
+
- **Read-only/display mode** → render simple cards without radio/checkbox inputs, using `readOnlyList` as data source
|
|
155
|
+
- **"No Value" guard** → render plain text when no items are selected in read-only mode
|
package/templates/react-sdk-reference/{.claude → .ai-common}/skills/field-skills/SemanticLink.md
RENAMED
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Clickable hyperlink that navigates to a referenced Pega case or data object using semantic URL resolution.
|
|
4
4
|
|
|
5
|
-
> **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture,
|
|
5
|
+
> **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Component Purpose
|
|
10
10
|
|
|
11
|
-
Renders a clickable link
|
|
11
|
+
Renders a clickable link that navigates to a Pega case or data object. Resolves the correct semantic URL based on whether the reference is a Case or Data type. Handles Ctrl/Meta+click for opening in a new tab. Shows `'--'` when no text is provided.
|
|
12
12
|
|
|
13
13
|
## Pega Metadata
|
|
14
14
|
|
|
15
15
|
- **Pega Name:** `SemanticLink`
|
|
16
16
|
- **Type / Subtype:** `Field` / `Link-SemanticLink`
|
|
17
|
-
- **Registration key:** `SemanticLink` (in
|
|
17
|
+
- **Registration key:** `SemanticLink` (in the project's component map)
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Inputs (component-specific)
|
|
20
20
|
|
|
21
21
|
| Prop | Type | Default | Description |
|
|
22
22
|
| ------------------------- | ----------------- | ------- | ---------------------------------------------------------------------------------- |
|
|
@@ -30,6 +30,22 @@ Renders a clickable link (`<a>` or button-style link) that navigates to a Pega c
|
|
|
30
30
|
| `dataRelationshipContext` | `string \| null` | `null` | Context for data relationship resolution |
|
|
31
31
|
| `contextPage` | `any` | — | Context page with `classID` |
|
|
32
32
|
|
|
33
|
+
## Implementation Structure
|
|
34
|
+
|
|
35
|
+
This component computes a URL and renders a clickable link. Most logic is URL resolution — no form state.
|
|
36
|
+
|
|
37
|
+
**Module Setup:** The component depends on a local utility module (`semanticUtils`) for data reference resolution. Define the input contract as an extension of the project's field input contract, adding `text`, `resourcePayload`, `resourceParams`, `previewKey`, `onClick`, `testId`, `referenceType`, `dataRelationshipContext`, and `contextPage` fields.
|
|
38
|
+
|
|
39
|
+
**Main Component Logic** — steps in order:
|
|
40
|
+
|
|
41
|
+
1. **Receive inputs** (note: `onClick` is received but NOT used directly) — `text`, `resourcePayload` (default `{}`), `resourceParams` (default `{}`), `getPConnect`, `previewKey`, `onClick`, `testId` (default `''`), `referenceType`, `dataRelationshipContext` (default `null`), `contextPage`, and collect remaining inputs into `restInputs`.
|
|
42
|
+
2. **Constants** — `ACTION_OPENWORKBYHANDLE` and `ACTION_SHOWDATA` from `PCore.getSemanticUrlUtils().getActions()`; `pConnect` via `getPConnect()`; `DATA` from `PCore.getConstants().RESOURCE_TYPES`, plus `WORKCLASS` and `CASE_INFO_CLASSID` from the same constants object.
|
|
43
|
+
3. **URL resolution variables** — `linkURL` (default `''`), `payload` (default `{}`), `dataViewName`, and `isData` (default `false`).
|
|
44
|
+
4. **Determine reference type and resolve the URL** — see the Behavioral Contract "URL Resolution" section.
|
|
45
|
+
5. **`showDataAction()`** — calls `getPConnect().getActionsApi().showData(...)`; see the Behavioral Contract section below.
|
|
46
|
+
6. **`openLinkClick(e)`** (click handler) — when neither `metaKey` nor `ctrlKey` is pressed, prevent the default navigation and instead call `showDataAction()` or `openWorkByHandle`; when either modifier key is pressed, let the browser open the `href` in a new tab.
|
|
47
|
+
7. **Render the link** — a link element with `href` set to `linkURL`, the click handler, a test-id attribute, the remaining inputs spread, and content set to `text || '--'`.
|
|
48
|
+
|
|
33
49
|
## Behavioral Contract
|
|
34
50
|
|
|
35
51
|
### URL Resolution
|
|
@@ -41,14 +57,7 @@ Renders a clickable link (`<a>` or button-style link) that navigates to a Pega c
|
|
|
41
57
|
- If `contextPage?.classID`: override `resourcePayload.caseClassName = contextPage.classID`
|
|
42
58
|
- If `resourcePayload.caseClassName === WORKCLASS`: override with actual case class from `pConnect.getValue(CASE_INFO_CLASSID)`
|
|
43
59
|
|
|
44
|
-
**Step 2a: Data reference (`referenceType === 'DATA'` or `shouldTreatAsDataReference`):**
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
const dataRefContext = semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)
|
|
48
|
-
dataViewName = dataRefContext.dataContext
|
|
49
|
-
payload = dataRefContext.dataContextParameters
|
|
50
|
-
isData = true
|
|
51
|
-
```
|
|
60
|
+
**Step 2a: Data reference (`referenceType === 'DATA'` or `shouldTreatAsDataReference`):** call `semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)` to get a `dataRefContext`; set `dataViewName = dataRefContext.dataContext`, `payload = dataRefContext.dataContextParameters`, and `isData = true`.
|
|
52
61
|
|
|
53
62
|
**Step 2b: Resource type DATA (`resourcePayload.resourceType === 'DATA'`):**
|
|
54
63
|
|
|
@@ -64,19 +73,7 @@ isData = true
|
|
|
64
73
|
|
|
65
74
|
### Click Handler (`openLinkClick`)
|
|
66
75
|
|
|
67
|
-
|
|
68
|
-
function openLinkClick(e) {
|
|
69
|
-
if (!e.metaKey && !e.ctrlKey) {
|
|
70
|
-
e.preventDefault()
|
|
71
|
-
if (isData or shouldTreatAsDataReference) {
|
|
72
|
-
showDataAction()
|
|
73
|
-
} else if (previewKey) {
|
|
74
|
-
getPConnect().getActionsApi().openWorkByHandle(previewKey, resourcePayload.caseClassName)
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// If metaKey/ctrlKey: allow default browser behavior (open in new tab)
|
|
78
|
-
}
|
|
79
|
-
```
|
|
76
|
+
When neither `e.metaKey` nor `e.ctrlKey` is set: call `e.preventDefault()`, then either call `showDataAction()` (when this is a data reference or `shouldTreatAsDataReference` is true) or, when `previewKey` is set, call `getPConnect().getActionsApi().openWorkByHandle(previewKey, resourcePayload.caseClassName)`. When `e.metaKey` or `e.ctrlKey` is set, do nothing and allow the browser's default behavior (opening the link in a new tab).
|
|
80
77
|
|
|
81
78
|
### `showDataAction()`
|
|
82
79
|
|
|
@@ -89,7 +86,7 @@ No explicit `displayMode` handling — `SemanticLink` is always rendered as a li
|
|
|
89
86
|
|
|
90
87
|
## Visual Specifications
|
|
91
88
|
|
|
92
|
-
Derived from
|
|
89
|
+
Derived from the reference component's styling:
|
|
93
90
|
|
|
94
91
|
| Property | Value |
|
|
95
92
|
| ----------- | ---------------------------------------- |
|
|
@@ -100,56 +97,37 @@ Derived from `makeStyles` and MUI `Link` props:
|
|
|
100
97
|
| Font weight | 400 |
|
|
101
98
|
| Underline | Default link underline on hover |
|
|
102
99
|
| Cursor | Pointer |
|
|
103
|
-
| Text | `text`
|
|
104
|
-
|
|
105
|
-
**
|
|
106
|
-
|
|
107
|
-
```css
|
|
108
|
-
.semantic-link {
|
|
109
|
-
display: inline-block;
|
|
110
|
-
padding: 8px;
|
|
111
|
-
margin: 8px;
|
|
112
|
-
color: #1976d2;
|
|
113
|
-
text-decoration: none;
|
|
114
|
-
cursor: pointer;
|
|
115
|
-
font-weight: 400;
|
|
116
|
-
background: none;
|
|
117
|
-
border: none;
|
|
118
|
-
font-size: inherit;
|
|
119
|
-
}
|
|
120
|
-
.semantic-link:hover {
|
|
121
|
-
text-decoration: underline;
|
|
122
|
-
}
|
|
123
|
-
```
|
|
100
|
+
| Text | `text` input value, or `'--'` if empty |
|
|
101
|
+
|
|
102
|
+
**Visual-only styling notes:** The link renders as an inline block with 8px padding and margin on all sides, using the theme's primary link color with no default text decoration, a pointer cursor, normal font weight (400), transparent background, and no border, inheriting the surrounding font size; on hover the text becomes underlined.
|
|
124
103
|
|
|
125
104
|
## Edge Cases & Special Logic
|
|
126
105
|
|
|
127
106
|
- **BUG-678282 fix:** When `resourceParams.workID === ''` and `previewKey` is a string, set `resourceParams.objectID = previewKey.split(' ')[1]` to handle cases where workID was not populated.
|
|
128
107
|
- If `previewKey` is set: also set `resourceParams.id = previewKey`.
|
|
129
108
|
- `linkURL` is computed synchronously at render — if an error occurs in data reference resolution, it is silently caught (`try/catch`) and `linkURL` remains `''`.
|
|
130
|
-
- `onClick`
|
|
109
|
+
- `onClick` input from parent is received but NOT used directly — the component has its own `openLinkClick`. Do not call the parent's `onClick` directly.
|
|
131
110
|
- **Ctrl/Meta+click**: `e.metaKey || e.ctrlKey` → don't `preventDefault()`, let the browser open the href in a new tab.
|
|
132
111
|
- `text || '--'` is always rendered — never renders empty.
|
|
133
112
|
|
|
134
113
|
## Dependencies
|
|
135
114
|
|
|
136
|
-
- `semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)
|
|
115
|
+
- Local utility: `semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)`.
|
|
137
116
|
- `PCore.getSemanticUrlUtils().getResolvedSemanticURL()` — URL resolution.
|
|
138
117
|
- `PCore.getSemanticUrlUtils().getActions()` — `ACTION_OPENWORKBYHANDLE`, `ACTION_SHOWDATA`.
|
|
139
118
|
- `PCore.getDataTypeUtils().getLookUpDataPage()`, `getLookUpDataPageInfo()`, `getDataPageKeys()`.
|
|
140
119
|
- `PCore.getAnnotationUtils().isProperty()`, `getPropertyName()`.
|
|
141
120
|
- `PCore.getConstants()` — `RESOURCE_TYPES.DATA`, `WORKCLASS`, `CASE_INFO.CASE_INFO_CLASSID`.
|
|
142
|
-
- A link/anchor
|
|
121
|
+
- A link/anchor element (native `<a>` with button-like behavior, or the DS's link component).
|
|
143
122
|
|
|
144
123
|
## Design System Mapping
|
|
145
124
|
|
|
146
125
|
**UI control type:** Clickable hyperlink (button or anchor with navigation behavior).
|
|
147
126
|
|
|
148
|
-
|
|
127
|
+
When implementing in a specific design system, map the following:
|
|
149
128
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
| Chakra UI | `<Link as="button">` |
|
|
129
|
+
- **Link element** → use the DS's link or button-link component (renders as an anchor with `href`)
|
|
130
|
+
- **Click handler** → prevent default for normal clicks; allow Ctrl/Meta+click to open in new tab
|
|
131
|
+
- **Empty text** → render `'--'` when `text` is falsy
|
|
132
|
+
- **Padding/margin** → `8px` all sides
|
|
133
|
+
- **Color** → primary link color from the theme
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Skill: TextArea
|
|
2
|
+
|
|
3
|
+
Multi-line text input field that binds to a Pega case property.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders an editable multi-line text area. Used for long-form text input such as descriptions, notes, or comments. Similar to `TextInput` but allows multiple lines with configurable min/max rows.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Pega Name:** `TextArea`
|
|
16
|
+
- **Type / Subtype:** `Field` / `Text` (multi-line)
|
|
17
|
+
- **Registration key:** `TextArea` (in the project's component map)
|
|
18
|
+
|
|
19
|
+
## Inputs (component-specific)
|
|
20
|
+
|
|
21
|
+
| Name | Type | Description |
|
|
22
|
+
| --------------- | ---------------- | ---------------------------------------------------------- |
|
|
23
|
+
| `fieldMetadata` | `any` (optional) | Metadata object; used to read `maxLength` for the textarea |
|
|
24
|
+
|
|
25
|
+
All other inputs come from the project's field input contract (see prerequisite skill).
|
|
26
|
+
|
|
27
|
+
## Implementation Structure
|
|
28
|
+
|
|
29
|
+
Similar to TextInput but multiline with fixed rows. Does NOT delegate to TextInput in read-only mode.
|
|
30
|
+
|
|
31
|
+
**Module Setup:** The component depends on the project's component registry (to resolve `FieldValueList`) and the project's event-commit utility (for committing value changes to the store). Define the input contract as an extension of the project's field input contract, adding an optional `fieldMetadata` field.
|
|
32
|
+
|
|
33
|
+
**Main Component Logic** — steps in order:
|
|
34
|
+
|
|
35
|
+
1. **Registry lookup** — resolve `FieldValueList` via the project's component registry.
|
|
36
|
+
2. **Receive inputs** — `getPConnect`, `label`, `required`, `disabled`, `value` (default `''`), `validatemessage`, `status`, `readOnly`, `testId`, `fieldMetadata`, `helperText`, `displayMode`, `hideLabel`, `placeholder`. Compute `helperTextToDisplay = validatemessage || helperText`, set up the PConnect instance, actions API, and bound property name, and derive `maxLength = fieldMetadata?.maxLength`.
|
|
37
|
+
3. **Local state** — `inputValue` initialized to `''`; declare a read-only configuration object.
|
|
38
|
+
4. **Sync from store** — a lifecycle effect watching `value` updates `inputValue` whenever it changes.
|
|
39
|
+
5. **Display mode returns** — `DISPLAY_ONLY` and `STACKED_LARGE_VAL` both return `FieldValueList` using the raw `value`, the latter with a stacked variant.
|
|
40
|
+
6. **Read-only** — set the read-only configuration to mark the textarea read-only when `readOnly` is true. Unlike TextInput, do NOT delegate to `TextInput` — preserve the multiline rendering even when read-only.
|
|
41
|
+
7. **Test ID and handlers** — build a test-id attribute from `testId`; the change handler updates `inputValue` from the event's textarea value; the blur handler commits the value via the project's event-commit utility with event type `'changeNblur'`, the property name, and `inputValue`.
|
|
42
|
+
8. **Render** — a multiline text input configured with: multiline mode enabled, minimum rows `5`, maximum rows `5`, full width, an outlined style when editable or flat/borderless style when read-only, small size, current `inputValue`, the change handler, the blur handler wired only when not read-only, `label`, `helperText: helperTextToDisplay`, `placeholder: placeholder ?? ''`, `required`, `disabled`, an error state when `status === 'error'`, and `maxLength` plus the read-only/test-id attributes applied to the underlying textarea element.
|
|
43
|
+
|
|
44
|
+
## Behavioral Contract
|
|
45
|
+
|
|
46
|
+
1. **Local state:** Maintain `inputValue` in local state (string). Initialize to `''`.
|
|
47
|
+
2. **Sync from store:** A lifecycle effect watching the `value` input updates `inputValue` whenever `value` changes.
|
|
48
|
+
3. **On change:** Update local `inputValue` state only (do NOT commit to store on every keystroke).
|
|
49
|
+
4. **On blur:** Commit to store via the project's event-commit utility with event type `'changeNblur'`, the property name, and `inputValue`.
|
|
50
|
+
5. **Read-only:** Set the read-only attribute on the textarea; use a visually flat/borderless style. Omit the blur handler when read-only.
|
|
51
|
+
6. **maxLength:** Read from `fieldMetadata?.maxLength`; pass to the textarea's `maxLength` attribute.
|
|
52
|
+
7. **Row sizing:** Fixed at minimum rows `5` and maximum rows `5` — the textarea does not auto-expand; it shows a scrollbar if content exceeds 5 rows.
|
|
53
|
+
|
|
54
|
+
## Display Mode Rendering
|
|
55
|
+
|
|
56
|
+
- **`DISPLAY_ONLY`:** Render `FieldValueList` with `name` set to `label` (or empty when `hideLabel` is true) and `value` set to the raw `value`.
|
|
57
|
+
- **`STACKED_LARGE_VAL`:** Render `FieldValueList` the same way, with a stacked layout variant.
|
|
58
|
+
- Both modes short-circuit before interactive rendering.
|
|
59
|
+
|
|
60
|
+
## Read-Only Rendering
|
|
61
|
+
|
|
62
|
+
Set the read-only attribute on the textarea element (NOT a read-only version via `TextInput` — preserves the multiline appearance). Switch to a flat/borderless visual style. The min/max rows constraint is still applied in read-only.
|
|
63
|
+
|
|
64
|
+
## Visual Specifications
|
|
65
|
+
|
|
66
|
+
Derived from the reference component's styling:
|
|
67
|
+
|
|
68
|
+
| Property | Standard (editable) | Read-only |
|
|
69
|
+
| ------------- | ---------------------------------------- | ----------------- |
|
|
70
|
+
| Width | 100% | 100% |
|
|
71
|
+
| Min rows | 5 | 5 |
|
|
72
|
+
| Max rows | 5 (scrollable beyond) | 5 |
|
|
73
|
+
| Border | 1px solid (outlined) | None (flat style) |
|
|
74
|
+
| Border radius | 4px | — |
|
|
75
|
+
| Label | Floating label | Floating label |
|
|
76
|
+
| Helper text | Below textarea | Below textarea |
|
|
77
|
+
| Error state | Red border + red helper text | — |
|
|
78
|
+
| Resize | Vertical resize handle (browser default) | Same |
|
|
79
|
+
| Font size | 0.875rem | 0.875rem |
|
|
80
|
+
| Padding | 8px 14px | — |
|
|
81
|
+
|
|
82
|
+
**CSS-only implementation notes:**
|
|
83
|
+
|
|
84
|
+
- `textarea { min-height: calc(5 * 1.4375em + 16px); max-height: calc(5 * 1.4375em + 16px); overflow-y: auto; resize: vertical; }`
|
|
85
|
+
- Error: `border-color: #d32f2f`
|
|
86
|
+
- Read-only: `border: none; background: transparent;`
|
|
87
|
+
|
|
88
|
+
## Edge Cases & Special Logic
|
|
89
|
+
|
|
90
|
+
- Unlike `TextInput`, do NOT delegate to `TextInput` in read-only mode — render the textarea directly with the read-only attribute set, so the multi-line appearance is preserved.
|
|
91
|
+
- `maxLength` is optional; only apply the attribute if `fieldMetadata?.maxLength` is defined.
|
|
92
|
+
|
|
93
|
+
## Dependencies
|
|
94
|
+
|
|
95
|
+
- The project's event-commit utility.
|
|
96
|
+
- The project's component registry, resolving `FieldValueList` — for display modes.
|
|
97
|
+
- No third-party UI libraries required.
|
|
98
|
+
|
|
99
|
+
## Design System Mapping
|
|
100
|
+
|
|
101
|
+
**UI control type:** Multi-line text input (textarea).
|
|
102
|
+
|
|
103
|
+
When implementing in a specific design system, map the following:
|
|
104
|
+
|
|
105
|
+
- **Multiline input** → use the DS's textarea or multi-line text field component
|
|
106
|
+
- **Row sizing** → configure minimum and maximum rows to `5`
|
|
107
|
+
- **Read-only mode** → set the read-only attribute directly on the textarea (do NOT delegate to TextInput)
|
|
108
|
+
- **Error state** → the DS's error/danger visual state
|
|
109
|
+
- **maxLength** → pass to the textarea's `maxLength` attribute
|
package/templates/react-sdk-reference/{.github → .ai-common}/skills/field-skills/TextContent.md
RENAMED
|
@@ -2,38 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
Static text display component that renders formatted text content (paragraph or heading). Non-interactive — no form binding.
|
|
4
4
|
|
|
5
|
-
> **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture,
|
|
5
|
+
> **Prerequisite skill:** [`field-components.md`](../field-components.md) — covers architecture, input contract, display modes, event handling, and registration patterns common to ALL field components.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Component Purpose
|
|
10
10
|
|
|
11
|
-
Displays static, read-only text content. Used to embed headings or descriptive paragraph text within forms or views. Not an input field — does NOT bind to a case property value and does NOT use
|
|
11
|
+
Displays static, read-only text content. Used to embed headings or descriptive paragraph text within forms or views. Not an input field — does NOT bind to a case property value and does NOT use the project's field input contract. It renders purely based on static configuration inputs.
|
|
12
12
|
|
|
13
13
|
## Pega Metadata
|
|
14
14
|
|
|
15
15
|
- **Pega Name:** `TextContent`
|
|
16
16
|
- **Type / Subtype:** `Field` / `Text`
|
|
17
|
-
- **Registration key:** `TextContent` (in
|
|
17
|
+
- **Registration key:** `TextContent` (in the project's component map)
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Inputs (component-specific)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
The input contract extends the project's base component interface (NOT the field input contract — there is no form value binding), adding two required fields: `content` and `displayAs`.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
import type { PConnProps } from '@pega/sdk-react';
|
|
25
|
-
|
|
26
|
-
interface TextContentProps extends PConnProps {
|
|
27
|
-
content: string;
|
|
28
|
-
displayAs: 'Paragraph' | 'Heading 1' | 'Heading 2' | 'Heading 3' | 'Heading 4';
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
| Prop | Type | Description |
|
|
23
|
+
| Name | Type | Description |
|
|
33
24
|
| ----------- | ------------------------------------------------------------------------- | ------------------------------------------------- |
|
|
34
25
|
| `content` | `string` | The text string to render |
|
|
35
26
|
| `displayAs` | `'Paragraph' \| 'Heading 1' \| 'Heading 2' \| 'Heading 3' \| 'Heading 4'` | How to render the text — maps to typography level |
|
|
36
27
|
|
|
28
|
+
## Implementation Structure
|
|
29
|
+
|
|
30
|
+
Simplest possible component — no state, no lifecycle effects, just a switch on `displayAs`.
|
|
31
|
+
|
|
32
|
+
**Module Setup:** Define the input contract as an extension of the project's base component interface (not the field input contract) with `content: string` and the `displayAs` union type.
|
|
33
|
+
|
|
34
|
+
**Main Component Logic:**
|
|
35
|
+
|
|
36
|
+
1. Receive `content` and `displayAs` from inputs.
|
|
37
|
+
2. Switch on `displayAs` and render the matching element wrapping `content`: `'Paragraph'` → `<p>`, `'Heading 1'` → `<h1>`, `'Heading 2'` → `<h2>`, `'Heading 3'` → `<h3>`, `'Heading 4'` → `<h4>`.
|
|
38
|
+
3. For any unrecognized `displayAs` value, log an error describing the unexpected value, then fall back to rendering `content` in a `<p>`.
|
|
39
|
+
|
|
37
40
|
## Behavioral Contract
|
|
38
41
|
|
|
39
42
|
1. **No state, no effects** — purely presentational. Render `content` using the appropriate typography element for `displayAs`.
|
|
@@ -47,7 +50,7 @@ interface TextContentProps extends PConnProps {
|
|
|
47
50
|
|
|
48
51
|
## Display Mode Rendering
|
|
49
52
|
|
|
50
|
-
Not applicable — this component is display-only by nature. It does not accept a `displayMode`
|
|
53
|
+
Not applicable — this component is display-only by nature. It does not accept a `displayMode` input.
|
|
51
54
|
|
|
52
55
|
## Read-Only Rendering
|
|
53
56
|
|
|
@@ -65,53 +68,25 @@ Derived from standard HTML typography:
|
|
|
65
68
|
| `Heading 3` | `<h3>` | 1.75rem | 400 |
|
|
66
69
|
| `Heading 4` | `<h4>` | 1.5rem | 400 |
|
|
67
70
|
|
|
68
|
-
Color inherits from the surrounding text color. No padding, margin, border, or background beyond what the browser/design-system applies to the heading element.
|
|
69
|
-
|
|
70
|
-
**CSS-only implementation notes:**
|
|
71
|
-
|
|
72
|
-
```css
|
|
73
|
-
.text-content-h1 {
|
|
74
|
-
font-size: 2.5rem;
|
|
75
|
-
font-weight: 300;
|
|
76
|
-
}
|
|
77
|
-
.text-content-h2 {
|
|
78
|
-
font-size: 2rem;
|
|
79
|
-
font-weight: 300;
|
|
80
|
-
}
|
|
81
|
-
.text-content-h3 {
|
|
82
|
-
font-size: 1.75rem;
|
|
83
|
-
font-weight: 400;
|
|
84
|
-
}
|
|
85
|
-
.text-content-h4 {
|
|
86
|
-
font-size: 1.5rem;
|
|
87
|
-
font-weight: 400;
|
|
88
|
-
}
|
|
89
|
-
.text-content-body {
|
|
90
|
-
font-size: 1rem;
|
|
91
|
-
font-weight: 400;
|
|
92
|
-
}
|
|
93
|
-
```
|
|
71
|
+
Color inherits from the surrounding text color. No padding, margin, border, or background beyond what the browser/design-system applies to the heading element. Each heading level (and the paragraph/body style) uses only `font-size` and `font-weight` to differentiate visual hierarchy, per the table above — no other styling is applied.
|
|
94
72
|
|
|
95
73
|
## Edge Cases & Special Logic
|
|
96
74
|
|
|
97
|
-
- Unrecognized `displayAs` values should trigger
|
|
98
|
-
- No
|
|
75
|
+
- Unrecognized `displayAs` values should trigger an error log and fall back to body text.
|
|
76
|
+
- No event-commit utility, no store interaction, no lifecycle effects.
|
|
99
77
|
|
|
100
78
|
## Dependencies
|
|
101
79
|
|
|
102
80
|
- No event utilities needed
|
|
103
81
|
- No `FieldValueList` needed
|
|
104
|
-
- Only a typography rendering element
|
|
82
|
+
- Only a typography rendering element (native HTML or the DS's typography component)
|
|
105
83
|
|
|
106
84
|
## Design System Mapping
|
|
107
85
|
|
|
108
86
|
**UI control type:** Static typography / text block.
|
|
109
87
|
|
|
110
|
-
|
|
88
|
+
When implementing in a specific design system, map the following:
|
|
111
89
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
| MUI | `<Typography variant='h1' \| 'h2' \| 'h3' \| 'h4' \| 'body1'>` |
|
|
116
|
-
| Ant Design | `<Typography.Title level={1-4}>` or `<Typography.Text>` |
|
|
117
|
-
| Chakra UI | `<Heading as='h1'-'h4'>` or `<Text>` |
|
|
90
|
+
- **Paragraph** → use the DS's body text component or a `<p>` element
|
|
91
|
+
- **Heading 1–4** → use the DS's heading component at the matching level, or native `<h1>`–`<h4>` elements
|
|
92
|
+
- **No interaction** → this component has no event handling, state, or store binding
|