@seliseblocks/mailcraft 0.2.18 → 0.2.20

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.
Files changed (33) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/mailcraft-editor.bundle.js +88 -83
  3. package/dist/mailcraft-editor.bundle.js.map +3 -3
  4. package/examples/templates/activate-your-account.html +5 -5
  5. package/examples/templates/back-in-stock.html +2 -2
  6. package/examples/templates/cart-left-behind.html +2 -2
  7. package/examples/templates/community-giveaway.html +2 -2
  8. package/examples/templates/frontend-futures-invite.html +3 -3
  9. package/examples/templates/give-25-get-25.html +3 -3
  10. package/examples/templates/invoice-paid.html +3 -3
  11. package/examples/templates/meet-nova-launch.html +3 -3
  12. package/examples/templates/mega-weekend-sale.html +1 -1
  13. package/examples/templates/order-confirmed.html +2 -2
  14. package/examples/templates/rate-your-headphones.html +2 -2
  15. package/examples/templates/reset-your-password.html +3 -3
  16. package/examples/templates/thankyou-promo-code.html +2 -2
  17. package/examples/templates/the-sunday-brief.html +2 -2
  18. package/examples/templates/welcome-to-your-workspace.html +4 -4
  19. package/examples/templates/your-order-shipped.html +5 -5
  20. package/examples/templates/your-password-was-changed.html +4 -4
  21. package/examples/templates/your-signin-code.html +4 -4
  22. package/examples/vanilla.html +53 -53
  23. package/package.json +1 -1
  24. package/src/core/blocks.js +3 -3
  25. package/src/core/editor-core.js +2 -2
  26. package/src/core/export.js +20 -2
  27. package/src/core/icons.js +17 -43
  28. package/src/core/import-html.js +8 -2
  29. package/src/core/sanitize.js +1 -1
  30. package/src/core/variables.js +1 -1
  31. package/src/mailcraft-editor.js +3 -1
  32. package/src/render/block-body.js +1 -1
  33. package/src/render/style.js +6 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,26 @@ 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.20] — 2026-09-13
8
+
9
+ ### Fixed
10
+ - **Merge tags ship tight — `{{first_name}}`, never `{{ first_name }}`.** The padded spelling is valid Handlebars, Mustache and Liquid, but plenty of sending engines substitute with a literal string match, or with a regex that forgets `\s*` — and there a padded tag simply never resolves, so the recipient reads raw braces in the middle of a sentence. Tags inserted from the Data tab and the inline toolbar are now written tight, legacy `[[token]]` drafts migrate to the tight form, and — the part that matters for templates that already exist — the exporter repairs the finished document on the way out, whatever the tag's origin: an old draft, a hand-typed tag, a pasted foreign template. Only padding *inside* the braces goes; whitespace that separates keeps its job, so `{{#if is_premium }}` tightens to `{{#if is_premium}}` and the helper still applies to its expression. A `{{{triple stash}}}`, a `{{! comment }}`, a `{{> partial }}` and CSS (minified or nested, which never puts two opening braces side by side) are all left intact.
11
+ - **A hand-written `{{/if }}` is recognised as a block end again.** The importer's logic-tag patterns were asymmetric: the open tag already tolerated `{{#if x }}`, while the close tag accepted `{{/if}}` and nothing else — so a foreign or hand-edited close tag imported as an ordinary text block and silently left the condition open, swallowing everything after it into the branch. Both ends now tolerate padding. This could not be left to the export-time repair above, because nothing tightens what arrives through import.
12
+
13
+ ## [0.2.19] — 2026-09-13
14
+
15
+ A housekeeping release with one theme: the package stops shipping other people's marks, and stops reaching the network on its own.
16
+
17
+ ### Changed
18
+ - **Social icons are drawn here now, not borrowed.** The social block rendered eleven platforms as official filled brand glyphs lifted from Simple Icons. Registered logo artwork is not ours to redistribute inside a template builder, whatever the icon set's own licence says about the SVG — the mark underneath belongs to the platform, and every downstream host was inheriting that call from us. Every social key resolves into the same in-house thin-stroke set as the rest of the chrome: geometric marks that say where a link goes without reproducing anyone's logo. `brandIcon()` keeps its signature and its `currentColor` behaviour, so the palette and contrast logic and the export round-trip are untouched; a host that wants the real logos has always been able to supply them through `iconProvider`, and that is now the only way they get there.
19
+ - **The editor fetches no webfont.** `render/style.js` opened with an `@import` of Manrope from the Google Fonts CDN, which meant dropping the component into a page made a third-party request and disclosed the visitor's IP to a font host — and left the chrome unstyled on a `file://` page with the network off, which is a setting this component is explicitly meant to survive. The import is gone. `'Manrope'` stays at the head of `--ed-font` so a host that loads it still gets it, with the platform UI face behind it; `ui-font` overrides the stack as before.
20
+ - **The default footer and the shipped templates lost their borrowed details.** The footer group's placeholder carried a fictional company at a real-looking Portland street address; the order-shipped template named a specific courier and carried a tracking number in that courier's live format, which is the kind of thing that gets pasted into a real tracking form. Both are now plainly generic.
21
+
22
+ ### Notes for hosts
23
+ - **Upgrading changes how existing templates look.** Any document with a social block will render its icons in the stroke set after this release — same positions, same colours, same links, different glyphs. Nothing needs migrating and no export breaks; it is a visual change, and worth a look before you ship it to your own users. Pass `iconProvider` to keep the previous artwork.
24
+ - `window.claude.complete` no longer appears in the `aiProvider` documentation. Nothing changed in behaviour — the AI features have always stayed hidden until a host sets a provider, and the package ships no model client and talks to no model service of its own — but the old wording implied a specific host environment that was never a requirement.
25
+ - The published sourcemap now matches the bundle it describes. `dist/mailcraft-editor.bundle.js` is byte-identical to 0.2.18's; only the stale `sourcesContent` embedded in the `.map` is corrected.
26
+
7
27
  ## [0.2.18] — 2026-09-10
8
28
 
9
29
  ### Added