@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
|
@@ -29,15 +29,15 @@ interface TextContentProps extends PConnProps {
|
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
| Prop
|
|
33
|
-
|
|
34
|
-
| `content`
|
|
32
|
+
| Prop | Type | Description |
|
|
33
|
+
| ----------- | ------------------------------------------------------------------------- | ------------------------------------------------- |
|
|
34
|
+
| `content` | `string` | The text string to render |
|
|
35
35
|
| `displayAs` | `'Paragraph' \| 'Heading 1' \| 'Heading 2' \| 'Heading 3' \| 'Heading 4'` | How to render the text — maps to typography level |
|
|
36
36
|
|
|
37
37
|
## Behavioral Contract
|
|
38
38
|
|
|
39
39
|
1. **No state, no effects** — purely presentational. Render `content` using the appropriate typography element for `displayAs`.
|
|
40
|
-
2. **Mapping:**
|
|
40
|
+
2. **Mapping:**
|
|
41
41
|
- `'Paragraph'` → `<p>` / body text
|
|
42
42
|
- `'Heading 1'` → `<h1>`
|
|
43
43
|
- `'Heading 2'` → `<h2>`
|
|
@@ -57,23 +57,39 @@ Always read-only — there is no editable state.
|
|
|
57
57
|
|
|
58
58
|
Derived from standard HTML typography:
|
|
59
59
|
|
|
60
|
-
| `displayAs` | Element
|
|
61
|
-
|
|
62
|
-
| `Paragraph` | `<p>` / `body1` | 1rem (16px) | 400
|
|
63
|
-
| `Heading 1` | `<h1>`
|
|
64
|
-
| `Heading 2` | `<h2>`
|
|
65
|
-
| `Heading 3` | `<h3>`
|
|
66
|
-
| `Heading 4` | `<h4>`
|
|
60
|
+
| `displayAs` | Element | Font size | Font weight |
|
|
61
|
+
| ----------- | --------------- | ----------- | ----------- |
|
|
62
|
+
| `Paragraph` | `<p>` / `body1` | 1rem (16px) | 400 |
|
|
63
|
+
| `Heading 1` | `<h1>` | 2.5rem | 300 |
|
|
64
|
+
| `Heading 2` | `<h2>` | 2rem | 300 |
|
|
65
|
+
| `Heading 3` | `<h3>` | 1.75rem | 400 |
|
|
66
|
+
| `Heading 4` | `<h4>` | 1.5rem | 400 |
|
|
67
67
|
|
|
68
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
69
|
|
|
70
70
|
**CSS-only implementation notes:**
|
|
71
|
+
|
|
71
72
|
```css
|
|
72
|
-
.text-content-h1 {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
.text-content-
|
|
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
|
+
}
|
|
77
93
|
```
|
|
78
94
|
|
|
79
95
|
## Edge Cases & Special Logic
|
|
@@ -93,9 +109,9 @@ Color inherits from the surrounding text color. No padding, margin, border, or b
|
|
|
93
109
|
|
|
94
110
|
Listed design systems are examples only.
|
|
95
111
|
|
|
96
|
-
| Design System
|
|
97
|
-
|
|
98
|
-
| Default (CSS only) | Native `<h1>`–`<h4>` or `<p>`
|
|
99
|
-
| MUI
|
|
100
|
-
| Ant Design
|
|
101
|
-
| Chakra UI
|
|
112
|
+
| Design System | Recommended Component |
|
|
113
|
+
| ------------------ | -------------------------------------------------------------- |
|
|
114
|
+
| Default (CSS only) | Native `<h1>`–`<h4>` or `<p>` |
|
|
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>` |
|
|
@@ -18,11 +18,12 @@ Renders a single-line editable text field. It is the simplest and most foundatio
|
|
|
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 input |
|
|
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
|
```
|
|
@@ -52,20 +53,21 @@ Set the `readOnly` attribute on the underlying input element. Use a visually fla
|
|
|
52
53
|
|
|
53
54
|
Derived from the reference component's MUI props and styles:
|
|
54
55
|
|
|
55
|
-
| Property
|
|
56
|
-
|
|
57
|
-
| Width
|
|
58
|
-
| Height / size
|
|
59
|
-
| Border
|
|
60
|
-
| Border radius
|
|
61
|
-
| Label
|
|
62
|
-
| Helper text
|
|
63
|
-
| Error state
|
|
64
|
-
| Disabled
|
|
65
|
-
| Padding (input) | 8px 14px
|
|
66
|
-
| Font size
|
|
56
|
+
| Property | Standard (editable) | Read-only |
|
|
57
|
+
| --------------- | ------------------------------------------------ | ----------------------- |
|
|
58
|
+
| Width | 100% of container | 100% of container |
|
|
59
|
+
| Height / size | Small (`height ~40px`) | Small |
|
|
60
|
+
| Border | 1px solid (outlined) | None (standard variant) |
|
|
61
|
+
| Border radius | 4px | — |
|
|
62
|
+
| Label | Floating label (above input when focused/filled) | Floating label |
|
|
63
|
+
| Helper text | Shown below input | Shown below input |
|
|
64
|
+
| Error state | Red border + red helper text | — |
|
|
65
|
+
| Disabled | Reduced opacity (~0.38), not-allowed cursor | — |
|
|
66
|
+
| Padding (input) | 8px 14px | — |
|
|
67
|
+
| Font size | 0.875rem (14px) | 0.875rem |
|
|
67
68
|
|
|
68
69
|
**CSS-only implementation notes:**
|
|
70
|
+
|
|
69
71
|
- Floating label: use `<label>` positioned absolutely, translate upward on `:focus-within` or when input has value.
|
|
70
72
|
- Error state: add `.error` class → border-color: `#d32f2f`; helper text color: `#d32f2f`.
|
|
71
73
|
- Outlined box shadow on focus: `0 0 0 2px rgba(25, 118, 210, 0.2)`.
|
|
@@ -88,15 +90,16 @@ Derived from the reference component's MUI props and styles:
|
|
|
88
90
|
|
|
89
91
|
Listed design systems are examples only.
|
|
90
92
|
|
|
91
|
-
| Design System
|
|
92
|
-
|
|
93
|
-
| Default (CSS only) | `<input type="text">` with floating label pattern
|
|
94
|
-
| MUI
|
|
95
|
-
| Ant Design
|
|
96
|
-
| Chakra UI
|
|
97
|
-
| Shadcn/ui
|
|
93
|
+
| Design System | Recommended Component |
|
|
94
|
+
| ------------------ | --------------------------------------------------------- |
|
|
95
|
+
| Default (CSS only) | `<input type="text">` with floating label pattern |
|
|
96
|
+
| MUI | `<TextField variant='outlined' size='small' fullWidth />` |
|
|
97
|
+
| Ant Design | `<Input />` |
|
|
98
|
+
| Chakra UI | `<Input />` |
|
|
99
|
+
| Shadcn/ui | `<Input />` |
|
|
98
100
|
|
|
99
101
|
When implementing in a specific design system, map the following behaviors:
|
|
102
|
+
|
|
100
103
|
- `error={status === 'error'}` → error/danger variant
|
|
101
104
|
- `helperText` → helper/description slot below the input
|
|
102
105
|
- `label` → field label (floating or static depending on design system)
|
|
@@ -19,6 +19,7 @@ Renders a time-only picker. Stores time as `HH:mm:ss` string. Displays time in 1
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
21
|
No props beyond `PConnFieldProps`. Import type as:
|
|
22
|
+
|
|
22
23
|
```typescript
|
|
23
24
|
import type { PConnFieldProps } from '@pega/sdk-react';
|
|
24
25
|
```
|
|
@@ -47,15 +48,15 @@ Delegate to `TextInput`: `return <TextInput {...props} />`.
|
|
|
47
48
|
|
|
48
49
|
## Visual Specifications
|
|
49
50
|
|
|
50
|
-
| Property
|
|
51
|
-
|
|
52
|
-
| Width
|
|
53
|
-
| Size
|
|
54
|
-
| Variant
|
|
55
|
-
| Format
|
|
56
|
-
| Placeholder
|
|
57
|
-
| Minutes step | 5
|
|
58
|
-
| Error state
|
|
51
|
+
| Property | Value |
|
|
52
|
+
| ------------ | -------------------------------- |
|
|
53
|
+
| Width | Auto (time picker natural width) |
|
|
54
|
+
| Size | Small |
|
|
55
|
+
| Variant | Outlined |
|
|
56
|
+
| Format | `hh:mm a` (12-hour) |
|
|
57
|
+
| Placeholder | `hh:mm am` |
|
|
58
|
+
| Minutes step | 5 |
|
|
59
|
+
| Error state | Red border + red helper text |
|
|
59
60
|
|
|
60
61
|
**Note on known issue:** Keyboard input in the minute field may jump to the am/pm field after one digit — same as DateTime, this is a known date picker library quirk.
|
|
61
62
|
|
|
@@ -80,9 +81,9 @@ Delegate to `TextInput`: `return <TextInput {...props} />`.
|
|
|
80
81
|
|
|
81
82
|
Listed design systems are examples only.
|
|
82
83
|
|
|
83
|
-
| Design System
|
|
84
|
-
|
|
85
|
-
| Default (CSS only) | `<input type="time">` (24h, no am/pm)
|
|
86
|
-
| MUI
|
|
87
|
-
| Ant Design
|
|
88
|
-
| Chakra UI
|
|
84
|
+
| Design System | Recommended Component |
|
|
85
|
+
| ------------------ | ------------------------------------------------- |
|
|
86
|
+
| Default (CSS only) | `<input type="time">` (24h, no am/pm) |
|
|
87
|
+
| MUI | `<TimePicker minutesStep={5} format='hh:mm a' />` |
|
|
88
|
+
| Ant Design | `<TimePicker format="hh:mm a" minuteStep={5} />` |
|
|
89
|
+
| Chakra UI | Third-party time picker |
|
|
@@ -19,6 +19,7 @@ Renders a single-line text input of type `url`. Provides browser-native URL form
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
21
|
No props beyond `PConnFieldProps`. Import type as:
|
|
22
|
+
|
|
22
23
|
```typescript
|
|
23
24
|
import type { PConnFieldProps } from '@pega/sdk-react';
|
|
24
25
|
```
|
|
@@ -47,15 +48,15 @@ Delegate to `TextInput`: `return <TextInput {...props} />`.
|
|
|
47
48
|
|
|
48
49
|
Identical to `TextInput` visually — no additional adornments.
|
|
49
50
|
|
|
50
|
-
| Property
|
|
51
|
-
|
|
52
|
-
| Width
|
|
53
|
-
| Size
|
|
54
|
-
| Variant
|
|
55
|
-
| Border
|
|
56
|
-
| Border radius | 4px
|
|
57
|
-
| Error state
|
|
58
|
-
| Helper text
|
|
51
|
+
| Property | Value |
|
|
52
|
+
| ------------- | ---------------------------- |
|
|
53
|
+
| Width | 100% |
|
|
54
|
+
| Size | Small (~40px height) |
|
|
55
|
+
| Variant | Outlined |
|
|
56
|
+
| Border | 1px solid outlined |
|
|
57
|
+
| Border radius | 4px |
|
|
58
|
+
| Error state | Red border + red helper text |
|
|
59
|
+
| Helper text | Below input |
|
|
59
60
|
|
|
60
61
|
No special icon or adornment — the only difference from `TextInput` is `type='url'`.
|
|
61
62
|
|
|
@@ -77,9 +78,9 @@ No special icon or adornment — the only difference from `TextInput` is `type='
|
|
|
77
78
|
|
|
78
79
|
Listed design systems are examples only.
|
|
79
80
|
|
|
80
|
-
| Design System
|
|
81
|
-
|
|
82
|
-
| Default (CSS only) | `<input type="url">`
|
|
83
|
-
| MUI
|
|
84
|
-
| Ant Design
|
|
85
|
-
| Chakra UI
|
|
81
|
+
| Design System | Recommended Component |
|
|
82
|
+
| ------------------ | -------------------------- |
|
|
83
|
+
| Default (CSS only) | `<input type="url">` |
|
|
84
|
+
| MUI | `<TextField type='url' />` |
|
|
85
|
+
| Ant Design | `<Input type="url" />` |
|
|
86
|
+
| Chakra UI | `<Input type="url" />` |
|
|
@@ -24,24 +24,24 @@ Renders a user selection field. Can display as a typeahead search box or a dropd
|
|
|
24
24
|
import type { PConnProps } from '@pega/sdk-react';
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
| Prop
|
|
28
|
-
|
|
29
|
-
| `displayAs`
|
|
30
|
-
| `displayMode`
|
|
31
|
-
| `label`
|
|
32
|
-
| `value`
|
|
33
|
-
| `testId`
|
|
34
|
-
| `placeholder`
|
|
35
|
-
| `helperText`
|
|
36
|
-
| `disabled`
|
|
37
|
-
| `readOnly`
|
|
38
|
-
| `required`
|
|
39
|
-
| `validatemessage`
|
|
40
|
-
| `showAsFormattedText` | `boolean` (optional) | `false`
|
|
41
|
-
| `additionalProps`
|
|
42
|
-
| `hideLabel`
|
|
43
|
-
| `variant`
|
|
44
|
-
| `onChange`
|
|
27
|
+
| Prop | Type | Default | Description |
|
|
28
|
+
| --------------------- | -------------------- | ---------- | ---------------------------------------------------------------- |
|
|
29
|
+
| `displayAs` | `string` (optional) | `''` | `'Drop-down list'` or `'Search box'` — determines the input type |
|
|
30
|
+
| `displayMode` | `string` (optional) | `''` | `'DISPLAY_ONLY'` or `'STACKED_LARGE_VAL'` |
|
|
31
|
+
| `label` | `string` (optional) | `''` | Field label |
|
|
32
|
+
| `value` | `any` (optional) | `''` | Raw value from Pega store (may be a user object or string ID) |
|
|
33
|
+
| `testId` | `string` (optional) | `''` | Test identifier |
|
|
34
|
+
| `placeholder` | `string` (optional) | `''` | Placeholder text |
|
|
35
|
+
| `helperText` | `string` (optional) | `''` | Helper text |
|
|
36
|
+
| `disabled` | `boolean` (optional) | `false` | |
|
|
37
|
+
| `readOnly` | `boolean` (optional) | `false` | |
|
|
38
|
+
| `required` | `boolean` (optional) | `false` | |
|
|
39
|
+
| `validatemessage` | `string` (optional) | `''` | Validation error message |
|
|
40
|
+
| `showAsFormattedText` | `boolean` (optional) | `false` | When `true` in read-only mode, show formatted user name text |
|
|
41
|
+
| `additionalProps` | `object` (optional) | `{}` | Extra props forwarded to the child component |
|
|
42
|
+
| `hideLabel` | `boolean` (optional) | `false` | |
|
|
43
|
+
| `variant` | `string` (optional) | `'inline'` | Layout variant |
|
|
44
|
+
| `onChange` | `any` (optional) | — | Change handler (passed through to child) |
|
|
45
45
|
|
|
46
46
|
## Behavioral Contract
|
|
47
47
|
|
|
@@ -57,10 +57,12 @@ import type { PConnProps } from '@pega/sdk-react';
|
|
|
57
57
|
### Mount effect: `useEffect([displayAs, readOnly, showAsFormattedText, value])`
|
|
58
58
|
|
|
59
59
|
**Case 1: `userId && readOnly && showAsFormattedText`**
|
|
60
|
+
|
|
60
61
|
- If `isUserNameAvailable(value)`: `setUserName(value.userName)` — username already in value object
|
|
61
62
|
- Else: call `PCore.getUserApi().getOperatorDetails(userId)` and extract `pyUserName` from response
|
|
62
63
|
|
|
63
64
|
**Case 2: `displayAs === 'Drop-down list'`**
|
|
65
|
+
|
|
64
66
|
- Call `PCore.getRestClient().invokeRestApi('getListData', { queryPayload: { dataViewName: OPERATORS_DP } })`
|
|
65
67
|
- Map results to `{key: pyUserIdentifier, value: pyUserName}` array
|
|
66
68
|
- `setDropDownDataSource(mapped)`
|
|
@@ -80,17 +82,27 @@ else if displayAs === 'Drop-down list' → Dropdown component
|
|
|
80
82
|
### Subsection: Search box mode (`displayAs === 'Search box'`)
|
|
81
83
|
|
|
82
84
|
Render `AutoComplete` with hardcoded columns for operator search:
|
|
85
|
+
|
|
83
86
|
```typescript
|
|
84
87
|
columns = [
|
|
85
88
|
{ value: 'pyUserName', display: 'true', useForSearch: true, primary: 'true' },
|
|
86
|
-
{
|
|
87
|
-
|
|
89
|
+
{
|
|
90
|
+
value: 'pyUserIdentifier',
|
|
91
|
+
setProperty: 'Associated property',
|
|
92
|
+
key: 'true',
|
|
93
|
+
display: 'true',
|
|
94
|
+
secondary: 'true',
|
|
95
|
+
useForSearch: 'true',
|
|
96
|
+
},
|
|
97
|
+
];
|
|
88
98
|
```
|
|
99
|
+
|
|
89
100
|
Props: `datasource={OPERATORS_DP}`, `listType='datapage'`, `value={userId}`, plus label/placeholder/readOnly/disabled/required/helperText/validatemessage/hideLabel/onChange/additionalProps/testId.
|
|
90
101
|
|
|
91
102
|
### Subsection: Dropdown mode (`displayAs === 'Drop-down list'`)
|
|
92
103
|
|
|
93
104
|
Render `Dropdown` with:
|
|
105
|
+
|
|
94
106
|
- `datasource={dropDownDataSource}` (fetched user list)
|
|
95
107
|
- `listType='associated'`
|
|
96
108
|
- `value={userId}`
|
|
@@ -99,6 +111,7 @@ Render `Dropdown` with:
|
|
|
99
111
|
### Subsection: Formatted text read-only (`readOnly && showAsFormattedText && userId`)
|
|
100
112
|
|
|
101
113
|
Render a label + name display:
|
|
114
|
+
|
|
102
115
|
```html
|
|
103
116
|
<div>
|
|
104
117
|
<caption-text>{label}</caption-text>
|
|
@@ -109,13 +122,14 @@ Render a label + name display:
|
|
|
109
122
|
### Re-render optimization
|
|
110
123
|
|
|
111
124
|
Export with `memo` using custom comparison `comparisonFn`:
|
|
125
|
+
|
|
112
126
|
```typescript
|
|
113
127
|
const comparisonFn = (prevProps, nextProps) =>
|
|
114
128
|
getUserId(prevProps.value) === getUserId(nextProps.value) &&
|
|
115
129
|
prevProps.validatemessage === nextProps.validatemessage &&
|
|
116
130
|
prevProps.required === nextProps.required &&
|
|
117
131
|
prevProps.disabled === nextProps.disabled &&
|
|
118
|
-
prevProps.readOnly === nextProps.readOnly
|
|
132
|
+
prevProps.readOnly === nextProps.readOnly;
|
|
119
133
|
```
|
|
120
134
|
|
|
121
135
|
`export default memo(UserReference, comparisonFn)`
|
|
@@ -123,6 +137,7 @@ const comparisonFn = (prevProps, nextProps) =>
|
|
|
123
137
|
## Display Mode Rendering
|
|
124
138
|
|
|
125
139
|
Uses resolved `userName` (not raw `value`):
|
|
140
|
+
|
|
126
141
|
- **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : label} value={userName || ''} />`
|
|
127
142
|
- **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : label} value={userName || ''} variant='stacked' />`
|
|
128
143
|
|
|
@@ -131,20 +146,28 @@ Uses resolved `userName` (not raw `value`):
|
|
|
131
146
|
## Visual Specifications
|
|
132
147
|
|
|
133
148
|
The visual appearance is determined by the child component rendered:
|
|
149
|
+
|
|
134
150
|
- **Search box**: Same as `AutoComplete` — combobox input with outlined border, floating label
|
|
135
151
|
- **Dropdown**: Same as `Dropdown` — select field with outlined border, floating label
|
|
136
152
|
- **Formatted text read-only**:
|
|
137
153
|
|
|
138
|
-
| Property | Value
|
|
139
|
-
|
|
140
|
-
| Label
|
|
141
|
-
| Name
|
|
142
|
-
| Spacing
|
|
154
|
+
| Property | Value |
|
|
155
|
+
| -------- | --------------------------------------------------------- |
|
|
156
|
+
| Label | Caption-size text (small, secondary color) above the name |
|
|
157
|
+
| Name | Body text (normal size) |
|
|
158
|
+
| Spacing | Standard form field spacing |
|
|
143
159
|
|
|
144
160
|
**CSS-only for formatted text:**
|
|
161
|
+
|
|
145
162
|
```css
|
|
146
|
-
.user-reference-label {
|
|
147
|
-
|
|
163
|
+
.user-reference-label {
|
|
164
|
+
font-size: 0.75rem;
|
|
165
|
+
color: rgba(0, 0, 0, 0.6);
|
|
166
|
+
margin-bottom: 4px;
|
|
167
|
+
}
|
|
168
|
+
.user-reference-name {
|
|
169
|
+
font-size: 1rem;
|
|
170
|
+
}
|
|
148
171
|
```
|
|
149
172
|
|
|
150
173
|
## Edge Cases & Special Logic
|
|
@@ -172,9 +195,9 @@ The visual appearance is determined by the child component rendered:
|
|
|
172
195
|
|
|
173
196
|
Listed design systems are examples only.
|
|
174
197
|
|
|
175
|
-
| Mode
|
|
176
|
-
|
|
177
|
-
| Search box
|
|
178
|
-
| Drop-down list
|
|
179
|
-
| Formatted text read-only | Label + text display
|
|
180
|
-
| Display mode
|
|
198
|
+
| Mode | Underlying control |
|
|
199
|
+
| ------------------------ | --------------------------------- |
|
|
200
|
+
| Search box | AutoComplete (combobox/typeahead) |
|
|
201
|
+
| Drop-down list | Dropdown (select) |
|
|
202
|
+
| Formatted text read-only | Label + text display |
|
|
203
|
+
| Display mode | FieldValueList |
|
|
@@ -24,6 +24,7 @@ npm run build
|
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
### What to check:
|
|
27
|
+
|
|
27
28
|
- Zero TypeScript errors
|
|
28
29
|
- Zero build warnings related to missing imports
|
|
29
30
|
- Output bundle is generated
|
|
@@ -38,6 +39,7 @@ npm run dev
|
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
### What to verify:
|
|
42
|
+
|
|
41
43
|
1. App loads without console errors
|
|
42
44
|
2. "Create Case" button appears after auth
|
|
43
45
|
3. Clicking "Create Case" renders the form
|
|
@@ -50,14 +52,14 @@ npm run dev
|
|
|
50
52
|
|
|
51
53
|
## Common Issues
|
|
52
54
|
|
|
53
|
-
| Symptom
|
|
54
|
-
|
|
55
|
-
| "X is not registered" console error
|
|
56
|
-
| Field value doesn't persist after blur
|
|
57
|
-
| Read-only view shows nothing
|
|
58
|
-
| TypeScript error on `getPConnect`
|
|
59
|
-
| Build fails on CSS import
|
|
60
|
-
| "Cannot read property of undefined" on theme | Design system provider missing
|
|
55
|
+
| Symptom | Cause | Fix |
|
|
56
|
+
| -------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
57
|
+
| "X is not registered" console error | Component missing from `component-map.ts` | Add the import + map entry |
|
|
58
|
+
| Field value doesn't persist after blur | `handleEvent` not called on blur | Add `onBlur` handler calling `handleEvent(actions, 'changeNblur', propName, value)` |
|
|
59
|
+
| Read-only view shows nothing | Missing `displayMode` handling | Add the `DISPLAY_ONLY` / `STACKED_LARGE_VAL` checks |
|
|
60
|
+
| TypeScript error on `getPConnect` | Wrong props interface | Extend `PConnFieldProps` or `PConnProps` from `@pega/sdk-react` |
|
|
61
|
+
| Build fails on CSS import | Missing CSS loader config | Ensure Vite config handles `.css` imports |
|
|
62
|
+
| "Cannot read property of undefined" on theme | Design system provider missing | Wrap app in the design system's ThemeProvider/Provider |
|
|
61
63
|
|
|
62
64
|
---
|
|
63
65
|
|
|
@@ -99,6 +99,7 @@ export default function TwoColumn(props: PropsWithChildren<TwoColumnProps>) {
|
|
|
99
99
|
**2. If the chosen design system is not listed** — use the **component purpose** description to identify the appropriate DS layout primitive (grid, flex, columns).
|
|
100
100
|
|
|
101
101
|
**3. Discover the API from installed packages** — confirm layout component names and props from `.d.ts` before writing JSX:
|
|
102
|
+
|
|
102
103
|
```bash
|
|
103
104
|
find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Grid\|Columns\|Flex" | head -5
|
|
104
105
|
grep -A 30 "interface.*Props" <path-to-file>
|
|
@@ -106,11 +107,11 @@ grep -A 30 "interface.*Props" <path-to-file>
|
|
|
106
107
|
|
|
107
108
|
**4. Column ratio mapping** — the `templateCol` prop (e.g., `'2fr 1fr'`) gives you fractional widths. Map to your DS's column system:
|
|
108
109
|
|
|
109
|
-
| `templateCol` | Fraction
|
|
110
|
-
|
|
111
|
-
| `'1fr 1fr'`
|
|
112
|
-
| `'2fr 1fr'`
|
|
113
|
-
| `'1fr 2fr'`
|
|
110
|
+
| `templateCol` | Fraction | MUI 12-col | CSS `grid-template-columns` |
|
|
111
|
+
| ------------- | --------- | ---------- | --------------------------- |
|
|
112
|
+
| `'1fr 1fr'` | 50% / 50% | 6 / 6 | `1fr 1fr` |
|
|
113
|
+
| `'2fr 1fr'` | 67% / 33% | 8 / 4 | `2fr 1fr` |
|
|
114
|
+
| `'1fr 2fr'` | 33% / 67% | 4 / 8 | `1fr 2fr` |
|
|
114
115
|
|
|
115
116
|
**5. Responsive behavior** — on mobile, both columns must stack to full width. Use your DS's responsive breakpoint props or a CSS media query.
|
|
116
117
|
|
|
@@ -198,9 +199,7 @@ import createPConnectComponent from '../../helpers/react_pconnect';
|
|
|
198
199
|
const children = getPConnect().getChildren();
|
|
199
200
|
|
|
200
201
|
// Render each child through the PConnect bridge
|
|
201
|
-
children.map((child, i) =>
|
|
202
|
-
createElement(createPConnectComponent(), { ...child, key: `child-${i}` }),
|
|
203
|
-
);
|
|
202
|
+
children.map((child, i) => createElement(createPConnectComponent(), { ...child, key: `child-${i}` }));
|
|
204
203
|
```
|
|
205
204
|
|
|
206
205
|
### 3. State-connected children (DefaultForm pattern)
|
|
@@ -18,11 +18,11 @@ Renders a multi-section advanced search form where search fields are organized i
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `dataPageName` | `string`
|
|
24
|
-
| `parameters`
|
|
25
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| -------------- | ---------- | -------- | ---------------------------------- |
|
|
23
|
+
| `dataPageName` | `string` | Yes | Data page for search results |
|
|
24
|
+
| `parameters` | `object` | No | Parameters passed to the data page |
|
|
25
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
26
26
|
|
|
27
27
|
## Behavioral Contract
|
|
28
28
|
|
|
@@ -42,9 +42,12 @@ Renders a multi-section advanced search form where search fields are organized i
|
|
|
42
42
|
### Context (`DataReferenceAdvancedSearchContext`)
|
|
43
43
|
|
|
44
44
|
Provides shared config to `SearchGroups`:
|
|
45
|
+
|
|
45
46
|
```tsx
|
|
46
47
|
<DataReferenceAdvancedSearchContext.Provider value={{ dataPageName, parameters, getPConnect }}>
|
|
47
|
-
{searchGroups.map((group) =>
|
|
48
|
+
{searchGroups.map((group) => (
|
|
49
|
+
<SearchGroups key={group.label} group={group} />
|
|
50
|
+
))}
|
|
48
51
|
</DataReferenceAdvancedSearchContext.Provider>
|
|
49
52
|
```
|
|
50
53
|
|
|
@@ -66,13 +69,14 @@ Renders a single search group section: a heading + a list of editable search fie
|
|
|
66
69
|
|
|
67
70
|
### Props
|
|
68
71
|
|
|
69
|
-
| Prop
|
|
70
|
-
|
|
72
|
+
| Prop | Type | Description |
|
|
73
|
+
| ------- | -------- | ---------------------------------- |
|
|
71
74
|
| `group` | `object` | `{ label: string, fields: array }` |
|
|
72
75
|
|
|
73
76
|
### Behavioral Contract
|
|
74
77
|
|
|
75
78
|
For each field in `group.fields`:
|
|
79
|
+
|
|
76
80
|
1. Get `firstChildPConnect = getPConnect().getChildren()[0]`.
|
|
77
81
|
2. Create an editable field component: `firstChildPConnect.createComponent({ type: field.type, config: { ...field.config } })`.
|
|
78
82
|
3. Render the created component alongside a `<SearchGroups>` label row.
|
|
@@ -94,18 +98,19 @@ For each field in `group.fields`:
|
|
|
94
98
|
|
|
95
99
|
### AdvancedSearch Container
|
|
96
100
|
|
|
97
|
-
| Element
|
|
98
|
-
|
|
101
|
+
| Element | Description |
|
|
102
|
+
| --------------- | --------------------------------------- |
|
|
99
103
|
| Outer container | Vertical stack of search group sections |
|
|
100
104
|
|
|
101
105
|
### SearchGroups Section
|
|
102
106
|
|
|
103
|
-
| Element
|
|
104
|
-
|
|
105
|
-
| Group heading | `<h4>` with group label
|
|
106
|
-
| Field rows
|
|
107
|
+
| Element | Description |
|
|
108
|
+
| ------------- | ------------------------------------- |
|
|
109
|
+
| Group heading | `<h4>` with group label |
|
|
110
|
+
| Field rows | Each field rendered as a form control |
|
|
107
111
|
|
|
108
112
|
**CSS-only implementation notes:**
|
|
113
|
+
|
|
109
114
|
- Outer container: `display: flex; flex-direction: column; gap: 1.5rem`.
|
|
110
115
|
- Group section: `display: flex; flex-direction: column; gap: 0.75rem`.
|
|
111
116
|
- Group heading: `font-size: 1rem; font-weight: 600; margin-bottom: 0.25rem`.
|
|
@@ -130,15 +135,16 @@ For each field in `group.fields`:
|
|
|
130
135
|
|
|
131
136
|
Listed design systems are examples only.
|
|
132
137
|
|
|
133
|
-
| Design System
|
|
134
|
-
|
|
135
|
-
| Default (CSS only) | `<h4>`
|
|
136
|
-
| MUI
|
|
137
|
-
| Ant Design
|
|
138
|
-
| Chakra UI
|
|
139
|
-
| Shadcn/ui
|
|
138
|
+
| Design System | Group Heading | Field Layout |
|
|
139
|
+
| ------------------ | ------------------------------ | ------------------------------ |
|
|
140
|
+
| Default (CSS only) | `<h4>` | CSS grid 2-col (label + input) |
|
|
141
|
+
| MUI | `<Typography variant='h6'>` | `<Grid container>` |
|
|
142
|
+
| Ant Design | `<Typography.Title level={5}>` | `<Form.Item>` |
|
|
143
|
+
| Chakra UI | `<Heading size='sm'>` | `<FormControl>` rows |
|
|
144
|
+
| Shadcn/ui | `<h4>` or `<Label>` | Tailwind grid |
|
|
140
145
|
|
|
141
146
|
When implementing in a specific design system:
|
|
147
|
+
|
|
142
148
|
- `DataReferenceAdvancedSearchContext` must be provided — `SearchGroups` consumes it via `useContext`
|
|
143
149
|
- Field deduplication by `field.value` must happen before rendering
|
|
144
150
|
- `createComponent` creates live editable fields — render via `createElement(PConnectComponent, fieldConfig)`
|