diff --git a/.github/ISSUE_TEMPLATE/02-bug_report.yml b/.github/ISSUE_TEMPLATE/02-bug_report.yml
index 8a3c739f0..871efdfbe 100644
--- a/.github/ISSUE_TEMPLATE/02-bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/02-bug_report.yml
@@ -31,6 +31,7 @@ body:
- label: "@tabler/icons-react-native"
- label: "@tabler/icons-solid"
- label: "@tabler/icons-svelte"
+ - label: "@tabler/icons-svelte-runes"
- label: "@tabler/icons-vue"
- label: Figma plugin
- label: source/main
diff --git a/.github/labeler.yml b/.github/labeler.yml
index ec06d908d..551b2ece9 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -38,12 +38,18 @@
- any-glob-to-any-file:
- 'packages/icons-preact/*'
-# For Svelte package
+# For Svelte 4 and below package
🔗 svelte package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-svelte/*'
+# For Svelte 5 package
+🔗 svelte-runes package:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'packages/icons-svelte-runes/*'
+
# For SolidJS package
🔗 solid package:
- changed-files:
diff --git a/README.md b/README.md
index b594da7cf..d16e09f93 100644
--- a/README.md
+++ b/README.md
@@ -232,7 +232,7 @@ After importing the _IconsModule_ in your feature or shared module, use the icon
For more usage documentation refer to [the official documentation](https://github.com/pierreavn/angular-tabler-icons).
-### Svelte
+### Svelte 4 and below
Svelte components available through [`@tabler/icons-svelte`](https://github.com/tabler/tabler-icons/tree/master/packages/icons-svelte) package.
@@ -248,6 +248,21 @@ Svelte components available through [`@tabler/icons-svelte`](https://github.com/
```
+### Svelte 5
+Svelte 5 components available through [`@tabler/icons-svelte-runes`](https://www.npmjs.com/package/@tabler/icons-svelte-runes) package.
+
+```js
+
+
+
+
+
+
+
+```
+
## CDN
All files included in `@tabler/icons` npm package are available over a CDN.
diff --git a/docs/icons/svelte-runes.mdx b/docs/icons/svelte-runes.mdx
new file mode 100644
index 000000000..fe0bebae2
--- /dev/null
+++ b/docs/icons/svelte-runes.mdx
@@ -0,0 +1,40 @@
+---
+title: Tabler Icons for Svelte 5
+---
+
+
+
+## Installation
+
+
+
+or just [download from Github](https://github.com/tabler/tabler-icons/releases).
+
+## How to use
+
+It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
+
+```sveltehtml
+
+
+
+
+
+```
+
+You can pass additional props to adjust the icon.
+
+```html
+
+```
+
+### Props
+
+| name | type | default |
+| ------------- | -------- | ------------ |
+| `size` | _Number_ | 24 |
+| `color` | _String_ | currentColor |
+| `stroke` | _Number_ | 2 |
+| `class` | _String_ | |
diff --git a/package.json b/package.json
index 8e640b81e..56b572637 100644
--- a/package.json
+++ b/package.json
@@ -33,13 +33,14 @@
"validate": "node ./.build/validate-icons.mjs",
"release": "git pull && release-it --verbose",
"build:copy": "rm -rf ./icons && mkdir ./icons && cp ./_site/tags.json tags.json && cp ./_site/icons/* ./icons/ && rm -rf ./_site/",
- "build:packages": "pnpm run build:icons && pnpm run build:sprite && pnpm run build:react && pnpm run build:react-native && pnpm run build:preact && pnpm run build:solidjs && pnpm run build:svelte && pnpm run build:vue && pnpm run build:png && pnpm run build:pdf && pnpm run build:esp && pnpm run build:webfont",
+ "build:packages": "pnpm run build:icons && pnpm run build:sprite && pnpm run build:react && pnpm run build:react-native && pnpm run build:preact && pnpm run build:solidjs && pnpm run build:svelte && pnpm run build:svelte-runes && pnpm run build:vue && pnpm run build:png && pnpm run build:pdf && pnpm run build:esp && pnpm run build:webfont",
"build:icons": "pnpm --filter @tabler/icons build",
"build:react": "pnpm --filter @tabler/icons-react build",
"build:react-native": "pnpm --filter @tabler/icons-react-native build",
"build:preact": "pnpm --filter @tabler/icons-preact build",
"build:solidjs": "pnpm --filter @tabler/icons-solidjs build",
"build:svelte": "pnpm --filter @tabler/icons-svelte build",
+ "build:svelte-runes": "pnpm --filter @tabler/icons-svelte-runes build",
"build:vue": "pnpm --filter @tabler/icons-vue build",
"build:png": "pnpm --filter @tabler/icons-png build",
"build:pdf": "pnpm --filter @tabler/icons-pdf build",
diff --git a/packages/icons-svelte-runes/.gitignore b/packages/icons-svelte-runes/.gitignore
new file mode 100644
index 000000000..bf11120f6
--- /dev/null
+++ b/packages/icons-svelte-runes/.gitignore
@@ -0,0 +1,4 @@
+src/icons/*.svelte
+.svelte-kit
+src/aliases.ts
+src/icons-list.ts
diff --git a/packages/icons-svelte-runes/README.md b/packages/icons-svelte-runes/README.md
new file mode 100644
index 000000000..edfb7727f
--- /dev/null
+++ b/packages/icons-svelte-runes/README.md
@@ -0,0 +1,207 @@
+# Tabler Icons for Svelte (Runes)
+
+
+
+
+
+
+Implementation of the Tabler Icons library for Svelte 5+ using the new runes reactivity system.
+
+
+
+ Browse all icons at tabler-icons.io →
+
+
+
+
+
+
+
+## Why This Package?
+
+This package is specifically built for **Svelte 5+** using the new **runes** reactivity system (`$props()`, `$derived`, etc.).
+
+- **For Svelte 5+ projects:** Use this package (`@tabler/icons-svelte-runes`)
+- **For Svelte 3/4 projects:** Use [`@tabler/icons-svelte`](https://www.npmjs.com/package/@tabler/icons-svelte)
+
+## Installation
+
+```bash
+pnpm add @tabler/icons-svelte-runes
+```
+
+or
+
+```bash
+npm install @tabler/icons-svelte-runes
+```
+
+or
+
+```bash
+yarn add @tabler/icons-svelte-runes
+```
+
+## Requirements
+
+- **Svelte 5.0+** with runes enabled
+- For older Svelte versions, use `@tabler/icons-svelte` instead
+
+## Usage
+
+It's built with ES modules so it's completely tree-shakable. Each icon can be imported as a component.
+
+```svelte
+
+
+
+```
+
+You can pass additional props to adjust the icon:
+
+```svelte
+
+```
+
+### Props
+
+| name | type | default |
+| -------- | ------------------ | ------------ |
+| `size` | `number \| string` | 24 |
+| `color` | `string` | currentColor |
+| `stroke` | `number \| string` | 2 |
+| `class` | `string` | '' |
+
+All other HTML attributes are forwarded to the SVG element.
+
+## TypeScript Support
+
+The package includes full TypeScript definitions. Icons are typed as Svelte 5 `Component`:
+
+```typescript
+import type { Icon } from '@tabler/icons-svelte-runes';
+import { IconHeart } from '@tabler/icons-svelte-runes';
+
+// Icon is compatible with Svelte 5's Component type
+const MyIcon: Icon = IconHeart;
+```
+
+### Using Icons in Props
+
+When passing icons as props, use the `Component` type or `any` for maximum compatibility:
+
+```svelte
+
+
+
+```
+
+## Examples
+
+### Basic Icon Usage
+
+```svelte
+
+
+
+
+
+```
+
+### Dynamic Icons with Runes
+
+```svelte
+
+
+
+
+
+
+
+```
+
+### Reactive Size with $derived
+
+```svelte
+
+
+
+
+```
+
+## Migrating from @tabler/icons-svelte
+
+The API is identical, just change the package name:
+
+```diff
+- import { IconHeart } from '@tabler/icons-svelte';
++ import { IconHeart } from '@tabler/icons-svelte-runes';
+```
+
+No other changes needed! Your existing props and usage remain the same.
+
+## What's Different from @tabler/icons-svelte?
+
+Internally, this package uses Svelte 5's new features:
+
+- `$props()` instead of `export let`
+- `$derived` for computed values
+- Modern TypeScript `Component` type
+- Optimized for Svelte 5's fine-grained reactivity
+
+**Result:** Better performance and smaller bundle sizes in Svelte 5 projects!
+
+## Sponsors
+
+**If you want to support this project, you can [become a sponsor on GitHub](https://github.com/sponsors/codecalm) or just [donate on PayPal](https://paypal.me/codecalm) :)**
+
+
+
+
+
+## Contributing
+
+For more info on how to contribute please see the [contribution guidelines](https://github.com/tabler/tabler-icons/blob/main/CONTRIBUTING.md).
+
+Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/tabler/tabler-icons/blob/main/packages/icons-svelte-runes/README.md)
+
+## License
+
+Tabler Icons is licensed under the [MIT License](https://github.com/tabler/tabler-icons/blob/master/LICENSE).
+
+## Sponsor Tabler
+
+
diff --git a/packages/icons-svelte-runes/build.mjs b/packages/icons-svelte-runes/build.mjs
new file mode 100644
index 000000000..6631f8c86
--- /dev/null
+++ b/packages/icons-svelte-runes/build.mjs
@@ -0,0 +1,41 @@
+#!/usr/bin/env node
+
+import { buildJsIcons, buildIconsList } from '../../.build/build-icons.mjs';
+
+const componentTemplate = ({ type, name, children, stringify }) => {
+ return `\
+
+
+`;
+};
+
+const aliasTemplate = ({ fromPascal, to }) =>
+ `export { default as Icon${fromPascal} } from './icons/${to}.svelte';\n`;
+
+const indexItemTemplate = ({ name, namePascal }) =>
+ `export { default as Icon${namePascal} } from './${name}.svelte';`;
+
+buildJsIcons({
+ name: 'icons-svelte-runes',
+ componentTemplate,
+ indexItemTemplate,
+ aliasTemplate,
+ extension: 'svelte',
+ key: false,
+ indexFile: 'index.ts',
+ pascalName: false,
+});
+
+buildIconsList('icons-svelte-runes');
diff --git a/packages/icons-svelte-runes/package.json b/packages/icons-svelte-runes/package.json
new file mode 100644
index 000000000..cbf438d13
--- /dev/null
+++ b/packages/icons-svelte-runes/package.json
@@ -0,0 +1,83 @@
+{
+ "name": "@tabler/icons-svelte-runes",
+ "version": "1.0.0",
+ "license": "MIT",
+ "author": "codecalm",
+ "description": "A set of free MIT-licensed high-quality SVG icons for Svelte 5+ using runes",
+ "homepage": "https://tabler-icons.io",
+ "bugs": {
+ "url": "https://github.com/tabler/tabler-icons/issues"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/codecalm"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/tabler/tabler-icons.git",
+ "directory": "packages/icons-svelte-runes"
+ },
+ "svelte": "./dist/tabler-icons-svelte-runes.js",
+ "types": "./dist/tabler-icons-svelte-runes.d.ts",
+ "type": "module",
+ "amdName": "TablerIconsSvelteRunes",
+ "exports": {
+ ".": {
+ "types": "./dist/tabler-icons-svelte-runes.d.ts",
+ "svelte": "./dist/tabler-icons-svelte-runes.js",
+ "default": "./dist/tabler-icons-svelte-runes.js"
+ },
+ "./icons": {
+ "types": "./dist/tabler-icons-svelte-runes.d.ts",
+ "svelte": "./dist/tabler-icons-svelte-runes.js"
+ },
+ "./icons/*": {
+ "types": "./dist/icons/*.svelte.d.ts",
+ "svelte": "./dist/icons/*.svelte"
+ }
+ },
+ "sideEffects": false,
+ "files": [
+ "dist"
+ ],
+ "keywords": [
+ "svelte",
+ "svelte5",
+ "runes",
+ "icons",
+ "svg",
+ "tabler",
+ "tabler-icons",
+ "svelte-runes",
+ "ui"
+ ],
+ "scripts": {
+ "build": "pnpm run clean && pnpm run copy:license && pnpm run build:icons && pnpm run build:package",
+ "build:icons": "node build.mjs",
+ "build:package": "svelte-package --input ./src",
+ "copy:license": "cp ../../LICENSE ./LICENSE",
+ "clean": "rm -rf dist && find . ! -name '.gitkeep' -path '*/src/icons/*' -exec rm -rf {} +",
+ "test": "vitest run",
+ "imports-check": "attw $(npm pack)"
+ },
+ "dependencies": {
+ "@tabler/icons": "3.35.0"
+ },
+ "devDependencies": {
+ "@sveltejs/package": "^2.3.7",
+ "@sveltejs/vite-plugin-svelte": "^5.0.3",
+ "@testing-library/jest-dom": "^6.6.3",
+ "@testing-library/svelte": "^5.2.9",
+ "@tsconfig/svelte": "^5.0.4",
+ "jest-serializer-html": "^7.1.0",
+ "jsdom": "^25.0.1",
+ "svelte": "^5.0.0",
+ "svelte-check": "^4.3.4",
+ "typescript": "^5.7.3",
+ "vite": "^7.2.7",
+ "vitest": "^3.0.8"
+ },
+ "peerDependencies": {
+ "svelte": "^5.0.0"
+ }
+}
diff --git a/packages/icons-svelte-runes/setupVitest.ts b/packages/icons-svelte-runes/setupVitest.ts
new file mode 100644
index 000000000..27e437b23
--- /dev/null
+++ b/packages/icons-svelte-runes/setupVitest.ts
@@ -0,0 +1,9 @@
+import { expect } from 'vitest';
+import * as matchers from '@testing-library/jest-dom/matchers';
+import htmlSerializer from 'jest-serializer-html';
+
+// Extend Vitest's expect with jest-dom matchers
+expect.extend(matchers);
+
+// Add HTML serializer for snapshots
+expect.addSnapshotSerializer(htmlSerializer);
diff --git a/packages/icons-svelte-runes/src/Icon.svelte b/packages/icons-svelte-runes/src/Icon.svelte
new file mode 100644
index 000000000..5e2a5b3b6
--- /dev/null
+++ b/packages/icons-svelte-runes/src/Icon.svelte
@@ -0,0 +1,53 @@
+
+
+
diff --git a/packages/icons-svelte-runes/src/defaultAttributes.ts b/packages/icons-svelte-runes/src/defaultAttributes.ts
new file mode 100644
index 000000000..70bf935db
--- /dev/null
+++ b/packages/icons-svelte-runes/src/defaultAttributes.ts
@@ -0,0 +1,25 @@
+import type { Attrs } from "./types.js";
+
+const defaultAttributes: Record<"outline" | "filled", Attrs> = {
+ outline: {
+ xmlns: 'http://www.w3.org/2000/svg',
+ width: 24,
+ height: 24,
+ viewBox: '0 0 24 24',
+ fill: 'none',
+ stroke: 'currentColor',
+ 'stroke-width': 2,
+ 'stroke-linecap': 'round',
+ 'stroke-linejoin': 'round',
+ },
+ filled: {
+ xmlns: 'http://www.w3.org/2000/svg',
+ width: 24,
+ height: 24,
+ viewBox: '0 0 24 24',
+ fill: 'currentColor',
+ stroke: 'none'
+ },
+};
+
+export default defaultAttributes;
diff --git a/packages/icons-svelte-runes/src/icons/.gitkeep b/packages/icons-svelte-runes/src/icons/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/packages/icons-svelte-runes/src/tabler-icons-svelte-runes.ts b/packages/icons-svelte-runes/src/tabler-icons-svelte-runes.ts
new file mode 100644
index 000000000..4453d1a90
--- /dev/null
+++ b/packages/icons-svelte-runes/src/tabler-icons-svelte-runes.ts
@@ -0,0 +1,7 @@
+export * from './icons/index.js';
+export * as icons from './icons/index.js';
+export * as iconsList from './icons-list.js';
+export * from './aliases.js';
+export { default as defaultAttributes } from './defaultAttributes.js';
+
+export type { Icon } from './types.js';
diff --git a/packages/icons-svelte-runes/src/types.ts b/packages/icons-svelte-runes/src/types.ts
new file mode 100644
index 000000000..555bee76d
--- /dev/null
+++ b/packages/icons-svelte-runes/src/types.ts
@@ -0,0 +1,17 @@
+import type { Component, Snippet } from 'svelte';
+import type { SVGAttributes, SvelteHTMLElements } from 'svelte/elements';
+
+export type Attrs = SVGAttributes;
+
+export type IconNode = [elementName: keyof SvelteHTMLElements, attrs: Attrs][];
+
+export interface IconProps extends Omit {
+ color?: string;
+ size?: number | string;
+ stroke?: number | string;
+ class?: string;
+ children?: Snippet;
+}
+
+// Svelte 5 compatible icon type
+export type Icon = Component;
diff --git a/packages/icons-svelte-runes/svelte.config.js b/packages/icons-svelte-runes/svelte.config.js
new file mode 100644
index 000000000..6005ca8b3
--- /dev/null
+++ b/packages/icons-svelte-runes/svelte.config.js
@@ -0,0 +1,8 @@
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+
+export default {
+ preprocess: vitePreprocess(),
+ compilerOptions: {
+ runes: true,
+ },
+};
diff --git a/packages/icons-svelte-runes/test.spec.js b/packages/icons-svelte-runes/test.spec.js
new file mode 100644
index 000000000..8ffa85257
--- /dev/null
+++ b/packages/icons-svelte-runes/test.spec.js
@@ -0,0 +1,132 @@
+import { describe, it, expect, afterEach } from 'vitest';
+import { render, cleanup } from '@testing-library/svelte';
+import { IconAccessible, IconAccessibleFilled } from './src/tabler-icons-svelte-runes.js';
+
+describe('Svelte Runes Icon component', () => {
+ afterEach(() => cleanup());
+
+ it('should render icon component', () => {
+ const { container } = render(IconAccessible);
+ expect(container.getElementsByTagName('svg').length).toBeGreaterThan(0);
+ });
+
+ it('should add a class to the element', () => {
+ const { container } = render(IconAccessible, {
+ props: {
+ class: 'test-class',
+ },
+ });
+
+ const svg = container.getElementsByTagName('svg')[0];
+
+ expect(svg).toHaveClass('test-class');
+ expect(svg).toHaveClass('tabler-icon');
+ expect(svg).toHaveClass('tabler-icon-accessible');
+ });
+
+ it('should add a style attribute to the element', () => {
+ const { container } = render(IconAccessible, {
+ props: {
+ style: 'color: red',
+ },
+ });
+
+ const svg = container.getElementsByTagName('svg')[0];
+
+ expect(svg).toHaveStyle('color: rgb(255, 0, 0)');
+ });
+
+ it('should update svg attributes when there are props passed to the component', () => {
+ const { container } = render(IconAccessible, {
+ props: {
+ size: 48,
+ color: 'red',
+ stroke: 4,
+ },
+ });
+
+ const svg = container.getElementsByTagName('svg')[0];
+
+ expect(svg.getAttribute('width')).toBe('48');
+ expect(svg.getAttribute('stroke')).toBe('red');
+ expect(svg.getAttribute('stroke-width')).toBe('4');
+ });
+
+ it('should accept stroke as a number', () => {
+ const { container } = render(IconAccessible, {
+ props: {
+ stroke: 3,
+ },
+ });
+
+ const svg = container.getElementsByTagName('svg')[0];
+
+ expect(svg.getAttribute('stroke-width')).toBe('3');
+ });
+
+ it('should accept size as a string', () => {
+ const { container } = render(IconAccessible, {
+ props: {
+ size: '100%',
+ },
+ });
+
+ const svg = container.getElementsByTagName('svg')[0];
+
+ expect(svg.getAttribute('width')).toBe('100%');
+ expect(svg.getAttribute('height')).toBe('100%');
+ });
+
+ it('should update svg attributes when there are props passed to the filled version of component', () => {
+ const { container } = render(IconAccessibleFilled, {
+ props: {
+ size: 48,
+ color: 'red',
+ },
+ });
+ const svg = container.getElementsByTagName('svg')[0];
+
+ expect(svg.getAttribute('width')).toBe('48');
+ expect(svg.getAttribute('fill')).toBe('red');
+ expect(svg.getAttribute('stroke')).toBe('none');
+ expect(svg.getAttribute('stroke-width')).toBe(null);
+ });
+
+ it('should render children content using snippets', () => {
+ const { container } = render(IconAccessible, {
+ props: {},
+ // Test that children can be passed (even though we can't easily test snippet content in this setup)
+ });
+
+ const svg = container.getElementsByTagName('svg')[0];
+ expect(svg).toBeDefined();
+ });
+
+ it('should match snapshot', () => {
+ const { container } = render(IconAccessible);
+ expect(container.innerHTML).toMatchInlineSnapshot(`
+
+ `);
+ });
+});
diff --git a/packages/icons-svelte-runes/tsconfig.json b/packages/icons-svelte-runes/tsconfig.json
new file mode 100644
index 000000000..3db5e978c
--- /dev/null
+++ b/packages/icons-svelte-runes/tsconfig.json
@@ -0,0 +1,27 @@
+{
+ "extends": "@tsconfig/svelte/tsconfig.json",
+ "compilerOptions": {
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "allowJs": true,
+ "checkJs": true,
+ "isolatedModules": true,
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+ "strict": true,
+ "types": ["vitest/globals", "@testing-library/jest-dom"]
+ },
+ "include": [
+ "src/**/*.d.ts",
+ "src/**/*.ts",
+ "src/**/*.js",
+ "src/**/*.svelte",
+ "tests/**/*.ts",
+ "*.spec.js",
+ "vitest-setup.d.ts"
+ ],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/packages/icons-svelte-runes/vitest-setup.d.ts b/packages/icons-svelte-runes/vitest-setup.d.ts
new file mode 100644
index 000000000..cd2577820
--- /dev/null
+++ b/packages/icons-svelte-runes/vitest-setup.d.ts
@@ -0,0 +1,7 @@
+///
+import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers';
+
+declare module 'vitest' {
+ interface Assertion extends jest.Matchers, TestingLibraryMatchers {}
+ interface AsymmetricMatchersContaining extends TestingLibraryMatchers {}
+}
diff --git a/packages/icons-svelte-runes/vitest.config.ts b/packages/icons-svelte-runes/vitest.config.ts
new file mode 100644
index 000000000..c6f14b4d3
--- /dev/null
+++ b/packages/icons-svelte-runes/vitest.config.ts
@@ -0,0 +1,14 @@
+import { defineConfig } from 'vitest/config';
+import { svelte } from '@sveltejs/vite-plugin-svelte';
+
+export default defineConfig({
+ plugins: [svelte()],
+ test: {
+ globals: true,
+ environment: 'jsdom',
+ setupFiles: './setupVitest.ts',
+ },
+ resolve: {
+ conditions: ['browser'],
+ },
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d947bac68..46f91f941 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -284,6 +284,49 @@ importers:
specifier: ^5.1.3
version: 5.1.4(sass@1.92.1)(svelte@4.2.20)(typescript@5.9.2)
+ packages/icons-svelte-runes:
+ dependencies:
+ '@tabler/icons':
+ specifier: 3.35.0
+ version: link:../icons
+ devDependencies:
+ '@sveltejs/package':
+ specifier: ^2.3.7
+ version: 2.5.1(svelte@5.46.0)(typescript@5.9.2)
+ '@sveltejs/vite-plugin-svelte':
+ specifier: ^5.0.3
+ version: 5.1.1(svelte@5.46.0)(vite@7.2.7)
+ '@testing-library/jest-dom':
+ specifier: ^6.6.3
+ version: 6.8.0
+ '@testing-library/svelte':
+ specifier: ^5.2.9
+ version: 5.2.9(svelte@5.46.0)(vite@7.2.7)(vitest@3.2.4)
+ '@tsconfig/svelte':
+ specifier: ^5.0.4
+ version: 5.0.5
+ jest-serializer-html:
+ specifier: ^7.1.0
+ version: 7.1.0
+ jsdom:
+ specifier: ^25.0.1
+ version: 25.0.1
+ svelte:
+ specifier: ^5.0.0
+ version: 5.46.0
+ svelte-check:
+ specifier: ^4.3.4
+ version: 4.3.4(svelte@5.46.0)(typescript@5.9.2)
+ typescript:
+ specifier: ^5.7.3
+ version: 5.9.2
+ vite:
+ specifier: ^7.2.7
+ version: 7.2.7(sass@1.92.1)
+ vitest:
+ specifier: ^3.0.8
+ version: 3.2.4(jsdom@25.0.1)(sass@1.92.1)
+
packages/icons-vue:
dependencies:
'@tabler/icons':
@@ -2038,6 +2081,15 @@ packages:
dev: true
optional: true
+ /@esbuild/aix-ppc64@0.25.12:
+ resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-arm64@0.20.2:
resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
engines: {node: '>=12'}
@@ -2056,6 +2108,15 @@ packages:
dev: true
optional: true
+ /@esbuild/android-arm64@0.25.12:
+ resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-arm@0.15.18:
resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
engines: {node: '>=12'}
@@ -2083,6 +2144,15 @@ packages:
dev: true
optional: true
+ /@esbuild/android-arm@0.25.12:
+ resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-x64@0.20.2:
resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
engines: {node: '>=12'}
@@ -2101,6 +2171,15 @@ packages:
dev: true
optional: true
+ /@esbuild/android-x64@0.25.12:
+ resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/darwin-arm64@0.20.2:
resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
engines: {node: '>=12'}
@@ -2119,6 +2198,15 @@ packages:
dev: true
optional: true
+ /@esbuild/darwin-arm64@0.25.12:
+ resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/darwin-x64@0.20.2:
resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
engines: {node: '>=12'}
@@ -2137,6 +2225,15 @@ packages:
dev: true
optional: true
+ /@esbuild/darwin-x64@0.25.12:
+ resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/freebsd-arm64@0.20.2:
resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
engines: {node: '>=12'}
@@ -2155,6 +2252,15 @@ packages:
dev: true
optional: true
+ /@esbuild/freebsd-arm64@0.25.12:
+ resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/freebsd-x64@0.20.2:
resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
engines: {node: '>=12'}
@@ -2173,6 +2279,15 @@ packages:
dev: true
optional: true
+ /@esbuild/freebsd-x64@0.25.12:
+ resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-arm64@0.20.2:
resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
engines: {node: '>=12'}
@@ -2191,6 +2306,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-arm64@0.25.12:
+ resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-arm@0.20.2:
resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
engines: {node: '>=12'}
@@ -2209,6 +2333,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-arm@0.25.12:
+ resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-ia32@0.20.2:
resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
engines: {node: '>=12'}
@@ -2227,6 +2360,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-ia32@0.25.12:
+ resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-loong64@0.15.18:
resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
engines: {node: '>=12'}
@@ -2254,6 +2396,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-loong64@0.25.12:
+ resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-mips64el@0.20.2:
resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
engines: {node: '>=12'}
@@ -2272,6 +2423,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-mips64el@0.25.12:
+ resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-ppc64@0.20.2:
resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
engines: {node: '>=12'}
@@ -2290,6 +2450,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-ppc64@0.25.12:
+ resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-riscv64@0.20.2:
resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
engines: {node: '>=12'}
@@ -2308,6 +2477,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-riscv64@0.25.12:
+ resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-s390x@0.20.2:
resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
engines: {node: '>=12'}
@@ -2326,6 +2504,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-s390x@0.25.12:
+ resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-x64@0.20.2:
resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
engines: {node: '>=12'}
@@ -2344,6 +2531,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-x64@0.25.12:
+ resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-arm64@0.25.12:
+ resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/netbsd-x64@0.20.2:
resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
engines: {node: '>=12'}
@@ -2362,6 +2567,24 @@ packages:
dev: true
optional: true
+ /@esbuild/netbsd-x64@0.25.12:
+ resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-arm64@0.25.12:
+ resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/openbsd-x64@0.20.2:
resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
engines: {node: '>=12'}
@@ -2380,6 +2603,24 @@ packages:
dev: true
optional: true
+ /@esbuild/openbsd-x64@0.25.12:
+ resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openharmony-arm64@0.25.12:
+ resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/sunos-x64@0.20.2:
resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
engines: {node: '>=12'}
@@ -2398,6 +2639,15 @@ packages:
dev: true
optional: true
+ /@esbuild/sunos-x64@0.25.12:
+ resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-arm64@0.20.2:
resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
engines: {node: '>=12'}
@@ -2416,6 +2666,15 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-arm64@0.25.12:
+ resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-ia32@0.20.2:
resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
engines: {node: '>=12'}
@@ -2434,6 +2693,15 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-ia32@0.25.12:
+ resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-x64@0.20.2:
resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
engines: {node: '>=12'}
@@ -2452,6 +2720,15 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-x64@0.25.12:
+ resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@gar/promisify@1.1.3:
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
dev: true
@@ -4324,6 +4601,14 @@ packages:
solid-js: 1.9.9
dev: true
+ /@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0):
+ resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==}
+ peerDependencies:
+ acorn: ^8.9.0
+ dependencies:
+ acorn: 8.15.0
+ dev: true
+
/@sveltejs/package@2.5.1(svelte@4.2.20)(typescript@5.9.2):
resolution: {integrity: sha512-n0XRW7H7rD2AbdDsTD1KjXBztU96eMMuxPYwL9C+ZS8H8M1mS5NgmqFaSe8wKR40RU1KjLsqSWMnzsxRfG2j+A==}
engines: {node: ^16.14 || >=18}
@@ -4341,6 +4626,23 @@ packages:
- typescript
dev: true
+ /@sveltejs/package@2.5.1(svelte@5.46.0)(typescript@5.9.2):
+ resolution: {integrity: sha512-n0XRW7H7rD2AbdDsTD1KjXBztU96eMMuxPYwL9C+ZS8H8M1mS5NgmqFaSe8wKR40RU1KjLsqSWMnzsxRfG2j+A==}
+ engines: {node: ^16.14 || >=18}
+ hasBin: true
+ peerDependencies:
+ svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1
+ dependencies:
+ chokidar: 4.0.3
+ kleur: 4.1.5
+ sade: 1.8.1
+ semver: 7.7.2
+ svelte: 5.46.0
+ svelte2tsx: 0.7.43(svelte@5.46.0)(typescript@5.9.2)
+ transitivePeerDependencies:
+ - typescript
+ dev: true
+
/@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.20)(vite@5.4.20):
resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
engines: {node: ^18.0.0 || >=20}
@@ -4357,6 +4659,22 @@ packages:
- supports-color
dev: true
+ /@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1)(svelte@5.46.0)(vite@7.2.7):
+ resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22}
+ peerDependencies:
+ '@sveltejs/vite-plugin-svelte': ^5.0.0
+ svelte: ^5.0.0
+ vite: ^6.0.0
+ dependencies:
+ '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.46.0)(vite@7.2.7)
+ debug: 4.4.3
+ svelte: 5.46.0
+ vite: 7.2.7(sass@1.92.1)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.20):
resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==}
engines: {node: ^18.0.0 || >=20}
@@ -4377,6 +4695,25 @@ packages:
- supports-color
dev: true
+ /@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.46.0)(vite@7.2.7):
+ resolution: {integrity: sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22}
+ peerDependencies:
+ svelte: ^5.0.0
+ vite: ^6.0.0
+ dependencies:
+ '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1)(svelte@5.46.0)(vite@7.2.7)
+ debug: 4.4.3
+ deepmerge: 4.3.1
+ kleur: 4.1.5
+ magic-string: 0.30.19
+ svelte: 5.46.0
+ vite: 7.2.7(sass@1.92.1)
+ vitefu: 1.1.1(vite@7.2.7)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@szmarczak/http-timer@5.0.1:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'}
@@ -4474,6 +4811,25 @@ packages:
svelte: 4.2.20
dev: true
+ /@testing-library/svelte@5.2.9(svelte@5.46.0)(vite@7.2.7)(vitest@3.2.4):
+ resolution: {integrity: sha512-p0Lg/vL1iEsEasXKSipvW9nBCtItQGhYvxL8OZ4w7/IDdC+LGoSJw4mMS5bndVFON/gWryitEhMr29AlO4FvBg==}
+ engines: {node: '>= 10'}
+ peerDependencies:
+ svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0
+ vite: '*'
+ vitest: '*'
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ vitest:
+ optional: true
+ dependencies:
+ '@testing-library/dom': 10.4.1
+ svelte: 5.46.0
+ vite: 7.2.7(sass@1.92.1)
+ vitest: 3.2.4(jsdom@25.0.1)(sass@1.92.1)
+ dev: true
+
/@testing-library/vue@8.1.0(@vue/compiler-sfc@3.5.21)(vue@3.5.21):
resolution: {integrity: sha512-ls4RiHO1ta4mxqqajWRh8158uFObVrrtAPoxk7cIp4HrnQUj/ScKzqz53HxYpG3X6Zb7H2v+0eTGLSoy8HQ2nA==}
engines: {node: '>=14'}
@@ -4557,6 +4913,17 @@ packages:
'@babel/types': 7.28.4
dev: true
+ /@types/chai@5.2.3:
+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
+ dependencies:
+ '@types/deep-eql': 4.0.2
+ assertion-error: 2.0.1
+ dev: true
+
+ /@types/deep-eql@4.0.2:
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+ dev: true
+
/@types/estree@1.0.8:
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
dev: true
@@ -4702,6 +5069,39 @@ packages:
chai: 4.5.0
dev: true
+ /@vitest/expect@3.2.4:
+ resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
+ dependencies:
+ '@types/chai': 5.2.3
+ '@vitest/spy': 3.2.4
+ '@vitest/utils': 3.2.4
+ chai: 5.3.3
+ tinyrainbow: 2.0.0
+ dev: true
+
+ /@vitest/mocker@3.2.4(vite@7.2.7):
+ resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+ dependencies:
+ '@vitest/spy': 3.2.4
+ estree-walker: 3.0.3
+ magic-string: 0.30.19
+ vite: 7.2.7(sass@1.92.1)
+ dev: true
+
+ /@vitest/pretty-format@3.2.4:
+ resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
+ dependencies:
+ tinyrainbow: 2.0.0
+ dev: true
+
/@vitest/runner@1.6.1:
resolution: {integrity: sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==}
dependencies:
@@ -4710,6 +5110,14 @@ packages:
pathe: 1.1.2
dev: true
+ /@vitest/runner@3.2.4:
+ resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==}
+ dependencies:
+ '@vitest/utils': 3.2.4
+ pathe: 2.0.3
+ strip-literal: 3.1.0
+ dev: true
+
/@vitest/snapshot@1.6.1:
resolution: {integrity: sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==}
dependencies:
@@ -4718,12 +5126,26 @@ packages:
pretty-format: 29.7.0
dev: true
+ /@vitest/snapshot@3.2.4:
+ resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==}
+ dependencies:
+ '@vitest/pretty-format': 3.2.4
+ magic-string: 0.30.19
+ pathe: 2.0.3
+ dev: true
+
/@vitest/spy@1.6.1:
resolution: {integrity: sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==}
dependencies:
tinyspy: 2.2.1
dev: true
+ /@vitest/spy@3.2.4:
+ resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
+ dependencies:
+ tinyspy: 4.0.4
+ dev: true
+
/@vitest/utils@1.6.1:
resolution: {integrity: sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==}
dependencies:
@@ -4733,6 +5155,14 @@ packages:
pretty-format: 29.7.0
dev: true
+ /@vitest/utils@3.2.4:
+ resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
+ dependencies:
+ '@vitest/pretty-format': 3.2.4
+ loupe: 3.2.1
+ tinyrainbow: 2.0.0
+ dev: true
+
/@volar/language-core@1.11.1:
resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==}
dependencies:
@@ -5150,6 +5580,11 @@ packages:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
+ /assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
+ dev: true
+
/ast-types@0.13.4:
resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
engines: {node: '>=4'}
@@ -5631,6 +6066,17 @@ packages:
type-detect: 4.1.0
dev: true
+ /chai@5.3.3:
+ resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==}
+ engines: {node: '>=18'}
+ dependencies:
+ assertion-error: 2.0.1
+ check-error: 2.1.1
+ deep-eql: 5.0.2
+ loupe: 3.2.1
+ pathval: 2.0.1
+ dev: true
+
/chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -5660,6 +6106,11 @@ packages:
get-func-name: 2.0.2
dev: true
+ /check-error@2.1.1:
+ resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
+ engines: {node: '>= 16'}
+ dev: true
+
/cheerio-select@2.1.0:
resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
dependencies:
@@ -5827,6 +6278,11 @@ packages:
engines: {node: '>=0.8'}
dev: true
+ /clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+ dev: true
+
/code-red@1.0.4:
resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==}
dependencies:
@@ -6244,6 +6700,11 @@ packages:
type-detect: 4.1.0
dev: true
+ /deep-eql@5.0.2:
+ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
+ engines: {node: '>=6'}
+ dev: true
+
/deep-equal@2.2.3:
resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
engines: {node: '>= 0.4'}
@@ -6421,6 +6882,10 @@ packages:
hasBin: true
dev: true
+ /devalue@5.6.1:
+ resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==}
+ dev: true
+
/diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -7102,6 +7567,40 @@ packages:
'@esbuild/win32-x64': 0.21.5
dev: true
+ /esbuild@0.25.12:
+ resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
+ engines: {node: '>=18'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.12
+ '@esbuild/android-arm': 0.25.12
+ '@esbuild/android-arm64': 0.25.12
+ '@esbuild/android-x64': 0.25.12
+ '@esbuild/darwin-arm64': 0.25.12
+ '@esbuild/darwin-x64': 0.25.12
+ '@esbuild/freebsd-arm64': 0.25.12
+ '@esbuild/freebsd-x64': 0.25.12
+ '@esbuild/linux-arm': 0.25.12
+ '@esbuild/linux-arm64': 0.25.12
+ '@esbuild/linux-ia32': 0.25.12
+ '@esbuild/linux-loong64': 0.25.12
+ '@esbuild/linux-mips64el': 0.25.12
+ '@esbuild/linux-ppc64': 0.25.12
+ '@esbuild/linux-riscv64': 0.25.12
+ '@esbuild/linux-s390x': 0.25.12
+ '@esbuild/linux-x64': 0.25.12
+ '@esbuild/netbsd-arm64': 0.25.12
+ '@esbuild/netbsd-x64': 0.25.12
+ '@esbuild/openbsd-arm64': 0.25.12
+ '@esbuild/openbsd-x64': 0.25.12
+ '@esbuild/openharmony-arm64': 0.25.12
+ '@esbuild/sunos-x64': 0.25.12
+ '@esbuild/win32-arm64': 0.25.12
+ '@esbuild/win32-ia32': 0.25.12
+ '@esbuild/win32-x64': 0.25.12
+ dev: true
+
/escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
@@ -7143,12 +7642,22 @@ packages:
source-map: 0.6.1
dev: true
+ /esm-env@1.2.2:
+ resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
+ dev: true
+
/esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
dev: true
+ /esrap@2.2.1:
+ resolution: {integrity: sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ dev: true
+
/estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
@@ -7216,6 +7725,11 @@ packages:
resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==}
dev: true
+ /expect-type@1.3.0:
+ resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
+ engines: {node: '>=12.0.0'}
+ dev: true
+
/exponential-backoff@3.1.2:
resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
dev: true
@@ -7266,7 +7780,7 @@ packages:
bser: 2.1.1
dev: true
- /fdir@6.5.0:
+ /fdir@6.5.0(picomatch@4.0.3):
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -7274,6 +7788,8 @@ packages:
peerDependenciesMeta:
picomatch:
optional: true
+ dependencies:
+ picomatch: 4.0.3
dev: true
/fetch-blob@3.2.0:
@@ -8898,6 +9414,42 @@ packages:
- utf-8-validate
dev: true
+ /jsdom@25.0.1:
+ resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ canvas: ^2.11.2
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ dependencies:
+ cssstyle: 4.6.0
+ data-urls: 5.0.0
+ decimal.js: 10.6.0
+ form-data: 4.0.4
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.22
+ parse5: 7.3.0
+ rrweb-cssom: 0.7.1
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 5.1.2
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+ ws: 8.18.3
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
/jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
@@ -9179,6 +9731,10 @@ packages:
get-func-name: 2.0.2
dev: true
+ /loupe@3.2.1:
+ resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
+ dev: true
+
/lower-case@1.1.4:
resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==}
dev: true
@@ -10443,7 +10999,7 @@ packages:
got: 12.6.1
registry-auth-token: 5.1.0
registry-url: 6.0.1
- semver: 7.6.0
+ semver: 7.7.2
dev: true
/package-name-regex@2.0.6:
@@ -10666,6 +11222,11 @@ packages:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
+ /pathval@2.0.1:
+ resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==}
+ engines: {node: '>= 14.16'}
+ dev: true
+
/periscopic@3.1.0:
resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
dependencies:
@@ -11613,7 +12174,7 @@ packages:
rollup: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
dependencies:
commenting: 1.1.0
- fdir: 6.5.0
+ fdir: 6.5.0(picomatch@4.0.3)
lodash: 4.17.21
magic-string: 0.30.19
moment: 2.30.1
@@ -11849,7 +12410,7 @@ packages:
resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
engines: {node: '>=12'}
dependencies:
- semver: 7.6.0
+ semver: 7.7.2
dev: true
/semver@5.7.2:
@@ -12488,6 +13049,12 @@ packages:
js-tokens: 9.0.1
dev: true
+ /strip-literal@3.1.0:
+ resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
+ dependencies:
+ js-tokens: 9.0.1
+ dev: true
+
/strnum@1.1.2:
resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==}
dev: true
@@ -12541,6 +13108,25 @@ packages:
- sugarss
dev: true
+ /svelte-check@4.3.4(svelte@5.46.0)(typescript@5.9.2):
+ resolution: {integrity: sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw==}
+ engines: {node: '>= 18.0.0'}
+ hasBin: true
+ peerDependencies:
+ svelte: ^4.0.0 || ^5.0.0-next.0
+ typescript: '>=5.0.0'
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ chokidar: 4.0.3
+ fdir: 6.5.0(picomatch@4.0.3)
+ picocolors: 1.1.1
+ sade: 1.8.1
+ svelte: 5.46.0
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - picomatch
+ dev: true
+
/svelte-hmr@0.16.0(svelte@4.2.20):
resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==}
engines: {node: ^12.20 || ^14.13.1 || >= 16}
@@ -12610,6 +13196,18 @@ packages:
typescript: 5.9.2
dev: true
+ /svelte2tsx@0.7.43(svelte@5.46.0)(typescript@5.9.2):
+ resolution: {integrity: sha512-TtxMuk520th4ZEvUQrhbDAyyQ1I+kc5dZCA4ChOLlbVXZfqenrY45iTH27DpLyx/u4STEz8O3hkGm5goTS8JhQ==}
+ peerDependencies:
+ svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0
+ typescript: ^4.9.4 || ^5.0.0
+ dependencies:
+ dedent-js: 1.0.1
+ pascal-case: 3.1.2
+ svelte: 5.46.0
+ typescript: 5.9.2
+ dev: true
+
/svelte@4.2.20:
resolution: {integrity: sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==}
engines: {node: '>=16'}
@@ -12630,6 +13228,27 @@ packages:
periscopic: 3.1.0
dev: true
+ /svelte@5.46.0:
+ resolution: {integrity: sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0)
+ '@types/estree': 1.0.8
+ acorn: 8.15.0
+ aria-query: 5.3.2
+ axobject-query: 4.1.0
+ clsx: 2.1.1
+ devalue: 5.6.1
+ esm-env: 1.2.2
+ esrap: 2.2.1
+ is-reference: 3.0.3
+ locate-character: 3.0.0
+ magic-string: 0.30.19
+ zimmerframe: 1.1.4
+ dev: true
+
/svg-outline-stroke@1.3.1:
resolution: {integrity: sha512-nfSJw3wFJCB8lVupuhD4SZjExZS72W2CF4QDr9tHRxXlbmTUqWKU3uDMMf3EIgryC6Pl458G+Ct9jesM5NUBXQ==}
engines: {node: '>=8'}
@@ -12761,16 +13380,54 @@ packages:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
dev: true
+ /tinyexec@0.3.2:
+ resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
+ dev: true
+
+ /tinyglobby@0.2.15:
+ resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+ dev: true
+
/tinypool@0.8.4:
resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==}
engines: {node: '>=14.0.0'}
dev: true
+ /tinypool@1.1.1:
+ resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ dev: true
+
+ /tinyrainbow@2.0.0:
+ resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
/tinyspy@2.2.1:
resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==}
engines: {node: '>=14.0.0'}
dev: true
+ /tinyspy@4.0.4:
+ resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
+ /tldts-core@6.1.86:
+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
+ dev: true
+
+ /tldts@6.1.86:
+ resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
+ hasBin: true
+ dependencies:
+ tldts-core: 6.1.86
+ dev: true
+
/tmp@0.0.33:
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
engines: {node: '>=0.6.0'}
@@ -12808,6 +13465,13 @@ packages:
url-parse: 1.5.10
dev: true
+ /tough-cookie@5.1.2:
+ resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
+ engines: {node: '>=16'}
+ dependencies:
+ tldts: 6.1.86
+ dev: true
+
/tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
dev: true
@@ -13253,6 +13917,31 @@ packages:
- terser
dev: true
+ /vite-node@3.2.4(sass@1.92.1):
+ resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ dependencies:
+ cac: 6.7.14
+ debug: 4.4.3
+ es-module-lexer: 1.7.0
+ pathe: 2.0.3
+ vite: 7.2.7(sass@1.92.1)
+ transitivePeerDependencies:
+ - '@types/node'
+ - jiti
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+ dev: true
+
/vite-plugin-solid@2.11.8(@testing-library/jest-dom@6.8.0)(solid-js@1.9.9)(vite@5.4.20):
resolution: {integrity: sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg==}
peerDependencies:
@@ -13329,6 +14018,57 @@ packages:
fsevents: 2.3.3
dev: true
+ /vite@7.2.7(sass@1.92.1):
+ resolution: {integrity: sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ lightningcss: ^1.21.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+ dependencies:
+ esbuild: 0.25.12
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+ postcss: 8.5.6
+ rollup: 4.50.2
+ sass: 1.92.1
+ tinyglobby: 0.2.15
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
/vitefu@0.2.5(vite@5.4.20):
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
peerDependencies:
@@ -13351,6 +14091,17 @@ packages:
vite: 5.4.20(sass@1.92.1)
dev: true
+ /vitefu@1.1.1(vite@7.2.7):
+ resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==}
+ peerDependencies:
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ dependencies:
+ vite: 7.2.7(sass@1.92.1)
+ dev: true
+
/vitest@1.6.1(jsdom@24.1.3)(sass@1.92.1):
resolution: {integrity: sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -13408,6 +14159,73 @@ packages:
- terser
dev: true
+ /vitest@3.2.4(jsdom@25.0.1)(sass@1.92.1):
+ resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/debug': ^4.1.12
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ '@vitest/browser': 3.2.4
+ '@vitest/ui': 3.2.4
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/debug':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ dependencies:
+ '@types/chai': 5.2.3
+ '@vitest/expect': 3.2.4
+ '@vitest/mocker': 3.2.4(vite@7.2.7)
+ '@vitest/pretty-format': 3.2.4
+ '@vitest/runner': 3.2.4
+ '@vitest/snapshot': 3.2.4
+ '@vitest/spy': 3.2.4
+ '@vitest/utils': 3.2.4
+ chai: 5.3.3
+ debug: 4.4.3
+ expect-type: 1.3.0
+ jsdom: 25.0.1
+ magic-string: 0.30.19
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ std-env: 3.9.0
+ tinybench: 2.9.0
+ tinyexec: 0.3.2
+ tinyglobby: 0.2.15
+ tinypool: 1.1.1
+ tinyrainbow: 2.0.0
+ vite: 7.2.7(sass@1.92.1)
+ vite-node: 3.2.4(sass@1.92.1)
+ why-is-node-running: 2.3.0
+ transitivePeerDependencies:
+ - jiti
+ - less
+ - lightningcss
+ - msw
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+ dev: true
+
/vlq@1.0.1:
resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}
dev: true
@@ -13898,3 +14716,7 @@ packages:
resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
engines: {node: '>=12.20'}
dev: true
+
+ /zimmerframe@1.1.4:
+ resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
+ dev: true