This release like the last is focusing on small quality of life improvements and adjustments that will help us move towards 2.0. So while not the most exciting release to everyone it provides some really important features and fixes to some developers.
And unlike many previous releases the vast majority of the work and features came from PRs from the community. So really all I can say is Looks Good to Me!
Better JSX Validation
While still incomplete across templates we've added JSDOM to the compiler to better detect invalid HTML at build time by comparing what we expect the template to be with what a browser would output. This now includes things that are nested we didn't detect before like putting <a> inside other <a> tags which will lead to the browser "correcting" it in less than intuitive ways.
Improved Exports
While each environment in solid-js/web has its own methods to be used in the compiler. We are now exporting the client methods from the server to prevent weird import errors. Now these methods will throw if used in this environment but shouldn't break your build.
Additionally we have seen some issues in bundlers that incorrectly feed our ESM exports back through the browser field. While this is a known issue they all pointed issues at each other and with no intention of fixing it. We have removed the browser field in this release, meaning some legacy packages may have issues resolving browser if they don't support export conditions.
This is regretful but this blocked deployments on several platforms and since this was the only fix at our disposal after two years of attempting to push this issue to the bundlers to no avail, we've moved forward with it.
Custom Element improvements
We have a few improvements to our custom element support in this release. First off we now detect elements with the is attribute as custom elements which means all the special behavior is afforded to them.
We've also improved our event handler delegating retargetting to better handle shadow DOM events. There were cases where we skipped over part of the tree.
Finally we've added the bool: attribute namespace to handle explicitly setting certain attributes according to boolean attribute rules. While this isn't necessary for built-in booleans currently we handle most attributes as properties and we lacked a specific override. But now we have it:
We(thanks @titoBouzout) realized we can use this mechanism as a way to set advanced rules like passive or capture on this object as way to handle all current and future event attributes that browsers might add. This way we don't need specific mechanisms like oncapture: (which is now deprecated).
Instead using on: you can set the event properties you wish.
<>
<div on:click={{
handleEvent(e) {
console.log("clicked", e)
},
once:true
}/>
<div on:wheel={{
handleEvent(e) {
e.preventDefault() // only works on not passive events
e.stopPropagation()
</tr></table>
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the dependencies group with 5 updates in the / directory:
0.12.5
0.14.7
11.9.0
11.10.0
1.8.15
1.9.1
5.1.5
5.4.8
2.10.1
2.10.2
Updates
@solidjs/router
from 0.12.5 to 0.14.7Changelog
Sourced from
@solidjs/router
's changelog.... (truncated)
Commits
Updates
highlight.js
from 11.9.0 to 11.10.0Changelog
Sourced from highlight.js's changelog.
... (truncated)
Commits
366a8bd
(maintainer) bump version 11.9.0 => 11.10.0b1fd7cd
(maint) build against node 22221b049
(maint) bump npm dependenciese2e11f7
Add JSONata as supported language (#4069)f41067d
improve monokai theme for attr & number (#4067)b9ae5fe
addtext-decoration-skip-ink
,text-decoration-thickness
and `text-underli...888ac75
Add Mirth to SUPPORTED_LANGUAGES.md (#4061)32f6d13
(chore) Remove unused submodule (#4047)4bbf361
enh(typescript) addsatisfies
keyword (#4058)5237004
enh(c): Added typeof and typeof_qual to the list of keywords (#4055)Updates
solid-js
from 1.8.15 to 1.9.1Release notes
Sourced from solid-js's releases.
... (truncated)
Commits
Updates
vite
from 5.1.5 to 5.4.8Release notes
Sourced from vite's releases.
Changelog
Sourced from vite's changelog.
... (truncated)
Commits
0474550
release: v5.4.88464d97
fix(css): backport #18128, ensure sass compiler initialized only once (#18184)7d47fc1
fix(css): backport #18113, fix missing source file warning with sass modern a...a403e73
release: v5.4.7b5908a2
fix: treat config file as ESM in Deno (#18158)f969176
release: v5.4.6179b177
fix: avoid DOM Clobbering gadget ingetRelativeUrlFromDocument
(#18115)6820bb3
fix: fs raw query (#18112)37881e7
release: v5.4.5faa2405
fix(preload): backport #18098, throw error preloading module as well (#18099)Updates
vite-plugin-solid
from 2.10.1 to 2.10.2Changelog
Sourced from vite-plugin-solid's changelog.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show