@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
|
@@ -61,9 +61,12 @@ interface RichTextEditorProps extends PConnFieldProps {
|
|
|
61
61
|
|
|
62
62
|
Used for: AlertBanner, Banner, Operator
|
|
63
63
|
|
|
64
|
+
This pattern is design-system agnostic. The variant-mapping logic and message normalisation are always the same. The `// [DS RENDER]` section must be replaced with your design system's alert/notification primitive — see "Design System Adaptation" below.
|
|
65
|
+
|
|
64
66
|
```typescript
|
|
65
|
-
|
|
66
|
-
import
|
|
67
|
+
// Import your design system alert/notification component:
|
|
68
|
+
// e.g. import { Alert } from 'antd';
|
|
69
|
+
// e.g. import { Alert } from '@chakra-ui/react';
|
|
67
70
|
|
|
68
71
|
interface AlertBannerProps {
|
|
69
72
|
variant: 'urgent' | 'warning' | 'info' | 'success';
|
|
@@ -75,26 +78,31 @@ interface AlertBannerProps {
|
|
|
75
78
|
export default function AlertBanner(props: AlertBannerProps) {
|
|
76
79
|
const { variant, heading, messages = [], onClose } = props;
|
|
77
80
|
|
|
78
|
-
// Map Pega variant names to
|
|
79
|
-
|
|
81
|
+
// Map Pega variant names to your DS equivalent
|
|
82
|
+
// e.g. MUI: urgent → 'error' | Ant Design: urgent → 'error' | Chakra: urgent → 'error'
|
|
83
|
+
const variantMap: Record<string, string> = {
|
|
80
84
|
urgent: 'error',
|
|
81
85
|
warning: 'warning',
|
|
82
86
|
info: 'info',
|
|
83
87
|
success: 'success'
|
|
84
88
|
};
|
|
85
89
|
|
|
90
|
+
// Normalise messages — Pega may send a plain string or an object
|
|
86
91
|
function renderMessage(msg: string | { label?: string; description?: string }) {
|
|
87
92
|
if (typeof msg === 'string') return msg;
|
|
88
93
|
return `${msg.label ?? ''} ${msg.description ?? ''}`.trim();
|
|
89
94
|
}
|
|
90
95
|
|
|
96
|
+
// [DS RENDER] — replace with your design system's alert/notification primitive
|
|
97
|
+
// The variantMap value above should be passed as the DS severity/type/status prop
|
|
91
98
|
return (
|
|
92
|
-
<
|
|
93
|
-
{
|
|
94
|
-
{
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
<YourDesignSystemAlert
|
|
100
|
+
type={variantMap[variant] ?? 'info'}
|
|
101
|
+
message={heading}
|
|
102
|
+
description={messages.map(renderMessage).join(' ')}
|
|
103
|
+
closable={!!onClose}
|
|
104
|
+
onClose={onClose}
|
|
105
|
+
/>
|
|
98
106
|
);
|
|
99
107
|
}
|
|
100
108
|
```
|
|
@@ -167,9 +175,9 @@ export default function FieldGroup(props: FieldGroupProps) {
|
|
|
167
175
|
|
|
168
176
|
## Styling Patterns
|
|
169
177
|
|
|
170
|
-
DSE components use
|
|
178
|
+
DSE components use one of three approaches depending on the component and design system:
|
|
171
179
|
|
|
172
|
-
### CSS File Pattern
|
|
180
|
+
### CSS File Pattern (DS-agnostic, preferred for Field Value components)
|
|
173
181
|
|
|
174
182
|
```css
|
|
175
183
|
/* FieldValueList.css */
|
|
@@ -190,15 +198,49 @@ DSE components use either CSS files or MUI's `sx` prop:
|
|
|
190
198
|
}
|
|
191
199
|
```
|
|
192
200
|
|
|
193
|
-
###
|
|
201
|
+
### Design System Style Props (use if your DS provides them)
|
|
194
202
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
203
|
+
If the chosen design system provides built-in spacing, typography, or layout props, prefer them over plain CSS:
|
|
204
|
+
|
|
205
|
+
- Use the DS's layout wrapper (e.g., `<Stack>`, `<Flex>`, `<HStack>`) instead of manual flex CSS
|
|
206
|
+
- Use DS typography components (e.g., `<Text>`, `<Heading>`) instead of raw `<span>`/`<div>`
|
|
207
|
+
- Use DS CSS custom properties or tokens for spacing — never hardcode `px` values
|
|
208
|
+
- Discover which style props are available from the installed `.d.ts` files before using them
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Design System Adaptation
|
|
213
|
+
|
|
214
|
+
DSE components fall into three patterns with different DS dependencies:
|
|
215
|
+
|
|
216
|
+
| Pattern | Examples | DS needed? |
|
|
217
|
+
| ----------------------------------------- | ------------------------------------------------ | -------------------------------------------------- |
|
|
218
|
+
| **B — Pure display** (no PConnect) | AlertBanner, Banner, Operator, WssQuickCreate | Yes — DS provides alert/card/avatar primitives |
|
|
219
|
+
| **A — PConnect display** | CaseSummaryFields, DetailsFields, FieldValueList | Minimal — CSS-based layout; DS typography optional |
|
|
220
|
+
| **C — Complex display** (PConnect bridge) | FieldGroup, FieldGroupList, Pulse | No — PConnect bridge is DS-agnostic; semantic HTML |
|
|
221
|
+
|
|
222
|
+
The component-specific skill file specifies which pattern applies.
|
|
223
|
+
|
|
224
|
+
**1. Check the component-specific skill file** — `.github/skills/design-system-extension-skills/<ComponentName>.md` contains a **Design System Mapping** table where available.
|
|
225
|
+
|
|
226
|
+
**2. If the chosen design system is not listed** — use the component purpose and pattern category above to pick the closest DS primitive.
|
|
227
|
+
|
|
228
|
+
**3. Discover the API from installed packages** — confirm component names and props from `.d.ts` before writing JSX:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
find node_modules/<ds-package> -name "*.d.ts" | xargs grep -l "Alert\|Badge\|Avatar" | head -5
|
|
232
|
+
grep -A 30 "interface.*Props" <path-to-file>
|
|
200
233
|
```
|
|
201
234
|
|
|
235
|
+
**4. Variant mapping** — always map Pega's variant names to your DS equivalent before passing to DS components:
|
|
236
|
+
|
|
237
|
+
| Pega variant | Meaning | Typical DS equivalent |
|
|
238
|
+
| ------------ | ---------------- | ----------------------------- |
|
|
239
|
+
| `urgent` | Critical / error | `error`, `danger`, `critical` |
|
|
240
|
+
| `warning` | Warning | `warning` |
|
|
241
|
+
| `info` | Informational | `info` |
|
|
242
|
+
| `success` | Success | `success` |
|
|
243
|
+
|
|
202
244
|
---
|
|
203
245
|
|
|
204
246
|
## Registration
|
|
@@ -59,18 +59,22 @@ interface MyFieldProps extends PConnFieldProps {
|
|
|
59
59
|
|
|
60
60
|
## Implementation Pattern
|
|
61
61
|
|
|
62
|
-
###
|
|
62
|
+
### Abstract Field Component Template
|
|
63
|
+
|
|
64
|
+
This template is design-system agnostic. It defines the **behavioral skeleton** every field component must follow. Replace the `// [DS RENDER]` section with your design system's input primitive — see the "Design System Adaptation" section below for guidance.
|
|
63
65
|
|
|
64
66
|
```typescript
|
|
65
67
|
import { useState, useEffect } from 'react';
|
|
66
|
-
|
|
68
|
+
// Import your design system component here:
|
|
69
|
+
// e.g. import { Input } from 'antd';
|
|
70
|
+
// e.g. import { Input } from '@chakra-ui/react';
|
|
67
71
|
|
|
68
72
|
import handleEvent from '../../helpers/event-utils';
|
|
69
73
|
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
70
|
-
import type { PConnFieldProps } from '
|
|
74
|
+
import type { PConnFieldProps } from '@pega/sdk-react';
|
|
71
75
|
|
|
72
76
|
interface MyFieldProps extends PConnFieldProps {
|
|
73
|
-
//
|
|
77
|
+
// Add component-specific props here
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
export default function MyField(props: MyFieldProps) {
|
|
@@ -97,13 +101,15 @@ export default function MyField(props: MyFieldProps) {
|
|
|
97
101
|
const propName = (pConn.getStateProps() as any).value;
|
|
98
102
|
const helperTextToDisplay = validatemessage || helperText;
|
|
99
103
|
|
|
104
|
+
// 1. Track input value locally — do NOT commit on every keystroke
|
|
100
105
|
const [inputValue, setInputValue] = useState(value);
|
|
101
106
|
|
|
107
|
+
// 2. Sync local state when the store value changes
|
|
102
108
|
useEffect(() => {
|
|
103
109
|
setInputValue(value);
|
|
104
110
|
}, [value]);
|
|
105
111
|
|
|
106
|
-
//
|
|
112
|
+
// 3. Display modes — must short-circuit before any interactive rendering
|
|
107
113
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
108
114
|
return <FieldValueList name={hideLabel ? '' : label} value={value} />;
|
|
109
115
|
}
|
|
@@ -112,33 +118,30 @@ export default function MyField(props: MyFieldProps) {
|
|
|
112
118
|
return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
|
|
113
119
|
}
|
|
114
120
|
|
|
115
|
-
//
|
|
116
|
-
function handleChange(
|
|
117
|
-
setInputValue(
|
|
121
|
+
// 4. Event handlers
|
|
122
|
+
function handleChange(newValue: string) {
|
|
123
|
+
setInputValue(newValue); // update local state only
|
|
118
124
|
}
|
|
119
125
|
|
|
120
126
|
function handleBlur() {
|
|
121
|
-
handleEvent(actions, 'changeNblur', propName, inputValue);
|
|
127
|
+
handleEvent(actions, 'changeNblur', propName, inputValue); // commit to Pega store
|
|
122
128
|
}
|
|
123
129
|
|
|
124
|
-
//
|
|
130
|
+
// 5. [DS RENDER] — replace with your design system's input primitive
|
|
131
|
+
// Refer to "Design System Adaptation" below for prop mapping guidance
|
|
125
132
|
return (
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
variant={readOnly ? 'standard' : 'outlined'}
|
|
129
|
-
helperText={helperTextToDisplay}
|
|
130
|
-
placeholder={placeholder ?? ''}
|
|
131
|
-
size='small'
|
|
132
|
-
required={required}
|
|
133
|
-
disabled={disabled}
|
|
133
|
+
<YourDesignSystemInput
|
|
134
|
+
value={inputValue}
|
|
134
135
|
onChange={handleChange}
|
|
135
136
|
onBlur={!readOnly ? handleBlur : undefined}
|
|
136
|
-
|
|
137
|
+
disabled={disabled}
|
|
138
|
+
readOnly={readOnly}
|
|
139
|
+
required={required}
|
|
140
|
+
placeholder={placeholder}
|
|
137
141
|
label={label}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}}
|
|
142
|
+
helperText={helperTextToDisplay}
|
|
143
|
+
isInvalid={status === 'error'}
|
|
144
|
+
data-test-id={testId}
|
|
142
145
|
/>
|
|
143
146
|
);
|
|
144
147
|
}
|
|
@@ -146,6 +149,36 @@ export default function MyField(props: MyFieldProps) {
|
|
|
146
149
|
|
|
147
150
|
---
|
|
148
151
|
|
|
152
|
+
## Design System Adaptation
|
|
153
|
+
|
|
154
|
+
When filling in the `// [DS RENDER]` section with a specific design system:
|
|
155
|
+
|
|
156
|
+
**1. Check the component-specific skill file** — `.github/skills/field-skills/<ComponentName>.md` contains a **Design System Mapping** table that lists the recommended DS component for common design systems. Use it as a starting point.
|
|
157
|
+
|
|
158
|
+
**2. If the chosen design system is not in the mapping table** — use the **UI control type** field in the same skill file (e.g., `"Combobox / typeahead autocomplete input"`) to identify the closest DS primitive.
|
|
159
|
+
|
|
160
|
+
**3. Discover the API from installed packages** — before writing any render JSX, confirm all prop names from `.d.ts` files. Never rely on training-knowledge of a DS API:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
find node_modules/<ds-package> -name "ComponentName.d.ts" | head -3
|
|
164
|
+
grep -A 40 "interface.*Props" <path-to-file>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**4. Prop mapping conventions** — adapt these Pega/SDK props to whatever your DS component calls them:
|
|
168
|
+
|
|
169
|
+
| Pega/SDK prop | Meaning | Typical DS equivalent |
|
|
170
|
+
| --------------------------------- | ----------------------------- | -------------------------------------------------- |
|
|
171
|
+
| `status === 'error'` | Validation error state | `error`, `status="error"`, `invalid`, `isInvalid` |
|
|
172
|
+
| `validatemessage \|\| helperText` | Helper/error text below field | `helperText`, `description`, `hint`, `extra` |
|
|
173
|
+
| `readOnly` | Non-editable, still visible | `readOnly`, `isReadOnly`, `variant="borderless"` |
|
|
174
|
+
| `testId` | Automation selector | `data-test-id` on the underlying `<input>` element |
|
|
175
|
+
| `required` | Required field marker | `required`, `isRequired` |
|
|
176
|
+
| `hideLabel` | Suppress label display | Pass empty string `''` as label |
|
|
177
|
+
|
|
178
|
+
**5. Use a form layout wrapper** — if the DS provides a wrapper that combines label + input + helper text (e.g., `<Form.Item>` in Ant Design, `<FormControl>` in Chakra UI), use it rather than composing them manually.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
149
182
|
## Event Handling
|
|
150
183
|
|
|
151
184
|
Use `src/components/helpers/event-utils.ts` to commit values to the Pega store:
|
|
@@ -18,16 +18,16 @@ Renders a typeahead input that shows a dropdown of matching options as the user
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `listType`
|
|
24
|
-
| `datasource`
|
|
25
|
-
| `columns`
|
|
26
|
-
| `parameters`
|
|
27
|
-
| `deferDatasource`
|
|
28
|
-
| `datasourceMetadata` | `any` (optional)
|
|
29
|
-
| `onRecordChange`
|
|
30
|
-
| `additionalProps`
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
| -------------------- | -------------------- | -------------------------------------------------------------- |
|
|
23
|
+
| `listType` | `string` | `'associated'` or `'datapage'` |
|
|
24
|
+
| `datasource` | `any` | Datasource (array for associated, string name for datapage) |
|
|
25
|
+
| `columns` | `any[]` | Column config for extracting key/value from datasource records |
|
|
26
|
+
| `parameters` | `any` (optional) | Query parameters for data page calls |
|
|
27
|
+
| `deferDatasource` | `boolean` (optional) | If true, transform `datasourceMetadata` into datapage config |
|
|
28
|
+
| `datasourceMetadata` | `any` (optional) | Metadata for deferred datasource |
|
|
29
|
+
| `onRecordChange` | `any` (optional) | Callback fired on selection change |
|
|
30
|
+
| `additionalProps` | `object` (optional) | Extra props passed through to the autocomplete |
|
|
31
31
|
|
|
32
32
|
## Behavioral Contract
|
|
33
33
|
|
|
@@ -64,18 +64,19 @@ Resolve the display label from options and delegate: `return <TextInput {...prop
|
|
|
64
64
|
|
|
65
65
|
## Visual Specifications
|
|
66
66
|
|
|
67
|
-
| Property
|
|
68
|
-
|
|
69
|
-
| Width
|
|
70
|
-
| Size
|
|
71
|
-
| Variant
|
|
72
|
-
| Dropdown popup | Opens below input, shows filtered options
|
|
73
|
-
| Input
|
|
74
|
-
| Error state
|
|
75
|
-
| Label
|
|
76
|
-
| Placeholder
|
|
67
|
+
| Property | Value |
|
|
68
|
+
| -------------- | ----------------------------------------------------------- |
|
|
69
|
+
| Width | 100% |
|
|
70
|
+
| Size | Small |
|
|
71
|
+
| Variant | Outlined |
|
|
72
|
+
| Dropdown popup | Opens below input, shows filtered options |
|
|
73
|
+
| Input | Combobox pattern — types to filter, click arrow to open all |
|
|
74
|
+
| Error state | Red border + red helper text |
|
|
75
|
+
| Label | Floating label |
|
|
76
|
+
| Placeholder | From `placeholder` prop |
|
|
77
77
|
|
|
78
78
|
**Autocomplete behavior:**
|
|
79
|
+
|
|
79
80
|
- The controlled `value` is the selected option object (or `selectedValue` string).
|
|
80
81
|
- The controlled `inputValue` is the typed text.
|
|
81
82
|
- `getOptionLabel` returns `option.value` (the display label).
|
|
@@ -104,9 +105,9 @@ Resolve the display label from options and delegate: `return <TextInput {...prop
|
|
|
104
105
|
|
|
105
106
|
Listed design systems are examples only.
|
|
106
107
|
|
|
107
|
-
| Design System
|
|
108
|
-
|
|
109
|
-
| Default (CSS only) | `<input>` + custom dropdown list with filtering
|
|
110
|
-
| MUI
|
|
111
|
-
| Ant Design
|
|
112
|
-
| Chakra UI
|
|
108
|
+
| Design System | Recommended Component |
|
|
109
|
+
| ------------------ | ------------------------------------------------------- |
|
|
110
|
+
| Default (CSS only) | `<input>` + custom dropdown list with filtering |
|
|
111
|
+
| MUI | `<Autocomplete>` with `renderInput` using `<TextField>` |
|
|
112
|
+
| Ant Design | `<AutoComplete>` or `<Select showSearch>` |
|
|
113
|
+
| Chakra UI | `<Combobox>` (Downshift) or third-party |
|
|
@@ -18,26 +18,26 @@ Renders a full-screen modal overlay with a confirmation dialog. Presents two act
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `heading`
|
|
24
|
-
| `content`
|
|
25
|
-
| `itemKey`
|
|
26
|
-
| `hideDelete`
|
|
27
|
-
| `isDataObject`
|
|
28
|
-
| `skipReleaseLockRequest` | `any`
|
|
29
|
-
| `dismiss`
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
| ------------------------ | ---------- | ---------------------------------------------------------------------------------------- |
|
|
23
|
+
| `heading` | `string` | Modal dialog heading text |
|
|
24
|
+
| `content` | `string` | Modal dialog body/description text |
|
|
25
|
+
| `itemKey` | `string` | The container item ID for the case being cancelled (aliased as `containerItemID`) |
|
|
26
|
+
| `hideDelete` | `boolean` | Whether to hide/disable the delete option |
|
|
27
|
+
| `isDataObject` | `boolean` | Whether this is cancelling a data object (not a work item) |
|
|
28
|
+
| `skipReleaseLockRequest` | `any` | Whether to skip lock release when removing container item |
|
|
29
|
+
| `dismiss` | `Function` | Callback to close/dismiss this dialog (called with `true` to indicate confirmed dismiss) |
|
|
30
30
|
|
|
31
31
|
## Behavioral Contract
|
|
32
32
|
|
|
33
33
|
### Setup
|
|
34
34
|
|
|
35
35
|
```typescript
|
|
36
|
-
const actionsAPI = getPConnect().getActionsApi()
|
|
37
|
-
const containerManagerAPI = getPConnect().getContainerManager()
|
|
38
|
-
const isLocalAction = getPConnect().getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION)
|
|
39
|
-
const isBulkAction = getPConnect()?.options?.isBulkAction
|
|
40
|
-
const isReverseCoexistence = PCore.getCoexistenceManager().getBroadcastUtils().isReverseCoexistenceCaseLoaded()
|
|
36
|
+
const actionsAPI = getPConnect().getActionsApi();
|
|
37
|
+
const containerManagerAPI = getPConnect().getContainerManager();
|
|
38
|
+
const isLocalAction = getPConnect().getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION);
|
|
39
|
+
const isBulkAction = getPConnect()?.options?.isBulkAction;
|
|
40
|
+
const isReverseCoexistence = PCore.getCoexistenceManager().getBroadcastUtils().isReverseCoexistenceCaseLoaded();
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
### State
|
|
@@ -49,6 +49,7 @@ const isReverseCoexistence = PCore.getCoexistenceManager().getBroadcastUtils().i
|
|
|
49
49
|
### "Go back" button (`leftButton`)
|
|
50
50
|
|
|
51
51
|
Always calls `dismiss()` (no argument = don't confirm). If `isReverseCoexistence`:
|
|
52
|
+
|
|
52
53
|
```
|
|
53
54
|
broadCastUtils.setCallBackFunction(null)
|
|
54
55
|
broadCastUtils.setIsDirtyDialogActive(false)
|
|
@@ -59,6 +60,7 @@ broadCastUtils.setIsDirtyDialogActive(false)
|
|
|
59
60
|
Decision tree (evaluated in order):
|
|
60
61
|
|
|
61
62
|
1. **Reverse coexistence:**
|
|
63
|
+
|
|
62
64
|
```
|
|
63
65
|
dismiss(true)
|
|
64
66
|
PCore.getPubSubUtils().publish(REVERSE_COEXISTENCE_EVENTS.HANDLE_DISCARD)
|
|
@@ -72,12 +74,14 @@ Decision tree (evaluated in order):
|
|
|
72
74
|
- `.finally()`: re-enable delete button, call `dismiss(true)`
|
|
73
75
|
|
|
74
76
|
3. **Local action** (`isLocalAction`):
|
|
77
|
+
|
|
75
78
|
```
|
|
76
79
|
dismiss(true)
|
|
77
80
|
actionsAPI.cancelAssignment(containerItemID, false)
|
|
78
81
|
```
|
|
79
82
|
|
|
80
83
|
4. **Bulk action** (`isBulkAction`):
|
|
84
|
+
|
|
81
85
|
```
|
|
82
86
|
dismiss(true)
|
|
83
87
|
actionsAPI.cancelBulkAction(containerItemID)
|
|
@@ -96,6 +100,7 @@ Decision tree (evaluated in order):
|
|
|
96
100
|
### Localization
|
|
97
101
|
|
|
98
102
|
All visible text is localized via `PCore.getLocaleUtils().getLocaleValue(key, 'ModalContainer')`:
|
|
103
|
+
|
|
99
104
|
- `'Go back'`
|
|
100
105
|
- `'Discard'`
|
|
101
106
|
- `heading` prop value
|
|
@@ -107,6 +112,7 @@ All visible text is localized via `PCore.getLocaleUtils().getLocaleValue(key, 'M
|
|
|
107
112
|
Derived from `CancelAlert.css`:
|
|
108
113
|
|
|
109
114
|
### Full-screen overlay (`.cancel-alert-background`)
|
|
115
|
+
|
|
110
116
|
```css
|
|
111
117
|
.cancel-alert-background {
|
|
112
118
|
display: flex;
|
|
@@ -124,6 +130,7 @@ Derived from `CancelAlert.css`:
|
|
|
124
130
|
```
|
|
125
131
|
|
|
126
132
|
### Dialog box (`.cancel-alert-top`)
|
|
133
|
+
|
|
127
134
|
```css
|
|
128
135
|
.cancel-alert-top {
|
|
129
136
|
display: table;
|
|
@@ -153,10 +160,10 @@ Derived from `CancelAlert.css`:
|
|
|
153
160
|
|
|
154
161
|
### Button styles
|
|
155
162
|
|
|
156
|
-
| Button
|
|
157
|
-
|
|
163
|
+
| Button | Style | Color |
|
|
164
|
+
| ------- | --------- | --------- |
|
|
158
165
|
| Go back | Contained | Secondary |
|
|
159
|
-
| Discard | Contained | Primary
|
|
166
|
+
| Discard | Contained | Primary |
|
|
160
167
|
|
|
161
168
|
### Snackbar
|
|
162
169
|
|
|
@@ -165,6 +172,7 @@ Derived from `CancelAlert.css`:
|
|
|
165
172
|
- Close icon button to dismiss manually
|
|
166
173
|
|
|
167
174
|
**CSS variables used:**
|
|
175
|
+
|
|
168
176
|
- `--modal-background-color`: semi-transparent overlay (e.g., `rgba(0,0,0,0.5)`)
|
|
169
177
|
- `--modal-top-color`: dialog background (e.g., white or app background)
|
|
170
178
|
- `--modal-border-color`: dialog border
|
|
@@ -195,9 +203,9 @@ Derived from `CancelAlert.css`:
|
|
|
195
203
|
|
|
196
204
|
Listed design systems are examples only.
|
|
197
205
|
|
|
198
|
-
| Design System
|
|
199
|
-
|
|
206
|
+
| Design System | Recommended Component |
|
|
207
|
+
| ------------------ | ------------------------------------------------------------------------------------------- |
|
|
200
208
|
| Default (CSS only) | `<div class="cancel-alert-background">` + `<div class="cancel-alert-top">` + CSS from above |
|
|
201
|
-
| MUI
|
|
202
|
-
| Ant Design
|
|
203
|
-
| Chakra UI
|
|
209
|
+
| MUI | `<Button>`, `<Grid>`, `<Snackbar>`, `<IconButton>`, fixed overlay `<div>` |
|
|
210
|
+
| Ant Design | `<Modal>` or custom overlay |
|
|
211
|
+
| Chakra UI | `<Modal>` or `<AlertDialog>` |
|
|
@@ -19,31 +19,32 @@ Renders one or more checkboxes. Supports three usage modes: (1) a single boolean
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
21
|
> Note: `Checkbox` uses `Omit<PConnFieldProps, 'value'>` with its own `value?: boolean`. Import type as:
|
|
22
|
+
>
|
|
22
23
|
> ```typescript
|
|
23
24
|
> import type { PConnFieldProps } from '@pega/sdk-react';
|
|
24
25
|
> ```
|
|
25
26
|
|
|
26
|
-
| Prop
|
|
27
|
-
|
|
28
|
-
| `value`
|
|
29
|
-
| `caption`
|
|
30
|
-
| `trueLabel`
|
|
31
|
-
| `falseLabel`
|
|
32
|
-
| `selectionMode`
|
|
33
|
-
| `datasource`
|
|
34
|
-
| `selectionKey`
|
|
35
|
-
| `selectionList`
|
|
36
|
-
| `primaryField`
|
|
37
|
-
| `readonlyContextList`
|
|
38
|
-
| `referenceList`
|
|
39
|
-
| `variant`
|
|
40
|
-
| `hideFieldLabels`
|
|
41
|
-
| `additionalProps`
|
|
42
|
-
| `imagePosition`
|
|
43
|
-
| `imageSize`
|
|
44
|
-
| `showImageDescription` | `string`
|
|
45
|
-
| `renderMode`
|
|
46
|
-
| `image`
|
|
27
|
+
| Prop | Type | Description |
|
|
28
|
+
| ---------------------- | -------------------- | -------------------------------------------------------------------- |
|
|
29
|
+
| `value` | `boolean` (optional) | Checked state for single-mode checkbox |
|
|
30
|
+
| `caption` | `string` (optional) | Label shown next to the single checkbox (not the group label) |
|
|
31
|
+
| `trueLabel` | `string` (optional) | Display text when `value` is `true` (used in display modes) |
|
|
32
|
+
| `falseLabel` | `string` (optional) | Display text when `value` is `false` (used in display modes) |
|
|
33
|
+
| `selectionMode` | `string` (optional) | `'multi'` — enables multi-selection mode from a datasource list |
|
|
34
|
+
| `datasource` | `any` (optional) | Options source for multi/card modes |
|
|
35
|
+
| `selectionKey` | `string` (optional) | The property path used as the key in selection list |
|
|
36
|
+
| `selectionList` | `any` (optional) | Property path for the reference list (multi mode) |
|
|
37
|
+
| `primaryField` | `string` | Primary display field for multi/card mode |
|
|
38
|
+
| `readonlyContextList` | `any` | Array of currently selected items (for multi/card read-only display) |
|
|
39
|
+
| `referenceList` | `string` | Reference list property path |
|
|
40
|
+
| `variant` | `string` (optional) | `'card'` — renders options as selectable card grid |
|
|
41
|
+
| `hideFieldLabels` | `boolean` | Hide field labels inside card variant |
|
|
42
|
+
| `additionalProps` | `any` | Extra props passed to card or checkbox |
|
|
43
|
+
| `imagePosition` | `string` | Card image position |
|
|
44
|
+
| `imageSize` | `string` | Card image size |
|
|
45
|
+
| `showImageDescription` | `string` | Whether to show image description |
|
|
46
|
+
| `renderMode` | `string` | `'ReadOnly'` — sets read-only mode alongside `readOnly` prop |
|
|
47
|
+
| `image` | `string` | Image field path for card variant |
|
|
47
48
|
|
|
48
49
|
## Behavioral Contract
|
|
49
50
|
|
|
@@ -56,6 +57,7 @@ Renders one or more checkboxes. Supports three usage modes: (1) a single boolean
|
|
|
56
57
|
### Variant: Single checkbox (default)
|
|
57
58
|
|
|
58
59
|
Render a single checkbox with:
|
|
60
|
+
|
|
59
61
|
- `checked={checked}`
|
|
60
62
|
- `onChange={!readOnly ? handleChange : undefined}`
|
|
61
63
|
- `onBlur={!readOnly ? handleBlur : undefined}`
|
|
@@ -67,6 +69,7 @@ Render a single checkbox with:
|
|
|
67
69
|
### Variant: Multi-select (`selectionMode === 'multi'`)
|
|
68
70
|
|
|
69
71
|
Render a list of checkboxes from `datasource.source`:
|
|
72
|
+
|
|
70
73
|
- Each option: `key` from `selectionKey` extraction, `text`/`value` as label.
|
|
71
74
|
- `checked` per option: `selectedvalues.some(data => data[dataField] === element.key)` where `dataField = selectionKey.split('.')[1]`.
|
|
72
75
|
- **On change per checkbox:**
|
|
@@ -78,6 +81,7 @@ Render a list of checkboxes from `datasource.source`:
|
|
|
78
81
|
### Variant: Card (`variant === 'card'`)
|
|
79
82
|
|
|
80
83
|
Render a heading (`<h4>`) + CSS Grid + `SelectableCard` component:
|
|
84
|
+
|
|
81
85
|
- Grid: `repeat(auto-fit, minmax(min(100%, 40ch), 1fr))`, `gridAutoRows: '1fr'`, `gap: '0.5rem'`.
|
|
82
86
|
- `SelectableCard` props:
|
|
83
87
|
- `type='checkbox'`
|
|
@@ -94,6 +98,7 @@ Render a heading (`<h4>`) + CSS Grid + `SelectableCard` component:
|
|
|
94
98
|
## Display Mode Rendering
|
|
95
99
|
|
|
96
100
|
Display mode uses `caption` (not `label`) and shows true/false label:
|
|
101
|
+
|
|
97
102
|
- **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />`
|
|
98
103
|
- **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} variant='stacked' />`
|
|
99
104
|
|
|
@@ -106,29 +111,41 @@ Multi/Card mode: `readOnlyMode` flag prevents `insertInstruction`/`deleteInstruc
|
|
|
106
111
|
|
|
107
112
|
### Standard / Multi-select
|
|
108
113
|
|
|
109
|
-
| Property
|
|
110
|
-
|
|
111
|
-
| Checkbox size
|
|
112
|
-
| Label placement
|
|
113
|
-
| Group label
|
|
114
|
-
| Layout
|
|
115
|
-
| Helper text
|
|
116
|
-
| Error state
|
|
117
|
-
| Disabled/readOnly | Greyed out, pointer-events none
|
|
114
|
+
| Property | Value |
|
|
115
|
+
| ----------------- | --------------------------------------------- |
|
|
116
|
+
| Checkbox size | Default (24px) |
|
|
117
|
+
| Label placement | End (right of checkbox) |
|
|
118
|
+
| Group label | `<legend>` above group, hidden if `hideLabel` |
|
|
119
|
+
| Layout | Single: single row. Multi: vertical column |
|
|
120
|
+
| Helper text | Below group |
|
|
121
|
+
| Error state | Red text/border on helper |
|
|
122
|
+
| Disabled/readOnly | Greyed out, pointer-events none |
|
|
118
123
|
|
|
119
124
|
**CSS-only:**
|
|
125
|
+
|
|
120
126
|
```css
|
|
121
|
-
.checkbox-group {
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
.checkbox-group {
|
|
128
|
+
display: flex;
|
|
129
|
+
flex-direction: column;
|
|
130
|
+
gap: 4px;
|
|
131
|
+
}
|
|
132
|
+
.checkbox-label {
|
|
133
|
+
display: flex;
|
|
134
|
+
align-items: center;
|
|
135
|
+
gap: 8px;
|
|
136
|
+
cursor: pointer;
|
|
137
|
+
}
|
|
138
|
+
input[type='checkbox']:disabled {
|
|
139
|
+
opacity: 0.38;
|
|
140
|
+
}
|
|
124
141
|
```
|
|
125
142
|
|
|
126
143
|
### Card Variant
|
|
127
144
|
|
|
128
|
-
| Property | Value
|
|
129
|
-
|
|
130
|
-
| Layout
|
|
131
|
-
| Heading
|
|
145
|
+
| Property | Value |
|
|
146
|
+
| -------- | ------------------------------------------------------------------------------------------------- |
|
|
147
|
+
| Layout | CSS Grid `repeat(auto-fit, minmax(min(100%, 40ch), 1fr))`, row height equal (`1fr`), gap `0.5rem` |
|
|
148
|
+
| Heading | `<h4>` with `marginTop: 0, marginBottom: 0` |
|
|
132
149
|
|
|
133
150
|
## Edge Cases & Special Logic
|
|
134
151
|
|
|
@@ -150,9 +167,9 @@ input[type="checkbox"]:disabled { opacity: 0.38; }
|
|
|
150
167
|
|
|
151
168
|
Listed design systems are examples only.
|
|
152
169
|
|
|
153
|
-
| Design System
|
|
154
|
-
|
|
155
|
-
| Default (CSS only) | `<input type="checkbox">` with `<label>`
|
|
156
|
-
| MUI
|
|
157
|
-
| Ant Design
|
|
158
|
-
| Chakra UI
|
|
170
|
+
| Design System | Recommended Component |
|
|
171
|
+
| ------------------ | --------------------------------------------------- |
|
|
172
|
+
| Default (CSS only) | `<input type="checkbox">` with `<label>` |
|
|
173
|
+
| MUI | `<Checkbox>` in `<FormControlLabel>`, `<FormGroup>` |
|
|
174
|
+
| Ant Design | `<Checkbox>` / `<Checkbox.Group>` |
|
|
175
|
+
| Chakra UI | `<Checkbox>` / `<CheckboxGroup>` |
|