feat!: v22 major update - #849
Open
fateeand wants to merge 16 commits into
Open
Conversation
…nsed source (`cps-ui-kit`) (#719)
fateeand
requested review from
TerranceKhumalo-absa,
korel-san and
lukasmatta
as code owners
August 21, 2026 12:14
Contributor
Coverage report for library
Test suite run success3233 tests passing in 76 suites. Report generated by 🧪jest coverage report action from 26ee51b |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR performs a major modernization of cps-shared-ui for Angular 22, including multiple breaking changes and a key architectural shift to vendoring PrimeNG/primeuix source instead of consuming them as npm dependencies.
Changes:
- Upgrades Angular-related codepaths for Angular 22, including widespread
ChangeDetectionStrategy.Eageropt-in and template updates (e.g.ngModelOptions: { standalone: true }). - Vendors PrimeNG / primeuix source into
projects/cps-ui-kit/src/lib/{primeng-temp,primeuix-temp}and rewrites internal imports away fromprimeng/*. - Updates repo hygiene/docs and tooling (NOTICE, README, lint/format ignore lists, CI PR-title workflow, TS/Angular compiler options).
Reviewed changes
Copilot reviewed 297 out of 692 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Removes baseUrl while retaining the cps-ui-kit path mapping; keeps TS settings aligned with the upgrade. |
| README.md | Adds documentation pointing to third-party notices for vendored code. |
| NOTICE | Adds top-level notice describing vendored PrimeNG/primeuix provenance and where to find full attribution. |
| .github/workflows/check_pr_title_cc.yml | Allows conventional-commit PR title checks on next-major in addition to master. |
| .eslintrc.js | Enables @typescript-eslint/no-unused-expressions with allowances for common expression patterns. |
| .eslintignore | Excludes vendored primeng-temp / primeuix-temp trees from linting. |
| .prettierignore | Excludes vendored primeng-temp / primeuix-temp trees from formatting. |
| projects/cps-ui-kit/package.json | Removes PrimeNG/primeuix npm dependencies as part of the vendoring migration. |
| projects/cps-ui-kit/tsconfig.lib.json | Suppresses specific Angular extended diagnostics checks. |
| projects/cps-ui-kit/tsconfig.lib.prod.json | Suppresses specific Angular extended diagnostics checks for prod builds. |
| projects/composition/tsconfig.app.json | Suppresses specific Angular extended diagnostics checks for the composition app. |
| projects/cps-ui-kit/styles/styles.scss | Removes PrimeIcons CSS import and the global box-sizing override. |
| projects/cps-ui-kit/src/lib/services/cps-notification/internal/components/cps-toast/cps-toast.component.html | Uses a precomputed icon binding instead of string concatenation in the template. |
| projects/cps-ui-kit/src/lib/services/cps-notification/internal/components/cps-toast/cps-toast.component.ts | Adds ChangeDetectionStrategy.Eager and computes/stores icon by notification type. |
| projects/cps-ui-kit/src/lib/services/cps-notification/internal/components/cps-notification-container/cps-notification-container.component.spec.ts | Repoints PrimeNG imports to the vendored primeng-temp API. |
| projects/cps-ui-kit/src/lib/services/cps-dialog/utils/cps-dialog-ref/cps-dialog-ref.ts | Switches CpsDialogComponent import to type-only. |
| projects/cps-ui-kit/src/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.scss | Adds local box-sizing: border-box to compensate for removed global sizing rule. |
| projects/cps-ui-kit/src/lib/components/** | Broad Angular 22 compatibility updates: ChangeDetectionStrategy.Eager, local box-sizing, and ngModelOptions standalone where needed. |
| projects/composition/src/app/** | Broad Angular 22 compatibility updates across pages/viewers: ChangeDetectionStrategy.Eager and minor doc-site/layout tweaks. |
| playwright/cps-ui-kit/components/cps-loader.spec.ts | Updates expected CSS variable for loader label color. |
| projects/cps-ui-kit/src/lib/{primeng-temp,primeuix-temp}/** | Adds large vendored third-party source trees with provenance headers and local import rewrites. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Contributor
Playwright test resultsDetails
|
lukasmatta
approved these changes
Aug 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR upgrades the project code to Angular 22 and includes the following breaking changes:
prefixIconClickedoutput fromCpsTextareaComponent#847It also includes a non-breaking change for vendoring the PrimeNG source code:
primeng/@primeuix/*dependencies and vendor MIT-licensed source (cps-ui-kit) #719A dedicated
v21maintenance branch has been created: view v21 branchRelease notes: