mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-02 00:14:23 +00:00
Rich, table-based identity signatures lost all their inline CSS (background/text colors, fonts, border-radius, bgcolor). The composer embeds the signature into the TipTap editor, and parsing it into the ProseMirror schema flattened it to a generic bordered table. That normalized version was then shown while composing AND delivered to the recipient, even though Identity settings stored and previewed it correctly. Hold the signature as a dedicated, non-editable atom node (SignatureBlock) that keeps the verbatim HTML in an attribute and renders it inside a Shadow Root, mirroring the existing QuotedHtml island. The markup is never parsed into the schema, so the styling survives 1:1 both in the in-editor preview and in the outgoing mail (serializeEditorContent inlines the verbatim HTML, as it already does for quoted originals). The signature stays a single unit: select it and Backspace/Delete to remove it; identity switching still swaps it via the existing data-signature-block markers. Adds unit coverage (parse + serialize round-trip preserves inline styles). Fixes #475 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>