|
1 | 1 | # Svelte changelog
|
2 | 2 |
|
| 3 | +## 3.56.0 |
| 4 | + |
| 5 | +* Add `|stopImmediatePropagation` event modifier ([#5085](https://github.com/sveltejs/svelte/issues/5085)) |
| 6 | +* Add `axis` parameter to `slide` transition ([#6182](https://github.com/sveltejs/svelte/issues/6182)) |
| 7 | +* Add `readonly` utility to convert `writable` store to readonly ([#6518](https://github.com/sveltejs/svelte/pull/6518)) |
| 8 | +* Add `readyState` binding for media elements ([#6666](https://github.com/sveltejs/svelte/issues/6666)) |
| 9 | +* Generate valid automatic component names when the filename contains only special characters ([#7143](https://github.com/sveltejs/svelte/issues/7143)) |
| 10 | +* Add `naturalWidth` and `naturalHeight` bindings ([#7771](https://github.com/sveltejs/svelte/issues/7771)) |
| 11 | +* Support `<!-- svelte-ignore ... -->` on components ([#8082](https://github.com/sveltejs/svelte/issues/8082)) |
| 12 | +* Add a11y warnings: |
| 13 | + * `aria-activedescendant-has-tabindex`: checks that elements with `aria-activedescendant` have a `tabindex` ([#8172](https://github.com/sveltejs/svelte/pull/8172)) |
| 14 | + * `role-supports-aria-props`: checks that the (implicit) element role supports the given aria attributes ([#8195](https://github.com/sveltejs/svelte/pull/8195)) |
| 15 | +* Add `data-sveltekit-replacestate` and `data-sveltekit-keepfocus` attribute typings ([#8281](https://github.com/sveltejs/svelte/issues/8281)) |
| 16 | +* Compute node dimensions immediately before crossfading ([#4111](https://github.com/sveltejs/svelte/issues/4111)) |
| 17 | +* Fix potential infinite invalidate loop with `<svelte:component>` ([#4129](https://github.com/sveltejs/svelte/issues/4129)) |
| 18 | +* Ensure `bind:offsetHeight` updates initially ([#4233](https://github.com/sveltejs/svelte/issues/4233)) |
| 19 | +* Don't set selected options if value is unbound or not passed ([#5644](https://github.com/sveltejs/svelte/issues/5644)) |
| 20 | +* Validate component `:global()` selectors ([#6272](https://github.com/sveltejs/svelte/issues/6272)) |
| 21 | +* Improve warnings: |
| 22 | + * Make `noreferrer` warning less zealous ([#6289](https://github.com/sveltejs/svelte/issues/6289)) |
| 23 | + * Omit a11y warnings on `<video aria-hidden="true">` ([#7874](https://github.com/sveltejs/svelte/issues/7874)) |
| 24 | + * Omit a11y warnings on `<svelte:element>` ([#7939](https://github.com/sveltejs/svelte/issues/7939)) |
| 25 | + * Detect unused empty attribute CSS selectors ([#8042](https://github.com/sveltejs/svelte/issues/8042)) |
| 26 | + * Omit "no child content" warning on elements with `aria-label` ([#8296](https://github.com/sveltejs/svelte/issues/8296)) |
| 27 | +* Check value equality for `<input type="search">` and `<input type="url">` ([#7027](https://github.com/sveltejs/svelte/issues/7027)) |
| 28 | +* Do not select a disabled `<option>` by default when the initial bound value is undefined ([#7041](https://github.com/sveltejs/svelte/issues/7041)) |
| 29 | +* Handle `{@html}` tags inside `<template>` tags ([#7364](https://github.com/sveltejs/svelte/pull/7364)) |
| 30 | +* Ensure `afterUpdate` is not called after `onDestroy` ([#7476](https://github.com/sveltejs/svelte/issues/7476)) |
| 31 | +* Improve handling of `inert` attribute ([#7500](https://github.com/sveltejs/svelte/issues/7500)) |
| 32 | +* Reduce use of template literals in SSR output for better performance ([#7539](https://github.com/sveltejs/svelte/pull/7539)) |
| 33 | +* Ensure `<input>` value persists when swapping elements with spread attributes in an `{#each}` block ([#7578](https://github.com/sveltejs/svelte/issues/7578)) |
| 34 | +* Simplify generated code for reactive statements if dependencies are all static ([#7942](https://github.com/sveltejs/svelte/pull/7942)) |
| 35 | +* Fix race condition on `<svelte:element>` with transitions ([#7948](https://github.com/sveltejs/svelte/issues/7948)) |
| 36 | +* Allow assigning to a property of a `const` when destructuring ([#7964](https://github.com/sveltejs/svelte/issues/7964)) |
| 37 | +* Match browser behavior for decoding malformed HTML entities ([#8026](https://github.com/sveltejs/svelte/issues/8026)) |
| 38 | +* Ensure `trusted-types` CSP compatibility for Web Components ([#8134](https://github.com/sveltejs/svelte/issues/8134)) |
| 39 | +* Optimise `<svelte:element>` output code for static tag and static attribute ([#8161](https://github.com/sveltejs/svelte/pull/8161)) |
| 40 | +* Don't throw when calling unsubscribing from a store twice ([#8186](https://github.com/sveltejs/svelte/pull/8186)) |
| 41 | +* Clear inputs when `bind:group` value is set to `undefined` ([#8214](https://github.com/sveltejs/svelte/issues/8214)) |
| 42 | +* Fix handling of nested arrays with keyed `{#each}` containing a non-keyed `{#each}` ([#8282](https://github.com/sveltejs/svelte/issues/8282)) |
| 43 | + |
| 44 | +## 3.55.1 |
| 45 | + |
| 46 | +* Fix `draw` transition with delay showing a dot at the beginning of the path ([#6816](https://github.com/sveltejs/svelte/issues/6816)) |
| 47 | +* Fix infinity runtime call stack when propagating bindings ([#7032](https://github.com/sveltejs/svelte/issues/7032)) |
| 48 | +* Fix static `<svelte:element>` optimization in production mode ([#7937](https://github.com/sveltejs/svelte/issues/7937)) |
| 49 | +* Fix `svelte-ignore` comment breaking named slot ([#8075](https://github.com/sveltejs/svelte/issues/8075)) |
| 50 | +* Revert change to prevent running init binding unnecessarily ([#8103](https://github.com/sveltejs/svelte/issues/8103)) |
| 51 | +* Fix adding duplicate event listeners with `<svelte:element on:event>` ([#8129](https://github.com/sveltejs/svelte/issues/8129)) |
| 52 | +* Improve detection of promises that are also functions ([#8162](https://github.com/sveltejs/svelte/pull/8162)) |
| 53 | +* Avoid mutating spread component props during SSR ([#8171](https://github.com/sveltejs/svelte/issues/8171)) |
| 54 | +* Add missing typing for global `part` attribute ([#8181](https://github.com/sveltejs/svelte/issues/8181)) |
| 55 | +* Add missing `submitter` property to `on:submit` event type |
| 56 | + |
| 57 | +## 3.55.0 |
| 58 | + |
| 59 | +* Add `svelte/elements` for HTML/Svelte typings ([#7649](https://github.com/sveltejs/svelte/pull/7649)) |
| 60 | + |
| 61 | +## 3.54.0 |
| 62 | + |
| 63 | +* Pass `options.direction` argument to custom transition functions ([#3918](https://github.com/sveltejs/svelte/issues/3918)) |
| 64 | +* Support fallback a11y WAI-ARIA roles ([#8044](https://github.com/sveltejs/svelte/issues/8044)) |
| 65 | +* Prevent running init binding unnecessarily ([#5689](https://github.com/sveltejs/svelte/issues/5689), [#6298](https://github.com/sveltejs/svelte/issues/6298)) |
| 66 | +* Allow updating variables from `@const` declared function ([#7843](https://github.com/sveltejs/svelte/issues/7843)) |
| 67 | +* Do not emit `a11y-no-noninteractive-tabindex` warning if element has a `tabpanel` ([#8025](https://github.com/sveltejs/svelte/pull/8025)) |
| 68 | +* Fix escaping SSR'd values in `style:` directive ([#8085](https://github.com/sveltejs/svelte/issues/8085)) |
| 69 | + |
| 70 | +## 3.53.1 |
| 71 | + |
| 72 | +* Fix exception in `rel=` attribute check with dynamic values ([#7994](https://github.com/sveltejs/svelte/issues/7994)) |
| 73 | +* Do not emit deprecation warnings for `css` compiler options for now ([#8009](https://github.com/sveltejs/svelte/issues/8009)) |
| 74 | +* Make compiler run in browser again ([#8010](https://github.com/sveltejs/svelte/issues/8010)) |
| 75 | +* Upgrade `tslib` ([#8013](https://github.com/sveltejs/svelte/issues/8013)) |
| 76 | + |
| 77 | +## 3.53.0 |
| 78 | + |
| 79 | +* Check whether `parentNode` exists before removing child ([#6037](https://github.com/sveltejs/svelte/issues/6037)) |
| 80 | +* Upgrade various dependencies, notably `css-tree` to `2.2.1` ([#7572](https://github.com/sveltejs/svelte/pull/7572), [#7982](https://github.com/sveltejs/svelte/pull/7982)) |
| 81 | +* Extend `css` compiler option with `'external' | 'injected' | 'none'` settings and deprecate old `true | false` values ([#7914](https://github.com/sveltejs/svelte/pull/7914)) |
| 82 | + |
| 83 | +## 3.52.0 |
| 84 | + |
| 85 | +* Throw compile-time error when attempting to update `const` variable ([#4895](https://github.com/sveltejs/svelte/issues/4895)) |
| 86 | +* Warn when using `<a target="_blank">` without `rel="noreferrer"` ([#6188](https://github.com/sveltejs/svelte/issues/6188)) |
| 87 | +* Support `style:foo|important` modifier ([#7365](https://github.com/sveltejs/svelte/issues/7365)) |
| 88 | +* Fix hydration regression with `{@html}` and components in `<svelte:head>` ([#7941](https://github.com/sveltejs/svelte/pull/7941)) |
| 89 | + |
| 90 | +## 3.51.0 |
| 91 | + |
| 92 | +* Add a11y warnings: |
| 93 | + * `a11y-click-events-have-key-events`: check if click event is accompanied by key events ([#5073](https://github.com/sveltejs/svelte/pull/5073)) |
| 94 | + * `a11y-no-noninteractive-tabindex`: check for tabindex on non-interactive elements ([#6693](https://github.com/sveltejs/svelte/pull/6693)) |
| 95 | +* Warn when two-way binding to `{...rest}` object in `{#each}` block ([#6860](https://github.com/sveltejs/svelte/issues/6860)) |
| 96 | +* Support `--style-props` on `<svelte:component>` ([#7461](https://github.com/sveltejs/svelte/issues/7461)) |
| 97 | +* Supports nullish values for component event handlers ([#7568](https://github.com/sveltejs/svelte/issues/7568)) |
| 98 | +* Supports SVG elements with `<svelte:element>`([#7613](https://github.com/sveltejs/svelte/issues/7613)) |
| 99 | +* Treat `inert` as boolean attribute ([#7785](https://github.com/sveltejs/svelte/pull/7785)) |
| 100 | +* Support `--style-props` for SVG components ([#7808](https://github.com/sveltejs/svelte/issues/7808)) |
| 101 | +* Fix false positive dev warnings about unset props when they are bound ([#4457](https://github.com/sveltejs/svelte/issues/4457)) |
| 102 | +* Fix hydration with `{@html}` and components in `<svelte:head>` ([#4533](https://github.com/sveltejs/svelte/issues/4533), [#6463](https://github.com/sveltejs/svelte/issues/6463), [#7444](https://github.com/sveltejs/svelte/issues/7444)) |
| 103 | +* Support scoped style for `<svelte:element>` ([#7443](https://github.com/sveltejs/svelte/issues/7443)) |
| 104 | +* Improve error message for invalid value for `<svelte:component this={...}>` ([#7550](https://github.com/sveltejs/svelte/issues/7550)) |
| 105 | +* Improve error message when using logic blocks or tags at invalid location ([#7552](https://github.com/sveltejs/svelte/issues/7552)) |
| 106 | +* Warn instead of throwing error if `<svelte:element>` is a void tag ([#7566](https://github.com/sveltejs/svelte/issues/7566)) |
| 107 | +* Supports custom elements in `<svelte:element>` ([#7733](https://github.com/sveltejs/svelte/issues/7733)) |
| 108 | +* Fix calling component unmount if a component is mounted and then immediately unmounted ([#7817](https://github.com/sveltejs/svelte/issues/7817)) |
| 109 | +* Do not generate `a11y-role-has-required-aria-props` warning when elements match their semantic role ([#7837](https://github.com/sveltejs/svelte/issues/7837)) |
| 110 | +* Improve performance of custom element data setting in `<svelte:element>` ([#7869](https://github.com/sveltejs/svelte/pull/7869)) |
| 111 | + |
| 112 | +## 3.50.1 |
| 113 | + |
| 114 | +* Add all global objects and functions as known globals ([#3805](https://github.com/sveltejs/svelte/issues/3805), [#7223](https://github.com/sveltejs/svelte/issues/7223)) |
| 115 | +* Fix regression with style manager ([#7828](https://github.com/sveltejs/svelte/issues/7828)) |
| 116 | + |
| 117 | +## 3.50.0 |
| 118 | + |
| 119 | +* Add a11y warnings: |
| 120 | + * `a11y-incorrect-aria-attribute-type`: check ARIA state and property values ([#6978](https://github.com/sveltejs/svelte/pull/6978)) |
| 121 | + * `a11y-no-abstract-role`: check that ARIA roles are non-abstract ([#6241](https://github.com/sveltejs/svelte/pull/6241)) |
| 122 | + * `a11y-no-interactive-element-to-noninteractive-role`: check for non-interactive roles used on interactive elements ([#5955](https://github.com/sveltejs/svelte/pull/5955)) |
| 123 | + * `a11y-role-has-required-aria-props`: check that elements with `role` attribute have all required attributes for that role ([#5852](https://github.com/sveltejs/svelte/pull/5852)) |
| 124 | +* Add `ComponentEvents` convenience type ([#7702](https://github.com/sveltejs/svelte/pull/7702)) |
| 125 | +* Add `SveltePreprocessor` utility type ([#7742](https://github.com/sveltejs/svelte/pull/7742)) |
| 126 | +* Enhance action typings ([#7805](https://github.com/sveltejs/svelte/pull/7805)) |
| 127 | +* Remove empty stylesheets created from transitions ([#4801](https://github.com/sveltejs/svelte/issues/4801), [#7164](https://github.com/sveltejs/svelte/issues/7164)) |
| 128 | +* Make `a11y-label-has-associated-control` warning check all descendants for input control ([#5528](https://github.com/sveltejs/svelte/issues/5528)) |
| 129 | +* Only show lowercase component name warnings for non-HTML/SVG elements ([#5712](https://github.com/sveltejs/svelte/issues/5712)) |
| 130 | +* Disallow invalid CSS selectors starting with a combinator ([#7643](https://github.com/sveltejs/svelte/issues/7643)) |
| 131 | +* Use `Node.parentNode` instead of `Node.parentElement` for legacy browser support ([#7723](https://github.com/sveltejs/svelte/issues/7723)) |
| 132 | +* Handle arrow function on `<slot>` inside `<svelte:fragment>` ([#7485](https://github.com/sveltejs/svelte/issues/7485)) |
| 133 | +* Improve parsing speed when encountering large blocks of whitespace ([#7675](https://github.com/sveltejs/svelte/issues/7675)) |
| 134 | +* Fix `class:` directive updates in aborted/restarted transitions ([#7764](https://github.com/sveltejs/svelte/issues/7764)) |
| 135 | + |
| 136 | +## 3.49.0 |
| 137 | + |
| 138 | +* Improve performance of string escaping during SSR ([#5701](https://github.com/sveltejs/svelte/pull/5701)) |
| 139 | +* Add `ComponentType` and `ComponentProps` convenience types ([#6770](https://github.com/sveltejs/svelte/pull/6770)) |
| 140 | +* Add support for CSS `@layer` ([#7504](https://github.com/sveltejs/svelte/issues/7504)) |
| 141 | +* Export `CompileOptions` from `svelte/compiler` ([#7658](https://github.com/sveltejs/svelte/pull/7658)) |
| 142 | +* Fix DOM-less components not being properly destroyed ([#7488](https://github.com/sveltejs/svelte/issues/7488)) |
| 143 | +* Fix `class:` directive updates with `<svelte:element>` ([#7521](https://github.com/sveltejs/svelte/issues/7521), [#7571](https://github.com/sveltejs/svelte/issues/7571)) |
| 144 | +* Harden attribute escaping during SSR ([#7530](https://github.com/sveltejs/svelte/pull/7530)) |
| 145 | + |
3 | 146 | ## 3.48.0
|
4 | 147 |
|
5 | 148 | * Allow creating cancelable custom events with `createEventDispatcher` ([#4623](https://github.com/sveltejs/svelte/issues/4623))
|
@@ -936,7 +1079,7 @@ Also:
|
936 | 1079 |
|
937 | 1080 | ## 3.5.1
|
938 | 1081 |
|
939 |
| -* Accommodate webpack idiosyncracies |
| 1082 | +* Accommodate webpack idiosyncrasies |
940 | 1083 |
|
941 | 1084 | ## 3.5.0
|
942 | 1085 |
|
@@ -1138,7 +1281,7 @@ Also:
|
1138 | 1281 | ## 2.12.0
|
1139 | 1282 |
|
1140 | 1283 | * Initialise actions on mount rather than hydrate ([#1653](https://github.com/sveltejs/svelte/pull/1653))
|
1141 |
| -* Allow non-existent components to be destroyed ([#1677](https://github.com/sveltejs/svelte/pull/1677)) |
| 1284 | +* Allow nonexistent components to be destroyed ([#1677](https://github.com/sveltejs/svelte/pull/1677)) |
1142 | 1285 | * Pass AMD ID from CLI correctly ([#1672](https://github.com/sveltejs/svelte/pull/1672))
|
1143 | 1286 | * Minor AST tweaks ([#1673](https://github.com/sveltejs/svelte/pull/1673), [#1674](https://github.com/sveltejs/svelte/pull/1674))
|
1144 | 1287 | * Reduce code duplication in component initialisation ([#1670](https://github.com/sveltejs/svelte/pull/1670))
|
|
0 commit comments