This guide covers consumer-facing changes in the packages published from this repository. It does not replace the upstream Angular update guide, Ionic breaking-change guide, or Capacitor upgrade guides.
Version 22 supports Angular 21 and 22. The kit, photo-editor, and scroll-header packages require Ionic 9; scroll-strategies requires only Angular and Angular CDK. Native kit and photo-editor features require Capacitor 7 or 8. Upgrade the host application with the upstream tools first, then update only the rdlabo packages it uses. Keep rdlabo packages on the same release line when an application uses more than one of them.
While v22 is available under the npm beta dist-tag, install the prerelease with:
npm install @rdlabo/ionic-angular-kit@beta \
@rdlabo/ionic-angular-photo-editor@beta \
@rdlabo/ionic-angular-scroll-header@beta \
@rdlabo/ngx-cdk-scroll-strategies@betaAfter stable v22 is published, use @^22 instead of @beta. Omit packages that the application does not use. Release maintainers must update this prerelease instruction when promoting v22 to npm latest.
PhotoEditorPage and PhotoViewerPage now require headerButtonColorScheme. The library cannot infer the final ion-toolbar appearance after application CSS, translucency, and runtime theme overrides are applied.
Use dark for a dark or black toolbar and light for a light or white toolbar. Define typed props before passing them to Ionic because ModalController does not enforce the component's input types.
import { PhotoEditorPage, PhotoEditorProps } from '@rdlabo/ionic-angular-photo-editor';
const componentProps = {
value,
headerButtonColorScheme: 'dark',
} satisfies PhotoEditorProps;
await modalController.create({
component: PhotoEditorPage,
componentProps,
});import { PhotoViewerPage, PhotoViewerProps } from '@rdlabo/ionic-angular-photo-editor';
const componentProps = {
imageUrls,
headerButtonColorScheme: 'dark',
} satisfies PhotoViewerProps;
await modalController.create({
component: PhotoViewerPage,
componentProps,
});PhotoViewerProps.imageUrls is now correctly declared as required. It was already a required component input, so ensure every viewer invocation supplies it.
The public components now use package-prefixed selectors:
| Before | After |
|---|---|
<app-editor-image> |
<rdlabo-photo-editor> |
<app-photo-image> |
<rdlabo-photo-viewer> |
No selector update is needed when presenting PhotoEditorPage or PhotoViewerPage by component class through ModalController.
Applications using @rdlabo/ionic-theme-ios26 v3 can import the photo-editor adapter after the Ionic and iOS 26 theme styles:
@import '@rdlabo/ionic-theme-ios26/dist/css/ionic-theme-ios26.css';
@import '@ionic/angular/css/palettes/dark.class.css';
@import '@rdlabo/ionic-theme-ios26/dist/css/ionic-theme-ios26-dark-class.css';
@import '@rdlabo/ionic-angular-photo-editor/css/ios26-header-button-color-scheme.css';Do not import the adapter when the application does not use the iOS 26 theme. See the photo editor theme guide for color overrides and alternative dark-mode imports.
Version 22 changes the supported host framework range but does not rename or remove kit public APIs. After satisfying the compatibility requirements, existing kit imports and provider configuration remain valid.
Version 22 has no package-specific API migration. Existing rdlaboScrollHeader, rdlaboVirtualScrollHeader, and rdlaboFixVirtualScrollElement usages remain valid after the dependency update.
Version 22 has no package-specific API migration. Existing dynamic-size virtual-scroll configuration remains valid after the dependency update.
After applying the relevant package migrations, run the host application's normal checks and exercise the affected UI on each supported platform. For photo-editor, verify both editor and viewer modals against every toolbar color used by the application.