Change8

v4.0.0-beta6

Breaking Changes
📦 htmxView on GitHub →
1 breaking9 features🐛 4 fixes🔧 9 symbols

Summary

This release introduces a new `hx-multipart` extension, history scroll restoration, and support for custom request methods. It also includes performance improvements for `hx-live` and a breaking change in event naming.

⚠️ Breaking Changes

  • The event `htmx:swap:finally` has been renamed to `htmx:finally:swap`. Update any event listeners that use the old event name.

Migration Steps

  1. Rename event listeners from `htmx:swap:finally` to `htmx:finally:swap`.

✨ New Features

  • New `hx-multipart` extension for streaming `multipart/mixed` and `multipart/parallel` responses with per-part `HX-*` action headers.
  • History scroll restoration via the Navigation API, with a Firefox fallback.
  • `HCON` is now exposed to extensions.
  • Support for custom request methods like `query`.
  • `HX-Trigger` response-header events now fire after swap.
  • `hx-live` performance improvements: skip no-change updates and cache compiled `safeEval` tags.
  • `hx-ws` now forwards `protocols` to the `WebSocket` constructor and has a rewritten/refined implementation.
  • `optimistic` extension handles trusted-type policies via `cloneNode`.
  • Custom-element manual input value collection.

🐛 Bug Fixes

  • Fixed an issue with `hx-live` performance by skipping no-change updates.
  • Fixed an issue with `hx-live` performance by caching compiled `safeEval` tags.
  • Refined the implementation of `hx-ws`.
  • Addressed issues related to custom-element manual input value collection.

Affected Symbols