@pega/sdk 0.0.2 → 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 +14 -57
- 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 +38 -0
- package/templates/react-sdk-reference/.claude/instructions/dse-component.md +75 -0
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +75 -0
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +93 -0
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +88 -0
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +152 -0
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +193 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +158 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +140 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +153 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +165 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +138 -0
- package/templates/react-sdk-reference/.claude/prompts/identify-components.md +105 -0
- package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +519 -0
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +140 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +137 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +152 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +159 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +148 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +134 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +113 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +118 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +155 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +85 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +232 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +137 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +291 -0
- package/templates/react-sdk-reference/.claude/skills/field-components.md +295 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +113 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +211 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +175 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +101 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +106 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +99 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +134 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +96 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +88 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +145 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +188 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +173 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +93 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +129 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +167 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +149 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +134 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +231 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +155 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +98 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +117 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +107 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +89 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +86 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +203 -0
- package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +70 -0
- package/templates/react-sdk-reference/.claude/skills/template-components.md +321 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +150 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +124 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +86 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +106 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +137 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +131 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +124 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +104 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +112 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +90 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +97 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +80 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +80 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +106 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +112 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +116 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +108 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +82 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +70 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +142 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +82 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +143 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +114 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +130 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +142 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +131 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +108 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +82 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +133 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +152 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +139 -0
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +260 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +84 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +151 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +110 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +206 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +103 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +118 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +169 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +198 -0
- package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +41 -0
- package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +78 -0
- package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +74 -0
- package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +247 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +193 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +131 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +144 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +156 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +110 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/replace-design-system.mdrules +524 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +145 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +159 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +116 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +120 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +88 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +211 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +294 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +299 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +117 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +208 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +163 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +111 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +104 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +108 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +103 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +119 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +95 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +92 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +141 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +169 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +169 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +97 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +115 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +151 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +143 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +221 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +153 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +101 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +106 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +109 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +93 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +90 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +185 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +73 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +327 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +127 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +88 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +105 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +131 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +125 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +107 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +115 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +93 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +100 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +83 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +83 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +106 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +114 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +118 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +109 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +90 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +73 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +144 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +85 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +146 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +114 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +132 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +108 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +84 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +155 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +276 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +87 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +151 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +205 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +104 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +119 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +172 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +195 -0
- package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +95 -0
- package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +90 -0
- package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
- package/templates/react-sdk-reference/.github/copilot-instructions.md +58 -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 +187 -16
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +411 -0
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +205 -0
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +223 -0
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +229 -0
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +208 -0
- 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 +60 -18
- package/templates/react-sdk-reference/.github/skills/field-components.md +56 -23
- 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 +50 -14
- 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 +52 -26
- 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 +216 -29
- package/templates/react-sdk-reference/index.html +1 -4
- package/templates/react-sdk-reference/package.json +16 -16
- package/templates/react-sdk-reference/pega-constellationjs-0.26.3-local.tgz +0 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/sdk-config.json +1 -1
- 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 +52 -27
- 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
- package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +0 -48
- package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +0 -81
- package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +0 -41
- package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +0 -49
- package/templates/react-sdk-reference/.github/skills/swap-design-system.md +0 -105
- package/templates/react-sdk-reference/pega-constellationjs-0.26.2.tgz +0 -0
|
@@ -24,6 +24,7 @@ npm run build
|
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
### What to check:
|
|
27
|
+
|
|
27
28
|
- Zero TypeScript errors
|
|
28
29
|
- Zero build warnings related to missing imports
|
|
29
30
|
- Output bundle is generated
|
|
@@ -38,6 +39,7 @@ npm run dev
|
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
### What to verify:
|
|
42
|
+
|
|
41
43
|
1. App loads without console errors
|
|
42
44
|
2. "Create Case" button appears after auth
|
|
43
45
|
3. Clicking "Create Case" renders the form
|
|
@@ -50,14 +52,14 @@ npm run dev
|
|
|
50
52
|
|
|
51
53
|
## Common Issues
|
|
52
54
|
|
|
53
|
-
| Symptom
|
|
54
|
-
|
|
55
|
-
| "X is not registered" console error
|
|
56
|
-
| Field value doesn't persist after blur
|
|
57
|
-
| Read-only view shows nothing
|
|
58
|
-
| TypeScript error on `getPConnect`
|
|
59
|
-
| Build fails on CSS import
|
|
60
|
-
| "Cannot read property of undefined" on theme | Design system provider missing
|
|
55
|
+
| Symptom | Cause | Fix |
|
|
56
|
+
| -------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
57
|
+
| "X is not registered" console error | Component missing from `component-map.ts` | Add the import + map entry |
|
|
58
|
+
| Field value doesn't persist after blur | `handleEvent` not called on blur | Add `onBlur` handler calling `handleEvent(actions, 'changeNblur', propName, value)` |
|
|
59
|
+
| Read-only view shows nothing | Missing `displayMode` handling | Add the `DISPLAY_ONLY` / `STACKED_LARGE_VAL` checks |
|
|
60
|
+
| TypeScript error on `getPConnect` | Wrong props interface | Extend `PConnFieldProps` or `PConnProps` from `@pega/sdk-react` |
|
|
61
|
+
| Build fails on CSS import | Missing CSS loader config | Ensure Vite config handles `.css` imports |
|
|
62
|
+
| "Cannot read property of undefined" on theme | Design system provider missing | Wrap app in the design system's ThemeProvider/Provider |
|
|
61
63
|
|
|
62
64
|
---
|
|
63
65
|
|
|
@@ -48,35 +48,73 @@ Templates typically receive children through `getPConnect().getChildren()` rathe
|
|
|
48
48
|
|
|
49
49
|
Used for: TwoColumn, OneColumn, NarrowWide, WideNarrow
|
|
50
50
|
|
|
51
|
+
This pattern is design-system agnostic. The `// [DS GRID]` section must be replaced with your design system's grid or flex layout primitive — see the "Design System Adaptation" section below.
|
|
52
|
+
|
|
51
53
|
```typescript
|
|
52
54
|
import type { PropsWithChildren, ReactElement } from 'react';
|
|
53
|
-
|
|
54
|
-
import
|
|
55
|
+
// Import your design system layout primitive here:
|
|
56
|
+
// e.g. import { Grid } from 'antd';
|
|
57
|
+
// e.g. import { SimpleGrid } from '@chakra-ui/react';
|
|
58
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
55
59
|
|
|
56
60
|
interface TwoColumnProps extends PConnProps {
|
|
57
|
-
templateCol?: string;
|
|
61
|
+
templateCol?: string; // e.g. '1fr 1fr', '2fr 1fr'
|
|
58
62
|
}
|
|
59
63
|
|
|
60
64
|
export default function TwoColumn(props: PropsWithChildren<TwoColumnProps>) {
|
|
61
65
|
const { children, templateCol = '1fr 1fr' } = props;
|
|
62
66
|
const childrenToRender = children as ReactElement[];
|
|
63
67
|
|
|
64
|
-
// Parse templateCol
|
|
68
|
+
// Parse templateCol into column width ratios
|
|
69
|
+
// Strip unit suffixes, split on whitespace, convert to numbers
|
|
65
70
|
const colArray = templateCol.replaceAll(/[a-z]+/g, '').split(/\s/).map(Number);
|
|
66
71
|
const totalCols = colArray.reduce((v, itm) => itm + v, 0);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const bSize = (ratio * colArray[1]) as GridSize;
|
|
72
|
+
// colArray[0] / totalCols = left column fraction
|
|
73
|
+
// colArray[1] / totalCols = right column fraction
|
|
70
74
|
|
|
75
|
+
// [DS GRID] — render two children in a responsive grid using the computed ratios
|
|
76
|
+
// On mobile (narrow viewport): both columns should stack to full width
|
|
77
|
+
// On desktop: apply the computed left/right ratio
|
|
71
78
|
return (
|
|
72
|
-
<
|
|
73
|
-
<
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
<YourDesignSystemGrid>
|
|
80
|
+
<YourDesignSystemColumn ratio={colArray[0] / totalCols}>
|
|
81
|
+
{childrenToRender[0]}
|
|
82
|
+
</YourDesignSystemColumn>
|
|
83
|
+
<YourDesignSystemColumn ratio={colArray[1] / totalCols}>
|
|
84
|
+
{childrenToRender[1]}
|
|
85
|
+
</YourDesignSystemColumn>
|
|
86
|
+
</YourDesignSystemGrid>
|
|
76
87
|
);
|
|
77
88
|
}
|
|
78
89
|
```
|
|
79
90
|
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Design System Adaptation (Layout Templates Only)
|
|
94
|
+
|
|
95
|
+
> Form templates and page templates use the PConnect bridge pattern and do **not** use any design system primitives. This section applies only to layout templates: TwoColumn, OneColumn, NarrowWide, WideNarrow, and their sub-variants.
|
|
96
|
+
|
|
97
|
+
**1. Check the component-specific skill file** — `.github/skills/template-skills/<ComponentName>.md` contains a **Design System Mapping** table where available. Use it as a starting point.
|
|
98
|
+
|
|
99
|
+
**2. If the chosen design system is not listed** — use the **component purpose** description to identify the appropriate DS layout primitive (grid, flex, columns).
|
|
100
|
+
|
|
101
|
+
**3. Discover the API from installed packages** — confirm layout component names and props from `.d.ts` before writing JSX:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Grid\|Columns\|Flex" | head -5
|
|
105
|
+
grep -A 30 "interface.*Props" <path-to-file>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**4. Column ratio mapping** — the `templateCol` prop (e.g., `'2fr 1fr'`) gives you fractional widths. Map to your DS's column system:
|
|
109
|
+
|
|
110
|
+
| `templateCol` | Fraction | MUI 12-col | CSS `grid-template-columns` |
|
|
111
|
+
| ------------- | --------- | ---------- | --------------------------- |
|
|
112
|
+
| `'1fr 1fr'` | 50% / 50% | 6 / 6 | `1fr 1fr` |
|
|
113
|
+
| `'2fr 1fr'` | 67% / 33% | 8 / 4 | `2fr 1fr` |
|
|
114
|
+
| `'1fr 2fr'` | 33% / 67% | 4 / 8 | `1fr 2fr` |
|
|
115
|
+
|
|
116
|
+
**5. Responsive behavior** — on mobile, both columns must stack to full width. Use your DS's responsive breakpoint props or a CSS media query.
|
|
117
|
+
|
|
80
118
|
### Form Template (renders children via PConnect bridge)
|
|
81
119
|
|
|
82
120
|
Used for: DefaultForm, HierarchicalForm
|
|
@@ -161,9 +199,7 @@ import createPConnectComponent from '../../helpers/react_pconnect';
|
|
|
161
199
|
const children = getPConnect().getChildren();
|
|
162
200
|
|
|
163
201
|
// Render each child through the PConnect bridge
|
|
164
|
-
children.map((child, i) =>
|
|
165
|
-
createElement(createPConnectComponent(), { ...child, key: `child-${i}` }),
|
|
166
|
-
);
|
|
202
|
+
children.map((child, i) => createElement(createPConnectComponent(), { ...child, key: `child-${i}` }));
|
|
167
203
|
```
|
|
168
204
|
|
|
169
205
|
### 3. State-connected children (DefaultForm pattern)
|
|
@@ -18,11 +18,11 @@ Renders a multi-section advanced search form where search fields are organized i
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `dataPageName` | `string`
|
|
24
|
-
| `parameters`
|
|
25
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| -------------- | ---------- | -------- | ---------------------------------- |
|
|
23
|
+
| `dataPageName` | `string` | Yes | Data page for search results |
|
|
24
|
+
| `parameters` | `object` | No | Parameters passed to the data page |
|
|
25
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
26
26
|
|
|
27
27
|
## Behavioral Contract
|
|
28
28
|
|
|
@@ -42,9 +42,12 @@ Renders a multi-section advanced search form where search fields are organized i
|
|
|
42
42
|
### Context (`DataReferenceAdvancedSearchContext`)
|
|
43
43
|
|
|
44
44
|
Provides shared config to `SearchGroups`:
|
|
45
|
+
|
|
45
46
|
```tsx
|
|
46
47
|
<DataReferenceAdvancedSearchContext.Provider value={{ dataPageName, parameters, getPConnect }}>
|
|
47
|
-
{searchGroups.map((group) =>
|
|
48
|
+
{searchGroups.map((group) => (
|
|
49
|
+
<SearchGroups key={group.label} group={group} />
|
|
50
|
+
))}
|
|
48
51
|
</DataReferenceAdvancedSearchContext.Provider>
|
|
49
52
|
```
|
|
50
53
|
|
|
@@ -66,13 +69,14 @@ Renders a single search group section: a heading + a list of editable search fie
|
|
|
66
69
|
|
|
67
70
|
### Props
|
|
68
71
|
|
|
69
|
-
| Prop
|
|
70
|
-
|
|
72
|
+
| Prop | Type | Description |
|
|
73
|
+
| ------- | -------- | ---------------------------------- |
|
|
71
74
|
| `group` | `object` | `{ label: string, fields: array }` |
|
|
72
75
|
|
|
73
76
|
### Behavioral Contract
|
|
74
77
|
|
|
75
78
|
For each field in `group.fields`:
|
|
79
|
+
|
|
76
80
|
1. Get `firstChildPConnect = getPConnect().getChildren()[0]`.
|
|
77
81
|
2. Create an editable field component: `firstChildPConnect.createComponent({ type: field.type, config: { ...field.config } })`.
|
|
78
82
|
3. Render the created component alongside a `<SearchGroups>` label row.
|
|
@@ -94,18 +98,19 @@ For each field in `group.fields`:
|
|
|
94
98
|
|
|
95
99
|
### AdvancedSearch Container
|
|
96
100
|
|
|
97
|
-
| Element
|
|
98
|
-
|
|
101
|
+
| Element | Description |
|
|
102
|
+
| --------------- | --------------------------------------- |
|
|
99
103
|
| Outer container | Vertical stack of search group sections |
|
|
100
104
|
|
|
101
105
|
### SearchGroups Section
|
|
102
106
|
|
|
103
|
-
| Element
|
|
104
|
-
|
|
105
|
-
| Group heading | `<h4>` with group label
|
|
106
|
-
| Field rows
|
|
107
|
+
| Element | Description |
|
|
108
|
+
| ------------- | ------------------------------------- |
|
|
109
|
+
| Group heading | `<h4>` with group label |
|
|
110
|
+
| Field rows | Each field rendered as a form control |
|
|
107
111
|
|
|
108
112
|
**CSS-only implementation notes:**
|
|
113
|
+
|
|
109
114
|
- Outer container: `display: flex; flex-direction: column; gap: 1.5rem`.
|
|
110
115
|
- Group section: `display: flex; flex-direction: column; gap: 0.75rem`.
|
|
111
116
|
- Group heading: `font-size: 1rem; font-weight: 600; margin-bottom: 0.25rem`.
|
|
@@ -130,15 +135,16 @@ For each field in `group.fields`:
|
|
|
130
135
|
|
|
131
136
|
Listed design systems are examples only.
|
|
132
137
|
|
|
133
|
-
| Design System
|
|
134
|
-
|
|
135
|
-
| Default (CSS only) | `<h4>`
|
|
136
|
-
| MUI
|
|
137
|
-
| Ant Design
|
|
138
|
-
| Chakra UI
|
|
139
|
-
| Shadcn/ui
|
|
138
|
+
| Design System | Group Heading | Field Layout |
|
|
139
|
+
| ------------------ | ------------------------------ | ------------------------------ |
|
|
140
|
+
| Default (CSS only) | `<h4>` | CSS grid 2-col (label + input) |
|
|
141
|
+
| MUI | `<Typography variant='h6'>` | `<Grid container>` |
|
|
142
|
+
| Ant Design | `<Typography.Title level={5}>` | `<Form.Item>` |
|
|
143
|
+
| Chakra UI | `<Heading size='sm'>` | `<FormControl>` rows |
|
|
144
|
+
| Shadcn/ui | `<h4>` or `<Label>` | Tailwind grid |
|
|
140
145
|
|
|
141
146
|
When implementing in a specific design system:
|
|
147
|
+
|
|
142
148
|
- `DataReferenceAdvancedSearchContext` must be provided — `SearchGroups` consumes it via `useContext`
|
|
143
149
|
- Field deduplication by `field.value` must happen before rendering
|
|
144
150
|
- `createComponent` creates live editable fields — render via `createElement(PConnectComponent, fieldConfig)`
|
|
@@ -18,14 +18,14 @@ The outermost container for the Pega SDK React app. Determines whether the app i
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `pages`
|
|
24
|
-
| `caseTypes`
|
|
25
|
-
| `portalName`
|
|
26
|
-
| `displayName` | `string`
|
|
27
|
-
| `getPConnect` | `function`
|
|
28
|
-
| `children`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------- | ----------- | -------- | ------------------------------------------------------------ |
|
|
23
|
+
| `pages` | `array` | Yes | Array of portal page objects `{ name, pyLabel, linkUrl }` |
|
|
24
|
+
| `caseTypes` | `array` | No | Fallback case types (overridden by data page fetch if empty) |
|
|
25
|
+
| `portalName` | `string` | Yes | Portal identifier — determines WSS vs standard rendering |
|
|
26
|
+
| `displayName` | `string` | No | Operator display name for avatar |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
|
+
| `children` | `ReactNode` | Yes | Main content area |
|
|
29
29
|
|
|
30
30
|
## Behavioral Contract
|
|
31
31
|
|
|
@@ -80,6 +80,7 @@ The outermost container for the Pega SDK React app. Determines whether the app i
|
|
|
80
80
|
## Visual Specifications
|
|
81
81
|
|
|
82
82
|
**CSS-only implementation notes:**
|
|
83
|
+
|
|
83
84
|
- Shell wrapper: `display: flex; flex-direction: column; height: 100vh`.
|
|
84
85
|
- Nav bar: `flex: 0 0 auto` (fixed height).
|
|
85
86
|
- Alert banner: `flex: 0 0 auto` (shown below nav, pushes content down).
|
|
@@ -108,15 +109,16 @@ The outermost container for the Pega SDK React app. Determines whether the app i
|
|
|
108
109
|
|
|
109
110
|
Listed design systems are examples only.
|
|
110
111
|
|
|
111
|
-
| Design System
|
|
112
|
-
|
|
113
|
-
| Default (CSS only) | `<header>` + custom nav
|
|
114
|
-
| MUI
|
|
115
|
-
| Ant Design
|
|
116
|
-
| Chakra UI
|
|
117
|
-
| Shadcn/ui
|
|
112
|
+
| Design System | Nav Bar | Alert Banner | Shell Layout |
|
|
113
|
+
| ------------------ | ------------------------ | -------------------- | --------------------------------------------- |
|
|
114
|
+
| Default (CSS only) | `<header>` + custom nav | `<div role='alert'>` | CSS flexbox column |
|
|
115
|
+
| MUI | `<AppBar>` + `<Toolbar>` | `<Alert>` | `<Box display='flex' flexDirection='column'>` |
|
|
116
|
+
| Ant Design | `<Layout.Header>` | `<Alert>` | `<Layout>` |
|
|
117
|
+
| Chakra UI | `<Box as='header'>` | `<Alert>` | `<Flex direction='column'>` |
|
|
118
|
+
| Shadcn/ui | Custom header | `<Alert>` | Tailwind `flex flex-col h-screen` |
|
|
118
119
|
|
|
119
120
|
When implementing in a specific design system:
|
|
121
|
+
|
|
120
122
|
- WSS vs portal detection must remain — the nav bar component differs for each
|
|
121
123
|
- Logo URL must be loaded asynchronously from `PCore.getAssetLoader()`
|
|
122
124
|
- `NavContext.Provider` must wrap children so descendant nav-aware components can access links
|
|
@@ -18,16 +18,16 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `children`
|
|
24
|
-
| `layout`
|
|
25
|
-
| `heading`
|
|
26
|
-
| `message`
|
|
27
|
-
| `imageTheme`
|
|
28
|
-
| `backgroundImage` | `string`
|
|
29
|
-
| `backgroundColor` | `string`
|
|
30
|
-
| `tintImage`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ----------------- | ------------- | -------- | ---------------------------------------------------------------------------------------------- |
|
|
23
|
+
| `children` | `ReactNode[]` | Yes | At least 2 children — `[0]` → left (`a`) slot, `[1]` → right (`b`) slot |
|
|
24
|
+
| `layout` | `string` | No | Column layout variant for `Banner`: `'two-column'` (default), `'narrow-wide'`, `'wide-narrow'` |
|
|
25
|
+
| `heading` | `string` | No | Hero section heading text. Default `''` |
|
|
26
|
+
| `message` | `string` | No | Hero section message/subtitle. Default `''` |
|
|
27
|
+
| `imageTheme` | `string` | No | Banner image theme (e.g., `'light'`). Default `'light'` |
|
|
28
|
+
| `backgroundImage` | `string` | No | URL of the background image for the hero. Default `''` |
|
|
29
|
+
| `backgroundColor` | `string` | No | Background color for the hero. Default `''` |
|
|
30
|
+
| `tintImage` | `boolean` | No | Whether to tint the background image. Default `false` |
|
|
31
31
|
|
|
32
32
|
## Behavioral Contract
|
|
33
33
|
|
|
@@ -45,10 +45,12 @@ A thin template wrapper that delegates entirely to the `Banner` DSE component. T
|
|
|
45
45
|
This component has no independent visual output — all visual behavior is defined by the `Banner` DSE component. See [`design-system-extension-skills/Banner.md`](../design-system-extension-skills/Banner.md) for full visual specs.
|
|
46
46
|
|
|
47
47
|
Key visual behaviors inherited from `Banner`:
|
|
48
|
+
|
|
48
49
|
- Hero: full-width background image section, height `19rem`, centered title and message overlay
|
|
49
50
|
- Content area: two-column grid below the hero, column widths driven by `variant`/`layout`
|
|
50
51
|
|
|
51
52
|
**CSS-only implementation notes:**
|
|
53
|
+
|
|
52
54
|
- This template creates no CSS of its own — implement it as a pure pass-through to `Banner`.
|
|
53
55
|
- The `layout` prop maps directly to `Banner`'s `variant` prop.
|
|
54
56
|
- `heading` → `Banner.banner.title`, `message` → `Banner.banner.message`.
|
|
@@ -70,14 +72,15 @@ Key visual behaviors inherited from `Banner`:
|
|
|
70
72
|
|
|
71
73
|
Listed design systems are examples only.
|
|
72
74
|
|
|
73
|
-
| Design System
|
|
74
|
-
|
|
75
|
+
| Design System | Recommended Component |
|
|
76
|
+
| ------------------ | -------------------------------------------------------------------- |
|
|
75
77
|
| Default (CSS only) | Pass-through to `Banner` — implement Banner's CSS hero + grid layout |
|
|
76
|
-
| MUI
|
|
77
|
-
| Ant Design
|
|
78
|
-
| Chakra UI
|
|
79
|
-
| Shadcn/ui
|
|
78
|
+
| MUI | Pass-through to `Banner` (MUI-based) |
|
|
79
|
+
| Ant Design | Pass-through to `Banner` (Ant-based) |
|
|
80
|
+
| Chakra UI | Pass-through to `Banner` (Chakra-based) |
|
|
81
|
+
| Shadcn/ui | Pass-through to `Banner` (Shadcn-based) |
|
|
80
82
|
|
|
81
83
|
When implementing in a specific design system:
|
|
84
|
+
|
|
82
85
|
- `BannerPage` is always a thin wrapper — implement `Banner` first, then `BannerPage` simply delegates to it
|
|
83
86
|
- Prop mapping: `layout` → `variant`, `heading` → `banner.title`, `message` → `banner.message`, `backgroundImage` → `banner.backgroundImage`
|
|
@@ -18,12 +18,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `children`
|
|
24
|
-
| `arPrimaryFields`
|
|
25
|
-
| `arSecondaryFields` | `array`
|
|
26
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------------- | ------------- | -------- | ------------------------------------------------------- |
|
|
23
|
+
| `children` | `ReactNode[]` | No | Region children when fields come from PConnect metadata |
|
|
24
|
+
| `arPrimaryFields` | `array` | No | Array of primary field objects (direct prop) |
|
|
25
|
+
| `arSecondaryFields` | `array` | No | Array of secondary field objects (direct prop) |
|
|
26
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
27
27
|
|
|
28
28
|
## Behavioral Contract
|
|
29
29
|
|
|
@@ -32,10 +32,12 @@ Displays a case's key summary data in a structured summary panel. Primary fields
|
|
|
32
32
|
Two modes — prefer direct props if provided:
|
|
33
33
|
|
|
34
34
|
**Mode A — Direct props:**
|
|
35
|
+
|
|
35
36
|
- `arPrimaryFields` and `arSecondaryFields` are passed directly.
|
|
36
37
|
- Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` to localize values.
|
|
37
38
|
|
|
38
39
|
**Mode B — Child extraction:**
|
|
40
|
+
|
|
39
41
|
- Extract primary and secondary regions from `children` by type/name matching.
|
|
40
42
|
- Primary region: first region child (or `type === 'Region' && name === 'Primary'`).
|
|
41
43
|
- Secondary region: second region child (or `type === 'Region' && name === 'Secondary'`).
|
|
@@ -45,6 +47,7 @@ Two modes — prefer direct props if provided:
|
|
|
45
47
|
### `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)`
|
|
46
48
|
|
|
47
49
|
Helper that:
|
|
50
|
+
|
|
48
51
|
1. Iterates each field in both arrays.
|
|
49
52
|
2. Localizes the field value via `PCore.getLocaleUtils().getLocaleValue(value, classID, value)`.
|
|
50
53
|
3. Returns `{ arPrimaryFields: localizedPrimary, arSecondaryFields: localizedSecondary }`.
|
|
@@ -52,6 +55,7 @@ Helper that:
|
|
|
52
55
|
### Render
|
|
53
56
|
|
|
54
57
|
Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
|
|
58
|
+
|
|
55
59
|
- `arPrimaryFields` — array of `{ name, value }` objects for primary display
|
|
56
60
|
- `arSecondaryFields` — array of `{ name, value, displayLabel }` objects for secondary display
|
|
57
61
|
|
|
@@ -62,6 +66,7 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
|
|
|
62
66
|
- Secondary fields: label + value pairs.
|
|
63
67
|
|
|
64
68
|
**CSS-only implementation notes (for `CaseSummaryFields` wrapper):**
|
|
69
|
+
|
|
65
70
|
- Container: `display: flex; flex-direction: column; gap: 8px`.
|
|
66
71
|
- Primary field value: `font-size: 1rem; font-weight: 600`.
|
|
67
72
|
- Secondary field row: `display: flex; gap: 4px; font-size: 0.875rem`.
|
|
@@ -86,15 +91,16 @@ Delegates entirely to `<CaseSummaryFields>` DSE component, passing:
|
|
|
86
91
|
|
|
87
92
|
Listed design systems are examples only.
|
|
88
93
|
|
|
89
|
-
| Design System
|
|
90
|
-
|
|
91
|
-
| Default (CSS only) | Flexbox column with CSS-styled field rows
|
|
92
|
-
| MUI
|
|
93
|
-
| Ant Design
|
|
94
|
-
| Chakra UI
|
|
95
|
-
| Shadcn/ui
|
|
94
|
+
| Design System | Recommended Approach |
|
|
95
|
+
| ------------------ | -------------------------------------------------- |
|
|
96
|
+
| Default (CSS only) | Flexbox column with CSS-styled field rows |
|
|
97
|
+
| MUI | `<Typography>` variants for primary/secondary text |
|
|
98
|
+
| Ant Design | `<Descriptions>` with `bordered={false}` |
|
|
99
|
+
| Chakra UI | `<VStack>` with `<Text>` variants |
|
|
100
|
+
| Shadcn/ui | Custom `<dl>/<dt>/<dd>` or card |
|
|
96
101
|
|
|
97
102
|
When implementing in a specific design system:
|
|
103
|
+
|
|
98
104
|
- Always localize field values before display — use `PCore.getLocaleUtils().getLocaleValue()`
|
|
99
105
|
- `CaseSummaryFields` is a DSE component — implement it separately and call it from here
|
|
100
106
|
- Primary fields have no labels; secondary fields have labels
|
|
@@ -20,17 +20,18 @@ The primary case workspace template. Extracts named regions from PConnect childr
|
|
|
20
20
|
|
|
21
21
|
## Props
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `children`
|
|
26
|
-
| `displayOnlyFA` | `boolean`
|
|
27
|
-
| `getPConnect`
|
|
23
|
+
| Prop | Type | Required | Description |
|
|
24
|
+
| --------------- | ------------- | -------- | -------------------------------------------------------------- |
|
|
25
|
+
| `children` | `ReactNode[]` | Yes | Named region children (summary, stages, todo, utilities, tabs) |
|
|
26
|
+
| `displayOnlyFA` | `boolean` | No | If true, renders only the to-do region (focused action mode) |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
29
|
## Behavioral Contract
|
|
30
30
|
|
|
31
31
|
### Region Extraction
|
|
32
32
|
|
|
33
33
|
Use `getRawMetadata()` to access `children` with `type` and `name` metadata. Extract by:
|
|
34
|
+
|
|
34
35
|
- **Summary region:** `type === 'Region' && name === 'Summary'`
|
|
35
36
|
- **Stages region:** `type === 'Region' && name === 'Stages'`
|
|
36
37
|
- **ToDo region:** `type === 'Region' && name === 'ToDo'`
|
|
@@ -48,6 +49,7 @@ Render each region as a React child element using `createElement(PConnectCompone
|
|
|
48
49
|
### displayOnlyFA Mode
|
|
49
50
|
|
|
50
51
|
If `displayOnlyFA === true`:
|
|
52
|
+
|
|
51
53
|
- Render only the ToDo region, centered.
|
|
52
54
|
- Skip summary, stages, tabs, utilities rendering.
|
|
53
55
|
|
|
@@ -73,13 +75,14 @@ If `displayOnlyFA === true`:
|
|
|
73
75
|
ToDo
|
|
74
76
|
```
|
|
75
77
|
|
|
76
|
-
| Column | xs
|
|
77
|
-
|
|
78
|
-
| Left
|
|
79
|
-
| Center | 6
|
|
80
|
-
| Right
|
|
78
|
+
| Column | xs | Contents |
|
|
79
|
+
| ------ | --- | ------------------------------ |
|
|
80
|
+
| Left | 3 | Summary, Stages, ToDo regions |
|
|
81
|
+
| Center | 6 | Tabs region (deferred content) |
|
|
82
|
+
| Right | 3 | Utilities region |
|
|
81
83
|
|
|
82
84
|
**CSS-only implementation notes:**
|
|
85
|
+
|
|
83
86
|
- Outer grid: `display: grid; grid-template-columns: 25% 50% 25%; gap: 1rem`.
|
|
84
87
|
- Left column: `display: flex; flex-direction: column; gap: 0.5rem`.
|
|
85
88
|
- Center column: `overflow: hidden`.
|
|
@@ -104,10 +107,12 @@ If `displayOnlyFA === true`:
|
|
|
104
107
|
### ObjectPage
|
|
105
108
|
|
|
106
109
|
`ObjectPage` is registered as:
|
|
110
|
+
|
|
107
111
|
```tsx
|
|
108
112
|
// packages/sdk-react/src/components/template/ObjectPage/index.tsx
|
|
109
113
|
export { default } from '../CaseView';
|
|
110
114
|
```
|
|
115
|
+
|
|
111
116
|
- No separate implementation needed.
|
|
112
117
|
- In `component-map.ts`, register `ObjectPage` key pointing to the same component as `CaseView`.
|
|
113
118
|
|
|
@@ -117,15 +122,16 @@ export { default } from '../CaseView';
|
|
|
117
122
|
|
|
118
123
|
Listed design systems are examples only.
|
|
119
124
|
|
|
120
|
-
| Design System
|
|
121
|
-
|
|
122
|
-
| Default (CSS only) | CSS Grid 25/50/25
|
|
123
|
-
| MUI
|
|
124
|
-
| Ant Design
|
|
125
|
-
| Chakra UI
|
|
126
|
-
| Shadcn/ui
|
|
125
|
+
| Design System | Grid | Sidebar | Deferred Tabs |
|
|
126
|
+
| ------------------ | ----------------------------------------------------- | --------- | ------------------------------- |
|
|
127
|
+
| Default (CSS only) | CSS Grid 25/50/25 | `<aside>` | Intersection Observer lazy load |
|
|
128
|
+
| MUI | `<Grid container>` with `<Grid size={{ xs: 3/6/3 }}>` | `<Box>` | MUI `<Tabs>` + DeferLoad |
|
|
129
|
+
| Ant Design | `<Row><Col span={6/12/6}>` | `<Sider>` | `<Tabs>` lazy |
|
|
130
|
+
| Chakra UI | `<Grid templateColumns='1fr 2fr 1fr'>` | `<Box>` | Custom lazy tabs |
|
|
131
|
+
| Shadcn/ui | Tailwind `grid grid-cols-[1fr_2fr_1fr]` | `<aside>` | Custom |
|
|
127
132
|
|
|
128
133
|
When implementing in a specific design system:
|
|
134
|
+
|
|
129
135
|
- `displayOnlyFA` must completely bypass the grid — render only ToDo region
|
|
130
136
|
- Region extraction by metadata name is required — do not assume positional ordering
|
|
131
137
|
- Deferred loading is mandatory for performance — tab content must not all load at once
|
|
@@ -18,13 +18,13 @@ Renders a button that opens a dropdown menu containing all available case action
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `localActions`
|
|
24
|
-
| `processActions` | `array`
|
|
25
|
-
| `caseTypeID`
|
|
26
|
-
| `caseTypeName`
|
|
27
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ---------------- | ---------- | -------- | ---------------------------------------------- |
|
|
23
|
+
| `localActions` | `array` | No | Array of `{ ID, name }` local action objects |
|
|
24
|
+
| `processActions` | `array` | No | Array of `{ ID, name }` process action objects |
|
|
25
|
+
| `caseTypeID` | `string` | Yes | Case type identifier for label localization |
|
|
26
|
+
| `caseTypeName` | `string` | Yes | Case type display name for label localization |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
29
|
## Behavioral Contract
|
|
30
30
|
|
|
@@ -36,6 +36,7 @@ Renders a button that opens a dropdown menu containing all available case action
|
|
|
36
36
|
### Menu Items
|
|
37
37
|
|
|
38
38
|
The menu combines:
|
|
39
|
+
|
|
39
40
|
1. **Local actions** — each item triggers `getPConnect().getActionsApi().openLocalAction(action.ID, { caseID: getPConnect().getCaseInfo().getID() })`.
|
|
40
41
|
2. **Process actions** — each item triggers `getPConnect().getActionsApi().openProcessAction(action.ID, { ... })`.
|
|
41
42
|
|
|
@@ -44,9 +45,11 @@ If both groups exist, render a divider between them.
|
|
|
44
45
|
### Localized Action Labels
|
|
45
46
|
|
|
46
47
|
For localized case type context:
|
|
48
|
+
|
|
47
49
|
```
|
|
48
50
|
localeKey = `${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
|
|
49
51
|
```
|
|
52
|
+
|
|
50
53
|
Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, localeKey, action.name)`.
|
|
51
54
|
|
|
52
55
|
### Process Action Error Handling
|
|
@@ -65,21 +68,22 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
|
|
|
65
68
|
|
|
66
69
|
### Button
|
|
67
70
|
|
|
68
|
-
| Property | Value
|
|
69
|
-
|
|
70
|
-
| Label
|
|
71
|
-
| Variant
|
|
72
|
-
| Icon
|
|
71
|
+
| Property | Value |
|
|
72
|
+
| -------- | ------------------------------- |
|
|
73
|
+
| Label | Localized `"Actions"` |
|
|
74
|
+
| Variant | Outlined or secondary |
|
|
75
|
+
| Icon | Dropdown chevron or expand_more |
|
|
73
76
|
|
|
74
77
|
### Menu
|
|
75
78
|
|
|
76
|
-
| Property
|
|
77
|
-
|
|
78
|
-
| Position
|
|
79
|
-
| Divider
|
|
80
|
-
| Item height | Standard menu item height
|
|
79
|
+
| Property | Value |
|
|
80
|
+
| ----------- | --------------------------------------- |
|
|
81
|
+
| Position | Anchored below the button |
|
|
82
|
+
| Divider | Between local and process action groups |
|
|
83
|
+
| Item height | Standard menu item height |
|
|
81
84
|
|
|
82
85
|
**CSS-only implementation notes:**
|
|
86
|
+
|
|
83
87
|
- Button: `padding: 6px 12px; border: 1px solid var(--app-primary-color); border-radius: 4px; cursor: pointer`.
|
|
84
88
|
- Dropdown menu: `position: absolute; background: white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); border-radius: 4px; min-width: 160px; z-index: 1000`.
|
|
85
89
|
- Menu item: `padding: 8px 16px; cursor: pointer`. Hover: `background: var(--hover-bg)`.
|
|
@@ -87,11 +91,11 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
|
|
|
87
91
|
|
|
88
92
|
### Snackbar Toast
|
|
89
93
|
|
|
90
|
-
| Property
|
|
91
|
-
|
|
92
|
-
| Position
|
|
93
|
-
| Auto-hide | 3000ms
|
|
94
|
-
| Severity
|
|
94
|
+
| Property | Value |
|
|
95
|
+
| --------- | ----------------------------- |
|
|
96
|
+
| Position | Bottom-center or bottom-right |
|
|
97
|
+
| Auto-hide | 3000ms |
|
|
98
|
+
| Severity | Error (red) |
|
|
95
99
|
|
|
96
100
|
## Edge Cases & Special Logic
|
|
97
101
|
|
|
@@ -112,15 +116,16 @@ Action name localization: `PCore.getLocaleUtils().getLocaleValue(action.name, lo
|
|
|
112
116
|
|
|
113
117
|
Listed design systems are examples only.
|
|
114
118
|
|
|
115
|
-
| Design System
|
|
116
|
-
|
|
117
|
-
| Default (CSS only) | `<button>` + custom dropdown
|
|
118
|
-
| MUI
|
|
119
|
-
| Ant Design
|
|
120
|
-
| Chakra UI
|
|
121
|
-
| Shadcn/ui
|
|
119
|
+
| Design System | Button | Menu | Toast |
|
|
120
|
+
| ------------------ | -------------------------------------- | -------------------- | ----------------------------- |
|
|
121
|
+
| Default (CSS only) | `<button>` + custom dropdown | `<ul>/<li>` with CSS | Custom toast overlay |
|
|
122
|
+
| MUI | `<Button>` + `<Menu>/<MenuItem>` | MUI Menu | `<Snackbar>/<Alert>` |
|
|
123
|
+
| Ant Design | `<Dropdown menu={{ items }}>` | Ant Dropdown | `message.error()` |
|
|
124
|
+
| Chakra UI | `<Menu>/<MenuButton>/<MenuList>` | Chakra Menu | `useToast()` |
|
|
125
|
+
| Shadcn/ui | `<DropdownMenu>/<DropdownMenuTrigger>` | Shadcn DropdownMenu | `<Toaster>` + `toast.error()` |
|
|
122
126
|
|
|
123
127
|
When implementing in a specific design system:
|
|
128
|
+
|
|
124
129
|
- Local vs process action distinction must be preserved — they call different APIs
|
|
125
130
|
- Localized labels via `localeKey = ${caseTypeID}!CASE!${caseTypeName.toUpperCase()}`
|
|
126
131
|
- Process action errors must be surfaced via a dismissible toast
|