@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
|
@@ -20,35 +20,36 @@ Renders a multi-value typeahead input where users can search and select multiple
|
|
|
20
20
|
|
|
21
21
|
## Props (component-specific)
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `getPConnect`
|
|
26
|
-
| `label`
|
|
27
|
-
| `placeholder`
|
|
28
|
-
| `referenceList`
|
|
29
|
-
| `selectionKey`
|
|
30
|
-
| `primaryField`
|
|
31
|
-
| `initialCaseClass`
|
|
32
|
-
| `selectionList`
|
|
33
|
-
| `datasource`
|
|
34
|
-
| `columns`
|
|
35
|
-
| `listType`
|
|
36
|
-
| `isGroupData`
|
|
37
|
-
| `groupDataSource`
|
|
38
|
-
| `groupColumnsConfig`
|
|
39
|
-
| `referenceType`
|
|
40
|
-
| `secondaryFields`
|
|
41
|
-
| `showSecondaryInSearchOnly` | `boolean`
|
|
42
|
-
| `parameters`
|
|
43
|
-
| `matchPosition`
|
|
44
|
-
| `maxResultsDisplay`
|
|
45
|
-
| `value`
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
| --------------------------- | ---------- | ------------ | ----------------------------------------------------------- |
|
|
25
|
+
| `getPConnect` | `function` | — | PConnect accessor |
|
|
26
|
+
| `label` | `string` | — | Field label |
|
|
27
|
+
| `placeholder` | `string` | — | Input placeholder |
|
|
28
|
+
| `referenceList` | `any[]` | — | Currently selected items from embedded page list |
|
|
29
|
+
| `selectionKey` | `string` | — | Property path used as the selection key |
|
|
30
|
+
| `primaryField` | `string` | — | Property path for the primary display field |
|
|
31
|
+
| `initialCaseClass` | `string` | — | Case class for context in search |
|
|
32
|
+
| `selectionList` | `string` | — | Property path of the reference list |
|
|
33
|
+
| `datasource` | `any[]` | `[]` | Flat data source |
|
|
34
|
+
| `columns` | `any[]` | `[{}]` | Column config for key/value extraction |
|
|
35
|
+
| `listType` | `string` | `''` | `'associated'`, `'datapage'`, `'promptList'`, `'localList'` |
|
|
36
|
+
| `isGroupData` | `boolean` | `false` | Whether to use grouped/hierarchical data |
|
|
37
|
+
| `groupDataSource` | `any[]` | `[]` | Data source for grouped display |
|
|
38
|
+
| `groupColumnsConfig` | `any[]` | `[{}]` | Column config for group display |
|
|
39
|
+
| `referenceType` | `string` | — | `'Case'` or `'Data'` |
|
|
40
|
+
| `secondaryFields` | `any` | — | Additional secondary display fields |
|
|
41
|
+
| `showSecondaryInSearchOnly` | `boolean` | `false` | Show secondary fields only during search |
|
|
42
|
+
| `parameters` | `object` | `{}` | Data page query parameters |
|
|
43
|
+
| `matchPosition` | `string` | `'contains'` | Search match position (`'contains'`, `'startsWith'`) |
|
|
44
|
+
| `maxResultsDisplay` | `string` | — | Max results to display (`'100'` default) |
|
|
45
|
+
| `value` | `any` | — | Current value |
|
|
46
46
|
|
|
47
47
|
## Behavioral Contract
|
|
48
48
|
|
|
49
49
|
### Reference List Mode (when `referenceList.length > 0`)
|
|
50
50
|
|
|
51
51
|
When `referenceList` has items, override datasource and columns:
|
|
52
|
+
|
|
52
53
|
- `datasource = referenceList`
|
|
53
54
|
- Build `columns`: primary display field, key field, secondary columns (from `secondaryFields` or default to `selectionKey`)
|
|
54
55
|
- If `referenceType === 'Case'`: append secondary columns
|
|
@@ -56,6 +57,7 @@ When `referenceList` has items, override datasource and columns:
|
|
|
56
57
|
### Data Config
|
|
57
58
|
|
|
58
59
|
Build a `dataConfig` object (memoized with deep comparison) containing:
|
|
60
|
+
|
|
59
61
|
- `dataSource`, `groupDataSource`, `isGroupData`, `showSecondaryInSearchOnly`, `parameters`, `matchPosition`, `listType`, `maxResultsDisplay`
|
|
60
62
|
- `columns`: preprocessed (strip leading `.` from value fields)
|
|
61
63
|
- `groupColumnsConfig`: preprocessed
|
|
@@ -69,6 +71,7 @@ Build a `dataConfig` object (memoized with deep comparison) containing:
|
|
|
69
71
|
### Data API Initialization
|
|
70
72
|
|
|
71
73
|
In `useEffect` watching `dataConfig` (non-associated lists):
|
|
74
|
+
|
|
72
75
|
```
|
|
73
76
|
PCore.getDataApi().init(dataConfig, contextName).then(dataObj => {
|
|
74
77
|
dataApiObj.current = dataObj
|
|
@@ -81,6 +84,7 @@ PCore.getDataApi().init(dataConfig, contextName).then(dataObj => {
|
|
|
81
84
|
### Search
|
|
82
85
|
|
|
83
86
|
`getCaseListBasedOnParams(searchText, group, selectedRows, currentItemsTree, isTriggeredFromSearch)`:
|
|
87
|
+
|
|
84
88
|
1. If `referenceList.length > 0`: get currently selected rows from `listActions.getSelectedRows(true)`, map to `{id, primary}` format, update `selectedItems` state.
|
|
85
89
|
2. Build `initalItemsTree`: use fresh data if `isTriggeredFromSearch || !currentItemsTree`, else current.
|
|
86
90
|
3. Call `doSearch(...)` to get filtered results.
|
|
@@ -96,6 +100,7 @@ PCore.getDataApi().init(dataConfig, contextName).then(dataObj => {
|
|
|
96
100
|
### Selection Changes (`handleChange`)
|
|
97
101
|
|
|
98
102
|
When selection changes (user adds/removes item):
|
|
103
|
+
|
|
99
104
|
1. Mark all currently selected items as `selected: true`.
|
|
100
105
|
2. Determine if this was an add or remove.
|
|
101
106
|
3. Update `itemsTree` selections in-place.
|
|
@@ -115,23 +120,42 @@ No explicit `displayMode` handling in the reference implementation — Multisele
|
|
|
115
120
|
|
|
116
121
|
## Visual Specifications
|
|
117
122
|
|
|
118
|
-
| Property
|
|
119
|
-
|
|
120
|
-
| Width
|
|
121
|
-
| Size
|
|
122
|
-
| Variant
|
|
123
|
-
| Multiple values | Tags/chips shown inside the input box
|
|
124
|
-
| Dropdown
|
|
123
|
+
| Property | Value |
|
|
124
|
+
| --------------- | ---------------------------------------------------------------------- |
|
|
125
|
+
| Width | 100% |
|
|
126
|
+
| Size | Small |
|
|
127
|
+
| Variant | Outlined |
|
|
128
|
+
| Multiple values | Tags/chips shown inside the input box |
|
|
129
|
+
| Dropdown | Shows filtered options with checkboxes |
|
|
125
130
|
| Close on select | Off (`disableCloseOnSelect`) — user can select multiple before closing |
|
|
126
|
-
| Option label
|
|
127
|
-
| Placeholder
|
|
128
|
-
| Error state
|
|
131
|
+
| Option label | `option.primary` field |
|
|
132
|
+
| Placeholder | From `placeholder` prop |
|
|
133
|
+
| Error state | Red border + red helper text |
|
|
129
134
|
|
|
130
135
|
**CSS-only notes:**
|
|
136
|
+
|
|
131
137
|
```css
|
|
132
|
-
.multiselect-tags {
|
|
133
|
-
|
|
134
|
-
|
|
138
|
+
.multiselect-tags {
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-wrap: wrap;
|
|
141
|
+
gap: 4px;
|
|
142
|
+
padding: 4px;
|
|
143
|
+
border: 1px solid rgba(0, 0, 0, 0.23);
|
|
144
|
+
border-radius: 4px;
|
|
145
|
+
}
|
|
146
|
+
.multiselect-tag {
|
|
147
|
+
background: rgba(0, 0, 0, 0.08);
|
|
148
|
+
border-radius: 16px;
|
|
149
|
+
padding: 2px 8px;
|
|
150
|
+
font-size: 0.8125rem;
|
|
151
|
+
display: flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
gap: 4px;
|
|
154
|
+
}
|
|
155
|
+
.multiselect-tag-delete {
|
|
156
|
+
cursor: pointer;
|
|
157
|
+
font-size: 0.75rem;
|
|
158
|
+
}
|
|
135
159
|
```
|
|
136
160
|
|
|
137
161
|
## Edge Cases & Special Logic
|
|
@@ -156,9 +180,9 @@ No explicit `displayMode` handling in the reference implementation — Multisele
|
|
|
156
180
|
|
|
157
181
|
Listed design systems are examples only.
|
|
158
182
|
|
|
159
|
-
| Design System
|
|
160
|
-
|
|
161
|
-
| Default (CSS only) | Custom tag input + filterable dropdown list
|
|
162
|
-
| MUI
|
|
163
|
-
| Ant Design
|
|
164
|
-
| Chakra UI
|
|
183
|
+
| Design System | Recommended Component |
|
|
184
|
+
| ------------------ | ---------------------------------------------------- |
|
|
185
|
+
| Default (CSS only) | Custom tag input + filterable dropdown list |
|
|
186
|
+
| MUI | `<Autocomplete multiple disableCloseOnSelect>` |
|
|
187
|
+
| Ant Design | `<Select mode="multiple" showSearch>` |
|
|
188
|
+
| Chakra UI | Third-party multi-select (e.g., Chakra React Select) |
|
|
@@ -20,18 +20,18 @@ Does NOT render a UI control directly. Instead, it reads the raw metadata to det
|
|
|
20
20
|
|
|
21
21
|
> Uses `Omit<PConnFieldProps, 'value'>` — no direct `value` prop.
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `getPConnect`
|
|
26
|
-
| `displayMode`
|
|
27
|
-
| `allowAndPersistChangesInReviewMode` | `any`
|
|
28
|
-
| `targetObjectType`
|
|
29
|
-
| `mode`
|
|
30
|
-
| `parameters`
|
|
31
|
-
| `hideLabel`
|
|
32
|
-
| `inline`
|
|
33
|
-
| `showPromotedFilters`
|
|
34
|
-
| `additionalFields`
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
| ------------------------------------ | --------- | ------- | ---------------------------------------------------------------- |
|
|
25
|
+
| `getPConnect` | `any` | — | PConnect accessor |
|
|
26
|
+
| `displayMode` | `any` | — | Display mode |
|
|
27
|
+
| `allowAndPersistChangesInReviewMode` | `any` | `false` | Whether the reference can be edited while in review/display mode |
|
|
28
|
+
| `targetObjectType` | `any` | — | `'case'` or `'data'` — determines `referenceType` |
|
|
29
|
+
| `mode` | `string` | `''` | `'single'` or `'multi'` (SELECTION_MODE) |
|
|
30
|
+
| `parameters` | `object` | — | Data page query parameters |
|
|
31
|
+
| `hideLabel` | `boolean` | `false` | Whether to hide label |
|
|
32
|
+
| `inline` | `boolean` | `false` | Whether to render inline |
|
|
33
|
+
| `showPromotedFilters` | `boolean` | `false` | Show promoted filters in child |
|
|
34
|
+
| `additionalFields` | `any` | — | Additional fields for read-only display |
|
|
35
35
|
|
|
36
36
|
## Behavioral Contract
|
|
37
37
|
|
|
@@ -48,6 +48,7 @@ Does NOT render a UI control directly. Instead, it reads the raw metadata to det
|
|
|
48
48
|
|
|
49
49
|
**If `componentType === 'SemanticLink'` and `!canBeChangedInReviewMode`:**
|
|
50
50
|
Build a SemanticLink config from rawViewMetadata and call `getPConnect().createComponent({ type: 'SemanticLink', config: {...} })`. Config includes:
|
|
51
|
+
|
|
51
52
|
- `displayField` → `primaryField` and `text`
|
|
52
53
|
- `value` → `caseID`
|
|
53
54
|
- `resourceParams: { workID: value }`, `resourcePayload: { caseClassName: caseClass }`
|
|
@@ -55,6 +56,7 @@ Build a SemanticLink config from rawViewMetadata and call `getPConnect().createC
|
|
|
55
56
|
|
|
56
57
|
**If `isDisplayModeEnabled && !canBeChangedInReviewMode` (other types):**
|
|
57
58
|
Render `<SingleReferenceReadonly>` with config from `rawViewMetadata.config`, passing:
|
|
59
|
+
|
|
58
60
|
- `label`, `type`, `displayAs='readonly'`, `displayMode`, `referenceType`, `hideLabel`, `dataRelationshipContext`, `additionalFields`
|
|
59
61
|
|
|
60
62
|
### Subsection: Editable variants (including editable-in-review)
|
|
@@ -71,6 +73,7 @@ Render `<SingleReferenceReadonly>` with config from `rawViewMetadata.config`, pa
|
|
|
71
73
|
- If `!canBeChangedInReviewMode`: set `rawViewMetadata.config.displayMode = displayMode`
|
|
72
74
|
|
|
73
75
|
3. **Build fieldMetaData:**
|
|
76
|
+
|
|
74
77
|
```
|
|
75
78
|
fieldMetaData = { datasourceMetadata: { datasource: { parameters: {} } } }
|
|
76
79
|
```
|
|
@@ -100,6 +103,7 @@ Render `<SingleReferenceReadonly>` with config from `rawViewMetadata.config`, pa
|
|
|
100
103
|
### `onRecordChange` handler
|
|
101
104
|
|
|
102
105
|
Called when user selects a new value in editable/editable-in-review mode:
|
|
106
|
+
|
|
103
107
|
1. Build `refreshOptions = { autoDetectRefresh: true, propertyName: rawViewMetadata.config?.value }`
|
|
104
108
|
2. If `!canBeChangedInReviewMode || !pConn.getValue('__currentPageTabViewName')`: call `getPConnect().getActionsApi().refreshCaseView(caseKey, viewName, pgRef, refreshOptions)`.
|
|
105
109
|
3. Extract `propValue = event?.id || event?.target?.value`.
|
|
@@ -121,6 +125,7 @@ Display mode is passed through to the child component — the child (Dropdown, A
|
|
|
121
125
|
## Visual Specifications
|
|
122
126
|
|
|
123
127
|
ObjectReference itself renders a minimal grid container:
|
|
128
|
+
|
|
124
129
|
```
|
|
125
130
|
<Grid container>
|
|
126
131
|
<Grid>{recreatedFirstChild}</Grid>
|
|
@@ -130,8 +135,12 @@ ObjectReference itself renders a minimal grid container:
|
|
|
130
135
|
The visual appearance is entirely determined by the child component being rendered. No additional styling is applied by `ObjectReference` itself.
|
|
131
136
|
|
|
132
137
|
**CSS-only implementation:**
|
|
138
|
+
|
|
133
139
|
```css
|
|
134
|
-
.object-reference-container {
|
|
140
|
+
.object-reference-container {
|
|
141
|
+
display: grid;
|
|
142
|
+
width: 100%;
|
|
143
|
+
}
|
|
135
144
|
```
|
|
136
145
|
|
|
137
146
|
## Edge Cases & Special Logic
|
|
@@ -156,9 +165,9 @@ The visual appearance is entirely determined by the child component being render
|
|
|
156
165
|
|
|
157
166
|
Listed design systems are examples only.
|
|
158
167
|
|
|
159
|
-
| Scenario
|
|
160
|
-
|
|
161
|
-
| `componentType='Dropdown'` (editable)
|
|
162
|
-
| `componentType='AutoComplete'` (editable)
|
|
163
|
-
| `componentType='SemanticLink'`
|
|
168
|
+
| Scenario | Rendered Child |
|
|
169
|
+
| ----------------------------------------------------- | ----------------------------------- |
|
|
170
|
+
| `componentType='Dropdown'` (editable) | `Dropdown` component |
|
|
171
|
+
| `componentType='AutoComplete'` (editable) | `AutoComplete` component |
|
|
172
|
+
| `componentType='SemanticLink'` | `SemanticLink` component |
|
|
164
173
|
| `displayMode='DISPLAY_ONLY'` (non-editable-in-review) | `SingleReferenceReadonly` component |
|
|
@@ -18,11 +18,11 @@ Renders a numeric input for percentage values. Always appends a `%` suffix in th
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `currencyISOCode`
|
|
24
|
-
| `showGroupSeparators` | `string` (optional) | —
|
|
25
|
-
| `decimalPrecision`
|
|
21
|
+
| Prop | Type | Default | Description |
|
|
22
|
+
| --------------------- | ------------------- | ------- | ------------------------------------------------------------------------------------------------ |
|
|
23
|
+
| `currencyISOCode` | `string` (optional) | `'USD'` | ISO code used for locale-aware decimal/thousands separator lookup only (not for currency symbol) |
|
|
24
|
+
| `showGroupSeparators` | `string` (optional) | — | Whether to show thousands separators (passed as string, truthy check applies) |
|
|
25
|
+
| `decimalPrecision` | `number` (optional) | — | Number of decimal places |
|
|
26
26
|
|
|
27
27
|
## Behavioral Contract
|
|
28
28
|
|
|
@@ -39,6 +39,7 @@ Renders a numeric input for percentage values. Always appends a `%` suffix in th
|
|
|
39
39
|
## Display Mode Rendering
|
|
40
40
|
|
|
41
41
|
Format the value using the percentage formatter before display:
|
|
42
|
+
|
|
42
43
|
- `formattedValue = format(value, pConn.getComponentName()?.toLowerCase(), currencyOptions)`
|
|
43
44
|
- **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : label} value={formattedValue} />`.
|
|
44
45
|
- **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />`.
|
|
@@ -49,17 +50,17 @@ Keep numeric format input with `readOnly: true` and `%` suffix still visible. Fl
|
|
|
49
50
|
|
|
50
51
|
## Visual Specifications
|
|
51
52
|
|
|
52
|
-
| Property
|
|
53
|
-
|
|
54
|
-
| Width
|
|
55
|
-
| Size
|
|
56
|
-
| Variant editable
|
|
57
|
-
| Variant read-only
|
|
58
|
-
| Suffix
|
|
53
|
+
| Property | Value |
|
|
54
|
+
| ------------------- | ----------------------------------------- |
|
|
55
|
+
| Width | 100% |
|
|
56
|
+
| Size | Small |
|
|
57
|
+
| Variant editable | Outlined |
|
|
58
|
+
| Variant read-only | Standard (flat) |
|
|
59
|
+
| Suffix | `%` (always shown after the value) |
|
|
59
60
|
| Thousands separator | Only when `showGroupSeparators` is truthy |
|
|
60
|
-
| Decimal scale
|
|
61
|
-
| Placeholder
|
|
62
|
-
| Error state
|
|
61
|
+
| Decimal scale | `decimalPrecision` |
|
|
62
|
+
| Placeholder | From `placeholder` prop |
|
|
63
|
+
| Error state | Red border + red helper text |
|
|
63
64
|
|
|
64
65
|
**CSS-only notes:** Achieve the `%` suffix by wrapping the input in a relative container and absolutely positioning a `%` label at the right side, or using an input with a `::after` pseudo-element technique.
|
|
65
66
|
|
|
@@ -84,9 +85,9 @@ Keep numeric format input with `readOnly: true` and `%` suffix still visible. Fl
|
|
|
84
85
|
|
|
85
86
|
Listed design systems are examples only.
|
|
86
87
|
|
|
87
|
-
| Design System
|
|
88
|
-
|
|
89
|
-
| Default (CSS only) | `<input type="text">` + custom masking + `%` suffix span
|
|
90
|
-
| MUI
|
|
91
|
-
| Ant Design
|
|
92
|
-
| Chakra UI
|
|
88
|
+
| Design System | Recommended Component |
|
|
89
|
+
| ------------------ | --------------------------------------------------------------- |
|
|
90
|
+
| Default (CSS only) | `<input type="text">` + custom masking + `%` suffix span |
|
|
91
|
+
| MUI | `NumericFormat` with `suffix='%'` and `customInput={TextField}` |
|
|
92
|
+
| Ant Design | `<InputNumber suffix="%" precision={decimalPrecision} />` |
|
|
93
|
+
| Chakra UI | `<NumberInput>` + `<InputRightAddon>%</InputRightAddon>` |
|
|
@@ -19,6 +19,7 @@ Renders a telephone number input with an integrated country code selector (flag
|
|
|
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
|
```
|
|
@@ -61,22 +62,39 @@ Render phone input with `readOnly: true` and `disableDropdown: true` on the coun
|
|
|
61
62
|
|
|
62
63
|
## Visual Specifications
|
|
63
64
|
|
|
64
|
-
| Property
|
|
65
|
-
|
|
66
|
-
| Width
|
|
67
|
-
| Size
|
|
68
|
-
| Variant
|
|
65
|
+
| Property | Editable | Read-only |
|
|
66
|
+
| ---------------- | ------------------------------ | ----------------------------------------- |
|
|
67
|
+
| Width | 100% | 100% |
|
|
68
|
+
| Size | Small | Small |
|
|
69
|
+
| Variant | Outlined | Outlined (same, with readOnly input) |
|
|
69
70
|
| Country selector | Dropdown with flag + dial code | Flag + dial code shown, dropdown disabled |
|
|
70
|
-
| Default country
|
|
71
|
-
| Error state
|
|
72
|
-
| Helper text
|
|
71
|
+
| Default country | US (`+1`) | US (`+1`) |
|
|
72
|
+
| Error state | Red border + red helper text | — |
|
|
73
|
+
| Helper text | Below input | Below input |
|
|
73
74
|
|
|
74
75
|
**CSS-only notes:**
|
|
75
76
|
For a CSS-only implementation, create a two-part input:
|
|
77
|
+
|
|
76
78
|
```css
|
|
77
|
-
.phone-input-wrapper {
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
.phone-input-wrapper {
|
|
80
|
+
display: flex;
|
|
81
|
+
border: 1px solid rgba(0, 0, 0, 0.23);
|
|
82
|
+
border-radius: 4px;
|
|
83
|
+
overflow: hidden;
|
|
84
|
+
}
|
|
85
|
+
.phone-country-select {
|
|
86
|
+
border: none;
|
|
87
|
+
border-right: 1px solid rgba(0, 0, 0, 0.23);
|
|
88
|
+
padding: 0 8px;
|
|
89
|
+
background: none;
|
|
90
|
+
}
|
|
91
|
+
.phone-number-input {
|
|
92
|
+
flex: 1;
|
|
93
|
+
border: none;
|
|
94
|
+
padding: 8px 12px;
|
|
95
|
+
font-size: 0.875rem;
|
|
96
|
+
outline: none;
|
|
97
|
+
}
|
|
80
98
|
```
|
|
81
99
|
|
|
82
100
|
## Edge Cases & Special Logic
|
|
@@ -93,6 +111,7 @@ For a CSS-only implementation, create a two-part input:
|
|
|
93
111
|
- `getComponentFromRegistry('FieldValueList')` for display modes.
|
|
94
112
|
|
|
95
113
|
**For CSS-only / non-library implementations:**
|
|
114
|
+
|
|
96
115
|
- Use a `<select>` for country code + a text `<input>` for the number.
|
|
97
116
|
- On blur, combine dial code + number and strip non-digits, then format as `+{digits}`.
|
|
98
117
|
|
|
@@ -102,9 +121,9 @@ For a CSS-only implementation, create a two-part input:
|
|
|
102
121
|
|
|
103
122
|
Listed design systems are examples only.
|
|
104
123
|
|
|
105
|
-
| Design System
|
|
106
|
-
|
|
107
|
-
| Default (CSS only) | `<select>` (country) + `<input type="tel">`
|
|
108
|
-
| MUI
|
|
109
|
-
| Ant Design
|
|
110
|
-
| Chakra UI
|
|
124
|
+
| Design System | Recommended Component |
|
|
125
|
+
| ------------------ | -------------------------------------------------- |
|
|
126
|
+
| Default (CSS only) | `<select>` (country) + `<input type="tel">` |
|
|
127
|
+
| MUI | `<MuiTelInput>` from `mui-tel-input` |
|
|
128
|
+
| Ant Design | `<Input addonBefore={countrySelect}>` |
|
|
129
|
+
| Chakra UI | `<InputGroup>` with `<InputLeftAddon>` for country |
|
|
@@ -18,17 +18,17 @@ Renders a group of radio buttons for single-selection from a list of options. Su
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `inline`
|
|
24
|
-
| `fieldMetadata`
|
|
25
|
-
| `variant`
|
|
26
|
-
| `hideFieldLabels`
|
|
27
|
-
| `additionalProps`
|
|
28
|
-
| `imagePosition`
|
|
29
|
-
| `imageSize`
|
|
30
|
-
| `showImageDescription` | `boolean` (optional) | Whether to show image description in cards
|
|
31
|
-
| `datasource`
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
| ---------------------- | -------------------- | ------------------------------------------------------------------------------- |
|
|
23
|
+
| `inline` | `boolean` | If `true`, render radio buttons in a horizontal row; if `false`, vertical stack |
|
|
24
|
+
| `fieldMetadata` | `any` (optional) | For localization context (tableType, datasource name, display text property) |
|
|
25
|
+
| `variant` | `string` (optional) | `'card'` — renders options as selectable cards instead of radio buttons |
|
|
26
|
+
| `hideFieldLabels` | `boolean` (optional) | Hide field labels inside card variant |
|
|
27
|
+
| `additionalProps` | `any` (optional) | Extra props passed to `SelectableCard` in card variant |
|
|
28
|
+
| `imagePosition` | `string` (optional) | Card image position: `'inline-start'`, `'inline-end'`, or block |
|
|
29
|
+
| `imageSize` | `string` (optional) | Card image size |
|
|
30
|
+
| `showImageDescription` | `boolean` (optional) | Whether to show image description in cards |
|
|
31
|
+
| `datasource` | `any` (optional) | Datasource for card variant |
|
|
32
32
|
|
|
33
33
|
## Behavioral Contract
|
|
34
34
|
|
|
@@ -49,6 +49,7 @@ Renders a group of radio buttons for single-selection from a list of options. Su
|
|
|
49
49
|
### Variant: Standard (default)
|
|
50
50
|
|
|
51
51
|
Render a radio group with `FormControl > FormLabel > RadioGroup > FormControlLabel (Radio)` pattern:
|
|
52
|
+
|
|
52
53
|
- `FormLabel`: the `label` prop
|
|
53
54
|
- `RadioGroup`: `value={theSelectedButton}`, `onChange={handleChange}`, `onBlur`, `row={inline}`
|
|
54
55
|
- Each `FormControlLabel`: `value={option.key}`, `label={localizedLabel}`, `control={<Radio color='primary' disabled={readOnly} />}`
|
|
@@ -58,6 +59,7 @@ Render a radio group with `FormControl > FormLabel > RadioGroup > FormControlLab
|
|
|
58
59
|
### Variant: Card (`variant === 'card'`)
|
|
59
60
|
|
|
60
61
|
Render a heading (`<h4>`) with the `label`, then delegate to `SelectableCard` component:
|
|
62
|
+
|
|
61
63
|
```
|
|
62
64
|
<div>
|
|
63
65
|
<h4 style={{ marginTop: 0, marginBottom: 0 }}>{label}</h4>
|
|
@@ -78,12 +80,14 @@ Render a heading (`<h4>`) with the `label`, then delegate to `SelectableCard` co
|
|
|
78
80
|
</div>
|
|
79
81
|
</div>
|
|
80
82
|
```
|
|
83
|
+
|
|
81
84
|
- `imageField`: `stateProps.image?.split('.').pop()`
|
|
82
85
|
- `imageDescription`: `stateProps.imageDescription?.split('.').pop()`
|
|
83
86
|
|
|
84
87
|
## Display Mode Rendering
|
|
85
88
|
|
|
86
89
|
Both modes render the localized display label of the selected option:
|
|
90
|
+
|
|
87
91
|
- **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : label} value={localizedValue} />`
|
|
88
92
|
- **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : label} value={localizedValue} variant='stacked' />`
|
|
89
93
|
|
|
@@ -93,31 +97,48 @@ Where `localizedValue = pConn.getLocalizedValue(value, localePath, localeRuleNam
|
|
|
93
97
|
|
|
94
98
|
### Standard Variant
|
|
95
99
|
|
|
96
|
-
| Property
|
|
97
|
-
|
|
98
|
-
| Layout
|
|
99
|
-
| Radio indicator
|
|
100
|
-
| Label
|
|
101
|
-
| Group label
|
|
102
|
-
| Error state
|
|
103
|
-
| Helper text
|
|
104
|
-
| Disabled (readOnly) | Greyed-out radio buttons, not-allowed cursor
|
|
100
|
+
| Property | Value |
|
|
101
|
+
| ------------------- | -------------------------------------------------------------------- |
|
|
102
|
+
| Layout | Vertical stack (or horizontal row when `inline=true`) |
|
|
103
|
+
| Radio indicator | Circle button with filled inner circle when selected |
|
|
104
|
+
| Label | Label text to the right of the radio button (`labelPlacement='end'`) |
|
|
105
|
+
| Group label | `<legend>` / `<FormLabel>` above the group |
|
|
106
|
+
| Error state | Group border or text in red |
|
|
107
|
+
| Helper text | Below the group |
|
|
108
|
+
| Disabled (readOnly) | Greyed-out radio buttons, not-allowed cursor |
|
|
105
109
|
|
|
106
110
|
**CSS-only notes:**
|
|
111
|
+
|
|
107
112
|
```css
|
|
108
|
-
.radio-group {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
.radio-group {
|
|
114
|
+
display: flex;
|
|
115
|
+
flex-direction: column;
|
|
116
|
+
gap: 4px;
|
|
117
|
+
}
|
|
118
|
+
.radio-group.inline {
|
|
119
|
+
flex-direction: row;
|
|
120
|
+
flex-wrap: wrap;
|
|
121
|
+
gap: 8px;
|
|
122
|
+
}
|
|
123
|
+
.radio-label {
|
|
124
|
+
display: flex;
|
|
125
|
+
align-items: center;
|
|
126
|
+
gap: 8px;
|
|
127
|
+
cursor: pointer;
|
|
128
|
+
}
|
|
129
|
+
input[type='radio']:disabled {
|
|
130
|
+
opacity: 0.38;
|
|
131
|
+
cursor: default;
|
|
132
|
+
}
|
|
112
133
|
```
|
|
113
134
|
|
|
114
135
|
### Card Variant
|
|
115
136
|
|
|
116
|
-
| Property | Value
|
|
117
|
-
|
|
118
|
-
| Layout
|
|
119
|
-
| Card
|
|
120
|
-
| Heading
|
|
137
|
+
| Property | Value |
|
|
138
|
+
| -------- | ----------------------------------------------------------------------- |
|
|
139
|
+
| Layout | CSS Grid: `repeat(auto-fit, minmax(min(200px, 100%), 1fr))`, gap `1rem` |
|
|
140
|
+
| Card | Elevated card with click handler that activates the radio |
|
|
141
|
+
| Heading | `<h4>` with `marginTop: 0, marginBottom: 0` above grid |
|
|
121
142
|
|
|
122
143
|
## Edge Cases & Special Logic
|
|
123
144
|
|
|
@@ -138,9 +159,9 @@ input[type="radio"]:disabled { opacity: 0.38; cursor: default; }
|
|
|
138
159
|
|
|
139
160
|
Listed design systems are examples only.
|
|
140
161
|
|
|
141
|
-
| Design System
|
|
142
|
-
|
|
143
|
-
| Default (CSS only) | `<input type="radio">` with `<label>` per option
|
|
144
|
-
| MUI
|
|
145
|
-
| Ant Design
|
|
146
|
-
| Chakra UI
|
|
162
|
+
| Design System | Recommended Component |
|
|
163
|
+
| ------------------ | ------------------------------------------------------------ |
|
|
164
|
+
| Default (CSS only) | `<input type="radio">` with `<label>` per option |
|
|
165
|
+
| MUI | `<RadioGroup>` with `<FormControlLabel control={<Radio />}>` |
|
|
166
|
+
| Ant Design | `<Radio.Group>` with `<Radio>` options |
|
|
167
|
+
| Chakra UI | `<RadioGroup>` with `<Radio>` items |
|