Releases: rdlabo-dev/ionic-angular-library
Release list
v22.0.3
What's Changed
- feat(offline): add manual connectivity verification by @rdlabo in #104
- fix(kit): retry transient offline reset locks by @rdlabo in #107
Commits
v22.0.1
- feat(auth): add shared Google sign-in flow (#105) 55308d6
- Merge remote-tracking branch 'origin/main' into docs/all-oss-onboarding 9056884
- docs: clarify onboarding and guide progression daf7864
- Merge remote-tracking branch 'origin/main' into docs/trim-eslint-notices 7864146
- docs(kit): start with a working storage example b28211c
- Merge remote-tracking branch 'origin/main' into docs/eslint-companion df71434
- docs: clarify overlay create rule coverage 8c00883
- docs: add focused ESLint checks for Kit integration a5e45be
- chore: update project versions to 22.0.1-0 af5cdfd
v22.0.1-0
What's Changed
- fix(kit): retry transient SQLite open locks by @rdlabo in #103
- feat(kit): add user-confirmed service worker updates by @rdlabo in #102
Commits
- Merge pull request #102 from rdlabo-dev/feat/confirm-app-update 1c53fd4
- Merge pull request #103 from rdlabo-dev/fix/foodlabel-app-cd 1598572
- docs(kit): clarify update prompt timing 29e1e16
- refactor(kit): share SQLite lock classification 6dbcf3a
- fix(kit): retry transient SQLite open locks 39fbdfd
- feat(kit): add confirmed service worker updates c6d18f7
- chore: update project versions to 22.0.0 d351da8
v22.0.0
Ionic 9, Angular 22, and a cleaner foundation for production Ionic apps
v22 is a major modernization of the entire rdlabo Ionic Angular library family. It adds Angular 21–22 and Ionic 9 support, makes optional features genuinely opt-in, introduces first-class Angular Signal Forms support, and strengthens the offline runtime with route isolation, faster reads, durable create delivery, and real SQLite contract tests.
All four packages continue to share one version line:
@rdlabo/ionic-angular-kit@rdlabo/ionic-angular-photo-editor@rdlabo/ionic-angular-scroll-header@rdlabo/ngx-cdk-scroll-strategies
Highlights
Modern platform support
- Angular 21 and 22
- Ionic Angular 9
- Capacitor 7 and 8 for native features
- Minimum iOS/iPadOS deployment target: 16.4
- Angular 21 compatibility is validated alongside the Angular 22 development workspace
A smaller, more explicit Photo Editor
Photo Editor is now split into focused secondary entry points for the editor, viewer, file loading, TUI adapter, and Capacitor camera adapter. Applications install and bundle only the implementations they use.
The release also adds typed modal results, explicit toolbar color schemes, package-prefixed selectors, accessible image alt text, typed PhotoLoadError codes, and a browser file picker that no longer requires a static input in index.html.
Angular Signal Forms for Ionic controls
The new @rdlabo/ionic-angular-kit/forms entry point connects Angular Signal Forms to Ionic form controls. It provides Ionic state classes and error text while preserving application-owned messages and localization.
Safer application updates and leaner Kit imports
provideKitAppUpdate({ strategy: 'background' })checks for complete service-worker updates without blocking bootstrap or reloading after the user has started interacting.- Granular Ionic controller imports reduce the initial static JavaScript closure. In one production consumer, the measured reduction was approximately 851 kB (19.7%); actual results depend on the application bundle.
Stronger offline foundations
The offline runtime adds:
- route-scoped isolated runtimes;
- deferred authenticated remote initialization;
fastest-firstandlocal-onlyreads;- immediate durable delivery for newly created generated identities;
- serialized replica mutation and response projection;
- stronger Outbox idempotency and concurrency guarantees; and
- repository contract and rollback coverage against real SQLite.
Warning
The entire @rdlabo/ionic-angular-kit/offline entry point is experimental and is not covered by the Kit's SemVer compatibility guarantee. Its APIs, persistence schema, and synchronization behavior may change incompatibly in a minor or patch release. Pin the Kit to an exact version and review the migration guide before every upgrade.
Upgrade guide
1. Upgrade the application platform first
- Upgrade the host application to Angular 21 or 22 using the Angular Update Guide.
- Migrate the application to Ionic 9 with
npx @ionic/migrate, then review the Ionic breaking changes. - For native applications, upgrade to Capacitor 7 or 8 using the Capacitor upgrade guides.
- Set
platform :ios, '16.4'in the Podfile andIPHONEOS_DEPLOYMENT_TARGET = 16.4in the Xcode project.
2. Install the v22 libraries you use
npm install @rdlabo/ionic-angular-kit@^22 \
@rdlabo/ionic-angular-photo-editor@^22 \
@rdlabo/ionic-angular-scroll-header@^22 \
@rdlabo/ngx-cdk-scroll-strategies@^22Omit unused packages. Keep all installed rdlabo libraries on the same release line.
Applications adopting the experimental offline entry point should pin the Kit exactly:
npm install --save-exact @rdlabo/ionic-angular-kit@22.0.03. Apply the consumer changes
Photo Editor
- Move component and service imports to
/editor,/viewer, and/file. - Configure optional implementations through
/editor/tuiand/file/capacitor. - Add the required
toolbarColorScheme: 'light' | 'dark'to editor and viewer props. - Pass
imageUrlsexplicitly to the viewer. - Replace legacy dismiss interfaces with
PhotoEditorResultandPhotoViewerResult. - Replace mutable
PhotoFileServicedefaults withprovidePhotoEditor(...). - Change
loadPhoto(number)toloadPhoto({ limit, ... })and handle typedPhotoLoadErrorcodes. - Remove the static
#browserPhotoUploaderinput fromindex.html. - Update direct-template selectors to
<rdlabo-photo-editor>and<rdlabo-photo-viewer>.
Ionic Angular Kit
- Remove
kitAuthInput="autofill"and value-lesskitAuthInputusage. Keep only explicit"email"or"email-remember"modes where email persistence is required. - Offline consumers can adopt the new read and synchronization APIs incrementally. Direct command and pull-attention mutations on
OfflineRepositoryare deprecated; useOfflineSyncService.runSerializedReplicaMutation()withrepository.transactReplica()for product-owned writes.
Scroll Header
Existing template directives remain compatible. Remove application calls or subclass overrides of directive ngOnInit() methods; Angular owns their lifecycle.
Scroll Strategies
- Replace removed
calcIndexcalls withcalculateItemCountForPixelDistanceand revalidate thresholds because the corrected calculation is not a drop-in numeric rename. - Stop using
_dynamicSizeVirtualScrollStrategyFactoryand the directive's internal_scrollStrategyfield.
For complete before/after examples and the full checklist, read the v21 → v22 migration guide.
Documentation
Quality and release confidence
v22 is covered by library unit tests, hydrated Ionic modal E2E tests, Angular 21 and 22 compatibility builds, packed-package consumer checks, optional-peer isolation checks, and real SQLite offline contract/concurrency tests.
Thank you to everyone building Ionic Angular applications with these packages. Feedback and reproducible bug reports are welcome in GitHub Issues.
Full Changelog: v21.7.0...v22.0.0
v22.0.0-8
v22.0.0-7
v22.0.0-6
v22.0.0-5
What's Changed
- docs: link README guides to docs.rdlabo.dev by @rdlabo in #89
- feat(offline): add route-scoped runtime provider by @rdlabo in #90