3880 Commits

Author SHA1 Message Date
Carson Gross
8f93407458 rework settle logic 2026-02-04 20:10:22 -07:00
Carson Gross
f7d84d2058 Merge remote-tracking branch 'origin/four' into four 2026-02-02 18:35:35 -07:00
Carson Gross
e91ea5ba38 upgrade note on hx-delete 2026-02-02 18:35:25 -07:00
Carson Gross
ff9b094f9d clarify docs on when values are included 2026-02-02 18:31:13 -07:00
Carson Gross
85ac1504f9 clarify docs on when values are included 2026-02-02 18:22:42 -07:00
Carson Gross
ac776e121c Properly ignore form inputs on GET/DELETEs within forms. 2026-02-02 18:12:47 -07:00
MichaelWest22
1a29b4b6ed
simplify blank id skipping 2026-01-30 23:41:48 +13:00
Stu Kennedy
3a72a1d2a3
feat(ws): handle non-JSON messages as raw HTML with cancelable event (#3641)
* feat(ws): handle non-JSON messages as raw HTML with cancelable event

Non-JSON WebSocket messages now swap as raw HTML instead of being
dropped. Fires a cancelable htmx:ws:rawMessage event before swapping,
allowing custom handling when needed.

- If hx-target is set: swaps into target using element's swap style
- If no hx-target: uses swap:none to protect connection element,
  but hx-partial tags in payload still reach their own targets
- preventDefault() on the event skips default swap for custom handling

Replaces the old htmx:wsUnknownMessage event which only notified
but took no action on non-JSON data.

* test(ws): add tests for raw HTML message handling and cancelable event

Tests cover:
- Non-JSON messages swap as raw HTML into hx-target
- swap:none used when no hx-target (protects connection element)
- hx-partial tags in raw messages still reach their targets
- htmx:ws:rawMessage event fires with message data
- preventDefault() on rawMessage cancels default swap

---------

Co-authored-by: Stu Kennedy <stu@stukennedy.com>
2026-01-29 13:44:24 -07:00
Christian Tanul
d99095eb3c
Fix iOS Safari SSE disconnect on background (#3634) (#3640)
* Close SSE stream on visibility change to fix iOS Safari background disconnect (#3634)

iOS Safari silently kills TCP connections when the app is backgrounded,
leaving SSE streams dead with no error event. The new `closeOnHide`
config option proactively cancels the stream reader when the page
becomes hidden and reconnects when visible again (requires
`reconnect: true`).

Also renames `pauseInBackground` to `closeOnHide` across source, docs,
types, and tests to reflect the new disconnect/reconnect behavior
(previously it only paused processing).

* Improve SSE closeOnHide with reconnectRequested flag and cancellable backoff

- Create reader outside __parseSSE and pass as argument
- Add reconnectRequested flag so visibility reconnects skip backoff delay
- Symmetric visibility handler: cancel on hidden, reconnect on visible
- Cancellable backoff delay via delayCanceller so tab return is instant
2026-01-29 13:15:13 -07:00
MichaelWest22
7759d402f8
Update ws extension to use htmx.swap (#3638)
Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2026-01-29 13:14:51 -07:00
Christian Tanul
18a05bc70b
Fix morph error with empty id attributes (#3639)
skip empty id attributes in morph persistent ID matching
2026-01-30 01:44:54 +13:00
Stu Kennedy
77cece0a1e
Add tests for WebSocket script tag processing (#3637) 2026-01-27 14:39:44 -07:00
Stu Kennedy
f1cffd13ba
Add script tag processing in swapWithHtmx function (#3636)
This update introduces a new function, processScriptTags, which ensures that script tags within the content are properly executed after being swapped. The function replaces old script elements with new ones, preserving their attributes and content. This enhancement improves the handling of dynamic content in the htmx framework.
2026-01-27 13:03:58 -07:00
Carson Gross
18f936d811 trigger htmx:before:request and htmx:after:request on target element, added events.js for testing events
fixes https://github.com/bigskysoftware/htmx/issues/3628
2026-01-20 14:25:54 -07:00
Anton Lorani
54bf849fc9
Trims only the first leading space in a SSE field value (#3588) (#3589) 2026-01-20 14:06:19 -07:00
Carson Gross
d3faddb0e0 update web types to match 4.x 2026-01-20 13:43:44 -07:00
Carson Gross
ba7816be31 update web types to match 4.x
fixes https://github.com/bigskysoftware/htmx/issues/3605
2026-01-20 13:38:08 -07:00
Carson Gross
787cde73f8 clean up 2026-01-20 12:42:12 -07:00
Carson Gross
329f22ddb7 Merge remote-tracking branch 'origin/four' into four 2026-01-20 12:40:53 -07:00
Carson Gross
31d46077b1 add header changes to upgrade doc 2026-01-20 12:40:46 -07:00
MichaelWest22
720fe71ecd
fix document fragment parsing of full page responses for live script support (#3629)
Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2026-01-19 17:48:16 -07:00
Carson Gross
43d56b8cdf update changelog v4.0.0-alpha6 2025-12-31 14:03:00 -07:00
Carson Gross
2a7e8e754d lol it's the alpha-6 release 2025-12-31 14:02:19 -07:00
Carson Gross
21fbcab37d changelog for alpha-5 release rm 2025-12-31 13:52:54 -07:00
Carson Gross
bcbd9944da update sha 2025-12-31 13:43:31 -07:00
Carson Gross
ef6195dd5f build for next release 2025-12-31 13:13:46 -07:00
Carson Gross
36f5b3146b build for next release 2025-12-31 13:06:32 -07:00
Carson Gross
cf35ea5e07 only use href for cross-domain requests 2025-12-31 13:01:49 -07:00
Carson Gross
98130683cb Merge remote-tracking branch 'origin/four' into four 2025-12-31 12:47:17 -07:00
MichaelWest22
7dbb8acfa6
Upsert swap extension (#3595)
* add upsert swap extension

* improve upsert

* simplify upsert to not use morph

* add doco

* Add hx-upsert tag support as well

---------

Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2025-12-31 12:47:08 -07:00
Carson Gross
4606fdc4ae fix cross domain request support 2025-12-31 12:33:56 -07:00
MichaelWest22
77e5c4724b
Handle newContent properly in insertContent (#3607)
* handle newContent processing in other swap styles

* Handle outerMorph newContent processing by adding target to newContent so it will be processed as well. also simplified textContent swaps

---------

Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2025-12-30 07:54:52 -07:00
MichaelWest22
095db015a4
Push response url (#3608)
* handle response url from redirects in push Url true

* add test

---------

Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2025-12-30 07:53:58 -07:00
MichaelWest22
9bab1d6704
handle no id found with hx-preserve (#3610)
Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2025-12-30 07:53:03 -07:00
Carson Gross
3e47d556c0 invert boolean to make things clearer 2025-12-29 08:28:22 -07:00
Carson Gross
b7fb573d01 docs cleanup 2025-12-29 08:28:06 -07:00
Carson Gross
f1db10f0eb trigger event on target 2025-12-24 14:25:22 -07:00
Carson Gross
50fbb1f91d update docs 2025-12-24 14:05:53 -07:00
Carson Gross
017934f816 parameterize settle time & don't do CSS transition work in case of transitions 2025-12-24 13:49:57 -07:00
Carson Gross
777ec267e7 remove unused param 2025-12-24 13:42:00 -07:00
Carson Gross
0dea4bc308 Merge branch 'four' into feature/settle-restoration
# Conflicts:
#	src/htmx.js
2025-12-24 13:40:25 -07:00
MichaelWest22
55227c058c
Improve moprh exact node matching with scan ahead (#3591)
* Improve moprh exact node matching with scan ahead

* better inline comments documentation

---------

Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2025-12-19 11:43:24 -07:00
Stu Kennedy
37cf0e8c6c
WebSocket Extension (hx-ws) Improvements (#3592)
* refactor: Enhance WebSocket extension with URL normalization, improved request management, and refined message handling for better reliability and clarity.

feat: Add manual WebSocket server script and enhance WebSocket documentation with detailed message formats and connection management improvements.

feat: Include event type in WebSocket messages and update documentation for message format

* refactor: Update WebSocket extension to connect immediately by default, enhance documentation on connection triggers, and improve message handling examples.

* feat: Introduce URL validation for WebSocket send attributes to ensure proper connection handling and prevent non-URL markers from being processed.
2025-12-19 11:42:36 -07:00
MichaelWest22
56e6810284
add textContent swap style (#3593)
Co-authored-by: MichaelWest22 <michael.west@docuvera.com>
2025-12-19 11:39:09 -07:00
Carson Gross
2f816af101 move swap delay and settle delay inside of __insertContent (makes more sense to me here) 2025-12-18 11:18:41 -07:00
Carson Gross
7fea06f00d remove bad images 2025-12-15 17:26:00 -07:00
Carson Gross
08f6b0e431 remove demo 2025-12-15 17:22:50 -07:00
Carson Gross
1a4268dab4 docs cleanup 2025-12-15 14:52:50 -07:00
Carson Gross
c603dc9543 Merge remote-tracking branch 'origin/four' into four 2025-12-15 14:42:07 -07:00
Carson Gross
5dffcd4bc2 fix docs 2025-12-15 14:41:52 -07:00