@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,12 +18,12 @@ Renders an inline dashboard layout consisting of a title heading, a main content
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `title`
|
|
24
|
-
| `filterPosition` | `string`
|
|
25
|
-
| `children`
|
|
26
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ---------------- | ------------- | -------- | ----------------------------------------------------------------------------- |
|
|
23
|
+
| `title` | `string` | No | Dashboard title displayed above the content area |
|
|
24
|
+
| `filterPosition` | `string` | No | Filter panel position: `'block-start'` (above) or other (side). Default: side |
|
|
25
|
+
| `children` | `ReactNode[]` | Yes | `children[0]` = main content, `children[1]` = filter panel |
|
|
26
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
27
27
|
|
|
28
28
|
## Behavioral Contract
|
|
29
29
|
|
|
@@ -34,6 +34,7 @@ Renders an inline dashboard layout consisting of a title heading, a main content
|
|
|
34
34
|
### Filter Position: `'block-start'`
|
|
35
35
|
|
|
36
36
|
Stacked layout — filter panel above main content:
|
|
37
|
+
|
|
37
38
|
- `<Grid container direction='column-reverse'>` (reverse so filter renders visually above content).
|
|
38
39
|
- Filter panel: `<Grid id='filters' size={{ xs: 12 }}>`.
|
|
39
40
|
- Main content: `<Grid size={{ xs: 12 }}>`.
|
|
@@ -41,6 +42,7 @@ Stacked layout — filter panel above main content:
|
|
|
41
42
|
### Filter Position: Other (side)
|
|
42
43
|
|
|
43
44
|
Side-by-side layout — main content left, filters right:
|
|
45
|
+
|
|
44
46
|
- `<Grid container direction={...}>` (optionally `row-reverse` based on position value).
|
|
45
47
|
- Main content: `<Grid size={{ xs: 9 }}>`.
|
|
46
48
|
- Filter panel: `<Grid id='filters' size={{ xs: 3 }}>`.
|
|
@@ -66,6 +68,7 @@ Side-by-side layout — main content left, filters right:
|
|
|
66
68
|
```
|
|
67
69
|
|
|
68
70
|
**CSS-only implementation notes:**
|
|
71
|
+
|
|
69
72
|
- Title: `font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem`.
|
|
70
73
|
- Block-start: `display: flex; flex-direction: column; gap: 1rem` (filter div first in DOM but ordered last visually with `order: -1`).
|
|
71
74
|
- Side: `display: grid; grid-template-columns: 3fr 1fr; gap: 1rem`.
|
|
@@ -90,15 +93,16 @@ Side-by-side layout — main content left, filters right:
|
|
|
90
93
|
|
|
91
94
|
Listed design systems are examples only.
|
|
92
95
|
|
|
93
|
-
| Design System
|
|
94
|
-
|
|
95
|
-
| Default (CSS only) | `<h2>`
|
|
96
|
-
| MUI
|
|
97
|
-
| Ant Design
|
|
98
|
-
| Chakra UI
|
|
99
|
-
| Shadcn/ui
|
|
96
|
+
| Design System | Title | Content/Filter Grid |
|
|
97
|
+
| ------------------ | ------------------------------ | ---------------------- |
|
|
98
|
+
| Default (CSS only) | `<h2>` | CSS grid or flexbox |
|
|
99
|
+
| MUI | `<Typography variant='h4'>` | `<Grid container>` |
|
|
100
|
+
| Ant Design | `<Typography.Title level={2}>` | `<Row>/<Col>` |
|
|
101
|
+
| Chakra UI | `<Heading>` | `<Grid>` or `<HStack>` |
|
|
102
|
+
| Shadcn/ui | `<h2>` | Tailwind grid |
|
|
100
103
|
|
|
101
104
|
When implementing in a specific design system:
|
|
105
|
+
|
|
102
106
|
- `filterPosition === 'block-start'` requires stacked layout (12/12) — not side layout (9/3)
|
|
103
107
|
- Filter panel must always have `id='filters'`
|
|
104
108
|
- Title heading (`h4` level) is optional — only render when `title` is provided
|
|
@@ -20,12 +20,12 @@ Page-level wrapper for the inline dashboard. Extracts promoted filter definition
|
|
|
20
20
|
|
|
21
21
|
## Props
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `children`
|
|
26
|
-
| `title`
|
|
27
|
-
| `filterPosition` | `string`
|
|
28
|
-
| `getPConnect`
|
|
23
|
+
| Prop | Type | Required | Description |
|
|
24
|
+
| ---------------- | ------------- | -------- | ----------------------------------------------- |
|
|
25
|
+
| `children` | `ReactNode[]` | Yes | Main content children passed to InlineDashboard |
|
|
26
|
+
| `title` | `string` | No | Dashboard title |
|
|
27
|
+
| `filterPosition` | `string` | No | Filter position: `'block-start'` or side |
|
|
28
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
29
29
|
|
|
30
30
|
## Behavioral Contract
|
|
31
31
|
|
|
@@ -42,13 +42,9 @@ In `useEffect([])` (on mount):
|
|
|
42
42
|
### Render
|
|
43
43
|
|
|
44
44
|
```tsx
|
|
45
|
-
<InlineDashboard
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
getPConnect={getPConnect}
|
|
49
|
-
>
|
|
50
|
-
{children[0]} {/* main content */}
|
|
51
|
-
{filterComponents} {/* built filter components */}
|
|
45
|
+
<InlineDashboard title={title} filterPosition={filterPosition} getPConnect={getPConnect}>
|
|
46
|
+
{children[0]} {/* main content */}
|
|
47
|
+
{filterComponents} {/* built filter components */}
|
|
52
48
|
</InlineDashboard>
|
|
53
49
|
```
|
|
54
50
|
|
|
@@ -80,6 +76,7 @@ Listed design systems are examples only.
|
|
|
80
76
|
This component is a thin orchestration layer. All visual implementation is in `InlineDashboard`. The only implementation detail is `buildFilterComponents` — which creates filter field components from metadata definitions.
|
|
81
77
|
|
|
82
78
|
When implementing in a specific design system:
|
|
79
|
+
|
|
83
80
|
- `buildFilterComponents` must create proper PConnect-backed filter field components
|
|
84
81
|
- If `promotedFilters` is empty, skip the filter panel entirely
|
|
85
82
|
- All layout and styling is delegated to `InlineDashboard`
|
|
@@ -22,13 +22,13 @@ Renders a full-page list view by forwarding all props to `ListView` with `bInFor
|
|
|
22
22
|
|
|
23
23
|
All props are forwarded to `ListView`. Key props:
|
|
24
24
|
|
|
25
|
-
| Prop
|
|
26
|
-
|
|
27
|
-
| `dataPageName` | `string`
|
|
28
|
-
| `columns`
|
|
29
|
-
| `isSearchable` | `boolean`
|
|
30
|
-
| `payload`
|
|
31
|
-
| `getPConnect`
|
|
25
|
+
| Prop | Type | Required | Description |
|
|
26
|
+
| -------------- | ---------- | -------- | ------------------------------ |
|
|
27
|
+
| `dataPageName` | `string` | Yes | Data page to load records from |
|
|
28
|
+
| `columns` | `array` | No | Column definitions |
|
|
29
|
+
| `isSearchable` | `boolean` | No | Whether global search is shown |
|
|
30
|
+
| `payload` | `object` | No | Query payload |
|
|
31
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
32
32
|
|
|
33
33
|
## Behavioral Contract
|
|
34
34
|
|
|
@@ -41,6 +41,7 @@ That is the complete implementation. `bInForm: false` ensures ListView renders w
|
|
|
41
41
|
## Visual Specifications
|
|
42
42
|
|
|
43
43
|
Identical to `ListView` with `bInForm: false`:
|
|
44
|
+
|
|
44
45
|
- Full outer padding applied.
|
|
45
46
|
- Toolbar occupies full width.
|
|
46
47
|
- Table stretches to fill page width.
|
|
@@ -64,5 +65,6 @@ Listed design systems are examples only.
|
|
|
64
65
|
Implement identically to `ListView` — `ListPage` adds no new UI. The distinction is purely in the `bInForm` prop which controls spacing/chrome.
|
|
65
66
|
|
|
66
67
|
When implementing in a specific design system:
|
|
68
|
+
|
|
67
69
|
- `bInForm: false` signals that the list should have page-level layout (more padding, full-width toolbar)
|
|
68
70
|
- No additional logic beyond `ListView` is required
|
|
@@ -18,24 +18,25 @@ The primary data table component. Renders a sortable, paginated, filterable, and
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `bInForm`
|
|
24
|
-
| `selectionMode`
|
|
25
|
-
| `dataPageName`
|
|
26
|
-
| `referenceList`
|
|
27
|
-
| `compositeKeys`
|
|
28
|
-
| `columns`
|
|
29
|
-
| `additionalTableConfig` | `object`
|
|
30
|
-
| `isSearchable`
|
|
31
|
-
| `payload`
|
|
32
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ----------------------- | ---------- | -------- | ----------------------------------------------------------------------------- |
|
|
23
|
+
| `bInForm` | `boolean` | No | Whether rendered inside a form (affects toolbar and padding). Default `false` |
|
|
24
|
+
| `selectionMode` | `string` | No | `'single'` (radio) or `'multi'` (checkbox) or absent (no selection) |
|
|
25
|
+
| `dataPageName` | `string` | No | Name of data page to fetch records from |
|
|
26
|
+
| `referenceList` | `array` | No | In-memory data array (used when data is already available) |
|
|
27
|
+
| `compositeKeys` | `object` | No | Key fields for unique row identification |
|
|
28
|
+
| `columns` | `array` | No | Column definition objects `{ fieldName, label, sortable, filterable }` |
|
|
29
|
+
| `additionalTableConfig` | `object` | No | Extra config merged with column/sort/filter settings |
|
|
30
|
+
| `isSearchable` | `boolean` | No | Whether global search input is shown |
|
|
31
|
+
| `payload` | `object` | No | Query payload for data page requests |
|
|
32
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
33
33
|
|
|
34
34
|
## Behavioral Contract
|
|
35
35
|
|
|
36
36
|
### Initialization
|
|
37
37
|
|
|
38
38
|
`useInit(getPConnect, columns, dataPageName, payload)` hook:
|
|
39
|
+
|
|
39
40
|
1. Calls `initializeColumns(getPConnect, columns)` to build `configFields`.
|
|
40
41
|
2. Calls `buildFieldsForTable(configFields)` to produce display column definitions.
|
|
41
42
|
3. Calls `getConfigFields(configFields)` for sort/filter metadata.
|
|
@@ -62,11 +63,11 @@ The primary data table component. Renders a sortable, paginated, filterable, and
|
|
|
62
63
|
|
|
63
64
|
### Selection
|
|
64
65
|
|
|
65
|
-
| `selectionMode` | Control per row | Callback
|
|
66
|
-
|
|
67
|
-
| `'single'`
|
|
68
|
-
| `'multi'`
|
|
69
|
-
| absent
|
|
66
|
+
| `selectionMode` | Control per row | Callback |
|
|
67
|
+
| --------------- | --------------- | ---------------------------- |
|
|
68
|
+
| `'single'` | `<Radio>` | `onRowSelect(rowData)` |
|
|
69
|
+
| `'multi'` | `<Checkbox>` | `onRowsSelect(selectedRows)` |
|
|
70
|
+
| absent | None | None |
|
|
70
71
|
|
|
71
72
|
- Select-all checkbox in the header for multi-selection.
|
|
72
73
|
- Selected rows highlighted with `selected` row class.
|
|
@@ -91,14 +92,15 @@ The primary data table component. Renders a sortable, paginated, filterable, and
|
|
|
91
92
|
|
|
92
93
|
## Visual Specifications
|
|
93
94
|
|
|
94
|
-
| Element
|
|
95
|
-
|
|
96
|
-
| Toolbar
|
|
97
|
-
| Table head
|
|
98
|
-
| Table body
|
|
99
|
-
| Pagination bar | Below table, page size selector + page nav
|
|
95
|
+
| Element | Description |
|
|
96
|
+
| -------------- | -------------------------------------------------------- |
|
|
97
|
+
| Toolbar | Search input + filter button + (optional) action buttons |
|
|
98
|
+
| Table head | Sticky header with sort labels and column menu |
|
|
99
|
+
| Table body | Striped rows, hover state, selected state |
|
|
100
|
+
| Pagination bar | Below table, page size selector + page nav |
|
|
100
101
|
|
|
101
102
|
**CSS-only implementation notes:**
|
|
103
|
+
|
|
102
104
|
- Table container: `overflow-x: auto`.
|
|
103
105
|
- Header row: `background: var(--table-header-bg); font-weight: 600`.
|
|
104
106
|
- Selected row: `background: var(--selection-highlight-bg)`.
|
|
@@ -125,15 +127,16 @@ The primary data table component. Renders a sortable, paginated, filterable, and
|
|
|
125
127
|
|
|
126
128
|
Listed design systems are examples only.
|
|
127
129
|
|
|
128
|
-
| Design System
|
|
129
|
-
|
|
130
|
-
| Default (CSS only) | `<table>/<thead>/<tbody>`
|
|
131
|
-
| MUI
|
|
132
|
-
| Ant Design
|
|
133
|
-
| Chakra UI
|
|
134
|
-
| Shadcn/ui
|
|
130
|
+
| Design System | Table | Pagination | Dialog |
|
|
131
|
+
| ------------------ | -------------------------- | -------------------------- | ------------------ |
|
|
132
|
+
| Default (CSS only) | `<table>/<thead>/<tbody>` | Custom pagination controls | `<dialog>` element |
|
|
133
|
+
| MUI | `<Table>` + sub-components | `<TablePagination>` | `<Dialog>` |
|
|
134
|
+
| Ant Design | `<Table>` | Built-in pagination prop | `<Modal>` |
|
|
135
|
+
| Chakra UI | `<Table>` | Custom or `react-table` | `<Modal>` |
|
|
136
|
+
| Shadcn/ui | `<Table>` + TanStack Table | Custom pagination | `<Dialog>` |
|
|
135
137
|
|
|
136
138
|
When implementing in a specific design system:
|
|
139
|
+
|
|
137
140
|
- `bInForm` prop affects layout — tighten spacing and remove outer chrome when `true`
|
|
138
141
|
- Sorting, pagination, and search all trigger data re-fetches — do not filter client-side for server-paged data
|
|
139
142
|
- Selection mode (`single`/`multi`) requires different controls and callbacks
|
package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md
CHANGED
|
@@ -18,13 +18,13 @@ Renders a multi-value reference field in read-only mode. Routing is based on the
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `displayAs`
|
|
24
|
-
| `referenceList`
|
|
25
|
-
| `readonlyContextList` | `array`
|
|
26
|
-
| `fieldMetadata`
|
|
27
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| --------------------- | ---------- | -------- | -------------------------------------------------------- |
|
|
23
|
+
| `displayAs` | `string` | Yes | UI variant that was used in edit mode |
|
|
24
|
+
| `referenceList` | `string` | No | Property path to the reference list |
|
|
25
|
+
| `readonlyContextList` | `array` | No | Fallback data array when `referenceList` is not resolved |
|
|
26
|
+
| `fieldMetadata` | `object` | No | Field-level metadata |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
29
|
## Behavioral Contract
|
|
30
30
|
|
|
@@ -50,6 +50,7 @@ else:
|
|
|
50
50
|
See `SimpleTable.md` and `ListView.md` for detailed visual specs.
|
|
51
51
|
|
|
52
52
|
**CSS-only notes:**
|
|
53
|
+
|
|
53
54
|
- Fallback to `readonlyContextList` renders identically to the resolved reference list.
|
|
54
55
|
- No edit controls in either variant.
|
|
55
56
|
|
|
@@ -70,11 +71,12 @@ See `SimpleTable.md` and `ListView.md` for detailed visual specs.
|
|
|
70
71
|
|
|
71
72
|
Listed design systems are examples only.
|
|
72
73
|
|
|
73
|
-
| `displayAs`
|
|
74
|
-
|
|
75
|
-
| `readonlyMulti`, `combobox`, `checkboxgroup` | `SimpleTableSelectReadonly` | Link/chip + modal
|
|
76
|
-
| All others
|
|
74
|
+
| `displayAs` | Routing | DS Implementation |
|
|
75
|
+
| -------------------------------------------- | --------------------------- | -------------------- |
|
|
76
|
+
| `readonlyMulti`, `combobox`, `checkboxgroup` | `SimpleTableSelectReadonly` | Link/chip + modal |
|
|
77
|
+
| All others | `SimpleTable` | Flat read-only table |
|
|
77
78
|
|
|
78
79
|
When implementing in a specific design system:
|
|
80
|
+
|
|
79
81
|
- The `displayAs` routing list must match the edit-mode variants defined in `DataReference.md`
|
|
80
82
|
- `readonlyContextList` fallback is critical — reference list data may not be available on initial render
|
|
@@ -17,11 +17,11 @@ Renders two children side by side with the left column narrower than the right.
|
|
|
17
17
|
|
|
18
18
|
## Pega Metadata
|
|
19
19
|
|
|
20
|
-
| Variant
|
|
21
|
-
|
|
22
|
-
| NarrowWide
|
|
23
|
-
| NarrowWidePage
|
|
24
|
-
| NarrowWideForm
|
|
20
|
+
| Variant | Registration Key |
|
|
21
|
+
| ----------------- | ------------------- |
|
|
22
|
+
| NarrowWide | `NarrowWide` |
|
|
23
|
+
| NarrowWidePage | `NarrowWidePage` |
|
|
24
|
+
| NarrowWideForm | `NarrowWideForm` |
|
|
25
25
|
| NarrowWideDetails | `NarrowWideDetails` |
|
|
26
26
|
|
|
27
27
|
All extend `PConnProps`.
|
|
@@ -30,38 +30,38 @@ All extend `PConnProps`.
|
|
|
30
30
|
|
|
31
31
|
### NarrowWide
|
|
32
32
|
|
|
33
|
-
| Prop
|
|
34
|
-
|
|
35
|
-
| `children` | `ReactNode[]` | No
|
|
36
|
-
| `a`
|
|
37
|
-
| `b`
|
|
38
|
-
| `title`
|
|
39
|
-
| `cols`
|
|
40
|
-
| `icon`
|
|
33
|
+
| Prop | Type | Required | Description |
|
|
34
|
+
| ---------- | ------------- | -------- | ---------------------------------------------------------- |
|
|
35
|
+
| `children` | `ReactNode[]` | No | Two children rendered in narrow/wide slots |
|
|
36
|
+
| `a` | `any` | No | Narrow (left) column content |
|
|
37
|
+
| `b` | `any` | No | Wide (right) column content |
|
|
38
|
+
| `title` | `string` | No | Optional title (not rendered in reference implementation) |
|
|
39
|
+
| `cols` | `string` | No | Column template (not rendered in reference implementation) |
|
|
40
|
+
| `icon` | `string` | No | Optional icon (not rendered in reference implementation) |
|
|
41
41
|
|
|
42
42
|
### NarrowWidePage
|
|
43
43
|
|
|
44
|
-
| Prop
|
|
45
|
-
|
|
46
|
-
| `children`
|
|
47
|
-
| `title`
|
|
48
|
-
| `templateCol` | `string`
|
|
49
|
-
| `icon`
|
|
44
|
+
| Prop | Type | Required | Description |
|
|
45
|
+
| ------------- | ------------- | -------- | ----------------------------------------------------- |
|
|
46
|
+
| `children` | `ReactNode[]` | Yes | Two children — `[0]` → narrow slot, `[1]` → wide slot |
|
|
47
|
+
| `title` | `string` | Yes | Page title (passed to NarrowWide) |
|
|
48
|
+
| `templateCol` | `string` | No | Column ratio (default `'1fr 1fr'`) |
|
|
49
|
+
| `icon` | `string` | No | Icon name (strips `'pi pi-'` prefix) |
|
|
50
50
|
|
|
51
51
|
### NarrowWideForm
|
|
52
52
|
|
|
53
|
-
| Prop
|
|
54
|
-
|
|
55
|
-
| `children` | `ReactNode[]` | Yes
|
|
53
|
+
| Prop | Type | Required | Description |
|
|
54
|
+
| ---------- | ------------- | -------- | ----------------------------------------------------- |
|
|
55
|
+
| `children` | `ReactNode[]` | Yes | Two children — `[0]` → narrow slot, `[1]` → wide slot |
|
|
56
56
|
|
|
57
57
|
### NarrowWideDetails
|
|
58
58
|
|
|
59
|
-
| Prop
|
|
60
|
-
|
|
61
|
-
| `label`
|
|
62
|
-
| `showLabel`
|
|
63
|
-
| `showHighlightedData` | `boolean`
|
|
64
|
-
| `getPConnect`
|
|
59
|
+
| Prop | Type | Required | Description |
|
|
60
|
+
| --------------------- | ---------- | -------- | ------------------------------------------------------------------------- |
|
|
61
|
+
| `label` | `string` | Yes | Section label for FieldGroup |
|
|
62
|
+
| `showLabel` | `boolean` | No | Whether to show the label. Default `true` |
|
|
63
|
+
| `showHighlightedData` | `boolean` | No | Whether to render highlighted data fields above children. Default `false` |
|
|
64
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
65
65
|
|
|
66
66
|
## Behavioral Contract
|
|
67
67
|
|
|
@@ -97,13 +97,14 @@ Derived from `NarrowWide.css`:
|
|
|
97
97
|
|
|
98
98
|
### Container
|
|
99
99
|
|
|
100
|
-
| CSS Class
|
|
101
|
-
|
|
102
|
-
| `.psdk-narrow-wide-column`
|
|
103
|
-
| `.psdk-narrow-column-column` | Width
|
|
104
|
-
| `.psdk-wide-column-column`
|
|
100
|
+
| CSS Class | Property | Value |
|
|
101
|
+
| ---------------------------- | -------- | ----------------------------- |
|
|
102
|
+
| `.psdk-narrow-wide-column` | Display | flex or grid (two-column row) |
|
|
103
|
+
| `.psdk-narrow-column-column` | Width | ~33% (1 of 3 parts) |
|
|
104
|
+
| `.psdk-wide-column-column` | Width | ~67% (2 of 3 parts) |
|
|
105
105
|
|
|
106
106
|
**CSS-only implementation notes:**
|
|
107
|
+
|
|
107
108
|
- `.psdk-narrow-wide-column`: `display: grid; grid-template-columns: 1fr 2fr; gap: 1rem`.
|
|
108
109
|
- `.psdk-narrow-column-column`: takes the first (narrower) grid column.
|
|
109
110
|
- `.psdk-wide-column-column`: takes the second (wider) grid column.
|
|
@@ -127,15 +128,16 @@ Derived from `NarrowWide.css`:
|
|
|
127
128
|
|
|
128
129
|
Listed design systems are examples only.
|
|
129
130
|
|
|
130
|
-
| Design System
|
|
131
|
-
|
|
132
|
-
| Default (CSS only) | CSS Grid `grid-template-columns: 1fr 2fr; gap: 1rem`
|
|
133
|
-
| MUI
|
|
134
|
-
| Ant Design
|
|
135
|
-
| Chakra UI
|
|
136
|
-
| Shadcn/ui
|
|
131
|
+
| Design System | Recommended Component |
|
|
132
|
+
| ------------------ | -------------------------------------------------------------------------------- |
|
|
133
|
+
| Default (CSS only) | CSS Grid `grid-template-columns: 1fr 2fr; gap: 1rem` |
|
|
134
|
+
| MUI | `<Grid container><Grid size={{ xs: 12, md: 4 }}><Grid size={{ xs: 12, md: 8 }}>` |
|
|
135
|
+
| Ant Design | `<Row gutter={16}><Col xs={24} md={8}><Col xs={24} md={16}>` |
|
|
136
|
+
| Chakra UI | `<Grid templateColumns={{ base: '1fr', md: '1fr 2fr' }} gap={4}>` |
|
|
137
|
+
| Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[1fr_2fr] gap-4` |
|
|
137
138
|
|
|
138
139
|
When implementing in a specific design system:
|
|
140
|
+
|
|
139
141
|
- Narrow column ≈ 33% width (1fr of 3fr total)
|
|
140
142
|
- Wide column ≈ 67% width (2fr of 3fr total)
|
|
141
143
|
- `NarrowWideDetails` always forces DISPLAY_ONLY + readOnly on children
|
|
@@ -16,25 +16,26 @@ Renders all children stacked vertically in a single full-width column. Three clo
|
|
|
16
16
|
|
|
17
17
|
## Pega Metadata
|
|
18
18
|
|
|
19
|
-
| Variant
|
|
20
|
-
|
|
21
|
-
| OneColumn
|
|
22
|
-
| OneColumnPage | `OneColumnPage`
|
|
23
|
-
| OneColumnTab
|
|
19
|
+
| Variant | Registration Key |
|
|
20
|
+
| ------------- | ---------------- |
|
|
21
|
+
| OneColumn | `OneColumn` |
|
|
22
|
+
| OneColumnPage | `OneColumnPage` |
|
|
23
|
+
| OneColumnTab | `OneColumnTab` |
|
|
24
24
|
|
|
25
25
|
All extend `PConnProps`. Children are received as React `children`.
|
|
26
26
|
|
|
27
27
|
## Props
|
|
28
28
|
|
|
29
|
-
| Prop
|
|
30
|
-
|
|
31
|
-
| `children` | `ReactNode[]` | Yes
|
|
29
|
+
| Prop | Type | Required | Description |
|
|
30
|
+
| ---------- | ------------- | -------- | --------------------------------------------------- |
|
|
31
|
+
| `children` | `ReactNode[]` | Yes | One or more children to render in the single column |
|
|
32
32
|
|
|
33
33
|
## Sub-Variants
|
|
34
34
|
|
|
35
35
|
### OneColumnPage
|
|
36
36
|
|
|
37
37
|
Thin pass-through wrapper. Retrieves `OneColumn` from the component registry and renders with all props forwarded:
|
|
38
|
+
|
|
38
39
|
```typescript
|
|
39
40
|
const OneColumn = getComponentFromRegistry('OneColumn');
|
|
40
41
|
return <OneColumn {...props} />;
|
|
@@ -43,9 +44,11 @@ return <OneColumn {...props} />;
|
|
|
43
44
|
### OneColumnTab
|
|
44
45
|
|
|
45
46
|
Minimal wrapper — renders children in a plain `<div>` with `id='OneColumnTab'`:
|
|
47
|
+
|
|
46
48
|
```typescript
|
|
47
49
|
return <div id='OneColumnTab'>{children}</div>;
|
|
48
50
|
```
|
|
51
|
+
|
|
49
52
|
No grid or column styles applied. Used purely as a slot container inside tab panels.
|
|
50
53
|
|
|
51
54
|
## Behavioral Contract
|
|
@@ -62,19 +65,20 @@ Derived from `OneColumn.tsx` makeStyles:
|
|
|
62
65
|
|
|
63
66
|
### Column Style
|
|
64
67
|
|
|
65
|
-
| Property
|
|
66
|
-
|
|
67
|
-
| Display
|
|
68
|
-
| Gap
|
|
68
|
+
| Property | Value |
|
|
69
|
+
| ------------- | ------------------------------------- |
|
|
70
|
+
| Display | grid |
|
|
71
|
+
| Gap | 1rem |
|
|
69
72
|
| Align content | baseline (children stack top-aligned) |
|
|
70
73
|
|
|
71
74
|
### Grid Spacing
|
|
72
75
|
|
|
73
|
-
| Property
|
|
74
|
-
|
|
76
|
+
| Property | Value |
|
|
77
|
+
| ----------------- | ---------- |
|
|
75
78
|
| Container spacing | 2 (≈ 16px) |
|
|
76
79
|
|
|
77
80
|
**CSS-only implementation notes:**
|
|
81
|
+
|
|
78
82
|
- Column: `display: grid; gap: 1rem; align-content: baseline; width: 100%`.
|
|
79
83
|
- Outer container: `display: grid; grid-template-columns: 1fr; gap: 16px`.
|
|
80
84
|
- `OneColumnTab`: just `<div>` with no special styling.
|
|
@@ -96,14 +100,15 @@ Derived from `OneColumn.tsx` makeStyles:
|
|
|
96
100
|
|
|
97
101
|
Listed design systems are examples only.
|
|
98
102
|
|
|
99
|
-
| Design System
|
|
100
|
-
|
|
103
|
+
| Design System | Recommended Component |
|
|
104
|
+
| ------------------ | -------------------------------------------------------- |
|
|
101
105
|
| Default (CSS only) | `<div style="display:grid;gap:1rem;">` wrapping children |
|
|
102
|
-
| MUI
|
|
103
|
-
| Ant Design
|
|
104
|
-
| Chakra UI
|
|
105
|
-
| Shadcn/ui
|
|
106
|
+
| MUI | `<Grid container spacing={2}><Grid size={{ xs: 12 }}>` |
|
|
107
|
+
| Ant Design | `<Row><Col span={24}>` |
|
|
108
|
+
| Chakra UI | `<Stack spacing={4}>` or `<Grid templateColumns='1fr'>` |
|
|
109
|
+
| Shadcn/ui | Tailwind `flex flex-col gap-4` |
|
|
106
110
|
|
|
107
111
|
When implementing in a specific design system:
|
|
112
|
+
|
|
108
113
|
- All children render in a single column, top-aligned
|
|
109
114
|
- `OneColumnTab` variant is a minimal `<div>` container with no layout styling
|
|
@@ -18,20 +18,21 @@ Renders promoted filter controls above a list view. Filter fields are created dy
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `viewName`
|
|
24
|
-
| `dataPageName`
|
|
25
|
-
| `promotedFilters` | `array`
|
|
26
|
-
| `payload`
|
|
27
|
-
| `isSearchable`
|
|
28
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ----------------- | ---------- | -------- | ------------------------------------------------------------- |
|
|
23
|
+
| `viewName` | `string` | Yes | Name of the promoted filters view — used as transient item ID |
|
|
24
|
+
| `dataPageName` | `string` | Yes | Data page name passed to `ListView` |
|
|
25
|
+
| `promotedFilters` | `array` | Yes | Array of filter field definitions `{ name, classID, ... }` |
|
|
26
|
+
| `payload` | `object` | No | Base query payload for the data page |
|
|
27
|
+
| `isSearchable` | `boolean` | No | Whether the ListView below shows a global search input |
|
|
28
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
29
29
|
|
|
30
30
|
## Behavioral Contract
|
|
31
31
|
|
|
32
32
|
### Transient Data Setup
|
|
33
33
|
|
|
34
34
|
On mount:
|
|
35
|
+
|
|
35
36
|
1. Build `filtersWithClassID`: add `classID` to each filter from `getPConnect().getContextName()` or metadata.
|
|
36
37
|
2. Call `PCore.getDataPageUtils().addTransientItem({ id: viewName, data: filtersWithClassID })`.
|
|
37
38
|
3. This creates a transient data context for the filter fields.
|
|
@@ -39,12 +40,14 @@ On mount:
|
|
|
39
40
|
### Filters Sub-Component
|
|
40
41
|
|
|
41
42
|
The `<Filters>` inline sub-component:
|
|
43
|
+
|
|
42
44
|
1. Creates each filter field via `PCore.createPConnect({ ... filterFieldConfig, contextName: viewName + '.' + filter.name })`.
|
|
43
45
|
2. Renders each created pConnect as a field component via `createElement(PConnectComponent, { ...fieldConfig })`.
|
|
44
46
|
|
|
45
47
|
### Search
|
|
46
48
|
|
|
47
49
|
On Search button click:
|
|
50
|
+
|
|
48
51
|
1. Call `getFilterData(viewName, promotedFilters)`:
|
|
49
52
|
- For each filter, read current value from transient store.
|
|
50
53
|
- Build filter objects: `{ lhs: { field: filter.name }, comparator: 'EQ', rhs: { value: currentValue } }`.
|
|
@@ -55,6 +58,7 @@ On Search button click:
|
|
|
55
58
|
### Clear
|
|
56
59
|
|
|
57
60
|
On Clear button click:
|
|
61
|
+
|
|
58
62
|
1. Call `clearFilterData(viewName, promotedFilters)`:
|
|
59
63
|
- For each filter, reset the transient value to `''` or `null`.
|
|
60
64
|
2. Reset `payload.filters` to `[]`.
|
|
@@ -77,13 +81,14 @@ On Clear button click:
|
|
|
77
81
|
|
|
78
82
|
## Visual Specifications
|
|
79
83
|
|
|
80
|
-
| Element
|
|
81
|
-
|
|
84
|
+
| Element | Description |
|
|
85
|
+
| ----------------- | ------------------------------------------ |
|
|
82
86
|
| Filter fields row | Horizontal flex row of filter field inputs |
|
|
83
|
-
| Action buttons
|
|
84
|
-
| ListView
|
|
87
|
+
| Action buttons | Clear + Search buttons, right-aligned |
|
|
88
|
+
| ListView | Below the filter row, full width |
|
|
85
89
|
|
|
86
90
|
**CSS-only implementation notes:**
|
|
91
|
+
|
|
87
92
|
- Outer container: `display: flex; flex-direction: column; gap: 1rem`.
|
|
88
93
|
- Filter fields row: `display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: flex-end`.
|
|
89
94
|
- Action buttons row: `display: flex; gap: 0.5rem; justify-content: flex-end`.
|
|
@@ -110,15 +115,16 @@ On Clear button click:
|
|
|
110
115
|
|
|
111
116
|
Listed design systems are examples only.
|
|
112
117
|
|
|
113
|
-
| Design System
|
|
114
|
-
|
|
115
|
-
| Default (CSS only) | `display: flex; flex-wrap: wrap` inputs
|
|
116
|
-
| MUI
|
|
117
|
-
| Ant Design
|
|
118
|
-
| Chakra UI
|
|
119
|
-
| Shadcn/ui
|
|
118
|
+
| Design System | Filter Row | Action Buttons |
|
|
119
|
+
| ------------------ | ---------------------------------------------- | ------------------------------------ |
|
|
120
|
+
| Default (CSS only) | `display: flex; flex-wrap: wrap` inputs | `<button>` for Clear/Search |
|
|
121
|
+
| MUI | `<Box display='flex' flexWrap='wrap' gap={1}>` | `<Button>` variants |
|
|
122
|
+
| Ant Design | `<Space wrap>` | `<Button type='primary'>` for Search |
|
|
123
|
+
| Chakra UI | `<HStack wrap='wrap'>` | `<Button colorScheme='blue'>` |
|
|
124
|
+
| Shadcn/ui | Tailwind `flex flex-wrap gap-2` | `<Button>` variants |
|
|
120
125
|
|
|
121
126
|
When implementing in a specific design system:
|
|
127
|
+
|
|
122
128
|
- Transient data pattern is critical — each filter field must read/write to `PCore`'s transient store
|
|
123
129
|
- `getFilterData` builds the query filter payload — use it unchanged
|
|
124
130
|
- Transient item cleanup on unmount is required to avoid stale data
|