@pega/sdk 0.0.3 → 0.0.5
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 +299 -56
- 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/expo-env.d.ts +3 -0
- 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/.ai-common/agents/implementation-expert.md +132 -0
- package/templates/react-sdk-reference/{.github/copilot-instructions.md → .ai-common/global/ai-agent-instructions.md} +7 -7
- package/templates/react-sdk-reference/{.github/instructions/component-map.instructions.md → .ai-common/instructions/component-map.md} +9 -2
- package/templates/react-sdk-reference/{.github/instructions/dse-component.instructions.md → .ai-common/instructions/dse-component.md} +1 -1
- package/templates/react-sdk-reference/{.cursor/rules/field-component.mdrules → .ai-common/instructions/field-component.md} +6 -2
- package/templates/react-sdk-reference/{.github/instructions/template-component.instructions.md → .ai-common/instructions/template-component.md} +3 -2
- package/templates/react-sdk-reference/{.github/instructions/widget-component.instructions.md → .ai-common/instructions/widget-component.md} +2 -1
- package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +219 -0
- package/templates/react-sdk-reference/.ai-common/prompts/component-manifest.json +199 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +528 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +216 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +239 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +283 -0
- package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +222 -0
- package/templates/react-sdk-reference/.ai-common/prompts/identify-components.md +109 -0
- package/templates/react-sdk-reference/{.cursor/rules/prompts/replace-design-system.mdrules → .ai-common/prompts/replace-design-system.md} +2 -3
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/AlertBanner.md +187 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Banner.md +196 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/CaseSummaryFields.md +213 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules → .ai-common/skills/design-system-extension-skills/DetailsFields.md} +81 -33
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules → .ai-common/skills/design-system-extension-skills/FieldGroup.md} +82 -40
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules → .ai-common/skills/design-system-extension-skills/FieldGroupList.md} +68 -28
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules → .ai-common/skills/design-system-extension-skills/FieldValueList.md} +75 -31
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/Operator.mdrules → .ai-common/skills/design-system-extension-skills/Operator.md} +99 -31
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules → .ai-common/skills/design-system-extension-skills/Pulse.md} +37 -20
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/RichTextEditor.md +290 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/WssQuickCreate.md +168 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/design-system-extension.mdrules → .ai-common/skills/design-system-extension.md} +14 -17
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-components.mdrules → .ai-common/skills/field-components.md} +27 -14
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +298 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/CancelAlert.md +340 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Checkbox.md +358 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Currency.md +230 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Date.md +221 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/DateTime.md +213 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Decimal.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Dropdown.md +260 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Email.md +177 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/Group.mdrules → .ai-common/skills/field-skills/Group.md} +72 -20
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Integer.md +169 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Location.md +250 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Multiselect.md +258 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/ObjectReference.mdrules → .ai-common/skills/field-skills/ObjectReference.md} +101 -23
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Percentage.md +177 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Phone.md +210 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/RadioButtons.md +260 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/RichText.mdrules → .ai-common/skills/field-skills/RichText.md} +108 -17
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/ScalarList.md +188 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/SelectableCard.md +286 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/SemanticLink.mdrules → .ai-common/skills/field-skills/SemanticLink.md} +98 -32
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextArea.md +164 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/field-skills/TextContent.mdrules → .ai-common/skills/field-skills/TextContent.md} +66 -27
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/TextInput.md +174 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/Time.md +156 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/URL.md +145 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/UserReference.md +293 -0
- package/templates/react-sdk-reference/.ai-common/skills/run-and-verify.md +70 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-components.mdrules → .ai-common/skills/template-components.md} +89 -64
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AdvancedSearch.md +227 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/AppShell.md +273 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/BannerPage.mdrules → .ai-common/skills/template-skills/BannerPage.md} +58 -21
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseSummary.md +185 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseView.md +399 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/CaseViewActionsMenu.md +282 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/Confirmation.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DataReference.md +174 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultForm.md +221 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/DefaultPage.md +161 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/Details.mdrules → .ai-common/skills/template-skills/Details.md} +78 -22
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules → .ai-common/skills/template-skills/DetailsSubTabs.md} +82 -25
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules → .ai-common/skills/template-skills/DetailsThreeColumn.md} +31 -22
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules → .ai-common/skills/template-skills/DetailsTwoColumn.md} +31 -22
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/DynamicTabs.mdrules → .ai-common/skills/template-skills/DynamicTabs.md} +82 -15
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/FieldGroupTemplate.md +231 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/HierarchicalForm.mdrules → .ai-common/skills/template-skills/HierarchicalForm.md} +63 -20
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/InlineDashboard.mdrules → .ai-common/skills/template-skills/InlineDashboard.md} +58 -18
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules → .ai-common/skills/template-skills/InlineDashboardPage.md} +66 -18
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/ListPage.mdrules → .ai-common/skills/template-skills/ListPage.md} +27 -12
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +419 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules → .ai-common/skills/template-skills/MultiReferenceReadOnly.md} +53 -16
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/NarrowWide.md +209 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/OneColumn.mdrules → .ai-common/skills/template-skills/OneColumn.md} +59 -25
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/PromotedFilters.md +222 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md +198 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SimpleTable.md +190 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md +160 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/SubTabs.mdrules → .ai-common/skills/template-skills/SubTabs.md} +61 -16
- package/templates/react-sdk-reference/{.cursor/rules/skills/template-skills/TwoColumn.mdrules → .ai-common/skills/template-skills/TwoColumn.md} +83 -37
- package/templates/react-sdk-reference/{.claude → .ai-common}/skills/template-skills/WideNarrow.md +48 -46
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/WssNavBar.md +210 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-components.mdrules → .ai-common/skills/widget-components.md} +12 -28
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/AppAnnouncement.md +121 -0
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/Attachment.md +209 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/CaseHistory.mdrules → .ai-common/skills/widget-skills/CaseHistory.md} +81 -20
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/FileUtility.md +273 -0
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/Followers.mdrules → .ai-common/skills/widget-skills/Followers.md} +43 -24
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/QuickCreate.mdrules → .ai-common/skills/widget-skills/QuickCreate.md} +68 -21
- package/templates/react-sdk-reference/{.cursor/rules/skills/widget-skills/SummaryItem.mdrules → .ai-common/skills/widget-skills/SummaryItem.md} +92 -29
- package/templates/react-sdk-reference/.ai-common/skills/widget-skills/ToDo.md +492 -0
- package/templates/react-sdk-reference/index.html +1 -4
- package/templates/react-sdk-reference/package.json +15 -15
- package/templates/react-sdk-reference/package.minimal.json +29 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/src/AppProviders.tsx +17 -0
- package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
- package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
- package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
- package/templates/react-sdk-reference/src/MashupApp.tsx +194 -104
- package/templates/react-sdk-reference/src/PortalApp.tsx +15 -50
- package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
- package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
- package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
- package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
- package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
- package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
- package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
- package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
- package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
- package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
- package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
- package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
- package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
- package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
- package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
- package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
- package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
- package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
- package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
- package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
- package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
- package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
- package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
- package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
- package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
- package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
- package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
- package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
- package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
- package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
- package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
- package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
- package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
- package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
- package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
- package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
- package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
- package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
- package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
- package/templates/react-sdk-reference/src/components/index.ts +1 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
- package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
- package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
- package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
- package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
- package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
- package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
- package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
- package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
- package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
- package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
- package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
- package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
- package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
- package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
- package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
- package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
- package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
- package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
- package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
- package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
- package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
- package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
- package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
- package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
- package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
- package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
- package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
- package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
- package/templates/react-sdk-reference/src/main.tsx +1 -1
- package/templates/react-sdk-reference/tsconfig.json +2 -1
- package/templates/react-sdk-reference/vite.config.ts +51 -26
- package/templates/wc-sdk-reference/package.json +3 -3
- package/templates/wc-sdk-reference/src/index.ts +10 -10
- package/templates/wc-sdk-reference/tsconfig.json +1 -0
- package/templates/react-sdk-reference/.claude/instructions/component-map.md +0 -38
- package/templates/react-sdk-reference/.claude/instructions/dse-component.md +0 -75
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +0 -71
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +0 -92
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +0 -87
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +0 -144
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +0 -111
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +0 -149
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +0 -126
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +0 -139
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +0 -151
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +0 -124
- package/templates/react-sdk-reference/.claude/prompts/identify-components.md +0 -105
- package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +0 -519
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +0 -149
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +0 -154
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +0 -144
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +0 -111
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +0 -115
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +0 -149
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +0 -83
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +0 -206
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +0 -289
- package/templates/react-sdk-reference/.claude/skills/field-components.md +0 -294
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +0 -112
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +0 -203
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +0 -158
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +0 -106
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +0 -99
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +0 -103
- package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +0 -98
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +0 -90
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +0 -87
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +0 -136
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +0 -164
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +0 -164
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +0 -92
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +0 -110
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +0 -146
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +0 -138
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +0 -124
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +0 -216
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +0 -148
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +0 -96
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +0 -101
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +0 -104
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +0 -85
- package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +0 -180
- package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +0 -68
- package/templates/react-sdk-reference/.claude/skills/template-components.md +0 -322
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +0 -144
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +0 -122
- package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +0 -83
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +0 -100
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +0 -126
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +0 -120
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +0 -102
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +0 -110
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +0 -88
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +0 -95
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +0 -78
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +0 -78
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +0 -101
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +0 -113
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +0 -104
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +0 -85
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +0 -68
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +0 -139
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +0 -80
- package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +0 -141
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +0 -109
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +0 -124
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +0 -127
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +0 -103
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +0 -79
- package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +0 -131
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +0 -135
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +0 -271
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +0 -82
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +0 -146
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +0 -107
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +0 -200
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +0 -99
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +0 -114
- package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +0 -167
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +0 -190
- package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +0 -41
- package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +0 -78
- package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +0 -247
- package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +0 -111
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +0 -156
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +0 -110
- package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +0 -145
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +0 -154
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +0 -159
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +0 -211
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +0 -117
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +0 -208
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +0 -163
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +0 -111
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +0 -104
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +0 -103
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +0 -119
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +0 -92
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +0 -141
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +0 -169
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +0 -97
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +0 -221
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +0 -101
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +0 -109
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +0 -93
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +0 -90
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +0 -185
- package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +0 -73
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +0 -149
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +0 -127
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +0 -105
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +0 -136
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +0 -131
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +0 -112
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +0 -125
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +0 -107
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +0 -115
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +0 -114
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +0 -144
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +0 -146
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +0 -129
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +0 -132
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +0 -108
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +0 -155
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +0 -140
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +0 -87
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +0 -151
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +0 -205
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +0 -195
- package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +0 -95
- package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +0 -90
- package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +0 -73
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +0 -149
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +0 -111
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +0 -154
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +0 -131
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +0 -144
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +0 -156
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +0 -129
- package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +0 -110
- package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +0 -524
- package/templates/react-sdk-reference/.github/skills/component-contracts.md +0 -140
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +0 -135
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +0 -149
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +0 -154
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +0 -144
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +0 -131
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +0 -111
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +0 -115
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +0 -149
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +0 -83
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +0 -206
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +0 -135
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +0 -289
- package/templates/react-sdk-reference/.github/skills/field-components.md +0 -294
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +0 -112
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +0 -203
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +0 -158
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +0 -106
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +0 -99
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +0 -103
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +0 -98
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +0 -114
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +0 -107
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +0 -90
- package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +0 -87
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +0 -136
- package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +0 -164
- package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +0 -164
- package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +0 -92
- package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +0 -110
- package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +0 -146
- package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +0 -138
- package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +0 -124
- package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +0 -216
- package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +0 -148
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +0 -96
- package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +0 -101
- package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +0 -104
- package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +0 -88
- package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +0 -85
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +0 -180
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +0 -68
- package/templates/react-sdk-reference/.github/skills/template-components.md +0 -322
- package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +0 -144
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +0 -122
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +0 -83
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +0 -100
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +0 -126
- package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +0 -107
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +0 -120
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +0 -102
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +0 -110
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +0 -88
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +0 -95
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +0 -78
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +0 -78
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +0 -101
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +0 -109
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +0 -113
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +0 -104
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +0 -85
- package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +0 -68
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +0 -139
- package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +0 -80
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +0 -141
- package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +0 -109
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +0 -124
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +0 -135
- package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +0 -127
- package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +0 -103
- package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +0 -79
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +0 -131
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +0 -150
- package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +0 -135
- package/templates/react-sdk-reference/.github/skills/widget-components.md +0 -271
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +0 -82
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +0 -146
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +0 -107
- package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +0 -200
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +0 -99
- package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +0 -114
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +0 -167
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +0 -190
- package/templates/react-sdk-reference/AGENTS.md +0 -247
package/templates/react-sdk-reference/.ai-common/skills/template-skills/SelfServiceCaseView.md
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Skill: SelfServiceCaseView
|
|
2
|
+
|
|
3
|
+
Self-service portal case view template. Renders a case workspace optimized for self-service channels, with a compact summary sidebar, main content area, and optional utilities panel.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
A case view variant designed for self-service portal channels. Uses a horizontal flex layout (25% summary / flex:1 main / 25% utilities) instead of the 3-column grid of `CaseView`. Filters case summary data to only include fields available in the self-service channel, and filters utilities to self-service-appropriate actions.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Registration key:** `SelfServiceCaseView` (in `component-map.ts`)
|
|
16
|
+
- **Category:** Page template — self-service case workspace
|
|
17
|
+
- **Extends:** `PConnProps`
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| -------------- | ------------- | -------- | --------------------------------------------------------------- |
|
|
23
|
+
| `children` | `ReactNode[]` | Yes | Region children (variable count based on `isObjectType`) |
|
|
24
|
+
| `isObjectType` | `boolean` | No | Whether the case is an object-type (affects child region count) |
|
|
25
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
26
|
+
|
|
27
|
+
## Component Skeleton
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
31
|
+
import { prepareCaseSummaryData, filterUtilities } from '../utils';
|
|
32
|
+
import { Utils } from '../../helpers/utils';
|
|
33
|
+
|
|
34
|
+
export default function SelfServiceCaseView(props) {
|
|
35
|
+
const CaseViewActionsMenu = getComponentFromRegistry('CaseViewActionsMenu');
|
|
36
|
+
const CaseSummary = getComponentFromRegistry('CaseSummary');
|
|
37
|
+
const {
|
|
38
|
+
icon = '', getPConnect, header, subheader,
|
|
39
|
+
showCaseLifecycle = true, showSummaryRegion = true,
|
|
40
|
+
showUtilitiesRegion = true, showCaseActions = true,
|
|
41
|
+
children, caseClass,
|
|
42
|
+
caseInfo: { availableActions = [], availableProcesses = [], caseTypeID = '', caseTypeName = '' },
|
|
43
|
+
} = props;
|
|
44
|
+
const pConnect = getPConnect();
|
|
45
|
+
|
|
46
|
+
// 1. Boolean coercion (props may be strings)
|
|
47
|
+
const [bShowCaseLifecycle, bShowSummaryRegion, bShowUtilitiesRegion, bShowCaseActions] =
|
|
48
|
+
[showCaseLifecycle, showSummaryRegion, showUtilitiesRegion, showCaseActions]
|
|
49
|
+
.map(p => p === true || p === 'true');
|
|
50
|
+
|
|
51
|
+
// 2. Object type check — affects child indexing
|
|
52
|
+
const isObjectType = (PCore.getCaseUtils() as any).isObjectCaseType(caseClass);
|
|
53
|
+
|
|
54
|
+
// 3. Region assignment by child index
|
|
55
|
+
const renderedRegions = isObjectType
|
|
56
|
+
? { caseSummary: children[0], utilities: filterUtilities(children[2]) }
|
|
57
|
+
: { caseSummary: children[0], stages: children[1], todo: children[2], utilities: filterUtilities(children[4]) };
|
|
58
|
+
|
|
59
|
+
// 4. Filter summary fields for self-service channel
|
|
60
|
+
const { primarySummaryFields, secondarySummaryFields } = prepareCaseSummaryData(
|
|
61
|
+
renderedRegions.caseSummary,
|
|
62
|
+
(config) => config?.availableInChannel?.selfService === true
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
// 5. Utilities visibility check
|
|
66
|
+
const showUtilities = bShowUtilitiesRegion && isUtilitiesRegionNotEmpty();
|
|
67
|
+
const showSummary = bShowSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0);
|
|
68
|
+
|
|
69
|
+
// 6. Render: header bar + flex row (summary 25% | main flex:1 | utilities 25%)
|
|
70
|
+
return (
|
|
71
|
+
<div>
|
|
72
|
+
<HeaderBar>{header} {bShowCaseActions && <CaseViewActionsMenu ... />}</HeaderBar>
|
|
73
|
+
<div style={{ display: 'flex', flexDirection: 'row' }}>
|
|
74
|
+
{showSummary && <div style={{ flex: '0 0 25%' }}><CaseSummary ... /></div>}
|
|
75
|
+
<div style={{ flex: 1 }}>{bShowCaseLifecycle && renderedRegions.stages}{renderedRegions.todo}</div>
|
|
76
|
+
{showUtilities && <div style={{ flex: '0 0 25%' }}>{renderedRegions.utilities}</div>}
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Behavioral Contract
|
|
84
|
+
|
|
85
|
+
### Region Assignment by Child Index
|
|
86
|
+
|
|
87
|
+
Child indexing depends on `isObjectType`:
|
|
88
|
+
|
|
89
|
+
**`isObjectType === false` (5 children):**
|
|
90
|
+
|
|
91
|
+
| Index | Region |
|
|
92
|
+
| ----- | --------------- |
|
|
93
|
+
| 0 | Summary |
|
|
94
|
+
| 1 | (Header/Stages) |
|
|
95
|
+
| 2 | Main content |
|
|
96
|
+
| 3 | Utilities |
|
|
97
|
+
| 4 | (Additional) |
|
|
98
|
+
|
|
99
|
+
**`isObjectType === true` (3 children):**
|
|
100
|
+
|
|
101
|
+
| Index | Region |
|
|
102
|
+
| ----- | ------------ |
|
|
103
|
+
| 0 | Summary |
|
|
104
|
+
| 1 | Main content |
|
|
105
|
+
| 2 | Utilities |
|
|
106
|
+
|
|
107
|
+
Show/hide individual regions based on:
|
|
108
|
+
|
|
109
|
+
- `showSummary`: always show summary region.
|
|
110
|
+
- `showMain`: always show main content region.
|
|
111
|
+
- `showUtilities`: show utilities only if the region has content.
|
|
112
|
+
|
|
113
|
+
### `selfServiceCaseViewHeader`
|
|
114
|
+
|
|
115
|
+
Renders a slim header bar above the main flex layout showing:
|
|
116
|
+
|
|
117
|
+
- Case ID / case type name
|
|
118
|
+
- Case status badge
|
|
119
|
+
|
|
120
|
+
### Case Summary Data
|
|
121
|
+
|
|
122
|
+
Call `prepareCaseSummaryData(primaryFields, secondaryFields, getPConnect)` with a filter:
|
|
123
|
+
|
|
124
|
+
- Only include fields where `availableInChannel.selfService === true`.
|
|
125
|
+
|
|
126
|
+
### Utilities Filter
|
|
127
|
+
|
|
128
|
+
Call `filterUtilities(utilitiesChildren, getPConnect)` to remove utilities not appropriate for self-service channels.
|
|
129
|
+
|
|
130
|
+
### Render Structure
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
<div className="psdk-ss-case-view">
|
|
134
|
+
<selfServiceCaseViewHeader />
|
|
135
|
+
<div className="psdk-ss-case-view-body" style="display:flex; flex-direction:row">
|
|
136
|
+
<div style="flex: 0 0 25%"> {/* Summary */}
|
|
137
|
+
{showSummary && summaryRegion}
|
|
138
|
+
</div>
|
|
139
|
+
<div style="flex: 1"> {/* Main content */}
|
|
140
|
+
{showMain && mainRegion}
|
|
141
|
+
</div>
|
|
142
|
+
<div style="flex: 0 0 25%"> {/* Utilities */}
|
|
143
|
+
{showUtilities && utilitiesRegion}
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Visual Specifications
|
|
150
|
+
|
|
151
|
+
| Column | Width | Contents |
|
|
152
|
+
| --------- | ----------- | ------------------------------------------- |
|
|
153
|
+
| Summary | 25% (fixed) | Case summary fields (self-service filtered) |
|
|
154
|
+
| Main | flex: 1 | Main case content / assignment form |
|
|
155
|
+
| Utilities | 25% (fixed) | Filtered utilities |
|
|
156
|
+
|
|
157
|
+
**CSS-only implementation notes:**
|
|
158
|
+
|
|
159
|
+
- Body layout: `display: flex; flex-direction: row; gap: 1rem`.
|
|
160
|
+
- Summary column: `flex: 0 0 25%; min-width: 0`.
|
|
161
|
+
- Main column: `flex: 1 1 auto; min-width: 0`.
|
|
162
|
+
- Utilities column: `flex: 0 0 25%; min-width: 0`.
|
|
163
|
+
- Header bar: `display: flex; align-items: center; gap: 1rem; padding: 0.5rem 0; margin-bottom: 1rem`.
|
|
164
|
+
- Responsive: collapse to single column on mobile.
|
|
165
|
+
|
|
166
|
+
## Edge Cases & Special Logic
|
|
167
|
+
|
|
168
|
+
- `isObjectType` changes the number of `children` — always derive regions by index based on this flag.
|
|
169
|
+
- `filterUtilities` may return empty array — `showUtilities` should be `false` in that case (hide the column entirely).
|
|
170
|
+
- Summary fields filtered by `availableInChannel.selfService` — if all fields are filtered out, the summary column may be empty.
|
|
171
|
+
- The self-service header differs from the standard case header — it is a separate sub-component, not the full `CaseView` header.
|
|
172
|
+
|
|
173
|
+
## Dependencies
|
|
174
|
+
|
|
175
|
+
- `prepareCaseSummaryData` from `./utils` — with self-service channel filter applied
|
|
176
|
+
- `filterUtilities` from `./utils` — removes non-self-service utilities
|
|
177
|
+
- `selfServiceCaseViewHeader` — inline sub-component or imported header
|
|
178
|
+
- `PConnectComponent` from `@pega/sdk-react`
|
|
179
|
+
|
|
180
|
+
## Design System Mapping
|
|
181
|
+
|
|
182
|
+
**UI control type:** Self-service portal case workspace — horizontal 3-panel flex layout.
|
|
183
|
+
|
|
184
|
+
Listed design systems are examples only.
|
|
185
|
+
|
|
186
|
+
| Design System | Layout | Header Bar |
|
|
187
|
+
| ------------------ | ---------------------------------------------------------------------- | --------------------------- |
|
|
188
|
+
| Default (CSS only) | CSS `display:flex` with percentage widths | Custom `<header>` |
|
|
189
|
+
| MUI | `<Box display='flex' flexDirection='row'>` with `<Box flex='0 0 25%'>` | `<Box>` with `<Typography>` |
|
|
190
|
+
| Ant Design | `<Layout>` with `<Sider>` + `<Content>` | `<PageHeader>` |
|
|
191
|
+
| Chakra UI | `<HStack align='stretch'>` with width constraints | `<Flex>` |
|
|
192
|
+
| Shadcn/ui | Tailwind `flex flex-row` | Custom header |
|
|
193
|
+
|
|
194
|
+
When implementing in a specific design system:
|
|
195
|
+
|
|
196
|
+
- `isObjectType` determines child count — do not assume fixed child order without checking this flag
|
|
197
|
+
- Self-service channel filter on summary data is mandatory — `availableInChannel.selfService === true`
|
|
198
|
+
- `filterUtilities` result controls utilities column visibility
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Skill: SimpleTable
|
|
2
|
+
|
|
3
|
+
Simple table template. Routes to FieldGroupTemplate, ListView (read-only), or the manual editable table based on configuration. Also covers `SimpleTableManual`, `SimpleTableSelect`, and `SimpleTableSelectReadonly` sub-variants.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Entry-point template for embedded table data in a form or detail view. Routes to the appropriate sub-component based on `multiRecordDisplayAs`, `fieldMetadata.dataRetrievalType`, and `readOnly`/`displayMode` flags. Sub-variants handle selection, read-only display, and full manual editing.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Registration keys:** `SimpleTable`, `SimpleTableManual`, `SimpleTableSelect`, `SimpleTableSelectReadonly` (all in `component-map.ts`)
|
|
16
|
+
- **Category:** Data display / Form template — embedded table
|
|
17
|
+
- **Extends:** `PConnProps`
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ---------------------- | ---------- | -------- | ----------------------------------------------------------------------------------------- |
|
|
23
|
+
| `multiRecordDisplayAs` | `string` | No | `'fieldGroup'` delegates to FieldGroupTemplate; else table |
|
|
24
|
+
| `fieldMetadata` | `object` | No | Field-level metadata including `dataRetrievalType` |
|
|
25
|
+
| `referenceList` | `string` | No | Property path to the reference list |
|
|
26
|
+
| `displayAs` | `string` | No | For SimpleTableSelectReadonly: `'readonlyMulti'`, `'combobox'`, `'checkboxgroup'` routing |
|
|
27
|
+
| `selectionMode` | `string` | No | `'single'` or `'multi'` (for SimpleTableSelect) |
|
|
28
|
+
| `displayMode` | `string` | No | `'DISPLAY_ONLY'` triggers read-only sub-variant |
|
|
29
|
+
| `readOnly` | `boolean` | No | Alternative read-only flag |
|
|
30
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
31
|
+
|
|
32
|
+
## Component Skeleton
|
|
33
|
+
|
|
34
|
+
### SimpleTable (router)
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
38
|
+
import { buildMetaForListView, getContext } from '../../../helpers/simpleTableHelpers';
|
|
39
|
+
|
|
40
|
+
export default function SimpleTable(props: SimpleTableProps) {
|
|
41
|
+
const ListView = getComponentFromRegistry('ListView');
|
|
42
|
+
const FieldGroupTemplate = getComponentFromRegistry('FieldGroupTemplate');
|
|
43
|
+
const SimpleTableManual = getComponentFromRegistry('SimpleTableManual');
|
|
44
|
+
const { getPConnect, multiRecordDisplayAs, allowTableEdit, fieldMetadata, displayMode, ... } = props;
|
|
45
|
+
|
|
46
|
+
// 1. Route: fieldGroup
|
|
47
|
+
if (multiRecordDisplayAs === 'fieldGroup') {
|
|
48
|
+
return <FieldGroupTemplate {...props} contextClass={contextClass} />;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// 2. Route: reference list (read-only ListView)
|
|
52
|
+
if (fieldMetadata?.type === 'Page List' && fieldMetadata?.dataRetrievalType === 'refer') {
|
|
53
|
+
const metaForListView = buildMetaForListView(...);
|
|
54
|
+
return <ListView {...listViewProps} bInForm={true} displayMode={displayMode} />;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// 3. Route: editable table
|
|
58
|
+
return <SimpleTableManual {...props} contextClass={contextClass} />;
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### SimpleTableManual (editable table — ~600+ lines)
|
|
63
|
+
|
|
64
|
+
Key structural outline:
|
|
65
|
+
|
|
66
|
+
- `getReferenceList(pConn)` + `setReferenceList`
|
|
67
|
+
- `buildElementsForTable()` — creates PConnect views per cell
|
|
68
|
+
- `generateRowsData()` — for read-only/modal mode
|
|
69
|
+
- `addRecord()` / `deleteRecord()` / `editRecord()` with modal support
|
|
70
|
+
- Sort/filter/column menu (same pattern as ListView)
|
|
71
|
+
- Render: Table with header sort + body rows + add/delete controls
|
|
72
|
+
|
|
73
|
+
### SimpleTableSelect (selection wrapper)
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
const ListView = getComponentFromRegistry('ListView');
|
|
77
|
+
const PromotedFilters = getComponentFromRegistry('PromotedFilters');
|
|
78
|
+
// Build additionalTableConfig with selectionMode, compositeKeys
|
|
79
|
+
// If promoted filters exist: <PromotedFilters ... />
|
|
80
|
+
// Else: <ListView {...listViewProps} />
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### SimpleTableSelectReadonly (link + modal)
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
// Renders SemanticLink per selected item (comma-separated)
|
|
87
|
+
// If list > 5 items: show "(N Total)" link that opens modal
|
|
88
|
+
// Modal: <Dialog><SimpleTableManual readOnly ... /></Dialog>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Behavioral Contract
|
|
92
|
+
|
|
93
|
+
### SimpleTable — Routing Logic
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
if multiRecordDisplayAs === 'fieldGroup':
|
|
97
|
+
→ render FieldGroupTemplate
|
|
98
|
+
else if fieldMetadata.dataRetrievalType === 'refer':
|
|
99
|
+
→ render ListView (read-only, bInForm: true)
|
|
100
|
+
else:
|
|
101
|
+
→ render SimpleTableManual (editable table)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### SimpleTableManual — Full Editable Table
|
|
105
|
+
|
|
106
|
+
Full MUI table with add/delete rows, inline editing, sort, filter, and column customization (~600+ lines).
|
|
107
|
+
|
|
108
|
+
Key behaviors:
|
|
109
|
+
|
|
110
|
+
1. **Row data source:** `referenceList` property path via `pConn.getValue(referenceList + '.pxResults')`.
|
|
111
|
+
2. **Add row:** `pConn.getListActions().insert({})`.
|
|
112
|
+
3. **Delete row:** `pConn.getListActions().deleteEntry(index)`.
|
|
113
|
+
4. **Inline field editing:** Each cell renders the field's registered edit component via `buildView(pConn, rowIndex, colFieldName)`.
|
|
114
|
+
5. **Sort:** Client-side sort on loaded data.
|
|
115
|
+
6. **Column customization:** Visibility toggles per column via a settings popover.
|
|
116
|
+
7. **Filter dialog:** Same filter pattern as ListView.
|
|
117
|
+
|
|
118
|
+
### SimpleTableSelect — Selection Mode
|
|
119
|
+
|
|
120
|
+
Wraps `ListView` with additional selection configuration:
|
|
121
|
+
|
|
122
|
+
- Passes `additionalTableConfig` with `selectionMode: 'single'` or `'multi'`.
|
|
123
|
+
- On selection: calls `pConn.getListActions().setSelectedRow(selectedData)`.
|
|
124
|
+
- Used when `DataReference` routes to table-based selection.
|
|
125
|
+
|
|
126
|
+
### SimpleTableSelectReadonly — Read-Only with Modal
|
|
127
|
+
|
|
128
|
+
1. Renders a link/chip showing the current selection count.
|
|
129
|
+
2. On click: opens a `<Dialog>` containing a `<SimpleTableManual>` in read-only mode.
|
|
130
|
+
3. Props: same as `SimpleTableManual` but all fields locked (no add/delete/edit).
|
|
131
|
+
|
|
132
|
+
## Visual Specifications
|
|
133
|
+
|
|
134
|
+
### SimpleTableManual
|
|
135
|
+
|
|
136
|
+
| Element | Description |
|
|
137
|
+
| --------------- | ------------------------------------------------------ |
|
|
138
|
+
| Toolbar | Column settings button, filter button, optional search |
|
|
139
|
+
| Table | Full-width, alternating row colors |
|
|
140
|
+
| Add row | `"+ Add row"` button below the table |
|
|
141
|
+
| Delete row | Trash icon per row (rightmost column) |
|
|
142
|
+
| Column settings | Popover with checkboxes for visibility toggles |
|
|
143
|
+
|
|
144
|
+
**CSS-only implementation notes:**
|
|
145
|
+
|
|
146
|
+
- Table: `width: 100%; border-collapse: collapse`.
|
|
147
|
+
- Add row button: `margin-top: 0.5rem; text-align: left`.
|
|
148
|
+
- Delete cell: `width: 40px; text-align: center`.
|
|
149
|
+
- Read-only mode: hide add/delete controls; cells show plain text.
|
|
150
|
+
|
|
151
|
+
### SimpleTableSelectReadonly
|
|
152
|
+
|
|
153
|
+
| Element | Description |
|
|
154
|
+
| ----------- | -------------------------------------------------- |
|
|
155
|
+
| Trigger | Link or chip showing selection count |
|
|
156
|
+
| Modal | Full-screen or large dialog with SimpleTableManual |
|
|
157
|
+
| Modal close | `X` button in modal header |
|
|
158
|
+
|
|
159
|
+
## Edge Cases & Special Logic
|
|
160
|
+
|
|
161
|
+
- `multiRecordDisplayAs === 'fieldGroup'` — completely bypasses table; delegates to `FieldGroupTemplate`.
|
|
162
|
+
- `dataRetrievalType === 'refer'` — data comes from a reference list, not a full data page; use `ListView` in read-only mode.
|
|
163
|
+
- `SimpleTableManual` with 600+ lines — break into sub-hooks if re-implementing.
|
|
164
|
+
- Row keys must be unique — use composite keys from `compositeKeys` config if available.
|
|
165
|
+
- Column customization state is local — not persisted across navigation.
|
|
166
|
+
|
|
167
|
+
## Dependencies
|
|
168
|
+
|
|
169
|
+
- `FieldGroupTemplate` (for `multiRecordDisplayAs === 'fieldGroup'` routing)
|
|
170
|
+
- `ListView` (for `dataRetrievalType === 'refer'` routing)
|
|
171
|
+
- `buildView` from `../../helpers/field-group-utils` (for inline cell rendering in SimpleTableManual)
|
|
172
|
+
- MUI: `<Table>`, `<Dialog>`, `<Popover>`, `<IconButton>`, `<Button>`, `<Checkbox>`
|
|
173
|
+
|
|
174
|
+
## Design System Mapping
|
|
175
|
+
|
|
176
|
+
**UI control type:** Embedded data table with routing to field group, read-only list, or fully editable table.
|
|
177
|
+
|
|
178
|
+
Listed design systems are examples only.
|
|
179
|
+
|
|
180
|
+
| Sub-variant | Default (CSS only) | MUI |
|
|
181
|
+
| ------------------------- | ----------------------------- | -------------------- |
|
|
182
|
+
| SimpleTableManual | `<table>` + custom controls | MUI `<Table>` |
|
|
183
|
+
| SimpleTableSelect | Custom table + radio/checkbox | `<ListView>` wrapper |
|
|
184
|
+
| SimpleTableSelectReadonly | Link + `<dialog>` | Chip + `<Dialog>` |
|
|
185
|
+
|
|
186
|
+
When implementing in a specific design system:
|
|
187
|
+
|
|
188
|
+
- Always check `multiRecordDisplayAs === 'fieldGroup'` first — this bypasses the table entirely
|
|
189
|
+
- `SimpleTableManual` add/delete row controls must be hidden when `readOnly === true` or `displayMode === 'DISPLAY_ONLY'`
|
|
190
|
+
- `SimpleTableSelect` uses the same `ListView` but adds selection callbacks
|
package/templates/react-sdk-reference/.ai-common/skills/template-skills/SingleReferenceReadOnly.md
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Skill: SingleReferenceReadOnly
|
|
2
|
+
|
|
3
|
+
Single reference read-only template. Renders a read-only reference field as a semantic link for editable field types, or as a plain label otherwise.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`template-components.md`](../template-components.md) — covers architecture, child rendering patterns, and registration conventions common to ALL template components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders a single data reference field in read-only mode. For fields that were displayed as editable selection controls (autocomplete, table select, dropdown), renders a `SemanticLink` component so the reference value is clickable/navigable. For other display types, renders a plain read-only label.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Registration key:** `SingleReferenceReadOnly` (in `component-map.ts`)
|
|
16
|
+
- **Category:** Display template — read-only reference
|
|
17
|
+
- **Extends:** `PConnProps`
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ----------------- | ---------- | -------- | --------------------------------------------------------- |
|
|
23
|
+
| `label` | `string` | Yes | Field label |
|
|
24
|
+
| `displayAs` | `string` | Yes | The edit-mode display type this field was configured with |
|
|
25
|
+
| `value` | `string` | No | Current field value (display text) |
|
|
26
|
+
| `caseClass` | `string` | No | Class identifier for the referenced case |
|
|
27
|
+
| `text` | `string` | No | Display text for the semantic link |
|
|
28
|
+
| `caseID` | `string` | No | Case ID for the semantic link |
|
|
29
|
+
| `contextPage` | `string` | No | Context page identifier |
|
|
30
|
+
| `resourceParams` | `object` | No | Parameters for the referenced resource |
|
|
31
|
+
| `resourcePayload` | `object` | No | Payload for resource navigation |
|
|
32
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
33
|
+
|
|
34
|
+
## Component Skeleton
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
38
|
+
|
|
39
|
+
interface SingleReferenceReadOnlyProps extends PConnProps {
|
|
40
|
+
config: any;
|
|
41
|
+
displayAs?: string;
|
|
42
|
+
ruleClass?: string;
|
|
43
|
+
label?: string;
|
|
44
|
+
displayMode?: string;
|
|
45
|
+
type: string;
|
|
46
|
+
referenceType?: string;
|
|
47
|
+
hideLabel?: boolean;
|
|
48
|
+
dataRelationshipContext?: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default function SingleReferenceReadOnly(props: SingleReferenceReadOnlyProps) {
|
|
52
|
+
const {
|
|
53
|
+
getPConnect, displayAs = '', ruleClass = '', label = '',
|
|
54
|
+
type = '', displayMode = '', referenceType = '',
|
|
55
|
+
hideLabel = false, dataRelationshipContext = null, config,
|
|
56
|
+
} = props;
|
|
57
|
+
|
|
58
|
+
const editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown'];
|
|
59
|
+
|
|
60
|
+
// 1. For editable field types: build SemanticLink config
|
|
61
|
+
if (editableComponents.includes(type)) {
|
|
62
|
+
config.caseClass = ruleClass;
|
|
63
|
+
config.text = config.primaryField;
|
|
64
|
+
config.caseID = config.value;
|
|
65
|
+
config.contextPage = `@P .${dataRelationshipContext}`;
|
|
66
|
+
config.resourceParams = { workID: displayAs === 'table' ? config.selectionKey : config.value };
|
|
67
|
+
config.resourcePayload = { caseClassName: ruleClass };
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// 2. Create SemanticLink component
|
|
71
|
+
const component = getPConnect().createComponent(
|
|
72
|
+
{ type: 'SemanticLink', config: { ...config, label, displayMode, referenceType, hideLabel, dataRelationshipContext } },
|
|
73
|
+
'', 0, {},
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
// 3. Render: label + semantic link in row layout
|
|
77
|
+
return (
|
|
78
|
+
<FormRow>
|
|
79
|
+
<Label>{label}</Label>
|
|
80
|
+
{component}
|
|
81
|
+
</FormRow>
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Behavioral Contract
|
|
87
|
+
|
|
88
|
+
### Editable Component Check
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown']
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
If `displayAs` is in `editableComponents`:
|
|
95
|
+
|
|
96
|
+
1. Build config with: `caseClass`, `text`, `caseID`, `contextPage`, `resourceParams`, `resourcePayload`.
|
|
97
|
+
2. Create: `createComponent({ type: 'SemanticLink', config: { ...builtConfig } })`.
|
|
98
|
+
3. Render the created `SemanticLink` component.
|
|
99
|
+
|
|
100
|
+
Else:
|
|
101
|
+
|
|
102
|
+
- Render a plain read-only display using `<FormControl variant='standard'>` + `<FormLabel>` + value text.
|
|
103
|
+
|
|
104
|
+
### Layout
|
|
105
|
+
|
|
106
|
+
For both variants, wrap with:
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
<FormControl variant="standard" sx={{ flexDirection: 'row' }}>
|
|
110
|
+
<FormLabel sx={{ marginRight: '2rem' }}>{label}</FormLabel>
|
|
111
|
+
{semanLinkOrValue}
|
|
112
|
+
</FormControl>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Visual Specifications
|
|
116
|
+
|
|
117
|
+
| Variant | Layout |
|
|
118
|
+
| --------------- | ------------------------------------- |
|
|
119
|
+
| SemanticLink | Label (left) + clickable link (right) |
|
|
120
|
+
| Plain read-only | Label (left) + plain text (right) |
|
|
121
|
+
|
|
122
|
+
**CSS-only implementation notes:**
|
|
123
|
+
|
|
124
|
+
- Wrapper: `display: flex; flex-direction: row; align-items: baseline; gap: 1rem`.
|
|
125
|
+
- Label: `font-size: 0.875rem; color: var(--secondary-text-color); min-width: 120px`.
|
|
126
|
+
- Semantic link: `color: var(--link-color); text-decoration: underline; cursor: pointer`.
|
|
127
|
+
- Plain value: `font-size: 0.875rem; color: var(--primary-text-color)`.
|
|
128
|
+
|
|
129
|
+
## Edge Cases & Special Logic
|
|
130
|
+
|
|
131
|
+
- `displayAs` check is case-sensitive — values are `'AutoComplete'`, `'SimpleTableSelect'`, `'Dropdown'` (exact match).
|
|
132
|
+
- `createComponent` returns a PConnect config — render via `createElement(PConnectComponent, { ...createdConfig })`.
|
|
133
|
+
- If `text` is empty/undefined, the semantic link shows the `caseID` as fallback text.
|
|
134
|
+
- `SemanticLink` navigation requires `caseClass` and `caseID` — if either is missing, fall back to plain read-only display.
|
|
135
|
+
|
|
136
|
+
## Dependencies
|
|
137
|
+
|
|
138
|
+
- `PConnectComponent` from `@pega/sdk-react` — for rendering the `SemanticLink`
|
|
139
|
+
- `getPConnect().createComponent()` — creates the SemanticLink component config
|
|
140
|
+
- MUI: `<FormControl>`, `<FormLabel>`
|
|
141
|
+
|
|
142
|
+
## Design System Mapping
|
|
143
|
+
|
|
144
|
+
**UI control type:** Read-only reference field — semantic link for navigable references, plain label otherwise.
|
|
145
|
+
|
|
146
|
+
Listed design systems are examples only.
|
|
147
|
+
|
|
148
|
+
| Design System | Semantic Link | Plain Read-Only |
|
|
149
|
+
| ------------------ | --------------------------------------------- | ------------------- |
|
|
150
|
+
| Default (CSS only) | `<a>` with case navigation | `<span>` |
|
|
151
|
+
| MUI | `SemanticLink` rendered via `createComponent` | `<Typography>` |
|
|
152
|
+
| Ant Design | `<Typography.Link>` | `<Typography.Text>` |
|
|
153
|
+
| Chakra UI | `<Link>` | `<Text>` |
|
|
154
|
+
| Shadcn/ui | Custom link | `<span>` |
|
|
155
|
+
|
|
156
|
+
When implementing in a specific design system:
|
|
157
|
+
|
|
158
|
+
- The `editableComponents` list (`'AutoComplete'`, `'SimpleTableSelect'`, `'Dropdown'`) controls semantic link vs plain display
|
|
159
|
+
- `SemanticLink` must be rendered via `createComponent` — do not implement the link logic directly in this component
|
|
160
|
+
- Horizontal label + value layout (row direction) is required
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Template component skill: SubTabs
|
|
3
|
-
alwaysApply: false
|
|
4
|
-
---
|
|
5
|
-
|
|
6
1
|
# Skill: SubTabs
|
|
7
2
|
|
|
8
3
|
Sub-tabs navigation template. Renders a tab container for case view sections using shared tab utilities with deferred content loading.
|
|
@@ -23,10 +18,57 @@ Renders a horizontal tab bar for navigating between case view sections. Uses sha
|
|
|
23
18
|
|
|
24
19
|
## Props
|
|
25
20
|
|
|
26
|
-
| Prop
|
|
27
|
-
|
|
28
|
-
| `children`
|
|
29
|
-
| `getPConnect` | `function`
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
| ------------- | ------------- | -------- | --------------------------------------------------- |
|
|
23
|
+
| `children` | `ReactNode[]` | Yes | `children[0]` is the deferred-loaded tabs container |
|
|
24
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
25
|
+
|
|
26
|
+
## Component Skeleton
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { Children, type PropsWithChildren, useEffect, useState } from 'react';
|
|
30
|
+
import { getTransientTabs, getVisibleTabs, tabClick } from './tabUtils';
|
|
31
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
32
|
+
|
|
33
|
+
export default function SubTabs(props: PropsWithChildren<PConnProps>) {
|
|
34
|
+
const { children = [] } = props;
|
|
35
|
+
|
|
36
|
+
// 1. Extract deferred tabs
|
|
37
|
+
const deferLoadedTabs = Children.toArray(children)[0];
|
|
38
|
+
const availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');
|
|
39
|
+
|
|
40
|
+
// 2. State
|
|
41
|
+
const [currentTabId, setCurrentTabId] = useState('0');
|
|
42
|
+
const [tabItems, setTabitem] = useState<any[]>([]);
|
|
43
|
+
|
|
44
|
+
// 3. Update tab items when currentTabId changes
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
setTabitem(getTransientTabs(availableTabs, currentTabId, tabItems));
|
|
47
|
+
}, [currentTabId]);
|
|
48
|
+
|
|
49
|
+
// 4. Tab click
|
|
50
|
+
const handleTabClick = (id, index: string) => {
|
|
51
|
+
setCurrentTabId(index);
|
|
52
|
+
tabClick(index, availableTabs, currentTabId, setCurrentTabId, tabItems);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// 5. Render: TabContext + Tabs (scrollable) + TabPanels (no heading)
|
|
56
|
+
return (
|
|
57
|
+
<TabContext value={currentTabId.toString()}>
|
|
58
|
+
<TabBar onChange={handleTabClick} value={currentTabId} variant="scrollable">
|
|
59
|
+
{tabItems.map(tab => <Tab key={tab.id} label={tab.name} value={tab.id} />)}
|
|
60
|
+
</TabBar>
|
|
61
|
+
{tabItems.map(tab => (
|
|
62
|
+
<TabPanel key={tab.id} value={tab.id} tabIndex={+tab.id}>
|
|
63
|
+
{tab.content || 'No content exists'}
|
|
64
|
+
</TabPanel>
|
|
65
|
+
))}
|
|
66
|
+
</TabContext>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
> **Key difference from `DetailsSubTabs`:** No heading, uses `'tabsSubs'` identifier, `getVisibleTabs` called directly (not in useEffect).
|
|
30
72
|
|
|
31
73
|
## Behavioral Contract
|
|
32
74
|
|
|
@@ -48,6 +90,7 @@ Renders a horizontal tab bar for navigating between case view sections. Uses sha
|
|
|
48
90
|
Identical to `DetailsSubTabs` except no heading above the tab bar.
|
|
49
91
|
|
|
50
92
|
**CSS-only implementation notes:**
|
|
93
|
+
|
|
51
94
|
- Tab bar: `display: flex; border-bottom: 2px solid var(--divider)`.
|
|
52
95
|
- Each tab: `padding: 8px 16px; cursor: pointer; border-bottom: 2px solid transparent`.
|
|
53
96
|
- Active tab: `border-bottom-color: var(--app-primary-color); font-weight: 600`.
|
|
@@ -56,6 +99,7 @@ Identical to `DetailsSubTabs` except no heading above the tab bar.
|
|
|
56
99
|
## Edge Cases & Special Logic
|
|
57
100
|
|
|
58
101
|
See `DetailsSubTabs.md` for shared edge cases. Additional:
|
|
102
|
+
|
|
59
103
|
- `tabUtils` identifier string `'tabsSubs'` must match exactly — it is used internally by `getVisibleTabs` for scoping.
|
|
60
104
|
|
|
61
105
|
## Dependencies
|
|
@@ -70,15 +114,16 @@ See `DetailsSubTabs.md` for shared edge cases. Additional:
|
|
|
70
114
|
|
|
71
115
|
Listed design systems are examples only.
|
|
72
116
|
|
|
73
|
-
| Design System
|
|
74
|
-
|
|
75
|
-
| Default (CSS only) | Custom tab bar with CSS underline indicator
|
|
76
|
-
| MUI
|
|
77
|
-
| Ant Design
|
|
78
|
-
| Chakra UI
|
|
79
|
-
| Shadcn/ui
|
|
117
|
+
| Design System | Recommended Component |
|
|
118
|
+
| ------------------ | -------------------------------------------------------- |
|
|
119
|
+
| Default (CSS only) | Custom tab bar with CSS underline indicator |
|
|
120
|
+
| MUI | `<TabContext>` + `<Tabs>` + `<TabPanel>` from `@mui/lab` |
|
|
121
|
+
| Ant Design | `<Tabs>` with `items` array |
|
|
122
|
+
| Chakra UI | `<Tabs>` + `<TabList>` + `<TabPanels>` |
|
|
123
|
+
| Shadcn/ui | `<Tabs>` + `<TabsList>` + `<TabsContent>` |
|
|
80
124
|
|
|
81
125
|
When implementing in a specific design system:
|
|
126
|
+
|
|
82
127
|
- Use `getVisibleTabs(tabs, 'tabsSubs')` — the identifier string must be `'tabsSubs'`
|
|
83
128
|
- No heading above the tab bar (unlike `DetailsSubTabs`)
|
|
84
129
|
- Deferred loading: content populates lazily via `getTransientTabs`
|