@one-million-lines/email-builder 0.5.0 → 0.6.0

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,48 @@ All notable changes to this package are documented here.
4
4
  This project adheres to [Semantic Versioning](https://semver.org/) and the
5
5
  [Keep a Changelog](https://keepachangelog.com/) format.
6
6
 
7
+ ## [0.6.0] — 2026-09-03
8
+
9
+ ### Added
10
+
11
+ - **8 new email templates** covering core ecommerce lifecycle flows:
12
+ - `back-in-stock` — urgency-first product return notification
13
+ - `price-drop-alert` — 3-product grid with old/new price comparison
14
+ - `post-purchase-follow-up` — warm thank-you, usage tips, soft review request
15
+ - `review-request` — ⭐ prompt with founder personal note and CTA
16
+ - `replenishment-reminder` — "Running low?" reorder with subscription nudge
17
+ - `vip-early-access` — exclusive luxury-themed 24h early access
18
+ - `birthday-reward` — personalised (uses `{user.firstname}` merge tag) birthday voucher
19
+ - `win-back` — re-engagement with "what's new" grid and best offer
20
+ - **HTML preview files** for all 16 templates generated via new script
21
+ (`scripts/generate-previews.mjs`) to `examples/previews/<id>.html`.
22
+ Each preview wraps the email HTML in a minimal browser shell with a sticky
23
+ info bar (template name, category, description).
24
+ - `"generate:previews"` npm script: `npm run build && node scripts/generate-previews.mjs`.
25
+
26
+ ### Fixed
27
+
28
+ - **Text selection loss** — `TextRender` in `Canvas.tsx` no longer uses
29
+ `dangerouslySetInnerHTML`. innerHTML is now synced from the store **only
30
+ when the element is not focused**, preventing React from clobbering
31
+ in-progress text selections or cursor positions during parent re-renders.
32
+ This was the root cause of "cursor jumps to start of block" when editing.
33
+ - **Bold button missing** in the rich-text toolbar — replaced lucide `Bold`,
34
+ `Italic`, `Underline` icons with styled `<b>B</b>`, `<i>I</i>`, `<u>U</u>`
35
+ text to avoid icon availability issues and to match toolbar conventions.
36
+ - **Link insertion** (`LinkPopover`) now correctly focuses the contenteditable
37
+ element and restores the saved selection range before calling `insertHTML`,
38
+ so links are inserted at the correct position.
39
+
40
+ ### Changed
41
+
42
+ - **Right sidebar** — added an **expand/narrow** toggle button (◁▷) next to
43
+ the existing collapse button. The sidebar now has three states:
44
+ - **Collapsed**: 6px strip with re-open button
45
+ - **Normal**: 288px (w-72) — default
46
+ - **Expanded**: 576px (w-[576px]) — double width, useful for complex panels
47
+ Smooth CSS transition between states.
48
+
7
49
  ## [0.5.0] — 2026-09-03
8
50
 
9
51
  ### Added