@seliseblocks/mailcraft 0.2.10 → 0.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@ All notable changes to `@seliseblocks/mailcraft` are documented here.
4
4
 
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.2.11] — 2026-09-02
8
+
9
+ ### Fixed
10
+ - **Text size moves a mixed-size block again while it is being edited.** On a block whose paragraphs carry their own `font-size` (every imported or AI-drafted design), the block-level size acts as a master scale and rewrites those inline sizes — but with the block focused, the render that followed folded the still-unrewritten contenteditable back over the fresh props, so the `size` prop climbed with each click of the toolbar's `+` while the text on screen never moved. Props now keep the right of way until the rebuild that carries them into the DOM, and the same guard covers Text color, Line spacing, Text weight and Align. Uncommitted typing is folded into props before the rewrite runs, so it is fed the live content instead of replacing it.
11
+ - **Undo reaches the block you are editing.** The same live-edit sync copied the pre-undo contenteditable straight back over the restored document, so an undo reverted everything except the block under the cursor. Both directions of history now fold the live node in before the step is recorded — redo comes back with the last keystrokes, not without them — and hand the restored document to the rebuild.
12
+ - **Two quick clicks of the RTE's `+` count twice.** The pair used to move nothing on a mixed-size block: the second click read its base off the toolbar's own stale copy of the block and re-applied the first click's value, then wrote the pre-scale markup back over the rescaled one. Resizing from the toolbar is also a single undo step now, not two.
13
+ - **Picking a block font no longer eats the imported one.** An explicit font is applied by stripping the descendants' own declarations from the rendered DOM, never from the document — which is what lets the control's Inherit setting hand the imported per-paragraph typography back. With the block focused, the live-edit fold wrote that strip into the document anyway, so changing your mind had nothing left to restore. The fold now ignores a node the render itself decorated and still captures every real edit.
14
+ - **A styled `<div>` keeps its background on import.** The panel every transactional template puts around a verification code — `<div style="background-color:#eff6fc;border-radius:8px;padding:18px 24px">` — came back unpainted the moment the HTML was applied to the canvas or saved: the import sanitizer's tag whitelist has no `DIV` (arbitrary paste brings div soup), so the wrapper was flattened away and its color, border and radius went with it. The container styling is now read into the block's own **Box & border** props instead, so the panel survives, round-trips through export, and the color is editable in the inspector rather than baked into markup. A painted div is also its own block now — a background-only one carried no padding to mark a boundary, so it used to merge into the prose around it. Padding stays the block's own `py`/`px`, which keeps asymmetric source values (`18px 24px`) the single-value box padding cannot express.
15
+
7
16
  ## [0.2.10] — 2026-09-01
8
17
 
9
18
  ### Fixed