diff --git a/packages/angular-server/src/ionic-server-module.ts b/packages/angular-server/src/ionic-server-module.ts index 72b53de322e..f2d65755a6a 100644 --- a/packages/angular-server/src/ionic-server-module.ts +++ b/packages/angular-server/src/ionic-server-module.ts @@ -20,8 +20,17 @@ export class IonicServerModule {} export function hydrateIonicComponents(doc: any, appId: any) { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types return () => { + const supportsNativeAttachShadow = + typeof doc?.createElement?.('div')?.attachShadow === 'function'; + return hydrateDocument(doc, { - clientHydrateAnnotations: false, + // Fallback for SSR DOMs (e.g. Domino) that do not implement attachShadow. + ...(supportsNativeAttachShadow + ? { clientHydrateAnnotations: false } + : { + serializeShadowRoot: 'scoped', + clientHydrateAnnotations: true, + }), excludeComponents: [ // overlays 'ion-action-sheet',