@pega/sdk 0.0.3 → 0.0.4
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/LICENSE +183 -183
- package/README.md +6 -6
- package/SECURITY.md +2 -1
- package/dist/index.js +12 -55
- package/package.json +7 -6
- package/templates/angular-sdk-reference/package.json +15 -15
- package/templates/angular-sdk-reference/tsconfig.json +2 -2
- package/templates/react-native-sdk-reference/App.tsx +2 -4
- package/templates/react-native-sdk-reference/package.json +6 -6
- package/templates/react-native-sdk-reference/tsconfig.json +2 -1
- package/templates/react-sdk-reference/.claude/instructions/component-map.md +1 -1
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +4 -0
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +2 -1
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +1 -0
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +18 -10
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +165 -83
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +26 -17
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +27 -13
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +42 -28
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +48 -34
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +25 -11
- package/templates/react-sdk-reference/.claude/prompts/identify-components.md +65 -65
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +99 -99
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +40 -38
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +54 -51
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +32 -28
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +38 -35
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +25 -23
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +29 -26
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +32 -26
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +17 -15
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +85 -59
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +13 -11
- package/templates/react-sdk-reference/.claude/skills/field-components.md +9 -8
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +27 -26
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +30 -22
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +60 -43
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +23 -20
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +19 -17
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +18 -15
- package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +22 -21
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +50 -30
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +20 -18
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +21 -15
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +17 -16
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +30 -21
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +66 -42
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +27 -18
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +22 -21
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +36 -17
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +56 -35
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +23 -12
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +41 -31
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +70 -55
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +34 -27
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +24 -22
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +38 -22
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +24 -21
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +16 -15
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +16 -15
- package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +57 -34
- package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +10 -8
- package/templates/react-sdk-reference/.claude/skills/template-components.md +7 -8
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +27 -21
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +17 -15
- package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +19 -16
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +19 -13
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +23 -17
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +34 -29
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +18 -16
- package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +36 -32
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +23 -21
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +31 -29
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +19 -17
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +22 -20
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +19 -17
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +19 -17
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +15 -10
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +19 -16
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +18 -15
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +17 -13
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +10 -13
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +9 -7
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +33 -30
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +13 -11
- package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +42 -40
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +25 -20
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +25 -19
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +36 -29
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +31 -27
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +29 -24
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +14 -11
- package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +34 -32
- package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +48 -46
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +23 -19
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +11 -22
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +22 -20
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +33 -28
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +18 -15
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +43 -37
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +23 -19
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +20 -16
- package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +26 -24
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +43 -35
- package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +165 -83
- package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
- package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +2 -2
- package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +1 -1
- package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +5 -1
- package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +3 -2
- package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +2 -1
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +58 -15
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +322 -65
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +124 -50
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +145 -66
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +146 -73
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +128 -49
- package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +65 -65
- package/templates/react-sdk-reference/.github/skills/component-contracts.md +99 -99
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +40 -38
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +54 -51
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +32 -28
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +38 -35
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +25 -23
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +29 -26
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +32 -26
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +17 -15
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +85 -59
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +13 -11
- package/templates/react-sdk-reference/.github/skills/field-components.md +9 -8
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +27 -26
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +30 -22
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +60 -43
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +23 -20
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +19 -17
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +18 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +22 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +50 -30
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +20 -18
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +21 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +17 -16
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +30 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +66 -42
- package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +27 -18
- package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +22 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +36 -17
- package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +56 -35
- package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +23 -12
- package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +41 -31
- package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +70 -55
- package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +34 -27
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +24 -22
- package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +38 -22
- package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +24 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +16 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +16 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +57 -34
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +10 -8
- package/templates/react-sdk-reference/.github/skills/template-components.md +7 -8
- package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +27 -21
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +17 -15
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +19 -16
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +19 -13
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +23 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +34 -29
- package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +18 -16
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +36 -32
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +23 -21
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +31 -29
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +19 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +22 -20
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +19 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +19 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +15 -10
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +19 -16
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +18 -15
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +17 -13
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +10 -13
- package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +9 -7
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +33 -30
- package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +13 -11
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +42 -40
- package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +25 -20
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +25 -19
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +36 -29
- package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +31 -27
- package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +29 -24
- package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +14 -11
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +34 -32
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +48 -46
- package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +23 -19
- package/templates/react-sdk-reference/.github/skills/widget-components.md +11 -22
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +22 -20
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +33 -28
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +18 -15
- package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +43 -37
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +23 -19
- package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +20 -16
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +26 -24
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +43 -35
- package/templates/react-sdk-reference/AGENTS.md +0 -1
- package/templates/react-sdk-reference/index.html +1 -4
- package/templates/react-sdk-reference/package.json +15 -15
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
- package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
- package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
- package/templates/react-sdk-reference/src/MashupApp.tsx +186 -85
- package/templates/react-sdk-reference/src/PortalApp.tsx +10 -34
- package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
- package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
- package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
- package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
- package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
- package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
- package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
- package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
- package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
- package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
- package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
- package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
- package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
- package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
- package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
- package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
- package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
- package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
- package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
- package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
- package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
- package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
- package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
- package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
- package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
- package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
- package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
- package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
- package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
- package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
- package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
- package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
- package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
- package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
- package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
- package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
- package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
- package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
- package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
- package/templates/react-sdk-reference/src/components/index.ts +1 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
- package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
- package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
- package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
- package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
- package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
- package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
- package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
- package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
- package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
- package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
- package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
- package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
- package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
- package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
- package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
- package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
- package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
- package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
- package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
- package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
- package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
- package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
- package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
- package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
- package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
- package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
- package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
- package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
- package/templates/react-sdk-reference/src/main.tsx +1 -1
- package/templates/react-sdk-reference/tsconfig.json +2 -1
- package/templates/react-sdk-reference/vite.config.ts +51 -26
- package/templates/wc-sdk-reference/package.json +3 -3
- package/templates/wc-sdk-reference/src/index.ts +10 -10
- package/templates/wc-sdk-reference/tsconfig.json +1 -0
|
@@ -18,8 +18,8 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
| ----------------- | ------------------- | --------------------------------------------- |
|
|
23
23
|
| `additionalProps` | `object` (optional) | Extra props forwarded to the `RichTextEditor` |
|
|
24
24
|
|
|
25
25
|
## Behavioral Contract
|
|
@@ -29,8 +29,8 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
|
|
|
29
29
|
3. **Props coercion:** `readOnly`, `required`, `disabled` must be coerced to booleans:
|
|
30
30
|
```typescript
|
|
31
31
|
[readOnly, required, disabled] = [readOnly, required, disabled].map(
|
|
32
|
-
prop => prop === true || (typeof prop === 'string' && prop === 'true')
|
|
33
|
-
)
|
|
32
|
+
(prop) => prop === true || (typeof prop === 'string' && prop === 'true'),
|
|
33
|
+
);
|
|
34
34
|
```
|
|
35
35
|
4. **Editable mode:**
|
|
36
36
|
- Track `status` for error state.
|
|
@@ -47,6 +47,7 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
|
|
|
47
47
|
6. **`RichTextEditor` component:** Resolved via `getComponentFromRegistry('RichTextEditor')`. This is a design-system extension component that wraps the actual WYSIWYG library (e.g., TinyMCE).
|
|
48
48
|
|
|
49
49
|
### Editable RichTextEditor props
|
|
50
|
+
|
|
50
51
|
```
|
|
51
52
|
label, labelHidden={hideLabel}, info={helperTextToDisplay}, defaultValue={value},
|
|
52
53
|
placeholder, disabled, required, testId, ref={editorRef},
|
|
@@ -54,6 +55,7 @@ error={status === 'error'}, onBlur={handleBlur}, onChange={handleChange}
|
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
### Read-only RichTextEditor props
|
|
58
|
+
|
|
57
59
|
```
|
|
58
60
|
label, labelHidden={hideLabel}, defaultValue={value}, testId, info={helperTextToDisplay},
|
|
59
61
|
ref={editorRef}, readOnly
|
|
@@ -62,6 +64,7 @@ ref={editorRef}, readOnly
|
|
|
62
64
|
## Display Mode Rendering
|
|
63
65
|
|
|
64
66
|
Display modes pass `isHtml={true}` to render HTML content safely:
|
|
67
|
+
|
|
65
68
|
- **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : label} value={value} isHtml />`
|
|
66
69
|
- **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : label} value={value} isHtml variant='stacked' />`
|
|
67
70
|
|
|
@@ -75,9 +78,15 @@ The visual appearance of the rich text editor depends on the underlying `RichTex
|
|
|
75
78
|
|
|
76
79
|
```css
|
|
77
80
|
/* RichText.css — must be imported */
|
|
78
|
-
.tox .tox-toolbar {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
.tox .tox-toolbar {
|
|
82
|
+
background-color: var(--app-background-color) !important;
|
|
83
|
+
}
|
|
84
|
+
.tox .tox-toolbar__primary {
|
|
85
|
+
background-color: var(--app-background-color) !important;
|
|
86
|
+
}
|
|
87
|
+
.tox .tox-toolbar__button {
|
|
88
|
+
color: var(--app-text-color) !important;
|
|
89
|
+
}
|
|
81
90
|
.tox .tox-toolbar__button--enabled {
|
|
82
91
|
background: var(--app-primary-color) !important;
|
|
83
92
|
color: #fff !important;
|
|
@@ -100,6 +109,7 @@ The visual appearance of the rich text editor depends on the underlying `RichTex
|
|
|
100
109
|
**Note:** Import `./RichText.css` in the component file. The CSS variables (`--app-background-color`, `--app-text-color`, etc.) are set by the application theme.
|
|
101
110
|
|
|
102
111
|
When implementing with a different design system:
|
|
112
|
+
|
|
103
113
|
- Custom CSS for toolbar theming may be needed
|
|
104
114
|
- The editor container should be full-width
|
|
105
115
|
- Minimum height: ~200px for a usable editing area
|
|
@@ -121,6 +131,7 @@ When implementing with a different design system:
|
|
|
121
131
|
- `useRef` from React.
|
|
122
132
|
|
|
123
133
|
**For other rich text editors:**
|
|
134
|
+
|
|
124
135
|
- Any WYSIWYG editor that exposes `ref.current.getContent()` or equivalent.
|
|
125
136
|
- Examples: Quill, Draft.js, Slate.js, CKEditor.
|
|
126
137
|
|
|
@@ -130,9 +141,9 @@ When implementing with a different design system:
|
|
|
130
141
|
|
|
131
142
|
Listed design systems are examples only.
|
|
132
143
|
|
|
133
|
-
| Design System
|
|
134
|
-
|
|
144
|
+
| Design System | Recommended Component |
|
|
145
|
+
| ------------------ | ------------------------------------------------- |
|
|
135
146
|
| Default (CSS only) | `contenteditable` div + custom toolbar OR TinyMCE |
|
|
136
|
-
| MUI
|
|
137
|
-
| Ant Design
|
|
138
|
-
| Chakra UI
|
|
147
|
+
| MUI | `RichTextEditor` custom extension (TinyMCE) |
|
|
148
|
+
| Ant Design | Quill or TinyMCE with Ant styling |
|
|
149
|
+
| Chakra UI | Quill or TipTap with Chakra styling |
|
|
@@ -24,14 +24,14 @@ Renders a list of scalar (primitive) values by dynamically creating a child comp
|
|
|
24
24
|
import type { PConnProps } from '@pega/sdk-react';
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
| Prop
|
|
28
|
-
|
|
29
|
-
| `value`
|
|
30
|
-
| `componentType`
|
|
31
|
-
| `label`
|
|
32
|
-
| `displayMode`
|
|
33
|
-
| `hideLabel`
|
|
34
|
-
| `displayInModal` | `boolean` | Whether this is displayed in a modal context
|
|
27
|
+
| Prop | Type | Description |
|
|
28
|
+
| ---------------- | --------- | ---------------------------------------------------------------------------- |
|
|
29
|
+
| `value` | `any[]` | Array of scalar values to display |
|
|
30
|
+
| `componentType` | `string` | The Pega component type to use for each item (e.g., `'TextInput'`, `'Date'`) |
|
|
31
|
+
| `label` | `string` | Field label |
|
|
32
|
+
| `displayMode` | `string` | Display mode |
|
|
33
|
+
| `hideLabel` | `boolean` | Whether to hide the label |
|
|
34
|
+
| `displayInModal` | `boolean` | Whether this is displayed in a modal context |
|
|
35
35
|
|
|
36
36
|
All remaining props (`...restProps`) are forwarded to each child component.
|
|
37
37
|
|
|
@@ -40,7 +40,7 @@ All remaining props (`...restProps`) are forwarded to each child component.
|
|
|
40
40
|
1. **No state, no event handling** — purely display/read-only.
|
|
41
41
|
2. **Item rendering:** Map each value in `scalarValues` to a component via `getPConnect().createComponent(...)`:
|
|
42
42
|
```typescript
|
|
43
|
-
const items = scalarValues?.map(scalarValue =>
|
|
43
|
+
const items = scalarValues?.map((scalarValue) =>
|
|
44
44
|
getPConnect().createComponent(
|
|
45
45
|
{
|
|
46
46
|
type: componentType,
|
|
@@ -49,14 +49,14 @@ All remaining props (`...restProps`) are forwarded to each child component.
|
|
|
49
49
|
displayMode: 'DISPLAY_ONLY',
|
|
50
50
|
label,
|
|
51
51
|
...restProps,
|
|
52
|
-
readOnly: 'true'
|
|
53
|
-
}
|
|
52
|
+
readOnly: 'true',
|
|
53
|
+
},
|
|
54
54
|
},
|
|
55
|
-
'',
|
|
56
|
-
'',
|
|
57
|
-
{}
|
|
58
|
-
)
|
|
59
|
-
)
|
|
55
|
+
'', // 2nd arg: empty string
|
|
56
|
+
'', // 3rd arg: empty string
|
|
57
|
+
{}, // 4th arg: empty object
|
|
58
|
+
),
|
|
59
|
+
);
|
|
60
60
|
```
|
|
61
61
|
3. **`CommaSeparatedList` sub-component:** A local component that renders items as `<span>` elements inside a `<ul>` with no list styling:
|
|
62
62
|
```html
|
|
@@ -70,31 +70,41 @@ All remaining props (`...restProps`) are forwarded to each child component.
|
|
|
70
70
|
## Display Mode Rendering
|
|
71
71
|
|
|
72
72
|
**`STACKED_LARGE_VAL` or `DISPLAY_ONLY`:**
|
|
73
|
+
|
|
73
74
|
```html
|
|
74
75
|
<div>
|
|
75
|
-
<CommaSeparatedList items={items} />
|
|
76
|
+
<CommaSeparatedList items="{items}" />
|
|
76
77
|
</div>
|
|
77
78
|
```
|
|
79
|
+
|
|
78
80
|
No `FieldValueList` wrapper in these modes — the items are rendered directly.
|
|
79
81
|
|
|
80
82
|
**Default (no display mode):**
|
|
83
|
+
|
|
81
84
|
```
|
|
82
85
|
<FieldValueList name={hideLabel ? '' : label} value={<CommaSeparatedList items={items} />} variant='stacked' />
|
|
83
86
|
```
|
|
84
87
|
|
|
85
88
|
## Visual Specifications
|
|
86
89
|
|
|
87
|
-
| Property
|
|
88
|
-
|
|
89
|
-
| List style
|
|
90
|
-
| Item display | Each item rendered as `<span>` (inline)
|
|
91
|
-
| Separator
|
|
92
|
-
| Layout
|
|
90
|
+
| Property | Value |
|
|
91
|
+
| ------------ | ----------------------------------------------------------------- |
|
|
92
|
+
| List style | No bullets, no padding, no margin on `<ul>` |
|
|
93
|
+
| Item display | Each item rendered as `<span>` (inline) |
|
|
94
|
+
| Separator | Items are adjacent spans (no comma separator despite the name) |
|
|
95
|
+
| Layout | Vertical stack when wrapped in `FieldValueList variant='stacked'` |
|
|
93
96
|
|
|
94
97
|
**CSS-only notes:**
|
|
98
|
+
|
|
95
99
|
```css
|
|
96
|
-
.scalar-list {
|
|
97
|
-
|
|
100
|
+
.scalar-list {
|
|
101
|
+
list-style: none;
|
|
102
|
+
padding: 0;
|
|
103
|
+
margin: 0;
|
|
104
|
+
}
|
|
105
|
+
.scalar-list-item {
|
|
106
|
+
display: inline;
|
|
107
|
+
}
|
|
98
108
|
```
|
|
99
109
|
|
|
100
110
|
## Edge Cases & Special Logic
|
|
@@ -116,9 +126,9 @@ No `FieldValueList` wrapper in these modes — the items are rendered directly.
|
|
|
116
126
|
|
|
117
127
|
Listed design systems are examples only.
|
|
118
128
|
|
|
119
|
-
| Design System
|
|
120
|
-
|
|
121
|
-
| Default (CSS only) | `<ul>` with `<span>` items
|
|
122
|
-
| MUI
|
|
123
|
-
| Ant Design
|
|
124
|
-
| Chakra UI
|
|
129
|
+
| Design System | Recommended Component |
|
|
130
|
+
| ------------------ | ---------------------------------------------------------- |
|
|
131
|
+
| Default (CSS only) | `<ul>` with `<span>` items |
|
|
132
|
+
| MUI | `<List>` with `<ListItem>` or just `<Typography>` per item |
|
|
133
|
+
| Ant Design | `<List>` items or `<Space>` with `<Tag>` |
|
|
134
|
+
| Chakra UI | `<List>` or `<HStack>` with `<Tag>` |
|
|
@@ -20,29 +20,29 @@ Renders a grid of selectable cards. Each card contains a radio button or checkbo
|
|
|
20
20
|
|
|
21
21
|
## Props
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `getPConnect`
|
|
26
|
-
| `type`
|
|
27
|
-
| `image`
|
|
28
|
-
| `dataSource`
|
|
29
|
-
| `recordKey`
|
|
30
|
-
| `className`
|
|
31
|
-
| `cardLabel`
|
|
32
|
-
| `hideFieldLabels`
|
|
33
|
-
| `readOnly`
|
|
34
|
-
| `disabled`
|
|
35
|
-
| `readOnlyList`
|
|
36
|
-
| `displayMode`
|
|
37
|
-
| `radioBtnValue`
|
|
38
|
-
| `onChange`
|
|
39
|
-
| `onBlur`
|
|
40
|
-
| `onClick`
|
|
41
|
-
| `onKeyDown`
|
|
42
|
-
| `additionalProps`
|
|
43
|
-
| `testId`
|
|
44
|
-
| `setIsRadioCardSelected` | `function`
|
|
45
|
-
| `showNoValue`
|
|
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
46
|
|
|
47
47
|
## Behavioral Contract
|
|
48
48
|
|
|
@@ -61,18 +61,20 @@ If `showNoValue`: render a plain text element showing `'No Value'` and return ea
|
|
|
61
61
|
### Card click handler
|
|
62
62
|
|
|
63
63
|
Cards should be clickable anywhere (not just on the checkbox/radio):
|
|
64
|
+
|
|
64
65
|
```typescript
|
|
65
66
|
const handleCardClick = (event) => {
|
|
66
|
-
if (disabled || readOnly) return
|
|
67
|
-
if (event.target.closest('label, input')) return
|
|
68
|
-
const input = event.currentTarget.querySelector('input[type="radio"], input[type="checkbox"]')
|
|
69
|
-
if (input) input.click()
|
|
70
|
-
}
|
|
67
|
+
if (disabled || readOnly) return;
|
|
68
|
+
if (event.target.closest('label, input')) return; // native click already handled
|
|
69
|
+
const input = event.currentTarget.querySelector('input[type="radio"], input[type="checkbox"]');
|
|
70
|
+
if (input) input.click();
|
|
71
|
+
};
|
|
71
72
|
```
|
|
72
73
|
|
|
73
74
|
### Subsection: Display mode (`displayMode === 'DISPLAY_ONLY'`)
|
|
74
75
|
|
|
75
76
|
Render a **simple read-only card** (no radio/checkbox) with:
|
|
77
|
+
|
|
76
78
|
- Optional image (`<img>`)
|
|
77
79
|
- Card title: `item[cardLabel]`
|
|
78
80
|
- Additional resolved fields (from `resolveReferenceFields`)
|
|
@@ -80,7 +82,7 @@ Render a **simple read-only card** (no radio/checkbox) with:
|
|
|
80
82
|
|
|
81
83
|
```html
|
|
82
84
|
<Card style="display: flex">
|
|
83
|
-
{image && <img src="..." alt="..." style="width: 100px"
|
|
85
|
+
{image && <img src="..." alt="..." style="width: 100px" />}
|
|
84
86
|
<CardContent>
|
|
85
87
|
<body1>{item[cardLabel]}</body1>
|
|
86
88
|
{fields.map(field => <body2>{field.value}</body2>)}
|
|
@@ -112,11 +114,11 @@ Render a **selectable card** with click handler, containing the appropriate inpu
|
|
|
112
114
|
|
|
113
115
|
### Image layout (inline positions)
|
|
114
116
|
|
|
115
|
-
| `imagePosition`
|
|
116
|
-
|
|
117
|
-
| `'inline-start'` | `display: flex`
|
|
118
|
-
| `'inline-end'`
|
|
119
|
-
| block (default)
|
|
117
|
+
| `imagePosition` | CardContent style | Image section width | Content section width |
|
|
118
|
+
| ---------------- | ------------------------------------------- | ------------------- | --------------------- |
|
|
119
|
+
| `'inline-start'` | `display: flex` | 40% | 60% |
|
|
120
|
+
| `'inline-end'` | `display: flex, flexDirection: row-reverse` | 40% | 60% |
|
|
121
|
+
| block (default) | default | full width | full width |
|
|
120
122
|
|
|
121
123
|
### Image element
|
|
122
124
|
|
|
@@ -135,10 +137,11 @@ img {
|
|
|
135
137
|
### Field display layout
|
|
136
138
|
|
|
137
139
|
Each additional field in editable mode:
|
|
140
|
+
|
|
138
141
|
```css
|
|
139
142
|
.card-field {
|
|
140
143
|
font-size: 0.875rem;
|
|
141
|
-
display: grid;
|
|
144
|
+
display: grid; /* only if type !== 'TextArea' */
|
|
142
145
|
grid-template-columns: 1fr 1fr;
|
|
143
146
|
margin: 5px;
|
|
144
147
|
}
|
|
@@ -147,6 +150,7 @@ Each additional field in editable mode:
|
|
|
147
150
|
### Radio tracking
|
|
148
151
|
|
|
149
152
|
After iterating cards, if `type === 'radio'` and `setIsRadioCardSelected`:
|
|
153
|
+
|
|
150
154
|
```
|
|
151
155
|
if (radioBtnValue === item[recordKey]) radioItemSelected = true
|
|
152
156
|
// After loop:
|
|
@@ -159,20 +163,21 @@ setIsRadioCardSelected(radioItemSelected)
|
|
|
159
163
|
|
|
160
164
|
## Visual Specifications
|
|
161
165
|
|
|
162
|
-
| Property
|
|
163
|
-
|
|
164
|
-
| Cursor
|
|
165
|
-
| Height
|
|
166
|
-
| Layout
|
|
167
|
-
| Padding top
|
|
168
|
-
| Image (display-only) | 100px fixed width
|
|
169
|
-
| Card border
|
|
170
|
-
| Disabled
|
|
166
|
+
| Property | Editable card | Display-only card |
|
|
167
|
+
| -------------------- | ------------------------------------------------ | ----------------- |
|
|
168
|
+
| Cursor | `pointer` (unless disabled/readOnly → `default`) | Default |
|
|
169
|
+
| Height | `100%` (fills grid row) | Auto |
|
|
170
|
+
| Layout | Column flex | Row flex |
|
|
171
|
+
| Padding top | 15px wrapper | — |
|
|
172
|
+
| Image (display-only) | 100px fixed width | 100px fixed width |
|
|
173
|
+
| Card border | Default (design-system card elevation) | Default |
|
|
174
|
+
| Disabled | `cursor: default` | — |
|
|
171
175
|
|
|
172
176
|
**CSS-only card implementation:**
|
|
177
|
+
|
|
173
178
|
```css
|
|
174
179
|
.selectable-card {
|
|
175
|
-
border: 1px solid rgba(0,0,0,0.12);
|
|
180
|
+
border: 1px solid rgba(0, 0, 0, 0.12);
|
|
176
181
|
border-radius: 4px;
|
|
177
182
|
padding: 16px;
|
|
178
183
|
cursor: pointer;
|
|
@@ -182,10 +187,20 @@ setIsRadioCardSelected(radioItemSelected)
|
|
|
182
187
|
margin-top: 15px;
|
|
183
188
|
transition: border-color 0.2s;
|
|
184
189
|
}
|
|
185
|
-
.selectable-card:hover {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
.selectable-card
|
|
190
|
+
.selectable-card:hover {
|
|
191
|
+
border-color: #1976d2;
|
|
192
|
+
}
|
|
193
|
+
.selectable-card.disabled {
|
|
194
|
+
cursor: default;
|
|
195
|
+
opacity: 0.7;
|
|
196
|
+
}
|
|
197
|
+
.selectable-card.readonly {
|
|
198
|
+
cursor: default;
|
|
199
|
+
}
|
|
200
|
+
.selectable-card-label {
|
|
201
|
+
font-size: 1rem;
|
|
202
|
+
font-weight: 400;
|
|
203
|
+
}
|
|
189
204
|
```
|
|
190
205
|
|
|
191
206
|
## Edge Cases & Special Logic
|
|
@@ -208,9 +223,9 @@ setIsRadioCardSelected(radioItemSelected)
|
|
|
208
223
|
|
|
209
224
|
Listed design systems are examples only.
|
|
210
225
|
|
|
211
|
-
| Design System
|
|
212
|
-
|
|
213
|
-
| Default (CSS only) | Custom `<div>` cards with `<input type="radio/checkbox">` inside
|
|
214
|
-
| MUI
|
|
215
|
-
| Ant Design
|
|
216
|
-
| Chakra UI
|
|
226
|
+
| Design System | Recommended Component |
|
|
227
|
+
| ------------------ | -------------------------------------------------------------------------- |
|
|
228
|
+
| Default (CSS only) | Custom `<div>` cards with `<input type="radio/checkbox">` inside |
|
|
229
|
+
| MUI | `<Card>` + `<CardContent>` + `<FormControlLabel>` + `<Radio>`/`<Checkbox>` |
|
|
230
|
+
| Ant Design | Custom cards with `<Radio>`/`<Checkbox>` |
|
|
231
|
+
| Chakra UI | `<Box>` as card + `<Radio>`/`<Checkbox>` |
|
|
@@ -18,29 +18,31 @@ Renders a clickable link (`<a>` or button-style link) that navigates to a Pega c
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `text`
|
|
24
|
-
| `resourcePayload`
|
|
25
|
-
| `resourceParams`
|
|
26
|
-
| `previewKey`
|
|
27
|
-
| `onClick`
|
|
28
|
-
| `testId`
|
|
29
|
-
| `referenceType`
|
|
30
|
-
| `dataRelationshipContext` | `string \| null`
|
|
31
|
-
| `contextPage`
|
|
21
|
+
| Prop | Type | Default | Description |
|
|
22
|
+
| ------------------------- | ----------------- | ------- | ---------------------------------------------------------------------------------- |
|
|
23
|
+
| `text` | `string` | — | The visible link text; renders `'--'` if empty |
|
|
24
|
+
| `resourcePayload` | `any` | `{}` | Resource payload containing `caseClassName`, `resourceType`, etc. |
|
|
25
|
+
| `resourceParams` | `any` | `{}` | Resource parameters containing `workID` for case navigation |
|
|
26
|
+
| `previewKey` | `string \| null` | — | Case preview key for opening work item by handle |
|
|
27
|
+
| `onClick` | `(event) => void` | — | External click handler (received but not directly used — link has its own handler) |
|
|
28
|
+
| `testId` | `string` | `''` | Test identifier |
|
|
29
|
+
| `referenceType` | `string \| null` | — | `'DATA'` or case reference type |
|
|
30
|
+
| `dataRelationshipContext` | `string \| null` | `null` | Context for data relationship resolution |
|
|
31
|
+
| `contextPage` | `any` | — | Context page with `classID` |
|
|
32
32
|
|
|
33
33
|
## Behavioral Contract
|
|
34
34
|
|
|
35
35
|
### URL Resolution
|
|
36
36
|
|
|
37
37
|
**Step 1: Determine if this is a data reference:**
|
|
38
|
+
|
|
38
39
|
- `isData = false`
|
|
39
40
|
- `shouldTreatAsDataReference = !previewKey && resourcePayload.caseClassName` (non-preview, has class)
|
|
40
41
|
- If `contextPage?.classID`: override `resourcePayload.caseClassName = contextPage.classID`
|
|
41
42
|
- If `resourcePayload.caseClassName === WORKCLASS`: override with actual case class from `pConnect.getValue(CASE_INFO_CLASSID)`
|
|
42
43
|
|
|
43
44
|
**Step 2a: Data reference (`referenceType === 'DATA'` or `shouldTreatAsDataReference`):**
|
|
45
|
+
|
|
44
46
|
```
|
|
45
47
|
const dataRefContext = semanticUtils.getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage)
|
|
46
48
|
dataViewName = dataRefContext.dataContext
|
|
@@ -49,12 +51,14 @@ isData = true
|
|
|
49
51
|
```
|
|
50
52
|
|
|
51
53
|
**Step 2b: Resource type DATA (`resourcePayload.resourceType === 'DATA'`):**
|
|
54
|
+
|
|
52
55
|
- Look up data page: `dataViewName = PCore.getDataTypeUtils().getLookUpDataPage(resourcePayload.className)`
|
|
53
56
|
- Look up page info and parameters
|
|
54
57
|
- Build `payload` from parameters by resolving property annotations
|
|
55
58
|
- `isData = true`
|
|
56
59
|
|
|
57
60
|
**Step 3: Build `linkURL`:**
|
|
61
|
+
|
|
58
62
|
- If `isData && dataViewName && payload`: `linkURL = PCore.getSemanticUrlUtils().getResolvedSemanticURL(ACTION_SHOWDATA, { pageName: 'pyDetails', dataViewName }, payload)`
|
|
59
63
|
- Else (case): fix `resourceParams.objectID` for empty workID edge case, then `linkURL = PCore.getSemanticUrlUtils().getResolvedSemanticURL(ACTION_OPENWORKBYHANDLE, resourcePayload, resourceParams)`
|
|
60
64
|
|
|
@@ -87,18 +91,19 @@ No explicit `displayMode` handling — `SemanticLink` is always rendered as a li
|
|
|
87
91
|
|
|
88
92
|
Derived from `makeStyles` and MUI `Link` props:
|
|
89
93
|
|
|
90
|
-
| Property
|
|
91
|
-
|
|
92
|
-
| Display
|
|
93
|
-
| Padding
|
|
94
|
-
| Margin
|
|
95
|
-
| Color
|
|
96
|
-
| Font weight | 400
|
|
97
|
-
| Underline
|
|
98
|
-
| Cursor
|
|
99
|
-
| Text
|
|
94
|
+
| Property | Value |
|
|
95
|
+
| ----------- | ---------------------------------------- |
|
|
96
|
+
| Display | Inline link (button role) |
|
|
97
|
+
| Padding | `8px` all sides |
|
|
98
|
+
| Margin | `8px` all sides |
|
|
99
|
+
| Color | Primary link color (blue, default theme) |
|
|
100
|
+
| Font weight | 400 |
|
|
101
|
+
| Underline | Default link underline on hover |
|
|
102
|
+
| Cursor | Pointer |
|
|
103
|
+
| Text | `text` prop value, or `'--'` if empty |
|
|
100
104
|
|
|
101
105
|
**CSS-only implementation:**
|
|
106
|
+
|
|
102
107
|
```css
|
|
103
108
|
.semantic-link {
|
|
104
109
|
display: inline-block;
|
|
@@ -112,7 +117,9 @@ Derived from `makeStyles` and MUI `Link` props:
|
|
|
112
117
|
border: none;
|
|
113
118
|
font-size: inherit;
|
|
114
119
|
}
|
|
115
|
-
.semantic-link:hover {
|
|
120
|
+
.semantic-link:hover {
|
|
121
|
+
text-decoration: underline;
|
|
122
|
+
}
|
|
116
123
|
```
|
|
117
124
|
|
|
118
125
|
## Edge Cases & Special Logic
|
|
@@ -140,9 +147,9 @@ Derived from `makeStyles` and MUI `Link` props:
|
|
|
140
147
|
|
|
141
148
|
Listed design systems are examples only.
|
|
142
149
|
|
|
143
|
-
| Design System
|
|
144
|
-
|
|
150
|
+
| Design System | Recommended Component |
|
|
151
|
+
| ------------------ | ---------------------------------------------------- |
|
|
145
152
|
| Default (CSS only) | `<button class="semantic-link">` with anchor styling |
|
|
146
|
-
| MUI
|
|
147
|
-
| Ant Design
|
|
148
|
-
| Chakra UI
|
|
153
|
+
| MUI | `<Link component='button'>` |
|
|
154
|
+
| Ant Design | `<Typography.Link>` or `<Button type="link">` |
|
|
155
|
+
| Chakra UI | `<Link as="button">` |
|
|
@@ -18,11 +18,12 @@ Renders an editable multi-line text area. Used for long-form text input such as
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
| --------------- | ---------------- | ---------------------------------------------------------- |
|
|
23
23
|
| `fieldMetadata` | `any` (optional) | Metadata object; used to read `maxLength` for the textarea |
|
|
24
24
|
|
|
25
25
|
All other props come from `PConnFieldProps`. Import type as:
|
|
26
|
+
|
|
26
27
|
```typescript
|
|
27
28
|
import type { PConnFieldProps } from '@pega/sdk-react';
|
|
28
29
|
```
|
|
@@ -51,21 +52,22 @@ Set `readOnly` on the textarea element (NOT a read-only version via `TextInput`
|
|
|
51
52
|
|
|
52
53
|
Derived from the reference component's MUI props:
|
|
53
54
|
|
|
54
|
-
| Property
|
|
55
|
-
|
|
56
|
-
| Width
|
|
57
|
-
| Min rows
|
|
58
|
-
| Max rows
|
|
59
|
-
| Border
|
|
60
|
-
| Border radius | 4px
|
|
61
|
-
| Label
|
|
62
|
-
| Helper text
|
|
63
|
-
| Error state
|
|
64
|
-
| Resize
|
|
65
|
-
| Font size
|
|
66
|
-
| Padding
|
|
55
|
+
| Property | Standard (editable) | Read-only |
|
|
56
|
+
| ------------- | ---------------------------------------- | -------------------- |
|
|
57
|
+
| Width | 100% | 100% |
|
|
58
|
+
| Min rows | 5 | 5 |
|
|
59
|
+
| Max rows | 5 (scrollable beyond) | 5 |
|
|
60
|
+
| Border | 1px solid (outlined) | None (standard/flat) |
|
|
61
|
+
| Border radius | 4px | — |
|
|
62
|
+
| Label | Floating label | Floating label |
|
|
63
|
+
| Helper text | Below textarea | Below textarea |
|
|
64
|
+
| Error state | Red border + red helper text | — |
|
|
65
|
+
| Resize | Vertical resize handle (browser default) | Same |
|
|
66
|
+
| Font size | 0.875rem | 0.875rem |
|
|
67
|
+
| Padding | 8px 14px | — |
|
|
67
68
|
|
|
68
69
|
**CSS-only implementation notes:**
|
|
70
|
+
|
|
69
71
|
- `textarea { min-height: calc(5 * 1.4375em + 16px); max-height: calc(5 * 1.4375em + 16px); overflow-y: auto; resize: vertical; }`
|
|
70
72
|
- Error: `border-color: #d32f2f`
|
|
71
73
|
- Read-only: `border: none; background: transparent;`
|
|
@@ -87,10 +89,10 @@ Derived from the reference component's MUI props:
|
|
|
87
89
|
|
|
88
90
|
Listed design systems are examples only.
|
|
89
91
|
|
|
90
|
-
| Design System
|
|
91
|
-
|
|
92
|
-
| Default (CSS only) | `<textarea rows="5">` with floating label
|
|
93
|
-
| MUI
|
|
94
|
-
| Ant Design
|
|
95
|
-
| Chakra UI
|
|
96
|
-
| Shadcn/ui
|
|
92
|
+
| Design System | Recommended Component |
|
|
93
|
+
| ------------------ | ------------------------------------------------- |
|
|
94
|
+
| Default (CSS only) | `<textarea rows="5">` with floating label |
|
|
95
|
+
| MUI | `<TextField multiline minRows={5} maxRows={5} />` |
|
|
96
|
+
| Ant Design | `<Input.TextArea rows={5} />` |
|
|
97
|
+
| Chakra UI | `<Textarea />` |
|
|
98
|
+
| Shadcn/ui | `<Textarea />` |
|