@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
|
@@ -16,20 +16,20 @@ Renders two child components side by side in a responsive grid. Column widths ar
|
|
|
16
16
|
|
|
17
17
|
## Pega Metadata
|
|
18
18
|
|
|
19
|
-
| Variant
|
|
20
|
-
|
|
21
|
-
| TwoColumn
|
|
22
|
-
| TwoColumnPage | `TwoColumnPage`
|
|
23
|
-
| TwoColumnTab
|
|
19
|
+
| Variant | Registration Key |
|
|
20
|
+
| ------------- | ---------------- |
|
|
21
|
+
| TwoColumn | `TwoColumn` |
|
|
22
|
+
| TwoColumnPage | `TwoColumnPage` |
|
|
23
|
+
| TwoColumnTab | `TwoColumnTab` |
|
|
24
24
|
|
|
25
25
|
All three extend `PConnProps`. Children are received as React `children` (not via `getPConnect().getChildren()`).
|
|
26
26
|
|
|
27
27
|
## Props
|
|
28
28
|
|
|
29
|
-
| Prop
|
|
30
|
-
|
|
31
|
-
| `children`
|
|
32
|
-
| `templateCol` | `string`
|
|
29
|
+
| Prop | Type | Required | Description |
|
|
30
|
+
| ------------- | ------------- | -------- | ------------------------------------------------------------------------------ |
|
|
31
|
+
| `children` | `ReactNode[]` | Yes | Exactly 2 children (left column, right column) |
|
|
32
|
+
| `templateCol` | `string` | No | Column width ratio string, e.g., `'1fr 1fr'`, `'2fr 1fr'`. Default `'1fr 1fr'` |
|
|
33
33
|
|
|
34
34
|
## Sub-Variants
|
|
35
35
|
|
|
@@ -66,35 +66,36 @@ Derived from `TwoColumn.tsx` and `TwoColumnTab.tsx` makeStyles:
|
|
|
66
66
|
|
|
67
67
|
### Column Style
|
|
68
68
|
|
|
69
|
-
| Property
|
|
70
|
-
|
|
71
|
-
| Display
|
|
72
|
-
| Gap
|
|
69
|
+
| Property | Value |
|
|
70
|
+
| ------------- | ------------------------------------- |
|
|
71
|
+
| Display | grid |
|
|
72
|
+
| Gap | 1rem |
|
|
73
73
|
| Align content | baseline (children stack top-aligned) |
|
|
74
74
|
|
|
75
75
|
### Grid Spacing
|
|
76
76
|
|
|
77
|
-
| Property
|
|
78
|
-
|
|
77
|
+
| Property | Value |
|
|
78
|
+
| ----------------- | ------------------------- |
|
|
79
79
|
| Container spacing | 1 (≈ 8px between columns) |
|
|
80
80
|
|
|
81
81
|
### Responsive Behavior
|
|
82
82
|
|
|
83
|
-
| Breakpoint
|
|
84
|
-
|
|
85
|
-
| xs (mobile)
|
|
86
|
-
| md+ (desktop) | `aSize`/12
|
|
83
|
+
| Breakpoint | Column A | Column B |
|
|
84
|
+
| ------------- | ------------------ | -------------------------------- |
|
|
85
|
+
| xs (mobile) | 12/12 (full width) | 12/12 (full width, stacks below) |
|
|
86
|
+
| md+ (desktop) | `aSize`/12 | `bSize`/12 |
|
|
87
87
|
|
|
88
88
|
**Column ratio examples:**
|
|
89
89
|
|
|
90
|
-
| `templateCol` | Column A
|
|
91
|
-
|
|
92
|
-
| `'1fr 1fr'`
|
|
93
|
-
| `'2fr 1fr'`
|
|
94
|
-
| `'1fr 2fr'`
|
|
95
|
-
| `'3fr 1fr'`
|
|
90
|
+
| `templateCol` | Column A | Column B |
|
|
91
|
+
| ------------- | ---------- | ---------- |
|
|
92
|
+
| `'1fr 1fr'` | 6/12 (50%) | 6/12 (50%) |
|
|
93
|
+
| `'2fr 1fr'` | 8/12 (67%) | 4/12 (33%) |
|
|
94
|
+
| `'1fr 2fr'` | 4/12 (33%) | 8/12 (67%) |
|
|
95
|
+
| `'3fr 1fr'` | 9/12 (75%) | 3/12 (25%) |
|
|
96
96
|
|
|
97
97
|
**CSS-only implementation notes:**
|
|
98
|
+
|
|
98
99
|
- Column container: `display: grid; gap: 1rem; align-content: start`.
|
|
99
100
|
- Outer grid: `display: grid; grid-template-columns: <aFraction>fr <bFraction>fr; gap: 8px`.
|
|
100
101
|
- Mobile: `grid-template-columns: 1fr` (single column stack).
|
|
@@ -117,15 +118,16 @@ Derived from `TwoColumn.tsx` and `TwoColumnTab.tsx` makeStyles:
|
|
|
117
118
|
|
|
118
119
|
Listed design systems are examples only.
|
|
119
120
|
|
|
120
|
-
| Design System
|
|
121
|
-
|
|
122
|
-
| Default (CSS only) | CSS Grid with `grid-template-columns: <a>fr <b>fr; gap: 8px`
|
|
123
|
-
| MUI
|
|
124
|
-
| Ant Design
|
|
125
|
-
| Chakra UI
|
|
126
|
-
| Shadcn/ui
|
|
121
|
+
| Design System | Recommended Component |
|
|
122
|
+
| ------------------ | -------------------------------------------------------------------- |
|
|
123
|
+
| Default (CSS only) | CSS Grid with `grid-template-columns: <a>fr <b>fr; gap: 8px` |
|
|
124
|
+
| MUI | `<Grid container spacing={1}><Grid size={{ xs: 12, md: N }}>` |
|
|
125
|
+
| Ant Design | `<Row gutter={8}><Col xs={24} md={N * 2}>` (Ant uses 24-column grid) |
|
|
126
|
+
| Chakra UI | `<SimpleGrid columns={{ base: 1, md: 2 }} spacing={2}>` |
|
|
127
|
+
| Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[<a>fr_<b>fr] gap-2` |
|
|
127
128
|
|
|
128
129
|
When implementing in a specific design system:
|
|
130
|
+
|
|
129
131
|
- Parse `templateCol` using the same ratio algorithm (strip units, divide 12 by total)
|
|
130
132
|
- Apply `align-content: baseline` so children within each column stack top-aligned
|
|
131
133
|
- Collapse to single column on mobile breakpoint
|
|
@@ -19,11 +19,11 @@ Renders two children side by side with the left column wider than the right. Typ
|
|
|
19
19
|
|
|
20
20
|
## Pega Metadata
|
|
21
21
|
|
|
22
|
-
| Variant
|
|
23
|
-
|
|
24
|
-
| WideNarrow
|
|
25
|
-
| WideNarrowPage
|
|
26
|
-
| WideNarrowForm
|
|
22
|
+
| Variant | Registration Key |
|
|
23
|
+
| ----------------- | ------------------- |
|
|
24
|
+
| WideNarrow | `WideNarrow` |
|
|
25
|
+
| WideNarrowPage | `WideNarrowPage` |
|
|
26
|
+
| WideNarrowForm | `WideNarrowForm` |
|
|
27
27
|
| WideNarrowDetails | `WideNarrowDetails` |
|
|
28
28
|
|
|
29
29
|
All extend `PConnProps`.
|
|
@@ -32,38 +32,38 @@ All extend `PConnProps`.
|
|
|
32
32
|
|
|
33
33
|
### WideNarrow
|
|
34
34
|
|
|
35
|
-
| Prop
|
|
36
|
-
|
|
37
|
-
| `children` | `ReactNode[]` | No
|
|
38
|
-
| `a`
|
|
39
|
-
| `b`
|
|
40
|
-
| `title`
|
|
41
|
-
| `cols`
|
|
42
|
-
| `icon`
|
|
35
|
+
| Prop | Type | Required | Description |
|
|
36
|
+
| ---------- | ------------- | -------- | ---------------------------------------------------------- |
|
|
37
|
+
| `children` | `ReactNode[]` | No | Two children — `[0]` → wide (left), `[1]` → narrow (right) |
|
|
38
|
+
| `a` | `any` | No | Wide (left) column content |
|
|
39
|
+
| `b` | `any` | No | Narrow (right) column content |
|
|
40
|
+
| `title` | `string` | No | Optional title (not rendered) |
|
|
41
|
+
| `cols` | `string` | No | Column template (not rendered) |
|
|
42
|
+
| `icon` | `string` | No | Icon name (not rendered) |
|
|
43
43
|
|
|
44
44
|
### WideNarrowPage
|
|
45
45
|
|
|
46
|
-
| Prop
|
|
47
|
-
|
|
48
|
-
| `children`
|
|
49
|
-
| `title`
|
|
50
|
-
| `templateCol` | `string`
|
|
51
|
-
| `icon`
|
|
46
|
+
| Prop | Type | Required | Description |
|
|
47
|
+
| ------------- | ------------- | -------- | ----------------------------------------------------- |
|
|
48
|
+
| `children` | `ReactNode[]` | Yes | Two children — `[0]` → wide slot, `[1]` → narrow slot |
|
|
49
|
+
| `title` | `string` | Yes | Page title (passed to WideNarrow) |
|
|
50
|
+
| `templateCol` | `string` | No | Column ratio (default `'1fr 1fr'`) |
|
|
51
|
+
| `icon` | `string` | No | Icon name (strips `'pi pi-'` prefix) |
|
|
52
52
|
|
|
53
53
|
### WideNarrowForm
|
|
54
54
|
|
|
55
|
-
| Prop
|
|
56
|
-
|
|
57
|
-
| `children` | `ReactNode[]` | Yes
|
|
55
|
+
| Prop | Type | Required | Description |
|
|
56
|
+
| ---------- | ------------- | -------- | ------------------------------------------ |
|
|
57
|
+
| `children` | `ReactNode[]` | Yes | Two children rendered in wide/narrow slots |
|
|
58
58
|
|
|
59
59
|
### WideNarrowDetails
|
|
60
60
|
|
|
61
|
-
| Prop
|
|
62
|
-
|
|
63
|
-
| `label`
|
|
64
|
-
| `showLabel`
|
|
65
|
-
| `showHighlightedData` | `boolean`
|
|
66
|
-
| `getPConnect`
|
|
61
|
+
| Prop | Type | Required | Description |
|
|
62
|
+
| --------------------- | ---------- | -------- | ---------------------------------------------------------- |
|
|
63
|
+
| `label` | `string` | No | Section label for FieldGroup |
|
|
64
|
+
| `showLabel` | `boolean` | No | Whether to show the label. Default `true` |
|
|
65
|
+
| `showHighlightedData` | `boolean` | No | Whether to render highlighted data fields. Default `false` |
|
|
66
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
67
67
|
|
|
68
68
|
## Behavioral Contract
|
|
69
69
|
|
|
@@ -98,13 +98,14 @@ Derived from `WideNarrow.css`:
|
|
|
98
98
|
|
|
99
99
|
### Container
|
|
100
100
|
|
|
101
|
-
| CSS Class
|
|
102
|
-
|
|
103
|
-
| `.psdk-wide-narrow-column`
|
|
104
|
-
| `.psdk-wide-column-column`
|
|
105
|
-
| `.psdk-narrow-column-column` | Width
|
|
101
|
+
| CSS Class | Property | Value |
|
|
102
|
+
| ---------------------------- | -------- | ---------------------------------- |
|
|
103
|
+
| `.psdk-wide-narrow-column` | Display | two-column row layout |
|
|
104
|
+
| `.psdk-wide-column-column` | Width | ~67% (2 of 3 parts) — LEFT column |
|
|
105
|
+
| `.psdk-narrow-column-column` | Width | ~33% (1 of 3 parts) — RIGHT column |
|
|
106
106
|
|
|
107
107
|
**CSS-only implementation notes:**
|
|
108
|
+
|
|
108
109
|
- `.psdk-wide-narrow-column`: `display: grid; grid-template-columns: 2fr 1fr; gap: 1rem`.
|
|
109
110
|
- Wide column (left): `2fr` — takes the first grid column.
|
|
110
111
|
- Narrow column (right): `1fr` — takes the second grid column.
|
|
@@ -112,12 +113,12 @@ Derived from `WideNarrow.css`:
|
|
|
112
113
|
|
|
113
114
|
### Key Difference from NarrowWide
|
|
114
115
|
|
|
115
|
-
|
|
|
116
|
-
|
|
117
|
-
| Left column
|
|
118
|
-
| Right column
|
|
119
|
-
| CSS container class
|
|
120
|
-
| `COLUMN_WIDTHS` (Details) | `[4, 8]`
|
|
116
|
+
| | NarrowWide | WideNarrow |
|
|
117
|
+
| ------------------------- | -------------------------- | -------------------------- |
|
|
118
|
+
| Left column | Narrow (~33%) | Wide (~67%) |
|
|
119
|
+
| Right column | Wide (~67%) | Narrow (~33%) |
|
|
120
|
+
| CSS container class | `.psdk-narrow-wide-column` | `.psdk-wide-narrow-column` |
|
|
121
|
+
| `COLUMN_WIDTHS` (Details) | `[4, 8]` | `[8, 4]` |
|
|
121
122
|
|
|
122
123
|
## Edge Cases & Special Logic
|
|
123
124
|
|
|
@@ -136,15 +137,16 @@ Derived from `WideNarrow.css`:
|
|
|
136
137
|
|
|
137
138
|
Listed design systems are examples only.
|
|
138
139
|
|
|
139
|
-
| Design System
|
|
140
|
-
|
|
141
|
-
| Default (CSS only) | CSS Grid `grid-template-columns: 2fr 1fr; gap: 1rem`
|
|
142
|
-
| MUI
|
|
143
|
-
| Ant Design
|
|
144
|
-
| Chakra UI
|
|
145
|
-
| Shadcn/ui
|
|
140
|
+
| Design System | Recommended Component |
|
|
141
|
+
| ------------------ | -------------------------------------------------------------------------------- |
|
|
142
|
+
| Default (CSS only) | CSS Grid `grid-template-columns: 2fr 1fr; gap: 1rem` |
|
|
143
|
+
| MUI | `<Grid container><Grid size={{ xs: 12, md: 8 }}><Grid size={{ xs: 12, md: 4 }}>` |
|
|
144
|
+
| Ant Design | `<Row gutter={16}><Col xs={24} md={16}><Col xs={24} md={8}>` |
|
|
145
|
+
| Chakra UI | `<Grid templateColumns={{ base: '1fr', md: '2fr 1fr' }} gap={4}>` |
|
|
146
|
+
| Shadcn/ui | Tailwind `grid grid-cols-1 md:grid-cols-[2fr_1fr] gap-4` |
|
|
146
147
|
|
|
147
148
|
When implementing in a specific design system:
|
|
149
|
+
|
|
148
150
|
- Wide column ≈ 67% width (left side)
|
|
149
151
|
- Narrow column ≈ 33% width (right side)
|
|
150
152
|
- `WideNarrowDetails` forces DISPLAY_ONLY + readOnly on all children
|
|
@@ -18,13 +18,13 @@ Provides the top navigation bar for WSS (Web Self-Service) portals. Responsive:
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `links`
|
|
24
|
-
| `navDisplayOptions` | `object`
|
|
25
|
-
| `portalLogoUrl`
|
|
26
|
-
| `operatorInfo`
|
|
27
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------------- | ---------- | -------- | ----------------------------------------------------- |
|
|
23
|
+
| `links` | `array` | Yes | Array of `{ label, url, id }` navigation link objects |
|
|
24
|
+
| `navDisplayOptions` | `object` | No | `{ alignment: 'left' | 'right' | 'center', position: 'inline' | 'below' }` |
|
|
25
|
+
| `portalLogoUrl` | `string` | No | URL for the portal logo image |
|
|
26
|
+
| `operatorInfo` | `object` | No | `{ displayName: string }` — for avatar initials |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
29
|
## Behavioral Contract
|
|
30
30
|
|
|
@@ -38,12 +38,14 @@ Provides the top navigation bar for WSS (Web Self-Service) portals. Responsive:
|
|
|
38
38
|
### Navigation Position
|
|
39
39
|
|
|
40
40
|
From `navDisplayOptions.position`:
|
|
41
|
+
|
|
41
42
|
- `'inline'` — nav links appear in the same row as the logo.
|
|
42
43
|
- `'below'` — nav links appear in a second row below the logo/title row.
|
|
43
44
|
|
|
44
45
|
### Navigation Alignment
|
|
45
46
|
|
|
46
47
|
From `navDisplayOptions.alignment`:
|
|
48
|
+
|
|
47
49
|
- `'left'` — links flush left.
|
|
48
50
|
- `'right'` — links pushed to the right (flex with `ml: 'auto'`).
|
|
49
51
|
- `'center'` — links centered.
|
|
@@ -87,14 +89,15 @@ From `navDisplayOptions.alignment`:
|
|
|
87
89
|
|
|
88
90
|
## Visual Specifications
|
|
89
91
|
|
|
90
|
-
| Element
|
|
91
|
-
|
|
92
|
-
| Logo
|
|
92
|
+
| Element | Mobile | Desktop |
|
|
93
|
+
| --------- | ----------------------- | --------------------- |
|
|
94
|
+
| Logo | Shown | Shown |
|
|
93
95
|
| Nav links | Hidden (hamburger menu) | Shown inline or below |
|
|
94
|
-
| Avatar
|
|
95
|
-
| Hamburger | Shown
|
|
96
|
+
| Avatar | Shown | Shown |
|
|
97
|
+
| Hamburger | Shown | Hidden |
|
|
96
98
|
|
|
97
99
|
**CSS-only implementation notes:**
|
|
100
|
+
|
|
98
101
|
- App bar: `background: var(--app-primary-color); color: white`.
|
|
99
102
|
- Toolbar: `display: flex; align-items: center; gap: 1rem; padding: 0 1rem`.
|
|
100
103
|
- Hamburger: `display: none`. At mobile breakpoint: `display: flex`.
|
|
@@ -121,15 +124,16 @@ From `navDisplayOptions.alignment`:
|
|
|
121
124
|
|
|
122
125
|
Listed design systems are examples only.
|
|
123
126
|
|
|
124
|
-
| Design System
|
|
125
|
-
|
|
126
|
-
| Default (CSS only) | `<header>` + CSS
|
|
127
|
-
| MUI
|
|
128
|
-
| Ant Design
|
|
129
|
-
| Chakra UI
|
|
130
|
-
| Shadcn/ui
|
|
127
|
+
| Design System | App Bar | Avatar | Mobile Menu |
|
|
128
|
+
| ------------------ | ------------------------ | ---------------------- | ------------------------ |
|
|
129
|
+
| Default (CSS only) | `<header>` + CSS | `<div class='avatar'>` | CSS hamburger + dropdown |
|
|
130
|
+
| MUI | `<AppBar>` + `<Toolbar>` | `<Avatar>` | `<Drawer>` or `<Menu>` |
|
|
131
|
+
| Ant Design | `<Layout.Header>` | `<Avatar>` | `<Drawer>` |
|
|
132
|
+
| Chakra UI | `<Box as='header'>` | `<Avatar>` | `<Drawer>` |
|
|
133
|
+
| Shadcn/ui | Custom `<header>` | Custom initials avatar | `<Sheet>` (drawer) |
|
|
131
134
|
|
|
132
135
|
When implementing in a specific design system:
|
|
136
|
+
|
|
133
137
|
- `logout` from `@pega/auth/lib/sdk-auth-manager` is mandatory — always call the SDK logout, not a custom one
|
|
134
138
|
- Responsive breakpoints for hamburger/nav visibility must be implemented
|
|
135
139
|
- `navDisplayOptions.alignment` and `.position` must be respected
|
|
@@ -51,12 +51,14 @@ interface AttachmentProps extends Omit<PConnFieldProps, 'value'> {
|
|
|
51
51
|
|
|
52
52
|
### Data-Fetching Widget
|
|
53
53
|
|
|
54
|
-
Widgets typically fetch data from Pega data pages on mount
|
|
54
|
+
Widgets typically fetch data from Pega data pages on mount. This pattern is design-system agnostic. The `// [DS RENDER]` section must be replaced with your design system's presentation primitives (card, list, table, etc.) — see "Design System Adaptation" below.
|
|
55
55
|
|
|
56
56
|
```typescript
|
|
57
57
|
import { useState, useEffect } from 'react';
|
|
58
|
-
|
|
59
|
-
import
|
|
58
|
+
// Import your design system components here:
|
|
59
|
+
// e.g. import { Card, List } from 'antd';
|
|
60
|
+
// e.g. import { Card, UnorderedList } from '@chakra-ui/react';
|
|
61
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
60
62
|
|
|
61
63
|
interface MyWidgetProps extends PConnProps {
|
|
62
64
|
datasource?: any;
|
|
@@ -70,8 +72,9 @@ export default function MyWidget(props: MyWidgetProps) {
|
|
|
70
72
|
const [data, setData] = useState<any[]>([]);
|
|
71
73
|
const [loading, setLoading] = useState(true);
|
|
72
74
|
|
|
75
|
+
// 1. Fetch data from a Pega data page on mount
|
|
76
|
+
// This block is always the same regardless of design system
|
|
73
77
|
useEffect(() => {
|
|
74
|
-
// Fetch data from a Pega data page
|
|
75
78
|
const context = pConn.getContextName();
|
|
76
79
|
PCore.getDataPageUtils()
|
|
77
80
|
.getDataAsync(
|
|
@@ -89,23 +92,58 @@ export default function MyWidget(props: MyWidgetProps) {
|
|
|
89
92
|
.catch(() => setLoading(false));
|
|
90
93
|
}, []);
|
|
91
94
|
|
|
95
|
+
// 2. Loading state — replace with your DS loading indicator if available
|
|
92
96
|
if (loading) return <div>Loading...</div>;
|
|
93
97
|
|
|
98
|
+
// 3. [DS RENDER] — replace with your design system's card/list/table primitives
|
|
99
|
+
// See "Design System Adaptation" section below for guidance
|
|
94
100
|
return (
|
|
95
|
-
<
|
|
96
|
-
<
|
|
97
|
-
<
|
|
98
|
-
<
|
|
101
|
+
<YourDesignSystemCard>
|
|
102
|
+
<YourDesignSystemCardHeader title={headerText} />
|
|
103
|
+
<YourDesignSystemCardContent>
|
|
104
|
+
<YourDesignSystemList>
|
|
99
105
|
{data.map((item, i) => (
|
|
100
|
-
<
|
|
106
|
+
<YourDesignSystemListItem key={i}>{item.pyLabel}</YourDesignSystemListItem>
|
|
101
107
|
))}
|
|
102
|
-
</
|
|
103
|
-
</
|
|
104
|
-
</
|
|
108
|
+
</YourDesignSystemList>
|
|
109
|
+
</YourDesignSystemCardContent>
|
|
110
|
+
</YourDesignSystemCard>
|
|
105
111
|
);
|
|
106
112
|
}
|
|
107
113
|
```
|
|
108
114
|
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Design System Adaptation
|
|
118
|
+
|
|
119
|
+
The PCore data-fetching logic (all `PCore.*` calls) is always identical regardless of design system. Only the `// [DS RENDER]` section changes.
|
|
120
|
+
|
|
121
|
+
**1. Check the component-specific skill file** — `.github/skills/widget-skills/<ComponentName>.md` contains a **Design System Mapping** table where available. Use it as a starting point.
|
|
122
|
+
|
|
123
|
+
**2. If the chosen design system is not listed** — use the component purpose description to identify the appropriate DS primitives (card, list, table, button, badge, etc.).
|
|
124
|
+
|
|
125
|
+
**3. Discover the API from installed packages** — confirm component names and props from `.d.ts` before writing JSX:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Card\|List\|Table" | head -5
|
|
129
|
+
grep -A 30 "interface.*Props" <path-to-file>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**4. Common widget UI primitive mapping:**
|
|
133
|
+
|
|
134
|
+
| Widget pattern | Typical DS equivalent |
|
|
135
|
+
| -------------------- | ----------------------------------------------- |
|
|
136
|
+
| Container with title | `Card` + header/title prop, or `Panel`, `Box` |
|
|
137
|
+
| Item list | `List`, `UnorderedList`, or `Table` rows |
|
|
138
|
+
| Loading indicator | `Spinner`, `Skeleton`, `Loading` |
|
|
139
|
+
| Action button | `Button` with `onClick` |
|
|
140
|
+
| Status badge | `Badge`, `Tag`, `Chip` |
|
|
141
|
+
| Empty state | DS empty/placeholder component or plain `<div>` |
|
|
142
|
+
|
|
143
|
+
**5. Icons** — if the DS has a companion icon package, read its exports before using any icon name. Never guess icon names.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
109
147
|
### Action Widget (opens assignments/cases)
|
|
110
148
|
|
|
111
149
|
```typescript
|
|
@@ -130,14 +168,7 @@ function createCase(caseType) {
|
|
|
130
168
|
|
|
131
169
|
```typescript
|
|
132
170
|
// Fetch list data
|
|
133
|
-
PCore.getDataPageUtils().getDataAsync(
|
|
134
|
-
dataPageName,
|
|
135
|
-
context,
|
|
136
|
-
params,
|
|
137
|
-
paging,
|
|
138
|
-
query,
|
|
139
|
-
options,
|
|
140
|
-
);
|
|
171
|
+
PCore.getDataPageUtils().getDataAsync(dataPageName, context, params, paging, query, options);
|
|
141
172
|
|
|
142
173
|
// Get page data (single record)
|
|
143
174
|
PCore.getDataPageUtils().getPageDataAsync(dataPageName, context, params);
|
|
@@ -156,12 +187,7 @@ const caseName = pConn.getCaseInfo().getName();
|
|
|
156
187
|
|
|
157
188
|
```typescript
|
|
158
189
|
PCore.getAttachmentUtils().prepareAttachmentData(value);
|
|
159
|
-
PCore.getAttachmentUtils().uploadAttachment(
|
|
160
|
-
file,
|
|
161
|
-
onProgress,
|
|
162
|
-
errorHandler,
|
|
163
|
-
context,
|
|
164
|
-
);
|
|
190
|
+
PCore.getAttachmentUtils().uploadAttachment(file, onProgress, errorHandler, context);
|
|
165
191
|
PCore.getAttachmentUtils().downloadAttachment(attachmentID, context);
|
|
166
192
|
```
|
|
167
193
|
|
|
@@ -18,13 +18,13 @@ Renders an announcement card with a heading, description text, optional bullet l
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `header`
|
|
24
|
-
| `description`
|
|
25
|
-
| `datasource`
|
|
26
|
-
| `whatsnewlink` | `string`
|
|
27
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| -------------- | ---------- | -------- | ---------------------------------------------------------------------- |
|
|
23
|
+
| `header` | `string` | No | Announcement card title |
|
|
24
|
+
| `description` | `string` | No | Announcement body text |
|
|
25
|
+
| `datasource` | `object` | No | Data source object — `datasource.source` is an array of item objects |
|
|
26
|
+
| `whatsnewlink` | `string` | No | URL for the "See what's new" button; if absent, button is not rendered |
|
|
27
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
28
28
|
|
|
29
29
|
## Behavioral Contract
|
|
30
30
|
|
|
@@ -37,14 +37,15 @@ Renders an announcement card with a heading, description text, optional bullet l
|
|
|
37
37
|
|
|
38
38
|
### Card Layout
|
|
39
39
|
|
|
40
|
-
| Element
|
|
41
|
-
|
|
42
|
-
| Left accent border
|
|
43
|
-
| Card header
|
|
44
|
-
| Card content
|
|
45
|
-
| "See what's new" button | Below description / bullet list
|
|
40
|
+
| Element | Position |
|
|
41
|
+
| ----------------------- | --------------------------------------- |
|
|
42
|
+
| Left accent border | 6px solid, primary light color |
|
|
43
|
+
| Card header | `header` prop as title |
|
|
44
|
+
| Card content | Description text + optional bullet list |
|
|
45
|
+
| "See what's new" button | Below description / bullet list |
|
|
46
46
|
|
|
47
47
|
**CSS-only implementation notes:**
|
|
48
|
+
|
|
48
49
|
- Card: `border-left: 6px solid var(--app-primary-light-color); border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,0.12)`.
|
|
49
50
|
- Card header: `padding: 12px 16px; font-weight: 600`.
|
|
50
51
|
- Card content: `padding: 0 16px 16px`.
|
|
@@ -68,15 +69,16 @@ Renders an announcement card with a heading, description text, optional bullet l
|
|
|
68
69
|
|
|
69
70
|
Listed design systems are examples only.
|
|
70
71
|
|
|
71
|
-
| Design System
|
|
72
|
-
|
|
73
|
-
| Default (CSS only) | `<div>` with left border + box-shadow
|
|
74
|
-
| MUI
|
|
75
|
-
| Ant Design
|
|
76
|
-
| Chakra UI
|
|
77
|
-
| Shadcn/ui
|
|
72
|
+
| Design System | Card | Bullet List | Button |
|
|
73
|
+
| ------------------ | ------------------------------------------- | ----------------------------- | -------------------------- |
|
|
74
|
+
| Default (CSS only) | `<div>` with left border + box-shadow | `<ul>/<li>` | `<button>` opening new tab |
|
|
75
|
+
| MUI | `<Card>` + `<CardHeader>` + `<CardContent>` | `<List>/<ListItem>` or `<ul>` | `<Button>` |
|
|
76
|
+
| Ant Design | `<Card>` with `title` prop | `<ul>/<li>` | `<Button>` |
|
|
77
|
+
| Chakra UI | `<Card>` + `<CardHeader>` + `<CardBody>` | `<UnorderedList>/<ListItem>` | `<Button>` |
|
|
78
|
+
| Shadcn/ui | `<Card>` + `<CardHeader>` + `<CardContent>` | `<ul>/<li>` | `<Button>` |
|
|
78
79
|
|
|
79
80
|
When implementing in a specific design system:
|
|
81
|
+
|
|
80
82
|
- Left accent border is a key visual identifier — implement it via CSS or the design system's border utilities
|
|
81
83
|
- "See what's new" must open in a new tab (`target='_blank'` + `rel='noopener noreferrer'`)
|
|
82
84
|
- The widget is entirely prop-driven — no data fetching needed
|
|
@@ -18,20 +18,20 @@ Renders a file attachment control within a Pega form. Users can upload one or mu
|
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `value`
|
|
24
|
-
| `allowMultiple`
|
|
25
|
-
| `extensions`
|
|
26
|
-
| `editMode`
|
|
27
|
-
| `isTableFormatter` | `boolean`
|
|
28
|
-
| `label`
|
|
29
|
-
| `required`
|
|
30
|
-
| `disabled`
|
|
31
|
-
| `displayMode`
|
|
32
|
-
| `validatemessage`
|
|
33
|
-
| `helperText`
|
|
34
|
-
| `getPConnect`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------------ | ------------------- | -------------------------- | ---------------------------------------------------------------------------- |
|
|
23
|
+
| `value` | `any` | Yes | Attachment list or single attachment object (from Pega property) |
|
|
24
|
+
| `allowMultiple` | `boolean \| string` | No | Whether multiple files can be attached. Default `false` |
|
|
25
|
+
| `extensions` | `string` | No | Comma-separated list of allowed file extensions (e.g., `".pdf,.doc,.jpg"`) |
|
|
26
|
+
| `editMode` | `string` | No | `"tableRows"` for inline table edit mode (special multi-attachment handling) |
|
|
27
|
+
| `isTableFormatter` | `boolean` | No | Whether this widget is used inside a table formatter |
|
|
28
|
+
| `label` | `string` | Yes (from PConnFieldProps) | Field label |
|
|
29
|
+
| `required` | `boolean` | No | Whether a file is required |
|
|
30
|
+
| `disabled` | `boolean` | No | Whether the control is disabled |
|
|
31
|
+
| `displayMode` | `string` | No | `"DISPLAY_ONLY"` for read-only rendering |
|
|
32
|
+
| `validatemessage` | `string` | No | Validation error message to display |
|
|
33
|
+
| `helperText` | `string` | No | Helper text shown below the control |
|
|
34
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
35
35
|
|
|
36
36
|
## Behavioral Contract
|
|
37
37
|
|
|
@@ -40,11 +40,13 @@ Renders a file attachment control within a Pega form. Users can upload one or mu
|
|
|
40
40
|
Pega has two attachment data formats — detect which one is in use:
|
|
41
41
|
|
|
42
42
|
**Old format (annotation-based):**
|
|
43
|
+
|
|
43
44
|
```typescript
|
|
44
45
|
value = { pxResults: [...], pyAttachCount: N }
|
|
45
46
|
```
|
|
46
47
|
|
|
47
48
|
**New standard format:**
|
|
49
|
+
|
|
48
50
|
```typescript
|
|
49
51
|
value = [{ ID, name, mimeType, category, ... }] // array
|
|
50
52
|
```
|
|
@@ -54,6 +56,7 @@ Call `PCore.getAttachmentUtils().prepareAttachmentData(value)` to normalize both
|
|
|
54
56
|
### File Validation
|
|
55
57
|
|
|
56
58
|
On file selection (via `<input type='file'>`):
|
|
59
|
+
|
|
57
60
|
1. **Extension check:** Compare selected file's extension against `extensions` prop (split by comma). If not allowed, add an error to the file and do not upload.
|
|
58
61
|
2. **Size check:** Compare file size against `PCore.getEnvironmentInfo().getMaxAttachmentSize()` (in bytes). If too large, add a size error.
|
|
59
62
|
3. Valid files proceed to upload.
|
|
@@ -89,15 +92,16 @@ Compressed display for use inside a table cell. Show attachment count and a smal
|
|
|
89
92
|
|
|
90
93
|
## Visual Specifications
|
|
91
94
|
|
|
92
|
-
| Element
|
|
93
|
-
|
|
94
|
-
| Label
|
|
95
|
-
| Drop zone / Upload button | Clickable area to select files; optionally supports drag-and-drop
|
|
96
|
-
| File list
|
|
97
|
-
| Error state
|
|
98
|
-
| Helper text
|
|
95
|
+
| Element | Description |
|
|
96
|
+
| ------------------------- | ------------------------------------------------------------------------------------- |
|
|
97
|
+
| Label | Standard field label above the control |
|
|
98
|
+
| Drop zone / Upload button | Clickable area to select files; optionally supports drag-and-drop |
|
|
99
|
+
| File list | Each uploaded file: icon + name + size + progress bar (during upload) + delete button |
|
|
100
|
+
| Error state | Red error text below the control for invalid files or upload failures |
|
|
101
|
+
| Helper text | Secondary text below the control |
|
|
99
102
|
|
|
100
103
|
**CSS-only implementation notes:**
|
|
104
|
+
|
|
101
105
|
- Drop zone: `border: 2px dashed var(--border-color); border-radius: 4px; padding: 1rem; text-align: center; cursor: pointer`.
|
|
102
106
|
- Drop zone hover: `border-color: var(--app-primary-color); background: var(--hover-bg)`.
|
|
103
107
|
- File row: `display: flex; align-items: center; gap: 0.5rem; padding: 4px 0`.
|
|
@@ -131,15 +135,16 @@ Compressed display for use inside a table cell. Show attachment count and a smal
|
|
|
131
135
|
|
|
132
136
|
Listed design systems are examples only.
|
|
133
137
|
|
|
134
|
-
| Design System
|
|
135
|
-
|
|
136
|
-
| Default (CSS only) | `<input type='file'>` + custom styled drop zone
|
|
137
|
-
| MUI
|
|
138
|
-
| Ant Design
|
|
139
|
-
| Chakra UI
|
|
140
|
-
| Shadcn/ui
|
|
138
|
+
| Design System | File Input | Progress | File List |
|
|
139
|
+
| ------------------ | -------------------------------------------------- | ------------------------------- | ------------------------- |
|
|
140
|
+
| Default (CSS only) | `<input type='file'>` + custom styled drop zone | `<progress>` element or CSS bar | `<ul>/<li>` rows |
|
|
141
|
+
| MUI | Custom styled `<Box>` drop zone + hidden `<input>` | `<LinearProgress>` | `<List>/<ListItem>` |
|
|
142
|
+
| Ant Design | `<Upload dragger>` | `<Progress>` | Built-in upload file list |
|
|
143
|
+
| Chakra UI | Custom `<Box>` with `useDropzone` | `<Progress>` | `<VStack>` rows |
|
|
144
|
+
| Shadcn/ui | Custom drop zone | Custom CSS progress bar | `<ul>/<li>` rows |
|
|
141
145
|
|
|
142
146
|
When implementing in a specific design system:
|
|
147
|
+
|
|
143
148
|
- Action sequencer blocking (`addAction`/`removeAction`) is mandatory — do not skip it; form submission must be blocked during uploads
|
|
144
149
|
- Detect and normalize both old and new attachment formats via `prepareAttachmentData`
|
|
145
150
|
- `allowMultiple` coercion (string vs boolean) is required
|