diff --git a/.gitignore b/.gitignore index a56b777457..2111b1182d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ node_modules/ frontend/bindings bindings/ *.log +*.tsbuildinfo bin/ *.dmg *.exe diff --git a/.kilocode/rules/rules.md b/.kilocode/rules/rules.md index 7efa154ea7..904292ea97 100644 --- a/.kilocode/rules/rules.md +++ b/.kilocode/rules/rules.md @@ -33,7 +33,6 @@ It has a TypeScript/React frontend and a Go backend. They talk together over `ws - **Coding Style**: - Use all lowercase filenames (except where case is actually important like Taskfile.yml) - Import the "cn" function from "@/util/util" to do classname / clsx class merge (it uses twMerge underneath) - - For element variants use class-variance-authority - Do NOT create private fields in classes (they are impossible to inspect) - Use PascalCase for global consts at the top of files - **Component Practices**: diff --git a/.roo/rules/rules.md b/.roo/rules/rules.md index 341d328f9e..99f3f08b70 100644 --- a/.roo/rules/rules.md +++ b/.roo/rules/rules.md @@ -33,7 +33,6 @@ It has a TypeScript/React frontend and a Go backend. They talk together over `ws - **Coding Style**: - Use all lowercase filenames (except where case is actually important like Taskfile.yml) - Import the "cn" function from "@/util/util" to do classname / clsx class merge (it uses twMerge underneath) - - For element variants use class-variance-authority - Do NOT create private fields in classes (they are impossible to inspect) - Use PascalCase for global consts at the top of files - **Component Practices**: diff --git a/frontend/types/media.d.ts b/frontend/types/media.d.ts index c8db4f661e..dadfdfd918 100644 --- a/frontend/types/media.d.ts +++ b/frontend/types/media.d.ts @@ -4,6 +4,9 @@ // CSS modules type CSSModuleClasses = { readonly [key: string]: string }; +declare module "*.scss" {} +declare module "*.css" {} + declare module "*.module.css" { const classes: CSSModuleClasses; export default classes; diff --git a/package-lock.json b/package-lock.json index 77717de932..9211ad86f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,9 +30,7 @@ "@xterm/xterm": "^6.0.0", "ai": "^5.0.92", "base64-js": "^1.5.1", - "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "color": "^4.2.3", "colord": "^2.9.3", "css-tree": "^3.1.0", "dayjs": "^1.11.19", @@ -52,8 +50,6 @@ "papaparse": "^5.5.3", "parse-srcset": "^1.0.2", "pngjs": "^7.0.0", - "prop-types": "^15.8.1", - "qs": "^6.15.0", "react": "^19.2.0", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", @@ -78,7 +74,6 @@ "streamdown": "^1.6.10", "tailwind-merge": "^3.5.0", "throttle-debounce": "^5.0.2", - "tinycolor2": "^1.6.0", "unist-util-visit": "^5.1.0", "use-device-pixel-ratio": "^1.1.2", "uuid": "^13.0.0", @@ -90,20 +85,17 @@ "@eslint/js": "^9.39", "@rollup/plugin-node-resolve": "^16.0.3", "@tailwindcss/vite": "^4.2.1", - "@types/color": "^4.2.0", "@types/css-tree": "^2", "@types/debug": "^4", "@types/node": "^22.13.17", "@types/papaparse": "^5", "@types/pngjs": "^6.0.5", - "@types/prop-types": "^15", "@types/react": "19", "@types/react-dom": "19", "@types/semver": "^7", "@types/shell-quote": "^1", "@types/sprintf-js": "^1", "@types/throttle-debounce": "^5", - "@types/tinycolor2": "^1", "@types/ws": "^8", "@vitejs/plugin-react-swc": "4.2.3", "@vitest/coverage-istanbul": "^3.0.9", @@ -114,15 +106,12 @@ "eslint-config-prettier": "^10.1.8", "globals": "^17.4.0", "node-abi": "^4.26.0", - "postcss": "^8.5.8", "prettier": "^3.8.1", "prettier-plugin-jsdoc": "^1.8.0", "prettier-plugin-organize-imports": "^4.3.0", "sass": "1.91.0", "tailwindcss": "^4.2.1", - "tailwindcss-animate": "^1.0.7", "ts-node": "^10.9.2", - "tslib": "^2.8.1", "tsx": "^4.21.0", "typescript": "^5.9.3", "typescript-eslint": "^8.56", @@ -9168,33 +9157,6 @@ "@types/deep-eql": "*" } }, - "node_modules/@types/color": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@types/color/-/color-4.2.0.tgz", - "integrity": "sha512-6+xrIRImMtGAL2X3qYkd02Mgs+gFGs+WsK0b7VVMaO4mYRISwyTjcqNrO0mNSmYEoq++rSLDB2F5HDNmqfOe+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/color-convert": "*" - } - }, - "node_modules/@types/color-convert": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.4.tgz", - "integrity": "sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/color-name": "^1.1.0" - } - }, - "node_modules/@types/color-name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.5.tgz", - "integrity": "sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/concat-stream": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz", @@ -9945,13 +9907,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/tinycolor2": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@types/tinycolor2/-/tinycolor2-1.4.6.tgz", - "integrity": "sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/triple-beam": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", @@ -12459,18 +12414,6 @@ "node": ">=8" } }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", - "license": "Apache-2.0", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -26112,21 +26055,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/qs": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", - "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", @@ -29969,16 +29897,6 @@ "dev": true, "license": "MIT" }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, "node_modules/tapable": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", @@ -30323,12 +30241,6 @@ "dev": true, "license": "MIT" }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", - "license": "MIT" - }, "node_modules/tinyexec": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", diff --git a/package.json b/package.json index e698ad0e73..fd4928b9be 100644 --- a/package.json +++ b/package.json @@ -31,20 +31,17 @@ "@eslint/js": "^9.39", "@rollup/plugin-node-resolve": "^16.0.3", "@tailwindcss/vite": "^4.2.1", - "@types/color": "^4.2.0", "@types/css-tree": "^2", "@types/debug": "^4", "@types/node": "^22.13.17", "@types/papaparse": "^5", "@types/pngjs": "^6.0.5", - "@types/prop-types": "^15", "@types/react": "19", "@types/react-dom": "19", "@types/semver": "^7", "@types/shell-quote": "^1", "@types/sprintf-js": "^1", "@types/throttle-debounce": "^5", - "@types/tinycolor2": "^1", "@types/ws": "^8", "@vitejs/plugin-react-swc": "4.2.3", "@vitest/coverage-istanbul": "^3.0.9", @@ -55,15 +52,12 @@ "eslint-config-prettier": "^10.1.8", "globals": "^17.4.0", "node-abi": "^4.26.0", - "postcss": "^8.5.8", "prettier": "^3.8.1", "prettier-plugin-jsdoc": "^1.8.0", "prettier-plugin-organize-imports": "^4.3.0", "sass": "1.91.0", "tailwindcss": "^4.2.1", - "tailwindcss-animate": "^1.0.7", "ts-node": "^10.9.2", - "tslib": "^2.8.1", "tsx": "^4.21.0", "typescript": "^5.9.3", "typescript-eslint": "^8.56", @@ -90,9 +84,7 @@ "@xterm/xterm": "^6.0.0", "ai": "^5.0.92", "base64-js": "^1.5.1", - "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "color": "^4.2.3", "colord": "^2.9.3", "css-tree": "^3.1.0", "dayjs": "^1.11.19", @@ -112,8 +104,6 @@ "papaparse": "^5.5.3", "parse-srcset": "^1.0.2", "pngjs": "^7.0.0", - "prop-types": "^15.8.1", - "qs": "^6.15.0", "react": "^19.2.0", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", @@ -138,7 +128,6 @@ "streamdown": "^1.6.10", "tailwind-merge": "^3.5.0", "throttle-debounce": "^5.0.2", - "tinycolor2": "^1.6.0", "unist-util-visit": "^5.1.0", "use-device-pixel-ratio": "^1.1.2", "uuid": "^13.0.0",