@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,14 +18,14 @@ The outermost container for the Pega SDK React app. Determines whether the app i
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `pages`
|
|
24
|
-
| `caseTypes`
|
|
25
|
-
| `portalName`
|
|
26
|
-
| `displayName` | `string`
|
|
27
|
-
| `getPConnect` | `function`
|
|
28
|
-
| `children`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------- | ----------- | -------- | ------------------------------------------------------------ |
|
|
23
|
+
| `pages` | `array` | Yes | Array of portal page objects `{ name, pyLabel, linkUrl }` |
|
|
24
|
+
| `caseTypes` | `array` | No | Fallback case types (overridden by data page fetch if empty) |
|
|
25
|
+
| `portalName` | `string` | Yes | Portal identifier — determines WSS vs standard rendering |
|
|
26
|
+
| `displayName` | `string` | No | Operator display name for avatar |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
|
+
| `children` | `ReactNode` | Yes | Main content area |
|
|
29
29
|
|
|
30
30
|
## Behavioral Contract
|
|
31
31
|
|
|
@@ -80,6 +80,7 @@ The outermost container for the Pega SDK React app. Determines whether the app i
|
|
|
80
80
|
## Visual Specifications
|
|
81
81
|
|
|
82
82
|
**CSS-only implementation notes:**
|
|
83
|
+
|
|
83
84
|
- Shell wrapper: `display: flex; flex-direction: column; height: 100vh`.
|
|
84
85
|
- Nav bar: `flex: 0 0 auto` (fixed height).
|
|
85
86
|
- Alert banner: `flex: 0 0 auto` (shown below nav, pushes content down).
|
|
@@ -108,15 +109,16 @@ The outermost container for the Pega SDK React app. Determines whether the app i
|
|
|
108
109
|
|
|
109
110
|
Listed design systems are examples only.
|
|
110
111
|
|
|
111
|
-
| Design System
|
|
112
|
-
|
|
113
|
-
| Default (CSS only) | `<header>` + custom nav
|
|
114
|
-
| MUI
|
|
115
|
-
| Ant Design
|
|
116
|
-
| Chakra UI
|
|
117
|
-
| Shadcn/ui
|
|
112
|
+
| Design System | Nav Bar | Alert Banner | Shell Layout |
|
|
113
|
+
| ------------------ | ------------------------ | -------------------- | --------------------------------------------- |
|
|
114
|
+
| Default (CSS only) | `<header>` + custom nav | `<div role='alert'>` | CSS flexbox column |
|
|
115
|
+
| MUI | `<AppBar>` + `<Toolbar>` | `<Alert>` | `<Box display='flex' flexDirection='column'>` |
|
|
116
|
+
| Ant Design | `<Layout.Header>` | `<Alert>` | `<Layout>` |
|
|
117
|
+
| Chakra UI | `<Box as='header'>` | `<Alert>` | `<Flex direction='column'>` |
|
|
118
|
+
| Shadcn/ui | Custom header | `<Alert>` | Tailwind `flex flex-col h-screen` |
|
|
118
119
|
|
|
119
120
|
When implementing in a specific design system:
|
|
121
|
+
|
|
120
122
|
- WSS vs portal detection must remain — the nav bar component differs for each
|
|
121
123
|
- Logo URL must be loaded asynchronously from `PCore.getAssetLoader()`
|
|
122
124
|
- `NavContext.Provider` must wrap children so descendant nav-aware components can access links
|
|
@@ -18,16 +18,16 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `children`
|
|
24
|
-
| `layout`
|
|
25
|
-
| `heading`
|
|
26
|
-
| `message`
|
|
27
|
-
| `imageTheme`
|
|
28
|
-
| `backgroundImage` | `string`
|
|
29
|
-
| `backgroundColor` | `string`
|
|
30
|
-
| `tintImage`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ----------------- | ------------- | -------- | ---------------------------------------------------------------------------------------------- |
|
|
23
|
+
| `children` | `ReactNode[]` | Yes | At least 2 children — `[0]` → left (`a`) slot, `[1]` → right (`b`) slot |
|
|
24
|
+
| `layout` | `string` | No | Column layout variant for `Banner`: `'two-column'` (default), `'narrow-wide'`, `'wide-narrow'` |
|
|
25
|
+
| `heading` | `string` | No | Hero section heading text. Default `''` |
|
|
26
|
+
| `message` | `string` | No | Hero section message/subtitle. Default `''` |
|
|
27
|
+
| `imageTheme` | `string` | No | Banner image theme (e.g., `'light'`). Default `'light'` |
|
|
28
|
+
| `backgroundImage` | `string` | No | URL of the background image for the hero. Default `''` |
|
|
29
|
+
| `backgroundColor` | `string` | No | Background color for the hero. Default `''` |
|
|
30
|
+
| `tintImage` | `boolean` | No | Whether to tint the background image. Default `false` |
|
|
31
31
|
|
|
32
32
|
## Behavioral Contract
|
|
33
33
|
|
|
@@ -45,10 +45,12 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
|
|
|
45
45
|
This component has no independent visual output — all visual behavior is defined by the `Banner` DSE component. See [`design-system-extension-skills/Banner.md`](../design-system-extension-skills/Banner.md) for full visual specs.
|
|
46
46
|
|
|
47
47
|
Key visual behaviors inherited from `Banner`:
|
|
48
|
+
|
|
48
49
|
- Hero: full-width background image section, height `19rem`, centered title and message overlay
|
|
49
50
|
- Content area: two-column grid below the hero, column widths driven by `variant`/`layout`
|
|
50
51
|
|
|
51
52
|
**CSS-only implementation notes:**
|
|
53
|
+
|
|
52
54
|
- This template creates no CSS of its own — implement it as a pure pass-through to `Banner`.
|
|
53
55
|
- The `layout` prop maps directly to `Banner`'s `variant` prop.
|
|
54
56
|
- `heading` → `Banner.banner.title`, `message` → `Banner.banner.message`.
|
|
@@ -70,14 +72,15 @@ Key visual behaviors inherited from `Banner`:
|
|
|
70
72
|
|
|
71
73
|
Listed design systems are examples only.
|
|
72
74
|
|
|
73
|
-
| Design System
|
|
74
|
-
|
|
75
|
+
| Design System | Recommended Component |
|
|
76
|
+
| ------------------ | -------------------------------------------------------------------- |
|
|
75
77
|
| Default (CSS only) | Pass-through to `Banner` — implement Banner's CSS hero + grid layout |
|
|
76
|
-
| MUI
|
|
77
|
-
| Ant Design
|
|
78
|
-
| Chakra UI
|
|
79
|
-
| Shadcn/ui
|
|
78
|
+
| MUI | Pass-through to `Banner` (MUI-based) |
|
|
79
|
+
| Ant Design | Pass-through to `Banner` (Ant-based) |
|
|
80
|
+
| Chakra UI | Pass-through to `Banner` (Chakra-based) |
|
|
81
|
+
| Shadcn/ui | Pass-through to `Banner` (Shadcn-based) |
|
|
80
82
|
|
|
81
83
|
When implementing in a specific design system:
|
|
84
|
+
|
|
82
85
|
- `BannerPage` is always a thin wrapper — implement `Banner` first, then `BannerPage` simply delegates to it
|
|
83
86
|
- Prop mapping: `layout` → `variant`, `heading` → `banner.title`, `message` → `banner.message`, `backgroundImage` → `banner.backgroundImage`
|
|
@@ -18,12 +18,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `children`
|
|
24
|
-
| `arPrimaryFields`
|
|
25
|
-
| `arSecondaryFields` | `array`
|
|
26
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------------- | ------------- | -------- | ------------------------------------------------------- |
|
|
23
|
+
| `children` | `ReactNode[]` | No | Region children when fields come from PConnect metadata |
|
|
24
|
+
| `arPrimaryFields` | `array` | No | Array of primary field objects (direct prop) |
|
|
25
|
+
| `arSecondaryFields` | `array` | No | Array of secondary field objects (direct prop) |
|
|
26
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
27
27
|
|
|
28
28
|
## Behavioral Contract
|
|
29
29
|
|
|
@@ -32,10 +32,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
|
|
|
32
32
|
Two modes — prefer direct props if provided:
|
|
33
33
|
|
|
34
34
|
**Mode A — Direct props:**
|
|
35
|
+
|
|
35
36
|
- `arPrimaryFields` and `arSecondaryFields` are passed directly.
|
|
36
37
|
- Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` to localize values.
|
|
37
38
|
|
|
38
39
|
**Mode B — Child extraction:**
|
|
40
|
+
|
|
39
41
|
- Extract primary and secondary regions from `children` by type/name matching.
|
|
40
42
|
- Primary region: first region child (or `type === 'Region' && name === 'Primary'`).
|
|
41
43
|
- Secondary region: second region child (or `type === 'Region' && name === 'Secondary'`).
|
|
@@ -45,6 +47,7 @@ Two modes — prefer direct props if provided:
|
|
|
45
47
|
### `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)`
|
|
46
48
|
|
|
47
49
|
Helper that:
|
|
50
|
+
|
|
48
51
|
1. Iterates each field in both arrays.
|
|
49
52
|
2. Localizes the field value via `PCore.getLocaleUtils().getLocaleValue(value, classID, value)`.
|
|
50
53
|
3. Returns `{ arPrimaryFields: localizedPrimary, arSecondaryFields: localizedSecondary }`.
|
|
@@ -52,6 +55,7 @@ Helper that:
|
|
|
52
55
|
### Render
|
|
53
56
|
|
|
54
57
|
Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
|
|
58
|
+
|
|
55
59
|
- `arPrimaryFields` — array of `{ name, value }` objects for primary display
|
|
56
60
|
- `arSecondaryFields` — array of `{ name, value, displayLabel }` objects for secondary display
|
|
57
61
|
|
|
@@ -62,6 +66,7 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
|
|
|
62
66
|
- Secondary fields: label + value pairs.
|
|
63
67
|
|
|
64
68
|
**CSS-only implementation notes (for `CaseSummaryFields` wrapper):**
|
|
69
|
+
|
|
65
70
|
- Container: `display: flex; flex-direction: column; gap: 8px`.
|
|
66
71
|
- Primary field value: `font-size: 1rem; font-weight: 600`.
|
|
67
72
|
- Secondary field row: `display: flex; gap: 4px; font-size: 0.875rem`.
|
|
@@ -86,15 +91,16 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
|
|
|
86
91
|
|
|
87
92
|
Listed design systems are examples only.
|
|
88
93
|
|
|
89
|
-
| Design System
|
|
90
|
-
|
|
91
|
-
| Default (CSS only) | Flexbox column with CSS-styled field rows
|
|
92
|
-
| MUI
|
|
93
|
-
| Ant Design
|
|
94
|
-
| Chakra UI
|
|
95
|
-
| Shadcn/ui
|
|
94
|
+
| Design System | Recommended Approach |
|
|
95
|
+
| ------------------ | -------------------------------------------------- |
|
|
96
|
+
| Default (CSS only) | Flexbox column with CSS-styled field rows |
|
|
97
|
+
| MUI | `<Typography>` variants for primary/secondary text |
|
|
98
|
+
| Ant Design | `<Descriptions>` with `bordered={false}` |
|
|
99
|
+
| Chakra UI | `<VStack>` with `<Text>` variants |
|
|
100
|
+
| Shadcn/ui | Custom `<dl>/<dt>/<dd>` or card |
|
|
96
101
|
|
|
97
102
|
When implementing in a specific design system:
|
|
103
|
+
|
|
98
104
|
- Always localize field values before display — use `PCore.getLocaleUtils().getLocaleValue()`
|
|
99
105
|
- `CaseSummaryFields` is a DSE component — implement it separately and call it from here
|
|
100
106
|
- Primary fields have no labels; secondary fields have labels
|
|
@@ -20,17 +20,18 @@ The primary case workspace template. Extracts named regions from PConnect childr
|
|
|
20
20
|
|
|
21
21
|
## Props
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `children`
|
|
26
|
-
| `displayOnlyFA` | `boolean`
|
|
27
|
-
| `getPConnect`
|
|
23
|
+
| Prop | Type | Required | Description |
|
|
24
|
+
| --------------- | ------------- | -------- | -------------------------------------------------------------- |
|
|
25
|
+
| `children` | `ReactNode[]` | Yes | Named region children (summary, stages, todo, utilities, tabs) |
|
|
26
|
+
| `displayOnlyFA` | `boolean` | No | If true, renders only the to-do region (focused action mode) |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
29
|
## Behavioral Contract
|
|
30
30
|
|
|
31
31
|
### Region Extraction
|
|
32
32
|
|
|
33
33
|
Use `getRawMetadata()` to access `children` with `type` and `name` metadata. Extract by:
|
|
34
|
+
|
|
34
35
|
- **Summary region:** `type === 'Region' && name === 'Summary'`
|
|
35
36
|
- **Stages region:** `type === 'Region' && name === 'Stages'`
|
|
36
37
|
- **ToDo region:** `type === 'Region' && name === 'ToDo'`
|
|
@@ -48,6 +49,7 @@ Render each region as a React child element using `createElement(PConnectCompone
|
|
|
48
49
|
### displayOnlyFA Mode
|
|
49
50
|
|
|
50
51
|
If `displayOnlyFA === true`:
|
|
52
|
+
|
|
51
53
|
- Render only the ToDo region, centered.
|
|
52
54
|
- Skip summary, stages, tabs, utilities rendering.
|
|
53
55
|
|
|
@@ -73,13 +75,14 @@ If `displayOnlyFA === true`:
|
|
|
73
75
|
ToDo
|
|
74
76
|
```
|
|
75
77
|
|
|
76
|
-
| Column | xs
|
|
77
|
-
|
|
78
|
-
| Left
|
|
79
|
-
| Center | 6
|
|
80
|
-
| Right
|
|
78
|
+
| Column | xs | Contents |
|
|
79
|
+
| ------ | --- | ------------------------------ |
|
|
80
|
+
| Left | 3 | Summary, Stages, ToDo regions |
|
|
81
|
+
| Center | 6 | Tabs region (deferred content) |
|
|
82
|
+
| Right | 3 | Utilities region |
|
|
81
83
|
|
|
82
84
|
**CSS-only implementation notes:**
|
|
85
|
+
|
|
83
86
|
- Outer grid: `display: grid; grid-template-columns: 25% 50% 25%; gap: 1rem`.
|
|
84
87
|
- Left column: `display: flex; flex-direction: column; gap: 0.5rem`.
|
|
85
88
|
- Center column: `overflow: hidden`.
|
|
@@ -104,10 +107,12 @@ If `displayOnlyFA === true`:
|
|
|
104
107
|
### ObjectPage
|
|
105
108
|
|
|
106
109
|
`ObjectPage` is registered as:
|
|
110
|
+
|
|
107
111
|
```tsx
|
|
108
112
|
// packages/sdk-react/src/components/template/ObjectPage/index.tsx
|
|
109
113
|
export { default } from '../CaseView';
|
|
110
114
|
```
|
|
115
|
+
|
|
111
116
|
- No separate implementation needed.
|
|
112
117
|
- In `component-map.ts`, register `ObjectPage` key pointing to the same component as `CaseView`.
|
|
113
118
|
|
|
@@ -117,15 +122,16 @@ export { default } from '../CaseView';
|
|
|
117
122
|
|
|
118
123
|
Listed design systems are examples only.
|
|
119
124
|
|
|
120
|
-
| Design System
|
|
121
|
-
|
|
122
|
-
| Default (CSS only) | CSS Grid 25/50/25
|
|
123
|
-
| MUI
|
|
124
|
-
| Ant Design
|
|
125
|
-
| Chakra UI
|
|
126
|
-
| Shadcn/ui
|
|
125
|
+
| Design System | Grid | Sidebar | Deferred Tabs |
|
|
126
|
+
| ------------------ | ----------------------------------------------------- | --------- | ------------------------------- |
|
|
127
|
+
| Default (CSS only) | CSS Grid 25/50/25 | `<aside>` | Intersection Observer lazy load |
|
|
128
|
+
| MUI | `<Grid container>` with `<Grid size={{ xs: 3/6/3 }}>` | `<Box>` | MUI `<Tabs>` + DeferLoad |
|
|
129
|
+
| Ant Design | `<Row><Col span={6/12/6}>` | `<Sider>` | `<Tabs>` lazy |
|
|
130
|
+
| Chakra UI | `<Grid templateColumns='1fr 2fr 1fr'>` | `<Box>` | Custom lazy tabs |
|
|
131
|
+
| Shadcn/ui | Tailwind `grid grid-cols-[1fr_2fr_1fr]` | `<aside>` | Custom |
|
|
127
132
|
|
|
128
133
|
When implementing in a specific design system:
|
|
134
|
+
|
|
129
135
|
- `displayOnlyFA` must completely bypass the grid — render only ToDo region
|
|
130
136
|
- Region extraction by metadata name is required — do not assume positional ordering
|
|
131
137
|
- Deferred loading is mandatory for performance — tab content must not all load at once
|
|
@@ -18,13 +18,13 @@ Renders a button that opens a dropdown menu containing all available case action
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `localActions`
|
|
24
|
-
| `processActions` | `array`
|
|
25
|
-
| `caseTypeID`
|
|
26
|
-
| `caseTypeName`
|
|
27
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ---------------- | ---------- | -------- | ---------------------------------------------- |
|
|
23
|
+
| `localActions` | `array` | No | Array of `{ ID, name }` local action objects |
|
|
24
|
+
| `processActions` | `array` | No | Array of `{ ID, name }` process action objects |
|
|
25
|
+
| `caseTypeID` | `string` | Yes | Case type identifier for label localization |
|
|
26
|
+
| `caseTypeName` | `string` | Yes | Case type display name for label localization |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
29
|
## Behavioral Contract
|
|
30
30
|
|
|
@@ -36,6 +36,7 @@ Renders a button that opens a dropdown menu containing all available case action
|
|
|
36
36
|
### Menu Items
|
|
37
37
|
|
|
38
38
|
The menu combines:
|
|
39
|
+
|
|
39
40
|
1. **Local actions** — each item triggers `getPConnect().getActionsApi().openLocalAction(action.ID, { caseID: getPConnect().getCaseInfo().getID() })`.
|
|
40
41
|
2. **Process actions** — each item triggers `getPConnect().getActionsApi().openProcessAction(action.ID, { ... })`.
|
|
41
42
|
|
|
@@ -44,9 +45,11 @@ If both groups exist, render a divider between them.
|
|
|
44
45
|
### Localized Action Labels
|
|
45
46
|
|
|
46
47
|
For localized case type context:
|
|
48
|
+
|
|
47
49
|
```
|
|
48
50
|
localeKey = `${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
|
|
49
51
|
```
|
|
52
|
+
|
|
50
53
|
Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, localeKey, action.name)`.
|
|
51
54
|
|
|
52
55
|
### Process Action Error Handling
|
|
@@ -65,21 +68,22 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
|
|
|
65
68
|
|
|
66
69
|
### Button
|
|
67
70
|
|
|
68
|
-
| Property | Value
|
|
69
|
-
|
|
70
|
-
| Label
|
|
71
|
-
| Variant
|
|
72
|
-
| Icon
|
|
71
|
+
| Property | Value |
|
|
72
|
+
| -------- | ------------------------------- |
|
|
73
|
+
| Label | Localized `"Actions"` |
|
|
74
|
+
| Variant | Outlined or secondary |
|
|
75
|
+
| Icon | Dropdown chevron or expand_more |
|
|
73
76
|
|
|
74
77
|
### Menu
|
|
75
78
|
|
|
76
|
-
| Property
|
|
77
|
-
|
|
78
|
-
| Position
|
|
79
|
-
| Divider
|
|
80
|
-
| Item height | Standard menu item height
|
|
79
|
+
| Property | Value |
|
|
80
|
+
| ----------- | --------------------------------------- |
|
|
81
|
+
| Position | Anchored below the button |
|
|
82
|
+
| Divider | Between local and process action groups |
|
|
83
|
+
| Item height | Standard menu item height |
|
|
81
84
|
|
|
82
85
|
**CSS-only implementation notes:**
|
|
86
|
+
|
|
83
87
|
- Button: `padding: 6px 12px; border: 1px solid var(--app-primary-color); border-radius: 4px; cursor: pointer`.
|
|
84
88
|
- Dropdown menu: `position: absolute; background: white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); border-radius: 4px; min-width: 160px; z-index: 1000`.
|
|
85
89
|
- Menu item: `padding: 8px 16px; cursor: pointer`. Hover: `background: var(--hover-bg)`.
|
|
@@ -87,11 +91,11 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
|
|
|
87
91
|
|
|
88
92
|
### Snackbar Toast
|
|
89
93
|
|
|
90
|
-
| Property
|
|
91
|
-
|
|
92
|
-
| Position
|
|
93
|
-
| Auto-hide | 3000ms
|
|
94
|
-
| Severity
|
|
94
|
+
| Property | Value |
|
|
95
|
+
| --------- | ----------------------------- |
|
|
96
|
+
| Position | Bottom-center or bottom-right |
|
|
97
|
+
| Auto-hide | 3000ms |
|
|
98
|
+
| Severity | Error (red) |
|
|
95
99
|
|
|
96
100
|
## Edge Cases & Special Logic
|
|
97
101
|
|
|
@@ -112,15 +116,16 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
|
|
|
112
116
|
|
|
113
117
|
Listed design systems are examples only.
|
|
114
118
|
|
|
115
|
-
| Design System
|
|
116
|
-
|
|
117
|
-
| Default (CSS only) | `<button>` + custom dropdown
|
|
118
|
-
| MUI
|
|
119
|
-
| Ant Design
|
|
120
|
-
| Chakra UI
|
|
121
|
-
| Shadcn/ui
|
|
119
|
+
| Design System | Button | Menu | Toast |
|
|
120
|
+
| ------------------ | -------------------------------------- | -------------------- | ----------------------------- |
|
|
121
|
+
| Default (CSS only) | `<button>` + custom dropdown | `<ul>/<li>` with CSS | Custom toast overlay |
|
|
122
|
+
| MUI | `<Button>` + `<Menu>/<MenuItem>` | MUI Menu | `<Snackbar>/<Alert>` |
|
|
123
|
+
| Ant Design | `<Dropdown menu={{ items }}>` | Ant Dropdown | `message.error()` |
|
|
124
|
+
| Chakra UI | `<Menu>/<MenuButton>/<MenuList>` | Chakra Menu | `useToast()` |
|
|
125
|
+
| Shadcn/ui | `<DropdownMenu>/<DropdownMenuTrigger>` | Shadcn DropdownMenu | `<Toaster>` + `toast.error()` |
|
|
122
126
|
|
|
123
127
|
When implementing in a specific design system:
|
|
128
|
+
|
|
124
129
|
- Local vs process action distinction must be preserved — they call different APIs
|
|
125
130
|
- Localized labels via `localeKey = ${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
|
|
126
131
|
- Process action errors must be surfaced via a dismissible toast
|
|
@@ -18,10 +18,10 @@ Displayed after a case or assignment is submitted. Shows the confirmation view (
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `children`
|
|
24
|
-
| `getPConnect` | `function`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------- | ------------- | -------- | ----------------------------------------------------------------------------- |
|
|
23
|
+
| `children` | `ReactNode[]` | Yes | Region children: `[0]` = ToDo region, `[1]` = Details region (when available) |
|
|
24
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
25
25
|
|
|
26
26
|
## Behavioral Contract
|
|
27
27
|
|
|
@@ -56,13 +56,14 @@ Displayed after a case or assignment is submitted. Shows the confirmation view (
|
|
|
56
56
|
|
|
57
57
|
### Confirm View
|
|
58
58
|
|
|
59
|
-
| Element
|
|
60
|
-
|
|
61
|
-
| Confirmation header | Success icon + heading text
|
|
62
|
-
| Details section
|
|
63
|
-
| Done button
|
|
59
|
+
| Element | Description |
|
|
60
|
+
| ------------------- | --------------------------------------------- |
|
|
61
|
+
| Confirmation header | Success icon + heading text |
|
|
62
|
+
| Details section | Optional — rendered below confirmation header |
|
|
63
|
+
| Done button | Primary button, bottom of the form |
|
|
64
64
|
|
|
65
65
|
**CSS-only implementation notes:**
|
|
66
|
+
|
|
66
67
|
- Confirm view: `display: flex; flex-direction: column; align-items: center; gap: 1.5rem; padding: 2rem`.
|
|
67
68
|
- Success icon: large checkmark or success indicator, centered.
|
|
68
69
|
- Confirmation heading: `font-size: 1.5rem; font-weight: 600; text-align: center`.
|
|
@@ -93,15 +94,16 @@ Displayed after a case or assignment is submitted. Shows the confirmation view (
|
|
|
93
94
|
|
|
94
95
|
Listed design systems are examples only.
|
|
95
96
|
|
|
96
|
-
| Design System
|
|
97
|
-
|
|
98
|
-
| Default (CSS only) | CSS checkmark SVG
|
|
99
|
-
| MUI
|
|
100
|
-
| Ant Design
|
|
101
|
-
| Chakra UI
|
|
102
|
-
| Shadcn/ui
|
|
97
|
+
| Design System | Success Indicator | Done Button | Layout |
|
|
98
|
+
| ------------------ | ------------------------------ | ------------------------------ | --------------------------------------------- |
|
|
99
|
+
| Default (CSS only) | CSS checkmark SVG | `<button class='primary'>` | Centered flexbox column |
|
|
100
|
+
| MUI | `<CheckCircleIcon>` | `<Button variant='contained'>` | `<Box display='flex' flexDirection='column'>` |
|
|
101
|
+
| Ant Design | `<Result status='success'>` | `<Button type='primary'>` | Ant Result component |
|
|
102
|
+
| Chakra UI | `<CheckCircleIcon>` + `<Text>` | `<Button colorScheme='blue'>` | `<VStack>` |
|
|
103
|
+
| Shadcn/ui | Custom icon + `<h2>` | `<Button>` | Tailwind centered div |
|
|
103
104
|
|
|
104
105
|
When implementing in a specific design system:
|
|
106
|
+
|
|
105
107
|
- Done button must check remaining `toDoAssignments` before deciding whether to show ToDo view or close
|
|
106
108
|
- `CLOSE_CONFIRM_VIEW` publish must happen only after confirming no assignments remain
|
|
107
109
|
- `showDetails` check must guard `children[1]` access
|
|
@@ -18,44 +18,45 @@ Renders a data reference field that can be displayed as a dropdown, autocomplete
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `label`
|
|
24
|
-
| `displayAs`
|
|
25
|
-
| `selectionMode`
|
|
26
|
-
| `displayMode`
|
|
27
|
-
| `readOnly`
|
|
28
|
-
| `ruleClass`
|
|
29
|
-
| `dataRelationship`
|
|
30
|
-
| `isDDSourceDeferred` | `boolean`
|
|
31
|
-
| `parameters`
|
|
32
|
-
| `allowSearch`
|
|
33
|
-
| `searchIcon`
|
|
34
|
-
| `numCols`
|
|
35
|
-
| `listType`
|
|
36
|
-
| `fieldMetadata`
|
|
37
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| -------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------ |
|
|
23
|
+
| `label` | `string` | Yes | Field label |
|
|
24
|
+
| `displayAs` | `string` | Yes | UI variant: `'dropdown'`, `'autocomplete'`, `'checkbox'`, `'radiobutton'`, `'listview'`, `'searchbox'` |
|
|
25
|
+
| `selectionMode` | `string` | Yes | `'single'` or `'multi'` |
|
|
26
|
+
| `displayMode` | `string` | No | `'DISPLAY_ONLY'` for read-only rendering |
|
|
27
|
+
| `readOnly` | `boolean` | No | Alternative read-only flag |
|
|
28
|
+
| `ruleClass` | `string` | Yes | Data page class reference |
|
|
29
|
+
| `dataRelationship` | `string` | No | Relationship type |
|
|
30
|
+
| `isDDSourceDeferred` | `boolean` | No | Whether data source is loaded asynchronously |
|
|
31
|
+
| `parameters` | `object` | No | Parameters passed to the data page for deferred sources |
|
|
32
|
+
| `allowSearch` | `boolean` | No | Show search input inside dropdown/autocomplete |
|
|
33
|
+
| `searchIcon` | `boolean` | No | Show search icon in the field |
|
|
34
|
+
| `numCols` | `string` | No | Column count for checkbox/radiobutton layouts: `'1'`, `'2'`, `'3'` |
|
|
35
|
+
| `listType` | `string` | No | `'associated'` or `'datapage'` |
|
|
36
|
+
| `fieldMetadata` | `object` | No | Extra field-level metadata |
|
|
37
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
38
38
|
|
|
39
39
|
## Behavioral Contract
|
|
40
40
|
|
|
41
41
|
### Read-Only Routing
|
|
42
42
|
|
|
43
43
|
If `displayMode === 'DISPLAY_ONLY'` or `readOnly === true`:
|
|
44
|
+
|
|
44
45
|
- `selectionMode === 'single'` → render `<SingleReferenceReadOnly />`.
|
|
45
46
|
- `selectionMode === 'multi'` → render `<MultiReferenceReadOnly />`.
|
|
46
47
|
- Both receive all relevant props plus `getPConnect`.
|
|
47
48
|
|
|
48
49
|
### Edit Routing (by `displayAs`)
|
|
49
50
|
|
|
50
|
-
| `displayAs`
|
|
51
|
-
|
|
52
|
-
| `'dropdown'`
|
|
51
|
+
| `displayAs` | Rendered component |
|
|
52
|
+
| ---------------- | ----------------------------------------- |
|
|
53
|
+
| `'dropdown'` | Registered `Dropdown` field component |
|
|
53
54
|
| `'autocomplete'` | Registered `AutoComplete` field component |
|
|
54
|
-
| `'checkbox'`
|
|
55
|
-
| `'radiobutton'`
|
|
56
|
-
| `'listview'`
|
|
57
|
-
| `'searchbox'`
|
|
58
|
-
| Default
|
|
55
|
+
| `'checkbox'` | Registered `CheckboxGroup` with `numCols` |
|
|
56
|
+
| `'radiobutton'` | Registered `RadioButtons` with `numCols` |
|
|
57
|
+
| `'listview'` | Inline `ListView` sub-component |
|
|
58
|
+
| `'searchbox'` | Inline `SearchForm` sub-component |
|
|
59
|
+
| Default | `Dropdown` |
|
|
59
60
|
|
|
60
61
|
### Deferred Data Source (`isDDSourceDeferred === true`)
|
|
61
62
|
|
|
@@ -71,6 +72,7 @@ If `displayMode === 'DISPLAY_ONLY'` or `readOnly === true`:
|
|
|
71
72
|
### SearchForm Sub-Component
|
|
72
73
|
|
|
73
74
|
When `displayAs === 'searchbox'`, renders an inline `<SearchForm>` sub-component that:
|
|
75
|
+
|
|
74
76
|
1. Shows a text input with search icon.
|
|
75
77
|
2. On submit: calls `getPConnect().getListActions().search(searchText)`.
|
|
76
78
|
3. Renders the search results list below the input using `buildView`.
|
|
@@ -78,6 +80,7 @@ When `displayAs === 'searchbox'`, renders an inline `<SearchForm>` sub-component
|
|
|
78
80
|
## Visual Specifications
|
|
79
81
|
|
|
80
82
|
**CSS-only implementation notes:**
|
|
83
|
+
|
|
81
84
|
- Wrapper: `display: flex; flex-direction: column; gap: 4px`.
|
|
82
85
|
- Label: `font-size: 0.875rem; font-weight: 500; margin-bottom: 4px`.
|
|
83
86
|
- Dropdown/Autocomplete: standard select input, full-width.
|
|
@@ -106,15 +109,16 @@ When `displayAs === 'searchbox'`, renders an inline `<SearchForm>` sub-component
|
|
|
106
109
|
|
|
107
110
|
Listed design systems are examples only.
|
|
108
111
|
|
|
109
|
-
| Design System
|
|
110
|
-
|
|
111
|
-
| Default (CSS only) | `<select>`
|
|
112
|
-
| MUI
|
|
113
|
-
| Ant Design
|
|
114
|
-
| Chakra UI
|
|
115
|
-
| Shadcn/ui
|
|
112
|
+
| Design System | Dropdown | Autocomplete | Checkbox Group | Radio Group |
|
|
113
|
+
| ------------------ | --------------------- | ---------------- | ------------------------------ | --------------------------- |
|
|
114
|
+
| Default (CSS only) | `<select>` | Custom combobox | `<input type='checkbox'>` list | `<input type='radio'>` list |
|
|
115
|
+
| MUI | `<Select>/<MenuItem>` | `<Autocomplete>` | `<FormGroup><Checkbox>` | `<RadioGroup><Radio>` |
|
|
116
|
+
| Ant Design | `<Select>` | `<AutoComplete>` | `<Checkbox.Group>` | `<Radio.Group>` |
|
|
117
|
+
| Chakra UI | `<Select>` | Custom | `<CheckboxGroup>` | `<RadioGroup>` |
|
|
118
|
+
| Shadcn/ui | `<Select>` + combobox | `<Combobox>` | custom | `<RadioGroup>` |
|
|
116
119
|
|
|
117
120
|
When implementing in a specific design system:
|
|
121
|
+
|
|
118
122
|
- Always check `displayMode`/`readOnly` first and route to read-only components before rendering editable variants
|
|
119
123
|
- Deferred loading must be handled — show skeleton/spinner until data is ready
|
|
120
124
|
- `numCols` applies to checkbox and radiobutton layouts only
|