# Svelte changelog ## 3.55.1 * Fix `draw` transition with delay showing a dot at the beginning of the path ([#6816](https://github.com/sveltejs/svelte/issues/6816)) * Fix infinity runtime call stack when propagating bindings ([#7032](https://github.com/sveltejs/svelte/issues/7032)) * Fix static `` optimization in production mode ([#7937](https://github.com/sveltejs/svelte/issues/7937)) * Fix `svelte-ignore` comment breaking named slot ([#8075](https://github.com/sveltejs/svelte/issues/8075)) * Revert change to prevent running init binding unnecessarily ([#8103](https://github.com/sveltejs/svelte/issues/8103)) * Fix adding duplicate event listeners with `` ([#8129](https://github.com/sveltejs/svelte/issues/8129)) * Improve detection of promises that are also functions ([#8162](https://github.com/sveltejs/svelte/pull/8162)) * Avoid mutating spread component props during SSR ([#8171](https://github.com/sveltejs/svelte/issues/8171)) * Add missing typing for global `part` attribute ([#8181](https://github.com/sveltejs/svelte/issues/8181)) * Add missing `submitter` property to `on:submit` event type ## 3.55.0 * Add `svelte/elements` for HTML/Svelte typings ([#7649](https://github.com/sveltejs/svelte/pull/7649)) ## 3.54.0 * Pass `options.direction` argument to custom transition functions ([#3918](https://github.com/sveltejs/svelte/issues/3918)) * Support fallback a11y WAI-ARIA roles ([#8044](https://github.com/sveltejs/svelte/issues/8044)) * Prevent running init binding unnecessarily ([#5689](https://github.com/sveltejs/svelte/issues/5689), [#6298](https://github.com/sveltejs/svelte/issues/6298)) * Allow updating variables from `@const` declared function ([#7843](https://github.com/sveltejs/svelte/issues/7843)) * Do not emit `a11y-no-noninteractive-tabindex` warning if element has a `tabpanel` ([#8025](https://github.com/sveltejs/svelte/pull/8025)) * Fix escaping SSR'd values in `style:` directive ([#8085](https://github.com/sveltejs/svelte/issues/8085)) ## 3.53.1 * Fix exception in `rel=` attribute check with dynamic values ([#7994](https://github.com/sveltejs/svelte/issues/7994)) * Do not emit deprecation warnings for `css` compiler options for now ([#8009](https://github.com/sveltejs/svelte/issues/8009)) * Make compiler run in browser again ([#8010](https://github.com/sveltejs/svelte/issues/8010)) * Upgrade `tslib` ([#8013](https://github.com/sveltejs/svelte/issues/8013)) ## 3.53.0 * Check whether `parentNode` exists before removing child ([#6037](https://github.com/sveltejs/svelte/issues/6037)) * 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)) * Extend `css` compiler option with `'external' | 'injected' | 'none'` settings and deprecate old `true | false` values ([#7914](https://github.com/sveltejs/svelte/pull/7914)) ## 3.52.0 * Throw compile-time error when attempting to update `const` variable ([#4895](https://github.com/sveltejs/svelte/issues/4895)) * Warn when using `` without `rel="noreferrer"` ([#6188](https://github.com/sveltejs/svelte/issues/6188)) * Support `style:foo|important` modifier ([#7365](https://github.com/sveltejs/svelte/issues/7365)) * Fix hydration regression with `{@html}` and components in `` ([#7941](https://github.com/sveltejs/svelte/pull/7941)) ## 3.51.0 * Add a11y warnings: * `a11y-click-events-have-key-events`: check if click event is accompanied by key events ([#5073](https://github.com/sveltejs/svelte/pull/5073)) * `a11y-no-noninteractive-tabindex`: check for tabindex on non-interactive elements ([#6693](https://github.com/sveltejs/svelte/pull/6693)) * Warn when two-way binding to `{...rest}` object in `{#each}` block ([#6860](https://github.com/sveltejs/svelte/issues/6860)) * Support `--style-props` on `` ([#7461](https://github.com/sveltejs/svelte/issues/7461)) * Supports nullish values for component event handlers ([#7568](https://github.com/sveltejs/svelte/issues/7568)) * Supports SVG elements with ``([#7613](https://github.com/sveltejs/svelte/issues/7613)) * Treat `inert` as boolean attribute ([#7785](https://github.com/sveltejs/svelte/pull/7785)) * Support `--style-props` for SVG components ([#7808](https://github.com/sveltejs/svelte/issues/7808)) * Fix false positive dev warnings about unset props when they are bound ([#4457](https://github.com/sveltejs/svelte/issues/4457)) * Fix hydration with `{@html}` and components in `` ([#4533](https://github.com/sveltejs/svelte/issues/4533), [#6463](https://github.com/sveltejs/svelte/issues/6463), [#7444](https://github.com/sveltejs/svelte/issues/7444)) * Support scoped style for `` ([#7443](https://github.com/sveltejs/svelte/issues/7443)) * Improve error message for invalid value for `` ([#7550](https://github.com/sveltejs/svelte/issues/7550)) * Improve error message when using logic blocks or tags at invalid location ([#7552](https://github.com/sveltejs/svelte/issues/7552)) * Warn instead of throwing error if `` is a void tag ([#7566](https://github.com/sveltejs/svelte/issues/7566)) * Supports custom elements in `` ([#7733](https://github.com/sveltejs/svelte/issues/7733)) * Fix calling component unmount if a component is mounted and then immediately unmounted ([#7817](https://github.com/sveltejs/svelte/issues/7817)) * Do not generate `a11y-role-has-required-aria-props` warning when elements match their semantic role ([#7837](https://github.com/sveltejs/svelte/issues/7837)) * Improve performance of custom element data setting in `` ([#7869](https://github.com/sveltejs/svelte/pull/7869)) ## 3.50.1 * 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)) * Fix regression with style manager ([#7828](https://github.com/sveltejs/svelte/issues/7828)) ## 3.50.0 * Add a11y warnings: * `a11y-incorrect-aria-attribute-type`: check ARIA state and property values ([#6978](https://github.com/sveltejs/svelte/pull/6978)) * `a11y-no-abstract-role`: check that ARIA roles are non-abstract ([#6241](https://github.com/sveltejs/svelte/pull/6241)) * `a11y-no-interactive-element-to-noninteractive-role`: check for non-interactive roles used on interactive elements ([#5955](https://github.com/sveltejs/svelte/pull/5955)) * `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)) * Add `ComponentEvents` convenience type ([#7702](https://github.com/sveltejs/svelte/pull/7702)) * Add `SveltePreprocessor` utility type ([#7742](https://github.com/sveltejs/svelte/pull/7742)) * Enhance action typings ([#7805](https://github.com/sveltejs/svelte/pull/7805)) * Remove empty stylesheets created from transitions ([#4801](https://github.com/sveltejs/svelte/issues/4801), [#7164](https://github.com/sveltejs/svelte/issues/7164)) * Make `a11y-label-has-associated-control` warning check all descendants for input control ([#5528](https://github.com/sveltejs/svelte/issues/5528)) * Only show lowercase component name warnings for non-HTML/SVG elements ([#5712](https://github.com/sveltejs/svelte/issues/5712)) * Disallow invalid CSS selectors starting with a combinator ([#7643](https://github.com/sveltejs/svelte/issues/7643)) * Use `Node.parentNode` instead of `Node.parentElement` for legacy browser support ([#7723](https://github.com/sveltejs/svelte/issues/7723)) * Handle arrow function on `` inside `` ([#7485](https://github.com/sveltejs/svelte/issues/7485)) * Improve parsing speed when encountering large blocks of whitespace ([#7675](https://github.com/sveltejs/svelte/issues/7675)) * Fix `class:` directive updates in aborted/restarted transitions ([#7764](https://github.com/sveltejs/svelte/issues/7764)) ## 3.49.0 * Improve performance of string escaping during SSR ([#5701](https://github.com/sveltejs/svelte/pull/5701)) * Add `ComponentType` and `ComponentProps` convenience types ([#6770](https://github.com/sveltejs/svelte/pull/6770)) * Add support for CSS `@layer` ([#7504](https://github.com/sveltejs/svelte/issues/7504)) * Export `CompileOptions` from `svelte/compiler` ([#7658](https://github.com/sveltejs/svelte/pull/7658)) * Fix DOM-less components not being properly destroyed ([#7488](https://github.com/sveltejs/svelte/issues/7488)) * Fix `class:` directive updates with `` ([#7521](https://github.com/sveltejs/svelte/issues/7521), [#7571](https://github.com/sveltejs/svelte/issues/7571)) * Harden attribute escaping during SSR ([#7530](https://github.com/sveltejs/svelte/pull/7530)) ## 3.48.0 * Allow creating cancelable custom events with `createEventDispatcher` ([#4623](https://github.com/sveltejs/svelte/issues/4623)) * Support `{@const}` tag in `{#if}` blocks [#7241](https://github.com/sveltejs/svelte/issues/7241) * Return the context object in `setContext` [#7427](https://github.com/sveltejs/svelte/issues/7427) * Allow comments inside `{#each}` blocks when using `animate:` ([#3999](https://github.com/sveltejs/svelte/issues/3999)) * Fix `|local` transitions in `{#key}` blocks ([#5950](https://github.com/sveltejs/svelte/issues/5950)) * Support svg namespace for `{@html}` ([#7002](https://github.com/sveltejs/svelte/issues/7002), [#7450](https://github.com/sveltejs/svelte/issues/7450)) * Fix `{@const}` tag not working inside a component when there's no `let:` [#7189](https://github.com/sveltejs/svelte/issues/7189) * Remove extraneous leading newline inside `
` and `