Merge branch 'main' into schedule_effect_perf

schedule_effect_perf
Dominic Gannaway 2 months ago
commit f8d4abeb19

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: ensure snapshot logs don't affect dependency graph

@ -0,0 +1,5 @@
---
'svelte': patch
---
feat: Add accessibility warnings for buttons and anchors without explicit labels and content

@ -152,6 +152,7 @@
"dull-worms-relax",
"early-ads-tie",
"early-months-whisper",
"early-taxis-allow",
"eight-carrots-hunt",
"eight-comics-tell",
"eight-cougars-watch",
@ -173,6 +174,7 @@
"eleven-donuts-sit",
"eleven-hounds-pump",
"eleven-icons-sniff",
"eleven-peaches-tap",
"eleven-teachers-drive",
"empty-bags-heal",
"empty-bulldogs-exercise",
@ -362,6 +364,7 @@
"itchy-peaches-compare",
"itchy-pianos-marry",
"itchy-terms-guess",
"khaki-camels-punch",
"khaki-cheetahs-refuse",
"khaki-cooks-develop",
"khaki-donkeys-jump",
@ -660,6 +663,7 @@
"silent-rabbits-join",
"silent-rocks-yell",
"silly-ducks-mix",
"silly-fishes-deny",
"silly-laws-happen",
"silly-lies-film",
"silly-masks-exist",
@ -755,6 +759,7 @@
"strong-pans-doubt",
"stupid-bottles-lay",
"stupid-cars-behave",
"stupid-dodos-hide",
"stupid-parents-crash",
"stupid-rivers-stare",
"sweet-bottles-check",
@ -892,6 +897,7 @@
"wicked-years-drive",
"wild-cows-chew",
"wild-foxes-wonder",
"wild-mice-look",
"wild-moose-compare",
"wild-moose-destroy",
"wild-poems-design",

@ -0,0 +1,5 @@
---
"svelte": patch
---
fix: allow custom element styles to be updated in HMR mode

@ -0,0 +1,5 @@
---
"svelte": patch
---
fix: inject styles correctly when mounting inside an iframe

@ -30,7 +30,7 @@
},
"devDependencies": {
"@changesets/cli": "^2.27.8",
"@sveltejs/eslint-config": "^8.0.1",
"@sveltejs/eslint-config": "^8.1.0",
"@svitejs/changesets-changelog-github-compact": "^1.1.0",
"@types/node": "^20.11.5",
"@vitest/coverage-v8": "^2.0.5",

@ -1,5 +1,25 @@
# svelte
## 5.0.0-next.249
### Patch Changes
- fix: ensure snapshot logs don't affect dependency graph ([#13286](https://github.com/sveltejs/svelte/pull/13286))
- fix: allow custom element styles to be updated in HMR mode ([#13225](https://github.com/sveltejs/svelte/pull/13225))
- fix: inject styles correctly when mounting inside an iframe ([#13225](https://github.com/sveltejs/svelte/pull/13225))
## 5.0.0-next.248
### Patch Changes
- feat: provide guidance in browser console when logging $state objects ([#13142](https://github.com/sveltejs/svelte/pull/13142))
- fix: ensure correct parent effect is associated with render effects ([#13274](https://github.com/sveltejs/svelte/pull/13274))
- feat: unwrap function expressions where possible, and optimise bindings ([#13269](https://github.com/sveltejs/svelte/pull/13269))
## 5.0.0-next.247
### Patch Changes

@ -22,6 +22,10 @@
> Visible, non-interactive elements with a click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as `<button type="button">` or `<a>` might be more appropriate. See https://svelte.dev/docs/accessibility-warnings#a11y-click-events-have-key-events for more details
## a11y_consider_explicit_label
> Buttons and links should either contain text or have an `aria-label` or `aria-labelledby` attribute
## a11y_distracting_elements
> Avoid `<%name%>` elements
@ -104,7 +108,7 @@
## a11y_missing_content
> `<%name%>` element should have child content
> `<%name%>` element should contain text
## a11y_mouse_events_have_key_events

@ -2,7 +2,7 @@
"name": "svelte",
"description": "Cybernetically enhanced web apps",
"license": "MIT",
"version": "5.0.0-next.247",
"version": "5.0.0-next.249",
"type": "module",
"types": "./types/index.d.ts",
"engines": {

@ -403,9 +403,9 @@ const a11y_required_attributes = {
object: ['title', 'aria-label', 'aria-labelledby']
};
const a11y_distracting_elements = ['blink', 'marquee'];
// this excludes `<a>` and `<button>` because they are handled separately
const a11y_required_content = [
// anchor-has-content
'a',
// heading-has-content
'h1',
'h2',
@ -989,16 +989,17 @@ export function check_element(node, state) {
}
// element-specific checks
let contains_a11y_label = false;
const is_labelled = attribute_map.has('aria-label') || attribute_map.has('aria-labelledby');
if (node.name === 'a') {
const aria_label_attribute = attribute_map.get('aria-label');
if (aria_label_attribute) {
if (get_static_value(aria_label_attribute) !== '') {
contains_a11y_label = true;
}
if (node.name === 'a' || node.name === 'button') {
const is_hidden = get_static_value(attribute_map.get('aria-hidden')) === 'true';
if (!is_hidden && !is_labelled && !has_content(node)) {
w.a11y_consider_explicit_label(node);
}
}
if (node.name === 'a') {
const href = attribute_map.get('href') || attribute_map.get('xlink:href');
if (href) {
const href_value = get_static_text_value(href);
@ -1139,11 +1140,34 @@ export function check_element(node, state) {
// Check content
if (
!contains_a11y_label &&
!is_labelled &&
!has_contenteditable_binding &&
a11y_required_content.includes(node.name) &&
node.fragment.nodes.length === 0
!has_content(node)
) {
w.a11y_missing_content(node, node.name);
}
}
/**
* @param {AST.RegularElement | AST.SvelteElement} element
*/
function has_content(element) {
for (const node of element.fragment.nodes) {
if (node.type === 'Text') {
if (node.data.trim() === '') {
continue;
}
}
if (node.type === 'RegularElement' || node.type === 'SvelteElement') {
if (!has_content(node)) {
continue;
}
}
// assume everything else has content — this will result in false positives
// (e.g. an empty `{#if ...}{/if}`) but that's probably fine
return true;
}
}

@ -494,18 +494,7 @@ export function client_component(analysis, options) {
if (analysis.css.hash) {
// remove existing `<style>` element, in case CSS changed
accept_fn_body.unshift(
b.stmt(
b.call(
b.member(
b.call('document.querySelector', b.literal('#' + analysis.css.hash)),
'remove',
false,
true
)
)
)
);
accept_fn_body.unshift(b.stmt(b.call('$.cleanup_styles', b.literal(analysis.css.hash))));
}
const hmr = b.block([

@ -54,10 +54,7 @@ export interface ComponentClientTransformState extends ClientTransformState {
/** Stuff that happens after the render effect (control blocks, dynamic elements, bindings, actions, etc) */
readonly after_update: Statement[];
/** The HTML template string */
readonly template: {
push_quasi: (q: string) => void;
push_expression: (e: Expression) => void;
};
readonly template: Array<string | Expression>;
readonly locations: SourceLocation[];
readonly metadata: {
namespace: Namespace;

@ -9,7 +9,7 @@ import { create_derived_block_argument } from '../utils.js';
* @param {ComponentContext} context
*/
export function AwaitBlock(node, context) {
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
// Visit {#await <expression>} first to ensure that scopes are in the correct order
const expression = b.thunk(/** @type {Expression} */ (context.visit(node.expression)));

@ -7,5 +7,5 @@
*/
export function Comment(node, context) {
// We'll only get here if comments are not filtered out, which they are unless preserveComments is true
context.state.template.push_quasi(`<!--${node.data}-->`);
context.state.template.push(`<!--${node.data}-->`);
}

@ -32,7 +32,7 @@ export function EachBlock(node, context) {
);
if (!each_node_meta.is_controlled) {
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
}
if (each_node_meta.array_name !== null) {

@ -5,6 +5,7 @@
import { TEMPLATE_FRAGMENT, TEMPLATE_USE_IMPORT_NODE } from '../../../../../constants.js';
import { dev } from '../../../../state.js';
import * as b from '../../../../utils/builders.js';
import { sanitize_template_string } from '../../../../utils/sanitize_template_string.js';
import { clean_nodes, infer_namespace } from '../../utils.js';
import { process_children } from './shared/fragment.js';
import { build_render_statement } from './shared/utils.js';
@ -57,11 +58,6 @@ export function Fragment(node, context) {
/** @type {Statement | undefined} */
let close = undefined;
/** @type {string[]} */
const quasi = [];
/** @type {Expression[]} */
const expressions = [];
/** @type {ComponentClientTransformState} */
const state = {
...context.state,
@ -69,22 +65,7 @@ export function Fragment(node, context) {
init: [],
update: [],
after_update: [],
template: {
push_quasi: (/** @type {string} */ quasi_to_add) => {
if (quasi.length === 0) {
quasi.push(quasi_to_add);
return;
}
quasi[quasi.length - 1] = quasi[quasi.length - 1].concat(quasi_to_add);
},
push_expression: (/** @type {Expression} */ expression_to_add) => {
if (quasi.length === 0) {
quasi.push('');
}
expressions.push(expression_to_add);
quasi.push('');
}
},
template: [],
locations: [],
transform: { ...context.state.transform },
metadata: {
@ -135,12 +116,7 @@ export function Fragment(node, context) {
});
/** @type {Expression[]} */
const args = [
b.template(
quasi.map((q) => b.quasi(q, true)),
expressions
)
];
const args = [join_template(state.template)];
if (state.metadata.context.template_needs_import_node) {
args.push(b.literal(TEMPLATE_USE_IMPORT_NODE));
@ -195,17 +171,11 @@ export function Fragment(node, context) {
flags |= TEMPLATE_USE_IMPORT_NODE;
}
if (quasi.length === 1 && quasi[0] === '<!>') {
if (state.template.length === 1 && state.template[0] === '<!>') {
// special case — we can use `$.comment` instead of creating a unique template
body.push(b.var(id, b.call('$.comment')));
} else {
add_template(template_name, [
b.template(
quasi.map((q) => b.quasi(q, true)),
expressions
),
b.literal(flags)
]);
add_template(template_name, [join_template(state.template), b.literal(flags)]);
body.push(b.var(id, b.call(template_name)));
}
@ -235,6 +205,31 @@ export function Fragment(node, context) {
return b.block(body);
}
/**
* @param {Array<string | Expression>} items
*/
function join_template(items) {
let quasi = b.quasi('');
const template = b.template([quasi], []);
for (const item of items) {
if (typeof item === 'string') {
quasi.value.cooked += item;
} else {
template.expressions.push(item);
template.quasis.push((quasi = b.quasi('')));
}
}
for (const quasi of template.quasis) {
quasi.value.raw = sanitize_template_string(/** @type {string} */ (quasi.value.cooked));
}
quasi.tail = true;
return template;
}
/**
*
* @param {Namespace} namespace

@ -9,7 +9,7 @@ import * as b from '../../../../utils/builders.js';
* @param {ComponentContext} context
*/
export function HtmlTag(node, context) {
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
// push into init, so that bindings run afterwards, which might trigger another run and override hydration
context.state.init.push(

@ -8,7 +8,7 @@ import * as b from '../../../../utils/builders.js';
* @param {ComponentContext} context
*/
export function IfBlock(node, context) {
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
const consequent = /** @type {BlockStatement} */ (context.visit(node.consequent));

@ -8,7 +8,7 @@ import * as b from '../../../../utils/builders.js';
* @param {ComponentContext} context
*/
export function KeyBlock(node, context) {
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
const key = /** @type {Expression} */ (context.visit(node.expression));
const body = /** @type {Expression} */ (context.visit(node.fragment));

@ -54,7 +54,7 @@ export function RegularElement(node, context) {
}
if (node.name === 'noscript') {
context.state.template.push_quasi('<noscript></noscript>');
context.state.template.push('<noscript></noscript>');
return;
}
@ -68,7 +68,7 @@ export function RegularElement(node, context) {
namespace: determine_namespace_for_children(node, context.state.metadata.namespace)
};
context.state.template.push_quasi(`<${node.name}`);
context.state.template.push(`<${node.name}`);
/** @type {Array<AST.Attribute | AST.SpreadAttribute>} */
const attributes = [];
@ -242,7 +242,7 @@ export function RegularElement(node, context) {
const value = is_text_attribute(attribute) ? attribute.value[0].data : true;
if (name !== 'class' || value) {
context.state.template.push_quasi(
context.state.template.push(
` ${attribute.name}${
is_boolean_attribute(name) && value === true
? ''
@ -279,7 +279,7 @@ export function RegularElement(node, context) {
context.state.after_update.push(b.stmt(b.call('$.replay_events', node_id)));
}
context.state.template.push_quasi('>');
context.state.template.push('>');
/** @type {SourceLocation[]} */
const child_locations = [];
@ -384,7 +384,7 @@ export function RegularElement(node, context) {
}
if (!is_void(node.name)) {
context.state.template.push_quasi(`</${node.name}>`);
context.state.template.push(`</${node.name}>`);
}
}
@ -472,7 +472,7 @@ function build_element_spread_attributes(
value.type === 'Literal' &&
context.state.metadata.namespace === 'html'
) {
context.state.template.push_quasi(` is="${escape_html(value.value, true)}"`);
context.state.template.push(` is="${escape_html(value.value, true)}"`);
continue;
}
@ -630,9 +630,7 @@ function build_element_attribute_update_assignment(element, node_id, attribute,
return true;
} else {
if (inlinable_expression) {
context.state.template.push_quasi(` ${name}="`);
context.state.template.push_expression(value);
context.state.template.push_quasi('"');
context.state.template.push(` ${name}="`, value, '"');
} else {
state.init.push(update);
}

@ -9,7 +9,7 @@ import * as b from '../../../../utils/builders.js';
* @param {ComponentContext} context
*/
export function RenderTag(node, context) {
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
const callee = unwrap_optional(node.expression).callee;
const raw_args = unwrap_optional(node.expression).arguments;

@ -10,7 +10,7 @@ import { build_attribute_value } from './shared/element.js';
*/
export function SlotElement(node, context) {
// <slot {a}>fallback</slot> --> $.slot($$slots.default, { get a() { .. } }, () => ...fallback);
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
/** @type {Property[]} */
const props = [];

@ -21,7 +21,7 @@ import { build_render_statement, build_update } from './shared/utils.js';
* @param {ComponentContext} context
*/
export function SvelteElement(node, context) {
context.state.template.push_quasi(`<!>`);
context.state.template.push(`<!>`);
/** @type {Array<AST.Attribute | AST.SpreadAttribute>} */
const attributes = [];

@ -357,7 +357,7 @@ export function build_component(node, component_name, context, anchor = context.
}
if (Object.keys(custom_css_props).length > 0) {
context.state.template.push_quasi(
context.state.template.push(
context.state.metadata.namespace === 'svg'
? '<g><!></g>'
: '<div style="display: contents"><!></div>'
@ -369,7 +369,7 @@ export function build_component(node, component_name, context, anchor = context.
b.stmt(b.call('$.reset', anchor))
);
} else {
context.state.template.push_quasi('<!>');
context.state.template.push('<!>');
statements.push(b.stmt(fn(anchor)));
}

@ -62,11 +62,11 @@ export function process_children(nodes, initial, is_element, { visit, state }) {
function flush_sequence(sequence) {
if (sequence.every((node) => node.type === 'Text')) {
skipped += 1;
state.template.push_quasi(sequence.map((node) => node.raw).join(''));
state.template.push(sequence.map((node) => node.raw).join(''));
return;
}
state.template.push_quasi(' ');
state.template.push(' ');
const { has_state, has_call, value } = build_template_literal(sequence, visit, state);

@ -50,6 +50,7 @@ export const codes = [
"a11y_autocomplete_valid",
"a11y_autofocus",
"a11y_click_events_have_key_events",
"a11y_consider_explicit_label",
"a11y_distracting_elements",
"a11y_figcaption_index",
"a11y_figcaption_parent",
@ -174,6 +175,14 @@ export function a11y_click_events_have_key_events(node) {
w(node, "a11y_click_events_have_key_events", "Visible, non-interactive elements with a click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as `<button type=\"button\">` or `<a>` might be more appropriate. See https://svelte.dev/docs/accessibility-warnings#a11y-click-events-have-key-events for more details");
}
/**
* Buttons and links should either contain text or have an `aria-label` or `aria-labelledby` attribute
* @param {null | NodeLike} node
*/
export function a11y_consider_explicit_label(node) {
w(node, "a11y_consider_explicit_label", "Buttons and links should either contain text or have an `aria-label` or `aria-labelledby` attribute");
}
/**
* Avoid `<%name%>` elements
* @param {null | NodeLike} node
@ -355,12 +364,12 @@ export function a11y_missing_attribute(node, name, article, sequence) {
}
/**
* `<%name%>` element should have child content
* `<%name%>` element should contain text
* @param {null | NodeLike} node
* @param {string} name
*/
export function a11y_missing_content(node, name) {
w(node, "a11y_missing_content", `\`<${name}>\` element should have child content`);
w(node, "a11y_missing_content", `\`<${name}>\` element should contain text`);
}
/**

@ -1,30 +1,35 @@
import { STATE_SYMBOL } from '../constants.js';
import { snapshot } from '../../shared/clone.js';
import * as w from '../warnings.js';
import { untrack } from '../runtime.js';
/**
* @param {string} method
* @param {...any} objects
*/
export function log_if_contains_state(method, ...objects) {
let has_state = false;
const transformed = [];
untrack(() => {
try {
let has_state = false;
const transformed = [];
for (const obj of objects) {
if (obj && typeof obj === 'object' && STATE_SYMBOL in obj) {
transformed.push(snapshot(obj, true));
has_state = true;
} else {
transformed.push(obj);
}
}
for (const obj of objects) {
if (obj && typeof obj === 'object' && STATE_SYMBOL in obj) {
transformed.push(snapshot(obj, true));
has_state = true;
} else {
transformed.push(obj);
}
}
if (has_state) {
w.console_log_state(method);
if (has_state) {
w.console_log_state(method);
// eslint-disable-next-line no-console
console.log('%c[snapshot]', 'color: grey', ...transformed);
}
// eslint-disable-next-line no-console
console.log('%c[snapshot]', 'color: grey', ...transformed);
}
} catch {}
});
return objects;
}

@ -0,0 +1,31 @@
/** @type {Map<String, Set<HTMLStyleElement>>} */
var all_styles = new Map();
/**
* @param {String} hash
* @param {HTMLStyleElement} style
*/
export function register_style(hash, style) {
var styles = all_styles.get(hash);
if (!styles) {
styles = new Set();
all_styles.set(hash, styles);
}
styles.add(style);
}
/**
* @param {String} hash
*/
export function cleanup_styles(hash) {
var styles = all_styles.get(hash);
if (!styles) return;
for (const style of styles) {
style.remove();
}
all_styles.delete(hash);
}

@ -1,16 +1,22 @@
import { DEV } from 'esm-env';
import { queue_micro_task } from './task.js';
import { register_style } from '../dev/css.js';
var seen = new Set();
var roots = new WeakMap();
/**
* @param {Node} anchor
* @param {{ hash: string, code: string }} css
* @param {boolean} [is_custom_element]
*/
export function append_styles(anchor, css, is_custom_element = false) {
export function append_styles(anchor, css, is_custom_element) {
// in dev, always check the DOM, so that styles can be replaced with HMR
if (!DEV && !is_custom_element) {
var doc = /** @type {Document} */ (anchor.ownerDocument);
if (!roots.has(doc)) roots.set(doc, new Set());
const seen = roots.get(doc);
if (seen.has(css)) return;
seen.add(css);
}
@ -29,6 +35,10 @@ export function append_styles(anchor, css, is_custom_element = false) {
style.textContent = css.code;
target.appendChild(style);
if (DEV) {
register_style(css.hash, style);
}
}
});
}

@ -1,4 +1,5 @@
export { FILENAME, HMR } from '../../constants.js';
export { cleanup_styles } from './dev/css.js';
export { add_locations } from './dev/elements.js';
export { hmr } from './dev/hmr.js';
export {

@ -640,6 +640,7 @@ function process_effects(effect, collected_effects) {
effects.push(current_effect);
}
}
var sibling = current_effect.next;
if (sibling === null) {

@ -6,5 +6,5 @@
* https://svelte.dev/docs/svelte-compiler#svelte-version
* @type {string}
*/
export const VERSION = '5.0.0-next.247';
export const VERSION = '5.0.0-next.249';
export const PUBLIC_VERSION = '5';

@ -7,4 +7,4 @@
});
</script>
</svelte:head>
<button></button>
<button>click me</button>

@ -0,0 +1,19 @@
<script>
import { mount } from 'svelte';
import Child from './Child.svelte';
let { count } = $props();
let iframe;
$effect(() => {
mount(Child, {
target: iframe.contentWindow.document.body,
props: {
count
}
});
});
</script>
<iframe title="container" bind:this={iframe}></iframe>

@ -0,0 +1,13 @@
<svelte:options css="injected" />
<script>
let { count } = $props();
</script>
<h1>count: {count}</h1>
<style>
h1 {
color: red;
}
</style>

@ -0,0 +1,22 @@
import { flushSync } from 'svelte';
import { test } from '../../assert';
export default test({
async test({ target, assert }) {
const button = target.querySelector('button');
const h1 = () =>
/** @type {HTMLHeadingElement} */ (
/** @type {Window} */ (
target.querySelector('iframe')?.contentWindow
).document.querySelector('h1')
);
assert.equal(h1().textContent, 'count: 0');
assert.equal(getComputedStyle(h1()).color, 'rgb(255, 0, 0)');
flushSync(() => button?.click());
assert.equal(h1().textContent, 'count: 1');
assert.equal(getComputedStyle(h1()).color, 'rgb(255, 0, 0)');
}
});

@ -0,0 +1,11 @@
<script>
import App from './App.svelte';
let count = $state(0);
</script>
<button onclick={() => (count += 1)}>remount</button>
{#key count}
<App {count} />
{/key}

@ -1,7 +1,7 @@
[
{
"code": "a11y_missing_content",
"message": "`<a>` element should have child content",
"code": "a11y_consider_explicit_label",
"message": "Buttons and links should either contain text or have an `aria-label` or `aria-labelledby` attribute",
"start": {
"line": 1,
"column": 0

@ -2,7 +2,7 @@
const abc = 'abc';
</script>
<button aria-disabled="yes"></button>
<button aria-disabled="no"></button>
<button aria-disabled={1234}></button>
<button aria-disabled={`${abc}`}></button>
<button aria-disabled="yes">click me</button>
<button aria-disabled="no">click me</button>
<button aria-disabled={1234}>click me</button>
<button aria-disabled={`${abc}`}>click me</button>

@ -31,7 +31,7 @@
<div class="foo"></div>
<a href="http://x.y.z" on:click={noop}>foo</a>
<button on:click={noop}></button>
<button on:click={noop}>click me</button>
<select on:click={noop}></select>
<input type="button" on:click={noop} />

@ -0,0 +1,11 @@
<button></button>
<a href="/#"><b></b></a>
<button aria-label="Valid empty button"></button>
<a href="/#" aria-label="Valid empty link"></a>
<button aria-hidden='true'></button>
<a href="/#" aria-hidden='true'><b></b></a>
<button>Click me</button>
<a href="/#">Link text</a>

@ -0,0 +1,26 @@
[
{
"code": "a11y_consider_explicit_label",
"message": "Buttons and links should either contain text or have an `aria-label` or `aria-labelledby` attribute",
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 17
}
},
{
"code": "a11y_consider_explicit_label",
"message": "Buttons and links should either contain text or have an `aria-label` or `aria-labelledby` attribute",
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 24
}
}
]

@ -1,7 +1,7 @@
[
{
"code": "a11y_missing_content",
"message": "`<h1>` element should have child content",
"message": "`<h1>` element should contain text",
"start": {
"line": 1,
"column": 0

@ -3,7 +3,7 @@
<div aria-disabled="true" role="button" on:keypress={() => {}}></div>
<div disabled role="button" on:keypress={() => {}}></div>
<div role="presentation" on:keypress={() => {}}></div>
<button on:click={() => {}}></button>
<button on:click={() => {}}>click me</button>
<div role="menuitem" tabindex="0" on:click={() => {}} on:keypress={() => {}}></div>
<div role="button" tabindex="-1" on:click={() => {}} on:keypress={() => {}}></div>

@ -2,7 +2,7 @@
<div role="presentation" on:mouseup={() => {}}></div>
<div role="button" tabindex="-1" on:click={() => {}} on:keypress={() => {}}></div>
<div role="listitem" aria-hidden="true" on:click={() => {}} on:keypress={() => {}}></div>
<button on:click={() => {}}></button>
<button on:click={() => {}}>click me</button>
<h1 contenteditable="true" on:keydown={() => {}}>Heading</h1>
<h1>Heading</h1>

@ -1,7 +1,7 @@
<!-- valid -->
<button></button>
<button tabindex='0'></button>
<button tabindex='{0}'></button>
<button>click me</button>
<button tabindex='0'>click me</button>
<button tabindex='{0}'>click me</button>
<div></div>
<div tabindex='-1'></div>
<div role='button' tabindex='0'></div>

@ -2,7 +2,7 @@
<article role="article"></article>
<aside role="complementary"></aside>
<body role="document"></body>
<button role="button"></button>
<button role="button">click me</button>
<datalist role="listbox"></datalist>
<dd role="definition"></dd>
<dfn role="term"></dfn>

@ -3,7 +3,7 @@
</script>
<!-- valid -->
<button on:click={() => {}}></button>
<button on:click={() => {}}>click me</button>
<!-- svelte-ignore a11y_interactive_supports_focus -->
<div on:keydown={() => {}} role="button"></div>
<input type="text" on:click={() => {}} />

@ -4,7 +4,7 @@
<article aria-autocomplete="inline"></article>
<aside aria-modal="true"></aside>
<body aria-invalid="true"></body>
<button aria-valuemax="0"></button>
<button aria-valuemax="0">click me</button>
<datalist aria-valuenow="0"></datalist>
<dd aria-rowindex="0"></dd>
<dfn aria-colcount="0"></dfn>

@ -2,7 +2,7 @@
let foo;
</script>
<button tabindex='-1'></button>
<button tabindex='0'></button>
<button tabindex='1'></button>
<button tabindex='{foo}'></button>
<button tabindex='-1'>click me</button>
<button tabindex='0'>click me</button>
<button tabindex='1'>click me</button>
<button tabindex='{foo}'>click me</button>

@ -2,8 +2,8 @@
let onclick;
</script>
<button {onclick}></button>
<button onclick={onclick}></button>
<button {onclick}>click me</button>
<button onclick={onclick}>click me</button>
<button {onkeydown}></button>
<button onkeydown={onkeydown}></button>
<button {onkeydown}>click me</button>
<button onkeydown={onkeydown}>click me</button>

@ -2,14 +2,14 @@
import C from './irrelevant';
</script>
<button on:click></button>
<button xml:click></button>
<button xmlns:click></button>
<button xlink:click></button>
<button on:click>click me</button>
<button xml:click>click me</button>
<button xmlns:click>click me</button>
<button xlink:click>click me</button>
<C on:click />
<C xml:click />
<C xmlns:click />
<C xlink:click />
<button foo:bar></button>
<button foo:bar>click me</button>
<C foo:bar />

@ -3,4 +3,4 @@
let { b }: { b: string } = $derived(a);
</script>
<button onclick={()=>a++}></button>
<button onclick={()=>a++}>click me</button>

@ -2,4 +2,4 @@
export let height;
</script>
<button style:height></button>
<button style:height>click me</button>

@ -17,7 +17,7 @@
"polka": "^1.0.0-next.25",
"svelte": "workspace:*",
"tiny-glob": "^0.2.9",
"vite": "^5.4.2",
"vite": "^5.4.6",
"vite-plugin-inspect": "^0.8.4"
}
}

@ -15,8 +15,8 @@ importers:
specifier: ^2.27.8
version: 2.27.8
'@sveltejs/eslint-config':
specifier: ^8.0.1
version: 8.0.1(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.9.0(eslint@9.9.1))(eslint-plugin-svelte@2.38.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.2.0(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)
specifier: ^8.1.0
version: 8.1.0(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.9.0(eslint@9.9.1))(eslint-plugin-svelte@2.38.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.2.0(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)
'@svitejs/changesets-changelog-github-compact':
specifier: ^1.1.0
version: 1.1.0
@ -152,7 +152,7 @@ importers:
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: ^4.0.0-next.6
version: 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
version: 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
nodemon:
specifier: ^3.0.3
version: 3.0.3
@ -166,11 +166,11 @@ importers:
specifier: ^0.2.9
version: 0.2.9
vite:
specifier: ^5.4.2
version: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
specifier: ^5.4.6
version: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite-plugin-inspect:
specifier: ^0.8.4
version: 0.8.4(rollup@4.21.0)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
version: 0.8.4(rollup@4.21.0)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
sites/svelte-5-preview:
dependencies:
@ -252,19 +252,19 @@ importers:
version: 1.2.1
'@sveltejs/adapter-vercel':
specifier: ^5.4.3
version: 5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))
version: 5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))
'@sveltejs/kit':
specifier: ^2.5.24
version: 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
version: 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/site-kit':
specifier: 6.0.0-next.64
version: 6.0.0-next.64(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)
version: 6.0.0-next.64(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)
'@sveltejs/vite-plugin-svelte':
specifier: ^4.0.0-next.6
version: 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
version: 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@vercel/speed-insights':
specifier: ^1.0.0
version: 1.0.11(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)
version: 1.0.11(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)
esrap:
specifier: ^1.2.2
version: 1.2.2
@ -287,8 +287,8 @@ importers:
specifier: ^5.5.4
version: 5.5.4
vite:
specifier: ^5.4.2
version: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
specifier: ^5.4.6
version: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
sites/svelte.dev:
dependencies:
@ -300,7 +300,7 @@ importers:
version: 2.39.3
'@sveltejs/repl':
specifier: 0.6.0
version: 0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)
version: 0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)
cookie:
specifier: ^0.6.0
version: 0.6.0
@ -322,16 +322,16 @@ importers:
version: 2.6.0
'@sveltejs/adapter-vercel':
specifier: ^5.4.3
version: 5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))
version: 5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))
'@sveltejs/kit':
specifier: ^2.4.3
version: 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
version: 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/site-kit':
specifier: 6.0.0-next.59
version: 6.0.0-next.59(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)
version: 6.0.0-next.59(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)
'@sveltejs/vite-plugin-svelte':
specifier: ^3.1.0
version: 3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
version: 3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@types/cookie':
specifier: ^0.6.0
version: 0.6.0
@ -385,7 +385,7 @@ importers:
version: 4.0.1(svelte@4.2.9)(typescript@5.5.4)
svelte-preprocess:
specifier: ^5.1.3
version: 5.1.3(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(sass@1.70.0)(svelte@4.2.9)(typescript@5.5.4)
version: 5.1.3(postcss-load-config@3.1.4(postcss@8.4.47))(postcss@8.4.47)(sass@1.70.0)(svelte@4.2.9)(typescript@5.5.4)
tiny-glob:
specifier: ^0.2.9
version: 0.2.9
@ -393,8 +393,8 @@ importers:
specifier: ^5.5.4
version: 5.5.4
vite:
specifier: ^5.4.2
version: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
specifier: ^5.4.6
version: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite-imagetools:
specifier: ^6.2.9
version: 6.2.9(rollup@4.21.0)
@ -1364,8 +1364,8 @@ packages:
peerDependencies:
'@sveltejs/kit': ^2.4.0
'@sveltejs/eslint-config@8.0.1':
resolution: {integrity: sha512-0EYGo15CKgf7nK/toq8oa2wM62cmjxvnOKqualIL5L9r42F1dXHGgMoXRSHQj+TctUlJqXj8DZr64SkIfaQtOQ==}
'@sveltejs/eslint-config@8.1.0':
resolution: {integrity: sha512-cfgp4lPREYBjNd4ZzaP/jA85ufm7vfXiaV7h9vILXNogne80IbZRNhRCQ8XoOqTAOY/pChIzWTBuR8aDNMbAEA==}
peerDependencies:
'@stylistic/eslint-plugin-js': '>= 1'
eslint: '>= 9'
@ -1743,7 +1743,7 @@ packages:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
buffer-equal@0.0.1:
resolution: {integrity: sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=}
resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==}
engines: {node: '>=0.4.0'}
buffer-from@1.1.2:
@ -1836,7 +1836,7 @@ packages:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
concat-map@0.0.1:
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
console-control-strings@1.1.0:
resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
@ -3064,8 +3064,8 @@ packages:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
postcss@8.4.41:
resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
postcss@8.4.47:
resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
@ -3321,8 +3321,8 @@ packages:
resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==}
hasBin: true
source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
source-map-support@0.5.21:
@ -3677,8 +3677,8 @@ packages:
'@nuxt/kit':
optional: true
vite@5.4.2:
resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==}
vite@5.4.6:
resolution: {integrity: sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@ -4909,25 +4909,25 @@ snapshots:
- bufferutil
- utf-8-validate
'@sveltejs/adapter-vercel@5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))':
'@sveltejs/adapter-vercel@5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))':
dependencies:
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@vercel/nft': 0.27.3
esbuild: 0.21.5
transitivePeerDependencies:
- encoding
- supports-color
'@sveltejs/adapter-vercel@5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))':
'@sveltejs/adapter-vercel@5.4.3(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))':
dependencies:
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@vercel/nft': 0.27.3
esbuild: 0.21.5
transitivePeerDependencies:
- encoding
- supports-color
'@sveltejs/eslint-config@8.0.1(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.9.0(eslint@9.9.1))(eslint-plugin-svelte@2.38.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.2.0(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)':
'@sveltejs/eslint-config@8.1.0(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.9.0(eslint@9.9.1))(eslint-plugin-svelte@2.38.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.2.0(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)':
dependencies:
'@stylistic/eslint-plugin-js': 1.8.0(eslint@9.9.1)
eslint: 9.9.1
@ -4938,9 +4938,9 @@ snapshots:
typescript: 5.5.4
typescript-eslint: 8.2.0(eslint@9.9.1)(typescript@5.5.4)
'@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
'@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 5.0.0
@ -4954,11 +4954,11 @@ snapshots:
sirv: 2.0.4
svelte: 4.2.9
tiny-glob: 0.2.9
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
'@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
'@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/vite-plugin-svelte': 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 5.0.0
@ -4972,9 +4972,9 @@ snapshots:
sirv: 2.0.4
svelte: link:packages/svelte
tiny-glob: 0.2.9
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
'@sveltejs/repl@0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)':
'@sveltejs/repl@0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)':
dependencies:
'@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)
'@codemirror/commands': 6.3.3
@ -4993,7 +4993,7 @@ snapshots:
'@replit/codemirror-vim': 6.1.0(@codemirror/commands@6.3.3)(@codemirror/language@6.10.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)
'@rich_harris/svelte-split-pane': 1.1.3(svelte@4.2.9)
'@rollup/browser': 3.29.4
'@sveltejs/site-kit': 5.2.2(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)
'@sveltejs/site-kit': 5.2.2(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)
acorn: 8.12.1
codemirror: 6.0.1(@lezer/common@1.2.1)
esm-env: 1.0.0
@ -5010,69 +5010,69 @@ snapshots:
- '@lezer/lr'
- '@sveltejs/kit'
'@sveltejs/site-kit@5.2.2(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)':
'@sveltejs/site-kit@5.2.2(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)':
dependencies:
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
esm-env: 1.0.0
svelte: 4.2.9
svelte-local-storage-store: 0.4.0(svelte@4.2.9)
'@sveltejs/site-kit@6.0.0-next.59(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)':
'@sveltejs/site-kit@6.0.0-next.59(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)':
dependencies:
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
esm-env: 1.0.0
svelte: 4.2.9
svelte-local-storage-store: 0.6.4(svelte@4.2.9)
'@sveltejs/site-kit@6.0.0-next.64(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)':
'@sveltejs/site-kit@6.0.0-next.64(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)':
dependencies:
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
esm-env: 1.0.0
svelte: link:packages/svelte
svelte-persisted-store: 0.9.2(svelte@packages+svelte)
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
debug: 4.3.6(supports-color@5.5.0)
svelte: 4.2.9
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
- supports-color
'@sveltejs/vite-plugin-svelte-inspector@3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
'@sveltejs/vite-plugin-svelte-inspector@3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/vite-plugin-svelte': 4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
debug: 4.3.6(supports-color@5.5.0)
svelte: link:packages/svelte
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
- supports-color
'@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
'@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@4.2.9)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
debug: 4.3.6(supports-color@5.5.0)
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.11
svelte: 4.2.9
svelte-hmr: 0.16.0(svelte@4.2.9)
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vitefu: 0.2.5(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vitefu: 0.2.5(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
transitivePeerDependencies:
- supports-color
'@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
'@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/vite-plugin-svelte-inspector': 3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
debug: 4.3.6(supports-color@5.5.0)
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.11
svelte: link:packages/svelte
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vitefu: 0.2.5(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vitefu: 0.2.5(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
transitivePeerDependencies:
- supports-color
@ -5237,9 +5237,9 @@ snapshots:
- encoding
- supports-color
'@vercel/speed-insights@1.0.11(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)':
'@vercel/speed-insights@1.0.11(@sveltejs/kit@2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)':
optionalDependencies:
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
'@sveltejs/kit': 2.5.24(@sveltejs/vite-plugin-svelte@4.0.0-next.6(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
svelte: link:packages/svelte
'@vitest/coverage-v8@2.0.5(vitest@2.0.5(@types/node@20.12.7)(jsdom@25.0.0)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
@ -5551,7 +5551,7 @@ snapshots:
css-tree@2.3.1:
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.0
source-map-js: 1.2.1
cssesc@3.0.0: {}
@ -5727,9 +5727,9 @@ snapshots:
eslint-compat-utils: 0.5.1(eslint@9.9.1)
esutils: 2.0.3
known-css-properties: 0.30.0
postcss: 8.4.41
postcss-load-config: 3.1.4(postcss@8.4.41)
postcss-safe-parser: 6.0.0(postcss@8.4.41)
postcss: 8.4.47
postcss-load-config: 3.1.4(postcss@8.4.47)
postcss-safe-parser: 6.0.0(postcss@8.4.47)
postcss-selector-parser: 6.1.2
semver: 7.6.3
svelte-eslint-parser: 0.41.0(svelte@packages+svelte)
@ -6398,7 +6398,7 @@ snapshots:
dependencies:
'@babel/parser': 7.25.4
'@babel/types': 7.25.4
source-map-js: 1.2.0
source-map-js: 1.2.1
make-dir@3.1.0:
dependencies:
@ -6691,20 +6691,20 @@ snapshots:
'@polka/url': 1.0.0-next.25
trouter: 4.0.0
postcss-load-config@3.1.4(postcss@8.4.41):
postcss-load-config@3.1.4(postcss@8.4.47):
dependencies:
lilconfig: 2.1.0
yaml: 1.10.2
optionalDependencies:
postcss: 8.4.41
postcss: 8.4.47
postcss-safe-parser@6.0.0(postcss@8.4.41):
postcss-safe-parser@6.0.0(postcss@8.4.47):
dependencies:
postcss: 8.4.41
postcss: 8.4.47
postcss-scss@4.0.9(postcss@8.4.41):
postcss-scss@4.0.9(postcss@8.4.47):
dependencies:
postcss: 8.4.41
postcss: 8.4.47
postcss-selector-parser@6.1.2:
dependencies:
@ -6713,11 +6713,11 @@ snapshots:
postcss-value-parser@4.2.0: {}
postcss@8.4.41:
postcss@8.4.47:
dependencies:
nanoid: 3.3.7
picocolors: 1.1.0
source-map-js: 1.2.0
source-map-js: 1.2.1
prelude-ls@1.2.1: {}
@ -6862,7 +6862,7 @@ snapshots:
dependencies:
chokidar: 3.5.3
immutable: 4.3.4
source-map-js: 1.2.0
source-map-js: 1.2.1
satori-html@0.3.2:
dependencies:
@ -6997,7 +6997,7 @@ snapshots:
minimist: 1.2.8
sander: 0.5.1
source-map-js@1.2.0: {}
source-map-js@1.2.1: {}
source-map-support@0.5.21:
dependencies:
@ -7101,8 +7101,8 @@ snapshots:
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
postcss: 8.4.41
postcss-scss: 4.0.9(postcss@8.4.41)
postcss: 8.4.47
postcss-scss: 4.0.9(postcss@8.4.47)
optionalDependencies:
svelte: link:packages/svelte
@ -7130,7 +7130,7 @@ snapshots:
dependencies:
svelte: link:packages/svelte
svelte-preprocess@5.1.3(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(sass@1.70.0)(svelte@4.2.9)(typescript@5.5.4):
svelte-preprocess@5.1.3(postcss-load-config@3.1.4(postcss@8.4.47))(postcss@8.4.47)(sass@1.70.0)(svelte@4.2.9)(typescript@5.5.4):
dependencies:
'@types/pug': 2.0.10
detect-indent: 6.1.0
@ -7139,8 +7139,8 @@ snapshots:
strip-indent: 3.0.0
svelte: 4.2.9
optionalDependencies:
postcss: 8.4.41
postcss-load-config: 3.1.4(postcss@8.4.41)
postcss: 8.4.47
postcss-load-config: 3.1.4(postcss@8.4.47)
sass: 1.70.0
typescript: 5.5.4
@ -7325,7 +7325,7 @@ snapshots:
debug: 4.3.6(supports-color@5.5.0)
pathe: 1.1.2
tinyrainbow: 1.2.0
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
- '@types/node'
- less
@ -7337,7 +7337,7 @@ snapshots:
- supports-color
- terser
vite-plugin-inspect@0.8.4(rollup@4.21.0)(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)):
vite-plugin-inspect@0.8.4(rollup@4.21.0)(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)):
dependencies:
'@antfu/utils': 0.7.8
'@rollup/pluginutils': 5.1.0(rollup@4.21.0)
@ -7348,15 +7348,15 @@ snapshots:
perfect-debounce: 1.0.0
picocolors: 1.1.0
sirv: 2.0.4
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
- rollup
- supports-color
vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0):
vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0):
dependencies:
esbuild: 0.21.5
postcss: 8.4.41
postcss: 8.4.47
rollup: 4.21.0
optionalDependencies:
'@types/node': 20.12.7
@ -7365,9 +7365,9 @@ snapshots:
sass: 1.70.0
terser: 5.27.0
vitefu@0.2.5(vite@5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)):
vitefu@0.2.5(vite@5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)):
optionalDependencies:
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vitest@2.0.5(@types/node@20.12.7)(jsdom@25.0.0)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0):
dependencies:
@ -7387,7 +7387,7 @@ snapshots:
tinybench: 2.9.0
tinypool: 1.0.1
tinyrainbow: 1.2.0
vite: 5.4.2(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite: 5.4.6(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
vite-node: 2.0.5(@types/node@20.12.7)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
why-is-node-running: 2.3.0
optionalDependencies:

@ -27,7 +27,7 @@
"svelte": "workspace:^",
"svelte-check": "^4.0.0",
"typescript": "^5.5.4",
"vite": "^5.4.2"
"vite": "^5.4.6"
},
"dependencies": {
"@codemirror/autocomplete": "^6.12.0",

@ -50,7 +50,7 @@
"svelte-preprocess": "^5.1.3",
"tiny-glob": "^0.2.9",
"typescript": "^5.5.4",
"vite": "^5.4.2",
"vite": "^5.4.6",
"vite-imagetools": "^6.2.9"
}
}

Loading…
Cancel
Save