diff --git a/.changeset/ten-radios-listen.md b/.changeset/ten-radios-listen.md new file mode 100644 index 0000000..241365d --- /dev/null +++ b/.changeset/ten-radios-listen.md @@ -0,0 +1,5 @@ +--- +"$theme": patch +--- + +Easier input of f32 values with a scrubbable number input diff --git a/.changeset/twelve-zebras-thank.md b/.changeset/twelve-zebras-thank.md new file mode 100644 index 0000000..5a6801c --- /dev/null +++ b/.changeset/twelve-zebras-thank.md @@ -0,0 +1,5 @@ +--- +"$editor": patch +--- + +Nodes visual redesign diff --git a/AGENTS.md b/AGENTS.md index 3a348e2..9d79c6a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -27,3 +27,5 @@ This project is in pre-alpha: every change can afford to be breaking, no backwar - Motion GPU as the WGSL runtime Assume your knowledge of these tools to be vastly outdated, don't be afraid to fetch the appropriate documentation (ideally via an MCP server if your user has some available for you, or via your built-in web scraping tool, or as a last resort via reading the source code in `node_modules`), or use the skills available at [.agents/skills](.agents/skills). + +Whenever you're done working on a feature, run check and lint on the whole package or packages you've been working on. Example: `bun run format && bun nx run-many --projects=editor,web --targets=check,lint` diff --git a/apps/web/.prettierignore b/apps/web/.prettierignore deleted file mode 100644 index 96b24e2..0000000 --- a/apps/web/.prettierignore +++ /dev/null @@ -1,33 +0,0 @@ -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-* - -# Package Managers -package-lock.json -pnpm-lock.yaml -yarn.lock -bun.lock -bun.lockb - -# Miscellaneous -/static/ diff --git a/apps/web/eslint.config.ts b/apps/web/eslint.config.ts index fdb30c8..3f2162f 100644 --- a/apps/web/eslint.config.ts +++ b/apps/web/eslint.config.ts @@ -1,5 +1,3 @@ -import path from "node:path"; - import { defineConfig, includeIgnoreFile } from "eslint/config"; import globals from "globals"; import ts from "typescript-eslint"; @@ -7,7 +5,7 @@ import ts from "typescript-eslint"; import rootConfig from "../../eslint.config"; import svelteConfig from "./svelte.config"; -const appGitignorePath = path.resolve(import.meta.dirname, ".gitignore"); +const appGitignorePath = new URL("./.gitignore", import.meta.url).pathname; export default defineConfig( includeIgnoreFile(appGitignorePath), diff --git a/apps/web/package.json b/apps/web/package.json index e31fa56..bcca2f8 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -8,24 +8,19 @@ }, "dependencies": { "$editor": "workspace:*", - "$theme": "workspace:*", - "@fontsource-variable/atkinson-hyperlegible-next": "^5.2.6" + "$theme": "workspace:*" }, "devDependencies": { - "@internationalized/date": "^3.12.0", "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.69.1", - "@sveltejs/vite-plugin-svelte": "^7.0.0", - "@tailwindcss/vite": "^4.3.2", - "@types/node": "^26.1.0", - "@typescript/native-preview": "^7.0.0-dev.20260617.2", - "eslint": "^10.4.1", - "eslint-plugin-svelte": "^3.19.0", - "globals": "^17.7.0", - "mode-watcher": "^1.1.0", - "svelte": "^5.56.4", - "svelte-check": "^4.7.1", - "typescript-eslint": "^8.61.0", - "vite": "^8.1.3" + "@tailwindcss/vite": "catalog:", + "@typescript/native-preview": "catalog:", + "eslint": "catalog:", + "globals": "catalog:", + "mode-watcher": "catalog:", + "svelte": "catalog:", + "svelte-check": "catalog:", + "typescript-eslint": "catalog:", + "vite": "catalog:" } } diff --git a/apps/web/project.json b/apps/web/project.json index 8ce1265..1dff4e4 100644 --- a/apps/web/project.json +++ b/apps/web/project.json @@ -41,7 +41,7 @@ "check": { "executor": "nx:run-commands", "options": { - "command": "bun --bun svelte-check --tsgo --tsconfig ./tsconfig.json", + "command": "bun --bun svelte-check --tsconfig ./tsconfig.json", "cwd": "{projectRoot}" } }, diff --git a/bun.lock b/bun.lock index 2164b4a..8e55613 100644 --- a/bun.lock +++ b/bun.lock @@ -7,72 +7,62 @@ "devDependencies": { "@changesets/changelog-github": "^0.7.0", "@changesets/cli": "^2.31.0", - "@eslint/js": "^10.0.1", + "@eslint/js": "catalog:", "@nx/eslint-plugin": "23.0.1", - "@types/node": "^26.1.0", - "@typescript/native-preview": "^7.0.0-dev.20260705.1", - "eslint": "^10.6.0", - "eslint-plugin-svelte": "^3.20.0", + "@typescript/native-preview": "catalog:", + "eslint": "catalog:", + "eslint-plugin-svelte": "catalog:", "husky": "^9.1.7", "nx": "23.0.1", - "oxfmt": "^0.57.0", - "typescript-eslint": "^8.62.1", + "oxfmt": "^0.58.0", + "typescript-eslint": "catalog:", }, }, "apps/web": { "name": "$web", - "version": "0.0.4", + "version": "0.0.5", "dependencies": { "$editor": "workspace:*", "$theme": "workspace:*", - "@fontsource-variable/atkinson-hyperlegible-next": "^5.2.6", }, "devDependencies": { - "@internationalized/date": "^3.12.0", "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.69.1", - "@sveltejs/vite-plugin-svelte": "^7.0.0", - "@tailwindcss/vite": "^4.3.2", - "@types/node": "^26.1.0", - "@typescript/native-preview": "^7.0.0-dev.20260617.2", - "eslint": "^10.4.1", - "eslint-plugin-svelte": "^3.19.0", - "globals": "^17.7.0", - "mode-watcher": "^1.1.0", - "svelte": "^5.56.4", - "svelte-check": "^4.7.1", - "typescript-eslint": "^8.61.0", - "vite": "^8.1.3", + "@tailwindcss/vite": "catalog:", + "@typescript/native-preview": "catalog:", + "eslint": "catalog:", + "globals": "catalog:", + "mode-watcher": "catalog:", + "svelte": "catalog:", + "svelte-check": "catalog:", + "typescript-eslint": "catalog:", + "vite": "catalog:", }, }, "packages/editor": { "name": "$editor", - "version": "0.2.0", + "version": "0.3.0", "dependencies": { "$theme": "workspace:*", "@motion-core/motion-gpu": "^0.12.0", - "@xyflow/svelte": "^1.6.1", - "mode-watcher": "^1.1.0", + "@xyflow/svelte": "^1.6.2", }, "devDependencies": { - "@eslint/js": "^10.0.1", - "@sveltejs/package": "^2.5.8", - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tailwindcss/vite": "^4.3.2", - "@types/node": "^26.1.0", - "@typescript/native-preview": "^7.0.0-dev.20260617.2", - "eslint": "^10.4.1", - "eslint-plugin-svelte": "^3.19.0", - "globals": "^17.7.0", - "oxfmt": "^0.57.0", - "svelte": "^5.56.4", - "svelte-check": "^4.7.1", - "typescript-eslint": "^8.60.1", - "vite": "^8.1.3", + "@sveltejs/package": "catalog:", + "@sveltejs/vite-plugin-svelte": "catalog:", + "@tailwindcss/vite": "catalog:", + "@typescript/native-preview": "catalog:", + "eslint": "catalog:", + "globals": "catalog:", + "mode-watcher": "catalog:", + "svelte": "catalog:", + "svelte-check": "catalog:", + "typescript-eslint": "catalog:", + "vite": "catalog:", }, "peerDependencies": { - "svelte": "^5.56.4", - "tailwindcss": "^4.3.2", + "svelte": "catalog:", + "tailwindcss": "catalog:", }, }, "packages/theme": { @@ -90,22 +80,37 @@ "tw-animate-css": "^1.4.0", }, "devDependencies": { - "@sveltejs/package": "^2.5.8", - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tailwindcss/vite": "^4.3.2", - "@types/node": "^26.1.0", - "globals": "^17.7.0", - "svelte": "^5.56.4", - "svelte-check": "^4.7.1", - "tailwindcss": "^4.3.2", - "vite": "^8.1.3", + "@sveltejs/package": "catalog:", + "@sveltejs/vite-plugin-svelte": "catalog:", + "@tailwindcss/vite": "catalog:", + "globals": "catalog:", + "svelte": "catalog:", + "svelte-check": "catalog:", + "tailwindcss": "catalog:", + "vite": "catalog:", }, "peerDependencies": { - "svelte": "^5.56.4", - "tailwindcss": "^4.3.2", + "svelte": "catalog:", + "tailwindcss": "catalog:", }, }, }, + "catalog": { + "@eslint/js": "^10.0.1", + "@sveltejs/package": "^2.5.8", + "@sveltejs/vite-plugin-svelte": "^7.2.0", + "@tailwindcss/vite": "^4.3.2", + "@typescript/native-preview": "^7.0.0-dev.20260707.2", + "eslint": "^10.6.0", + "eslint-plugin-svelte": "^3.20.0", + "globals": "^17.7.0", + "mode-watcher": "^1.1.0", + "svelte": "^5.56.4", + "svelte-check": "^4.7.2", + "tailwindcss": "^4.3.2", + "typescript-eslint": "^8.63.0", + "vite": "^8.1.3", + }, "packages": { "$editor": ["$editor@workspace:packages/editor"], @@ -501,43 +506,43 @@ "@oxc-project/types": ["@oxc-project/types@0.138.0", "", {}, "sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA=="], - "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.57.0", "", { "os": "android", "cpu": "arm" }, "sha512-qVBsEO+KugOsCmUHcO8iqNnqc65p7PCKpCs8M66mPZ+Ri+CWbcpoQOEJBg2OTu03+0qu++NK1jj6IzvQVs0Sig=="], + "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.58.0", "", { "os": "android", "cpu": "arm" }, "sha512-Uz62sHduGGPftXtILGyxdSW4PX82rUg+rfdNqhsgxe881g4rIoXlIqmZQ6HVKcF4f+F8qMhdD03Bx5u7gmeTdg=="], - "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.57.0", "", { "os": "android", "cpu": "arm64" }, "sha512-mp6PibWbao3aizijcheOeHQaYEhcUAt8pwLniYbtLfHxL/psFF0BykAwCj+s3c6qIpa8yN8keZICWrqtZ70w8g=="], + "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.58.0", "", { "os": "android", "cpu": "arm64" }, "sha512-rD0lRaJp1b+9vw6X4A2dJWKukd6X8yxiicN4JxXcXayolmUypRZxk+lKR+fVOu5q/iYc0fh5fR4bgmfOfVlbaA=="], - "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.57.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-T+0stuCBqmUVY+aMIvrgXhzGhHO3sD5tNiiEcYqgSdPsnukskQqn2u5qOVD0sv1l7RLdFS5Z/f5Wi9Ktyjr3Eg=="], + "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.58.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-uzbPPk7O6M+w2K65vcQ1woga3wgP8zghjL1KOG5b6qJ8dvYHZJ1VShaslg2KOK6yQIwCQtcMCXqLBM6sqXUNTg=="], - "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.57.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-O+3JbqWs/mCI2oi4xfhRO2IVPFJNDDEBV8Odo+ZpmsUOeKJfjXoNH7nDmBEQcDgK7NfjDIyE7kRgYSZcTLDO0A=="], + "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.58.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-L0nKYDxU32oxeQqJj21W9SlIMnf81VZEhyah6iDvFhf5q0oynq498Fopth7blErUJVBpVtxQ98RMCfMPqpJX6w=="], - "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.57.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-pxwhxVC+JkLX9twOQ/8C/vbuOQcMZyKIDmiRDZfO7yITuVcIdZCiLRqqf4QOxb2+8FWrRXzQpm+1DBKcMpHSSQ=="], + "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.58.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-woNwfD58dC5PGS9LSLSD5JYfo/EFK5iG9vhDWkcCg3q78ag7KC8bpDqgvPHrMoXpx83OLXxoSOhu6z8FsVTHlg=="], - "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.57.0", "", { "os": "linux", "cpu": "arm" }, "sha512-pxBU4zH2imB/MDBfth2rOMeVxXUMjRQLCazagwLARIFH3hVlxZJBlM4nSnHXaIHJK4/qezoFCIORN6AY8Mra4A=="], + "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.58.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Sqs8nMLxuQpY21NKJ1u4stPDmO5hskBCNNh2E3AdCfI1QqWtf4m+Qn4mGEIUO4KGmuq3SWc/SZ80uy5IiwTCDw=="], - "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.57.0", "", { "os": "linux", "cpu": "arm" }, "sha512-JAprOzt8tycYou36ZgEw14DlRHTiN8qdtKANdV3VZIRIvTI/lh/cX13c9pJ/EnDk2GT3FASH7KvCgQ2AufAifQ=="], + "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.58.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Vd4exzBI5B5hB9m22JiTQzIL23WvHo/Pe+sNXPNeBLXSP9swCBPKCEBRwKpmpQzYhlgYaCgfPcGXPKAJBRIiZQ=="], - "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.57.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-ajtjaxSaj9xl4BW7REt+Cef/ttzbAq00Bq4z7JUDZEfgFXdwSjH8K9bF+IcIJzZB9lKqMfQ4eHuSFOvvlvtqOg=="], + "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.58.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-bUWi5mHV+4Vi56RLHE1h6q/HHfwAIT3XoB9vJAVeRzfu5NriXM8y6eeJu0vlKa0C9kq2rq1sOWRClhdLHPocrg=="], - "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.57.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-p4Y/+RYk9Bk5WO+zHSUXAClRmZ2fbJCejMuCAsU2HhyME4jqf6Ftt/mJYEwIah1wGCBDYOB7wEGV1x5bCEZ6hA=="], + "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.58.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-2ZHxemzgHcjtktAuVUwSoyXmGo/t+aF5tS1ciPpPei4rhSyrz3JOqDosXXrmhN/yLUSzJjtuW7ToTWqfQpCj2w=="], - "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.57.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-By6tRALAZsno0F4zedmtG+wdMvJiJmJoXM4d3+A9zHE4HRXLqXITwRH8mgrlcXc5yJM2g2W3riRPwTYdgemZLQ=="], + "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.58.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-AwKkVwjVmFQ3bcO7j0McGYAqCKH2a326fswfofng/E8VewCT/raeeGQr4huVhY704deK8AWASSTlxzMj0eZc6Q=="], - "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.57.0", "", { "os": "linux", "cpu": "none" }, "sha512-skYeG+RgvyzspqVEBsEprL90OYYZfoVNqB3HcCNR6QDJyXKOzfDRT3zncnHmUaFluIlBHuY23mU1b5WGgR98hA=="], + "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.58.0", "", { "os": "linux", "cpu": "none" }, "sha512-xsRpTxfUnJF8D3AUKko/qyWdjw4GZVHlCVFuGlzSCTeewLmykKINW8em1+wx+axsDVtJJcMtvsiaXggXxrlHgw=="], - "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.57.0", "", { "os": "linux", "cpu": "none" }, "sha512-FFgACrZOXAXUh5KQh2mt1CDOVOZmn+QzHP71wM9QobNwyQvoFfyAeefVUltW83g3sm7LTiH3yfFqLLVUpA5ZFQ=="], + "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.58.0", "", { "os": "linux", "cpu": "none" }, "sha512-Z4AYOTcy7nYEIiXwD62PlerimyYRcfJOgUbQAEBjXz098kxKuERBlRntofGy69HHhe9E0TLVNMl1yspVNu+efw=="], - "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.57.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-Nm/BAOfQeFiiKd502mZn/GAVKJwtd0RdCg17G3Wz/WSOIQmDi3+7/SZH4BHn1Ye5KvTVH3ua8WvfwLLycNIuvA=="], + "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.58.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-A3nhhtZPC/TKVWOPj9q/H3p2znJDCcHWYlJBhWL8hGq/bFmBaNBHC8Np6E581yVq1w9Mi3rMDNzDalWvtUfJtQ=="], - "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.57.0", "", { "os": "linux", "cpu": "x64" }, "sha512-BiSy5Ku3mQqyxS6YIqAJgd403wEUWvI7kerfzPxc2l/txZVmZM0pSj7oDM+4bGBExowxOi7o73jEam1W0EDTZg=="], + "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.58.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2g+tVkgwqphw8R4hgo+kF4oz8+P5RwVOtr9+irsC7uwEp0e9j7Crw8kDGKL20uYlLPD7g02DqA61mC/UNYx98A=="], - "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.57.0", "", { "os": "linux", "cpu": "x64" }, "sha512-BCRkJiotz5s9afLYD2LuMvzAoDYx9H17E/YbDyu4xK7l4zHDPeny9ErSXL//i/nJyaOwRk08x4b8cgJC00+JDg=="], + "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.58.0", "", { "os": "linux", "cpu": "x64" }, "sha512-rc15P6AbyyB7426aN8AakLd02Trb3a6ML/mmfAQeVHJEfVofWLcWIrBdy6zDEY+DIaL/s8E4GGPboVw+oP3+EA=="], - "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.57.0", "", { "os": "none", "cpu": "arm64" }, "sha512-4Oaxe1qrGgXfpCJ1C/ERJ2iCtV2rN1R79ga9fsfyVHfSQRu/hVW780u2KDqZWFZ/iGTHODJji0JemxqFZ63eIQ=="], + "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.58.0", "", { "os": "none", "cpu": "arm64" }, "sha512-ZWoTM27/HYPOh9iq86DAbhPu9nXb8qKvvGU/h8OfliyVUFAMMNTLDkGsWDKKnDqIkqvZ9+dXlgUOsH1LYO3O7g=="], - "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.57.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-MYLAsDnhdNsSGheLYhWgbk0vfIrlS84iQYun/y21fX6u0jj8iBtYtbpZMdiqYeuf8U12eVPUjVY2xE2NrCfJ0g=="], + "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.58.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-LHZnqFXe2dEfkRI4XdZS/57nEOT/I4UCRX5IyM9v4GYW9XwQCjGe1IUK59SuKw3POwvcgWQ4pme2cYXmNqTNPg=="], - "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.57.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-PBwdzZALJY/jcCx2E6is0yu+cuVXeySTDmwuseD+9j0mHqlRNxwlKgsyRTBed/woPeqfVfuXfWjoq4Cx2Zt3Eg=="], + "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.58.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-mZKpg20TpheCJym1rarcZCUJeW1sSruw8zAAaCYWvuVfwIUDN1CXdrPU/JgCWReXTCTrEfCB8Wyo3hh9jSZ2EA=="], - "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.57.0", "", { "os": "win32", "cpu": "x64" }, "sha512-bQJdH9i4RRfw55jm7+8/xS7GzHLLTbHx4huhrrDxQJaJtbSDbsyOnODvP1ftT7EG0KFKAYO2S+q6AcioXODx8w=="], + "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.58.0", "", { "os": "win32", "cpu": "x64" }, "sha512-N/wUU4N5PZ2orBtI+Ko7MnMfYLfE7K91UrGMY/c/pYyHR3lA9kwst1XugkZx+92YcRh/Eo+iv2eTESSWXfiZPA=="], "@phenomnomnominal/tsquery": ["@phenomnomnominal/tsquery@6.2.0", "", { "dependencies": { "@types/esquery": "^1.5.4", "esquery": "^1.7.0" }, "peerDependencies": { "typescript": ">3.0.0" } }, "sha512-Vo9nkhfZxDB/sBiqIY3pjDC4mOSyure+AFlEW5hcy/tRE82MqCXjRN4InnVNMldinRt0dLYqg4HAU2XPq5e1LA=="], @@ -589,7 +594,7 @@ "@sveltejs/package": ["@sveltejs/package@2.5.8", "", { "dependencies": { "chokidar": "^5.0.0", "kleur": "^4.1.5", "sade": "^1.8.1", "semver": "^7.5.4", "svelte2tsx": "~0.7.55" }, "peerDependencies": { "svelte": "^3.44.0 || ^4.0.0 || ^5.0.0-next.1" }, "bin": { "svelte-package": "svelte-package.js" } }, "sha512-zeBbsXYvHiBu56v4gJaGQoEHzg96w0E1j3dOMX8vo56s6vI5eQ57ZEZhudjwjnegnVitRRu5MrmhO0eNvaonIw=="], - "@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@7.1.2", "", { "dependencies": { "deepmerge": "^4.3.1", "magic-string": "^0.30.21", "obug": "^2.1.0", "vitefu": "^1.1.2" }, "peerDependencies": { "svelte": "^5.46.4", "vite": "^8.0.0-beta.7 || ^8.0.0" } }, "sha512-DrUBA2UXRfDmUX/ZTiEopd3X40yavsJF1FX2RygcuIScHL7o5YX1fMvoYnDhjeJQC4weCOklirpNWlcb2NiSeA=="], + "@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@7.2.0", "", { "dependencies": { "deepmerge": "^4.3.1", "magic-string": "^0.30.21", "obug": "^2.1.0", "vitefu": "^1.1.2" }, "peerDependencies": { "svelte": "^5.46.4", "vite": "^8.0.0-beta.7 || ^8.0.0" } }, "sha512-1SpkuMSRLfugrVX+IrKfE1RUegzo8AQzKQ6qQPfVzbcWi5IhuTPaKb5ZrLpucleFznkc4/RTeSPoRnGWFxX+EQ=="], "@swc/helpers": ["@swc/helpers@0.5.23", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw=="], @@ -653,47 +658,47 @@ "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], - "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.62.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.62.1", "@typescript-eslint/type-utils": "8.62.1", "@typescript-eslint/utils": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.62.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-4EQM77WgVNxj7OkL/5b/D/xZsw00G577+UriYTC7JF5opcF3T2AuoeY7ueLaZgSVjSgCS6yOAJB5bRGLPSJUzA=="], + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.63.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.63.0", "@typescript-eslint/type-utils": "8.63.0", "@typescript-eslint/utils": "8.63.0", "@typescript-eslint/visitor-keys": "8.63.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.63.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ=="], "@typescript-eslint/parser": ["@typescript-eslint/parser@8.62.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-sPhE4iHuJDSvoAiec+Ro8JyXw8f0ql13HFR82P99nCm9GwTEKG0KYLvDe6REk8BCXuit6vJAv/Yxg5ABaNS2rA=="], - "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.62.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.62.1", "@typescript-eslint/types": "^8.62.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-yQ3RgY5RkSBpsNS1Bx/JQEcA24FOSdfGktoyprAr5u18390UQdtVcfnEv4nIrIshNnavlVyZBKxQwT1fIAE6cg=="], + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.63.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.63.0", "@typescript-eslint/types": "^8.63.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ=="], "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.61.1", "", { "dependencies": { "@typescript-eslint/types": "8.61.1", "@typescript-eslint/visitor-keys": "8.61.1" } }, "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w=="], - "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.62.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-xadytJqX9vJVQ2fdQjkcIVigwaOJNWkpjdLt6cEQ+xPnrI1fkp+/jZE/I97k9KUjqtpd25i0HeyZf3T6dutv2g=="], + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.63.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg=="], "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.61.1", "", { "dependencies": { "@typescript-eslint/types": "8.61.1", "@typescript-eslint/typescript-estree": "8.61.1", "@typescript-eslint/utils": "8.61.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw=="], "@typescript-eslint/types": ["@typescript-eslint/types@8.61.1", "", {}, "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA=="], - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.62.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.62.1", "@typescript-eslint/tsconfig-utils": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-xMcW9oP9u7fAMXYs9A65CVmtLQe2r//oXINHfi8HV+oiqhih17sbLdhXr4540YWlgpDKQdY854OL5ZrdCiQsAA=="], + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.63.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.63.0", "@typescript-eslint/tsconfig-utils": "8.63.0", "@typescript-eslint/types": "8.63.0", "@typescript-eslint/visitor-keys": "8.63.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q=="], "@typescript-eslint/utils": ["@typescript-eslint/utils@8.61.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.61.1", "@typescript-eslint/types": "8.61.1", "@typescript-eslint/typescript-estree": "8.61.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA=="], "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.62.1", "", { "dependencies": { "@typescript-eslint/types": "8.62.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-4g3BLxfdTMy8iZG0MaBkadnlRrCJ74cQiFbyEVMrkwIoqdyaXXQM22cotDvrl4x28wgIZ9rEJRoM+mmhSJpJ1g=="], - "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260705.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260705.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260705.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260705.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260705.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260705.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260705.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260705.1" }, "bin": { "tsgo": "bin/tsgo" } }, "sha512-mXc3tDkRCe8UinMcl5yqUfLAP5Vk5MFuZNNaNsrwRehu1d+lnL+Zu+K7g6kSMOV8NOY9bn9tGFN4/cqhlK4VwA=="], + "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260707.2", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260707.2", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260707.2", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260707.2", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260707.2", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260707.2", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260707.2", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260707.2" }, "bin": { "tsgo": "bin/tsgo" } }, "sha512-oUGp+Rep/hqMhPunyinsALUwSlzHINSxitifPiSaeqoKOKD2OlR9NE3TaPqwsl4NlGslsOSUXI1JotWQzpYCPg=="], - "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260705.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-OemjoGm+5nLCaUyL0zwWcSDhyQYQnO6/DcOidm2EzOqK7dYXgaCerDFUAz6iOGjOFtTAQFU50CV+ZbtUxodk9A=="], + "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-wny2pgKjGbiZtnOIHVa3tXC1UfDqxNEFzyPGmiqybedG8hipG2Nfp0l5UxbaKCjkLacUpH/W5bP2hBOMVhCOzg=="], - "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260705.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-jYEsBtcVOin3ARa2xAkwM21KOlmr9s3FGxcY28gESigXPJOGooRaxZlJ45tFM3TczCMEGmML88XCXuQaH2z1kw=="], + "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260707.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-Afc7M5zOwo+GpfcYwz5Z8HMB2tPVsui7nNIqEuuFB73MPdVqNn/Wmpe4tP4MRri0AtJnJknoHBaTJ/VDAp/Jhw=="], - "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260705.1", "", { "os": "linux", "cpu": "arm" }, "sha512-abTOyfyx5SW5szf1YeZf5K9vUWEE7nbbqUUthl8OgRrFrJzlZnDIRf/FV0h6QGqQIN7XTf8lgKjdFe4piNFLww=="], + "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260707.2", "", { "os": "linux", "cpu": "arm" }, "sha512-hJm/UOqZTr9FHmR7uNm8VGX4oKtfWk0Jem0zPeJFNC8ckGUfSBueyiEYMZB+XmRc1aG4x1E46y3CplP4CLHvGQ=="], - "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260705.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-kmWaZkuqb5RGTHt4AFIdPJ53/wO8vuZbmjSizNFNpvx1owYgQ8QZNu51zKfLQZbMs2FR7NAzVuQT14mhBaQW5Q=="], + "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260707.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-iITBa2WjjTI5N9t5l7Z4KoOSI+2zBlhbvFzsD/f8qX8QoKjz/Y4DPyBDgezYi8nkqjjksbgSOJ3/ykzhwrB9cg=="], - "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260705.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oNA9I3MFLqdFVbwolnsFObjrQ1AsBXc4WXPcNyKcoaauAmFTwjxOBPKtiaqFKj4j4Abum7KvjVj0fgBaO5gRPA=="], + "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260707.2", "", { "os": "linux", "cpu": "x64" }, "sha512-du0dzi6y97Po5vDNdPJTyyijHCpaS22JLRnKZEJXBDaO9gCIymOv/5QQokFRuOlQm0bWl3i9PF4OVdGP6uAOQA=="], - "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260705.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-K6hTgnqAEBbrIGH6feXM//FHbk0ilSAQDpLct+3IHfd+tg2sKop5lK2rTZkl/ptHM7Vlh0CF77m0RL73an+oAw=="], + "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260707.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-SsAwfhyHJ1akgBc+99z4+hwdbHsdWaKB8EwCNIMA6JfSLMeUjffrYvxu+vfMyxVtOVOz7RrRXRoiDiu4a2sCtg=="], - "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260705.1", "", { "os": "win32", "cpu": "x64" }, "sha512-gAwPJgfQWtJnZlMrJ8NCA+vdI42N+XLev+jqZnpcMqt+Jd2zMtoNpppHB0I6URMVys+R2WpMiOOSlHcnvOMyTQ=="], + "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260707.2", "", { "os": "win32", "cpu": "x64" }, "sha512-DL4u27stv0fo71sVhOzHSwE+YMZsbBijVI+kg5dLDLilSH79WFTJ8RSQ46vJrCMt+Gjlv/JOZP1PuLJDfioYeQ=="], "@webgpu/types": ["@webgpu/types@0.1.70", "", {}, "sha512-LFiNHHKMvmAEvwVew3JLJmTdShhbdwRFSImUshGhE2mGE8ybQzIo63l5uRp+YKnNx+8Qno8Kf6gN+DKMreIJCA=="], - "@xyflow/svelte": ["@xyflow/svelte@1.6.1", "", { "dependencies": { "@svelte-put/shortcut": "^4.1.0", "@xyflow/system": "0.0.78" }, "peerDependencies": { "svelte": "^5.25.0" } }, "sha512-o84RpjWMAs5tXjYPj6PUjMccBgeF4TFA8DllBqMSbnhJD3ZxLhttp4NmdHZAIM1T5bK5NAzCat+M37uT/9+rTw=="], + "@xyflow/svelte": ["@xyflow/svelte@1.6.2", "", { "dependencies": { "@svelte-put/shortcut": "^4.1.0", "@xyflow/system": "0.0.79" }, "peerDependencies": { "svelte": "^5.25.0" } }, "sha512-wImcz0c4mCa2SYxo5p1YSBqdTBqI4Ky2CYO6XZfNqMIxVr6mB2cdVaduJqHuqTETQuUKv4Gr0eh3Ev3iU8k8fg=="], - "@xyflow/system": ["@xyflow/system@0.0.78", "", { "dependencies": { "@types/d3-drag": "^3.0.7", "@types/d3-interpolate": "^3.0.4", "@types/d3-selection": "^3.0.10", "@types/d3-transition": "^3.0.8", "@types/d3-zoom": "^3.0.8", "d3-drag": "^3.0.0", "d3-interpolate": "^3.0.1", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0" } }, "sha512-lY0z2qP33fUhTva9Vaxrk0lqZta2pkbxB1trHAx1omnJqRtPvDlAQYV2r5fhS6AdpkulYmbNW0svy+A4/t4B/g=="], + "@xyflow/system": ["@xyflow/system@0.0.79", "", { "dependencies": { "@types/d3-drag": "^3.0.7", "@types/d3-interpolate": "^3.0.4", "@types/d3-selection": "^3.0.10", "@types/d3-transition": "^3.0.8", "@types/d3-zoom": "^3.0.8", "d3-drag": "^3.0.0", "d3-interpolate": "^3.0.1", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0" } }, "sha512-czLyOh91NF0hIzbNzwi8I6GlqG23BHh2435OddfI6uiaLH3xdrdygO93gqgH1Bv9mhy8XPFQJOBn1FTq4LvEWA=="], "@yarnpkg/lockfile": ["@yarnpkg/lockfile@1.1.0", "", {}, "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="], @@ -1153,7 +1158,7 @@ "outdent": ["outdent@0.5.0", "", {}, "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q=="], - "oxfmt": ["oxfmt@0.57.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.57.0", "@oxfmt/binding-android-arm64": "0.57.0", "@oxfmt/binding-darwin-arm64": "0.57.0", "@oxfmt/binding-darwin-x64": "0.57.0", "@oxfmt/binding-freebsd-x64": "0.57.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.57.0", "@oxfmt/binding-linux-arm-musleabihf": "0.57.0", "@oxfmt/binding-linux-arm64-gnu": "0.57.0", "@oxfmt/binding-linux-arm64-musl": "0.57.0", "@oxfmt/binding-linux-ppc64-gnu": "0.57.0", "@oxfmt/binding-linux-riscv64-gnu": "0.57.0", "@oxfmt/binding-linux-riscv64-musl": "0.57.0", "@oxfmt/binding-linux-s390x-gnu": "0.57.0", "@oxfmt/binding-linux-x64-gnu": "0.57.0", "@oxfmt/binding-linux-x64-musl": "0.57.0", "@oxfmt/binding-openharmony-arm64": "0.57.0", "@oxfmt/binding-win32-arm64-msvc": "0.57.0", "@oxfmt/binding-win32-ia32-msvc": "0.57.0", "@oxfmt/binding-win32-x64-msvc": "0.57.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-ZB7Bi+rGDSqmVIo9jwcLyFgjxXvQhDdU+jx+ZrVy6VRiVXK2+CHc4hO3J4dUQjHe7V0ymHB+MDuv5z+NhK07HA=="], + "oxfmt": ["oxfmt@0.58.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.58.0", "@oxfmt/binding-android-arm64": "0.58.0", "@oxfmt/binding-darwin-arm64": "0.58.0", "@oxfmt/binding-darwin-x64": "0.58.0", "@oxfmt/binding-freebsd-x64": "0.58.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.58.0", "@oxfmt/binding-linux-arm-musleabihf": "0.58.0", "@oxfmt/binding-linux-arm64-gnu": "0.58.0", "@oxfmt/binding-linux-arm64-musl": "0.58.0", "@oxfmt/binding-linux-ppc64-gnu": "0.58.0", "@oxfmt/binding-linux-riscv64-gnu": "0.58.0", "@oxfmt/binding-linux-riscv64-musl": "0.58.0", "@oxfmt/binding-linux-s390x-gnu": "0.58.0", "@oxfmt/binding-linux-x64-gnu": "0.58.0", "@oxfmt/binding-linux-x64-musl": "0.58.0", "@oxfmt/binding-openharmony-arm64": "0.58.0", "@oxfmt/binding-win32-arm64-msvc": "0.58.0", "@oxfmt/binding-win32-ia32-msvc": "0.58.0", "@oxfmt/binding-win32-x64-msvc": "0.58.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-8feG/7NVEHDVwc1OUpP6Pks+TnaDFUw2jLLFIMi5bcmmwxAX2wBQvjSzj62RRTYBf2Op1Wt8xbkmagmPTR5ETg=="], "p-filter": ["p-filter@2.1.0", "", { "dependencies": { "p-map": "^2.0.0" } }, "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw=="], @@ -1297,7 +1302,7 @@ "svelte": ["svelte@5.56.4", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.10", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.8.1", "esm-env": "^1.2.1", "esrap": "^2.2.12", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-/d0QHehmRuJW8gVz395MTkPcPozxzdjBMBE8oEYGz8O3b9KTMzzQ9ZHJQLuFKOHOPQbU6kx/X4iid/EBBzH7iw=="], - "svelte-check": ["svelte-check@4.7.1", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "@sveltejs/load-config": "^0.2.0", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-FGUOmAqxXdN/H9Zm8slrqO7SLtFisXRB7rfOsHNJ3MLTD2po/+Stg8XyErkpumPHbuUiYTcqrEIzxpVWKTLqtg=="], + "svelte-check": ["svelte-check@4.7.2", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "@sveltejs/load-config": "^0.2.0", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-GoS4XJdGswlq0rIT1vtFLzJY1bvHtY37McY9H9Gkm1Ggw/ICdZYn8J/Z8Yi0BEL0i3R4+jtaWVePjyppMlij/A=="], "svelte-eslint-parser": ["svelte-eslint-parser@1.8.0", "", { "dependencies": { "eslint-scope": "^8.2.0", "eslint-visitor-keys": "^4.0.0", "espree": "^10.0.0", "postcss": "^8.4.49", "postcss-scss": "^4.0.9", "postcss-selector-parser": "^7.0.0", "semver": "^7.7.2" }, "peerDependencies": { "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["svelte"] }, "sha512-mikR1qwIVy3t5WthUoAXkMwxkXvabZP9FJgdx35Ei7EbGWmctva1Pih16Koeor/bdNNq8NXHlwKGS6NkYTawLg=="], @@ -1345,7 +1350,7 @@ "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], - "typescript-eslint": ["typescript-eslint@8.62.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.62.1", "@typescript-eslint/parser": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1", "@typescript-eslint/utils": "8.62.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-vymnnM5g0AKQDSAyfP12nMIBvgwgA42syg74kkuZ4x1VuTzwQKwc5h9rGxeShCjny5o+zWAb6OEoz7XLgrIkIw=="], + "typescript-eslint": ["typescript-eslint@8.63.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.63.0", "@typescript-eslint/parser": "8.63.0", "@typescript-eslint/typescript-estree": "8.63.0", "@typescript-eslint/utils": "8.63.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-xgwXyzG4sK9ALkBxbyGkTMMOS+imnW65iPhxCQMK83KhxyoDNW7l+IDqEf9vMdoUidHpOoS967RCq4eMiTexwQ=="], "undici-types": ["undici-types@8.3.0", "", {}, "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ=="], @@ -1449,11 +1454,15 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.62.1", "", { "dependencies": { "@typescript-eslint/types": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1" } }, "sha512-r4d249KbQ1SFdpeStvob8Ih6aPPIzfqllPVOtvhve6ZcpuVcYo5/7zUWckKpHE7StASX4kTKZTLf0WQm/wPkcg=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/parser": ["@typescript-eslint/parser@8.63.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.63.0", "@typescript-eslint/types": "8.63.0", "@typescript-eslint/typescript-estree": "8.63.0", "@typescript-eslint/visitor-keys": "8.63.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig=="], + + "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "@typescript-eslint/visitor-keys": "8.63.0" } }, "sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A=="], + + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "@typescript-eslint/typescript-estree": "8.63.0", "@typescript-eslint/utils": "8.63.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.62.1", "", { "dependencies": { "@typescript-eslint/types": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1", "@typescript-eslint/utils": "8.62.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aXM5xlqXiTxPibXB93cLAURfT3rlizf7uMXISCXy66Isr/9hISJx3yDsKl0L7lKa51b8JpFuNKby0/O0pEm9jg=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils": ["@typescript-eslint/utils@8.63.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.63.0", "@typescript-eslint/types": "8.63.0", "@typescript-eslint/typescript-estree": "8.63.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils": ["@typescript-eslint/utils@8.62.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-sHtbPfuKNZCG+ih8SyjjucqRntSVmp8XgL5u6o9mAhiSn8ds5o/M/XdM0abweme2Tln3szOstOrZ9OXitvPh0g=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw=="], "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], @@ -1461,13 +1470,17 @@ "@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], - "@typescript-eslint/project-service/@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], + "@typescript-eslint/parser/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.62.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.62.1", "@typescript-eslint/tsconfig-utils": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-xMcW9oP9u7fAMXYs9A65CVmtLQe2r//oXINHfi8HV+oiqhih17sbLdhXr4540YWlgpDKQdY854OL5ZrdCiQsAA=="], + + "@typescript-eslint/project-service/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], "@typescript-eslint/scope-manager/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.61.1", "", { "dependencies": { "@typescript-eslint/types": "8.61.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w=="], "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.61.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.61.1", "@typescript-eslint/tsconfig-utils": "8.61.1", "@typescript-eslint/types": "8.61.1", "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg=="], - "@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], + "@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], + + "@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw=="], "@typescript-eslint/utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.61.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.61.1", "@typescript-eslint/tsconfig-utils": "8.61.1", "@typescript-eslint/types": "8.61.1", "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg=="], @@ -1547,7 +1560,9 @@ "terser/source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - "typescript-eslint/@typescript-eslint/utils": ["@typescript-eslint/utils@8.62.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-sHtbPfuKNZCG+ih8SyjjucqRntSVmp8XgL5u6o9mAhiSn8ds5o/M/XdM0abweme2Tln3szOstOrZ9OXitvPh0g=="], + "typescript-eslint/@typescript-eslint/parser": ["@typescript-eslint/parser@8.63.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.63.0", "@typescript-eslint/types": "8.63.0", "@typescript-eslint/typescript-estree": "8.63.0", "@typescript-eslint/visitor-keys": "8.63.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig=="], + + "typescript-eslint/@typescript-eslint/utils": ["@typescript-eslint/utils@8.63.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.63.0", "@typescript-eslint/types": "8.63.0", "@typescript-eslint/typescript-estree": "8.63.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA=="], "vite/postcss": ["postcss@8.5.16", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg=="], @@ -1557,11 +1572,19 @@ "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager/@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], + + "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], + + "@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], + + "@typescript-eslint/parser/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.62.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.62.1", "@typescript-eslint/types": "^8.62.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-yQ3RgY5RkSBpsNS1Bx/JQEcA24FOSdfGktoyprAr5u18390UQdtVcfnEv4nIrIshNnavlVyZBKxQwT1fIAE6cg=="], + + "@typescript-eslint/parser/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.62.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-xadytJqX9vJVQ2fdQjkcIVigwaOJNWkpjdLt6cEQ+xPnrI1fkp+/jZE/I97k9KUjqtpd25i0HeyZf3T6dutv2g=="], "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.61.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.61.1", "@typescript-eslint/types": "^8.61.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA=="], @@ -1583,12 +1606,20 @@ "svelte-check/chokidar/readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.62.1", "", { "dependencies": { "@typescript-eslint/types": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1" } }, "sha512-r4d249KbQ1SFdpeStvob8Ih6aPPIzfqllPVOtvhve6ZcpuVcYo5/7zUWckKpHE7StASX4kTKZTLf0WQm/wPkcg=="], + "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "@typescript-eslint/visitor-keys": "8.63.0" } }, "sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A=="], + + "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], + "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw=="], + + "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "@typescript-eslint/visitor-keys": "8.63.0" } }, "sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A=="], + + "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.63.0", "", {}, "sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q=="], "@manypkg/find-root/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw=="], + "@manypkg/find-root/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], } } diff --git a/eslint.config.ts b/eslint.config.ts index 82d5465..f699322 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -1,12 +1,10 @@ -import path from "node:path"; - import js from "@eslint/js"; import nx from "@nx/eslint-plugin"; import svelte from "eslint-plugin-svelte"; import { includeIgnoreFile, defineConfig } from "eslint/config"; import ts from "typescript-eslint"; -const gitignorePath = path.resolve(import.meta.dirname, ".gitignore"); +const gitignorePath = new URL("./.gitignore", import.meta.url).pathname; export default defineConfig( includeIgnoreFile(gitignorePath), @@ -53,6 +51,16 @@ export default defineConfig( }, ], "@typescript-eslint/consistent-type-definitions": ["error", "type"], + "@typescript-eslint/consistent-type-imports": [ + "error", + { fixStyle: "inline-type-imports" }, + ], + }, + }, + { + files: ["**/*.svelte"], + rules: { + "@typescript-eslint/no-confusing-void-expression": "off", }, }, ); diff --git a/package.json b/package.json index 82c73fe..af859db 100644 --- a/package.json +++ b/package.json @@ -2,10 +2,28 @@ "name": "@org/source", "version": "0.0.0", "private": true, - "workspaces": [ - "apps/*", - "packages/*" - ], + "workspaces": { + "packages": [ + "apps/*", + "packages/*" + ], + "catalog": { + "@eslint/js": "^10.0.1", + "@sveltejs/package": "^2.5.8", + "@sveltejs/vite-plugin-svelte": "^7.2.0", + "@tailwindcss/vite": "^4.3.2", + "@typescript/native-preview": "^7.0.0-dev.20260707.2", + "eslint": "^10.6.0", + "eslint-plugin-svelte": "^3.20.0", + "globals": "^17.7.0", + "mode-watcher": "^1.1.0", + "svelte": "^5.56.4", + "svelte-check": "^4.7.2", + "tailwindcss": "^4.3.2", + "typescript-eslint": "^8.63.0", + "vite": "^8.1.3" + } + }, "type": "module", "scripts": { "dev": "bun nx run-many -t dev", @@ -23,15 +41,14 @@ "devDependencies": { "@changesets/changelog-github": "^0.7.0", "@changesets/cli": "^2.31.0", - "@eslint/js": "^10.0.1", + "@eslint/js": "catalog:", "@nx/eslint-plugin": "23.0.1", - "@types/node": "^26.1.0", - "@typescript/native-preview": "^7.0.0-dev.20260705.1", - "eslint": "^10.6.0", - "eslint-plugin-svelte": "^3.20.0", + "@typescript/native-preview": "catalog:", + "eslint": "catalog:", + "eslint-plugin-svelte": "catalog:", "husky": "^9.1.7", "nx": "23.0.1", - "oxfmt": "^0.57.0", - "typescript-eslint": "^8.62.1" + "oxfmt": "^0.58.0", + "typescript-eslint": "catalog:" } } diff --git a/packages/editor/.prettierignore b/packages/editor/.prettierignore deleted file mode 100644 index 7d74fe2..0000000 --- a/packages/editor/.prettierignore +++ /dev/null @@ -1,9 +0,0 @@ -# Package Managers -package-lock.json -pnpm-lock.yaml -yarn.lock -bun.lock -bun.lockb - -# Miscellaneous -/static/ diff --git a/packages/editor/eslint.config.ts b/packages/editor/eslint.config.ts index fdb30c8..3f2162f 100644 --- a/packages/editor/eslint.config.ts +++ b/packages/editor/eslint.config.ts @@ -1,5 +1,3 @@ -import path from "node:path"; - import { defineConfig, includeIgnoreFile } from "eslint/config"; import globals from "globals"; import ts from "typescript-eslint"; @@ -7,7 +5,7 @@ import ts from "typescript-eslint"; import rootConfig from "../../eslint.config"; import svelteConfig from "./svelte.config"; -const appGitignorePath = path.resolve(import.meta.dirname, ".gitignore"); +const appGitignorePath = new URL("./.gitignore", import.meta.url).pathname; export default defineConfig( includeIgnoreFile(appGitignorePath), diff --git a/packages/editor/package.json b/packages/editor/package.json index 6869624..03fcdde 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -27,27 +27,23 @@ "dependencies": { "$theme": "workspace:*", "@motion-core/motion-gpu": "^0.12.0", - "@xyflow/svelte": "^1.6.1", - "mode-watcher": "^1.1.0" + "@xyflow/svelte": "^1.6.2" }, "devDependencies": { - "@eslint/js": "^10.0.1", - "@sveltejs/package": "^2.5.8", - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tailwindcss/vite": "^4.3.2", - "@types/node": "^26.1.0", - "@typescript/native-preview": "^7.0.0-dev.20260617.2", - "eslint": "^10.4.1", - "eslint-plugin-svelte": "^3.19.0", - "globals": "^17.7.0", - "oxfmt": "^0.57.0", - "svelte": "^5.56.4", - "svelte-check": "^4.7.1", - "typescript-eslint": "^8.60.1", - "vite": "^8.1.3" + "@sveltejs/package": "catalog:", + "@sveltejs/vite-plugin-svelte": "catalog:", + "@tailwindcss/vite": "catalog:", + "@typescript/native-preview": "catalog:", + "eslint": "catalog:", + "globals": "catalog:", + "mode-watcher": "catalog:", + "svelte": "catalog:", + "svelte-check": "catalog:", + "typescript-eslint": "catalog:", + "vite": "catalog:" }, "peerDependencies": { - "svelte": "^5.56.4", - "tailwindcss": "^4.3.2" + "svelte": "catalog:", + "tailwindcss": "catalog:" } } diff --git a/packages/editor/project.json b/packages/editor/project.json index d763d52..9a008f8 100644 --- a/packages/editor/project.json +++ b/packages/editor/project.json @@ -17,7 +17,7 @@ "check": { "executor": "nx:run-commands", "options": { - "command": "bun --bun svelte-check --tsgo --tsconfig ./tsconfig.json", + "command": "bun --bun svelte-check --tsconfig ./tsconfig.json", "cwd": "{projectRoot}" } }, diff --git a/packages/editor/src/lib/components/editor/Editor.svelte b/packages/editor/src/lib/components/editor/Editor.svelte index e2503cf..aaf1e21 100644 --- a/packages/editor/src/lib/components/editor/Editor.svelte +++ b/packages/editor/src/lib/components/editor/Editor.svelte @@ -1,12 +1,10 @@ - - + +
- + diff --git a/packages/editor/src/lib/components/editor/GraphContent.svelte b/packages/editor/src/lib/components/editor/GraphContent.svelte index 6a7a61f..ff481c1 100644 --- a/packages/editor/src/lib/components/editor/GraphContent.svelte +++ b/packages/editor/src/lib/components/editor/GraphContent.svelte @@ -1,7 +1,6 @@ {#if descriptor} -
-
{label}
+
+
+ + {label} + +
+
+ {#each outputs as outputDef (outputDef.name)} +
+ {outputDef.name}: {outputDef.type} + +
+ {/each} +
+
- {#each inputs as inputDef, i (inputDef.name)} + {#each inputs as inputDef (inputDef.name)}
- {inputDef.name}: {inputDef.type} + {#if inputDef.type !== "f32"} + {inputDef.name}: {inputDef.type} + {/if} - {#if inputDef.type === "f32" && !inputDef.variadic && data[inputDef.name] !== undefined && !connectedHandles.has(inputDef.name)} - { + {#if inputDef.type === "f32" && !inputDef.variadic && data[inputDef.name] !== undefined} + { const val = parseFloat(e.currentTarget.value) || 0; updateNodeData(id, { ...data, @@ -71,22 +86,6 @@
{/each}
- -
- {#each outputs as outputDef, i (outputDef.name)} -
- {outputDef.name}: {outputDef.type} - -
- {/each} -
{:else} diff --git a/packages/editor/src/lib/components/editor/codegen.ts b/packages/editor/src/lib/components/editor/codegen.ts index 8ab4cd0..aef655c 100644 --- a/packages/editor/src/lib/components/editor/codegen.ts +++ b/packages/editor/src/lib/components/editor/codegen.ts @@ -55,7 +55,7 @@ function findReachableNodeIds(nodes: Map, edges: Edge[]): Set = { separateVec4f: separateVec4fNode, // Output - output: outputNode, + "frag-output": outputNode, }; /** Helper: produce default node data for a registered type. */ diff --git a/packages/editor/src/lib/components/editor/sizing_circle.json b/packages/editor/src/lib/components/editor/sizing_circle.json index d263902..1215558 100644 --- a/packages/editor/src/lib/components/editor/sizing_circle.json +++ b/packages/editor/src/lib/components/editor/sizing_circle.json @@ -8,8 +8,8 @@ "y": 0 }, "position": { - "x": -436.2292524009497, - "y": -245.49058849153616 + "x": -303.75006043968585, + "y": -239.05269179388642 } }, { @@ -22,17 +22,17 @@ "w": 1 }, "position": { - "x": 731.9794335199821, - "y": -62.03361016305873 + "x": 1155.6899556313651, + "y": -55.595713465409005 } }, { "id": "out1", - "type": "output", + "type": "frag-output", "data": {}, "position": { - "x": 912.020905446942, - "y": -82.61026361056331 + "x": 1375.7357311503742, + "y": -48.96944047032002 } }, { @@ -43,8 +43,8 @@ "e2": 2 }, "position": { - "x": -235.09153684288333, - "y": -294.8888011203166 + "x": -59.407697002206234, + "y": -358.8584787446738 } }, { @@ -55,8 +55,8 @@ "e2": 2 }, "position": { - "x": -233.9572515269754, - "y": -150.56438340744924 + "x": -69.47461669207212, + "y": -152.12734742820936 } }, { @@ -64,8 +64,8 @@ "type": "add", "data": {}, "position": { - "x": -53.38934286699558, - "y": -228.22526435441767 + "x": 165.49914485309483, + "y": -221.78736765676794 } }, { @@ -76,8 +76,8 @@ "e2": 0.5 }, "position": { - "x": 69.99342781812142, - "y": -251.5120067693433 + "x": 399.29379345226795, + "y": -235.4730772096017 } }, { @@ -91,8 +91,8 @@ "out_max": 0 }, "position": { - "x": 268.41391209615057, - "y": -94.66695245256257 + "x": 692.1244342075336, + "y": -88.22905575491284 } }, { @@ -104,8 +104,8 @@ "high": 1 }, "position": { - "x": 491.84323977531074, - "y": -58.27710099555356 + "x": 915.5537618866938, + "y": -51.83920429790382 } }, { @@ -113,8 +113,8 @@ "type": "time", "data": {}, "position": { - "x": -648.1534280502349, - "y": 227.21480418222194 + "x": -797.6049657846668, + "y": 242.73855889338316 } }, { @@ -124,8 +124,8 @@ "e": 0 }, "position": { - "x": -367.9441129911882, - "y": 202.17482283651987 + "x": -277.0693967656557, + "y": 224.61444097098936 } }, { @@ -139,8 +139,8 @@ "out_max": 0.405 }, "position": { - "x": -222.4737451733001, - "y": 153.28724020919685 + "x": -5.185429596891694, + "y": 209.33047336098778 } }, { @@ -148,8 +148,8 @@ "type": "add", "data": {}, "position": { - "x": 75.62127084696232, - "y": 129.43963892757586 + "x": 404.92163648110886, + "y": 145.47856848731743 } }, { @@ -159,8 +159,8 @@ "value": 0.0005 }, "position": { - "x": -220.08898504513803, - "y": 23.31781322436241 + "x": -1.2004973250476496, + "y": 29.75570992201213 } }, { @@ -171,8 +171,8 @@ "b": 0 }, "position": { - "x": 44.61938918085494, - "y": -56.5716510690679 + "x": 404.32302554495897, + "y": -42.132893653008296 } }, { @@ -180,8 +180,8 @@ "type": "mul", "data": {}, "position": { - "x": -518.1840010654005, - "y": 226.02242411814083 + "x": -538.8275825407148, + "y": 265.7517008108812 } }, { @@ -191,8 +191,8 @@ "value": 0.5 }, "position": { - "x": -730.4276524718273, - "y": 347.64519065440794 + "x": -826.2812486756197, + "y": 376.13618928427223 } }, { @@ -200,8 +200,8 @@ "type": "resolution", "data": {}, "position": { - "x": -1995.5284683025895, - "y": -664.182965810184 + "x": -2269.426547127526, + "y": -645.2054347507909 } }, { @@ -212,8 +212,8 @@ "b": 0 }, "position": { - "x": -1485.5415300161565, - "y": -667.1264257993502 + "x": -1619.8272070534458, + "y": -726.9445910250517 } }, { @@ -224,8 +224,8 @@ "y": 0 }, "position": { - "x": -1820.3946329647492, - "y": -693.054304078188 + "x": -2069.4335249248134, + "y": -695.4958618425023 } }, { @@ -236,8 +236,8 @@ "e2": 1 }, "position": { - "x": -1667.8941265990863, - "y": -584.7955750585304 + "x": -1849.7901800405057, + "y": -581.1332384120589 } }, { @@ -261,8 +261,8 @@ "e2": 1 }, "position": { - "x": -1314.58540794732, - "y": -602.3677353698706 + "x": -1339.0009855904636, + "y": -601.1469564877134 } }, { @@ -286,8 +286,8 @@ "b": 0 }, "position": { - "x": -1327.1058749667711, - "y": -450.49475662119545 + "x": -1324.6643172024567, + "y": -416.3129479207945 } }, { @@ -340,8 +340,8 @@ "y": 0 }, "position": { - "x": -700.7295776243161, - "y": -578.7214036175545 + "x": -594.5218148766417, + "y": -566.5136147959828 } }, { @@ -349,8 +349,8 @@ "type": "uv", "data": {}, "position": { - "x": -1962.239338510872, - "y": -393.8518818783666 + "x": -2269.0984471540523, + "y": -374.87435081897354 } }, { @@ -361,8 +361,8 @@ "y": 0 }, "position": { - "x": -1837.5886554263188, - "y": -414.64928839754884 + "x": -2029.2509399249955, + "y": -412.20773063323446 } } ], diff --git a/packages/editor/src/lib/components/editor/xy-theme.css b/packages/editor/src/lib/components/editor/xy-theme.css index 2ed61f7..ee0fb8c 100644 --- a/packages/editor/src/lib/components/editor/xy-theme.css +++ b/packages/editor/src/lib/components/editor/xy-theme.css @@ -1,60 +1,61 @@ /* xyflow theme – centralised styles */ -@reference "$theme/css"; -/* ============================================= - Custom variables - ============================================= */ +@import "@xyflow/svelte/dist/style.css" layer(base); :root { - --color-nodes-primary: #ff4000; - --color-nodes-background: #fefefe; - --color-nodes-hover-bg: #f6f6f6; - --color-nodes-disabled: #76797e; + --xy-background-color-default: transparent; +} + +.dark { + --xy-background-color-default: transparent; } +@reference "$theme/css"; + /* ============================================= xyflow base style overrides ============================================= */ .svelte-flow__node { - @apply bg-accent flex flex-col items-center justify-center p-2.5 text-center text-xs; - border-radius: var(--xy-node-border-radius-default); - background-color: var(--xy-node-background-color-default); - border: var(--xy-node-border-default); - color: var(--xy-node-color, var(--xy-node-color-default)); + @apply bg-card justify-center rounded-sm; + box-shadow: 0 0 10px var(--background); +} + +.node-shell__label { + @apply border-b px-3 pt-3 pb-2; +} + +.node-shell__body { + @apply p-3; } .svelte-flow__node.selectable:focus { - @apply border-[#d9d9d9]; - box-shadow: 0px 0px 0px 4px var(--xy-theme-color-focus); + @apply outline-ring outline; } .svelte-flow__node.selectable:hover, .svelte-flow__node.draggable:hover { - border-color: var(--xy-theme-hover); + border-color: var(--ring); +} + +.svelte-flow__handle { + @apply border-card -mx-3 size-2 rounded-full; } .svelte-flow__node.selectable.selected { - border-color: var(--xy-theme-selected); + border-color: var(--primary); } .svelte-flow__node-group { - @apply border-[#9e86ed] bg-[rgba(207,182,255,0.4)]; + @apply border-accent bg-accent/40; } .svelte-flow__handle { - background-color: var(--xy-handle-background-color-default); + background-color: var(--muted-foreground); } .svelte-flow__handle.connectionindicator:hover { - @apply pointer-events-auto bg-white; - border-color: var(--xy-theme-edge-hover); -} - -.svelte-flow__handle.connectionindicator:focus, -.svelte-flow__handle.connectingfrom, -.svelte-flow__handle.connectingto { - border-color: var(--xy-theme-edge-hover); + @apply bg-foreground pointer-events-auto; } .svelte-flow__node:has(.svelte-flow__resize-control.line) { @@ -66,7 +67,7 @@ } .svelte-flow__edge-label { - @apply bg-[#f7f9fb]; + @apply bg-card; } /* ============================================= @@ -74,11 +75,7 @@ ============================================= */ .node-shell--unknown { - @apply border-[#f38ba8] text-[#f38ba8]; -} - -.node-shell__label { - @apply mb-1.5 border-b border-white/10 pb-1.5 text-center text-xs font-semibold tracking-[0.5px]; + @apply text-destructive; } .node-shell__body { @@ -91,7 +88,7 @@ } .node-shell__row { - @apply flex min-h-6 items-center gap-1.5; + @apply relative flex min-h-6 items-center gap-1.5; } .node-shell__row--right { @@ -99,116 +96,5 @@ } .node-shell__handle-label { - @apply text-[10px] whitespace-nowrap opacity-70; -} - -.node-shell__input { - @apply w-15 rounded border border-white/15 bg-black/30 px-1 py-0.5 text-right text-[10px]; - color: inherit; - font-family: inherit; -} - -.node-shell__input:focus { - @apply border-(--xy-theme-color-focus,#89b4fa) outline-none; -} - -/* ============================================= - XY Theme UI component styles - ============================================= */ - -/* Button group */ -.xy-theme__button-group { - @apply flex items-center; - - & .xy-theme__button:first-child { - @apply rounded-l-full; - } - - & .xy-theme__button:last-child { - @apply m-0 rounded-r-full; - } -} - -.xy-theme__button { - @apply inline-flex h-10 cursor-pointer items-center justify-center rounded-full bg-(--color-nodes-background) px-4 text-(--color-nodes-primary) transition-colors duration-200 ease-in-out; - border: 1px solid var(--color-nodes-primary); -} - -.xy-theme__button.active { - @apply bg-(--color-nodes-primary) text-white; - border-color: var(--color-nodes-primary); -} - -.xy-theme__button.active:hover, -.xy-theme__button.active:active { - @apply bg-(--color-nodes-primary) opacity-90; -} - -.xy-theme__button:hover { - background-color: var(--xy-controls-button-background-color-hover-default); -} - -.xy-theme__button:active { - background-color: var(--color-nodes-hover-bg); -} - -.xy-theme__button:disabled { - @apply cursor-not-allowed opacity-80; - color: var(--color-nodes-disabled); - border: 1px solid var(--color-nodes-disabled); -} - -.xy-theme__button > span { - @apply mr-0.5; -} - -.xy-theme__button + .xy-theme__button { - @apply ml-1.5; -} - -/* Input */ -.xy-theme__input { - @apply rounded-lg bg-(--color-nodes-background) px-3 py-2 text-base transition-colors duration-200 ease-in-out; - border: 1px solid var(--color-nodes-primary); - color: inherit; -} - -.xy-theme__input:focus { - @apply outline-none; - border-color: var(--color-nodes-primary); - box-shadow: 0 0 0 2px rgba(255, 0, 115, 0.3); -} - -/* Checkbox */ -.xy-theme__checkbox { - @apply mr-2 inline-block h-5 w-5 cursor-pointer appearance-none rounded-lg bg-(--color-nodes-background) align-middle transition-colors duration-200 ease-in-out; - border: 2px solid var(--color-nodes-primary); -} - -.xy-theme__checkbox:checked { - background-color: var(--color-nodes-primary); - border-color: var(--color-nodes-primary); -} - -.xy-theme__checkbox:focus { - @apply outline-none; - box-shadow: 0 0 0 2px rgba(255, 0, 115, 0.3); -} - -/* Select */ -.xy-theme__select { - @apply mr-2 rounded-full bg-(--color-nodes-background) px-3 py-2 text-base transition-colors duration-200 ease-in-out; - border: 1px solid var(--color-nodes-primary); - color: inherit; -} - -.xy-theme__select:focus { - @apply outline-none; - border-color: var(--color-nodes-primary); - box-shadow: 0 0 0 2px rgba(255, 0, 115, 0.3); -} - -/* Label */ -.xy-theme__label { - @apply mt-2.5 mb-0.75 inline-block; + @apply text-muted-foreground text-xs whitespace-nowrap; } diff --git a/packages/theme/eslint.config.ts b/packages/theme/eslint.config.ts index fdb30c8..3f2162f 100644 --- a/packages/theme/eslint.config.ts +++ b/packages/theme/eslint.config.ts @@ -1,5 +1,3 @@ -import path from "node:path"; - import { defineConfig, includeIgnoreFile } from "eslint/config"; import globals from "globals"; import ts from "typescript-eslint"; @@ -7,7 +5,7 @@ import ts from "typescript-eslint"; import rootConfig from "../../eslint.config"; import svelteConfig from "./svelte.config"; -const appGitignorePath = path.resolve(import.meta.dirname, ".gitignore"); +const appGitignorePath = new URL("./.gitignore", import.meta.url).pathname; export default defineConfig( includeIgnoreFile(appGitignorePath), diff --git a/packages/theme/package.json b/packages/theme/package.json index caa53ad..af5bc2d 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -28,18 +28,17 @@ "tw-animate-css": "^1.4.0" }, "devDependencies": { - "@sveltejs/package": "^2.5.8", - "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tailwindcss/vite": "^4.3.2", - "@types/node": "^26.1.0", - "globals": "^17.7.0", - "svelte": "^5.56.4", - "svelte-check": "^4.7.1", - "tailwindcss": "^4.3.2", - "vite": "^8.1.3" + "@sveltejs/package": "catalog:", + "@sveltejs/vite-plugin-svelte": "catalog:", + "@tailwindcss/vite": "catalog:", + "globals": "catalog:", + "svelte": "catalog:", + "svelte-check": "catalog:", + "tailwindcss": "catalog:", + "vite": "catalog:" }, "peerDependencies": { - "svelte": "^5.56.4", - "tailwindcss": "^4.3.2" + "svelte": "catalog:", + "tailwindcss": "catalog:" } } diff --git a/packages/theme/project.json b/packages/theme/project.json index a185dc1..2912152 100644 --- a/packages/theme/project.json +++ b/packages/theme/project.json @@ -17,7 +17,7 @@ "check": { "executor": "nx:run-commands", "options": { - "command": "bun --bun svelte-check --tsgo --tsconfig ./tsconfig.json", + "command": "bun --bun svelte-check --tsconfig ./tsconfig.json", "cwd": "{projectRoot}" } }, diff --git a/packages/theme/src/index.css b/packages/theme/src/index.css index 735544a..5216a18 100644 --- a/packages/theme/src/index.css +++ b/packages/theme/src/index.css @@ -13,7 +13,7 @@ --radius: 0.625rem; --background: oklch(1 0 0); --foreground: oklch(0.145 0 0); - --card: oklch(1 0 0); + --card: oklch(0.95 0 0); --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); @@ -47,7 +47,7 @@ .dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); - --card: oklch(0.205 0 0); + --card: oklch(0.2 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0); diff --git a/packages/theme/src/lib/components/ui/index.ts b/packages/theme/src/lib/components/ui/index.ts index 58943c8..f2da619 100644 --- a/packages/theme/src/lib/components/ui/index.ts +++ b/packages/theme/src/lib/components/ui/index.ts @@ -4,4 +4,5 @@ export * as Input from "./input/index"; export * as Label from "./label/index"; export * as Menubar from "./menubar/index"; export * as Resizable from "./resizable/index"; +export * as Scrubbable from "./scrubbable/index"; export * as Separator from "./separator/index"; diff --git a/packages/theme/src/lib/components/ui/scrubbable/index.ts b/packages/theme/src/lib/components/ui/scrubbable/index.ts new file mode 100644 index 0000000..9a7351f --- /dev/null +++ b/packages/theme/src/lib/components/ui/scrubbable/index.ts @@ -0,0 +1,7 @@ +import Root from "./scrubbable.svelte"; + +export { + Root, + // + Root as Scrubbable, +}; diff --git a/packages/theme/src/lib/components/ui/scrubbable/scrubbable.svelte b/packages/theme/src/lib/components/ui/scrubbable/scrubbable.svelte new file mode 100644 index 0000000..15337eb --- /dev/null +++ b/packages/theme/src/lib/components/ui/scrubbable/scrubbable.svelte @@ -0,0 +1,255 @@ + + +{#snippet sideButton(side: "left" | "right")} + {@const isRight = side === "right"} + +{/snippet} + +{#if label} + {label} +{/if} +
+ {#if !readonly} + + {@render sideButton("left")} + + + + + + {@render sideButton("right")} + {/if} +
diff --git a/tsconfig.json b/tsconfig.json index 809471d..11b3e61 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,8 +5,7 @@ "declaration": false, "declarationMap": false, "emitDeclarationOnly": false, - "noEmit": true, - "types": ["node"] + "noEmit": true }, "files": [], "references": [],