|
1 | 1 | # svelte
|
2 | 2 |
|
| 3 | +## 4.0.0 |
| 4 | + |
| 5 | +### Major Changes |
| 6 | + |
| 7 | +- breaking: Minimum supported Node version is now Node 16 ([#8566](https://github.com/sveltejs/svelte/pull/8566)) |
| 8 | + |
| 9 | +- breaking: Minimum supported webpack version is now webpack 5 ([#8515](https://github.com/sveltejs/svelte/pull/8515)) |
| 10 | + |
| 11 | +- breaking: Bundlers must specify the `browser` condition when building a frontend bundle for the browser ([#8516](https://github.com/sveltejs/svelte/pull/8516)) |
| 12 | + |
| 13 | +- breaking: Minimum supported vite-plugin-svelte version is now 2.4.1. SvelteKit users can upgrade to 1.20.0 or newer to ensure a compatible version ([#8516] |
| 14 | +(https://github.com/sveltejs/svelte/pull/8516)) |
| 15 | + |
| 16 | +- breaking: Minimum supported `rollup-plugin-svelte` version is now 7.1.5 ([198dbcf](https://github.com/sveltejs/svelte/commit/198dbcf)) |
| 17 | + |
| 18 | +- breaking: Minimum supported `svelte-loader` is now 3.1.8 ([198dbcf](https://github.com/sveltejs/svelte/commit/198dbcf)) |
| 19 | + |
| 20 | +- breaking: Minimum supported TypeScript version is now TypeScript 5 (it will likely work with lower versions, but we make no guarantees about that) ([#8488] |
| 21 | +(https://github.com/sveltejs/svelte/pull/8488)) |
| 22 | + |
| 23 | +- breaking: Remove `svelte/register` hook, CJS runtime version and CJS compiler output ([#8613](https://github.com/sveltejs/svelte/pull/8613)) |
| 24 | + |
| 25 | +- breaking: Stricter types for `createEventDispatcher` (see PR for migration instructions) ([#7224](https://github.com/sveltejs/svelte/pull/7224)) |
| 26 | + |
| 27 | +- breaking: Stricter types for `Action` and `ActionReturn` (see PR for migration instructions) ([#7442](https://github.com/sveltejs/svelte/pull/7442)) |
| 28 | + |
| 29 | +- breaking: Stricter types for `onMount` - now throws a type error when returning a function asynchronously to catch potential mistakes around callback functions |
| 30 | +(see PR for migration instructions) ([#8136](https://github.com/sveltejs/svelte/pull/8136)) |
| 31 | + |
| 32 | +- breaking: Overhaul and drastically improve creating custom elements with Svelte (see PR for list of changes and migration instructions) ([#8457](https://github. |
| 33 | +com/sveltejs/svelte/pull/8457)) |
| 34 | + |
| 35 | +- breaking: Deprecate `SvelteComponentTyped` in favor of `SvelteComponent` ([#8512](https://github.com/sveltejs/svelte/pull/8512)) |
| 36 | + |
| 37 | +- breaking: Make transitions local by default to prevent confusion around page navigations ([#6686](https://github.com/sveltejs/svelte/issues/6686)) |
| 38 | + |
| 39 | +- breaking: Error on falsy values instead of stores passed to `derived` ([#7947](https://github.com/sveltejs/svelte/pull/7947)) |
| 40 | + |
| 41 | +- breaking: Custom store implementers now need to pass an `update` function additionally to the `set` function ([#6750](https://github.com/sveltejs/svelte/pull/ |
| 42 | +6750)) |
| 43 | + |
| 44 | +- breaking: Do not expose default slot bindings to named slots and vice versa ([#6049](https://github.com/sveltejs/svelte/pull/6049)) |
| 45 | + |
| 46 | +- breaking: Change order in which preprocessors are applied ([#8618](https://github.com/sveltejs/svelte/pull/8618)) |
| 47 | + |
| 48 | +- breaking: The runtime now makes use of `classList.toggle(name, boolean)` which does not work in very old browsers ([#8629](https://github.com/sveltejs/svelte/ |
| 49 | +pull/8629)) |
| 50 | + |
| 51 | +- breaking: apply `inert` to outroing elements ([#8627](https://github.com/sveltejs/svelte/pull/8627)) |
| 52 | + |
| 53 | +- breaking: use `CustomEvent` constructor instead of deprecated `createEvent` method ([#8775](https://github.com/sveltejs/svelte/pull/8775)) |
| 54 | + |
| 55 | +### Minor Changes |
| 56 | + |
| 57 | + |
| 58 | +- Add a way to modify attributes for script/style preprocessors ([#8618](https://github.com/sveltejs/svelte/pull/8618)) |
| 59 | + |
| 60 | +- Improve hydration speed by adding `data-svelte-h` attribute to detect unchanged HTML elements ([#7426](https://github.com/sveltejs/svelte/pull/7426)) |
| 61 | + |
| 62 | +- Add `a11y no-noninteractive-element-interactions` rule ([#8391](https://github.com/sveltejs/svelte/pull/8391)) |
| 63 | + |
| 64 | +- Add `a11y-no-static-element-interactions`rule ([#8251](https://github.com/sveltejs/svelte/pull/8251)) |
| 65 | + |
| 66 | +- Allow `#each` to iterate over iterables like `Set`, `Map` etc ([#7425](https://github.com/sveltejs/svelte/issues/7425)) |
| 67 | + |
| 68 | +- Improve duplicate key error for keyed `each` blocks ([#8411](https://github.com/sveltejs/svelte/pull/8411)) |
| 69 | + |
| 70 | +- Warn about `:` in attributes and props to prevent ambiguity with Svelte directives ([#6823](https://github.com/sveltejs/svelte/issues/6823)) |
| 71 | + |
| 72 | +- feat: add version info to `window`. You can opt out by setting `discloseVersion` to `false` in the compiler options ([#8761](https://github.com/sveltejs/svelte/pull/8761)) |
| 73 | + |
| 74 | +- feat: smaller minified output for destructor chunks ([#8763](https://github.com/sveltejs/svelte/pull/8763)) |
| 75 | + |
| 76 | +### Patch Changes |
| 77 | + |
| 78 | + |
| 79 | +- Bind `null` option and input values consistently ([#8312](https://github.com/sveltejs/svelte/issues/8312)) |
| 80 | + |
| 81 | +- Allow `$store` to be used with changing values including nullish values ([#7555](https://github.com/sveltejs/svelte/issues/7555)) |
| 82 | + |
| 83 | +- Initialize stylesheet with `/* empty */` to enable setting CSP directive that also works in Safari ([#7800](https://github.com/sveltejs/svelte/pull/7800)) |
| 84 | + |
| 85 | +- Treat slots as if they don't exist when using CSS adjacent and general sibling combinators ([#8284](https://github.com/sveltejs/svelte/issues/8284)) |
| 86 | + |
| 87 | +- Fix transitions so that they don't require a `style-src 'unsafe-inline'` Content Security Policy (CSP) ([#6662](https://github.com/sveltejs/svelte/issues/6662)). |
| 88 | + |
| 89 | +- Explicitly disallow `var` declarations extending the reactive statement scope ([#6800](https://github.com/sveltejs/svelte/pull/6800)) |
| 90 | + |
| 91 | +- Improve error message when trying to use `animate:` directives on inline components ([#8641](https://github.com/sveltejs/svelte/issues/8641)) |
| 92 | + |
| 93 | +- fix: export ComponentType from `svelte` entrypoint ([#8578](https://github.com/sveltejs/svelte/pull/8578)) |
| 94 | + |
| 95 | +- fix: never use html optimization for mustache tags in hydration mode ([#8744](https://github.com/sveltejs/svelte/pull/8744)) |
| 96 | + |
| 97 | +- fix: derived store types ([#8578](https://github.com/sveltejs/svelte/pull/8578)) |
| 98 | + |
| 99 | +- Generate type declarations with dts-buddy ([#8578](https://github.com/sveltejs/svelte/pull/8578)) |
| 100 | + |
| 101 | +- fix: ensure types are loaded with all TS settings ([#8721](https://github.com/sveltejs/svelte/pull/8721)) |
| 102 | + |
| 103 | +- fix: account for preprocessor source maps when calculating meta info ([#8778](https://github.com/sveltejs/svelte/pull/8778)) |
| 104 | + |
| 105 | +- chore: deindent cjs output for compiler ([#8785](https://github.com/sveltejs/svelte/pull/8785)) |
| 106 | + |
| 107 | +- warn on boolean compilerOptions.css ([#8710](https://github.com/sveltejs/svelte/pull/8710)) |
| 108 | + |
| 109 | +- fix: export correct SvelteComponent type ([#8721](https://github.com/sveltejs/svelte/pull/8721)) |
| 110 | + |
3 | 111 | ## 4.0.0-next.3
|
4 | 112 |
|
5 | 113 | ### Patch Changes
|
|
0 commit comments