diff --git a/examples/example-sveltekit/.gitignore b/examples/example-sveltekit/.gitignore
new file mode 100644
index 000000000..3b462cb0c
--- /dev/null
+++ b/examples/example-sveltekit/.gitignore
@@ -0,0 +1,23 @@
+node_modules
+
+# Output
+.output
+.vercel
+.netlify
+.wrangler
+/.svelte-kit
+/build
+
+# OS
+.DS_Store
+Thumbs.db
+
+# Env
+.env
+.env.*
+!.env.example
+!.env.test
+
+# Vite
+vite.config.js.timestamp-*
+vite.config.ts.timestamp-*
diff --git a/examples/example-sveltekit/.npmrc b/examples/example-sveltekit/.npmrc
new file mode 100644
index 000000000..b6f27f135
--- /dev/null
+++ b/examples/example-sveltekit/.npmrc
@@ -0,0 +1 @@
+engine-strict=true
diff --git a/examples/example-sveltekit/README.md b/examples/example-sveltekit/README.md
new file mode 100644
index 000000000..75842c404
--- /dev/null
+++ b/examples/example-sveltekit/README.md
@@ -0,0 +1,38 @@
+# sv
+
+Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli).
+
+## Creating a project
+
+If you're seeing this, you've probably already done this step. Congrats!
+
+```sh
+# create a new project in the current directory
+npx sv create
+
+# create a new project in my-app
+npx sv create my-app
+```
+
+## Developing
+
+Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
+
+```sh
+npm run dev
+
+# or start the server and open the app in a new browser tab
+npm run dev -- --open
+```
+
+## Building
+
+To create a production version of your app:
+
+```sh
+npm run build
+```
+
+You can preview the production build with `npm run preview`.
+
+> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
diff --git a/examples/example-sveltekit/package.json b/examples/example-sveltekit/package.json
new file mode 100644
index 000000000..cdb2add9c
--- /dev/null
+++ b/examples/example-sveltekit/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "example-sveltekit",
+ "private": true,
+ "version": "0.0.1",
+ "type": "module",
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "prepare": "svelte-kit sync || echo ''",
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
+ },
+ "dependencies": {
+ "@stylexjs/stylex": "0.17.5"
+ },
+ "devDependencies": {
+ "@sveltejs/adapter-auto": "^7.0.0",
+ "@sveltejs/kit": "^2.49.1",
+ "@sveltejs/vite-plugin-svelte": "^6.2.1",
+ "svelte": "^5.45.6",
+ "svelte-check": "^4.3.4",
+ "typescript": "^5.9.3",
+ "vite": "^7.2.6",
+ "@stylexjs/unplugin": "0.17.5"
+ }
+}
diff --git a/examples/example-sveltekit/src/app.css b/examples/example-sveltekit/src/app.css
new file mode 100644
index 000000000..e69de29bb
diff --git a/examples/example-sveltekit/src/app.d.ts b/examples/example-sveltekit/src/app.d.ts
new file mode 100644
index 000000000..520c4217a
--- /dev/null
+++ b/examples/example-sveltekit/src/app.d.ts
@@ -0,0 +1,13 @@
+// See https://svelte.dev/docs/kit/types#app.d.ts
+// for information about these interfaces
+declare global {
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface PageState {}
+ // interface Platform {}
+ }
+}
+
+export {};
diff --git a/examples/example-sveltekit/src/app.html b/examples/example-sveltekit/src/app.html
new file mode 100644
index 000000000..f273cc58f
--- /dev/null
+++ b/examples/example-sveltekit/src/app.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/examples/example-sveltekit/src/lib/assets/favicon.svg b/examples/example-sveltekit/src/lib/assets/favicon.svg
new file mode 100644
index 000000000..cc5dc66a3
--- /dev/null
+++ b/examples/example-sveltekit/src/lib/assets/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/examples/example-sveltekit/src/lib/attrs.ts b/examples/example-sveltekit/src/lib/attrs.ts
new file mode 100644
index 000000000..3f97cfea1
--- /dev/null
+++ b/examples/example-sveltekit/src/lib/attrs.ts
@@ -0,0 +1,24 @@
+import type * as stylex from '@stylexjs/stylex';
+
+/**
+ * Translates stylex.props to fit svelte attributes.
+ * @example
+ *
+ */
+export function attrs({ className, 'data-style-src': dataStyleSrc, style }: ReturnType) {
+ const result: {class?: string, style?: string, 'data-style-src'?: string} = {};
+ // Convert className to class
+ if (className != null && className !== '') {
+ result.class = className;
+ }
+ // Convert style object to string
+ if (style != null && Object.keys(style).length > 0) {
+ result.style = Object.keys(style)
+ .map((key) => `${key}:${style[key]};`)
+ .join('');
+ }
+ if (dataStyleSrc != null && dataStyleSrc !== '') {
+ result['data-style-src'] = dataStyleSrc;
+ }
+ return result;
+}
\ No newline at end of file
diff --git a/examples/example-sveltekit/src/lib/index.ts b/examples/example-sveltekit/src/lib/index.ts
new file mode 100644
index 000000000..602c42fdd
--- /dev/null
+++ b/examples/example-sveltekit/src/lib/index.ts
@@ -0,0 +1,3 @@
+// place files you want to import through the `$lib` alias in this folder.
+
+export * from "./attrs";
\ No newline at end of file
diff --git a/examples/example-sveltekit/src/routes/+layout.svelte b/examples/example-sveltekit/src/routes/+layout.svelte
new file mode 100644
index 000000000..c11c24b78
--- /dev/null
+++ b/examples/example-sveltekit/src/routes/+layout.svelte
@@ -0,0 +1,19 @@
+
+
+
+
+ {#if import.meta.env.DEV}
+
+ {/if}
+
+
+{@render children()}
diff --git a/examples/example-sveltekit/src/routes/+page.svelte b/examples/example-sveltekit/src/routes/+page.svelte
new file mode 100644
index 000000000..8eecaf4f8
--- /dev/null
+++ b/examples/example-sveltekit/src/routes/+page.svelte
@@ -0,0 +1,30 @@
+
+
+
+
\ No newline at end of file
diff --git a/examples/example-sveltekit/static/robots.txt b/examples/example-sveltekit/static/robots.txt
new file mode 100644
index 000000000..b6dd6670c
--- /dev/null
+++ b/examples/example-sveltekit/static/robots.txt
@@ -0,0 +1,3 @@
+# allow crawling everything by default
+User-agent: *
+Disallow:
diff --git a/examples/example-sveltekit/svelte.config.js b/examples/example-sveltekit/svelte.config.js
new file mode 100644
index 000000000..d1afe2a94
--- /dev/null
+++ b/examples/example-sveltekit/svelte.config.js
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+import adapter from '@sveltejs/adapter-auto';
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ // Consult https://svelte.dev/docs/kit/integrations
+ // for more information about preprocessors
+ preprocess: vitePreprocess(),
+
+ kit: {
+ // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
+ // If your environment is not supported, or you settled on a specific environment, switch out the adapter.
+ // See https://svelte.dev/docs/kit/adapters for more information about adapters.
+ adapter: adapter(),
+ },
+};
+
+export default config;
diff --git a/examples/example-sveltekit/tsconfig.json b/examples/example-sveltekit/tsconfig.json
new file mode 100644
index 000000000..2c2ed3c4d
--- /dev/null
+++ b/examples/example-sveltekit/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "rewriteRelativeImportExtensions": true,
+ "allowJs": true,
+ "checkJs": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": true,
+ "moduleResolution": "bundler"
+ }
+ // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
+ // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
+ //
+ // To make changes to top-level options such as include and exclude, we recommend extending
+ // the generated config; see https://svelte.dev/docs/kit/configuration#typescript
+}
diff --git a/examples/example-sveltekit/vite.config.ts b/examples/example-sveltekit/vite.config.ts
new file mode 100644
index 000000000..0160b0e15
--- /dev/null
+++ b/examples/example-sveltekit/vite.config.ts
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+import { sveltekit } from '@sveltejs/kit/vite';
+import { defineConfig } from 'vite';
+import stylex from '@stylexjs/unplugin';
+
+export default defineConfig({
+ plugins: [
+ sveltekit(),
+ // @ts-expect-error - ignore for now
+ {
+ ...stylex.vite({
+ useCSSLayers: true,
+ enableFontSizePxToRem: true,
+ }),
+ enforce: undefined,
+ },
+ ],
+});
diff --git a/packages/@stylexjs/unplugin/src/index.js b/packages/@stylexjs/unplugin/src/index.js
index 74fc3adb6..fd5b7c5ad 100644
--- a/packages/@stylexjs/unplugin/src/index.js
+++ b/packages/@stylexjs/unplugin/src/index.js
@@ -425,7 +425,7 @@ const unpluginInstance = createUnplugin((userOptions = {}, metaOptions) => {
// Core code transform
async transform(code, id) {
// Only handle JS-like files; avoid parsing CSS/JSON/etc
- const JS_LIKE_RE = /\.[cm]?[jt]sx?(\?|$)/;
+ const JS_LIKE_RE = /\.([cm]?[jt]sx?|svelte)(\?|$)/;
if (!JS_LIKE_RE.test(id)) return null;
if (!shouldHandle(code)) return null;
diff --git a/packages/docs/content/docs/learn/installation/vite/meta.json b/packages/docs/content/docs/learn/installation/vite/meta.json
index 2549f93b3..04ad28f0c 100644
--- a/packages/docs/content/docs/learn/installation/vite/meta.json
+++ b/packages/docs/content/docs/learn/installation/vite/meta.json
@@ -4,6 +4,7 @@
"./vite-react.mdx",
"./vite-rsc.mdx",
"./react-router.mdx",
+ "./sveltekit.mdx",
"./redwoodsdk.mdx",
"./waku.mdx"
]
diff --git a/packages/docs/content/docs/learn/installation/vite/sveltekit.mdx b/packages/docs/content/docs/learn/installation/vite/sveltekit.mdx
new file mode 100644
index 000000000..34f4acfd6
--- /dev/null
+++ b/packages/docs/content/docs/learn/installation/vite/sveltekit.mdx
@@ -0,0 +1,57 @@
+---
+title: 'SvelteKit'
+---
+
+[`examples/example-sveltekit`](https://github.com/facebook/stylex/tree/main/examples/example-sveltekit)
+uses SvelteKit with StyleX compiled by `@stylexjs/unplugin`.
+
+## Vite configuration
+
+```ts title="vite.config.ts"
+import { sveltekit } from '@sveltejs/kit/vite';
+import { defineConfig } from 'vite';
+import stylex from '@stylexjs/unplugin';
+
+export default defineConfig({
+ plugins: [
+ sveltekit(),
+ {
+ ...stylex.vite({
+ useCSSLayers: true,
+ }),
+ enforce: undefined,
+ },
+ ],
+});
+```
+
+## CSS entrypoint
+
+Ensure that there is one CSS file that is imported from your root layout
+component.
+
+## CSS Link and Hot Reloading during development
+
+Ensure that the virtual CSS file and script for hot reloading styles are part of
+your bundle to enable hot reloading during development.
+
+In your root `+layout.svelte` file, add the following to the script tag and ``:
+
+```svelte title="src/routes/+layout.svelte"
+
+
+
+ {#if import.meta.env.DEV}
+
+ {/if}
+
+
+{@render children()}
+```
diff --git a/yarn.lock b/yarn.lock
index 3ef1a270b..00c8954ff 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3554,7 +3554,7 @@
"@jridgewell/sourcemap-codec" "^1.5.0"
"@jridgewell/trace-mapping" "^0.3.24"
-"@jridgewell/remapping@^2.3.5":
+"@jridgewell/remapping@^2.3.4", "@jridgewell/remapping@^2.3.5":
version "2.3.5"
resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz"
integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
@@ -3575,7 +3575,7 @@
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.25"
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5":
version "1.5.5"
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz"
integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
@@ -5158,6 +5158,53 @@
"@storybook/global" "^5.0.0"
"@storybook/react-dom-shim" "9.1.16"
+"@sveltejs/acorn-typescript@^1.0.5":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz#69c746a7c232094c117c50dedbd1279fc64887b7"
+ integrity sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==
+
+"@sveltejs/adapter-auto@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@sveltejs/adapter-auto/-/adapter-auto-7.0.0.tgz#e3f257a0d1be3383f6cd0c146aed8d470b33a7fe"
+ integrity sha512-ImDWaErTOCkRS4Gt+5gZuymKFBobnhChXUZ9lhUZLahUgvA4OOvRzi3sahzYgbxGj5nkA6OV0GAW378+dl/gyw==
+
+"@sveltejs/kit@^2.49.1":
+ version "2.49.4"
+ resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-2.49.4.tgz#f1ddd9e5592a05efb8c93d061e1ee890c11473a8"
+ integrity sha512-JFtOqDoU0DI/+QSG8qnq5bKcehVb3tCHhOG4amsSYth5/KgO4EkJvi42xSAiyKmXAAULW1/Zdb6lkgGEgSxdZg==
+ dependencies:
+ "@standard-schema/spec" "^1.0.0"
+ "@sveltejs/acorn-typescript" "^1.0.5"
+ "@types/cookie" "^0.6.0"
+ acorn "^8.14.1"
+ cookie "^0.6.0"
+ devalue "^5.3.2"
+ esm-env "^1.2.2"
+ kleur "^4.1.5"
+ magic-string "^0.30.5"
+ mrmime "^2.0.0"
+ sade "^1.8.1"
+ set-cookie-parser "^2.6.0"
+ sirv "^3.0.0"
+
+"@sveltejs/vite-plugin-svelte-inspector@^5.0.0":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.2.tgz#81302822c29d530cfe707c795cca014ef00e9c1e"
+ integrity sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==
+ dependencies:
+ obug "^2.1.0"
+
+"@sveltejs/vite-plugin-svelte@^6.2.1":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.4.tgz#f3a1dac0eba70a053bd750e1a15f7fb1ae71fa4f"
+ integrity sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA==
+ dependencies:
+ "@sveltejs/vite-plugin-svelte-inspector" "^5.0.0"
+ deepmerge "^4.3.1"
+ magic-string "^0.30.21"
+ obug "^2.1.0"
+ vitefu "^1.1.1"
+
"@svgr/babel-plugin-add-jsx-attribute@^6.5.1":
version "6.5.1"
resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz"
@@ -5522,6 +5569,11 @@
dependencies:
"@types/node" "*"
+"@types/cookie@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
+ integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
+
"@types/debug@^4.0.0":
version "4.1.12"
resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz"
@@ -5569,7 +5621,7 @@
dependencies:
"@types/estree" "*"
-"@types/estree@*", "@types/estree@1.0.8", "@types/estree@^1.0.0", "@types/estree@^1.0.6", "@types/estree@^1.0.8":
+"@types/estree@*", "@types/estree@1.0.8", "@types/estree@^1.0.0", "@types/estree@^1.0.5", "@types/estree@^1.0.6", "@types/estree@^1.0.8":
version "1.0.8"
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz"
integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
@@ -6951,7 +7003,7 @@ acorn@8.14.0:
resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz"
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
-acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.15.0, acorn@^8.9.0:
+acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.12.1, acorn@^8.14.0, acorn@^8.14.1, acorn@^8.15.0, acorn@^8.9.0:
version "8.15.0"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz"
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
@@ -7232,7 +7284,7 @@ aria-query@5.3.0:
dependencies:
dequal "^2.0.3"
-aria-query@^5.0.0, aria-query@^5.3.2:
+aria-query@^5.0.0, aria-query@^5.3.1, aria-query@^5.3.2:
version "5.3.2"
resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz"
integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==
@@ -8192,7 +8244,7 @@ chokidar@^3.4.2, chokidar@^3.5.3, chokidar@^3.6.0:
optionalDependencies:
fsevents "~2.3.2"
-chokidar@^4.0.3, chokidar@~4.0.0:
+chokidar@^4.0.1, chokidar@^4.0.3, chokidar@~4.0.0:
version "4.0.3"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz"
integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==
@@ -8626,6 +8678,11 @@ cookie@0.7.1:
resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz"
integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
+cookie@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
+ integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
+
cookie@^0.7.1:
version "0.7.2"
resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz"
@@ -9310,6 +9367,11 @@ detect-port@^1.3.0:
address "^1.0.1"
debug "4"
+devalue@^5.3.2, devalue@^5.5.0:
+ version "5.6.1"
+ resolved "https://registry.yarnpkg.com/devalue/-/devalue-5.6.1.tgz#f4c0a6e71d1a2bc50c02f9ca3c54ecafeb6a0445"
+ integrity sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==
+
devlop@^1.0.0, devlop@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz"
@@ -10241,6 +10303,11 @@ eslint@^9.36.0, eslint@^9.39.1:
natural-compare "^1.4.0"
optionator "^0.9.3"
+esm-env@^1.2.1, esm-env@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.2.2.tgz#263c9455c55861f41618df31b20cb571fc20b75e"
+ integrity sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==
+
esniff@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz"
@@ -10281,6 +10348,13 @@ esquery@^1.4.0, esquery@^1.4.2, esquery@^1.5.0:
dependencies:
estraverse "^5.1.0"
+esrap@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/esrap/-/esrap-2.2.1.tgz#cbe28fe94cd7c75b158609d602f5e345bae21259"
+ integrity sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.15"
+
esrecurse@^4.3.0:
version "4.3.0"
resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
@@ -12603,7 +12677,7 @@ is-reference@1.2.1:
dependencies:
"@types/estree" "*"
-is-reference@^3.0.2:
+is-reference@^3.0.2, is-reference@^3.0.3:
version "3.0.3"
resolved "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz"
integrity sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==
@@ -13617,6 +13691,11 @@ local-pkg@^1.0.0:
pkg-types "^2.3.0"
quansync "^0.2.11"
+locate-character@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974"
+ integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==
+
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
@@ -13785,7 +13864,7 @@ lz-string@^1.4.4, lz-string@^1.5.0:
resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz"
integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
-magic-string@0.30.21, magic-string@^0.30.0, magic-string@^0.30.17, magic-string@^0.30.19, magic-string@^0.30.21, magic-string@^0.30.3, magic-string@~0.30.17:
+magic-string@0.30.21, magic-string@^0.30.0, magic-string@^0.30.11, magic-string@^0.30.17, magic-string@^0.30.19, magic-string@^0.30.21, magic-string@^0.30.3, magic-string@^0.30.5, magic-string@~0.30.17:
version "0.30.21"
resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz"
integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==
@@ -14763,6 +14842,11 @@ mlly@^1.7.4:
pkg-types "^1.3.1"
ufo "^1.6.1"
+mri@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
+ integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
+
mrmime@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz"
@@ -15097,7 +15181,7 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-obug@^2.1.1:
+obug@^2.1.0, obug@^2.1.1:
version "2.1.1"
resolved "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz"
integrity sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==
@@ -17315,6 +17399,13 @@ rxjs@^7.5.4:
dependencies:
tslib "^2.1.0"
+sade@^1.7.4, sade@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701"
+ integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==
+ dependencies:
+ mri "^1.1.0"
+
safe-array-concat@^1.1.2, safe-array-concat@^1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz"
@@ -17881,7 +17972,7 @@ sirv@^2.0.3:
mrmime "^2.0.0"
totalist "^3.0.0"
-sirv@^3.0.1:
+sirv@^3.0.0, sirv@^3.0.1:
version "3.0.2"
resolved "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz"
integrity sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==
@@ -18574,6 +18665,38 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+svelte-check@^4.3.4:
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-4.3.5.tgz#2e9e05eca63fdb5523a37c666f47614d36c11212"
+ integrity sha512-e4VWZETyXaKGhpkxOXP+B/d0Fp/zKViZoJmneZWe/05Y2aqSKj3YN2nLfYPJBQ87WEiY4BQCQ9hWGu9mPT1a1Q==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.25"
+ chokidar "^4.0.1"
+ fdir "^6.2.0"
+ picocolors "^1.0.0"
+ sade "^1.7.4"
+
+svelte@^5.45.6:
+ version "5.46.3"
+ resolved "https://registry.yarnpkg.com/svelte/-/svelte-5.46.3.tgz#70234f0d44e92d3e0b199c5b5d2db07178ac6b7d"
+ integrity sha512-Y5juST3x+/ySty5tYJCVWa6Corkxpt25bUZQHqOceg9xfMUtDsFx6rCsG6cYf1cA6vzDi66HIvaki0byZZX95A==
+ dependencies:
+ "@jridgewell/remapping" "^2.3.4"
+ "@jridgewell/sourcemap-codec" "^1.5.0"
+ "@sveltejs/acorn-typescript" "^1.0.5"
+ "@types/estree" "^1.0.5"
+ acorn "^8.12.1"
+ aria-query "^5.3.1"
+ axobject-query "^4.1.0"
+ clsx "^2.1.1"
+ devalue "^5.5.0"
+ esm-env "^1.2.1"
+ esrap "^2.2.1"
+ is-reference "^3.0.3"
+ locate-character "^3.0.0"
+ magic-string "^0.30.11"
+ zimmerframe "^1.1.2"
+
svg-parser@^2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz"
@@ -19735,6 +19858,20 @@ vite@^7.2.0:
optionalDependencies:
fsevents "~2.3.3"
+vite@^7.2.6:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.1.tgz#7f6cfe8fb9074138605e822a75d9d30b814d6507"
+ integrity sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==
+ dependencies:
+ esbuild "^0.27.0"
+ fdir "^6.5.0"
+ picomatch "^4.0.3"
+ postcss "^8.5.6"
+ rollup "^4.43.0"
+ tinyglobby "^0.2.15"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
vitefu@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz"
@@ -20501,7 +20638,7 @@ youch@4.1.0-beta.10:
cookie "^1.0.2"
youch-core "^0.3.3"
-zimmerframe@^1.0.0:
+zimmerframe@^1.0.0, zimmerframe@^1.1.2:
version "1.1.4"
resolved "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz"
integrity sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==