== Changelog == = 4.4.1 (14-07-2026) = **Security:** - Breadcrumbs schema output now escapes the home URL with `esc_url()`. - Visual Builder button previews add `rel="noopener noreferrer"` to links that open in a new tab. - Hardened admin-script JSON parsing against malformed data. **Bug fixes:** - Fixed a fatal error that could leave WordPress admin pages blank when another plugin passed a non-string value through the admin footer text filter (a strict return-type mismatch on PHP 8). **Improvements:** - Confirmed compatibility with Divi 5.9.0. - Network-aware uninstall now removes plugin data across all sites when the plugin is uninstalled on a multisite network. = 4.4.0 (03-07-2026) = **New Modules — (Wave 3: breadth fill, native in both builders):** - **Image Accordion** — horizontal and vertical expanding image panels, hover or click triggers, responsive collapse, and free-form nested-module content per panel; repeatable child items. - **Step Flow** — numbered process steps with icon / image / number markers, vertical or horizontal orientation, connector styling, and scroll-triggered reveal; repeatable child steps. - **Text Effects** — trendy typography effects: image-mask (image-fill) text, text stroke / outline, and animated gradient fill; reuses the existing gradient/glitch text-effect infrastructure. - **Comparison List** — feature checklist with three per-row states (included / excluded / neutral), each state's icon set via a Divi icon-picker plus colour; responsive columns, row divider and zebra rows, and nested content per row; repeatable child rows. Completes the "comparison" trio with the shipped Pricing Table and Data Table. **Improvements:** - The free module library grows to 65 modules — 64 run in both Divi 5 and Divi 4 (Post Carousel remains Divi 5-only), completing Wave 3 of the free-module roadmap. - Every new module loads its assets per-page (no global bloat) and is pure CSS with no added frontend JavaScript. - Extended WPML String Translation config to cover every module's translatable attributes, backfilling 18 modules (Wave 3 plus the Wave 2 set) that were missing entries. = 4.3.1 (30-06-2026) = **Improvements:** - All 61 modules now display their correct icon in the Divi 5 Visual Builder module palette. - Improved stability and consistency of all modules in the Divi 5 Visual Builder. **Bug fixes:** - Fixed several Divi 5 module settings panels that could show blank or incorrect controls in the Visual Builder. - Fixed module decoration settings (fonts, background, design) for modules where they were not applying correctly in Divi 5. - Fixed a packaging issue where required plugin files could be missing from the downloaded zip in some environments. - Hardened all PHP files against edge-case loading issues on non-standard WordPress setups. = 4.3.0 (24-06-2026) = **New Modules — (modules other Divi packs charge for):** - **Countdown Timer** — evergreen and fixed-date modes, on-expiry actions (hide/redirect/show message), timezone-aware, no external JS. - **Timeline** — vertical and horizontal orientation, alternating/one-side layouts, scroll-triggered reveal, icon/image/number markers; repeatable child items. - **Data / Comparison Table** — responsive (stack/scroll), highlight column/row, sticky header, optional client-side sort, ribbon and CSV-style paste; repeatable child rows. - **Charts** — Bar / Line / Pie / Doughnut in one module (Chart.js), multi-dataset, animate-on-scroll, accessible canvas. Chart.js loads only when a chart is present. - **Floating Chat Button** — WhatsApp / Telegram / Messenger / phone / email / custom deep links, online-hours scheduling, prefilled messages; GDPR-friendly, no third-party script; repeatable child channels. - **Reading Progress Bar** — top/bottom bar or corner ring, per-content-area target, color/gradient, hide-on-complete. Tiny footprint. - **Image Hotspots** — unlimited percentage-positioned pins with tooltips, dot/icon/number markers, hover or click trigger, keyboard-accessible; repeatable child pins. **Improvements:** - The free module library grows to 61 modules — 60 run in both Divi 5 and Divi 4 (Post Carousel remains Divi 5-only). - Adds Chart.js as a per-page vendor dependency, enqueued only when a Charts module renders. - Extended WPML String Translation config for every new module's translatable attributes. = 4.2.0 (20-06-2026) = **New Modules:** - **Team Member** — team/staff cards with photo, role, bio, social links and schema.org `Person` markup; repeatable child items. - **Testimonial** — customer reviews with avatar, rating, name/role and schema.org `Review` markup; repeatable child items. - **Pricing Table** — responsive pricing plans with featured-column highlight, ribbon, tick/cross feature lists, CTA button and per-plan accent + button text colours; repeatable child items. - **Icon Box** — blurb-style box pairing an icon, image or Lottie animation with a title, content, optional badge and a clickable box link, with top/left/right layouts. - **Advanced Tabs** — tabbed content with horizontal / vertical layouts, mobile-accordion mode, icon tabs, URL-hash deep-linking and full keyboard/ARIA support; repeatable child Tab items. **Improvements:** - The free module library grows to 54 modules — the largest of any free Divi pack — with 53 running in both Divi 5 and Divi 4 (Post Carousel remains Divi 5-only). - Extended WPML String Translation config for every new module's translatable attributes. = 4.1.1 (14-07-2026) = **Security:** - Fixed XSS in Typing Text (D4) — `text_element_tag` prop was used as a raw HTML tag name without allowlist validation; `wp_kses_post()` on a plain string like `script` does not strip it. - Fixed CSS injection in Image Gallery (D4) — `esc_attr()` on CSS custom-property values does not strip `;`; replaced with `absint()` and `sanitize_css_length()`. - Fixed CSS injection in Image Mask (D5) — decoration layer fill color written into a `