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.
The problem
I'm not totally satisfied with using
x-focus
for focus management, it falls short in some cases:autofocus
: Alpine AJAX should respect this attribute since it's already browser-native.It's worth noting that Alpine has a first party Focus plugin, it would be nice to have better support for those utilities.
x-autofocus
to the rescueThis PR introduces a new
x-autofocus
attribute and deprecatesx-focus
. After an AJAX request is issued and content is merged on the page, the first element with the attributex-autofocus
, will be automatically focused. The same is true for the browser-standardautofocus
attribute. The only difference betweenx-autofocus
andautofocus
is thatx-autofocus
does not trigger focus on initial page loads, only when AJAX content loads.If multiple elements are targeted in an AJAX request each target is checked for an
x-autofocus
attribute in the order specified byx-target
, so the first target containing anx-autofocus
will receive focus.Fixes #52