9.38 kBMarkdownView Raw
1# Changelog
4## [1.3.0] - 2021-3-6
6* Support a `target` modifier on `hx-trigger` to filter based on the element targeted by an event. This allows
7 lazy binding to that target selector.
8* Events are no longer consumed by the first element that might handle them, unless the `consume` keyword is
9 added to the `hx-trigger` specification
10* Added the `htmx:beforeSend` event, fired just before an ajax request begins
11* SSE swaps are properly settled
12* Fixed bug that was improperly cancelling all clicks on anchors
13* `htmx.ajax()` now returns a promise
15## [1.2.1] - 2021-2-19
17* Fixed an issue with the history cache, where the cache was getting blown out after the first navigation backwards
18* Added the `htmx.config.refreshOnHistoryMiss` option, allowing users to trigger a full page refresh on history cache miss
19 rather than issuing an AJAX request
21## [1.2.0] - 2021-2-13
23### New Features
25* `hx-vars` has been deprecated in favor of `hx-vals`
26* `hx-vals` now supports a `javascript:` prefix to achieve the behavior that `hx-vars` provided
27* The new `hx-headers` attribute allows you to add headers to a request via an attribute. Like `hx-vals` it supports
28 JSON or javascript via the `javascript:` prefix
29* `hx-include` will now include all inputs under an element, even if that element is not a form tag
30* The [preload extension](https://htmx.org/extensions/preload/) now offers a `preload-images="true"` attribute that will aggressively load images in preloaded content
31* On requests driven by a history cache miss, the new `HX-History-Restore-Request` header is included so that the server
32 can differentiate between history requests and normal requests
34### Improvements & Bug fixes
36* Improved handling of precedence of input values to favor the enclosing form (see [here](https://github.com/bigskysoftware/htmx/commit/a10e43d619dc340aa324d37772c06a69a2f47ec9))
37* Moved event filtering logic *after* `preventDefault` so filtering still allows events to be properly handled
38* No longer trigger after swap events on elements that have been removed via an `outerHTML` swap
39* Properly remove event handlers added to other elements when an element is removed from the DOM
40* Handle the `scroll:` modifier in `hx-swap` properly when an `outerHTML` swap occurs
41* Lots of docs fixes
43## [1.1.0] - 2021-1-6
45* Newly added [preload extension](https://htmx.org/extensions/preload/) allows you to preload resources for lower
46 latency requests!
47* Support the `ignore:` modifier for extensions
48* Updated form variable order inclusion to include the enclosing form *last* so that, in the presence of multiple
49 values, the most relevant value is the most likely to be selected by the server
50* Support for the [`htmx.ajax()`](https://dev.htmx.org/api/#ajax) javascript function, to issue an htmx-style ajax
51 request from javascript
52* Removed the following htmx request headers for better cache behavior: `HX-Event-Target`, `HX-Active-Element`,
53 `HX-Active-Element-Name`, `HX-Active-Element-Value`
54* Added the [`hx-preserve`](https://dev.htmx.org/attributes/hx-preserve) attribute, which allows
55 you to preserve elements across requests (for example, to keep a video element playing properly)
56* The [path-deps](https://dev.htmx.org/extensions/path-deps/#refresh) now surfaces a small api
57 for refreshing path dependencies manually in javascript
58* Now support the `from:` clause on [`hx-trigger`](https://dev.htmx.org/attributes/hx-trigger) to
59 allow an element to respond to events on other elements.
60* Added the `htmx:beforeProcessNode` event, renamed the (previously undocumented) `htmx:processedNode` to `htmx:afterProcessNode`
61* Added `closest` syntax support for the [`hx-indicator`](https://dev.htmx.org/attributes/hx-indicator) attribute
62* Added `on load` support for the newest version of [hyperscript](https://hyperscript.org)
63* Added the `htmx.config.allowEval` configuration value, for CSP compatibility
64* Bug fixes & improvements
66## [1.0.2] - 2020-12-12
68* Extend all API methods to take a string selector as well as an element
69* Out of band swap elements need not be top level now
70* [`hx-swap-oob`](https://htmx.org/attributes/hx-swap-oob) now can accept a CSS selector to retarget with
72## [1.0.1] - 2020-12-04
74* AJAX file upload now correctly fires events, allowing for [a proper progress bar](https://htmx.org/examples/file-upload)
75* htmx api functions that expect an element now can accept a string selector instead:
76 ```js
77 htmx.on('#form', 'htmx:xhr:progress', function(evt) {
78 htmx.find('#progress').setAttribute('value', evt.detail.loaded/evt.detail.total * 100)
79 });
80 ```
81* htmx now properly handles the `multiple` attribute on `<select>` elements
83## [1.0.0] - 2020-11-24
85* Bumped the release version :)
87## [0.4.1] - 2020-11-23
89* Fixed bug with title tag support when title tag contained HTML entities
90* Pass properties for the `loadstart`, `loadend`, `progress`, `abort` events through properly to the htmx equivalents
92## [0.4.0] - 2020-11-16
94* Now support the `HX-Redirect` and `HX-Refresh` response headers for redirecting client side and triggering a page refresh, respectively
95* `hx-vars` now overrides input values
96* `<title>` tags in responses will be used to update page titles
97* All uses of `eval()` have been removed in favor of `Function`
98* [`hx-vals`](https://htmx.org/attributes/hx-vals) is available as a safe alternative to `hx-vars`. It uses `JSON.parse()` rather than evaluation, if you wish to safely pass user-provided values through to htmx.
100## [0.3.0] - 2020-10-27
102* `hx-trigger` parsing has been rewritten and now supports [trigger filters](https://htmx.org/docs/#trigger-filters) to filter
103 events based on arbitrary javascript expressions
104* htmx now supports two additional response headers `HX-Trigger-After-Swap` and `HX-Trigger-After-Settle` allowing
105 an event to be triggered after a given life cycle event (instead of before the swap)
106* The `requestConfig` is now passed out to events surrounding the AJAX life cycle
107* htmx now evaluates `<script>` tags as javascript when no language is defined on them
108* A new [`event-header`](https://htmx.org/extensions/event-header) extension, which will include a serialized JSON representation of the triggering event in requests
110## [0.2.0] - 2020-9-30
112* AJAX file upload [support](https://htmx.org/docs#files)
113* The HTML validation API is [respected](https://htmx.org/docs#validation)
115## [0.1.0] - 2020-9-18
117* *BREAKING CHANGE*: The SSE attribute [`hx-sse`](https://htmx.org/attributes/hx-sse/) and the Web Sockets attribute [`hx-ws`](https://htmx.org/attributes/hx-ws) have changed syntax to now use colon separators: `hx-sse='connect:/chat swap:message'`
118* The SSE attribute [`hx-sse`](https://htmx.org/attributes/hx-sse/) allows for swapping content directly on an event, in addition to triggering an htmx element,
119with the new `swap:<event name>` syntax.
120* [`hx-target`](https://htmx.org/attributes/hx-target) now supports a `find` syntax to find elements below the element by a CSS selector
121* htmx plays better with deferred loading and many package managers
122* All htmx events are dispatched in both camelCase as well as kebab-case, for better compatibility with AlpineJS and other frameworks. (e.g. `htmx:afterOnLoad` will also be triggered as
124* [hypeerscript](https://hyperscript.org) is now initialized independently of htmx
126## [0.0.8] - 2020-7-8
128* The `view` modifier on `hx-swap` has been renamed to `show`: `hx-swap='innerHTML show:top'`
130## [0.0.7] - 2020-6-30
132* The [`hx-swap`](https://htmx.org/attributes/hx-swap) attribute now supports two new modifiers:
133 * `scroll` - allows you to scroll the target to the `top` or `bottom`
134 * `view` - allows you to scroll the `top` or `bottom` of the target into view
135* The [`hx-push-url`](https://htmx.org/attributes/hx-push-url) attribute now can optionally take a URL to push, in addition to `true` and `false`
136* Added the [`hx-vars`](https://htmx.org/attributes/hx-vars) attribute that allows you to dynamically add to the parameters that will be submitted with a request
138## [0.0.6] - 2020-6-20
140* Custom request/response headers no longer start with the `X-` prefix, which is no longer recommended
141* empty verb attributes are now allowed and follow the anchor tag semantics (e.g. `<div hx-get></div>`)
142* nunjuks inline rendering is now supported in the `client-side-templates` extension
143* the new `ajax-header` extension includes the `X-Requested-With` header
144* bad JSON is now handled more gracefully
145* `hx-swap="none"` will cause no swap to take place <https://github.com/bigskysoftware/htmx/issues/89>
146* `hx-trigger` now supports a `throttle` modifier <https://github.com/bigskysoftware/htmx/issues/88>
147* the focused element is preserved if possible after a replacement
148* perf improvements for large DOM trees with sparse `hx-` annotations
150## [0.0.4] - 2020-5-24
152* Extension mechanism added
153* SSE support added
154* WebSocket support added
156## [0.0.3] - 2020-5-17
158* Renamed to htmx
159* A bug fix for the `hx-prompt` attribute
160* A bug fix for multiple `hx-swap-oob` attributes
161* Moved the default CSS indicator injection into its own sheet to avoid breaking
162* Added the `htmx.config.includeIndicatorStyles` configuration option so people can opt out of injecting the indicator CSS
165## [0.0.1] - 2020-5-15
167* Initial release (originally named kutty)
\No newline at end of file