From bb28b8759a07366437818d3b4f31471949b2f9d3 Mon Sep 17 00:00:00 2001 From: Ajay Ghanwat Date: Sat, 5 Sep 2026 14:00:47 +0530 Subject: [PATCH] fix(email-renderer): constrain images to available content width --- packages/email-renderer/package.json | 2 +- packages/email-renderer/src/blocks.ts | 6 +++--- packages/email-renderer/test/marketing-images.test.ts | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/email-renderer/package.json b/packages/email-renderer/package.json index a79b7160..589b36d7 100644 --- a/packages/email-renderer/package.json +++ b/packages/email-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/email-renderer", - "version": "0.1.19", + "version": "0.1.20", "type": "module", "description": "WRNexus block email renderers with HTML, text, AMP Email, and MJML interoperability.", "exports": { diff --git a/packages/email-renderer/src/blocks.ts b/packages/email-renderer/src/blocks.ts index 090b02e9..2e820dfb 100644 --- a/packages/email-renderer/src/blocks.ts +++ b/packages/email-renderer/src/blocks.ts @@ -49,7 +49,7 @@ const marketingImage = (node: BlockNode, target: "html" | "amp" | "mjml") => { const src = html(p.image), alt = html(p.title); if (target === "amp") return ``; if (target === "mjml") return ``; - return `${alt}`; + return `${alt}`; }; const styleBase = (node: BlockNode, key: string) => { const value = (node.styles as Record)[key]; @@ -319,7 +319,7 @@ export const imageBlock = leaf( { emailHtml: ({ node }) => emailCell( - `${html(attrs(node).decorative ? `, + `${html(attrs(node).decorative ? `, node, ), ampEmail: ({ node }) => @@ -401,7 +401,7 @@ export const videoBlock = leaf( height: string({ default: "338" }), }) as never, { - emailHtml: ({ node }) => emailCell(`${html(attrs(node).alt)}`, node), + emailHtml: ({ node }) => emailCell(`${html(attrs(node).alt)}`, node), ampEmail: ({ node }) => emailCell(``, node), mjml: ({ node }) => ``, }, diff --git a/packages/email-renderer/test/marketing-images.test.ts b/packages/email-renderer/test/marketing-images.test.ts index dcab915e..9fd595ec 100644 --- a/packages/email-renderer/test/marketing-images.test.ts +++ b/packages/email-renderer/test/marketing-images.test.ts @@ -54,6 +54,7 @@ test("product and RSS images survive HTML, AMP and strict MJML exports", async ( const result = await renderEmail(document(type, props), { amp: true, mjml: true }); expect(result.ok).toBe(true); if (!result.ok) continue; + expect(result.value.parts.html.content).toContain('width:100%;max-width:320px;'); for (const output of [ result.value.parts.html.content, result.value.parts.amp?.content,