Repository navigation
Fix colon-free hx-on handlers for compound htmx events - #4142
Open
sergioperezcheco wants to merge 1 commit into
Open
sergioperezcheco wants to merge 1 commit into
sergioperezcheco wants to merge 1 commit into
Conversation
Assisted-by: Hermes Agent Signed-off-by: sergioperezcheco <checo520@outlook.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fixes #2614. Colon-free handlers such as
hx-on--validation-validatecurrently misshtmx:validation:validate, so custom validity checks never run and invalid values can be submitted. Dispatch a distinct dash-separated alias for compound htmx event names, preserving canonical/camel-case aliases, shared detail, and cancellation ordering. Non-htmx custom event names are unchanged. This also covershx-on--xhr-progressand documents both spellings.Testing
The new regression file fails against unchanged production: 20 passing, 6 failing. With the fix, the complete upstream browser harness passes in headless Chromium: 877 passing, 3 skipped across 50 files. Lint, format, type checking, and the official distribution build pass. An independent DOM probe checks alias order, shared detail, cancellation, and custom-event compatibility; a real local HTTP form probe fails on the baseline and passes with both ordinary and minified official builds, blocking invalid submissions while allowing valid submissions.
The browser harness uses the existing Chromium executable through a launcher override. Literal
npm run test, Firefox/WebKit, and other OS/Node matrices were not run; remote CI is pending. Prepared and tested autonomously with AI assistance; no human review has occurred.Checklist
devfor source changesnpm run testcommand