Release 20.0.0
Changelog
[20.0.0] - Angular 20 Migration
π Major Release - Angular 20 Support
Complete migration to Angular 20 with modern patterns: standalone components, signals-based reactivity, and new control flow syntax.
β οΈ BREAKING CHANGES
1. Standalone Components - No More Modules
Remove module imports, import components directly:
// β Old
import { FsNavFrameModule } from '@fullstack-devops/ngx-mat-components';
// β
New
import {
FsNavFrameComponent,
FsNavFrameSidebarItemComponent,
FsCalendarPanelsComponent
} from '@fullstack-devops/ngx-mat-components';2. Signals API - Use () to Read Values
Signal properties require () in templates:
// β Old
<div>{{ month }}</div>
// β
New
<div>{{ month() }}</div>3. Sidebar Items Need label Property
Required for accessibility:
<!-- β Old -->
<fs-nav-frame-sidebar-item routerLink="/home">
<span>Home</span>
</fs-nav-frame-sidebar-item>
<!-- β
New -->
<fs-nav-frame-sidebar-item routerLink="/home" label="Home">
<span>Home</span>
</fs-nav-frame-sidebar-item>4. Content Projection with @if/@for
Use ng-container for directive selectors:
<!-- β Old -->
<fs-nav-user-profile-name *ngIf="user">{{ user.name }}</fs-nav-user-profile-name>
<!-- β
New -->
@if (user) {
<ng-container fs-nav-user-profile-name>{{ user.name }}</ng-container>
}β¨ What's New
- Angular 20.3.6 with full TypeScript 5.9 support
- OnPush change detection for all components
- Signal-based reactivity throughout
- Modern control flow (
@if,@for,@switch) - Comprehensive accessibility with ARIA labels
- Updated dependencies: Angular Material 20.2.9, lucide-angular 0.546.0
π Fixes
- Fixed
FsNavFrameServiceprovider injection (NG0201) - Fixed duplicate keys in
@forloops (NG0955) - Material button styling now works correctly
- Content projection compatibility with new control flow
π¦ Migration Steps
-
Update Angular:
ng update @angular/core@20 @angular/cli@20
-
Update this library:
npm install @fullstack-devops/ngx-mat-components@latest
-
Update your code:
- Replace module imports with component imports
- Add
()to signal properties in templates - Add
labelto sidebar items - Wrap projected content in
ng-containerwhen using@if
π Security
- β 998 packages audited
- β Only 1 low severity issue (acceptable)
- β No critical vulnerabilities
Need help? Open an issue or discussion on GitHub.