1 | # Changelog
|
2 |
|
3 | ## [1.9.10] - 2023-12-21
|
4 |
|
5 | * `hx-on*` attributes now support the form `hx-on-`, with a trailing dash, to better support template systems (such as EJS)
|
6 | that do not like double colons in HTML attributes.
|
7 | * Added an `htmx.config.triggerSpecsCache` configuration property that can be set to an object to cache the trigger spec parsing
|
8 | * Added a `path-params.js` extension for populating request paths with variable values
|
9 | * Many smaller bug fixes & improvements
|
10 |
|
11 | ## [1.9.9] - 2023-11-21
|
12 |
|
13 | * Allow CSS selectors with whitespace in attributes like `hx-target` by using parens or curly-braces
|
14 | * Properly allow users to override the `Content-Type` request header
|
15 | * Added the `select` option to `htmx.ajax()`
|
16 | * Fixed a race condition in readystate detection that lead to htmx not being initialized in some scenarios with 3rd
|
17 | party script loaders
|
18 | * Fixed a bug that caused relative resources to resolve against the wrong base URL when a new URL is pushed
|
19 | * Fixed a UI issue that could cause indicators to briefly flash
|
20 |
|
21 | ## [1.9.8] - 2023-11-06
|
22 |
|
23 | * Fixed a few npm & build related issues
|
24 |
|
25 | ## [1.9.7] - 2023-11-03
|
26 |
|
27 | * Fixed a bug where a button associated with a form that is swapped out of the DOM caused errors
|
28 | * The `hx-target-error` attribute was added to the `response-targets` extension, allowing you to capture all 400 & 500
|
29 | responses with a single attribute
|
30 | * `hx-on` now properly supports multiple listeners
|
31 | * The `hx-confirm` prompt is now passed into custom confirmation handlers
|
32 | * `next` and `previous` are now valid _extended CSS_ symbols in htmx
|
33 | * The `htmx:beforeHistoryUpdate` event was added
|
34 | * Properly ignore the `dialog` formmethod on buttons when resolving the HTTP method to use
|
35 | * Added a `htmx.config.scrollIntoViewOnBoost` option that may be set to `false` to disable scrolling the top of the
|
36 | body into view for boosted elements
|
37 |
|
38 | ## [1.9.6] - 2023-09-22
|
39 |
|
40 | * IE support has been restored (thank you @telroshan!)
|
41 | * Introduced the `hx-disabled-elt` attribute to allow specifing elements to disable during a request
|
42 | * You can now explicitly decide to ignore `title` tags found in new content via the `ignoreTitle` option in `hx-swap` and the `htmx.config.ignoreTitle` configuration variable.
|
43 | * `hx-swap` modifiers may be used without explicitly specifying the swap mechanism
|
44 | * Arrays are now supported in the `client-side-templates` extension
|
45 | * XSLT support in the `client-side-templates` extension
|
46 | * Support `preventDefault()` in extension event handling
|
47 | * Allow the `HX-Refresh` header to apply even after an `HX-Redirect` has occurred
|
48 | * the `formaction` and `formmethod` attributes on buttons are now properly respected
|
49 | * `hx-on` can now handle events with dots in their name
|
50 | * `htmx.ajax()` now always returns a Promise
|
51 | * Handle leading `style` tag parsing more effectively
|
52 |
|
53 | ## [1.9.5] - 2023-08-25
|
54 |
|
55 | * Web sockets now properly pass the target id in the HEADERS struct
|
56 | * A very rare loading state bug was fixed (see https://github.com/bigskysoftware/htmx/commit/93bd81b6d003bb7bc445f10192bdb8089fa3495d)
|
57 | * `hx-on` will not evaluate if `allowEval` is set to false
|
58 | * You can disable the interpretation of script tags with the new `htmx.config.allowScriptTags` config variable
|
59 | * You can now disable htmx-based requests to non-origin hosts via the `htmx.config.selfRequestsOnly` config variable
|
60 | * The [Security](https://htmx.org/docs#security) section has been expanded to help developers better understand how to
|
61 | properly secure their htmx-based applications.
|
62 |
|
63 | ## [1.9.4] - 2023-07-25
|
64 |
|
65 | * This is a bug-fix release for the most part, w/a heavy dose of @telroshan
|
66 | * The `HX-Trigger` response header now supports comma separated event names
|
67 | * Submit buttons that use the `form` attribute now work correctly
|
68 | * The `changed` modifier now uses the triggering element, rather than the element the `hx-trigger` is defined on
|
69 | * `hx-disable` is now handled dynamically so it can be added and removed
|
70 | * IE11 compatibility restored! (maybe, hard to test)
|
71 | * Fixed bug with `hx-on` event handler cleanup
|
72 | * Many smaller bug fixes, typo fixes and general improvements
|
73 |
|
74 | ## [1.9.3] - 2023-07-14
|
75 |
|
76 | * The `hx-on` attribute has been deprecated (sorry) in favor of `hx-on:<event name>` attributes. See [`hx-on`](/attributes/hx-on) for more information.
|
77 | * We now have functioning CI using GitHub actions!
|
78 | * You can now configure if a type of HTTP request uses the body for parameters or not. In particular, the `DELETE` _should_ use
|
79 | query parameters, according to the spec. htmx has used the body, instead. To avoid breaking code we are keeping this undefined
|
80 | behavior for now, but allowing people to fix it for their use cases by updating the `htmx.config.methodsThatUseUrlParams` config
|
81 | option. Thank you to Alex and Vincent for their feedback and work on this issue!
|
82 | * The `this` symbol is now available in event filter expressions, and refers to the element the `hx-trigger` is on
|
83 | * Fix bug where the `htmx:afterSettle` event was raised multiple times with oob swaps occurred
|
84 | * A large number of accessibility fixes were made in the docs (Thank you Denis & crew!)
|
85 | * Fixed bug w/ WebSocket extension initialization caused by "naked" `hx-trigger` feature
|
86 | * The `HX-Reselect` HTTP response header has been added to change the selection from the returned content
|
87 | * Many other smaller bug fixes
|
88 |
|
89 | ## [1.9.2] - 2023-04-28
|
90 |
|
91 | * Fixed bug w/ `hx-on` not properly de-initializing
|
92 |
|
93 | ## [1.9.1] - 2023-04-27
|
94 |
|
95 | * Fixed a bug with the new naked triggers that prevented boosted elements with explicit `hx-trigger`'s from functioning
|
96 | properly
|
97 | * Added code to play well with other libraries that also use the `window.onpopstate` Daily reminder: <https://htmx.org/img/memes/javascripthistory.png>
|
98 |
|
99 | ## [1.9.0] - 2023-04-11
|
100 |
|
101 | * Support for generalized inline event handling via the new [`hx-on`](/attributes/hx-on) attribute, which addresses
|
102 | the shortcoming of limited [`onevent` properties](https://developer.mozilla.org/en-US/docs/Web/Events/Event_handlers#using_onevent_properties) attributes in HTML.
|
103 | * Support for [view transitions](/docs#view-transitions), based on the experimental [View Transitions API](https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API)
|
104 | currently available in Chrome 111+ and coming to other browsers soon.
|
105 | * Support for "naked" [`hx-trigger`](/attributes/hx-trigger) attributes, where an `hx-trigger` is present on an element
|
106 | that does not have an `hx-get`, etc. defined on it. Instead, it will trigger the new `htmx:triggered` event, which can
|
107 | be responded to via your [preferred scripting solution](/docs#scripting).
|
108 | * A memory leak fix by [@croxton](https://github.com/bigskysoftware/htmx/commit/8cd3a480a7388877628ce8b9b8e50cd5df48bb81)
|
109 | * The htmx website has been migrated from 11ty to [zola](https://www.getzola.org/) by [@danieljsummers](https://github.com/danieljsummers), cutting
|
110 | way down on the number of "development" javascript dependencies
|
111 | * Many other smaller bug fixes
|
112 |
|
113 | ## [1.8.6] - 2023-03-02
|
114 |
|
115 | * ESM support!
|
116 | * Sass has been vanquished from the htmx.org website, which should set us up for some good progress going forward
|
117 | * Fixed a bug where the `changed` modifier on `keyup` did not work properly if an input was tabbed into
|
118 | * Many other smaller bug fixes and doc fixes
|
119 |
|
120 | ## [1.8.5] - 2023-01-17
|
121 |
|
122 | * Support a new optional cache-busting configuration option, `getCacheBusterParam`, to allow browsers to disambiguate
|
123 | between `GET` requests from htmx and from the raw browser
|
124 | * Support new `hx-history='false'` attribute, to prevent sensitive data from being stored in the history cache. (Thank you @croxton!)
|
125 | * Extensive new event-oriented features are available in the [Web Socket](/extensions/web-sockets/) extension (Thank you @Renerick!)
|
126 | * A bug fix for when a form contains multiple empty input values with the same name (Thank you @bluekeyes!)
|
127 | * A bug fix around inputs that throw exceptions when calling `setSelectionRange()` (Thank you @gone!)
|
128 | * A bug fix to pass through the proper event for the `htmx:configRequest` event
|
129 | * A bug fix/improvement for the `preload` extension
|
130 | * Many other small bug fixes
|
131 |
|
132 | ## [1.8.4] - 2022-11-05
|
133 |
|
134 | * Fix the _exact same_ regression in `revealed` logic as in 1.8.2
|
135 |
|
136 | ## [1.8.3] - 2022-11-04
|
137 |
|
138 | * A new [`htmx:confirm` event](/events#htmx:confirm) was added that allows for asynchronous confirmation dialogs to
|
139 | be integrated into htmx requests
|
140 | * The new [head-support](/extensions/head-support) extension allows for more elaborate head tag merging than standard htmx
|
141 | supports. This functionality may be integrated into htmx 2.0, depending on feedback.
|
142 | * The new [multi-swap](/extensions/multi-swap) provides more elaborate swapping of multiple elements on a screen using
|
143 | a custom swap strategy
|
144 | * Many doc fixes (thank you to everyone who contributed!)
|
145 |
|
146 | ## [1.8.2] - 2022-10-12
|
147 |
|
148 | * Fix regression in `revealed` logic
|
149 |
|
150 | ## [1.8.1] - 2022-10-11
|
151 |
|
152 | * We now keep a count of outstanding requests for an indicator, so more than one overlapping request can share the same
|
153 | indicator without issues
|
154 | * We now track the attribute state of an element and re-initialize it if `htmx.process()` is called on the element and
|
155 | the attributes have changed
|
156 | * [Idiomorph](https://github.com/bigskysoftware/idiomorph) is now available for all your morph-swapping needs
|
157 | * The `unset` directive now works properly for `hx-vals` and `hx-vars`
|
158 | * The title of the page is now properly set on a history cache miss
|
159 | * The new [`hx-validate`](https://htmx.org/attributes/hx-validate) attribute will force elements to validate before a request, even if
|
160 | they are not within a form being submitted
|
161 | * Many smaller bug and docs fixes
|
162 |
|
163 | ## [1.8.0] - 2022-7-12
|
164 |
|
165 | * **NOTE**: This release involved some changes to touchy code (e.g. history support) so please test thoroughly and let
|
166 | us know if you see any issues
|
167 | * Boosted forms now will automatically push URLs into history as with links. The [response URL](https://caniuse.com/mdn-api_xmlhttprequest_responseurl)
|
168 | detection API support is good enough that we feel comfortable making this the default now.
|
169 | * If you do not want this behavior you can add `hx-push-url='false'` to your boosted forms
|
170 | * The [`hx-replace-url`](https://htmx.org/attributes/hx-replace-url) attribute was introduced, allowing you to replace
|
171 | the current URL in history (to complement `hx-push-url`)
|
172 | * Bug fix - if htmx is included in a page more than once, we do not process elements multiple times
|
173 | * Bug fix - When localStorage is not available we do not attempt to save history in it
|
174 | * [Bug fix](https://github.com/bigskysoftware/htmx/issues/908) - `hx-boost` respects the `enctype` attribute
|
175 | * `m` is now a valid timing modifier (e.g. `hx-trigger="every 2m"`)
|
176 | * `next` and `previous` are now valid extended query selector modifiers, e.g. `hx-target="next div"` will target the
|
177 | next div from the current element
|
178 | * Bug fix - `hx-boost` will boost anchor tags with a `_self` target
|
179 | * The `load` event now properly supports event filters
|
180 | * The websocket extension has had many improvements: (A huge thank you to Denis Palashevskii, our newest committer on the project!)
|
181 | * Implement proper `hx-trigger` support
|
182 | * Expose trigger handling API to extensions
|
183 | * Implement safe message sending with sending queue
|
184 | * Fix `ws-send` attributes connecting in new elements
|
185 | * Fix OOB swapping of multiple elements in response
|
186 | * The `HX-Location` response header now implements client-side redirects entirely within htmx
|
187 | * The `HX-Reswap` response header allows you to change the swap behavior of htmx
|
188 | * The new [`hx-select-oob`](https://htmx.org/attributes/hx-select-oob) attribute selects one or more elements from a server response to swap in via an out of band swap
|
189 | * The new [`hx-replace-url`](https://htmx.org/attributes/hx-replace-url) attribute can be used to replace the current URL in the location
|
190 | bar (very similar to `hx-push-url` but no new history entry is created). The corresponding `HX-Replace-Url` response header can be used as well.
|
191 | * htmx now properly handles anchors in both boosted links, as well as in `hx-get`, etc. attributes
|
192 |
|
193 | ## [1.7.0] - 2022-02-22
|
194 |
|
195 | * The new [`hx-sync`](https://htmx.org/attributes/hx-sync) attribute allows you to synchronize multiple element requests on a single
|
196 | element using various strategies (e.g. replace)
|
197 | * You can also now abort an element making a request by sending it the `htmx:abort` event
|
198 | * [Server Sent Events](/extensions/server-sent-events) and [Web Sockets](/extensions/web-sockets) are now available as
|
199 | extensions, in addition to the normal core support. In htmx 2.0, the current `hx-sse` and `hx-ws` attributes will be
|
200 | moved entirely out to these new extensions. By moving these features to extensions we will be able to add functionality
|
201 | to both of them without compromising the core file size of htmx. You are encouraged to move over to the new
|
202 | extensions, but `hx-sse` and `hx-ws` will continue to work indefinitely in htmx 1.x.
|
203 | * You can now mask out [attribute inheritance](/docs#inheritance) via the [`hx-disinherit`](https://htmx.org/attributes/hx-disinherit) attribute.
|
204 | * The `HX-Push` header can now have the `false` value, which will prevent a history snapshot from occurring.
|
205 | * Many new extensions, with a big thanks to all the contributors!
|
206 | * A new [`alpine-morph`](/extensions/alpine-morph) allows you to use Alpine's swapping engine, which preserves Alpine
|
207 | * A [restored](/extensions/restored) extension was added that will trigger a `restore` event on all elements in the DOM
|
208 | on history restoration.
|
209 | * A [loading-states](/extensions/loading-states) extension was added that allows you to easily manage loading states
|
210 | while a request is in flight, including disabling elements, and adding and removing CSS classes.
|
211 | * The `this` symbol now resolves properly for the [`hx-include`](https://htmx.org/attributes/hx-include) and [`hx-indicator`](https://htmx.org/attributes/hx-indicator)
|
212 | attributes
|
213 | * When an object is included via the [`hx-vals`](https://htmx.org/attributes/hx-vals) attribute, it will be converted to JSON (rather
|
214 | than rendering as the string `[Object object]"`)
|
215 | * You can now pass a swap style in to the `htmx.ajax()` function call.
|
216 | * Poll events now contain a `target` attribute, allowing you to filter a poll on the element that is polling.
|
217 | * Two new Out Of Band-related events were added: `htmx:oobBeforeSwap` & `htmx:oobAfterSwap`
|
218 |
|
219 | ## [1.6.1] - 2021-11-22
|
220 |
|
221 | * A new `HX-Retarget` header allows you to change the default target of returned content
|
222 | * The `htmx:beforeSwap` event now includes another configurable property: `detail.isError` which can
|
223 | be used to indicate if a given response should be treated as an error or not
|
224 | * The `htmx:afterRequest` event has two new detail properties: `success` and `failed`, allowing you to write
|
225 | trigger filters in htmx or hyperscript:
|
226 | ```applescript
|
227 | on htmx:afterRequest[failed]
|
228 | set #myCheckbox's checked to true
|
229 | ```
|
230 | * Fixed the `from:` option in [`hx-trigger`](https://htmx.org/attributes/hx-trigger) to support `closest <CSS selector>`
|
231 | and `find <CSS selector>` forms
|
232 | * Don't boost anchor tags with an explicit `target` set
|
233 | * Don't cancel all events on boosted elements, only the events that naturally trigger them (click for anchors, submit
|
234 | for forms)
|
235 | * Persist revealed state in the DOM so that on history navigation, revealed elements are not re-requested
|
236 | * Process all [`hx-ext`](https://htmx.org/attributes/hx-ext) attributes, even if no other htmx attribute is on the element
|
237 | * Snapshot the current URL on load so that history support works properly after a page refresh occurs
|
238 | * Many, many documentation updates (thank you to all the contributors!)
|
239 |
|
240 |
|
241 | ## [1.6.0] - 2021-10-01
|
242 |
|
243 | * Completely reworked `<script>` tag support that now supports the `<script src="...'/>` form
|
244 | * You can now use the value `unset` to clear a property that would normally be inherited (e.g. hx-confirm)
|
245 | * The `htmx-added` class is added to new content before a swap and removed after the settle phase, which allows you
|
246 | more flexibility in writing CSS transitions for added content (rather than relying on the target, as with `htmx-settling`)
|
247 | * The `htmx:beforeSwap` event has been updated to allow you to [configure swapping](https://htmx.org/docs/#modifying_swapping_behavior_with_events)
|
248 | behavior
|
249 | * Improved `<title>` extraction support
|
250 | * You can listen to events on the `window` object using the `from:` modifier in `hx-trigger`
|
251 | * The `root` option of the `intersect` event was fixed
|
252 | * Boosted forms respect the `enctype` declaration
|
253 | * The `HX-Boosted` header will be sent on requests from boosted elements
|
254 | * Promises are not returned from the main ajax function unless it is an api call (i.e. `htmx.ajax`)
|
255 |
|
256 | ## [1.5.0] - 2021-7-12
|
257 |
|
258 | * Support tracking of button clicked during a form submission
|
259 | * Conditional polling via the [hx-trigger](https://htmx.org/attributes/hx-trigger) attribute
|
260 | * `document` is now a valid pseudo-selector on the [hx-trigger](https://htmx.org/attributes/hx-trigger) `from:` argument, allowing you
|
261 | to listen for events on the document.
|
262 | * Added the [hx-request](https://htmx.org/attributes/hx-request) attribute, allowing you to configure the following aspects of the request
|
263 | * `timeout` - the timeout of the request
|
264 | * `credentials` - if the request will send credentials
|
265 | * `noHeaders` - strips all headers from the request
|
266 | * Along with the above attribute, you can configure the default values for each of these via the corresponding `htmx.config`
|
267 | properties (e.g. `htmx.config.timeout`)
|
268 | * Both the `scroll` and `show` options on [hx-swap](https://htmx.org/attributes/hx-swap) now support extended syntax for selecting the
|
269 | element to scroll or to show, including the pseudo-selectors `window:top` and `window:bottom`.
|
270 |
|
271 | ## [1.4.1] - 2021-6-1
|
272 |
|
273 | * typo fix
|
274 |
|
275 | ## [1.4.0] - 2021-5-25
|
276 |
|
277 | * Added the `queue` option to the [hx-trigger](https://htmx.org/attributes/hx-trigger) attribute, allowing you to specify how events
|
278 | should be queued when they are received with a request in flight
|
279 | * The `htmx.config.useTemplateFragments` option was added, allowing you to use HTML template tags for parsing content
|
280 | from the server. This allows you to use Out of Band content when returning things like table rows, but it is not
|
281 | IE11 compatible.
|
282 | * The `defaultSettleDelay` was dropped to 20ms from 100ms
|
283 | * Introduced a new synthetic event, [intersect](https://htmx.org/docs#pecial-events) that allows you to trigger when an item is scrolled into view
|
284 | as specified by the `IntersectionObserver` API
|
285 | * Fixed timing issue that caused exceptions in the `reveal` logic when scrolling at incredible speeds - <https://github.com/bigskysoftware/htmx/issues/463>
|
286 | * Fixed bug causing SVG titles to be incorrectly used as page title - <https://github.com/bigskysoftware/htmx/issues/459>
|
287 | * Boosted forms that issue a GET will now push the URL by default - <https://github.com/bigskysoftware/htmx/issues/485>
|
288 | * Better dispatch of request events when an element is removed from the DOM
|
289 | * Fixed a bug causing `hx-prompt` to fail
|
290 | * The `htmx.config.withCredentials` option was added, to send credentials with ajax requests (default is `false`)
|
291 | * The `throttle` option on `hx-trigger` does not delay the initial request any longer
|
292 | * The `meta` key is ignored on boosted links
|
293 | * `<script>` tags are now evaluated in the global scope
|
294 | * `hx-swap` now supports the `none` option
|
295 | * Safari text selection bug - <https://github.com/bigskysoftware/htmx/issues/438>
|
296 |
|
297 | ## [1.3.3] - 2021-4-5
|
298 |
|
299 | * Added the [`hx-disabled`](https://htmx.org/docs#security) attribute to allow htmx to be turned off for parts of the DOM
|
300 | * SSE now uses a full-jitter exponential backoff algorithm on reconnection, using the `htmx.config.wsReconnectDelay`
|
301 | setting
|
302 |
|
303 | ## [1.3.2] - 2021-3-9
|
304 |
|
305 | * Bug fixes
|
306 |
|
307 | ## [1.3.1] - 2021-3-9
|
308 |
|
309 | * IE11 fixes
|
310 |
|
311 | ## [1.3.0] - 2021-3-6
|
312 |
|
313 | * Support a `target` modifier on `hx-trigger` to filter based on the element targeted by an event. This allows
|
314 | lazy binding to that target selector.
|
315 | * Events are no longer consumed by the first element that might handle them, unless the `consume` keyword is
|
316 | added to the `hx-trigger` specification
|
317 | * Added the `htmx:beforeSend` event, fired just before an ajax request begins
|
318 | * SSE swaps are properly settled
|
319 | * Fixed bug that was improperly cancelling all clicks on anchors
|
320 | * `htmx.ajax()` now returns a promise
|
321 |
|
322 | ## [1.2.1] - 2021-2-19
|
323 |
|
324 | * Fixed an issue with the history cache, where the cache was getting blown out after the first navigation backwards
|
325 | * Added the `htmx.config.refreshOnHistoryMiss` option, allowing users to trigger a full page refresh on history cache miss
|
326 | rather than issuing an AJAX request
|
327 |
|
328 | ## [1.2.0] - 2021-2-13
|
329 |
|
330 | ### New Features
|
331 |
|
332 | * `hx-vars` has been deprecated in favor of `hx-vals`
|
333 | * `hx-vals` now supports a `javascript:` prefix to achieve the behavior that `hx-vars` provided
|
334 | * The new `hx-headers` attribute allows you to add headers to a request via an attribute. Like `hx-vals` it supports
|
335 | JSON or javascript via the `javascript:` prefix
|
336 | * `hx-include` will now include all inputs under an element, even if that element is not a form tag
|
337 | * The [preload extension](https://htmx.org/extensions/preload/) now offers a `preload-images="true"` attribute that will aggressively load images in preloaded content
|
338 | * On requests driven by a history cache miss, the new `HX-History-Restore-Request` header is included so that the server
|
339 | can differentiate between history requests and normal requests
|
340 |
|
341 | ### Improvements & Bug fixes
|
342 |
|
343 | * Improved handling of precedence of input values to favor the enclosing form (see [here](https://github.com/bigskysoftware/htmx/commit/a10e43d619dc340aa324d37772c06a69a2f47ec9))
|
344 | * Moved event filtering logic *after* `preventDefault` so filtering still allows events to be properly handled
|
345 | * No longer trigger after swap events on elements that have been removed via an `outerHTML` swap
|
346 | * Properly remove event handlers added to other elements when an element is removed from the DOM
|
347 | * Handle the `scroll:` modifier in `hx-swap` properly when an `outerHTML` swap occurs
|
348 | * Lots of docs fixes
|
349 |
|
350 | ## [1.1.0] - 2021-1-6
|
351 |
|
352 | * Newly added [preload extension](https://htmx.org/extensions/preload/) allows you to preload resources for lower
|
353 | latency requests!
|
354 | * Support the `ignore:` modifier for extensions
|
355 | * Updated form variable order inclusion to include the enclosing form *last* so that, in the presence of multiple
|
356 | values, the most relevant value is the most likely to be selected by the server
|
357 | * Support for the [`htmx.ajax()`](https://dev.htmx.org/api/#ajax) javascript function, to issue an htmx-style ajax
|
358 | request from javascript
|
359 | * Removed the following htmx request headers for better cache behavior: `HX-Event-Target`, `HX-Active-Element`,
|
360 | `HX-Active-Element-Name`, `HX-Active-Element-Value`
|
361 | * Added the [`hx-preserve`](https://dev.htmx.org/attributes/hx-preserve) attribute, which allows
|
362 | you to preserve elements across requests (for example, to keep a video element playing properly)
|
363 | * The [path-deps](https://dev.htmx.org/extensions/path-deps/#refresh) now surfaces a small api
|
364 | for refreshing path dependencies manually in javascript
|
365 | * Now support the `from:` clause on [`hx-trigger`](https://dev.htmx.org/attributes/hx-trigger) to
|
366 | allow an element to respond to events on other elements.
|
367 | * Added the `htmx:beforeProcessNode` event, renamed the (previously undocumented) `htmx:processedNode` to `htmx:afterProcessNode`
|
368 | * Added `closest` syntax support for the [`hx-indicator`](https://dev.htmx.org/attributes/hx-indicator) attribute
|
369 | * Added `on load` support for the newest version of [hyperscript](https://hyperscript.org)
|
370 | * Added the `htmx.config.allowEval` configuration value, for CSP compatibility
|
371 | * Bug fixes & improvements
|
372 |
|
373 | ## [1.0.2] - 2020-12-12
|
374 |
|
375 | * Extend all API methods to take a string selector as well as an element
|
376 | * Out of band swap elements need not be top level now
|
377 | * [`hx-swap-oob`](https://htmx.org/attributes/hx-swap-oob) now can accept a CSS selector to retarget with
|
378 |
|
379 | ## [1.0.1] - 2020-12-04
|
380 |
|
381 | * AJAX file upload now correctly fires events, allowing for [a proper progress bar](https://htmx.org/examples/file-upload)
|
382 | * htmx api functions that expect an element now can accept a string selector instead:
|
383 | ```js
|
384 | htmx.on('#form', 'htmx:xhr:progress', function(evt) {
|
385 | htmx.find('#progress').setAttribute('value', evt.detail.loaded/evt.detail.total * 100)
|
386 | });
|
387 | ```
|
388 | * htmx now properly handles the `multiple` attribute on `<select>` elements
|
389 |
|
390 | ## [1.0.0] - 2020-11-24
|
391 |
|
392 | * Bumped the release version :)
|
393 |
|
394 | ## [0.4.1] - 2020-11-23
|
395 |
|
396 | * Fixed bug with title tag support when title tag contained HTML entities
|
397 | * Pass properties for the `loadstart`, `loadend`, `progress`, `abort` events through properly to the htmx equivalents
|
398 |
|
399 | ## [0.4.0] - 2020-11-16
|
400 |
|
401 | * Now support the `HX-Redirect` and `HX-Refresh` response headers for redirecting client side and triggering a page refresh, respectively
|
402 | * `hx-vars` now overrides input values
|
403 | * `<title>` tags in responses will be used to update page titles
|
404 | * All uses of `eval()` have been removed in favor of `Function`
|
405 | * [`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.
|
406 |
|
407 | ## [0.3.0] - 2020-10-27
|
408 |
|
409 | * `hx-trigger` parsing has been rewritten and now supports [trigger filters](https://htmx.org/docs/#trigger-filters) to filter
|
410 | events based on arbitrary javascript expressions
|
411 | * htmx now supports two additional response headers `HX-Trigger-After-Swap` and `HX-Trigger-After-Settle` allowing
|
412 | an event to be triggered after a given life cycle event (instead of before the swap)
|
413 | * The `requestConfig` is now passed out to events surrounding the AJAX life cycle
|
414 | * htmx now evaluates `<script>` tags as javascript when no language is defined on them
|
415 | * A new [`event-header`](https://htmx.org/extensions/event-header) extension, which will include a serialized JSON representation of the triggering event in requests
|
416 |
|
417 | ## [0.2.0] - 2020-9-30
|
418 |
|
419 | * AJAX file upload [support](https://htmx.org/docs#files)
|
420 | * The HTML validation API is [respected](https://htmx.org/docs#validation)
|
421 |
|
422 | ## [0.1.0] - 2020-9-18
|
423 |
|
424 | * *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'`
|
425 | * 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,
|
426 | with the new `swap:<event name>` syntax.
|
427 | * [`hx-target`](https://htmx.org/attributes/hx-target) now supports a `find` syntax to find elements below the element by a CSS selector
|
428 | * htmx plays better with deferred loading and many package managers
|
429 | * 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
|
430 | `htmx:after-on-load`)
|
431 | * [hypeerscript](https://hyperscript.org) is now initialized independently of htmx
|
432 |
|
433 | ## [0.0.8] - 2020-7-8
|
434 |
|
435 | * The `view` modifier on `hx-swap` has been renamed to `show`: `hx-swap='innerHTML show:top'`
|
436 |
|
437 | ## [0.0.7] - 2020-6-30
|
438 |
|
439 | * The [`hx-swap`](https://htmx.org/attributes/hx-swap) attribute now supports two new modifiers:
|
440 | * `scroll` - allows you to scroll the target to the `top` or `bottom`
|
441 | * `view` - allows you to scroll the `top` or `bottom` of the target into view
|
442 | * 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`
|
443 | * 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
|
444 |
|
445 | ## [0.0.6] - 2020-6-20
|
446 |
|
447 | * Custom request/response headers no longer start with the `X-` prefix, which is no longer recommended
|
448 | * empty verb attributes are now allowed and follow the anchor tag semantics (e.g. `<div hx-get></div>`)
|
449 | * nunjuks inline rendering is now supported in the `client-side-templates` extension
|
450 | * the new `ajax-header` extension includes the `X-Requested-With` header
|
451 | * bad JSON is now handled more gracefully
|
452 | * `hx-swap="none"` will cause no swap to take place <https://github.com/bigskysoftware/htmx/issues/89>
|
453 | * `hx-trigger` now supports a `throttle` modifier <https://github.com/bigskysoftware/htmx/issues/88>
|
454 | * the focused element is preserved if possible after a replacement
|
455 | * perf improvements for large DOM trees with sparse `hx-` annotations
|
456 |
|
457 | ## [0.0.4] - 2020-5-24
|
458 |
|
459 | * Extension mechanism added
|
460 | * SSE support added
|
461 | * WebSocket support added
|
462 |
|
463 | ## [0.0.3] - 2020-5-17
|
464 |
|
465 | * Renamed to htmx
|
466 | * A bug fix for the `hx-prompt` attribute
|
467 | * A bug fix for multiple `hx-swap-oob` attributes
|
468 | * Moved the default CSS indicator injection into its own sheet to avoid breaking
|
469 | * Added the `htmx.config.includeIndicatorStyles` configuration option so people can opt out of injecting the indicator CSS
|
470 |
|
471 |
|
472 | ## [0.0.1] - 2020-5-15
|
473 |
|
474 | * Initial release (originally named kutty)
|
475 |
|
\ | No newline at end of file |