@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
|
@@ -18,17 +18,17 @@ Renders a group of radio buttons for single-selection from a list of options. Su
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `inline`
|
|
24
|
-
| `fieldMetadata`
|
|
25
|
-
| `variant`
|
|
26
|
-
| `hideFieldLabels`
|
|
27
|
-
| `additionalProps`
|
|
28
|
-
| `imagePosition`
|
|
29
|
-
| `imageSize`
|
|
30
|
-
| `showImageDescription` | `boolean` (optional) | Whether to show image description in cards
|
|
31
|
-
| `datasource`
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
| ---------------------- | -------------------- | ------------------------------------------------------------------------------- |
|
|
23
|
+
| `inline` | `boolean` | If `true`, render radio buttons in a horizontal row; if `false`, vertical stack |
|
|
24
|
+
| `fieldMetadata` | `any` (optional) | For localization context (tableType, datasource name, display text property) |
|
|
25
|
+
| `variant` | `string` (optional) | `'card'` — renders options as selectable cards instead of radio buttons |
|
|
26
|
+
| `hideFieldLabels` | `boolean` (optional) | Hide field labels inside card variant |
|
|
27
|
+
| `additionalProps` | `any` (optional) | Extra props passed to `SelectableCard` in card variant |
|
|
28
|
+
| `imagePosition` | `string` (optional) | Card image position: `'inline-start'`, `'inline-end'`, or block |
|
|
29
|
+
| `imageSize` | `string` (optional) | Card image size |
|
|
30
|
+
| `showImageDescription` | `boolean` (optional) | Whether to show image description in cards |
|
|
31
|
+
| `datasource` | `any` (optional) | Datasource for card variant |
|
|
32
32
|
|
|
33
33
|
## Behavioral Contract
|
|
34
34
|
|
|
@@ -49,6 +49,7 @@ Renders a group of radio buttons for single-selection from a list of options. Su
|
|
|
49
49
|
### Variant: Standard (default)
|
|
50
50
|
|
|
51
51
|
Render a radio group with `FormControl > FormLabel > RadioGroup > FormControlLabel (Radio)` pattern:
|
|
52
|
+
|
|
52
53
|
- `FormLabel`: the `label` prop
|
|
53
54
|
- `RadioGroup`: `value={theSelectedButton}`, `onChange={handleChange}`, `onBlur`, `row={inline}`
|
|
54
55
|
- Each `FormControlLabel`: `value={option.key}`, `label={localizedLabel}`, `control={<Radio color='primary' disabled={readOnly} />}`
|
|
@@ -58,6 +59,7 @@ Render a radio group with `FormControl > FormLabel > RadioGroup > FormControlLab
|
|
|
58
59
|
### Variant: Card (`variant === 'card'`)
|
|
59
60
|
|
|
60
61
|
Render a heading (`<h4>`) with the `label`, then delegate to `SelectableCard` component:
|
|
62
|
+
|
|
61
63
|
```
|
|
62
64
|
<div>
|
|
63
65
|
<h4 style={{ marginTop: 0, marginBottom: 0 }}>{label}</h4>
|
|
@@ -78,12 +80,14 @@ Render a heading (`<h4>`) with the `label`, then delegate to `SelectableCard` co
|
|
|
78
80
|
</div>
|
|
79
81
|
</div>
|
|
80
82
|
```
|
|
83
|
+
|
|
81
84
|
- `imageField`: `stateProps.image?.split('.').pop()`
|
|
82
85
|
- `imageDescription`: `stateProps.imageDescription?.split('.').pop()`
|
|
83
86
|
|
|
84
87
|
## Display Mode Rendering
|
|
85
88
|
|
|
86
89
|
Both modes render the localized display label of the selected option:
|
|
90
|
+
|
|
87
91
|
- **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : label} value={localizedValue} />`
|
|
88
92
|
- **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : label} value={localizedValue} variant='stacked' />`
|
|
89
93
|
|
|
@@ -93,31 +97,48 @@ Where `localizedValue = pConn.getLocalizedValue(value, localePath, localeRuleNam
|
|
|
93
97
|
|
|
94
98
|
### Standard Variant
|
|
95
99
|
|
|
96
|
-
| Property
|
|
97
|
-
|
|
98
|
-
| Layout
|
|
99
|
-
| Radio indicator
|
|
100
|
-
| Label
|
|
101
|
-
| Group label
|
|
102
|
-
| Error state
|
|
103
|
-
| Helper text
|
|
104
|
-
| Disabled (readOnly) | Greyed-out radio buttons, not-allowed cursor
|
|
100
|
+
| Property | Value |
|
|
101
|
+
| ------------------- | -------------------------------------------------------------------- |
|
|
102
|
+
| Layout | Vertical stack (or horizontal row when `inline=true`) |
|
|
103
|
+
| Radio indicator | Circle button with filled inner circle when selected |
|
|
104
|
+
| Label | Label text to the right of the radio button (`labelPlacement='end'`) |
|
|
105
|
+
| Group label | `<legend>` / `<FormLabel>` above the group |
|
|
106
|
+
| Error state | Group border or text in red |
|
|
107
|
+
| Helper text | Below the group |
|
|
108
|
+
| Disabled (readOnly) | Greyed-out radio buttons, not-allowed cursor |
|
|
105
109
|
|
|
106
110
|
**CSS-only notes:**
|
|
111
|
+
|
|
107
112
|
```css
|
|
108
|
-
.radio-group {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
.radio-group {
|
|
114
|
+
display: flex;
|
|
115
|
+
flex-direction: column;
|
|
116
|
+
gap: 4px;
|
|
117
|
+
}
|
|
118
|
+
.radio-group.inline {
|
|
119
|
+
flex-direction: row;
|
|
120
|
+
flex-wrap: wrap;
|
|
121
|
+
gap: 8px;
|
|
122
|
+
}
|
|
123
|
+
.radio-label {
|
|
124
|
+
display: flex;
|
|
125
|
+
align-items: center;
|
|
126
|
+
gap: 8px;
|
|
127
|
+
cursor: pointer;
|
|
128
|
+
}
|
|
129
|
+
input[type='radio']:disabled {
|
|
130
|
+
opacity: 0.38;
|
|
131
|
+
cursor: default;
|
|
132
|
+
}
|
|
112
133
|
```
|
|
113
134
|
|
|
114
135
|
### Card Variant
|
|
115
136
|
|
|
116
|
-
| Property | Value
|
|
117
|
-
|
|
118
|
-
| Layout
|
|
119
|
-
| Card
|
|
120
|
-
| Heading
|
|
137
|
+
| Property | Value |
|
|
138
|
+
| -------- | ----------------------------------------------------------------------- |
|
|
139
|
+
| Layout | CSS Grid: `repeat(auto-fit, minmax(min(200px, 100%), 1fr))`, gap `1rem` |
|
|
140
|
+
| Card | Elevated card with click handler that activates the radio |
|
|
141
|
+
| Heading | `<h4>` with `marginTop: 0, marginBottom: 0` above grid |
|
|
121
142
|
|
|
122
143
|
## Edge Cases & Special Logic
|
|
123
144
|
|
|
@@ -138,9 +159,9 @@ input[type="radio"]:disabled { opacity: 0.38; cursor: default; }
|
|
|
138
159
|
|
|
139
160
|
Listed design systems are examples only.
|
|
140
161
|
|
|
141
|
-
| Design System
|
|
142
|
-
|
|
143
|
-
| Default (CSS only) | `<input type="radio">` with `<label>` per option
|
|
144
|
-
| MUI
|
|
145
|
-
| Ant Design
|
|
146
|
-
| Chakra UI
|
|
162
|
+
| Design System | Recommended Component |
|
|
163
|
+
| ------------------ | ------------------------------------------------------------ |
|
|
164
|
+
| Default (CSS only) | `<input type="radio">` with `<label>` per option |
|
|
165
|
+
| MUI | `<RadioGroup>` with `<FormControlLabel control={<Radio />}>` |
|
|
166
|
+
| Ant Design | `<Radio.Group>` with `<Radio>` options |
|
|
167
|
+
| Chakra UI | `<RadioGroup>` with `<Radio>` items |
|
|
@@ -18,8 +18,8 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
|
|
|
18
18
|
|
|
19
19
|
## Props (component-specific)
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
| ----------------- | ------------------- | --------------------------------------------- |
|
|
23
23
|
| `additionalProps` | `object` (optional) | Extra props forwarded to the `RichTextEditor` |
|
|
24
24
|
|
|
25
25
|
## Behavioral Contract
|
|
@@ -29,8 +29,8 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
|
|
|
29
29
|
3. **Props coercion:** `readOnly`, `required`, `disabled` must be coerced to booleans:
|
|
30
30
|
```typescript
|
|
31
31
|
[readOnly, required, disabled] = [readOnly, required, disabled].map(
|
|
32
|
-
prop => prop === true || (typeof prop === 'string' && prop === 'true')
|
|
33
|
-
)
|
|
32
|
+
(prop) => prop === true || (typeof prop === 'string' && prop === 'true'),
|
|
33
|
+
);
|
|
34
34
|
```
|
|
35
35
|
4. **Editable mode:**
|
|
36
36
|
- Track `status` for error state.
|
|
@@ -47,6 +47,7 @@ Renders a rich text (WYSIWYG) editor for HTML content. Uses a registry-resolved
|
|
|
47
47
|
6. **`RichTextEditor` component:** Resolved via `getComponentFromRegistry('RichTextEditor')`. This is a design-system extension component that wraps the actual WYSIWYG library (e.g., TinyMCE).
|
|
48
48
|
|
|
49
49
|
### Editable RichTextEditor props
|
|
50
|
+
|
|
50
51
|
```
|
|
51
52
|
label, labelHidden={hideLabel}, info={helperTextToDisplay}, defaultValue={value},
|
|
52
53
|
placeholder, disabled, required, testId, ref={editorRef},
|
|
@@ -54,6 +55,7 @@ error={status === 'error'}, onBlur={handleBlur}, onChange={handleChange}
|
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
### Read-only RichTextEditor props
|
|
58
|
+
|
|
57
59
|
```
|
|
58
60
|
label, labelHidden={hideLabel}, defaultValue={value}, testId, info={helperTextToDisplay},
|
|
59
61
|
ref={editorRef}, readOnly
|
|
@@ -62,6 +64,7 @@ ref={editorRef}, readOnly
|
|
|
62
64
|
## Display Mode Rendering
|
|
63
65
|
|
|
64
66
|
Display modes pass `isHtml={true}` to render HTML content safely:
|
|
67
|
+
|
|
65
68
|
- **`DISPLAY_ONLY`:** `<FieldValueList name={hideLabel ? '' : label} value={value} isHtml />`
|
|
66
69
|
- **`STACKED_LARGE_VAL`:** `<FieldValueList name={hideLabel ? '' : label} value={value} isHtml variant='stacked' />`
|
|
67
70
|
|
|
@@ -75,9 +78,15 @@ The visual appearance of the rich text editor depends on the underlying `RichTex
|
|
|
75
78
|
|
|
76
79
|
```css
|
|
77
80
|
/* RichText.css — must be imported */
|
|
78
|
-
.tox .tox-toolbar {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
.tox .tox-toolbar {
|
|
82
|
+
background-color: var(--app-background-color) !important;
|
|
83
|
+
}
|
|
84
|
+
.tox .tox-toolbar__primary {
|
|
85
|
+
background-color: var(--app-background-color) !important;
|
|
86
|
+
}
|
|
87
|
+
.tox .tox-toolbar__button {
|
|
88
|
+
color: var(--app-text-color) !important;
|
|
89
|
+
}
|
|
81
90
|
.tox .tox-toolbar__button--enabled {
|
|
82
91
|
background: var(--app-primary-color) !important;
|
|
83
92
|
color: #fff !important;
|
|
@@ -100,6 +109,7 @@ The visual appearance of the rich text editor depends on the underlying `RichTex
|
|
|
100
109
|
**Note:** Import `./RichText.css` in the component file. The CSS variables (`--app-background-color`, `--app-text-color`, etc.) are set by the application theme.
|
|
101
110
|
|
|
102
111
|
When implementing with a different design system:
|
|
112
|
+
|
|
103
113
|
- Custom CSS for toolbar theming may be needed
|
|
104
114
|
- The editor container should be full-width
|
|
105
115
|
- Minimum height: ~200px for a usable editing area
|
|
@@ -121,6 +131,7 @@ When implementing with a different design system:
|
|
|
121
131
|
- `useRef` from React.
|
|
122
132
|
|
|
123
133
|
**For other rich text editors:**
|
|
134
|
+
|
|
124
135
|
- Any WYSIWYG editor that exposes `ref.current.getContent()` or equivalent.
|
|
125
136
|
- Examples: Quill, Draft.js, Slate.js, CKEditor.
|
|
126
137
|
|
|
@@ -130,9 +141,9 @@ When implementing with a different design system:
|
|
|
130
141
|
|
|
131
142
|
Listed design systems are examples only.
|
|
132
143
|
|
|
133
|
-
| Design System
|
|
134
|
-
|
|
144
|
+
| Design System | Recommended Component |
|
|
145
|
+
| ------------------ | ------------------------------------------------- |
|
|
135
146
|
| Default (CSS only) | `contenteditable` div + custom toolbar OR TinyMCE |
|
|
136
|
-
| MUI
|
|
137
|
-
| Ant Design
|
|
138
|
-
| Chakra UI
|
|
147
|
+
| MUI | `RichTextEditor` custom extension (TinyMCE) |
|
|
148
|
+
| Ant Design | Quill or TinyMCE with Ant styling |
|
|
149
|
+
| Chakra UI | Quill or TipTap with Chakra styling |
|
|
@@ -24,14 +24,14 @@ Renders a list of scalar (primitive) values by dynamically creating a child comp
|
|
|
24
24
|
import type { PConnProps } from '@pega/sdk-react';
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
| Prop
|
|
28
|
-
|
|
29
|
-
| `value`
|
|
30
|
-
| `componentType`
|
|
31
|
-
| `label`
|
|
32
|
-
| `displayMode`
|
|
33
|
-
| `hideLabel`
|
|
34
|
-
| `displayInModal` | `boolean` | Whether this is displayed in a modal context
|
|
27
|
+
| Prop | Type | Description |
|
|
28
|
+
| ---------------- | --------- | ---------------------------------------------------------------------------- |
|
|
29
|
+
| `value` | `any[]` | Array of scalar values to display |
|
|
30
|
+
| `componentType` | `string` | The Pega component type to use for each item (e.g., `'TextInput'`, `'Date'`) |
|
|
31
|
+
| `label` | `string` | Field label |
|
|
32
|
+
| `displayMode` | `string` | Display mode |
|
|
33
|
+
| `hideLabel` | `boolean` | Whether to hide the label |
|
|
34
|
+
| `displayInModal` | `boolean` | Whether this is displayed in a modal context |
|
|
35
35
|
|
|
36
36
|
All remaining props (`...restProps`) are forwarded to each child component.
|
|
37
37
|
|
|
@@ -40,7 +40,7 @@ All remaining props (`...restProps`) are forwarded to each child component.
|
|
|
40
40
|
1. **No state, no event handling** — purely display/read-only.
|
|
41
41
|
2. **Item rendering:** Map each value in `scalarValues` to a component via `getPConnect().createComponent(...)`:
|
|
42
42
|
```typescript
|
|
43
|
-
const items = scalarValues?.map(scalarValue =>
|
|
43
|
+
const items = scalarValues?.map((scalarValue) =>
|
|
44
44
|
getPConnect().createComponent(
|
|
45
45
|
{
|
|
46
46
|
type: componentType,
|
|
@@ -49,14 +49,14 @@ All remaining props (`...restProps`) are forwarded to each child component.
|
|
|
49
49
|
displayMode: 'DISPLAY_ONLY',
|
|
50
50
|
label,
|
|
51
51
|
...restProps,
|
|
52
|
-
readOnly: 'true'
|
|
53
|
-
}
|
|
52
|
+
readOnly: 'true',
|
|
53
|
+
},
|
|
54
54
|
},
|
|
55
|
-
'',
|
|
56
|
-
'',
|
|
57
|
-
{}
|
|
58
|
-
)
|
|
59
|
-
)
|
|
55
|
+
'', // 2nd arg: empty string
|
|
56
|
+
'', // 3rd arg: empty string
|
|
57
|
+
{}, // 4th arg: empty object
|
|
58
|
+
),
|
|
59
|
+
);
|
|
60
60
|
```
|
|
61
61
|
3. **`CommaSeparatedList` sub-component:** A local component that renders items as `<span>` elements inside a `<ul>` with no list styling:
|
|
62
62
|
```html
|
|
@@ -70,31 +70,41 @@ All remaining props (`...restProps`) are forwarded to each child component.
|
|
|
70
70
|
## Display Mode Rendering
|
|
71
71
|
|
|
72
72
|
**`STACKED_LARGE_VAL` or `DISPLAY_ONLY`:**
|
|
73
|
+
|
|
73
74
|
```html
|
|
74
75
|
<div>
|
|
75
|
-
<CommaSeparatedList items={items} />
|
|
76
|
+
<CommaSeparatedList items="{items}" />
|
|
76
77
|
</div>
|
|
77
78
|
```
|
|
79
|
+
|
|
78
80
|
No `FieldValueList` wrapper in these modes — the items are rendered directly.
|
|
79
81
|
|
|
80
82
|
**Default (no display mode):**
|
|
83
|
+
|
|
81
84
|
```
|
|
82
85
|
<FieldValueList name={hideLabel ? '' : label} value={<CommaSeparatedList items={items} />} variant='stacked' />
|
|
83
86
|
```
|
|
84
87
|
|
|
85
88
|
## Visual Specifications
|
|
86
89
|
|
|
87
|
-
| Property
|
|
88
|
-
|
|
89
|
-
| List style
|
|
90
|
-
| Item display | Each item rendered as `<span>` (inline)
|
|
91
|
-
| Separator
|
|
92
|
-
| Layout
|
|
90
|
+
| Property | Value |
|
|
91
|
+
| ------------ | ----------------------------------------------------------------- |
|
|
92
|
+
| List style | No bullets, no padding, no margin on `<ul>` |
|
|
93
|
+
| Item display | Each item rendered as `<span>` (inline) |
|
|
94
|
+
| Separator | Items are adjacent spans (no comma separator despite the name) |
|
|
95
|
+
| Layout | Vertical stack when wrapped in `FieldValueList variant='stacked'` |
|
|
93
96
|
|
|
94
97
|
**CSS-only notes:**
|
|
98
|
+
|
|
95
99
|
```css
|
|
96
|
-
.scalar-list {
|
|
97
|
-
|
|
100
|
+
.scalar-list {
|
|
101
|
+
list-style: none;
|
|
102
|
+
padding: 0;
|
|
103
|
+
margin: 0;
|
|
104
|
+
}
|
|
105
|
+
.scalar-list-item {
|
|
106
|
+
display: inline;
|
|
107
|
+
}
|
|
98
108
|
```
|
|
99
109
|
|
|
100
110
|
## Edge Cases & Special Logic
|
|
@@ -116,9 +126,9 @@ No `FieldValueList` wrapper in these modes — the items are rendered directly.
|
|
|
116
126
|
|
|
117
127
|
Listed design systems are examples only.
|
|
118
128
|
|
|
119
|
-
| Design System
|
|
120
|
-
|
|
121
|
-
| Default (CSS only) | `<ul>` with `<span>` items
|
|
122
|
-
| MUI
|
|
123
|
-
| Ant Design
|
|
124
|
-
| Chakra UI
|
|
129
|
+
| Design System | Recommended Component |
|
|
130
|
+
| ------------------ | ---------------------------------------------------------- |
|
|
131
|
+
| Default (CSS only) | `<ul>` with `<span>` items |
|
|
132
|
+
| MUI | `<List>` with `<ListItem>` or just `<Typography>` per item |
|
|
133
|
+
| Ant Design | `<List>` items or `<Space>` with `<Tag>` |
|
|
134
|
+
| Chakra UI | `<List>` or `<HStack>` with `<Tag>` |
|
|
@@ -20,29 +20,29 @@ Renders a grid of selectable cards. Each card contains a radio button or checkbo
|
|
|
20
20
|
|
|
21
21
|
## Props
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `getPConnect`
|
|
26
|
-
| `type`
|
|
27
|
-
| `image`
|
|
28
|
-
| `dataSource`
|
|
29
|
-
| `recordKey`
|
|
30
|
-
| `className`
|
|
31
|
-
| `cardLabel`
|
|
32
|
-
| `hideFieldLabels`
|
|
33
|
-
| `readOnly`
|
|
34
|
-
| `disabled`
|
|
35
|
-
| `readOnlyList`
|
|
36
|
-
| `displayMode`
|
|
37
|
-
| `radioBtnValue`
|
|
38
|
-
| `onChange`
|
|
39
|
-
| `onBlur`
|
|
40
|
-
| `onClick`
|
|
41
|
-
| `onKeyDown`
|
|
42
|
-
| `additionalProps`
|
|
43
|
-
| `testId`
|
|
44
|
-
| `setIsRadioCardSelected` | `function`
|
|
45
|
-
| `showNoValue`
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
| ------------------------ | ----------------------- | ------- | ---------------------------------------------------------------------------------- |
|
|
25
|
+
| `getPConnect` | `function` | — | PConnect accessor |
|
|
26
|
+
| `type` | `'radio' \| 'checkbox'` | — | Selection type |
|
|
27
|
+
| `image` | `object` | — | `{ imagePosition, imageSize, showImageDescription, imageField, imageDescription }` |
|
|
28
|
+
| `dataSource` | `any` | — | Source of card data (in editable mode) |
|
|
29
|
+
| `recordKey` | `string` | `''` | The key field name in each record (e.g., `'pyID'`) |
|
|
30
|
+
| `className` | `string` | — | CSS class for the card |
|
|
31
|
+
| `cardLabel` | `string` | — | The field name to use as card title |
|
|
32
|
+
| `hideFieldLabels` | `boolean` | `false` | Hide field labels inside cards |
|
|
33
|
+
| `readOnly` | `boolean` | — | Read-only mode |
|
|
34
|
+
| `disabled` | `boolean` | — | Disabled state |
|
|
35
|
+
| `readOnlyList` | `any[]` | `[]` | Selected items for read-only display |
|
|
36
|
+
| `displayMode` | `string` | — | Display mode string |
|
|
37
|
+
| `radioBtnValue` | `any` | — | Currently selected value (radio mode) |
|
|
38
|
+
| `onChange` | `function` | — | Change handler |
|
|
39
|
+
| `onBlur` | `function` | — | Blur handler |
|
|
40
|
+
| `onClick` | `function` | — | Click handler |
|
|
41
|
+
| `onKeyDown` | `function` | — | KeyDown handler |
|
|
42
|
+
| `additionalProps` | `any` | — | Spread onto the radio/checkbox input |
|
|
43
|
+
| `testId` | `string` | — | Test identifier |
|
|
44
|
+
| `setIsRadioCardSelected` | `function` | — | Callback to inform parent whether radio selection matched |
|
|
45
|
+
| `showNoValue` | `boolean` | `false` | When true (read-only + no selected items), render "No Value" text |
|
|
46
46
|
|
|
47
47
|
## Behavioral Contract
|
|
48
48
|
|
|
@@ -61,18 +61,20 @@ If `showNoValue`: render a plain text element showing `'No Value'` and return ea
|
|
|
61
61
|
### Card click handler
|
|
62
62
|
|
|
63
63
|
Cards should be clickable anywhere (not just on the checkbox/radio):
|
|
64
|
+
|
|
64
65
|
```typescript
|
|
65
66
|
const handleCardClick = (event) => {
|
|
66
|
-
if (disabled || readOnly) return
|
|
67
|
-
if (event.target.closest('label, input')) return
|
|
68
|
-
const input = event.currentTarget.querySelector('input[type="radio"], input[type="checkbox"]')
|
|
69
|
-
if (input) input.click()
|
|
70
|
-
}
|
|
67
|
+
if (disabled || readOnly) return;
|
|
68
|
+
if (event.target.closest('label, input')) return; // native click already handled
|
|
69
|
+
const input = event.currentTarget.querySelector('input[type="radio"], input[type="checkbox"]');
|
|
70
|
+
if (input) input.click();
|
|
71
|
+
};
|
|
71
72
|
```
|
|
72
73
|
|
|
73
74
|
### Subsection: Display mode (`displayMode === 'DISPLAY_ONLY'`)
|
|
74
75
|
|
|
75
76
|
Render a **simple read-only card** (no radio/checkbox) with:
|
|
77
|
+
|
|
76
78
|
- Optional image (`<img>`)
|
|
77
79
|
- Card title: `item[cardLabel]`
|
|
78
80
|
- Additional resolved fields (from `resolveReferenceFields`)
|
|
@@ -80,7 +82,7 @@ Render a **simple read-only card** (no radio/checkbox) with:
|
|
|
80
82
|
|
|
81
83
|
```html
|
|
82
84
|
<Card style="display: flex">
|
|
83
|
-
{image && <img src="..." alt="..." style="width: 100px"
|
|
85
|
+
{image && <img src="..." alt="..." style="width: 100px" />}
|
|
84
86
|
<CardContent>
|
|
85
87
|
<body1>{item[cardLabel]}</body1>
|
|
86
88
|
{fields.map(field => <body2>{field.value}</body2>)}
|
|
@@ -112,11 +114,11 @@ Render a **selectable card** with click handler, containing the appropriate inpu
|
|
|
112
114
|
|
|
113
115
|
### Image layout (inline positions)
|
|
114
116
|
|
|
115
|
-
| `imagePosition`
|
|
116
|
-
|
|
117
|
-
| `'inline-start'` | `display: flex`
|
|
118
|
-
| `'inline-end'`
|
|
119
|
-
| block (default)
|
|
117
|
+
| `imagePosition` | CardContent style | Image section width | Content section width |
|
|
118
|
+
| ---------------- | ------------------------------------------- | ------------------- | --------------------- |
|
|
119
|
+
| `'inline-start'` | `display: flex` | 40% | 60% |
|
|
120
|
+
| `'inline-end'` | `display: flex, flexDirection: row-reverse` | 40% | 60% |
|
|
121
|
+
| block (default) | default | full width | full width |
|
|
120
122
|
|
|
121
123
|
### Image element
|
|
122
124
|
|
|
@@ -135,10 +137,11 @@ img {
|
|
|
135
137
|
### Field display layout
|
|
136
138
|
|
|
137
139
|
Each additional field in editable mode:
|
|
140
|
+
|
|
138
141
|
```css
|
|
139
142
|
.card-field {
|
|
140
143
|
font-size: 0.875rem;
|
|
141
|
-
display: grid;
|
|
144
|
+
display: grid; /* only if type !== 'TextArea' */
|
|
142
145
|
grid-template-columns: 1fr 1fr;
|
|
143
146
|
margin: 5px;
|
|
144
147
|
}
|
|
@@ -147,6 +150,7 @@ Each additional field in editable mode:
|
|
|
147
150
|
### Radio tracking
|
|
148
151
|
|
|
149
152
|
After iterating cards, if `type === 'radio'` and `setIsRadioCardSelected`:
|
|
153
|
+
|
|
150
154
|
```
|
|
151
155
|
if (radioBtnValue === item[recordKey]) radioItemSelected = true
|
|
152
156
|
// After loop:
|
|
@@ -159,20 +163,21 @@ setIsRadioCardSelected(radioItemSelected)
|
|
|
159
163
|
|
|
160
164
|
## Visual Specifications
|
|
161
165
|
|
|
162
|
-
| Property
|
|
163
|
-
|
|
164
|
-
| Cursor
|
|
165
|
-
| Height
|
|
166
|
-
| Layout
|
|
167
|
-
| Padding top
|
|
168
|
-
| Image (display-only) | 100px fixed width
|
|
169
|
-
| Card border
|
|
170
|
-
| Disabled
|
|
166
|
+
| Property | Editable card | Display-only card |
|
|
167
|
+
| -------------------- | ------------------------------------------------ | ----------------- |
|
|
168
|
+
| Cursor | `pointer` (unless disabled/readOnly → `default`) | Default |
|
|
169
|
+
| Height | `100%` (fills grid row) | Auto |
|
|
170
|
+
| Layout | Column flex | Row flex |
|
|
171
|
+
| Padding top | 15px wrapper | — |
|
|
172
|
+
| Image (display-only) | 100px fixed width | 100px fixed width |
|
|
173
|
+
| Card border | Default (design-system card elevation) | Default |
|
|
174
|
+
| Disabled | `cursor: default` | — |
|
|
171
175
|
|
|
172
176
|
**CSS-only card implementation:**
|
|
177
|
+
|
|
173
178
|
```css
|
|
174
179
|
.selectable-card {
|
|
175
|
-
border: 1px solid rgba(0,0,0,0.12);
|
|
180
|
+
border: 1px solid rgba(0, 0, 0, 0.12);
|
|
176
181
|
border-radius: 4px;
|
|
177
182
|
padding: 16px;
|
|
178
183
|
cursor: pointer;
|
|
@@ -182,10 +187,20 @@ setIsRadioCardSelected(radioItemSelected)
|
|
|
182
187
|
margin-top: 15px;
|
|
183
188
|
transition: border-color 0.2s;
|
|
184
189
|
}
|
|
185
|
-
.selectable-card:hover {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
.selectable-card
|
|
190
|
+
.selectable-card:hover {
|
|
191
|
+
border-color: #1976d2;
|
|
192
|
+
}
|
|
193
|
+
.selectable-card.disabled {
|
|
194
|
+
cursor: default;
|
|
195
|
+
opacity: 0.7;
|
|
196
|
+
}
|
|
197
|
+
.selectable-card.readonly {
|
|
198
|
+
cursor: default;
|
|
199
|
+
}
|
|
200
|
+
.selectable-card-label {
|
|
201
|
+
font-size: 1rem;
|
|
202
|
+
font-weight: 400;
|
|
203
|
+
}
|
|
189
204
|
```
|
|
190
205
|
|
|
191
206
|
## Edge Cases & Special Logic
|
|
@@ -208,9 +223,9 @@ setIsRadioCardSelected(radioItemSelected)
|
|
|
208
223
|
|
|
209
224
|
Listed design systems are examples only.
|
|
210
225
|
|
|
211
|
-
| Design System
|
|
212
|
-
|
|
213
|
-
| Default (CSS only) | Custom `<div>` cards with `<input type="radio/checkbox">` inside
|
|
214
|
-
| MUI
|
|
215
|
-
| Ant Design
|
|
216
|
-
| Chakra UI
|
|
226
|
+
| Design System | Recommended Component |
|
|
227
|
+
| ------------------ | -------------------------------------------------------------------------- |
|
|
228
|
+
| Default (CSS only) | Custom `<div>` cards with `<input type="radio/checkbox">` inside |
|
|
229
|
+
| MUI | `<Card>` + `<CardContent>` + `<FormControlLabel>` + `<Radio>`/`<Checkbox>` |
|
|
230
|
+
| Ant Design | Custom cards with `<Radio>`/`<Checkbox>` |
|
|
231
|
+
| Chakra UI | `<Box>` as card + `<Radio>`/`<Checkbox>` |
|