v0.21.0

June 7, 2026 Reading time: 1 min Releases
Happytodev Happytodev
v0.21.0
Part of Series

Releases of BlogR

⭐ Featured

22 posts
1
v1.3.0
June 8, 2026
2
v1.2.1
June 8, 2026
3
v1.2.0
June 8, 2026
4
v1.1.2
June 8, 2026
5
v1.1.1
June 8, 2026
6
v1.1.0
June 8, 2026
7
v1.0.3
June 8, 2026
8
v1.0.2
June 8, 2026
9
v1.0.1
June 8, 2026
10
12
v0.24.1
June 7, 2026
13
v0.24.0
June 7, 2026
14
v0.23.0
June 7, 2026
15
v0.22.0
June 7, 2026
16
v0.21.0 (current)
June 7, 2026
17
v0.20.0
June 7, 2026
18
v0.19.0
June 7, 2026
19
v0.18.6
June 6, 2026
20
v0.18.4
June 6, 2026
21
v0.18.3
June 6, 2026
22
v0.18.2
June 6, 2026
23
v0.18.1
June 6, 2026

Here are the changes included in this version.

v0.21.0 - 2026-06-07

✨ Features

  • Contact form block: New contact_form CMS block with Alpine.js validation, email submission via CmsContactController, and full i18n for EN/FR/ES/PL
  • CMS Page Import/Export: New CmsPageImportExportService with JSON format for duplicating CMS pages across environments
  • Contact page redesign: Hero → Stats → Leaflet map → Contact form → Features (X + Bluesky) → CTA with 4 locales
  • Map block rewrite: OpenStreetMap iframe embed replaced with Leaflet (open-source, no API key), centered on Grasse, 3 markers, dark-mode tiles via CartoDB
  • Seeder additions: Spanish (es) and Polish (pl) translations for contact page; CTA, pricing, team, custom, faq pages

🐛 Bug Fixes

  • Button invisible in light mode: Added --color-primary-* palette to CSS @theme; switched frontend button to bg-indigo-600 (standard Tailwind color) so it works without consuming app importing package CSS
  • Map showed whole world: Fixed Leaflet initialization with invalidateSize(), ResizeObserver, and proper container height
  • Map JS failed silently: Replaced dynamic CDN injection with static <script> tags, added <noscript> fallback, server-rendered static fallback, and onerror handler
  • Stale published views: Auto-repair in BlogrServiceProvider::repairStalePublishedViews() — detects old iframe/Google Maps patterns in published views and overwrites with current package version
  • "Open in Google Maps" link eliminated: Zero occurrences remain in codebase; verified by rendered-view tests
  • Removed silly branding: "No fragrance fees" / "frais de parfum" etc. removed from CTA block subheadings
  • Map zoom increased: 13→15 for better marker visibility; markers enlarged 28px→36px

✅ Tests

  • 52 tests in CmsContactPageTest covering: block types, seeder locales, block structure, map centering on Grasse, zero Google Maps, contact form controller validation, rendered view output with old/new data formats, dark-mode contrast, leaflet CDN loading, noscript/fallback, old data backward compatibility
  • 879 total tests passing (2649 assertions)
Happytodev

About the author

Happytodev

Comments ()

Reply
/